gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog Makefile.am TODO configure.ac d... [relea


From: Rob Savoye
Subject: [Gnash-commit] gnash ChangeLog Makefile.am TODO configure.ac d... [release_0_8_2_rc1]
Date: Mon, 03 Mar 2008 23:47:02 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Branch:         release_0_8_2_rc1
Changes by:     Rob Savoye <rsavoye>    08/03/03 23:47:00

Modified files:
        .              : ChangeLog Makefile.am TODO configure.ac 
        doc/C          : Makefile.am appendix.xml fdl-appendix.xml 
                         sources.xml 
        doc/C/usermanual: acknowledgments.xml glossary.xml 
                          installation.xml revisions.xml 
                          specification.xml usage.xml 
        macros         : docbook.m4 
        packaging      : Makefile.am bsd.am deb.am snapshot.am 
        packaging/debian: changelog control copyright docs gnash.install 
                          rules 
        packaging/redhat: gnash.spec 
Added files:
        doc/C/preformatted: cygnal.1.in dumpshm.1.in gnash.1.in 
                            gnash_ref.html.in gnash_ref.info.in 
                            gnash_user.html.in gnash_user.info.in 
                            gnashref.html.in gnashuser.html.in 
                            gnashuser.ref.in gprocessor.1.in 
                            soldumper.1.in 
        doc/C/refmanual: amf.xml as_value.xml building.xml 
                         code_dependencies.xml codestyle.xml 
                         configuration.xml cross_compiling.xml 
                         custompath_configuration.xml 
                         documentation_dependencies.xml 
                         feature_configuration.xml install.xml 
                         internals.xml logging.xml memory.xml 
                         new_as_class.xml object.xml plugin.xml 
                         revisions.xml rtmp.xml sources.xml 
                         testing_dependencies.xml 
        doc/C/refmanual/extensions: extensions.xml fileext.xml 
                                    gtkext.xml mysqlext.xml 
Removed files:
        doc/C/actionscript: as_value.xml main.xml new_as_class.xml 
        doc/C/asspec   : .cvsignore Makefile.am accessibility.xml 
                         array.xml asspec-C.omf asspec.xml boolean.xml 
                         button.xml camera.xml color.xml contextmenu.xml 
                         customactions.xml date.xml error.xml 
                         fdl-appendix.xml function.xml key.xml legal.xml 
                         loadvars.xml localconnection.xml math.xml 
                         microphone.xml mouse.xml movieclip.xml 
                         moviecliploader.xml netconnection.xml 
                         netstream.xml number.xml selection.xml 
                         sharedobject.xml sound.xml stage.xml string.xml 
                         system.xml textfield.xml textformat.xml 
                         textsnapshot.xml video.xml xml.xml xmlnode.xml 
                         xmlsocket.xml 
        doc/C/usermanual: bugreport.xml doc_authors.xml introduction.xml 
        doc/C/usermanual/installation: building.xml 
                                       code_dependencies.xml 
                                       configuration.xml 
                                       cross_compiling.xml 
                                       custompath_configuration.xml 
                                       documentation_dependencies.xml 
                                       feature_configuration.xml 
                                       install.xml packagemanager.xml 
                                       sources.xml 
                                       testing_dependencies.xml 
        doc/C/usermanual/usage: gnashrc.xml 
        packaging/doc  : .cvsignore Makefile.am actionscript.html.in 
                         actionscript.info.in cygnal.1.in dumpshm.1.in 
                         gnash.1.in gnash.html.in gnash.info.in 
                         gprocessor.1.in soldumper.1.in 

Log message:
                * Makefile.am: Add packaging files to EXTRA_DIST. Drop the
                dist-hook.
                * packaging/debian: Minor changes to start working with HEAD.
                * packaging/deb.am: Copy the debian packaging files from the
                source tree to the snapshot directory do dpkg-buildpackage can
                find them.
                * packaging/redhat/gnash.spec: Update for current layout.
                * configure.ac: Add a --disable-testsuite option for package
                builders. This spends builds up, and we already tested Gnash
                before packaging, right ?
                * Makefile.am: Always include testsuite directory, but don't 
add it
                to SUBDIRS. Install the packaging files.
                * doc/C/Makefile.am: Add some extra dependencies to keep 
distcheck
                happy.
                * testsuite/samples/Makefile.am: Add AGG_LIBS.
                * doc/C/Makefile.am: Tweak how images get installed so distcheck
                is happy.
                * po/fi.po: Finish translation by Timo Jyrinki.
                * po/Makefile.am: Build finish translation.
                * doc/C/preformatted: Update.
                * doc/C/Makefile.am: Furthur tweaking of the .xml.texi rule so 
it
                works with versions to correctly produce both info files. On
                Fedora, it kept only creating gnash_user.info. Fix install rule 
to
                deal with multiple versions of install-info. Add --dir-file= 
when
                removing entries.
                * doc/C/refmanual/internals.xml: Use <emphasis> instead of 
<code>,
                as <code> doesn't appear to be supported on Fedora.
                * doc/C/refmanual/extensions/extensions.xml: Use <emphasis>
                instead of <code>, as <code> doesn't appear to be supported on
                Fedora.
                * doc/C/Makefile.am: For the perl based version of the docbook
                tools, pipe directly through makeinfo to avoid file name
                transformation problems.
                * doc/C/Makefile.am: Print warning when linking to preformatted
                versions that they may be out of date. Change path to 
preformatted
                versions.
                * packaging/doc: Moved to doc/C/preformatted.
                * doc/C/preformatted: Moved from packaging/doc, this location
                makes more sense, and is simpler.
                * doc/C/usermanual.bugreport.xml: Move file up one directory so 
it
                can be shared.
                * doc/C/usermanual/glossary.xml, gnashrc.xml, installation.xml,
                usage.xml: Cleanup bad internal links. Drop "colspec" from 
tables
                as it causes too many warnings, hiding other problems.
                * doc/C/refmanual/building.xml, code_dependencies.xml,
                configuration.xml, custompath_configuration.xml,
                documentation_dependencies.xml, feature_configuration.xml,
                install.xml, internals.xml, testing_dependencies.xml: Cleanup 
bad
                internal links. Drop "colspec" from tables as it causes too many
                warnings, hiding other problems.
                * doc/C/gnashuser.xml: Change path to bugreport.
                * doc/C/gnashref.xml: Include bugreport.
                * doc/C/Makefile.am: Tweak dependencies more to deal with all 
the
                weird variations of docbook utils and docbook2X between 
platforms.
                * packaging/deb.am: Add snapshot-deb target.
                * testsuite/misc-ming.all/Makefile.am: Add BOOST_CFLAGS for 
older
                compilers.
                * doc/C/refmanual/logging.xml: Add new log_*() functions. Mark 
C++
                streaming API as discouraged.
                * doc/C/Makefile.am: Add extra dependencies for the gnash
                reference manual, now that it's back to life.
                * doc/C/appendix.xml: Don't include RTMP chapter here.
                * doc/C/refmanual/codestyle.xml: Don't include RTMP chapter
                here. Drop useless opcode section.
                * doc/C/gnashref.xml: Rearrange top level chapters.
                * doc/C/refmanual/configuration.xml: Don't include 
featureoptions
                or custompath here anymore.
                * doc/C/refmanual/internals.xml: Update to match reality. Add 
new
                utilities.
                * doc/C/refmanual/new_as_class.xml: Include asvaluie section 
here
                too.
                * doc/C/refmanual/building.xml, code_dependencies.xml,
                configuration.xml, cross_compiling.xml,
                custompath_configuration.xml, documentation_dependencies.xml,
                feature_configuration.xml, testing_dependencies.xml: Updated to
                match reality.
                * doc/C/refmanual/new_as_class.xml: changes to a chapter. Merge
                main.xml into body. Include as_value.xml from here.
                * doc/C/refmanual/as_value.xml: Make a sect1 for new_as_class.
                * doc/C/Makefile.am: Tweak dependencies for the info files, as
                they go through a name transformation, which is unfortunately
                different between Ubuntu and Fedora. Additional tweaks for 
Ubuntu
                Hardy, the .texi names don't get transformed during this step 
for
                this version of the docbook tools.
                * doc/C/Makefile.am: Link to the preformatted info file, which 
is
                messy because of the name transformation.
                * configure.ac: Always Define Docbook Conditionals or make 
fails.
                * packaging/gnash_ref.info.in, gnash_user.info.in,
                gnashuser.html.in gnashuser.ref.in: Preformatted versions of 
the docs.
                * doc/C/usermanual/usage, installation, actionscript: Move to
                reference manual. 
                * macros/docbook.m4: Look for install-info program too, which we
                need to add entries to the system wide info 'dirs' file.
                * doc/C/gnashref.xml: New reference manual top level page.  This
                contains much of what was in the old manual.
                * asspec/*: Move to BackLash directory.
                * doc/C/Makefile.am: don't list asspec files. Add directory for
                installing html file. Add separate variables for the user manual
                and the reference manual. Get rid of the useless
                entities. variable. Drop include xmlmake and omfmake, fix tghe
                rules and move them to the main Makefile. Fix info target so 
they
                actually build correctly, and install in the dirs file. Install
                and uninstall all the docs produced. Comment out GNOME help
                support for now. 
                * doc/omf.make, xmldocs.make: Don't use anymore.
                * doc/C/usermanual: Rewritten. 
                * usermanual/introduction.xml, /doc_authors.xml: Moved up one
                directory so it can be shared with the reference manual.
                * doc/C/usermanual/gtkext.xml, internals.xml, logging.xml, 
                mysqlext.xml, object.xml, opcodes.xml, plugin.xml, rtmp.xml,
                sources.xml: Move to reference manual.
                * doc/C/refmanual/amf.xml, internals.xml, memory.xml, 
plugin.xml,
                sources.xml, as_value.xml, logging.xml, new_as_class.xml,
                revisions.xml, codestyle.xml, main.xml, object.xml, rtmp.xml:
                Moved from the user manual and top level.
                * doc/C/asspec/*: All files moved to BackLash directory.
                * doc/backLash/accessibility.xml, array.xml, asspec.xml,
                boolean.xml, button.xml, camera.xml, color.xml, contextmenu.xml,
                customactions.xml, date.xml, error.xml, fdl-appendix.xml,
                function.xml, key.xml, legal.xml, loadvars.xml,
                localconnection.xml, math.xml, microphone.xml, mouse.xml,
                movieclip.xml, moviecliploader.xml, netconnection.xml,
                netstream.xml, number.xml, selection.xml,
                sharedobject.xml,sound.xml, stage.xml, string.xml, system.xml,
                textfield.xml, textformat.xml, textsnapshot.xml, video.xml,
                xml.xml, xmlnode.xml, xmlsocket.xml: Move from asspec directory.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.5711.2.43&r2=1.5711.2.44
http://cvs.savannah.gnu.org/viewcvs/gnash/Makefile.am?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.103.2.2&r2=1.103.2.3
http://cvs.savannah.gnu.org/viewcvs/gnash/TODO?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.12.8.1&r2=1.12.8.2
http://cvs.savannah.gnu.org/viewcvs/gnash/configure.ac?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.479.2.6&r2=1.479.2.7
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/Makefile.am?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.48&r2=1.48.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/appendix.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.12&r2=1.12.10.1
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/fdl-appendix.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.6&r2=1.6.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/sources.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.46&r2=1.46.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/actionscript/as_value.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.3&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/actionscript/main.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.2&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/actionscript/new_as_class.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.5&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/.cvsignore?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.2&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/Makefile.am?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.6&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/accessibility.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/array.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/asspec-C.omf?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.2&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/asspec.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.2&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/boolean.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/button.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/camera.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/color.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/contextmenu.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/customactions.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/date.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.3&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/error.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/fdl-appendix.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/function.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/key.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/legal.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/loadvars.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/localconnection.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/math.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/microphone.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/mouse.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/movieclip.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.5&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/moviecliploader.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/netconnection.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/netstream.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/number.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/selection.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/sharedobject.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/sound.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/stage.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/string.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/system.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/textfield.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/textformat.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/textsnapshot.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/video.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/xml.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/xmlnode.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/asspec/xmlsocket.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/preformatted/cygnal.1.in?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.1.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/preformatted/dumpshm.1.in?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.1.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/preformatted/gnash.1.in?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.1.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/preformatted/gnash_ref.html.in?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/preformatted/gnash_ref.info.in?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.2.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/preformatted/gnash_user.html.in?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/preformatted/gnash_user.info.in?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.2.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/preformatted/gnashref.html.in?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.2.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/preformatted/gnashuser.html.in?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.2.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/preformatted/gnashuser.ref.in?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.1.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/preformatted/gprocessor.1.in?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.1.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/preformatted/soldumper.1.in?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.1.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/amf.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.1.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/as_value.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.2.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/building.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.4.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/code_dependencies.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.4.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/codestyle.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.2.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/configuration.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.5.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/cross_compiling.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.3.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/custompath_configuration.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.3.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/documentation_dependencies.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.3.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/feature_configuration.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.3.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/install.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.4.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/internals.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.6.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/logging.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.2.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/memory.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.2.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/new_as_class.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.3.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/object.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.2.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/plugin.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.3.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/revisions.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.1.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/rtmp.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.1.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/sources.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.2.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/testing_dependencies.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.3.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/extensions/extensions.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.3.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/extensions/fileext.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.1.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/extensions/gtkext.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.1.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/extensions/mysqlext.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&rev=1.1.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/acknowledgments.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/glossary.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.5.2.1&r2=1.5.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/installation.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.6&r2=1.6.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/revisions.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.4&r2=1.4.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/specification.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.5&r2=1.5.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/usage.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.9&r2=1.9.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/bugreport.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.5&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/doc_authors.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.4&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/introduction.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.5&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/installation/building.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.4&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/installation/code_dependencies.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.6&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/installation/configuration.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.7.2.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/installation/cross_compiling.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.4&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/installation/custompath_configuration.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.9&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/installation/documentation_dependencies.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.4&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/installation/feature_configuration.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.17.2.2&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/installation/install.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.6&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/installation/packagemanager.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/installation/sources.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.5&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/installation/testing_dependencies.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.3&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/usage/gnashrc.xml?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.18&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/macros/docbook.m4?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.27.2.1&r2=1.27.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/Makefile.am?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1.2.1&r2=1.1.2.2
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/bsd.am?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/deb.am?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/snapshot.am?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.5&r2=1.5.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/debian/changelog?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.5&r2=1.5.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/debian/control?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.6&r2=1.6.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/debian/copyright?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.2&r2=1.2.4.1
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/debian/docs?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=1.1.10.1
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/debian/gnash.install?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=1.1.10.1
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/debian/rules?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.3&r2=1.3.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/doc/.cvsignore?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1.2.2&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/doc/Makefile.am?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1.2.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/doc/actionscript.html.in?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/doc/actionscript.info.in?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/doc/cygnal.1.in?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/doc/dumpshm.1.in?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/doc/gnash.1.in?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/doc/gnash.html.in?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/doc/gnash.info.in?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1.2.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/doc/gprocessor.1.in?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/doc/soldumper.1.in?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/redhat/gnash.spec?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.19&r2=1.19.2.1

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5711.2.43
retrieving revision 1.5711.2.44
diff -u -b -r1.5711.2.43 -r1.5711.2.44
--- ChangeLog   3 Mar 2008 18:25:23 -0000       1.5711.2.43
+++ ChangeLog   3 Mar 2008 23:46:35 -0000       1.5711.2.44
@@ -1,3 +1,132 @@
+2008-03-03  Rob Savoye  <address@hidden>
+
+       * Makefile.am: Add packaging files to EXTRA_DIST. Drop the
+       dist-hook.
+       * packaging/debian: Minor changes to start working with HEAD.
+       * packaging/deb.am: Copy the debian packaging files from the
+       source tree to the snapshot directory do dpkg-buildpackage can
+       find them.
+       * packaging/redhat/gnash.spec: Update for current layout.
+       * configure.ac: Add a --disable-testsuite option for package
+       builders. This spends builds up, and we already tested Gnash
+       before packaging, right ?
+       * Makefile.am: Always include testsuite directory, but don't add it
+       to SUBDIRS. Install the packaging files.
+       * doc/C/Makefile.am: Add some extra dependencies to keep distcheck
+       happy.
+       * testsuite/samples/Makefile.am: Add AGG_LIBS.
+       * doc/C/Makefile.am: Tweak how images get installed so distcheck
+       is happy.
+       * po/fi.po: Finish translation by Timo Jyrinki.
+       * po/Makefile.am: Build finish translation.
+       * doc/C/preformatted: Update.
+       * doc/C/Makefile.am: Furthur tweaking of the .xml.texi rule so it
+       works with versions to correctly produce both info files. On
+       Fedora, it kept only creating gnash_user.info. Fix install rule to
+       deal with multiple versions of install-info. Add --dir-file= when
+       removing entries.
+       * doc/C/refmanual/internals.xml: Use <emphasis> instead of <code>,
+       as <code> doesn't appear to be supported on Fedora.
+       * doc/C/refmanual/extensions/extensions.xml: Use <emphasis>
+       instead of <code>, as <code> doesn't appear to be supported on
+       Fedora.
+       * doc/C/Makefile.am: For the perl based version of the docbook
+       tools, pipe directly through makeinfo to avoid file name
+       transformation problems.
+       * doc/C/Makefile.am: Print warning when linking to preformatted
+       versions that they may be out of date. Change path to preformatted
+       versions.
+       * packaging/doc: Moved to doc/C/preformatted.
+       * doc/C/preformatted: Moved from packaging/doc, this location
+       makes more sense, and is simpler.
+       * doc/C/usermanual.bugreport.xml: Move file up one directory so it
+       can be shared.
+       * doc/C/usermanual/glossary.xml, gnashrc.xml, installation.xml,
+       usage.xml: Cleanup bad internal links. Drop "colspec" from tables
+       as it causes too many warnings, hiding other problems.
+       * doc/C/refmanual/building.xml, code_dependencies.xml,
+       configuration.xml, custompath_configuration.xml,
+       documentation_dependencies.xml, feature_configuration.xml,
+       install.xml, internals.xml, testing_dependencies.xml: Cleanup bad
+       internal links. Drop "colspec" from tables as it causes too many
+       warnings, hiding other problems.
+       * doc/C/gnashuser.xml: Change path to bugreport.
+       * doc/C/gnashref.xml: Include bugreport.
+       * doc/C/Makefile.am: Tweak dependencies more to deal with all the
+       weird variations of docbook utils and docbook2X between platforms.
+       * packaging/deb.am: Add snapshot-deb target.
+       * testsuite/misc-ming.all/Makefile.am: Add BOOST_CFLAGS for older
+       compilers.
+       * doc/C/refmanual/logging.xml: Add new log_*() functions. Mark C++
+       streaming API as discouraged.
+       * doc/C/Makefile.am: Add extra dependencies for the gnash
+       reference manual, now that it's back to life.
+       * doc/C/appendix.xml: Don't include RTMP chapter here.
+       * doc/C/refmanual/codestyle.xml: Don't include RTMP chapter
+       here. Drop useless opcode section.
+       * doc/C/gnashref.xml: Rearrange top level chapters.
+       * doc/C/refmanual/configuration.xml: Don't include featureoptions
+       or custompath here anymore.
+       * doc/C/refmanual/internals.xml: Update to match reality. Add new
+       utilities.
+       * doc/C/refmanual/new_as_class.xml: Include asvaluie section here
+       too.
+       * doc/C/refmanual/building.xml, code_dependencies.xml,
+       configuration.xml, cross_compiling.xml,
+       custompath_configuration.xml, documentation_dependencies.xml,
+       feature_configuration.xml, testing_dependencies.xml: Updated to
+       match reality.
+       * doc/C/refmanual/new_as_class.xml: changes to a chapter. Merge
+       main.xml into body. Include as_value.xml from here.
+       * doc/C/refmanual/as_value.xml: Make a sect1 for new_as_class.
+       * doc/C/Makefile.am: Tweak dependencies for the info files, as
+       they go through a name transformation, which is unfortunately
+       different between Ubuntu and Fedora. Additional tweaks for Ubuntu
+       Hardy, the .texi names don't get transformed during this step for
+       this version of the docbook tools.
+       * doc/C/Makefile.am: Link to the preformatted info file, which is
+       messy because of the name transformation.
+       * configure.ac: Always Define Docbook Conditionals or make fails.
+       * packaging/gnash_ref.info.in, gnash_user.info.in,
+       gnashuser.html.in gnashuser.ref.in: Preformatted versions of the docs.
+       * doc/C/usermanual/usage, installation, actionscript: Move to
+       reference manual. 
+       * macros/docbook.m4: Look for install-info program too, which we
+       need to add entries to the system wide info 'dirs' file.
+       * doc/C/gnashref.xml: New reference manual top level page.  This
+       contains much of what was in the old manual.
+       * asspec/*: Move to BackLash directory.
+       * doc/C/Makefile.am: don't list asspec files. Add directory for
+       installing html file. Add separate variables for the user manual
+       and the reference manual. Get rid of the useless
+       entities. variable. Drop include xmlmake and omfmake, fix tghe
+       rules and move them to the main Makefile. Fix info target so they
+       actually build correctly, and install in the dirs file. Install
+       and uninstall all the docs produced. Comment out GNOME help
+       support for now. 
+       * doc/omf.make, xmldocs.make: Don't use anymore.
+       * doc/C/usermanual: Rewritten. 
+       * usermanual/introduction.xml, /doc_authors.xml: Moved up one
+       directory so it can be shared with the reference manual.
+       * doc/C/usermanual/gtkext.xml, internals.xml, logging.xml, 
+       mysqlext.xml, object.xml, opcodes.xml, plugin.xml, rtmp.xml,
+       sources.xml: Move to reference manual.
+       * doc/C/refmanual/amf.xml, internals.xml, memory.xml, plugin.xml,
+       sources.xml, as_value.xml, logging.xml, new_as_class.xml,
+       revisions.xml, codestyle.xml, main.xml, object.xml, rtmp.xml:
+       Moved from the user manual and top level.
+       * doc/C/asspec/*: All files moved to BackLash directory.
+       * doc/backLash/accessibility.xml, array.xml, asspec.xml,
+       boolean.xml, button.xml, camera.xml, color.xml, contextmenu.xml,
+       customactions.xml, date.xml, error.xml, fdl-appendix.xml,
+       function.xml, key.xml, legal.xml, loadvars.xml,
+       localconnection.xml, math.xml, microphone.xml, mouse.xml,
+       movieclip.xml, moviecliploader.xml, netconnection.xml,
+       netstream.xml, number.xml, selection.xml,
+       sharedobject.xml,sound.xml, stage.xml, string.xml, system.xml,
+       textfield.xml, textformat.xml, textsnapshot.xml, video.xml,
+       xml.xml, xmlnode.xml, xmlsocket.xml: Move from asspec directory.
+
 2008-03-03 Sandro Santilli <address@hidden>
 
        * server/parser/sprite_definition.{cpp,h}: delegate

Index: Makefile.am
===================================================================
RCS file: /sources/gnash/gnash/Makefile.am,v
retrieving revision 1.103.2.2
retrieving revision 1.103.2.3
diff -u -b -r1.103.2.2 -r1.103.2.3
--- Makefile.am 22 Feb 2008 08:01:00 -0000      1.103.2.2
+++ Makefile.am 3 Mar 2008 23:46:37 -0000       1.103.2.3
@@ -52,20 +52,19 @@
        gui \
        plugin \
        pythonmodule \
-       testsuite \
        doc \
        po \
        $(NULL)
 
 if CYGNAL
-CYGNAL_DIRS = cygnal
+CYGNAL_DIR = cygnal
 endif
 
-# if DOCBOOK
-# DOC_DIRS = doc
-# endif
+SUBDIRS = $(STD_DIRS) $(CYGNAL_DIR)
 
-SUBDIRS      = $(STD_DIRS) $(CYGNAL_DIRS) $(DOC_DIRS)
+if TESTSUITE
+SUBDIRS += testsuite
+endif
 
 if BUILD_EXTENSIONS
 SUBDIRS += extensions
@@ -73,15 +72,25 @@
 
 # man_MANS = doc/gnash.1 doc/gprocessor.1 doc/dumpshm.1 soldumper.1
 
-DIST_SUBDIRS = $(STD_DIRS) cygnal extensions packaging
+DIST_SUBDIRS = $(STD_DIRS) cygnal extensions testsuite
 
 EXTRA_DIST =  autogen.sh \
        config.rpath \
        macros/incllist macros/libslist \
-       ChangeLog-0.8.0 ChangeLog-0.8.1
+       ChangeLog-0.8.0 ChangeLog-0.8.1 \
+       packaging/deb.am \
+       packaging/snapshot.am \
+       packaging/alp.am \
+       packaging/ipkg.am
+       packaging/bsd.am \
+       packaging/rpm.am
 
 noinst_HEADERS = compatibility_include.h
 
+# dist-hook:
+#      @test -d "$(distdir)/packaging" || $(mkinstalldirs) 
"$(distdir)/packaging"
+#      cp -p $(srcdir)/*.am $(top_distdir)/packaging/
+
 #
 # Build an RPM package
 #
@@ -313,10 +322,12 @@
        @echo " NPAPI (Mozilla) plugin disabled"
 endif
 
+if TESTSUITE
 check: check-recursive anal
 
 anal testreport checksum:
        $(srcdir)/testsuite/anaylse-results.sh
+endif
 
 .PHONY : dumpconfig \
        anal \

Index: TODO
===================================================================
RCS file: /sources/gnash/gnash/TODO,v
retrieving revision 1.12.8.1
retrieving revision 1.12.8.2
diff -u -b -r1.12.8.1 -r1.12.8.2
--- TODO        21 Feb 2008 18:27:02 -0000      1.12.8.1
+++ TODO        3 Mar 2008 23:46:37 -0000       1.12.8.2
@@ -1,36 +1,73 @@
 
                TODO: (not really in order of priorities)
 
-  - SWF9 ABC blocks interpreter 
-  - Performance improvements, and reducing the footprint.
-  - Implement all the missing functionality.
-  - Flesh out the testsuite to be a decent Flash conformance test suites.
-  - Add support for external loading of png
-  - SVG support ?
-  - Keep improving the plugin (POST requests)
+  1. Add support for sound and audio using MP3 and FLV at first, but
+     also supporting free formats like Ogg, Flac, and Theora.
+  2. SWF 8 and greater support. This appears to be mostly adding a few
+     opcodes.
+  3. Performance improvements, and reducing the footprint.
+  4. Custom ActionScript plugins (think MySQL support in Flash).
+  5. Implement all the missing functionality.
+  6. Flesh out the testsuite to be a decent Flash conformance test suites.
+  7. Add support for external loading of media.
+  8. SVG support ?
+  9. Keep improving the plugin (+ add GTK1 support).
 
 Unimplemented opcodes:
 ----------------------
 
 case 0x08:     // toggle quality
-<others>
+case 0x2A:      // throw
+case 0x2B:      // cast_object (actually implemented, but untested)
+case 0x2C:      // implements
+case 0x31:      // mb length
+case 0x35:      // mb substring
+case 0x37:      // mb chr
+case 0x43:      // declare object
+case 0x45:      // get target
+case 0x69:      // extends
+case 0x8F:      // try
+
+Partially implemented classes are:
+----------------------------------
+
+MovieClipLoader
+NetConnection,
+LocalConnection
+MovieClip
+TextField
+TextFormat
+Object (generalied and exported valueOf, toString)
 
 Unimplemented classes are:
------------------------------------------------------
-TextFormat
+--------------------------
 Accessibility
 Error
+Function
+LoadVars,
 Microphone
+NetStream
 Selection
+SharedObject
+Stage
+System
+Button,
 Camera
 Color
 ContextMenu
 CustomActions
+Video
+
+Partially implemented functions are:
+------------------------------------
+
+ASSetPropFlags (doesn't accept properties as comma-separated list string)
 
 Others
 ------
 
-There is currently no loading of external png files.
+There is currently no FLV video, only minimal AMF data support,
+and no loading of external jpegs.
 
 If you would like to contribute to Gnash's development, please
 subscribe to the developers list at

Index: configure.ac
===================================================================
RCS file: /sources/gnash/gnash/configure.ac,v
retrieving revision 1.479.2.6
retrieving revision 1.479.2.7
diff -u -b -r1.479.2.6 -r1.479.2.7
--- configure.ac        28 Feb 2008 16:26:09 -0000      1.479.2.6
+++ configure.ac        3 Mar 2008 23:46:37 -0000       1.479.2.7
@@ -16,7 +16,7 @@
 dnl  
 
 AC_PREREQ(2.50)
-AC_INIT(gnash, 0.8.2)
+AC_INIT(gnash, cvs)
 AC_CONFIG_SRCDIR(server/gnash.h)
 AM_CONFIG_HEADER(gnashconfig.h)
 
@@ -34,7 +34,6 @@
 AC_PROG_INSTALL
 AM_COMPILER_LIB
 
-
 dnl Set the default values for Flash Version. These are converted into
 dnl various strings to make JavaScript or ActionScript detectors
 dnl recognize Gnash as a Flash Player.
@@ -286,6 +285,24 @@
 fi
 AM_CONDITIONAL(MENUS, test x$menus = xyes)
 
+dnl Disable running any tests for "make check". This may sound stupid, but
+dnl this option is designed to soley be used by maintainers in the 
+dnl DISTCHECK_CONFIGURE_FLAGS when building packages. Gnash's testing 
infrastructure
+dnl is complex, and often the the testsuites will work, but due to some 
obscure reason,
+dnl make distcheck fails.
+AC_ARG_ENABLE(testsuite,
+  AC_HELP_STRING([--disable-testsuite],[Disable the testsuite, maintainers 
option only]),
+[case "${enableval}" in
+  yes) testsuite=yes ;;
+  no)  testsuite=no ;;
+  *)   AC_MSG_ERROR([bad value ${enableval} for --disable-testsuite option]) ;;
+esac],testsuite=yes)
+
+if test x"$testsuite" = x"yes"; then
+  AC_DEFINE([USE_TESTSUITE], [], [Testsuite support, maintainers option only])
+fi
+AM_CONDITIONAL(TESTSUITE, test x$testsuite = xyes)
+
 dnl -- dnl Enable building the gui support even when statically
 dnl -- dnl linking. Normally this is only disabled when building a statically
 dnl -- dnl linked gnash executable.
@@ -875,6 +892,14 @@
 if test x$cross_compiling = xyes; then
   AC_MSG_NOTICE([Configuring Gnash for cross compilation])
   export pkgroot="`$CXX -print-search-dirs | grep "install:" | sed -e 
's/install: //' -e 's:/lib/gcc/.*::'`"
+  dnl pkgroot only works correctly with builds of cross tools not in
+  dnl /usr, ie... installed from the distribution packages, or just
+  dnl plain installed in the system tools. This contaminates configure
+  dnl when building for variations of the same basic architecture,
+  dnl like i686-linux -> i586-mingw32.
+  if test x${pkgroot} = "/usr"; then
+    export pkgroot=""
+  fi
   export incllist="`eval echo ${with_top_level}/include 
${pkgroot}/${host_alias}/include ${pkgroot}/include`"
   export libslist="`eval echo ${with_top_level}/lib 
${pkgroot}/${host_alias}/lib ${pkgroot}/lib64 ${pkgroot}/lib32 ${pkgroot}/lib`"
   export pathlist="`eval echo ${pkgroot}/${host_alias}/bin:${pkgroot}/bin`"
@@ -1573,6 +1598,7 @@
 fi
 
 
+
 if test x$build_cairo = xyes; then
   GNASH_PKG_FIND(cairo, [cairo.h], [cairo render library], cairo_status)
 dnl   if test x"${CAIRO_CFLAGS}" != x; then
@@ -1629,7 +1655,15 @@
 fi
 
 GNASH_DOCBOOK
+AM_CONDITIONAL(ENABLE_INFO, test x${INSTALL_INFO} != x)
 AM_CONDITIONAL(DOCBOOK, test x$docbook = xyes)
+AM_CONDITIONAL(ENABLE_TEXI, [ test x"$DB2X_TEXI" != x -o x"$DB2X_TEXIXML" != x 
])
+AM_CONDITIONAL(ENABLE_PDF, [ test x"$DB2X_PDF" ])
+AM_CONDITIONAL(ENABLE_HTML, [ test x"$XSLTPROC" != x -a x"$docbook_styles" != 
x ])
+AM_CONDITIONAL(ENABLE_FOP, [ test x"$FOP" != x -a x"$docbook_styles" != x ])
+AM_CONDITIONAL(ENABLE_XMLTEX, [ test x"$PDFXMLTEX" != x -a x"$XSLTPROC" != x 
-a x"$docbook_styles" != x ])
+dnl  AM_CONDITIONAL(ENABLE_DBLATEX, [ test x"$DBLATEX" != x ])
+AM_CONDITIONAL(ENABLE_MAN, [ test x"$DB2X_MAN" != x -o x"$DB2X_MANXML" != x ])
 AM_CONDITIONAL(HAVE_AGG, [test x"${AGG_LIBS}" != x])
 
 GNASH_PATH_CURL
@@ -1898,11 +1932,6 @@
 cygnal/Makefile
 cygnal/testsuite/Makefile
 cygnal/testsuite/cygnal.all/Makefile
-packaging/Makefile
-packaging/debian/Makefile
-packaging/redhat/Makefile
-packaging/ipkg/Makefile
-packaging/doc/Makefile
 )
 
 ###

Index: doc/C/Makefile.am
===================================================================
RCS file: /sources/gnash/gnash/doc/C/Makefile.am,v
retrieving revision 1.48
retrieving revision 1.48.2.1
diff -u -b -r1.48 -r1.48.2.1
--- doc/C/Makefile.am   20 Feb 2008 05:16:19 -0000      1.48
+++ doc/C/Makefile.am   3 Mar 2008 23:46:38 -0000       1.48.2.1
@@ -17,129 +17,117 @@
 #   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
 # Building a PDF using Apache FOP only works with fop-0.20.5 for now.
-include $(top_srcdir)/doc/xmldocs.make
 
-SUBDIRS = # asspec
+htmldir = ${prefix}/share/doc/gnash
 infodir = ${prefix}/share/info
-figdir = images
 docname = gnash
 lang = C
 omffile = gnash-C.omf
-entities = \
-       internals.xml \
-       amf.xml \
-       appendix.xml \
-       debugger.xml \
-       extensions.xml \
-       fdl-appendix.xml \
-       fileext.xml \
-       gtkext.xml \
-       mysqlext.xml \
-       object.xml \
-       opcodes.xml \
-       plugin.xml \
-       rtmp.xml \
-       app_authors.xml \
-       conformance.xml \
-       gpl-appendix.xml \
+
+docdir = $(datadir)/$(PACKAGE)/doc/$(docname)/$(lang)
+omf_dest_dir=$(datadir)/omf/$(PACKAGE)
+scrollkeeper_localstate_dir = $(localstatedir)/scrollkeeper
+
+# These are the top level files for each manual.
+XML_MAIN = \
+       gnashuser.xml \
+       gnashref.xml
+
+# These are the files needed to build the Gnash user
+# manual.
+COMMON = \
+       introduction.xml \
+       security.xml \
        legal.xml \
-       logging.xml \
-       actionscript/main.xml \
-       actionscript/as_value.xml \
-       actionscript/new_as_class.xml \
-       asspec/accessibility.xml \
-       asspec/array.xml \
-       asspec/asspec.xml \
-       asspec/boolean.xml \
-       asspec/button.xml \
-       asspec/camera.xml \
-       asspec/color.xml \
-       asspec/contextmenu.xml  \
-       asspec/customactions.xml \
-       asspec/date.xml \
-       asspec/error.xml \
-       asspec/fdl-appendix.xml \
-       asspec/function.xml \
-       asspec/key.xml \
-       asspec/legal.xml \
-       asspec/loadvars.xml \
-       asspec/localconnection.xml \
-       asspec/math.xml \
-       asspec/microphone.xml \
-       asspec/mouse.xml \
-       asspec/movieclip.xml \
-       asspec/moviecliploader.xml \
-       asspec/netconnection.xml \
-       asspec/netstream.xml \
-       asspec/number.xml \
-       asspec/selection.xml \
-       asspec/sharedobject.xml \
-       asspec/sound.xml \
-       asspec/stage.xml \
-       asspec/string.xml \
-       asspec/system.xml \
-       asspec/textfield.xml \
-       asspec/textformat.xml   \
-       asspec/textsnapshot.xml \
-       asspec/video.xml \
-       asspec/xml.xml \
-       asspec/xmlnode.xml \
-       asspec/xmlsocket.xml    \
-       usermanual/installation/code_dependencies.xml \
-       usermanual/installation/configuration.xml \
-       usermanual/installation/custompath_configuration.xml \
-       usermanual/installation/documentation_dependencies.xml  \
-       usermanual/installation/feature_configuration.xml \
-       usermanual/installation/packagemanager.xml \
-       usermanual/installation/sources.xml \
-       usermanual/installation/testing_dependencies.xml \
-       usermanual/installation/cross_compiling.xml     \
-       usermanual/installation/building.xml \
-       usermanual/installation/install.xml \
-       usermanual/doc_authors.xml \
+       gpl-appendix.xml \
+       app_authors.xml \
+       doc_authors.xml \
+       fdl-appendix.xml \
+       bugreport.xml
+
+USERMAN = \
+       $(COMMON) \
        usermanual/installation.xml \
-       usermanual/introduction.xml \
        usermanual/revisions.xml \
        usermanual/usage.xml \
-       usermanual/usage/gnashrc.xml \
-       usermanual/bugreport.xml \
+       usermanual/gnashrc.xml \
        usermanual/acknowledgments.xml \
-       usermanual/conventions.xml \
-       $(NULL)
+       usermanual/conventions.xml
+
+# These are the files needed to build the Gnash reference
+# manual.
+REFMAN = \
+       $(COMMON) \
+       refmanual/code_dependencies.xml \
+       refmanual/configuration.xml \
+       refmanual/custompath_configuration.xml \
+       refmanual/documentation_dependencies.xml \
+       refmanual/feature_configuration.xml \
+       refmanual/sources.xml \
+       refmanual/testing_dependencies.xml \
+       refmanual/cross_compiling.xml   \
+       refmanual/building.xml \
+       refmanual/install.xml \
+       refmanual/codestyle.xml
+#      refmanual/packagemanager.xml
 
-xml_files = $(docname).xml actionscript.xml
+
+EXTRA_DIST = \
+       preformatted \
+       usermanual \
+       refmanual \
+       $(COMMON) \
+       $(XML_MAIN) \
+       $(dist_man_MANS) \
+       $(MANSRC) \
+       $(XML_MAIN:.xml=.html) \
+       $(XML_MAIN:.xml=.info)
 
 #noinst_SCRIPT = gen-doc.sh
+# We list the texi and info pages twice, as differing versions of the 
+# docbook-utils transform the name at different steps in the process.
+# This is an easy way to handle it either way, since we only need it as
+# dependency anyway.
 dist_man_MANS = gnash.1 gprocessor.1 dumpshm.1 soldumper.1 cygnal.1
 MANSRC = $(dist_man_MANS:.1=.man-xml)
-
-# dist_html_DATA = gnash.html actionscript.html
-# dist_info_DATA = gnash.info actionscript.info
-
-html: links gnash.html actionscript.html
-pdf:  links gnash.pdf actionscript.pdf
+INFOS  = gnash_user.info gnash_ref.info
+HTMLS  = $(XML_MAIN:.xml=.html)
+PDFS   = $(XML_MAIN:.xml=.pdf)
+TEXIS  = gnash_user.texi gnashuser.texi gnash_ref.texi gnashref.texi
+
+all-local: info html man
+
+gnashuser.html gnashuser.pdf gnash_user.info gnashuser.info: gnashuser.xml 
$(USERMAN)
+gnashref.html gnashref.pdf gnash_ref.info gnashref.info: gnashref.xml $(REFMAN)
+
+# Convienience rules for developers of these manuals. By default
+# all output formats are built if the Docbook tools are installed
+# and working correctly.
+html: $(HTMLS)
+pdf:  $(PDFS)
 man:  $(dist_man_MANS)
-texi: gnash.texi actionscript.texi
-info: links gnash.info actionscript.info
-gnash.pdf gnash.html gnash.texi: links $(xml_files) $(entities)
-actionscript.pdf actionscript.html actionscript.texi: actionscript.xml 
actionscript/main.xml actionscript/as_value.xml actionscript/new_as_class.xml
+info: $(INFOS)
+texi: $(TEXIS)
 
-SUFFIXES = .xml .html .texi .pdf .info .1 .fo .man-xml
-
-EXTRA_DIST = \
-       $(xml_files) \
-       $(entities) \
-       $(omffile) \
-       $(dist_man_MANS) \
-       $(MANSRC) \
-       actionscript.info \
-       gnash.info \
-       actionscript.html \
-       gnash.html
+#
+# Gnash uses suffix rules to build all the various supported
+# output formats. This section contains all the code that does
+# the document convesion from docbook to whatever. Note that
+# all of these are conditional, as the tools may not be
+# installed on all systems, and on some systems, getting a fully
+# working Docbook tools system can problematic. In this case 
+# preformatted versions are in the top level packaging/doc
+# directory, so we just link to them so they can be installed.
+# While it's a bit of a pain in the neck for developers to
+# keep the preformatted versions up to date, it's much easier
+# for end users because the documentation in xml, html, and info
+# formats is always available.
+#
+SUFFIXES = .xml .html .texi .pdf .info .1 .fo .man-xml .in
 
 if ENABLE_FOP
 .xml.pdf:
-       $(FOP) -xsl $(docbook_styles)/fo/docbook.xsl -xml $< -pdf $@
+       -$(FOP) -xsl $(docbook_styles)/fo/docbook.xsl -xml $< -pdf $@
 else
 if ENABLE_XMLTEX
 .xml.fo:
@@ -156,43 +144,39 @@
 
 .xml.html:
 if ENABLE_HTML
-       $(XSLTPROC) --output $@ --nonet $(docbook_styles)/html/docbook.xsl $<
+       -$(XSLTPROC) --output $@ --nonet $(docbook_styles)/html/docbook.xsl $<
        @$(RM) $*.txml
 else
-       @if test -d $(top_srcdir)/packaging/doc; then \
-         $(LN_S) -f $(top_srcdir)/packaging/doc/address@hidden ./$@; \
+       @if test -d $(srcdir)/preformatted; then \
+         echo "WARNING: Linking to preformatted version of $@, it could be out 
of date."; \
+         $(LN_S) -f $(srcdir)/preformatted/address@hidden ./$@; \
        else \
          touch $@; \
        fi
 endif
 
-#      basefile=$(notdir $(basename $<));
+# The first test seems to be the default for Fedora/Redhat/Centos based 
distributions,
+# which use a wrapper script for jade.
+# Ubuntu/Debian uses a real perl script that actually does the real work
 .xml.texi:
 if ENABLE_TEXI
        -if test x$(DB2X_TEXI) != x; then \
-         $(DB2X_TEXI) --encoding=us-ascii//TRANSLIT $< ; \
+         out=`echo $* | sed -e 's:gnash:gnash_:'`; \
+         $(DB2X_TEXI) --encoding=us-ascii//TRANSLIT --string-param 
directory-description="Gnash" --string-param output-file=$${out} $<; \
+         $(MAKEINFO) --force $${out}.texi; \
        else \
          basefile="$*"; \
           $(DB2X_XSLTPROC) -s texi $< --output $${basefile}.txml; \
-         if test x"$(DB2X_VERSION)" = x"0.8.5" -o x"$(DB2X_VERSION)" = 
x"0.8.7"; then \
-           $(DB2X_TEXIXML) --encoding=us-ascii//TRANSLIT $${basefile}.txml; \
-           sed -e "s/setfilename $${basefile}_.*\.info/setfilename 
$${basefile}.info/" $${basefile}_*.texi > $${basefile}.texi ; \
-         else \
-           $(DB2X_TEXIXML) --encoding=us-ascii//TRANSLIT --to-stdout 
$${basefile}.txml > $${basefile}.texi ; \
-         fi; \
+         $(DB2X_TEXIXML) --info --encoding=us-ascii//TRANSLIT 
$${basefile}.txml ; \
+         rm $${basefile}.txml; \
        fi
 endif
 
 .texi.info:
 if ENABLE_TEXI
        -$(MAKEINFO) --force $<
-       $(RM) *.texi
 else
-       @if test -d $(top_srcdir)/packaging/doc; then \
-         $(LN_S) -f $(top_srcdir)/packaging/doc/address@hidden ./$@; \
-       else \
-         touch $@; \
-       fi
+       touch $@;
 endif
 
 .man-xml.1:
@@ -205,72 +189,194 @@
          $(RM) $*.mxml; \
        fi
 else
-       @if test -d $(top_srcdir)/packaging/doc; then \
-         $(LN_S) -f $(top_srcdir)/packaging/doc/address@hidden ./$@; \
+       @if test -d $(srcdir)/preformatted; then \
+         echo "WARNING: Linking to preformatted version of $@, it could be out 
of date."; \
+         $(LN_S) -f $(srcdir)/preformatted/address@hidden ./$@; \
        else \
          touch $@; \
        fi
 endif
 
-alldocs: links html pdf man info
+gnash_user.info gnashuser.info: gnashuser.texi
+gnash_ref.info gnashref.info: gnashref.texi
+gnashuser.texi gnash_user.texi: gnashuser.xml
+gnashref.texi gnash_user.texi: gnashref.xml
+if ! DOCBOOK
+gnash_user.info: gnashuser.xml
+       @if test -d $(srcdir)/preformatted; then \
+         echo "WARNING: Linking to preformatted version of $@, it could be out 
of date."; \
+         $(LN_S) -f $(srcdir)/preformatted/gnash_user.info.in 
./gnash_user.info; \
+       fi
 
-# When we build in a seperate build tree, we need links to the images
-# subdirectory to have them be included in the final output.
-images:
-       @if test ! -d images; then \
-          $(LN_S) -f $(srcdir)/images images; \
+gnashuser.info: gnashuser.xml
+       @if test -d $(srcdir)/preformatted; then \
+         echo "WARNING: Linking to preformatted version of $@, it could be out 
of date."; \
+         $(LN_S) -f $(srcdir)/preformatted/gnash_user.info.in 
./gnashuser.info; \
        fi
 
-# When we build in a seperate build tree, we need links to these
-# additional Docbook source subdirectoriers to have them be included
-# in the final output without error.
-links: images
-       @if test ! -d asspec; then \
-          $(LN_S) -f $(srcdir)/asspec; \
+gnash_ref.info: gnashref.xml
+       @if test -d $(srcdir)/preformatted; then \
+         echo "WARNING: Linking to preformatted version of $@, it could be out 
of date."; \
+         $(LN_S) -f $(srcdir)/preformatted/gnash_ref.info.in ./gnash_ref.info; 
\
        fi
-       @if test ! -d usermanual; then \
-          $(LN_S) -f $(srcdir)/usermanual; \
+gnashref.info: gnashref.xml
+       @if test -d $(srcdir)/preformatted; then \
+         echo "WARNING: Linking to preformatted version of $@, it could be out 
of date."; \
+         $(LN_S) -f $(srcdir)/preformatted/gnash_ref.info.in ./gnashref.info; \
        fi
-       @if test ! -d actionscript; then \
-          $(LN_S) -f $(srcdir)/actionscript; \
+gnashref.html: gnashref.xml
+       @if test -d $(srcdir)/preformatted; then \
+         echo "WARNING: Linking to preformatted version of $@, it could be out 
of date."; \
+         $(LN_S) -f $(srcdir)/preformatted/gnash_ref.html.in ./gnashref.html; \
+       fi
+gnashuser.html: gnashref.xml
+       @if test -d $(srcdir)/preformatted; then \
+         echo "WARNING: Linking to preformatted version of $@, it could be out 
of date."; \
+         $(LN_S) -f $(srcdir)/preformatted/gnash_user.html.in 
./gnashuser.html; \
+       fi
+endif
+
+# When we build in a seperate build tree, we need links to the images
+# subdirectory to have them be included in the final output.
+# images:
+#      @if test ! -d images; then \
+#         $(LN_S) -f $(top_srcdir)/doc/C/images images; \
+#      fi
+
+lint-user:
+       @xmllint $(srcdir)/gnashuser.xml
+
+lint-ref:
+       @xmllint $(srcdir)/gnashref.xml
+
+# This target adds the images to the dist file, which is
+# produced by the dist-bzip2, dist-gzip, or snapshot targets.
+# distdir is a built in target for Automake.
+dist-hook:
+       test -d "$(distdir)/images/images" || $(mkinstalldirs) 
"$(distdir)/images"
+       for file in $(srcdir)/images/*.png $(srcdir)/images/*.txt; do \
+         basefile="`basename $${file}`"; \
+         if test ! -e $(distdir)/images/$${basefile}; then \
+           $(INSTALL_DATA) $$file $(distdir)/images/; \
+         fi; \
+       done
+
+#
+# Installing documentation can be a complex process, as we build
+# multiple output formats. This section contains all of the 
+# Makefile targets that are used to install or uninstall the
+# documentation.
+#
+
+install-html-hook: $(HTMLS)
+       @test -d "$(DESTDIR)$(htmldir)" || $(mkinstalldirs) 
"$(DESTDIR)$(htmldir)"
+       -$(INSTALL_DATA) gnashuser.html $(DESTDIR)$(htmldir)
+       -$(INSTALL_DATA) gnashref.html $(DESTDIR)$(htmldir)
+       @test -d "$(DESTDIR)$(htmldir)/images" || $(mkinstalldirs) 
"$(DESTDIR)$(htmldir)/images"
+       for file in $(srcdir)/images/*.png; do \
+         basefile=`echo $$file | sed -e  's,^.*/,,'`; \
+         $(INSTALL_DATA) $$file $(DESTDIR)$(htmldir)/images/$$basefile; \
+       done
+
+# There are two versions of install-info, with unfortunately different options.
+# Rather than test the version at configure time, we do it at runtime instead
+# so we can switch versions at installation time.
+install-info-hook: $(INFOS)
+if ENABLE_INFO
+       @test -d "$(DESTDIR)$(infodir)" || $(mkinstalldirs) 
"$(DESTDIR)$(infodir)"
+       -for i in *.info; do \
+         $(INSTALL_DATA) "$$i" $(DESTDIR)$(infodir)/"$$i"; \
+       done; \
+       type="`file $(INSTALL_INFO) | grep -ic " perl " 2>&1`"; \
+       if test $${type} -gt 0; then \
+         $(INSTALL_INFO) --menuentry="\"Gnash User Manual\"" --quiet 
--description="\"Gnash User Manual\"" --info-dir=$(DESTDIR)$(infodir) 
$(DESTDIR)$(infodir)/gnash_user.info; \
+         $(INSTALL_INFO) --menuentry="\"Gnash Reference Manual\"" --quiet 
--description="\"Gnash Reference Manual\"" --info-dir=$(DESTDIR)$(infodir) 
$(DESTDIR)$(infodir)/gnash_ref.info; \
+        else \
+         $(INSTALL_INFO) --entry="\"Gnash User Manual: (gnash_user)    Gnash 
User Manual\"" --info-dir=$(DESTDIR)$(infodir) 
$(DESTDIR)$(infodir)/gnash_user.info; \
+         $(INSTALL_INFO) --entry="\"Gnash Reference Manual (gnash_ref) Gnash 
Reference Manual\"" --info-dir=$(DESTDIR)$(infodir) 
$(DESTDIR)$(infodir)/gnash_ref.info; \
        fi
+else
+       echo "Using preformtted output file,"
+       $(LN_S) -f $(srcdir)/preformatted/gnash_user.info.in gnash_user.info
+       $(LN_S) -f $(srcdir)/preformatted/gnash_ref.info.in gnash_ref.info
+endif
+
+uninstall-info-hook:
+if ENABLE_INFO
+       -$(INSTALL_INFO) --dir-file=$(DESTDIR)$(infodir)/dir --remove 
$(DESTDIR)$(infodir)/gnash_user.info
+       -$(INSTALL_INFO)  --dir-file=$(DESTDIR)$(infodir)/dir --remove 
$(DESTDIR)$(infodir)/gnash_ref.info
+endif
+       -$(RM) $(DESTDIR)$(infodir)/gnash_user.info
+       -$(RM) $(DESTDIR)$(infodir)/gnash_ref.info
 
-lint:
-       @xmllint $(srcdir)/gnash.xml
+uninstall-html-hook:
+       -$(RM) $(DESTDIR)$(htmldir)/gnashuser.html
+       -$(RM) $(DESTDIR)$(htmldir)/gnashref.html
+       -$(RM) $(DESTDIR)$(htmldir)/images/*png
+
+# install-data-hook: install-data-hook-omf
+# uninstall-local: uninstall-local-doc uninstall-local-omf
+
+install-data-hook: install-info-hook install-html-hook 
+uninstall-hook: uninstall-info-hook uninstall-html-hook
+
+#
+# GNOME Help support, which currently isn't supported
+# by the Gnash GTK GUI.
+#
+
+# if GHELP
+# all-local: omf
+# INSTALL_DATA_HOOK += omf install-data-omf-hook
+# UNINSTALL_HOOK += uninstall-omf-hook
+# endif
+
+omf: omf_timestamp
+
+omf_timestamp: $(omffile)
+       for file in $(omffile); do \
+           $(SCROLLINSTALL) $(docdir)/$(docname).xml $(srcdir)/$$file 
$$file.out; \
+       done
+       touch omf_timestamp
+
+install-data-omf-hook:
+       $(mkinstalldirs) $(DESTDIR)$(omf_dest_dir)
+       for file in $(omffile); do \
+         $(INSTALL_DATA) $$file.out $(DESTDIR)$(omf_dest_dir)/$$file; \
+       done
+       -$(SCROLLUPDATE) -v -o $(DESTDIR)$(omf_dest_dir)
+
+uninstall-omf-hook:
+       -for file in $(omffile); do \
+           $(RM) $(DESTDIR)$(omf_dest_dir)/$$file; \
+       done
+       -rmdir $(DESTDIR)$(omf_dest_dir)
+       -$(SCROLLUPDATE) -v 
 
 CLEANFILES = \
        gnash-C.omf.out \
        manpage.links  \
        manpage.refs  \
-       gnash.tex  \
+       gnash_ref.texi  \
+       gnashref.texi  \
+       gnash_user.texi  \
+       gnashuser.texi  \
        gnash.fo  \
        gnash.log  \
-        *.texi \
-       *.txml \
-       *.mxml \
+       gnashuser.txml \
+       gnashuser.mxml \
+       gnashref.txml \
+       gnashref.mxml \
        omf_timestamp
 
 MAINTAINERCLEANFILES = \
         gnash.pdf \
        $(MANS) \
-        gnash.info \
-        gnash.html \
-       actionscript.html \
-       actionscript.info
+        gnash_user.info \
+        gnash_ref.info \
+        gnashuser.html \
+        gnashref.html
 
-install-info-hook: gnash.info
-       @test -d "$(DESTDIR)$(infodir)" || $(mkinstalldirs) 
"$(DESTDIR)$(infodir)"
-       $(INSTALL_DATA) $< $(DESTDIR)$(infodir)/gnash.info 
-       -if (install-info --version) >/dev/null 2>&1; then \
-         version=`install-info --version | grep -c 'GNU texinfo'`; \
-         if test $$version -eq 0; then \
-           install-info --menuentry="Gnash" --description="GNU Flash Player" 
--info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/gnash.info >/dev/null 
2>&1; \
-         else \
-           install-info --entry="* Gnash: (gnash). GNU Flash Player" 
--info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/gnash.info >/dev/null 
2>&1; \
-         fi; \
-       fi
-
-uninstall-info-hook:
-       $(RM) $(DESTDIR)$(infodir)/gnash.info
+# Always execute these targets as they have no real dependencies.
+.PHONY: images install-info-hook uninstall-info-hook install-html-hook 
uninstall-html-hook uninstall-data-hook install-data-hook
 
-.PHONY: images

Index: doc/C/appendix.xml
===================================================================
RCS file: /sources/gnash/gnash/doc/C/appendix.xml,v
retrieving revision 1.12
retrieving revision 1.12.10.1
diff -u -b -r1.12 -r1.12.10.1
--- doc/C/appendix.xml  4 Dec 2006 19:12:39 -0000       1.12
+++ doc/C/appendix.xml  3 Mar 2008 23:46:38 -0000       1.12.10.1
@@ -122,8 +122,6 @@
     </para>
   </sect2>
 
-  &rtmp;
-
 <!--
   <sect2 id="opcodes">
     <title>Shockwave Movie Opcodes</title>

Index: doc/C/fdl-appendix.xml
===================================================================
RCS file: /sources/gnash/gnash/doc/C/fdl-appendix.xml,v
retrieving revision 1.6
retrieving revision 1.6.2.1
diff -u -b -r1.6 -r1.6.2.1
--- doc/C/fdl-appendix.xml      20 Feb 2008 11:28:55 -0000      1.6
+++ doc/C/fdl-appendix.xml      3 Mar 2008 23:46:38 -0000       1.6.2.1
@@ -626,34 +626,22 @@
     
     <blockquote>
       <para>
-       Copyright  YEAR YOUR NAME.
+       Copyright 2008, Free Software Foundation.
       </para>
       <para>
        Permission is granted to copy, distribute and/or modify this
        document under the terms of the GNU Free Documentation
        License, Version 1.1 or any later version published by the
-       Free Software Foundation; with the <link
-       linkend="fdl-invariant">Invariant Sections</link> being LIST
-       THEIR TITLES, with the <link
-       linkend="fdl-cover-texts">Front-Cover Texts</link> being LIST,
-       and with the <link linkend="fdl-cover-texts">Back-Cover
-       Texts</link> being LIST.  A copy of the license is included in
-       the section entitled "GNU Free Documentation
-       License".
+       Free Software Foundation; with no<link
+       linkend="fdl-invariant">Invariant Sections</link>, with no <link
+       linkend="fdl-cover-texts">Front-Cover Texts</link>,
+       and with no <link linkend="fdl-cover-texts">Back-Cover
+       Texts</link>. A copy of the license is included in
+       the section entitled "GNU Free Documentation License".
       </para>
     </blockquote>
       
     <para>
-      If you have no <link linkend="fdl-invariant">Invariant
-      Sections</link>, write "with no Invariant Sections"
-      instead of saying which ones are invariant.  If you have no
-      <link linkend="fdl-cover-texts">Front-Cover Texts</link>, write
-      "no Front-Cover Texts" instead of
-      "Front-Cover Texts being LIST"; likewise for <link
-      linkend="fdl-cover-texts">Back-Cover Texts</link>.
-    </para>
-    
-    <para>
       If your document contains nontrivial examples of program code,
       we recommend releasing these examples in parallel under your
       choice of free software license, such as the <ulink type="http"

Index: doc/C/sources.xml
===================================================================
RCS file: /sources/gnash/gnash/doc/C/sources.xml,v
retrieving revision 1.46
retrieving revision 1.46.2.1
diff -u -b -r1.46 -r1.46.2.1
--- doc/C/sources.xml   20 Feb 2008 05:16:19 -0000      1.46
+++ doc/C/sources.xml   3 Mar 2008 23:46:38 -0000       1.46.2.1
@@ -22,31 +22,17 @@
     </para>
 
     <para>
-      If you are compiling with GCC you will probably need to use a
-      machine with at least 128 megabytes of physical RAM; 64MB is not
-      enough for a couple of the files, even with swap enabled and
-      optimisation turned off.
-    </para>
-    <para>
-      At present the Gnash source is about 500 MB to extracted and
-      configured and requires a total of about 25 megabytes to compile
-      it. 
-    </para>
-<!--     <para> -->
-<!--       Gnash is known to compile for most any POSIX and ANSI C++ -->
-<!--       conforming system if you have all the dependent libraries -->
-<!--       installed. Systems we test on, and which Gnash is know to -->
-<!--       run on are Ubuntu, Fedora, Debian, OpenBSD, NetBSD, FreeBSD, -->
-<!--       Win32, and Darwin (OSX) primarily. Occasionally other platforms -->
-<!--       are built, primarily by those distribution maintainers. This -->
-<!--       includes BeOS, Haiku, Syllable, OS/2, Solaris, Slackware, Gentoo. 
-->
-<!--     </para> -->
-    <para>
-      Continue reading for detailed step-by-step instructions of the
-      entire procedure. For Win32 users, you will need to install
-      <emphasis>Cygwin</emphasis> to follow these directions. The
-      Gnash source tree includes Microsoft Visual C++ project files,
-      but they may not be as well maintained. Patches always welcome.
+      If you are compiling with GCC you will probably need to use a machine
+      with at least 128 megabytes of physical RAM; 64MB is not enough for a
+      couple of the files, even with swap enabled and optimisation turned off.
+    </para>
+    <para>
+      At present the Gnash source is about 16 MB to extracted and configured
+      and requires a total of about 100 megabytes to compile it.
+    </para>
+    <para>
+      Continue reading for detailed step-by-step instructions 
+      of the entire procedure.
     </para>  
   </sect2>
   
@@ -67,8 +53,6 @@
               url="http://ftp.gnu.org/gnu/gnash";>
                    http://ftp.gnu.org/gnu/gnash
        </ulink>
-       Gnash is released as source, binary packages of releases
-       should be available from most all upstream distributions.
       </para>
     </sect3>
 
@@ -90,482 +74,15 @@
       </para>
       <para>
        If you only have access to the internet via a web proxy,
-       you will find daily source snapshots of the latest CVS tree
-       at:
+       you will find daily snapshots of the latest CVS tree in
        <ulink type="http"
               url="http://www.gnashdev.org/dev_snapshots/";>
                    http://www.gnashdev.org/dev_snapshots
        </ulink> 
       </para>
-      <para>
-       You can also get binary snapshots for a variety of platforms
-       built via our normal automated testing harness. Because these
-       are built through automation, there may be problems with
-       specific snapshots. You can get binary snapshots from:
-       <ulink type="http"
-              url="http://www.getgnash.org/packages/";>
-                   http://www.getgnash.org/packages
-       </ulink> 
-      </para>
-      <para>
-       These builds are not officially supported by anyone, but are
-       provided to let people run Gnash without having to go through
-       this entire build procedure.
-      </para>
     </sect3>
   </sect2>
 
-  <sect2 id="codedepend">
-    <title>Code Dependencies</title>
-
-    <para>
-      Gnash has dependencies on other packages. When installing
-      from a packaged release file (rpm, deb, etc.), you'll need
-      to install the development versions to get the tools used to
-      compile Gnash. The normal runtime packages installed are usually
-      missing the headers needed to compile Gnash.
-    </para>
-
-    <para>
-      Not all dependencies are required for all Gnash
-      configurations. For example, using the GTK GUI adds dependencies
-      for ATK, Pango, and Cairo.
-    </para>
-
-    <sect3 id="opengl">
-      <title>OpenGL</title>
-      <para>
-       Gnash can use OpenGL for rendering the images. OpenGL is a 3D
-       graphics package which supports hardware acceleration. You can
-       get the free version of OpenGL at this link: 
-       <ulink type="http"
-              url="http://www.mesa3d.org";>http://www.mesa3d.org</ulink> 
-      </para>
-
-      <para>
-       To install a binary package using <emphasis>apt-get</emphasis>
-       (on Debian based systems), install <emphasis>libgl1-mesa-dev</emphasis>.
-       For RPM or Yum based systems, install the <emphasis>libmesa-devel
-       </emphasis> package.
-      </para>
-
-      <para>
-       Please note that the free X11 drivers currently do not support
-       acceleration, so unless you are running the binary blob Nvidia
-       or ATI drivers, there is no advantage to using OpenGL with
-       Gnash.
-      </para>
-
-    </sect3>
-
-    <sect3 id="agg">
-      <title>AGG</title>
-      <para>
-       AGG is the AntiGrain low-level 2D graphics library that can be used
-       instead of OpenGL. Unlike OpenGL, AGG does all rendering in software
-       without requiring that much floating point calculation. This
-       is the default renderer for Gnash, as it supports the highest
-       quality rendering, and lower-end devices.
-      </para>
-      <para>
-       To install a binary package using apt-get (on Debian based
-       systems), install <emphasis>libagg-dev</emphasis>. For RPM or
-       Yum based systems, install the <emphasis>agg-devel</emphasis>
-       package. For BSD systems, install the <emphasis>agg</emphasis>
-       package.
-      </para>
-    </sect3>
-
-    <sect3 id="gtkglext">
-      <title>GtkGlExt</title>
-      <para>
-       GtkGlExt is an optional package used to link the GTK GUI to the
-       opengl renderer. Gtk enables better integration with Firefox,
-       as well as better event handling and higher level GUI
-       constructs like menus and dialog boxes. GTK is primary default
-       GUI for Gnash.
-      </para>
-      <para>
-       To install a binary package using apt-get (on Debian based
-       systems), install <emphasis>libgtkglext1-dev</emphasis>. For
-       RPM or Yum based systems, install the
-       <emphasis>gtkglext-devel</emphasis> package. For BSD systems,
-       install the <emphasis>gtkglext-1.2.0</emphasis> package.
-      </para>
-    </sect3>
-
-    <sect3 id="pango">
-      <title>Pango</title>
-      <para>
-       Pango is a dependency of Gtk, and is used for font handling.
-      </para>
-      <para>
-       To install a binary package using apt-get (on Debian based
-       systems), install <emphasis>libpango1.0-dev</emphasis>. For
-       RPM or Yum based systems, install the <emphasis>pango-devel
-       </emphasis> package. For BSD systems, install the
-       <emphasis>pango</emphasis> package.
-      </para>
-    </sect3>
-
-    <sect3 id="atk">
-      <title>Atk</title>
-      <para>
-       Atk is a dependency of Gtk, and is used for accessibility
-       support.
-      </para>
-      <para>
-       To install a binary package using apt-get (on Debian based
-       systems), install <emphasis>atk-dev</emphasis>. For RPM or Yum based
-       systems, install the <emphasis>atk-devel</emphasis>
-       package. For BSD systems, install the <emphasis>atk</emphasis> package.
-      </para>
-    </sect3>
-
-    <sect3 id="cairo">
-      <title>Cairo</title>
-      <para>
-       Cairo is a dependency of Gtk, and is used for 2D
-       rendering. Cairo can also be used standalone as a rendering
-       backend for Gnash without the other GTK depenencies.
-      </para>
-      <para>
-       To install a binary package using apt-get (on Debian based
-       systems), install <emphasis>libcairo2-dev</emphasis>. For RPM
-       or Yum based systems, install the <emphasis>cairo-devel</emphasis>
-       package. For BSD systems, install the <emphasis>cairo</emphasis> 
package.
-      </para>
-    </sect3>
-
-    <sect3 id="boost">
-      <title>Boost</title>
-      <para>
-       Boost is a library of portable C++ classes and templates which
-       layer on top of STL. Boost is used for thread and mutext
-       handling.
-      </para>
-      <para>
-       To install a binary package using apt-get (on Debian based
-       systems), install <emphasis>libboost-thread-dev</emphasis> and
-       <emphasis>libboost-date-time</emphasis>. For RPM or Yum based
-       systems, install the <emphasis>libboost-devel</emphasis>
-       package. For BSD systems, install the <emphasis>boost-headers
-       </emphasis> and <emphasis>boost-libs </emphasis>packages. 
-      </para>
-    </sect3>
-
-    <sect3 id="glib">
-      <title>Glib</title>
-      <para>
-       Glib is a dependency of Gtk, and is a collection of commonly
-       used lower-level functions.
-      </para>
-      <para>
-       To install a binary package using apt-get (on Debian based
-       systems), install <emphasis>glib-dev</emphasis>. For RPM or Yum based
-       systems, install the <emphasis>glib-devel</emphasis>
-       package. For BSD systems, install the <emphasis>glib2</emphasis> 
package.
-      </para>
-    </sect3>
-
-    <sect3 id="gstreamer-dep">
-      <title>Gstreamer</title>
-      <para>
-       Gstreamer is used for sound and video support. It is not
-       needed to build this release. Currently only Gstreamer version
-       0.10 or higher can be used. Also when using the Gstreamer
-       backend for Gnash, you must also have the
-       <emphasis>gstreamer-ffmpeg </emphasis> plugin to Gstreamer
-       installed, as this is where the codecs are. Gstreamer is the
-       default multimedia systems used bug Gnash, so if your
-       Gstreamer installation is messed up, audio or video won't work.
-      </para>
-      <para>
-       Because Gstreamer is an entire system for multimedia, several
-       packages must be installed for Gnash to work, which most
-       people define as having their favorite video sharing sites
-       work.
-      </para>
-      <para>
-       To install the binary packages using apt-get (on Debian based
-       systems), install <emphasis>libgstreamer0.10-dev</emphasis>,
-       <emphasis>libgstreamer-plugins-base0.10</emphasis>, and
-       <emphasis>gstreamer0.10-ffmpeg </emphasis>. For RPM or Yum based 
-       systems, install the <emphasis>gstreamer-devel</emphasis>
-       package. Version 0.10 or greater will be required. For BSD
-       systems, install the <emphasis>gstreamer-0.10</emphasis> and
-       <emphasis>gstreamer0.10-ffmpeg</emphasis> packages.
-      </para>
-    </sect3>
-
-    <sect3 id="ffmpeg-dep">
-      <title>FFMPEG</title>
-      <para>
-       FFMPEG can also be used for sound and video support. It is not
-       needed directly to build this release, as we use the
-       Gstreamer-ffmpeg plugin primarily. For some embedded systems
-       ffmpeg is prefered for size, as it can be configured to only
-       support a few chosen codecs,
-      </para>
-      <para>
-       To install a binary package using apt-get (on Debian based
-       systems), install <emphasis>libavformat-dev</emphasis>. For
-       RPM or Yum based systems, install the <emphasis>libffmpeg-devel
-       </emphasis> package. Version 0.10 or greater will be
-       required. For BSD systems, install the <emphasis>ffmpeg
-       </emphasis> package.
-      </para>
-    </sect3>
-
-    <sect3 id="sdl">
-      <title>SDL</title>
-      <para>
-       The Simple DirectMedia Layer is a cross-platform multimedia
-       library designed to provide low level access to audio,
-       keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D
-       video framebuffer. You can get SDL from this link:
-       <ulink type="http" url="http://www.libsdl.org";>
-       http://www.libsdl.org</ulink>
-      </para>
-      <para>
-       SDL can be used directly as a GUI for Gnash, and was
-       originally the only GUI support be Gnash. These days it's
-       primarily used as a dependency for other libraries, namely
-       AGG, and Gnash's own ffmpeg backend.
-      </para>
-
-      <para>
-       To install a binary package using apt-get (on Debian based
-       systems), install <emphasis>libsdl1.2-dev </emphasis>. For RPM
-       or Yum based systems, install the <emphasis>SDL-devel
-       </emphasis> package. For BSD systems, install the
-       <emphasis>sdl-1.2 </emphasis> package. 
-      </para>
-
-    </sect3>
-
-    <sect3 id="png">
-      <title>PNG</title>
-      <para>
-       <ulink type="http"
-              url="http://www.libpng.org/pub/png/";>PNG</ulink> is a
-       patent-free image format that is comparable to
-       <emphasis>GIF</emphasis>. This is primarily used as a
-       depenency by other libraries, and not directly by Gnash.
-      </para>
-      <para>
-       To install a binary package using apt-get (on Debian based
-       systems), install <emphasis>libpng12-dev </emphasis>. For RPM
-       or Yum based systems, install the <emphasis>libpng </emphasis>
-       package. For BSD systems, install the <emphasis>png
-       </emphasis> package.
-      </para>
-
-    </sect3>
-
-    <sect3 id="jpeg">
-      <title>JPEG</title>
-      <para>
-       <ulink type="http"
-              url="http://www.ijg.org/";>JPEG</ulink> is a lossy image
-       format, heavily used for images because of the smaller size of
-       the file. This is used directly by Gnash to load JPEGs.
-      </para>
-      <para>
-       To install a binary package using apt-get (on Debian based
-       systems), install <emphasis>libjpeg62-dev </emphasis>. For RPM
-       or Yum based systems, install the <emphasis>libjpeg
-       </emphasis> package.
-      </para>
-
-    </sect3>
-
-    <sect3 id="libxml2">
-      <title>libxml2</title>
-      <para>
-       Libxml2 is the GNOME XML parser library. Libxml2 is used to
-       parse any incoming messages when using the XML or XMLSocket
-       ActionScript classes. You can get libxml2 from this link: 
-       <ulink type="http" url="http://xmlsoft.org";>http://xmlsoft.org</ulink> 
-      </para>
-
-      <para>
-       To install a binary package using apt-get (on Debian based
-       systems), install <emphasis>libxml2-dev </emphasis>. For RPM
-       or Yum based systems, install the <emphasis>libxml2-devel
-       </emphasis> package. For BSD systems, install the
-       <emphasis>libxml2 </emphasis> package.
-      </para>
-    </sect3>
-    
-    <sect3 id="ogg">
-      <title>Ogg Vorbis</title>
-      <para>
-       <ulink type="http" url="http://www.vorbis.com/";>Ogg
-       Vorbis</ulink> is a patent free audio format that is
-       comparable (many people say better) to MP3. You can get Ogg
-       Vorbis from this 
-       link: <ulink type="http" url="http://www.vorbis.com/";>
-       http://www.vorbis.com/</ulink>. Ogg Vorbis is the prefered
-       audio codec for Gnash, and is also supported by the Gstreamer
-       and ffmpeg packages.
-      </para>
-      <para>
-       To install a binary package using apt-get (on Debian based
-       systems), install <emphasis>libogg-dev </emphasis>. For RPM or
-       Yum based systems, install the <emphasis>libogg </emphasis>
-       package. For BSD systems, install the <emphasis> </emphasis> package.
-      </para>
-
-    </sect3>
-
-    <sect3 id="mozilla">
-      <title>Mozilla/Firefox</title>
-
-      <para>
-       The Mozilla development package is no longer needed to build
-       the plugin. The required header files are now included in
-       Gnash, so it builds without Mozilla or Firefox installed at
-       all.
-      </para>
-       
-    </sect3>
-  </sect2>
-  
-  <sect2 id="docdepend">
-    <title>Documentation Dependencies</title>
-    
-    <sect3 id="docbook">
-      <title>Docbook</title>
-
-      <para>
-       <ulink type="http" url="http://docbook.sourceforge.net/";> 
-       Docbook</ulink> is an industry standard XML format for technical
-       documentation. It is used by many projects, as there are free
-       software implementations of the Docbook style-sheets and
-       tools. It is used by both the <ulink type="http"
-       url="http://www.gnome.org";>GNOME</ulink> project, and the
-       <ulink type="http" url="http://www.tldp.org/";>Linux
-       Documentation Project</ulink>. It is customizable by using
-       style-sheets for each output device. Default style-sheets are
-       included for a variety of print formats, like <emphasis>PDF</emphasis>
-       and <emphasis>HTML</emphasis>.
-      </para>
-      <para>
-       You can get Docbook from this link: 
-       <ulink type="http"
-              
url="http://sourceforge.net/project/showfiles.php?group_id=21935#files";>
-       
http://sourceforge.net/project/showfiles.php?group_id=21935#files</ulink>.
-       If Docbook is not installed, prebuilt files for a variety of
-       formats, like man page and GNU info are included. Up to date
-       documentation can always be found on the <ulink type="http"
-       url="http://www.gnashdev.org";> http://www.gnashdev.org</ulink>.
-      </para>
-      <para>
-       To install a binary packages using apt-get (on Debian based
-       systems), install the <emphasis>docbook </emphasis>,
-       <emphasis>docbook-xsl </emphasis>, <emphasis>docbook-xml </emphasis>,
-       <emphasis>docbook-dsssl </emphasis>, and
-       <emphasis>docbook-utils </emphasis> packages. For RPM or Yum based
-       systems, install the <emphasis>docbook </emphasis>,
-       <emphasis>docbook-style-xsl </emphasis>,
-       <emphasis>docbook-style-dsssl</emphasis>, and
-       <emphasis>docbook-utils </emphasis> packages.
-      </para>
-    </sect3>
-
-    <sect3 id="docbook2x">
-      <title>DocBook2X</title>
-
-      <para>
-        DocBook2X is a software package that converts DocBook
-        documents into the traditional Unix man page format and the
-        GNU Texinfo format. It supports tables for man pages,
-        internationalization, and easy customization of the
-        output using XSLT. This package is used to convert the Gnash
-        documentation into HTML and <ulink type="http"
-        url="http://www.gnu.org/software/texinfo/";>
-        Texinfo</ulink> formats. Texinfo can later be converted to
-        standard GNU <emphasis>info</emphasis> pages.
-      </para>
-      <para>
-       You can get DocBook2X from this link: 
-       <ulink type="http" url="http://docbook2x.sourceforge.net/";>
-       http://docbook2x.sourceforge.net/</ulink>. Texinfo is
-       available at this link:
-       <ulink type="http" url="http://ftp.gnu.org/gnu/texinfo/";>
-       http://ftp.gnu.org/gnu/texinfo/</ulink>.
-      </para>
-      <para>
-       To install a binary package of DocBook2X using apt-get (on
-       Debian based systems), install <emphasis>docbook2x
-       </emphasis>. For RPM or Yum based 
-       systems, install the <emphasis>docbook2x </emphasis> package.
-       To install a binary package of DocBook2X using apt-get (on
-       Debian based systems), install
-       <emphasis>docbook2x</emphasis>. For RPM or Yum based 
-       systems, install the <emphasis>docbook2x</emphasis> package.
-      </para>
-    </sect3>
-
-    <sect3 id="fop">
-      <title>FOP</title>
-
-      <para>
-       FOP (Formatting Objects Processor) is the world's first print 
-       formatter driven by XSL formatting objects (XSL-FO) and the
-       world's first output independent formatter. It is a
-       <emphasis>Java</emphasis> application that reads a formatting object
-       (FO) tree and renders the resulting pages to a specified
-       output. Output formats  currently supported include PDF, PCL,
-       PS, SVG, XML, Print, AWT, MIF and Text. The default output
-       target is PDF.
-      </para>
-
-      <para>
-       You can get <emphasis>fop</emphasis> from this link: 
-       <ulink type="http" url="http://xmlgraphics.apache.org/fop/";>
-       http://xmlgraphics.apache.org/fop/</ulink>. Presently only
-       <emphasis>fop version 0.20.5</emphasis> works with current DocBook
-       tools.
-      </para>
-    </sect3>
-
-    <sect3 id="java">
-      <title>Java</title>
-
-      <para>
-       The <emphasis>fop</emphasis> processor is a <emphasis>Java</emphasis>
-       application, so it needs a Java runtime to work. This is
-       installed on many platforms by default, but unfortunately
-       <emphasis>fop</emphasis> doesn't work with the <ulink type="http"
-       url="http://gcc.gnu.org/java/";>GCJ</ulink> runtime. There is
-       apparently work being done on FOP to make it usable, but for
-       now, this means installing <ulink type="http"
-       url="http://java.sun.com/";>Sun Java</ulink>.
-      </para>
-
-      <para>
-       In addition to the default <emphasis>j2re</emphasis> package, you also
-       need to install <emphasis>JAI</emphasis>, the Java Advanced Imaging
-       library. You can get <emphasis>JAI</emphasis> from <ulink type="http"
-       url="http://java.sun.com/products/java-media/jai/iio.html";>
-       this link</ulink>. <emphasis>JAI</emphasis> is not required, and the
-       <emphasis>PDF</emphasis> file will be generated. It will just be
-       missing all the graphics.
-      </para>
-      <para>
-       <emphasis>Fop</emphasis> also requires an environment variable to be
-       set. This is JAVA_HOME. This needs to point to the top
-       directory where your <emphasis>Sun j2re</emphasis> is installed. If
-       you have any other problems with your Java installation, you
-       can also try adding the <emphasis>Sun j2re</emphasis> path to the
-       <emphasis>CLASSPATH</emphasis> environment variable.
-      </para>
-    </sect3>
-
-  </sect2>
-    
   <sect2 id="configure">
     <title>Configuring The Code</title>
     
@@ -602,34 +119,6 @@
     </para>
     
     <para>
-      By default with zero configuration options, the configure
-      process by default will do the right thing. For example, KDE
-      support is built bt default along with GTK, but if you don't
-      have the KDE development libraries installed, KDE support is
-      then disabled. If you have problems with your builds, analysze
-      the output from configure, as Gnash always prints a warning
-      message when changing the default configuration.
-    </para>
-
-    <para>
-      The currently default build of Gnash results in two executables,
-      <emphasis>gtk-gnash </emphasis> and
-      <emphasis>kde-gnash</emphasis>, supporting their respectively
-      named GUIs toolkits. The AGG renderer is used by default, along
-      with the Gstreamer multimedia framework. Both the NSAPI
-      (Firefox/Mozilla) and Kparts (Kongueror) plugins are also built
-      by default.
-    </para>
-
-    <para>
-      Note that to install the plugins requires root access, as these
-      files have to be written to system directories. When building
-      packages, DESTDIR is used at install time, which avoids this
-      problem by only writing to a user specified and writeable
-      directory.
-    </para>
-
-    <para>
       A configure script can support many options, but they fall
       into two main types. The first type are options to enable or
       disable features. The second type is used to specify custom
@@ -637,68 +126,6 @@
       default searching and testing.
     </para>
 
-    <para>
-      To debug configure problems requires a knowledge of bourne shell
-      programming and Unix utlities. with a little m4 thrown in. This
-      is because Gnash uses GNU Autotools, because it is the best
-      system I've ever found for handling the complex issues involved
-      in cross configuration and compilation. Debugging configure
-      scripts can be made much easier by using the following
-      trick. Autoconf uses the environment variable
-      <emphasis>CONFIG_SHELL </emphasis> for invoking the subshell
-      used for configure tests. If this variable is set in your
-      environment to <emphasis>sh -x</emphasis>, then the bourne shell
-      debugging commands get printed. While this file can be very
-      large, every variable value, and expanded shell command is
-      printed out, making it relatively easy to find where the problem
-      is. To get all the shell debugging commands including the top
-      level shell, just invoke configure with <emphasis>sh -x</emphasis>.
-    </para>
-
-    <para>
-      Often configuration problems fall into a few simple
-      catagories. For native builds, if <emphasis>pkg-config
-      </emphasis> is installed, the values it returns for CFLAGS and
-      LDFLAGS are used. As these files are maintained by the
-      indivigual package maintainers themselves, they are often not
-      very portable. Gnash attempts to fix the dependencies of these
-      paths for known problems, but sometimes new problems appear as
-      other packages get updated. For cross configuration, pkg-comfig
-      is ignored, as in those cases it's never correct unless you are
-      running in a fake native cross building environment like
-      scratchbox or open embedded.
-    </para>
-
-    <para>
-      The other problem for Gnash is when pkg-config is not used,
-      Gnash needs to find the paths for the headers and libraries it
-      needs to build itslf. As most of the default macros for
-      Autotconf don't all cleanly support cross configuration, Gnash
-      includes it's own that have been developed over years of
-      testing. Still, packages and distributions occasionally change
-      things. and even the best configure tests can't cope. Gnash's
-      configure tests are as flexible as possible, but often if a
-      dependant package can't be found, and you know it's installed
-      and working, the our configure test is broken. If you find a
-      configure test is failing on your machine, please <ulink  type="http"
-       url="https://savannah.gnu.org/bugs/?group=gnash";>submit a patch</ulink>
-       or <ulink  type="http"
-       url="https://savannah.gnu.org/bugs/?group=gnash";>file a bug
-       report</ulink>.
-    </para>
-    
-    <para>
-      For cross configuring, the problem initially can be in the cross
-      toolchain used. before getting too worried, first make sure a
-      simple &quot;Hello World&quot; program can be compiled and run on your
-      target. If this works, build and run the example programs
-      included in most of the packages source distributions to make
-      sure your installation is fully functional. For a new toolchain
-      on a new target, it is very common to have issues getting the
-      entire system up and working to the level it needs to for full,
-      support of multimedia.
-    </para>
-
     <sect3 id="confoptions">
       <title>Configure Options</title>
       
@@ -707,20 +134,20 @@
        various features of Gnash. The major configuration options are:
       </para>
       <para>
-       GUI: see --enable-gui (default is GTK and KDE)
+       GUI: see --enable-gui (default is GTK)
       </para>
       <para>
        Renderer: see --enable-renderer (default is AGG)
       </para>
       <para>
-       Media handler: see --enable-media (default is Gstreamer)
+       Media handler: see --enable-media (default is FFMPEG thru SDL sound)
       </para>
 
       <para>
        The smallest working standalone version is obtained with:
        <programlisting>
        ./configure --disable-debugger --disable-cygnal --disable-docbook \
-               --disable-plugin --enable-gui=fltk.
+               --disable-plugin --enable-media=mad --enable-gui=sdl
        </programlisting>
       </para>
                 
@@ -730,8 +157,7 @@
          <listitem>
            <para>
              Disable support for the Flash debugger. The debugger is
-             mainly of interest to Flash developers, or Gnash
-             developers, and is currently a work in progress.
+             mainly of interest to Flash developers.
            </para>
          </listitem>
        </varlistentry>
@@ -787,6 +213,17 @@
        </varlistentry>
        
        <varlistentry>
+         <term>--disable-glext</term>
+         <listitem>
+           <para>
+             Disable using GtkGlExt, which forces the use of SDL
+             instead. By default if the GtkGL extension for Gtk is found
+             by configure, the GTK enabled GUI is built.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
          <term>--enable-gui=gtk|sdl|kde|fltk|fb</term>
          <listitem>
            <para>
@@ -848,7 +285,7 @@
        </varlistentry>
 
        <varlistentry>
-         <term>--disable-kparts</term>
+         <term>--disable-klash</term>
          <listitem>
            <para>
              Disable support for Konqueror plugin. If
@@ -874,18 +311,20 @@
          <term>--enable-mac</term>
          <listitem>
            <para>
-             Link to Qt/Mac (don't use X). This is only used by Klash. 
+             Link to Qt/Mac (don't use X). This is only used by
+             Klash. 
            </para>
          </listitem>
        </varlistentry>
 
        <varlistentry>
-         <term>--enable-media=ffmpeg|gst</term>
+         <term>--enable-media=ffmpeg|mad|gst</term>
          <listitem>
            <para>
              Select the specified media decoder and sound engine.
-             FFMPEG uses the SDL sound engine, GST uses its own.
-             Using <emphasis>Gstreamer</emphasis> is the default decoder.
+             FFMPEG and MAD use the SDL sound engine; GST uses its own.
+              Mixing this with --enable-sound=gst is invalid. Using
+             <emphasis>ffmpeg</emphasis> is the default decoder.
            </para>
            <para>
              You should only select one media decoder.
@@ -894,13 +333,14 @@
        </varlistentry>
 
        <varlistentry>
-         <term>--disable-nsapi</term>
+         <term>--enable-plugin</term>
          <listitem>
            <para>
-             Disable building the NSAPI plugin, which is built by
-             default. Configure
-             <emphasis>--with-plugindir=</emphasis> to specify where
-             the plugin should be installed. 
+             Enable building the plugin. By default the
+             Mozilla Firefox plugin won't be built, even if all the required
+             files are found by configure. Configure
+             <emphasis>--with-plugindir=</emphasis> to specify where the
+             plugin should be installed. 
            </para>
          </listitem>
        </varlistentry>
@@ -933,13 +373,21 @@
        </varlistentry>
 
        <varlistentry>
+         <term>--enable-sdk-install</term>
+         <listitem>
+           <para>
+             Enable installing the libraries and headers as an SDK.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
          <term>--disable-shared</term>
          <listitem>
            <para>
-             Disble building the Gnash libraries as shared libraries. 
+             Enable installing the shared libraries and headers.
              Note that the extensions mechanism may not work if shared
-             libraries are disabled, nor will the plugins get
-             built. This option is primarily used by developers.
+             libraries are disabled.
            </para>
          </listitem>
        </varlistentry>
@@ -954,6 +402,25 @@
          </listitem>
        </varlistentry>
 
+       <varlistentry>
+         <term>--enable-testing</term>
+         <listitem>
+           <para>
+             Enable testing-specific methods.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--enable-xmlreader</term>
+         <listitem>
+           <para>
+             When using the XML library, parse the messages using a
+             SAX based parser.
+           </para>
+         </listitem>
+       </varlistentry>
+
       </variablelist>
     </sect3>
       
@@ -1152,6 +619,24 @@
        </varlistentry>
 
        <varlistentry>
+         <term>--with-mad_incl</term>
+         <listitem>
+           <para>
+             Directory where libmad header is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-mad_lib</term>
+         <listitem>
+           <para>
+             Directory where libmad library is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
          <term>--with-ogg_incl</term>
          <listitem>
            <para>
@@ -1483,18 +968,11 @@
       </para>
 
       <para>
-       There is also up to date information on the Gnash Developers
-       web site at: <ulink type="http" url="http://www.gnashdev.org";>
-       http://www.gnashdev.org</ulink>. This is the best place for
-       detailed informatin on various systems.
-      </para>
-
-      <para>
        After I built up an ARM system in /usr/arm using the shell
        script from this web site, I then cross compiled all the
        other libraries I needed. The fun part is trying to get
        libMesa to cross compile, because it's not really set up for 
-       that. It's much easier to use the Gnash default, AGG.  
+       that.  
       </para>
 
       <para>
@@ -1503,9 +981,7 @@
       </para>
 
       <programlisting>
-        ../../gnash/configure --build=i686-pc-linux-gnu
-       --host=arm-linux --prefix=/usr/local/arm/oe --disable-nsapi
-       --disable-kparts --enable-gui=fb --enable-renderer=agg --disable-shared
+        ../../gnash/configure --build=i686-pc-linux-gnu --host=arm-linux 
--prefix=/usr/local/arm/oe --disable-plugin --enable-renderer=agg 
--disable-shared
       </programlisting>
       
       <para>
@@ -1564,16 +1040,15 @@
       <title>Compiling The Code</title>
 
       <para>
-       After configuring, typing <emphasis>make</emphasis> will
-       compile the code. No options are necessary. If desired, you
-       can redefine the variables used by <emphasis>make</emphasis>
-       on the command line when invoking the program. The few flags
-       of interest are <emphasis>CFLAGS</emphasis> and
-       <emphasis>CXXFLAGS</emphasis>, often used to turn on debugging
-       or turn off optimizing. Invoking make as in this example would
-       build all the code with debugging turned on, and optimizing
-       turned off. The default values for both of these variables is 
-       <emphasis>-O2 -g</emphasis>. 
+       After configuring, typing <emphasis>make</emphasis> will compile the
+       code. No options are necessary. If desired, you can redefine
+       the variables used by <emphasis>make</emphasis> on the command line
+       when invoking the program. The few flags of interest are
+       <emphasis>CFLAGS</emphasis> and <emphasis>CXXFLAGS</emphasis>, often 
used to
+       turn on debugging or turn off optimizing. Invoking make as in
+       this example would build all the code with debugging turned
+       on, and optimizing turned off. The default values for both of
+       these variables is <emphasis>-O2 -g</emphasis>.
 
        <programlisting>
          make CFLAGS=-g CXXFLAGS=-g
@@ -1592,30 +1067,19 @@
       
       <para>
        By default, the documentation isn't built at all. It isn't
-       even built when typing <emphasis>make install</emphasis> from
-       the top level build directory. It's only built when specified
-       with a specific target in the generated
-       <emphasis>Makefile</emphasis> in the
-       <emphasis>doc/C/</emphasis> sub-directory. All the documents
-       are built in this directory when executing a <emphasis>make
-       install</emphasis>. 
-      </para>
-      
-      <para>
-       By default, gnash merely links to prebuilt vesion of the
-       documentation, so without needing to have a working Docbook
-       installation, basic man pages and info pages work. This is
-       used primarily to support systems that may not have a working
-       docbook installtion when building binary packages. If these
-       files don't exist, most packaging system will fail.
+       even built when typing <emphasis>make install</emphasis> from the top
+       level build directory. It's only built when specified with a
+       specific target in the generated <emphasis>Makefile</emphasis> in the
+       <emphasis>doc/C/</emphasis> sub-directory. All the documents are built 
in
+       this directory when executing a <emphasis>make install</emphasis>.
       </para>
 
       <para>
        There is a target for each output format, <emphasis>make
-       html</emphasis>, <emphasis>make pdf</emphasis>, <emphasis>make
-       info </emphasis>, and <emphasis>make man</emphasis>. A higher
-       level target, <emphasis>make alldocs</emphasis>, builds the
-       four main formats for the documentation.
+       html</emphasis>, <emphasis>make pdf</emphasis>, <emphasis>make 
info</emphasis>,
+       and <emphasis>make man</emphasis>. A higher level target, <emphasis>make
+       alldocs</emphasis>, builds the four main formats for the
+       documentation.
       </para>
 
       <para>

Index: doc/C/usermanual/acknowledgments.xml
===================================================================
RCS file: /sources/gnash/gnash/doc/C/usermanual/acknowledgments.xml,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -u -b -r1.1 -r1.1.2.1
--- doc/C/usermanual/acknowledgments.xml        20 Feb 2008 05:16:20 -0000      
1.1
+++ doc/C/usermanual/acknowledgments.xml        3 Mar 2008 23:46:53 -0000       
1.1.2.1
@@ -21,7 +21,7 @@
     
     <para>
       &app; is based on the public domain program
-      <application>GameSWF</application>, which is a graphics library
+      <application>GameSWF</application>, a graphics library
       for games that contains the heart of a SWF interpreter.  In December
       2005, &app; was forked from <application>GameSWF</application> and
       repackaged in the GNU project style, and a major recoding started.

Index: doc/C/usermanual/glossary.xml
===================================================================
RCS file: /sources/gnash/gnash/doc/C/usermanual/glossary.xml,v
retrieving revision 1.5.2.1
retrieving revision 1.5.2.2
diff -u -b -r1.5.2.1 -r1.5.2.2
--- doc/C/usermanual/glossary.xml       28 Feb 2008 08:16:17 -0000      1.5.2.1
+++ doc/C/usermanual/glossary.xml       3 Mar 2008 23:46:53 -0000       1.5.2.2
@@ -146,12 +146,11 @@
       </glossterm>
       <glossdef>
        <para>
-         A &app; <emphasis>extension</emphasis> is a plugin (not
-         a browser plugin) which
-         implements additional 
-         functionality beyond what is covered by 
-       <emphasis>Flash</emphasis> specification. 
-       These are shared libraries which are loaded at runtime.
+         A &app; <emphasis>extension</emphasis> is a plugin (not a
+         browser plugin) which implements additional functionality
+         beyond what is covered by <emphasis>Flash</emphasis>
+         specification. These are shared libraries which are loaded
+         at runtime. 
        </para>
       </glossdef>
     </glossentry>
@@ -182,8 +181,9 @@
        <para>
          The term <emphasis>Flash</emphasis> is used to describe both the 
          Adobe IDE for creating <emphasis>SWF</emphasis>
-         files, and the technology itself.  
-         &app; documentation uses the latter definition.
+         files, and the technology itself. Flash is a trademarked
+         term of Adobe's, we prfer to use SWF to refer to the files
+         themselves, as well as the format, instead of flash(tm).
        </para>
       </glossdef>
     </glossentry>
@@ -287,7 +287,7 @@
        library provides a wrapper for mouse and keyboard events, 
        menus, windowing (where available) and a drawing area. 
        You must choose a GUI library during the
-       <link linkend="pre-configuration">configuration</link> stage.
+       configuration stage of building Gnash.
       </para>
     </glossdef>
   </glossentry>
@@ -318,8 +318,7 @@
       <glossdef>
        <para>
          <emphasis>Kpart</emphasis> is a plugin for Konqueror which is
-         enabled with the <link linkend="features">configuration option</link>
-         <emphasis>--enable-klash</emphasis>.
+         enabled with the configuration option --enable-kparts.
        </para>
       </glossdef>
     </glossentry>
@@ -476,7 +475,7 @@
        <para>
          The <emphasis>renderer</emphasis> is the subsystem of &app;
          which renders content.  Only one renderer may be used; it is
-         chosen during <link linkend="pre-configuration">configuration</link>.
+         selected at configuration time if building from source.
        </para>
        <para>
          Available renderers are: AGG, OpenGL, and Cairo. In terms of 
@@ -565,7 +564,7 @@
          which handles both event sounds and streaming sound.  Audio
          from external sources are also handled through the sound handler
          when SDL is used.  The sound handler must be selected during
-         <link linkend="pre-configuration">configuration</link>.
+         configuration of Gnash when compiling.
        </para>
        <para>
          There are currently two sound handlers available in &app;:
@@ -597,8 +596,7 @@
       </glossterm>
       <glossdef>
        <para>
-         The visible area of a Flash movie. The name derives from a
-         theater analogy. Graphical elements are referred to as
+         The visible area of a Flash movie. The name derives from a      
theater analogy. Graphical elements are referred to as
          characters.  
        </para>
       </glossdef>

Index: doc/C/usermanual/installation.xml
===================================================================
RCS file: /sources/gnash/gnash/doc/C/usermanual/installation.xml,v
retrieving revision 1.6
retrieving revision 1.6.2.1
diff -u -b -r1.6 -r1.6.2.1
--- doc/C/usermanual/installation.xml   19 Feb 2008 02:06:30 -0000      1.6
+++ doc/C/usermanual/installation.xml   3 Mar 2008 23:46:54 -0000       1.6.2.1
@@ -1,17 +1,17 @@
 <chapter id="build">
-  <title>Installing and Configuring &app;</title>
+  <title>Installing and Configuring Gnash</title>
   
   <para>
-    There are two ways of installing &app;:
-    <link linkend="packagemanager">using a package manager</link>
-    or <link linkend="gettingsource">installing from source</link>.
+    There are two ways of installing Gnash:
+<!--     <link linkend="packagemanager">using a package manager</link> -->
+    using a package manager, or <link linkend="gettingsource">installing from 
source</link>.
   </para>
   
   <sect1 id="requirements">
     <title>Requirements</title>
     
     <para>
-      Before downloading and installing &app;, check that your
+      Before downloading and installing Gnash, check that your
       hardware and software meet the following requirements.
     </para>
     
@@ -19,12 +19,12 @@
       <title>Hardware Requirements</title>
       
       <para>
-       One of the goals of &app; is to make it portable enough to install on
-       small devices.  As a result, the hardware requirements are
-       minimal. &app; has even run on an ARM9 at 200 MHz with 64 MB of RAM!
-       (It ran without video support in this case.)   While firm minimums
-       have not been established, &app; has been shown to run successfully
-       with the following:
+       One of the goals of Gnash is to make it portable enough to
+       install on small devices.  As a result, the hardware
+       requirements are minimal. Gnash has even run on an ARM9 at 200
+       MHz with 32 MB of RAM! (It ran without video support in this
+       case.) While firm minimums have not been established, Gnash
+       has been shown to run successfully with the following:
       </para>
       
       <itemizedlist>
@@ -35,31 +35,29 @@
        </listitem>
        <listitem>
          <para>
-           256 MB RAM
+           128 MB RAM
          </para>
        </listitem>
        <listitem>
          <para>
-           Video &mdash; &app; will run on anything from a raw frame buffer up 
to
-           an OpenGL-supporting graphics card.
+           Gnash will run on anything from a raw frame
+           buffer up to an OpenGL-supporting graphics card.
          </para>
        </listitem>
       </itemizedlist>
       
       <para>
        The following table provides a list of the Operating System/CPU
-       combinations on which &app; has been shown to run. 
+       combinations on which Gnash has been shown to run. 
       </para>
       
       <table id="tb-os-cpu">
        <title>Build Matrix</title>
        <tgroup cols='2' align='left' colsep='1' rowsep='1'>
-         <colspec colname='Operating System' />
-         <colspec colname='CPU' />
          <thead>
            <row>
-             <entry>Render GUI</entry>
-             <entry>Virtual Memory</entry>
+             <entry>Operating System</entry>
+             <entry>Processor</entry>
            </row>
          </thead>
          <tbody>
@@ -69,14 +67,6 @@
              </entry>
            </row>
            <row>
-             <entry>ALTLinux</entry>
-             <entry>i586</entry>
-           </row>
-           <row>
-             <entry>Arklinux</entry>
-             <entry>i586</entry>
-           </row>
-           <row>
              <entry>Debian</entry>
              <entry>Alpha AXP, AMD64, ARM, hppa, i386, Itanium, MIPS,
              PowerPC, IBM zSeries (s390), SPARC  
@@ -108,10 +98,10 @@
            <row>
              <entry>Mandriva
              </entry>
-             <entry>i386</entry>
+             <entry>i386, x86-64, MIPS</entry>
            </row>
            <row>
-             <entry>Open Embedded
+             <entry>Open Embedded, OpenMoko, Poky
              </entry>
              <entry>ARM
              </entry>
@@ -129,7 +119,7 @@
              </entry>
            </row>
            <row>
-             <entry>Red Hat Enterprise and CentOS
+             <entry>Red Hat Enterprise, CentOS
              </entry>
              <entry>x86-32, x86-64 
              </entry>
@@ -145,6 +135,10 @@
              <entry>i386</entry>
            </row>
            <row>
+             <entry>Syllable</entry>
+             <entry>i386</entry>
+           </row>
+           <row>
              <entry>Irix 6.5 
              </entry>
              <entry>MIPS R10K 
@@ -157,16 +151,7 @@
              </entry>
            </row>
            <row>
-             <entry>NetBSD</entry>
-             <entry>many, including VAX
-             </entry>
-           </row>
-           <row>
-             <entry>OpenBSD</entry>
-             <entry>many, including VAX, OS/2 and eComstation</entry>
-           </row>
-           <row>
-             <entry>Windows</entry>
+             <entry>Windows XP, Windows Vista</entry>
              <entry>x86-32</entry>
            </row>
          </tbody>
@@ -179,57 +164,45 @@
       <title>Software Requirements</title>
       
       <para>
-       The &appversion; release of &app; has been designed to run on
+       The &appversion; release of Gnash has been designed to run on
        UNIX/Linux variants, and has been run on most of the free ones.
-       However, &app; has successfully run on Windows, Darwin (Mac OS X),
-       Irix, Solaris, BeOs, OS/2, and Haiku.  &app; has also run on the
+       However, Gnash has successfully run on Windows, Darwin (Mac OS X),
+       Irix, Solaris, BeOs, OS/2, and Haiku.  Gnash has also run on the
        following 64-bit systems: PowerPC, Itanium, UltraSparc, and AMD64.
        For now, it is important to be sure that the following code, testing,
-       and documentation dependencies are met before installing &app;.  If
-       you will be downloading &app; with a package manager, these
+       and documentation dependencies are met before installing Gnash.  If
+       you will be downloading Gnash with a package manager, these
        dependencies may be solved by the package manager.  Otherwise, you
        must first verify that each of these dependencies are installed on the
        target system.
       </para>
       
-      <sect3 id="codedepend">
-       &codedependencies;
-      </sect3>
-      
-      <sect3 id="testdepend">
-       &testdependencies;
-      </sect3>
-       
-      <sect3 id="docdepend">
-       &docdependencies;
-      </sect3>
-      
     </sect2>
     
   </sect1>
   
     <sect1 id="downloading">
-      <title>Downloading &app;</title>
+      <title>Downloading Gnash</title>
       
       <para>
-       There are two ways to download &app;: using a package manager or by
+       There are two ways to download Gnash: using a package manager or by
        downloading the source code and building it on your system. If
-       possible, it is advisable to use a package manager to download &app;,
+       possible, it is advisable to use a package manager to download Gnash,
        as it will resolve dependencies for you.  However, if you want the
-       very latest features, or a &app; package is not available for your
+       very latest features, or a Gnash package is not available for your
        operating system, it is better to download the source code and build
-       &app; locally. 
+       Gnash locally. 
       </para>
       
-      <sect2 id="packagemanager">
-       &pkgmanager;
-      </sect2>
+<!--       <sect2 id="packagemanager"> -->
+<!--   &pkgmanager; -->
+<!--       </sect2> -->
       
       <sect2 id="gettingsource">
        <title>Getting the Source</title>
        
        <para>
-         &app; is available as a <link linkend="sourcereleases">release
+         Gnash is available as a <link linkend="sourcereleases">release
          tarball</link>, a <link linkend="sourcerepo">development 
          checkout</link>, or a <link linkend="sourcesnapshot">development
          snapshot</link>.
@@ -255,6 +228,19 @@
          </para>
        </sect3>
        
+       <sect3 id="sourcesnapshot">
+         <title>Snapshot</title>
+         
+         <para>
+           The daily development snapshot can be downloaded from
+           <ulink url="http://www.gnashdev.org/dev_snapshots/";
+                  type="http">http://www.gnashdev.org/dev_snapshots/</ulink>.
+           This is the best option if you need changes which were introduced
+           after the <link linkend="sourcereleases">last release</link> of
+           Gnash, but are unable to <link linkend="sourcerepo">download
+           directly from the repository.</link>
+         </para>
+       </sect3>
        <sect3 id="sourcerepo">
          <title>Repository</title>
          
@@ -285,38 +271,27 @@
          </para>
        </sect3>
        
-       <sect3 id="sourcesnapshot">
-         <title>Snapshot</title>
+      </sect2>
+
+      <sect2 id="getcodecs">
+       <title>Getting Codec Support</title>
          
          <para>
-           The daily development snapshot can be downloaded from
-           <ulink url="http://www.gnashdev.org/dev_snapshots/";
-                  type="http">http://www.gnashdev.org/dev_snapshots/</ulink>.
-           This is the best option if you need changes which were introduced
-           after the <link linkend="sourcereleases">last release</link> of
-           &app;, but are unable to <link linkend="sourcerepo">download
-           directly from the repository.</link>
+         Gnash requires codec support to handle audio and video
+         correctly. Some platforms like Ubuntu or Fedora under the
+         GNOME desktop will automatically notify the user that the
+         proper codecs aren't installed, and pop up a dialog box to
+         let the user download the codecs Gnash needs to make site
+         like YouTube work correctly. If you have installed Gnash on
+         any other platform, and video doesn't work, it's highly
+         likely you need to install the proper codecs. For most
+         platforms, this is the Gstreamer-ffmpeg plugin, available
+         from your distributions repository.
          </para>
-       </sect3>
        
       </sect2>
    
     </sect1>
     
-    <sect1 id="pre-configuration">
-      <title>Pre-Compile Configuration</title>
-      
-      &configuration;
-      
-    </sect1>
-    
-    <sect1 id="compiling">
-      &building; 
-    </sect1>
-    
-    <sect1 id="install">
-      &install; 
-    </sect1>
-    
 </chapter>
 

Index: doc/C/usermanual/revisions.xml
===================================================================
RCS file: /sources/gnash/gnash/doc/C/usermanual/revisions.xml,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -u -b -r1.4 -r1.4.2.1
--- doc/C/usermanual/revisions.xml      13 Feb 2008 02:30:10 -0000      1.4
+++ doc/C/usermanual/revisions.xml      3 Mar 2008 23:46:54 -0000       1.4.2.1
@@ -1,42 +1,18 @@
-  <revhistory>
+<revhistory>
 
       <revision> 
-          <revnumber>&appname; Manual version 0.3.0</revnumber> 
-          <date>Oct 2006</date>
-          <revdescription> 
-              <para role="author">Rob Savoye
-              <email>address@hidden</email>
-              Updated for the alpha release.
-              </para>
-
-              <para role="publisher">Free Software Foundation</para>
-          </revdescription> 
-      </revision> 
-
-      <revision>
-          <revnumber>&appname; Manual version 0.4.0</revnumber> 
-          <date>June 2007</date>
-          <revdescription>
-              <para role="author">Ann Barcomb
-              <email>address@hidden</email>
-              Rewritten for software version 0.8.0.
-              </para>
-
-              <para role="publisher">Free Software Foundation</para>
-          </revdescription>
-      </revision>
-
-      <revision> 
-          <revnumber>&appname; Manual version 0.4.1</revnumber> 
+    <revnumber>Gnash User Manual version 0.1</revnumber> 
           <date>Feb 2008</date>
           <revdescription> 
               <para role="author">Rob Savoye
-              <email>address@hidden</email>
-              Updated for the 0.8.2 release.
+      <email>address@hidden</email>
+      The end user parts of the manual have been pulled out of
+      the original version of the manual and rewritten.
               </para>
 
-              <para role="publisher">Free Software Foundation</para>
+      <para role="publisher">Open Media Now! Foundation</para>
           </revdescription> 
       </revision> 
 
-    </revhistory> 
+</revhistory> 
+  

Index: doc/C/usermanual/specification.xml
===================================================================
RCS file: /sources/gnash/gnash/doc/C/usermanual/specification.xml,v
retrieving revision 1.5
retrieving revision 1.5.2.1
diff -u -b -r1.5 -r1.5.2.1
--- doc/C/usermanual/specification.xml  20 Feb 2008 05:16:20 -0000      1.5
+++ doc/C/usermanual/specification.xml  3 Mar 2008 23:46:54 -0000       1.5.2.1
@@ -257,14 +257,14 @@
       object, and a final purge releases all
       still-<guilabel>UNREACHABLE</guilabel> resources. 
     </para>
-    
+<!--  
     <para>
       This garbage collector has reduced the memory footprint of &app;.
       However, the most current, available test data indicated the following
       runtime memory footprint: 
     </para>
     
-    <!--
+
        <table frame='all'>
        <title>Memory Footprint</title>
        <tgroup cols='4' align='left' colsep='1' rowsep='1'>
@@ -365,22 +365,22 @@
       <title>Local Shared Objects</title>
       
       <para>
-       SWF movies support a form of persistant storage called Local
+       SWF movies support a form of persistent storage called Local
        Shared Objects. These are stored in the subdirectories of one's
        <emphasis>~/.macromedia</emphasis> configuration. These files
-       are comonly called &quot;Flash Cookies&quot;, as they don't get
+       are commonly called &quot;Flash Cookies&quot;, as they don't get
        deleted when the SWF movie that created or writes data to them
        stops executing. These files often store things like game
-       scores. 
+       scores, but can also store a unique identifier for tracking purposes. 
       </para>
       
       <para>
        Till recently, what was contained in these files wasn't widely
        known. There are several LSO file utilities floating around on
-       the Web. Gnash has it's own <emphasis>soldumper</emphasis>
+       the Web. &app; has its own <emphasis>soldumper</emphasis>
        program that lets one find and dump the contents of these
        files. As of yet, I haven't discovered any nasty privacy issues
-       yet, but as Gnash's SharedObject support is new, I may have just
+       yet, but as &app;'s SharedObject support is new, I may have just
        been lucky.
       </para>
       
@@ -389,17 +389,17 @@
        stored in binary, big endian format. While one can look at the
        data in any binary editor or hex dumper, it's easier to use
        soldumper, which knows how to decode all the objects. The data
-       is stored in AMF format, a simple data interhange formats used
+       is stored in AMF format, a simple data interchange format used
        in several other places in SWF.
       </para>
       
       <para>
-       The one security setting Gnash supports is the
+       The one security setting &app; supports is the
        <emphasis>SOLReadOnly</emphasis> setting for your $HOME/.gnashrc
-       file. This makes Gnash never write to a .sol file, it only reads
+       file. This prevents &app; from ever writing to a .sol file, but can 
still read
        them. You can also set <emphasis>SOLSafeDir</emphasis> to a safe
-       subdirectory,or even remove it later, although most people
-       willwant to set this path to the default one created bythe other
+       subdirectory, or even remove it later, although most people
+       will want to set this path to the default one created by the other
        SWF player.
       </para>
       
@@ -411,12 +411,12 @@
       <para>
        SWF movies support a form of data interchange between running
        SWF movies called LocalConnection. This uses a shared memory
-       segment to exchange AMF objects. While the specification claim
+       segment to exchange AMF objects. While the specification claims
        an application has to register as a Listener, it turns out in
        reality this isn't required. Even YouTube violates this
        requirement. While one would think that data written to this
        memory segment would go away when the SWF movies are done
-       playing, but they are persistant, and on some systems, the data
+       playing, they are in fact persistent, and on some systems, the data
        even survives a reboot. Thank you Solaris...
       </para>
       
@@ -424,10 +424,10 @@
        The Gnash utility <emphasis>dumpshm</emphasis> can be used to do
        several things with these shared memory segments. This utility
        can find the shared memory segment left by using other SWF
-       players to see what has been left. it can then dump the contents
+       players to see what has been left. It can then dump the contents
        of the shared mempory segment either by decoding the AMF objects
        and printing the values, or by dumping the raw file to disk
-       where you can analysze it with any other program you wish. If
+       where you can analyze it with any other program you wish. If
        you run dumpshm repeatedly, you can even do a crude packet
        sniffing between two SWF movies playing.
       </para>

Index: doc/C/usermanual/usage.xml
===================================================================
RCS file: /sources/gnash/gnash/doc/C/usermanual/usage.xml,v
retrieving revision 1.9
retrieving revision 1.9.2.1
diff -u -b -r1.9 -r1.9.2.1
--- doc/C/usermanual/usage.xml  20 Feb 2008 11:13:31 -0000      1.9
+++ doc/C/usermanual/usage.xml  3 Mar 2008 23:46:54 -0000       1.9.2.1
@@ -16,7 +16,7 @@
     may view them in the terminal window by executing the following at
     the command line: 
     <programlisting>
-      gnash --help |less
+      gnash --help | less
     </programlisting>
   </para>
   
@@ -68,8 +68,6 @@
     <table id="tb-command-line-options">
       <title>Gnash Command Line Options</title>
       <tgroup cols='2' align='left' colsep='1' rowsep='1'>
-       <colspec colname='Option' />
-       <colspec colname='Function' />
        <thead>
          <row>
            <entry>Option</entry>
@@ -116,26 +114,18 @@
          </row>
          <row>
            <entry>
-             <option>-p</option>
-           </entry>
-           <entry>
-             Run full speed (no sleep) and log frame rate.
-           </entry>
-         </row>
-         <row>
-           <entry>
-             <option>-a</option>
+             <option>-v</option>
            </entry>
            <entry>
-             Enable Actionscript debugging.
+             Be verbose; i.e. print important messages to stdout.
            </entry>
          </row>
          <row>
            <entry>
-             <option>-v</option>
+             <option>-vv</option>
            </entry>
            <entry>
-             Be verbose; i.e. print debug messages to stdout.
+             Be very verbose; i.e. also print debug messages to stdout.
            </entry>
          </row>
          <row>
@@ -143,7 +133,8 @@
              <option>-va</option>
            </entry>
            <entry>
-             Be verbose about movie Actions. 
+             Be verbose about movie actions (for ActionScript debugging). This
+             generates very large amounts of text and will affect &app;'s 
performance.
            </entry>
          </row>
          <row>
@@ -212,7 +203,7 @@
            </entry>
            <entry>
              Play once; exit when/if movie reaches the last
-             frame. This is the default.
+             frame.
            </entry>
          </row>
          <row>
@@ -272,6 +263,7 @@
              in; this is mainly used by plugins.
            </entry>
          </row>
+<!--
          <row>
            <entry>
              <option>-b bits</option>
@@ -279,12 +271,9 @@
            <entry>
              Bit depth of output window (for example, 16 or 32). Appropriate
              bit depths depend on the renderer and GUI library used.
-             <!--
-                 TODO: add information about which depths are suitable for each
-                 renderer.
-             -->
            </entry>
          </row>
+-->
          <row>
            <entry>
              <option>-u url</option>
@@ -307,11 +296,11 @@
          </row>
          <row>
            <entry>
-             <option>-P entrymeter</option>
+             <option>-P parameter</option>
            </entry>
            <entry>
-             Parameters are given in ParamName=Value syntax and are mostly 
-             useful to the plugin to honour EMBED tags attributes 
+             Parameters are given in the syntax &quot;ParamName=Value&quot; 
and are mostly 
+             useful for the plugin to honour EMBED tags attributes 
              or explicit OBJECT PARAM tags. A common use for -P 
              is to provide FlashVars 
              (ie: -P "FlashVars=home=http://www.gnu.org";).
@@ -347,8 +336,6 @@
     <table id="tb-control-keys">
       <title>Gnash Interactive Control Keys</title>
       <tgroup cols='2' align='left' colsep='1' rowsep='1'>
-       <colspec colname='Key Combination' />
-       <colspec colname='Function' />
        <thead>
          <row>
            <entry>Key Combination</entry>
@@ -396,6 +383,8 @@
              Restart the movie.
            </entry>
          </row>
+
+<!--
          <row>
            <entry>
              <option>CTRL-[ or kp-</option>
@@ -412,6 +401,7 @@
              Step forward one frame.
            </entry>
          </row>
+-->
          <row>
              <entry>
                <option>CTRL-L</option>
@@ -455,6 +445,7 @@
              Debug.  Test the call_method() function.
            </entry>
          </row>
+<!--
          <row>
            <entry>
              <option>CTRL-B</option>
@@ -463,6 +454,7 @@
              Toggle the background color.
            </entry>
          </row>
+-->
        </tbody>
       </tgroup>
     </table>

Index: macros/docbook.m4
===================================================================
RCS file: /sources/gnash/gnash/macros/docbook.m4,v
retrieving revision 1.27.2.1
retrieving revision 1.27.2.2
diff -u -b -r1.27.2.1 -r1.27.2.2
--- macros/docbook.m4   22 Feb 2008 08:35:46 -0000      1.27.2.1
+++ macros/docbook.m4   3 Mar 2008 23:46:56 -0000       1.27.2.2
@@ -25,6 +25,11 @@
 
   DB2X_VERSION=
   if test x"$docbook" = x"yes"; then
+    dnl install-info is used to update entries in the dirs file, used by
+    dnl info to find all of it files.
+    AC_PATH_PROG(INSTALL_INFO, install-info, $PATH:/usr/sbin)
+    AC_SUBST(INSTALL_INFO)
+    AM_CONDITIONAL(ENABLE_INFO, test x${INSTALL_INFO} != x)
     docbook_styles=
     AC_ARG_WITH(docbook_styles, AC_HELP_STRING([--with-docbook-styles], 
[directory where Docbook stylesheets are]), with_docbook_styles=${withval})
     if test x"${with_docbook_styles}" != x ; then

Index: packaging/Makefile.am
===================================================================
RCS file: /sources/gnash/gnash/packaging/Makefile.am,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -b -r1.1.2.1 -r1.1.2.2
--- packaging/Makefile.am       21 Feb 2008 22:32:15 -0000      1.1.2.1
+++ packaging/Makefile.am       3 Mar 2008 23:46:56 -0000       1.1.2.2
@@ -16,6 +16,16 @@
 #   along with this program; if not, write to the Free Software
 #   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
-SUBDIRS = debian  doc ipkg redhat 
+SCRIPTS = install-gnash.sh 
 
-EXTRA_DIST = alp.am bsd.am  deb.am rpm.am snapshot.am ipkg.am install-gnash.sh 
+AMFILES = \
+       alp.am \
+       bsd.am \
+       deb.am \
+       rpm.am
+       snapshot.am \
+       ipkg.am
+
+EXTRA_DIST = \
+       $(AMFILES) \
+       $(SCRIPTS)

Index: packaging/bsd.am
===================================================================
RCS file: /sources/gnash/gnash/packaging/bsd.am,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -u -b -r1.1 -r1.1.2.1
--- packaging/bsd.am    7 Feb 2008 03:20:45 -0000       1.1
+++ packaging/bsd.am    3 Mar 2008 23:46:57 -0000       1.1.2.1
@@ -27,5 +27,18 @@
        $(MAKE) plist
        $(MAKE) package
 
+# Build a .deb snapshot, which means we have to munge the date
+# into the proper files to build a package with the version in
+# all the right places. This involves editing the debian/changelog
+# file. Configure.ac is edited by the snapshot target.
+snapshot-bsd: # snapshot
+       now=`date "+%Y%m%d"`; \
+       snapshot_dir="gnash-$${now}cvs"; \
+       mv -f $${snapshot_dir}/packaging/debian/changelog 
$${snapshot_dir}/packaging/debian/changelog.orig; \
+       sed -e "s:(.*):($${now}cvs):" 
$${snapshot_dir}/packaging/debian/changelog.orig > 
$${snapshot_dir}/packaging/debian/changelog; \
+       sed -e "s:(.*):($${now}cvs):" 
$${snapshot_dir}/packaging/debian/changelog.orig > 
$${snapshot_dir}/packaging/debian/changelog; \
+       ln -s $${snapshot_dir}/packaging/debian $${snapshot_dir}/debian;\
+       (cd $${snapshot_dir}; dpkg-buildpackage)
+
 .PHONY: bsd-pkg
 

Index: packaging/deb.am
===================================================================
RCS file: /sources/gnash/gnash/packaging/deb.am,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -u -b -r1.1 -r1.1.2.1
--- packaging/deb.am    7 Feb 2008 03:20:45 -0000       1.1
+++ packaging/deb.am    3 Mar 2008 23:46:57 -0000       1.1.2.1
@@ -22,6 +22,23 @@
        cp -fr $(srcdir)/packaging/debian gnash-${VERSION}/
        (cd gnash-${VERSION}; dpkg-buildpackage)
 
-.PHONY : deb debian 
-
+# Build a .deb snapshot, which means we have to munge the date
+# into the proper files to build a package with the version in
+# all the right places. This involves editing the debian/changelog
+# file. Configure.ac is edited by the snapshot target.
+snapshot-deb: # snapshot
+       now=`date "+%Y%m%d"`; \
+       snapshot_dir="gnash-$${now}cvs"; \
+       if test ! -d $${snapshot_dir}/debian; then \
+         cp -rp $(srcdir)/packaging/debian $${snapshot_dir}/; \
+       fi; \
+       if test -e $${snapshot_dir}/debian/changelog; then \
+         mv -f $${snapshot_dir}/debian/changelog 
$${snapshot_dir}/debian/changelog.orig; \
+         sed -e "s:(.*):($${now}cvs):" $${snapshot_dir}/debian/changelog.orig 
> $${snapshot_dir}/debian/changelog; \
+       fi; \
+       (cd $${snapshot_dir}; dpkg-buildpackage -rfakeroot \
+               -e"\"Rob Savoye <address@hidden>\""
+               -m"\"Rob Savoye <address@hidden>\""
+       )
 
+.PHONY : deb debian 

Index: packaging/snapshot.am
===================================================================
RCS file: /sources/gnash/gnash/packaging/snapshot.am,v
retrieving revision 1.5
retrieving revision 1.5.2.1
diff -u -b -r1.5 -r1.5.2.1
--- packaging/snapshot.am       16 Feb 2008 23:12:59 -0000      1.5
+++ packaging/snapshot.am       3 Mar 2008 23:46:57 -0000       1.5.2.1
@@ -32,7 +32,7 @@
 # This uses the default version for Gnash. which is 'cvs'. So we
 # rename it to the dir we want to stay clear. Then we change the default
 # version from 'cvs' to a date stamped version of cvs, like '20080202cvs'
-snapshot: distdir
+snapshot: distdir dist-hook
        address@hidden "+%Y%m%d"`; \
        pkgname="gnash-$${now}cvs"; \
        snapshot_dir="$${pkgname}"; \
@@ -47,7 +47,7 @@
            $${snapshot_dir}/configure.ac.orig > $${snapshot_dir}/configure.ac; 
\
          cd $${snapshot_dir} ; ./autogen.sh; cd .. ;\
        fi; \
-       tar zcvf $${snapshot_tar} --exclude=$${snapshot_dir}/autom4te.cache \
+       tar zcvf $${snapshot_tar} --exclude="*CVS" 
--exclude=$${snapshot_dir}/autom4te.cache \
          --exclude=$${snapshot_dir}/configure.ac.orig $${snapshot_dir}
 #      $(RM) -fr $${snapshot_dir}
 
@@ -65,12 +65,15 @@
          plugindir=/usr/lib/mozilla/plugins; \
         fi; \
        cd $${snapshot_build}; ../configure \
-       --disable-dependency-tracking --disable-rpath \
+       $(SNAPSHOT_CONFIGURE_FLAGS) \
+         --disable-dependency-tracking\
+         --disable-rpath \
          --prefix=/usr \
          --mandir=/usr/share/man \
          --infodir=/usr/share/info \
          --with-plugindir=$${plugindir} \
-         --disable-static
+         --disable-static \
+         --enable-shared
 #        --with-extensions=all 
 #        --enable-gui=all 
 
@@ -80,7 +83,8 @@
        snapshot_dir="$${pkgname}"; \
        snapshot_build="$${snapshot_dir}/_build"; \
        $(LN_S) -f $${snapshot_build}/packaging/doc 
$${snapshot_build}/packaging/; \
-       $(MAKE) $(AM_MAKEFLAGS) -C $${snapshot_build} all
+       $(MAKE) $(AM_MAKEFLAGS) -C $${snapshot_build}; \
+       $(MAKE) $(AM_MAKEFLAGS) -C $${snapshot_build}/doc/C info man html
 
 # Install a package. Afterwards we link to the prebuilt man pages incase
 # DocBook and DocBook2X aren't installed on this machine.

Index: packaging/debian/changelog
===================================================================
RCS file: /sources/gnash/gnash/packaging/debian/changelog,v
retrieving revision 1.5
retrieving revision 1.5.2.1
diff -u -b -r1.5 -r1.5.2.1
--- packaging/debian/changelog  13 Feb 2008 03:15:17 -0000      1.5
+++ packaging/debian/changelog  3 Mar 2008 23:46:57 -0000       1.5.2.1
@@ -1,20 +1,367 @@
-gnash (20080112cvs) unstable; urgency=low
+gnash (0.8.2~cvs20080302t0056-0cvs) snapshot; urgency=low
        
-  * klash is now called kde-gnash. Configure options have changed also.
+  * be able to make our own deb packages.
        
- -- Rob Savoye <address@hidden>  Fri, 25 Apr 2006 4:20:00 +0600
+ -- Rob Savoye <address@hidden>  Sun, 3 March 2008 04:20:00 +0100
 
-  * Initial release Closes: #347352
+gnash (0.8.2~cvs20080223t0056-0ubuntu1) UNRELEASED; urgency=low
        
- -- Rob Savoye <address@hidden>  Fri, 25 Apr 2006 4:20:00 +0600
+  * package 0.8.2 preview
+  * drop pkglibs that don't exist anymore from gnash-common.install
+    and add new libgnashmedia-*.so to package
+    - update debian/gnash-common.install
+  * update binaries installed by gnash-tools.install: drop usr/bin/gparser
+    and add usr/bin/soldumper as well as usr/bin/dumpshm
+    - update debian/gnash-tools.install
+  * disable tests by configure flags and drop obsolete disable-testsuite
+    patch
+    - update debian/rules
+    - drop debian/patches/disable-testsuite
+    - update debian/patches/series
+  * run make install-plugins to install the plugins and use /usr/lib/gnash
+    as --with-npapi-plugindir= in during configure
+    - update debian/rules
        
-  * Install the info file.
+ -- Alexander Sack <address@hidden>  Sat, 23 Feb 2008 01:58:44 +0100
 
- -- Rob Savoye <address@hidden>  Fri, 7 Apr 2006 4:20:00 +0600
+gnash (0.8.1-0ubuntu3) gutsy; urgency=low
 
-  * Revised to match how the plugin gets installed, and add klash.
+  * fix package description and use SWF instead of Flash
 
- -- Miriam Ruiz <address@hidden>  Fri, 20 Jan 2006 23:07:01 +0100
+ -- Michael Vogt <address@hidden>  Wed, 10 Oct 2007 14:25:42 +0200
 
-  * Revised to match how the plugin gets installed, and add klash.
+gnash (0.8.1-0ubuntu2) gutsy; urgency=low
 
+  * update gnash license to GPLv3 in debian/copyright. (LP: #147913)
+
+ -- Alexander Sack <address@hidden>  Thu, 04 Oct 2007 11:22:21 +0200
+
+gnash (0.8.1-0ubuntu1) gutsy; urgency=low
+
+  * New upstream version 0.8.1 final - UVFe acked in LP: #144396
+
+  [ Mario Danic ]
+  * debian/mozilla-plugin-gnash.prerm: Fixed upgrade procedures
+    for people with ubuntu3 and ubuntu4 packages
+
+  [ Alexander Sack ]
+  * debian/mozilla-plugin-gnash.prerm: run update-alternative --remove-all
+    when no other alternative was installed. (LP: #133197)
+  * debian/mozilla-plugin-gnash.postinst: install gnash flash alternative for
+    midbrowser.
+  * debian/mozilla-plugin-gnash.prerm: remove midbrowser alternative in prerm
+    accordingly.
+  * debian/mozilla-plugin-gnash.dirs: take care that midbrowser plugins dir
+    exists during postinst
+  * update patches in turn of changes to upstream code base:
+    - drop use_pkglibdir_for_unversioned_libs patch - applied upstream
+    - update disable-testsuite which didn't apply because of change code base
+      in proximity
+  * debian/gnash-common.install: install shared libs of final releases as well
+
+ -- Alexander Sack <address@hidden>  Thu, 13 Sep 2007 10:10:38 +0200
+
+gnash (0.8.1~trunk.070802-0ubuntu5) gutsy; urgency=low
+
+  * Rebuild for boost 1.34.0 -> 1.34.1 transistion.
+
+ -- Steve Kowalik <address@hidden>  Thu, 13 Sep 2007 11:05:21 +1000
+
+gnash (0.8.1~trunk.070802-0ubuntu4) gutsy; urgency=low
+
+  * Fixed postinst and prerm procedures 
+
+ -- Mario Danic <address@hidden>  Sun, 12 Aug 2007 00:56:48 +0200
+
+gnash (0.8.1~trunk.070802-0ubuntu3) gutsy; urgency=low
+
+  * debian/control: Addeed browsers ID's to mozilla-plugin-gnash
+  * debian/mozilla-plugin-gnash.postinst: cleanup of update-alternative
+    installation procedures
+  * debian/mozilla-plugin-gnash.prerm: cleanup of update-alternatives
+    removal procedures
+
+ -- Mario Danic <address@hidden>  Sat, 11 Aug 2007 15:29:52 +0200
+
+gnash (0.8.1~trunk.070802-0ubuntu2) gutsy; urgency=low
+
+  * debian/mozilla-plugin-gnash.postinst: use right path for alternative
+  * debian/mozilla-plugin-gnash.prerm: fix wrong path for alternatives
+
+ -- Alexander Sack <address@hidden>  Fri,  3 Aug 2007 04:08:28 +0200
+
+gnash (0.8.1~trunk.070802-0ubuntu1) gutsy; urgency=low
+
+  Update source for trunk build 070802 aka preview 0.8.1:
+      bzr repo: https://code.launchpad.net/~vcs-imports/gnash/trunk
+      revno: 5534
+
+  Redo and cleanup packaging in consequence of upstream buildsystem
+  refactoring:
+
+  * debian/rules: dropping obsolete --enable-sound and --enable-mp3 and
+    the bogus --enable-static switch; fixing --enable-gui switch
+  * debian/patches/series: don't apply no-kde-ldflags anymore ... applied
+    upstream
+  * debian/patches/series: don't apply easy-codec-install anymore ... applied
+    upstream
+  * debian/rules: use agg renderer
+  * debian/patches/{disable-testsuite,series}: disable testsuite patch
+  * debian/control: drop firefox-dev from build-depends
+  * debian/patches/*: drop ming headers patch - not used
+  * debian/rules: use enable-gui='gtk,kde'
+  * debian/rules: dropping obsolete --enable-sound and --enable-mp3 and the
+    bogus --enable-static switch; fixing --enable-gui switch
+  * debian/patches/use_pkglibdir_for_unversioned_libs, debian/patches/series:
+    install libs in pkglibdir instead of just libdir - as they are unversioned
+  * reorganize gnash packaging to take upstream changes into account:
+    all common files are now stored in pkglibdir and provided by gnash-common
+    package; in turn no libgnash0 nor libklash0 package exist anymore; gui
+    code is not linked into the binaries, which are provided by gnash and klash
+    package respectively; since no stable lib api is provided anymore
+    libgnash-dev package is now just gnash-dev (though its currently disabled
+    completely).
+  * debian/gnash-common.install: install those libs we need explicitly to
+    prevent libgnashplugin.so from getting pulled into gnash-common package
+  * debian/rules: don't run dh_makeshlibs for libgnash0 libklash0 anymore ...
+    as they don't exist
+  * debian/control: make gnash-common conflicts/replaces on libklash0,
+    libgnash0, gnash << 0.8.1~
+  * debian/gnash.manpages: remove manpages for gnash package as gnash manpage
+    is now shipped in gnash-common
+  * debian/TODO,debian/overrides/libgnash0,debian/overrides/libklash0:
+    dropping these old/unused files from bzr.
+
+  Support ubuntu flashplugin-alternative:
+  * debian/mozilla-plugin-gnash.postinst,debian/mozilla-plugin-gnash.prerm:
+    use flashplugin-alternative to i nstall plugin for browsers
+  * debian/mozilla-plugin-gnash.links: remove links to plugin-host applications
+    as they are now installed by alternatives
+  * debian/mozilla-plugin-gnash.dirs: ensure existence of plugin host 
directories
+
+ -- Alexander Sack <address@hidden>  Thu, 02 Aug 2007 16:49:57 +0000
+
+gnash (0.8.0~cvs20070611.1016-1ubuntu3) gutsy; urgency=low
+
+  * Rebuild for the libcurl transition mess.
+
+ -- Steve Kowalik <address@hidden>  Thu,  5 Jul 2007 01:35:59 +1000
+
+gnash (0.8.0~cvs20070611.1016-1ubuntu2~mt1) feisty; urgency=low
+
+  * feisty backport for mozillateam preview archive
+
+ -- Alexander Sack <address@hidden>  Sun, 17 Jun 2007 17:37:00 +0200
+
+gnash (0.8.0~cvs20070611.1016-1ubuntu2) gutsy; urgency=low
+
+  * debian/control: add libgstreamer-plugins-base0.10-dev to fix ftbfs
+
+ -- Alexander Sack <address@hidden>  Wed, 13 Jun 2007 09:41:59 +0200
+
+gnash (0.8.0~cvs20070611.1016-1ubuntu1) gutsy; urgency=low
+
+  * debian/patches/gnash_easy_codec_install: initial version of easy codec
+    install patch for gnash
+  * debian/patches/series: adapt quilt series file accordingly
+  * debian/control: adapt Maintainer field for ubuntu upload
+  * debian/control: Depends, Recommends and Suggests for libgnash0 and 
libklash0
+    changed in preparation of easy-codec-installation:
+       demote gstreamer0.10-fluendo-mp3, gstreamer0.10-ffmpeg from Recommends 
to Suggests
+       promote gstreamer0.10-plugins-base, gstreamer0.10-alsa from Recommends 
to Depends
+
+ -- Alexander Sack <address@hidden>  Tue, 12 Jun 2007 15:50:37 +0200
+
+gnash (0.8.0~cvs20070611.1016-1) unstable; urgency=low
+
+  * New CVS snapshot 20070611.1016 from release-0-8-0 branch
+  * debian/libklash0.install, debian/control, debian/rules: produce libklash0
+    package and provide proper shlibs version info
+  * debian/patches/ming_headers.patch: resurrect ming_headers patch that was
+    previously reverted
+  * debian/patches/exclude-testsuite-from-built: add patch to exclude
+    testsuite from being build
+  * debian/patches/no-kde-ldflags: take care that gnash binaries don't pull in
+    kde libs/depends
+  * debian/patches/series: update quilt series accordingly
+  * debian/rules: use --enable-renderer=opengl for now in order to build klash
+    without doing hackish stuff> * debian/control: omit extra whitespace before
+    Homepage: line *all* package descriptions
+  * debian/control: drop swfmill from build-depends (since we don't build the
+    testsuite atm)
+  * debian/control: add Alexander Sack <address@hidden> to Uploaders field
+  * debian/control: new packages for kde: libklash0 and klash; fix depends of
+    konqueror-plugin-gnash package accordingly
+  * debian/control: drop libsdl1.2-dev, libsdl-mixer1.2-dev, libfltk1.1-dev
+    from build-depends
+  * debian/control: use automake1.9 | automake in Build-Depends
+  * debian/control: don't support gstreamer 0.8 anymore -> drop from 
Build-Depends
+
+ -- Alexander Sack <address@hidden>  Tue, 12 Jun 2007 14:10:00 +0200
+
+gnash (0.7.2+cvs20070525.0721-1) unstable; urgency=low
+
+  * New Upstream Release. Downloaded from CVS.
+  * Added ming_headers.patch patch so that the missing definitions in ming
+    headers are available for the check. Closes: #425888
+
+ -- Miriam Ruiz <address@hidden>  Fri, 25 May 2007 07:21:23 +0000
+
+gnash (0.7.2+cvs20070518.1557-1) unstable; urgency=low
+
+  * New Upstream Release. Downloaded from CVS.
+  * Depending on libcurl?-gnutls-dev instead of libcurl?-openssl-dev for
+    not depending on OpenSSL (incompatible with GPL license). Closes: #423884
+  * Closes: #423433 , memory corruption vulnerability in gnash, due to a out
+    of bounds memory access ( http://savannah.gnu.org/bugs/?19774 )
+  * gstreamer0.10-audiosink is a virtual package, modifying control.
+  * Updated dependencies to use libcurl4 instead of libcurl3.
+  * Depending on swfmill for check (as well as from ming and mtasc)
+  * Make check is fatal error now.
+  * Upload sponsored by Petter Reinholdtsen.
+
+ -- Miriam Ruiz <address@hidden>  Fri, 18 May 2007 15:57:38 +0000
+
+gnash (0.7.2+cvs20070512.1527-1) unstable; urgency=low
+
+  * New Upstream Release. Downloaded from CVS.
+    + YouTube seems to be working now
+      http://lists.gnu.org/archive/html/gnash-dev/2007-05/msg00000.html
+  * Enabled gstreamer in configure: --enable-gstreamer --enable-media=gst
+  * Changed to use AGG renderer now: --enable-renderer=agg
+  * Added build dependency: libagg-dev
+  * gstreamer0.10-plugins-base, gstreamer0.10-alsa, gstreamer0.10-ffmpeg,
+    and gstreamer0.10-audiosink are needed for YouTube. Added as recommends
+      http://www.mail-archive.com/address@hidden/msg00624.html
+  * Added gstreamer0.10-fluendo-mp3 to recommends in libgnash0
+  * Upload sponsored by Petter Reinholdtsen.
+
+ -- Miriam Ruiz <address@hidden>  Sat, 12 May 2007 17:27:45 +0200
+
+gnash (0.7.2+cvs20070428.1515-2) experimental; urgency=low
+
+  * Added binary package: cygnal (media server)
+  * Upload sponsored by Petter Reinholdtsen.
+
+ -- Miriam Ruiz <address@hidden>  Sat, 28 Apr 2007 21:45:12 +0200
+
+gnash (0.7.2+cvs20070428.1515-1) unstable; urgency=low
+
+  * New Upstream Release. Downloaded from CVS.
+  * Added dependencies: libtool, libltdl3, libboost-date-time-dev,
+    libavcodec-dev, libavformat-dev
+  * Added dependencies for checking: libming-dev, libming-util, mtasc
+  * Removed binary package: klash (KDE-based standalone player)
+  * Added binary package: cygnal (media server)
+  * Added #include <cctype> to server/StringPredicates.h so that it
+    compiles with gcc 4.3. Patch: gcc4.3.patch (Closes: #417210)
+  * Added link to iceweasel plugins directory (Closes: #399920)
+  * Upload sponsored by Petter Reinholdtsen.
+
+ -- Miriam Ruiz <address@hidden>  Thu, 26 Apr 2007 10:29:52 +0200
+
+gnash (0.7.2-1) unstable; urgency=low
+
+  * New Alpha Release from Upstream:
+    + Polling main loop replaced with event driven framework for GTK.
+    + New GUI abstraction layer supporting GTK2, KDE, SDL, and a bare
+      framebuffer.
+    + Movies are parsed by a background thread, so they start playing
+      while still loading.
+    + Plugin supports web navigation and starts playing while the stream
+      is loading.
+    + New AntiGrain (AGG) 2D backend added for framebuffer devices without
+      OpenGL support.
+    + New Framebuffer GUI for devices without X11.
+    + Sound now works using ffmpeg, Gstreamer, or libMad.
+    + Supports cross configuration and cross compiling for embedded targets.
+    + A whole slew of minor bugs that kept various movies from playing.
+
+  * Upload sponsored by Petter Reinholdtsen.
+
+ -- Miriam Ruiz <address@hidden>  Sat, 18 Nov 2006 11:57:04 +0000
+
+gnash (0.7.1+cvs20061014.1744-1) unstable; urgency=low
+
+  * New Upstream Release. Downloaded from CVS.
+  * New soundhandler for gnash. It uses SDL (not SDL_mixer) for
+    soundhandling, uses ffmpeg or libmad for mp3 decoding and replaces
+    the old SDL_mixer based soundhandler. Changed --enable-sound=sdl in
+    configure.
+  * Changed Firefox plugin directory from /usr/lib/mozilla-firefox/plugins/
+    to /usr/lib/firefox/plugins/
+
+ -- Miriam Ruiz <address@hidden>  Sat, 14 Oct 2006 17:45:57 +0000
+
+gnash (0.7.1+cvs20061006.1521-1) unstable; urgency=low
+
+  * New Upstream Release. Downloaded from CVS.
+  * Added usr/lib/kde3/libklashpart.la to konqueror-plugin-gnash so that
+    Konqueror can detect the plugin. Thanks to J.Rinas <address@hidden>.
+    Closes: #384477. Closes: #389445.
+  * Added --without-gcc-arch to ./configure in debian/rules so that the
+    build script don't pass options like "-march=prescot" to gcc even if
+    the CPU of the build system supports those. Thanks to Timo Juhani
+    Lindfors <address@hidden>. Closes: #390919
+  * Added libboost-dev and libboost-thread-dev to Build-Depends.
+  * Added cmdline.patch to solve problem of cmdline parser failure
+    with "a=b.swf". Thanks to Robert Millan <address@hidden>.
+    Closes: #383770
+  * Removed patches: amf.patch getopt.patch
+  * Leaving the CVS dirs in package. They might be useful for updating the
+    source tree for testing stuff. Closes: #390283
+  * Added make check to debian/rules, even though the build won't stop if
+    failures are found.
+  * Beautify debian/rules so that output can be more easily analyzed.
+
+  * Upload sponsored by Petter Reinholdtsen.
+
+ -- Miriam Ruiz <address@hidden>  Fri,  6 Oct 2006 17:22:59 +0200
+
+gnash (0.7.1+cvs20060924.1330-1) unstable; urgency=low
+
+  * New Upstream Release. Downloaded from CVS.
+  * Modified building system for using quilt.
+  * Added gnash dependency to mozilla-plugin-gnash. Closes: #389141
+  * Added libfltk1.1-dev as a build dependency.
+  * Modified desktop files, they had a wrong program name. Closes: #384628
+  * Added copyright notice for Bitstream Vera Fonts to debian/copyright
+
+  * Upload sponsored by Petter Reinholdtsen.
+
+ -- Miriam Ruiz <address@hidden>  Sun, 24 Sep 2006 15:31:43 +0200
+
+gnash (0.7.1+cvs20060920.2136-1) unstable; urgency=low
+
+  * New Upstream Release. Downloaded from CVS.
+  * Added build dependency: libcurl3-gnutls-dev | libcurl3-openssl-dev
+  * Temporarily removed the -dev package until the API + ABI are more stable
+  * Temporarily added a versioned dependency on libgnash0
+  * Make package bin-NMU-able by using ${binary:Version} and Build-Depend on
+    dpkg-dev (>= 1.13.19)
+
+  * Upload sponsored by Petter Reinholdtsen.
+
+ -- Miriam Ruiz <address@hidden>  Wed, 20 Sep 2006 21:37:43 +0000
+
+gnash (0.7.1+cvs20060820.2237-1) experimental; urgency=low
+
+  * New Upstream Release. Downloaded from CVS.
+  * Added icon and .desktop file shortcut.
+  * Build-Depend on libxul-dev instead of mozilla-dev.
+  * Made minor modifications to the code to make it compile.
+  * Updated Standards-Version to 3.7.2 (no changes needed).
+  * Upstream confirms that the code that kills the processes has
+    been rewritten.  Closes: #374996
+
+  * Upload sponsored by Petter Reinholdtsen.
+
+ -- Miriam Ruiz <address@hidden>  Mon, 21 Aug 2006 00:38:53 +0200
+
+gnash (0.7.1-1) experimental; urgency=low
+
+  * Initial release. Closes: #347352
+
+  * Upload sponsored by Petter Reinholdtsen.
+
+ -- Miriam Ruiz <address@hidden>  Sun,  7 May 2006 00:54:46 +0000

Index: packaging/debian/control
===================================================================
RCS file: /sources/gnash/gnash/packaging/debian/control,v
retrieving revision 1.6
retrieving revision 1.6.2.1
diff -u -b -r1.6 -r1.6.2.1
--- packaging/debian/control    13 Feb 2008 03:15:17 -0000      1.6
+++ packaging/debian/control    3 Mar 2008 23:46:58 -0000       1.6.2.1
@@ -1,64 +1,143 @@
 Source: gnash
 Priority: optional
-Maintainer: Miriam Ruiz <address@hidden>
-Build-Depends: debhelper (>= 4.0.0), autoconf, automake, libxmu-dev,
- dejagnu, autotools-dev, libxml2-dev, libjpeg-dev, libpng-dev
-# libsdl1.2-dev libgtkglext1-dev
-Standards-Version: 3.6.2
+Maintainer: Alexander Sack <address@hidden>
+XSBC-Original-Maintainer: Miriam Ruiz <address@hidden>
+Uploaders: Alexander Sack <address@hidden>
+Build-Depends: dpkg-dev (>= 1.13.19), debhelper (>= 4.0.0), quilt, autoconf, 
automake1.9 | automake, libtool, libltdl3-dev, help2man, libxmu-dev, dejagnu, 
autotools-dev, libboost-dev, libboost-thread-dev, libxml2-dev, libjpeg-dev, 
libpng12-dev | libpng-dev, libagg-dev, libgstreamer0.10-dev, libpango1.0-dev | 
pango-devel, libgtkglext1-dev, libmad0-dev, libdirectfb-dev, libkonq4-dev, 
libcurl4-gnutls-dev | libcurl3-gnutls-dev | libcurl4-openssl-dev | 
libcurl3-openssl-dev, libcaca-dev, libboost-date-time-dev, libavcodec-dev, 
libavformat-dev, libming-dev, libming-util, mtasc, 
libgstreamer-plugins-base0.10-dev
+Standards-Version: 3.7.2
 Section: utils
+Xs-Vcs-Bzr: http://bazaar.launchpad.net/~ubuntu-core-dev/gnash/ubuntu
 
-Package: libgnash0
+Package: gnash-common
 Section: libs
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: free Flash movie player - shared libraries
- Gnash is a Free Flash movie player, which works either standalone, or
- as a Firefox/Mozilla plugin. This package includes the shared
- libraries. 
+Depends: ${shlibs:Depends}, ${misc:Depends}, gstreamer0.10-plugins-base, 
gstreamer0.10-alsa
+Suggests: gstreamer0.10-fluendo-mp3, gstreamer0.10-ffmpeg
+Conflicts: libgnash0 (<< 0.8.1~), gnash (<< 0.8.1~), libklash0 (<< 0.8.1~)
+Replaces: libgnash0 (<< 0.8.1~), gnash (<< 0.8.1~), libklash0 (<< 0.8.1~)
+Description: free SWF movie player - common files/libraries
+ Gnash is a free Flash movie player, which works either standalone, or as
+ plugin for Firefox/Mozilla or Konqueror.
+ .
+ This package includes the common, gui-independent files/libraries
  .
   Homepage: http://www.gnu.org/software/gnash/
 
 Package: gnash
 Section: utils
 Architecture: any
-Depends: libgnash0 (= ${Source-Version}), ${shlibs:Depends}, ${misc:Depends}
-Description: free Flash movie player
- Gnash is a Free Flash movie player, which works either standalone, or as a
- Firefox/Mozilla plugin.
+Depends: gnash-common (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Description: free SWF movie player
+ Gnash is a free Flash movie player, which works either standalone, or as
+ plugin for Firefox/Mozilla or Konqueror. Currently it is in a alpha state.
+ The plugins are under heavy development at this time.
+ .
+ Gnash supports the majority of Flash opcodes up to SWF version 7, and
+ a wide sampling of ActionScript classes for SWF version 8.5. All the
+ core ones are implemented, and many of the newer ones work, but may be
+ missing some of their methods.
+ .
+ Included in the Gnash is an XML based messaging system, as specified in
+ the Flash specification. This lets a flash movie communicate over a TCP/IP
+ socket, and parse the incoming XML message. This lets a movie be a remote
+ control for other devices or applications.
+ .
+ This package includes the standalone GTK+-based OpenGL player.
  .
- Gnash supports the current Shockwave format, version 7 reasonably well,
- and some version 8 and 9 files. Support for v8/9 is under development.
- While all the ActionScript 2 classes exist, not all of the methods
- defined by the SWF format documentation are implemented however, so
- not all flash movies work 100% if they utilize any of the
- unimplemented methods. This is one of the areas to work on to achieve
- full version 9 compliance. 
+ Homepage: http://www.gnu.org/software/gnash/
+
+Package: klash
+Section: utils
+Architecture: any
+Depends: gnash-common (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Description: free SWF movie player - standalone player for KDE
+ Gnash is a free Flash movie player, which works either standalone, or as
+ plugin for Firefox/Mozilla or Konqueror. Currently it is in a alpha state.
+ The plugins are under heavy development at this time.
+ .
+ Gnash supports the majority of Flash opcodes up to SWF version 7, and
+ a wide sampling of ActionScript classes for SWF version 8.5. All the
+ core ones are implemented, and many of the newer ones work, but may be
+ missing some of their methods.
+ .
+ Included in the Gnash is an XML based messaging system, as specified in
+ the Flash specification. This lets a flash movie communicate over a TCP/IP
+ socket, and parse the incoming XML message. This lets a movie be a remote
+ control for other devices or applications.
  .
-  Included in the Gnash is an XML based messaging system, as specified
- in the Flash specification. This lets a flash movie communicate over
- a TCP/IP socket, and parse the incoming XML message. This lets a
- movie be a remote control for other devices or applications.
+ Klash is a free standalone Flash movie player for KDE.
  .
   Homepage: http://www.gnu.org/software/gnash/
 
-Package: gnash-plugin
+Package: gnash-tools
 Section: utils
 Architecture: any
-Depends: libgnash0 (= ${Source-Version}), ${shlibs:Depends}, ${misc:Depends}
-Description: free Flash movie player - Plugin
- Gnash is a Free Flash movie player, which works either standalone, or
- as a Firefox/Mozilla plugin. This package includes the plugin for
- Mozilla Web Browser.
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: free SWF movie player - Command-line Tools
+ Gnash is a free Flash movie player, which works either standalone, or as
+ plugin for Firefox/Mozilla or Konqueror. Currently it is in a alpha state.
+ The plugins are under heavy development at this time.
+ .
+ Gnash supports the majority of Flash opcodes up to SWF version 7, and
+ a wide sampling of ActionScript classes for SWF version 8.5. All the
+ core ones are implemented, and many of the newer ones work, but may be
+ missing some of their methods.
+ .
+ Included in the Gnash is an XML based messaging system, as specified in
+ the Flash specification. This lets a flash movie communicate over a TCP/IP
+ socket, and parse the incoming XML message. This lets a movie be a remote
+ control for other devices or applications.
+ .
+ This package includes command-line utilities based in gnash.
  .
   Homepage: http://www.gnu.org/software/gnash/
 
-Package: gnash-klash
+Package: gnash-cygnal
 Section: utils
 Architecture: any
-Depends: libgnash0 (= ${Source-Version}), ${shlibs:Depends}, ${misc:Depends}
-Description: free Flash movie player - Plugin
- Gnash is a Free Flash movie player, which works either standalone, or
- as a Firefox/Mozilla plugin. This package includes the plugin for the
- Konqueror Web Browser.
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: free SWF movie player - Media server
+ Gnash is a free Flash movie player, which works either standalone, or as
+ plugin for Firefox/Mozilla or Konqueror. Currently it is in a alpha state.
+ The plugins are under heavy development at this time.
+ .
+ Gnash supports the majority of Flash opcodes up to SWF version 7, and
+ a wide sampling of ActionScript classes for SWF version 8.5. All the
+ core ones are implemented, and many of the newer ones work, but may be
+ missing some of their methods.
+ .
+ Included in the Gnash is an XML based messaging system, as specified in
+ the Flash specification. This lets a flash movie communicate over a TCP/IP
+ socket, and parse the incoming XML message. This lets a movie be a remote
+ control for other devices or applications.
+ .
+ Cygnal is Gnash's media server.
+ .
+ Homepage: http://www.gnu.org/software/gnash/
+
+Package: mozilla-plugin-gnash
+Section: utils
+Architecture: any
+Depends: gnash (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Xb-Npp-Applications: 
ec8030f7-c20a-464f-9b0e-13a3a9e97384,92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a,aa5ca914-c309-495d-91cf-3141bbb04115
+Xb-Npp-MimeType: application/x-shockwave-flash
+Xb-Npp-Name: Gnash SWF Player
+Description: free SWF movie player - Plugin for Mozilla and derivatives
+ Gnash is a free Flash movie player, which works either standalone, or as
+ plugin for Firefox/Mozilla or Konqueror.
+ .
+ This package includes the plugin for Firefox/Mozilla Web Browser.
+ .
+ Homepage: http://www.gnu.org/software/gnash/
+
+Package: konqueror-plugin-gnash
+Section: utils
+Architecture: any
+Depends: klash (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Description: free SWF movie player - Plugin for Konqueror
+ Gnash is a free Flash movie player, which works either standalone, or as
+ plugin for Firefox/Mozilla or Konqueror.
+ .
+ This package includes the plugin for Konqueror.
  .
   Homepage: http://www.gnu.org/software/gnash/

Index: packaging/debian/copyright
===================================================================
RCS file: /sources/gnash/gnash/packaging/debian/copyright,v
retrieving revision 1.2
retrieving revision 1.2.4.1
diff -u -b -r1.2 -r1.2.4.1
--- packaging/debian/copyright  1 Jul 2007 10:54:14 -0000       1.2
+++ packaging/debian/copyright  3 Mar 2008 23:46:58 -0000       1.2.4.1
@@ -1,9 +1,11 @@
 This package was debianized by Miriam Ruiz <address@hidden> on
-Fri, 20 Jan 2006 23:07:01 +0100.
+Sun,  7 May 2006 00:54:46 +0000.
 
-It was downloaded from http://www.gnu.org/software/gnash/
+It was downloaded from ftp://ftp.gnu.org/pub/gnu/gnash/
 
-Copyright Holder: Rob Savoye <address@hidden>
+Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+
+Main Author: Rob Savoye <address@hidden>
 
 Authors of Gameswf, which was the original code base for Gnash:
         Thatcher Ulrich <address@hidden>
@@ -18,7 +20,7 @@
 
    This package is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This package is distributed in the hope that it will be useful,
@@ -27,9 +29,557 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this package; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 On Debian systems, the complete text of the GNU General
-Public License can be found in `/usr/share/common-licenses/GPL'.
+Public License can be found in '/usr/share/common-licenses/GPL-3'.
+
+
+
+Other licenses:
+
+** Server:
+
+   Linking Gnash statically or dynamically with other modules is making
+   a combined work based on Gnash. Thus, the terms and conditions of
+   the GNU General Public License cover the whole combination.
+   
+   In addition, as a special exception, the copyright holders of Gnash give
+   you permission to combine Gnash with free software programs or
+   libraries that are released under the GNU LGPL and/or with Mozilla, 
+   so long as the linking with Mozilla, or any variant of Mozilla, is
+   through its standard plug-in interface. You may copy and distribute
+   such a system following the terms of the GNU GPL for Gnash and the
+   licenses of the other code concerned, provided that you include the
+   source code of that other code when and as the GNU GPL requires
+   distribution of source code. 
+   
+   Note that people who make modified versions of Gnash are not obligated
+   to grant this special exception for their modified versions; it is
+   their choice whether to do so.  The GNU General Public License gives
+   permission to release a modified version without this exception; this
+   exception also makes it possible to release a modified version which
+   carries forward this exception.
+
+** Tuffy Fonts:
+
+   Tuffy fonts have been created by Thatcher Ulrich (http://tulrich.com)
+   with FontForge 1.0 (http://fontforge.sf.net).
+   The fonts, including hint instructions, have been donated to the Public 
Domain.
+   Do whatever you want with them.
+
+** plugin/mozilla-sdk/include/npruntime.h:
+
+   Copyright © 2004, Apple Computer, Inc. and The Mozilla Foundation. 
+   All rights reserved.
+   
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions are
+   met:
+   
+   1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+   2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+   3. Neither the names of Apple Computer, Inc. ("Apple") or The Mozilla
+   Foundation ("Mozilla") nor the names of their contributors may be used
+   to endorse or promote products derived from this software without
+   specific prior written permission.
+   
+   THIS SOFTWARE IS PROVIDED BY APPLE, MOZILLA AND THEIR CONTRIBUTORS "AS
+   IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+   TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE, MOZILLA OR
+   THEIR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+   TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+** Parts of plugin/mozilla-sdk/include/prerror.h:
+
+   Copyright (C) 1987, 1988 Student Information Processing Board of the
+   Massachusetts Institute of Technology.
+
+   Permission to use, copy, modify, and distribute this software and its
+   documentation for any purpose and without fee is hereby granted, provided
+   that the above copyright notice appear in all copies and that both that
+   copyright notice and this permission notice appear in supporting
+   documentation, and that the names of M.I.T. and the M.I.T. S.I.P.B. not be
+   used in advertising or publicity pertaining to distribution of the software
+   without specific, written prior permission.  M.I.T. and the M.I.T. S.I.P.B.
+   make no representations about the suitability of this software for any
+   purpose.  It is provided "as is" without express or implied warranty.
+
+
+
+** Documentation (It is not included in binary packages, but it is in source)
+
+Copyright (c) 2005, 2006 Rob Savoye
+
+   Permission is granted to copy, distribute and/or modify this document
+   under the terms of the GNU Free Documentation License, Version 1.1 or
+   any later version published by the Free Software Foundation with no
+   Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+
+
+               GNU Free Documentation License
+                 Version 1.2, November 2002
+
+
+ Copyright (C) 2000,2001,2002  Free Software Foundation, Inc.
+     51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+0. PREAMBLE
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document "free" in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+
+This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+
+
+1. APPLICABILITY AND DEFINITIONS
+
+This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The "Document", below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as "you".  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+
+A "Modified Version" of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A "Secondary Section" is a named appendix or a front-matter section of
+the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall subject
+(or to related matters) and contains nothing that could fall directly
+within that overall subject.  (Thus, if the Document is in part a
+textbook of mathematics, a Secondary Section may not explain any
+mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The "Invariant Sections" are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+
+The "Cover Texts" are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+A "Transparent" copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not "Transparent" is called "Opaque".
+
+Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input format, SGML
+or XML using a publicly available DTD, and standard-conforming simple
+HTML, PostScript or PDF designed for human modification.  Examples of
+transparent image formats include PNG, XCF and JPG.  Opaque formats
+include proprietary formats that can be read and edited only by
+proprietary word processors, SGML or XML for which the DTD and/or
+processing tools are not generally available, and the
+machine-generated HTML, PostScript or PDF produced by some word
+processors for output purposes only.
+
+The "Title Page" means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, "Title Page" means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+
+A section "Entitled XYZ" means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as "Acknowledgements",
+"Dedications", "Endorsements", or "History".)  To "Preserve the Title"
+of such a section when you modify the Document means that it remains a
+section "Entitled XYZ" according to this definition.
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+
+
+2. VERBATIM COPYING
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+
+
+3. COPYING IN QUANTITY
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+
+
+4. MODIFICATIONS
+
+You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+
+A. Use in the Title Page (and on the covers, if any) a title distinct
+   from that of the Document, and from those of previous versions
+   (which should, if there were any, be listed in the History section
+   of the Document).  You may use the same title as a previous version
+   if the original publisher of that version gives permission.
+B. List on the Title Page, as authors, one or more persons or entities
+   responsible for authorship of the modifications in the Modified
+   Version, together with at least five of the principal authors of the
+   Document (all of its principal authors, if it has fewer than five),
+   unless they release you from this requirement.
+C. State on the Title page the name of the publisher of the
+   Modified Version, as the publisher.
+D. Preserve all the copyright notices of the Document.
+E. Add an appropriate copyright notice for your modifications
+   adjacent to the other copyright notices.
+F. Include, immediately after the copyright notices, a license notice
+   giving the public permission to use the Modified Version under the
+   terms of this License, in the form shown in the Addendum below.
+G. Preserve in that license notice the full lists of Invariant Sections
+   and required Cover Texts given in the Document's license notice.
+H. Include an unaltered copy of this License.
+I. Preserve the section Entitled "History", Preserve its Title, and add
+   to it an item stating at least the title, year, new authors, and
+   publisher of the Modified Version as given on the Title Page.  If
+   there is no section Entitled "History" in the Document, create one
+   stating the title, year, authors, and publisher of the Document as
+   given on its Title Page, then add an item describing the Modified
+   Version as stated in the previous sentence.
+J. Preserve the network location, if any, given in the Document for
+   public access to a Transparent copy of the Document, and likewise
+   the network locations given in the Document for previous versions
+   it was based on.  These may be placed in the "History" section.
+   You may omit a network location for a work that was published at
+   least four years before the Document itself, or if the original
+   publisher of the version it refers to gives permission.
+K. For any section Entitled "Acknowledgements" or "Dedications",
+   Preserve the Title of the section, and preserve in the section all
+   the substance and tone of each of the contributor acknowledgements
+   and/or dedications given therein.
+L. Preserve all the Invariant Sections of the Document,
+   unaltered in their text and in their titles.  Section numbers
+   or the equivalent are not considered part of the section titles.
+M. Delete any section Entitled "Endorsements".  Such a section
+   may not be included in the Modified Version.
+N. Do not retitle any existing section to be Entitled "Endorsements"
+   or to conflict in title with any Invariant Section.
+O. Preserve any Warranty Disclaimers.
+
+If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+
+You may add a section Entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version by various
+parties--for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+
+
+5. COMBINING DOCUMENTS
+
+You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections Entitled "History"
+in the various original documents, forming one section Entitled
+"History"; likewise combine any sections Entitled "Acknowledgements",
+and any sections Entitled "Dedications".  You must delete all sections
+Entitled "Endorsements".
+
+
+6. COLLECTIONS OF DOCUMENTS
+
+You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+
+You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+
+
+7. AGGREGATION WITH INDEPENDENT WORKS
+
+A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an "aggregate" if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation's users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+
+
+8. TRANSLATION
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+
+If a section in the Document is Entitled "Acknowledgements",
+"Dedications", or "History", the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+
+
+9. TERMINATION
+
+You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+
+10. FUTURE REVISIONS OF THIS LICENSE
+
+The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+http://www.gnu.org/copyleft/.
+
+Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License "or any later version" applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+
+
+ADDENDUM: How to use this License for your documents
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+
+    Copyright (c)  YEAR  YOUR NAME.
+    Permission is granted to copy, distribute and/or modify this document
+    under the terms of the GNU Free Documentation License, Version 1.2
+    or any later version published by the Free Software Foundation;
+    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+    A copy of the license is included in the section entitled "GNU
+    Free Documentation License".
+
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the "with...Texts." line with this:
+
+    with the Invariant Sections being LIST THEIR TITLES, with the
+    Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+
+
+** testsuite/media/Bitstream Vera Sans.fdb
+
+Font Definition Block (fdb) for embedding in SWF. Taken from 
http://ming.sf.net.
+
+Bitstream Vera Fonts Copyright:
+
+The fonts have a generous copyright, allowing derivative works (as
+long as "Bitstream" or "Vera" are not in the names), and full
+redistribution (so long as they are not *sold* by themselves). They
+can be be bundled, redistributed and sold with any software.
+
+The fonts are distributed under the following copyright:
+
+Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream
+Vera is a trademark of Bitstream, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the fonts accompanying this license ("Fonts") and associated
+documentation files (the "Font Software"), to reproduce and distribute
+the Font Software, including without limitation the rights to use,
+copy, merge, publish, distribute, and/or sell copies of the Font
+Software, and to permit persons to whom the Font Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright and trademark notices and this permission notice
+shall be included in all copies of one or more of the Font Software
+typefaces.
+
+The Font Software may be modified, altered, or added to, and in
+particular the designs of glyphs or characters in the Fonts may be
+modified and additional glyphs or characters may be added to the
+Fonts, only if the fonts are renamed to names not containing either
+the words "Bitstream" or the word "Vera".
+
+This License becomes null and void to the extent applicable to Fonts
+or Font Software that has been modified and is distributed under the
+"Bitstream Vera" names.
+
+The Font Software may be sold as part of a larger software package but
+no copy of one or more of the Font Software typefaces may be sold by
+itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL
+BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL,
+OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT
+SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
 
+Except as contained in this notice, the names of Gnome, the Gnome
+Foundation, and Bitstream Inc., shall not be used in advertising or
+otherwise to promote the sale, use or other dealings in this Font
+Software without prior written authorization from the Gnome Foundation
+or Bitstream Inc., respectively. For further information, contact:
+fonts at gnome dot org.

Index: packaging/debian/docs
===================================================================
RCS file: /sources/gnash/gnash/packaging/debian/docs,v
retrieving revision 1.1
retrieving revision 1.1.10.1
diff -u -b -r1.1 -r1.1.10.1
--- packaging/debian/docs       8 Apr 2006 04:09:44 -0000       1.1
+++ packaging/debian/docs       3 Mar 2008 23:46:58 -0000       1.1.10.1
@@ -1,2 +1,4 @@
 NEWS
 README
+README.amf
+AUTHORS

Index: packaging/debian/gnash.install
===================================================================
RCS file: /sources/gnash/gnash/packaging/debian/gnash.install,v
retrieving revision 1.1
retrieving revision 1.1.10.1
diff -u -b -r1.1 -r1.1.10.1
--- packaging/debian/gnash.install      8 Apr 2006 04:09:44 -0000       1.1
+++ packaging/debian/gnash.install      3 Mar 2008 23:46:58 -0000       1.1.10.1
@@ -1 +1,3 @@
-usr/bin/*
+usr/bin/gtk-gnash
+usr/share/pixmaps/gnash.xpm
+usr/share/applications/gnash.desktop

Index: packaging/debian/rules
===================================================================
RCS file: /sources/gnash/gnash/packaging/debian/rules,v
retrieving revision 1.3
retrieving revision 1.3.2.1
diff -u -b -r1.3 -r1.3.2.1
--- packaging/debian/rules      16 Jan 2008 00:42:55 -0000      1.3
+++ packaging/debian/rules      3 Mar 2008 23:46:58 -0000       1.3.2.1
@@ -10,6 +10,8 @@
 DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
 DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
 
+MAIN_VERSION = $(shell head -n 1 debian/changelog | cut '-d ' -f 2 | sed 
's/[()]//g')
+
 CFLAGS = -Wall -g -Werror-implicit-function-declaration
 
 ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
@@ -19,8 +21,8 @@
 endif
 
 # shared library versions, option 1
-version=2.0.5
-major=2
+#version=2.0.5
+#major=2
 # option 2, assuming the library is created as src/.libs/libfoo.so.2.0.5 or so
 #version=`ls src/.libs/lib*.so.* | \
 # awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
@@ -29,31 +31,51 @@
 
 # CONFIGURE
 
-configure: configure.ac
+config.status: configure.ac
        dh_testdir
-#      for i in debian/patches/*.diff; do \
-#              test -e "$$i.stamp" || patch -p1 <"$$i" && touch "$$i.stamp"; \
-#              done
+
+       @printf "\n == APPLYING PATCHES 
============================================ \n\n"
+       $(MAKE) -f /usr/share/quilt/quilt.make patch
+       @printf "\n ----------------------------------- End of APPLYING PATCHES 
---- \n\n"
+
+ifneq "$(wildcard /usr/share/misc/config.sub)" ""
+       cp -f /usr/share/misc/config.sub config.sub
+endif
+ifneq "$(wildcard /usr/share/misc/config.guess)" ""
+       cp -f /usr/share/misc/config.guess config.guess
+endif
+
+       @printf "\n == AUTOGEN 
===================================================== \n\n"
        ./autogen.sh
+       @printf "\n -------------------------------------------- End of AUTOGEN 
---- \n\n"
 
-config.status: configure
-       dh_testdir
-       # Add here commands to configure the package.
-       CXXFLAGS="-g" ./configure --host=$(DEB_HOST_GNU_TYPE) \
-               --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr \
-               --mandir=\$${prefix}/share/man \
+       @printf "\n == CONFIGURE 
=================================================== \n\n"
+       # In the future, I want to add LDFLAGS="-Wl,-z,defs"
+       ./configure CFLAGS="$(CFLAGS)" \
+               --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \
+               --prefix=/usr --mandir=\$${prefix}/share/man \
                --infodir=\$${prefix}/share/info \
-               --enable-sdk-install \
-               --with-plugindir=\$${prefix}/lib/mozilla/plugins \
-               --disable-static --enable-klash
+               --enable-cygnal --enable-media=gst --enable-renderer=agg \
+               --with-npapi-plugindir=\$${prefix}/lib/gnash \
+               --enable-shared --disable-static --disable-testsuite \
+               --disable-rpath CXXFLAGS=-O0
+       @printf "\n ------------------------------------------- End of 
CONFIGURE ---- \n\n"
+
+       cp libamf/README README.amf
 
 # BUILD
 
 build: build-stamp
 build-stamp:  config.status
        dh_testdir
-       # Add here commands to compile the package.
+
+       @printf "\n == MAKE 
======================================================== \n\n"
        $(MAKE)
+       @printf "\n ----------------------------------------------- End of MAKE 
---- \n\n"
+
+#      @printf "\n == CHECK 
======================================================= \n\n"
+#      $(MAKE) check
+#      @printf "\n ---------------------------------------------- End of CHECK 
---- \n\n"
 
        touch build-stamp
 
@@ -64,30 +86,37 @@
        dh_testroot
        rm -f build-stamp 
 
+ifeq (Makefile,$(wildcard Makefile))
+       -$(MAKE) maintainer-clean
        -$(MAKE) distclean
-ifneq "$(wildcard /usr/share/misc/config.sub)" ""
-       cp -f /usr/share/misc/config.sub config.sub
-endif
-ifneq "$(wildcard /usr/share/misc/config.guess)" ""
-       cp -f /usr/share/misc/config.guess config.guess
 endif
 
-       dh_clean 
-
-maintainer-clean:
-       dh_testdir
-       dh_testroot
-       -for i in debian/patches/*.diff; do \
-               test -e "$$i.stamp" && patch -p1 -R <"$$i" && rm -f 
"$$i.stamp"; \
-               done
-       rm -f build-stamp
-ifeq (Makefile,$(wildcard Makefile))
-       $(MAKE) maintainer-clean
-endif
 ifneq ($(wildcard ${AUTO_JUNK}),)
        rm $(wildcard ${AUTO_JUNK})
 endif
-       find . -name Makefile.in -exec rm {} \;
+
+       rm -f config.{sub,guess,log,status}
+       rm -f libtool
+       rm -f `find . -name "Makefile"| grep -v "debian/"`
+       rm -f `find . -name "*.o"`
+       rm -rf `find . -name ".libs"`
+       rm -rf `find . -name ".deps"`
+
+       rm -f configure aclocal.m4 config.h.in
+       #-find . -name Makefile.in -exec rm {} \;
+       -rm `find . -name Makefile.in`
+
+       -rm -rf libltdl/autom4te.cache
+       -rm -f libltdl/* ltmain.sh
+
+       #cd debian/h2m; $(MAKE) clean
+
+       -rm -f README.amf
+
+       @printf "\n == CLEANING PATCHES 
============================================ \n\n"
+       $(MAKE) -f /usr/share/quilt/quilt.make unpatch
+       @printf "\n ----------------------------------- End of CLEANING PATCHES 
---- \n\n"
+
        dh_clean
 
 # INSTALL
@@ -100,9 +129,24 @@
 
        install -d $(CURDIR)/debian/tmp/usr/bin
        install -d $(CURDIR)/debian/tmp/usr/lib
+       install -d $(CURDIR)/debian/tmp/usr/lib/gnash/
        install -d $(CURDIR)/debian/tmp/usr/lib/mozilla/plugins/
-       install -d $(CURDIR)/debian/tmp/usr/include/gnash
-       $(MAKE) install install-plugin DESTDIR=$(CURDIR)/debian/tmp
+       install -d $(CURDIR)/debian/tmp/usr/lib/firefox/plugins/
+
+       @printf "\n == INSTALL 
===================================================== \n\n"
+       $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
+       $(MAKE) install-plugins DESTDIR=$(CURDIR)/debian/tmp
+       @printf "\n -------------------------------------------- End of INSTALL 
---- \n\n"
+
+       #cd debian/h2m; $(MAKE)
+
+       install -d $(CURDIR)/debian/tmp/usr/share/lintian/overrides/
+       cp debian/overrides/* $(CURDIR)/debian/tmp/usr/share/lintian/overrides/
+
+       install -d $(CURDIR)/debian/tmp/usr/share/pixmaps/
+       cp debian/*.xpm $(CURDIR)/debian/tmp/usr/share/pixmaps/
+       install -d $(CURDIR)/debian/tmp/usr/share/applications/
+       cp debian/*.desktop $(CURDIR)/debian/tmp/usr/share/applications/
 
 # CREATE PACKAGES
 
@@ -119,27 +163,31 @@
        dh_installexamples
        dh_install --sourcedir=$(CURDIR)/debian/tmp
 #      dh_installmenu
-#      dh_installdebconf       
-#      dh_installlogrotate
-#      dh_installemacsen
-#      dh_installpam
 #      dh_installmime
-#      dh_installinit
-#      dh_installcron
-       dh_installinfo
        dh_installman
        dh_link
        dh_strip
        dh_compress
        dh_fixperms
-#      dh_perl
-#      dh_python
-#      dh_makeshlibs
+       dh_makeshlibs
        dh_installdeb
        dh_shlibdeps
        dh_gencontrol
        dh_md5sums
        dh_builddeb
 
+VERSION_DATE = $(shell /bin/date --utc +%0Y%0m%0d.%0k%0M)
+VERSION_ID = 0.8.2+cvs$(VERSION_DATE)
+get-orig-source:
+       echo Downloading gnash $(VERSION_ID) from CVS...
+       #test -e gnashd && exit
+       export CVS_RSH="ssh"; cvs -z3 -d:pserver:address@hidden:/sources/gnash 
co gnash
+       #cd gnash; rm -rf `find . -name CVS`
+       tar cvfz "gnash_$(VERSION_ID).orig.tar.gz" gnash
+       mv gnash "gnash-$(VERSION_ID)"
+       cp debian "gnash-$(VERSION_ID)" -a
+       cd "gnash-$(VERSION_ID)"; dch -v "$(VERSION_ID)-1" "New Upstream 
Release. Downloaded from CVS."
+
+
 binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install 
+.PHONY: build clean binary-indep binary-arch binary install get-orig-source

Index: packaging/redhat/gnash.spec
===================================================================
RCS file: /sources/gnash/gnash/packaging/redhat/gnash.spec,v
retrieving revision 1.19
retrieving revision 1.19.2.1
diff -u -b -r1.19 -r1.19.2.1
--- packaging/redhat/gnash.spec 14 Feb 2008 01:11:14 -0000      1.19
+++ packaging/redhat/gnash.spec 3 Mar 2008 23:47:00 -0000       1.19.2.1
@@ -1,4 +1,4 @@
-%define version 20080104
+%define version 20080216
 Name:           gnash
 Version:        %{version}cvs
 Release:        1%{?dist}
@@ -15,22 +15,21 @@
 #AutoReqProv: no
 
 BuildRequires:  libpng-devel libjpeg-devel libogg-devel
-BuildRequires:  gtk2-devel libX11-devel libXt-devel
-# BuildRequires:  agg-devel libxml2-devel boost-devel curl-devel libXt-devel
-# the opengl devel packages are required by gtkglext-devel
-# monolithic Xorg
-#BuildRequires:  xorg-x11-devel
-# modular Xorg 
-#BuildRequires:  libGLU-devel libGL-devel
-#BuildRequires:  gtkglext-devel
-BuildRequires:  mysql-devel mysqlclient14-devel
+BuildRequires:  gtk2-devel libX11-devel libXt-devel glib2-devel
+BuildRequires:  cairo-devel atk-devel pango-devel
+BuildRequires:  agg-devel libxml2-devel boost-devel curl-devel libXt-devel
+# the opengl devel packages are required by monolithic Xorg
+BuildRequires:  xorg-x11-proto-devel gtkglext-devel
+BuildRequires:  libGLU-devel libGL-devel
 BuildRequires:  SDL-devel
-BuildRequires:  kdelibs-devel
-BuildRequires:  docbook2X
-BuildRequires:  gstreamer >= 0.10
+BuildRequires:  kdelibs-devel kdebase-devel qt-devel
+BuildRequires:  gstreamer >= 0.10, gstreamer-ffmpeg
+
 # Installation requirements
 Requires: gstreamer >= 0.10
 Requires: gstreamer-plugins-base, gstreamer-plugins-ugly, gstreamer-plugins-bad
+Requires: gtk2 libX11 libpng libjpeg cairo atk pango Xt
+
 # BuildRequires:  scrollkeeper
 
 #Requires(post): scrollkeeper
@@ -46,7 +45,7 @@
 %package plugin
 Summary:   Web-client flash movie player plugin 
 Requires:  %{name} = %{version}-%{release}
-Requires:  xulrunner
+Requires: gstreamer >= 0.10 gnash
 Group:     Applications/Internet
 
 %description plugin
@@ -55,6 +54,7 @@
 %package klash
 Summary:   Konqueror flash movie player plugin
 Requires:  %{name} = %{version}-%{release}
+Requires:  kdelibs kdelibs qt gnash
 Group:     Applications/Multimedia
 
 %description klash
@@ -86,13 +86,14 @@
 %else
 %define cross_compile 0
 %endif
-%{?do_cross_compile:%define cross_compile 1}
+# if not defined, assume this is a native package.
+%{?do_cross_compile:%define cross_compile 0}
 
 # FIXME: this ia a bad hack! Although all this does work correctly and
 # build an RPM, it's set for an geode-olpc, so the actual hardware
 # won't let us install it.
-%define cross_compile 0
-%define olpc 0
+# %define cross_compile 0
+# %define olpc 0
 
 # Build rpms for an ARM based processor, in our case the Nokia 770/800
 # tablet. 
@@ -137,7 +138,8 @@
        $CROSS_OPTS \
        $SOUND $GUI \
        $RENDERER \
-       --disable-dependency-tracking --disable-rpath \
+       --disable-dependency-tracking \
+       --disable-rpath \
        --with-plugindir=%{_libdir}/mozilla/plugins
  
 make %{?_smp_mflags} dumpconfig all
@@ -149,8 +151,14 @@
        --disable-dependency-tracking \
        --disable-rpath \
        --disable-cygnal \
-        --prefix=%{_prefix} \
-       --with-plugindir=%{_libdir}/mozilla/plugins
+        --prefix=/usr \
+       --mandir=/usr/share/man \
+       --infodir=/usr/share/info \
+       --with-plugindir=/usr/lib/mozilla/plugins \
+       --disable-static \
+       --enable-shared \
+       --disable-testsuite
+#      --enable-docbook
 
 make dumpconfig all
 %endif
@@ -160,8 +168,7 @@
 strip utilities/.libs/dumpshm  utilities/.libs/g*  utilities/.libs/soldumper
 rm -rf $RPM_BUILD_ROOT
 make install install-plugins DESTDIR=$RPM_BUILD_ROOT
-rm $RPM_BUILD_ROOT%{_libdir}/gnash/*.la
-rm $RPM_BUILD_ROOT%{_libdir}/gnash/*.a
+rm $RPM_BUILD_ROOT%{_libdir}/gnash/*.*a
 %if !%{cross_compile}
 
 rm -rf $RPM_BUILD_ROOT%{_localstatedir}/scrollkeeper
@@ -194,7 +201,7 @@
 %dump
 %doc README AUTHORS COPYING NEWS 
 %{_bindir}/gnash
-%{_bindir}/*-gnash
+%{_bindir}/gtk-gnash
 %{_bindir}/gprocessor
 %{_bindir}/soldumper
 %{_bindir}/dumpshm
@@ -203,17 +210,18 @@
 %{_prefix}/include/ltdl.h
 %{_prefix}/share/gnash/GnashG.png
 %{_prefix}/share/gnash/gnash_128_96.ico
-%if !%{cross_compile}
-%{_datadir}/man/man1/gnash.1*
+%{_datadir}/man/man1/*.1*
 %{_datadir}/locale/*/LC_MESSAGES/gnash.mo
-%doc doc/C/gnash.html 
+%if !%{cross_compile}
+%{_prefix}/share/info/*.info*
+%{_prefix}/share/doc/gnash/*.html
+%{_prefix}/share/doc/gnash/images/*.png
+# %{_infodir}/*.info*
+#%doc doc/C/gnash*.html 
+#%doc doc/C/images/*.png
+#%doc doc/C/images/*.txt
 # %doc %{_prefix}/share/gnash/doc/gnash/C/images
-# %{_datadir}/omf/gnash/gnash-C.omf
-# %{_datadir}/omf/gnash/asspec-C.omf
-# %{_infodir}/*.info.gz
-# %{_prefix}/share/gnash/doc/gnash/C/*.xml
-# %{_prefix}/share/gnash/doc/asspec/C/*.xml
-# %{_prefix}/share/gnash/doc/asspec/images/*.png
+# %doc %{_prefix}/share/gnash/doc/gnash/C/*.xml
 %endif
 
 %files plugin
@@ -222,8 +230,8 @@
 
 %files klash
 %defattr(-,root,root,-)
-%{_bindir}/gnash
 %if !%{cross_compile}
+%{_bindir}/kde-gnash
 %{_libdir}/kde3/libklashpart.*
 %{_datadir}/apps/klash/
 %{_datadir}/services/klash_part.desktop
@@ -234,7 +242,7 @@
 # %{_bindir}/cygnal
 
 %changelog
-* Sat Feb  9 2008 Rob Savoye <address@hidden> - %{version}-%{release}
+* Sat Feb  16 2008 Rob Savoye <address@hidden> - %{version}-%{release}
 - Adjust dependencies for current cvs HEAD
 
 * Sat Mar  6 2007 Rob Savoye <address@hidden> - %{version}-%{release}

Index: doc/C/preformatted/cygnal.1.in
===================================================================
RCS file: doc/C/preformatted/cygnal.1.in
diff -N doc/C/preformatted/cygnal.1.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/preformatted/cygnal.1.in      3 Mar 2008 23:46:42 -0000       1.1.2.2
@@ -0,0 +1,34 @@
+.\" -*- coding: us-ascii -*-
+.if \n(.g .ds T< \\FC
+.if \n(.g .ds T> \\F[\n[.fam]]
+.de URL
+\\$2 \(la\\$1\(ra\\$3
+..
+.if \n(.g .mso www.tmac
+.TH cygnal 1 "19 February 2008"  
+.SH NAME
+cygnal \- Cygnal
+.SH Synopsis
+.nf
+
+cygnal (options)...
+.fi
+.SH DESCRIPTION
+Cygnal is a multimedia media server for streaming audio, video, and
+video conferencing. Cygnal supports several protocols used by SWF
+file players, including RTMP, RTMPTS, and RTMPT, while encouring the
+use of patent free codecs.
+.TP 
+(-h) --help
+Print usage info.
+.TP 
+--version
+Print version information.
+.TP 
+(-v) --verbose
+Verbose output.
+.TP 
+(-p) --port-offset
+Port offset. This number gets added to the default
+ports for RTMPS and RTMPS. This is only used by
+developers. 

Index: doc/C/preformatted/dumpshm.1.in
===================================================================
RCS file: doc/C/preformatted/dumpshm.1.in
diff -N doc/C/preformatted/dumpshm.1.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/preformatted/dumpshm.1.in     3 Mar 2008 23:46:42 -0000       1.1.2.2
@@ -0,0 +1,35 @@
+.\" -*- coding: us-ascii -*-
+.if \n(.g .ds T< \\FC
+.if \n(.g .ds T> \\F[\n[.fam]]
+.de URL
+\\$2 \(la\\$1\(ra\\$3
+..
+.if \n(.g .mso www.tmac
+.TH dumpshm 1 "13 February 2008"  
+.SH NAME
+dumpshm \- Gnash LocalConnection memory Dumper
+.SH Synopsis
+.nf
+
+dumpshm (options)... (file)...
+.fi
+.SH DESCRIPTION
+Dump information about the shared memory segment used by the
+LocalConnection ActionScript class. This memory segment is comprised
+of a header, and a collection of SWF AMF Objects, normally not
+viewable by the user.
+.TP 
+-h
+Print usage info.
+.TP 
+-i
+Find the key for an existing memory segment.
+.TP 
+-r
+Dump memory segment to the terminal.
+.TP 
+-c
+Dump memory segment to a disk file, segment.raw.
+.TP 
+-v
+Verbose output.

Index: doc/C/preformatted/gnash.1.in
===================================================================
RCS file: doc/C/preformatted/gnash.1.in
diff -N doc/C/preformatted/gnash.1.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/preformatted/gnash.1.in       3 Mar 2008 23:46:42 -0000       1.1.2.2
@@ -0,0 +1,135 @@
+.\" -*- coding: us-ascii -*-
+.if \n(.g .ds T< \\FC
+.if \n(.g .ds T> \\F[\n[.fam]]
+.de URL
+\\$2 \(la\\$1\(ra\\$3
+..
+.if \n(.g .mso www.tmac
+.TH gnash 1 "13 February 2008"  
+.SH NAME
+gnash \- GNU Flash (SWF) Player
+.SH Synopsis
+.nf
+
+gnash (options)... (file)...
+.fi
+.SH DESCRIPTION
+Run the SWF movie player.
+.TP 
+-h
+Print usage info.
+.TP 
+-s factor
+Scale the movie up/down by the specified factor.
+.TP 
+-c
+Produce a core file instead of letting SDL trap it.
+.TP 
+-d num
+Number of milliseconds to delay in main loop.
+.TP 
+-a
+Enable ActionScript debugging.
+.TP 
+-x
+The XID of the parent window Gnash should use instead of
+creating a new one.
+.TP 
+-j
+Set the width of the window. This is only used when embedding
+the player into another window.
+.TP 
+-k
+Set the height of the window. This is only used when embedding
+the player into another window.
+.TP 
+-v
+Be verbose; i.e. print log messages to stdout.
+.TP 
+-va
+Be verbose about movie Actions.
+.TP 
+-vp
+Be verbose about parsing the movie.
+.TP 
+-ml bias
+Specify the texture LOD bias (float, default is -1).
+.TP 
+-p
+Run full speed (no sleep) and log frame rate.
+.TP 
+-g
+Start Gnash with a Flash debugger console so one can set
+break points or watchpoints.
+.TP 
+-w
+Write the gnash-dbg.log debug log to disk. By default the
+plugin writes its log in your home directory when using a
+launcher from GNOME or KDE.
+.TP 
+-1
+Play once; exit when/if movie reaches the last frame.
+.TP 
+-r [0|1|2]
+0 disables rendering and sound (good for batch tests).
+
+1 enables rendering and sound (default setting).
+
+2 enables rendering and disables sound.
+.TP 
+-t sec
+Timeout and exit after the specified number of seconds.
+.TP 
+-u
+Set "real" url of the movie (useful for downloaded movies).
+.TP 
+-U
+Set "base" url for this run (used to resolve relative urls,
+defaults to movie url)
+.TP 
+-P
+Set parameter (ie. "FlashVars=A=1&b=2")
+.TP 
+-F
+Set filedescriptor to use for external communications.
+.TP 
+--version
+Print the version number, and the configuration of the
+Gnash player. Please use this info when submitting bug
+reports.
+.SS KEYS
+.TP 
+CTRL-Q
+Quit/Exit.
+.TP 
+CTRL-W
+Quit/Exit.
+.TP 
+ESC
+Quit/Exit.
+.TP 
+CTRL-P
+Toggle Pause.
+.TP 
+CTRL-R 
+Restart the movie.
+.TP 
+CTRL-[ or kp-
+Step back one frame.
+.TP 
+CTRL-] or kp+
+Step forward one frame.
+.TP 
+CTRL-T
+Debug. Test the set_variable() function.
+.TP 
+CTRL-G
+Debug. Test the get_variable() function.
+.TP 
+CTRL-M
+Debug. Test the call_method() function.
+.TP 
+CTRL-B
+Toggle background color.
+.PP
+Flash is Trademarked by Adobe Corporation.

Index: doc/C/preformatted/gnash_ref.html.in
===================================================================
RCS file: doc/C/preformatted/gnash_ref.html.in
diff -N doc/C/preformatted/gnash_ref.html.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/preformatted/gnash_ref.html.in        3 Mar 2008 23:46:42 -0000       
1.1.2.1
@@ -0,0 +1,3506 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=ISO-8859-1"><title>Gnash Reference Manual</title><meta name="generator" 
content="DocBook XSL Stylesheets V1.73.2"></head><body bgcolor="white" 
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" 
lang="en"><div class="titlepage"><div><div><h1 class="title"><a 
name="index"></a>Gnash Reference Manual</h1></div><div><p class="releaseinfo">
+      This manual describes version 0.8.2 of Gnash.
+    </p></div><div><p class="copyright">Copyright © 2005, 2006, 2007, 2008 
Free Software Foundation</p></div><div><div class="legalnotice"><a 
name="legalnotice"></a><p>
+    Permission is granted to copy, distribute and/or modify this document
+    under the terms of the <a class="link" href="#fdl" title="Appendix A. GNU 
Free Documentation License"><em class="citetitle">GNU
+    Free Documentation License</em></a>, Version 1.1 or any later
+    version published by the Free Software Foundation with no Invariant
+    Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find
+    a copy of the GFDL at this 
+    <a class="link" href="#fdl" title="Appendix A. GNU Free Documentation 
License">link</a> or in the file COPYING-DOCS
+    distributed with this manual.
+   </p></div></div><div><div class="revhistory"><table border="1" width="100%" 
summary="Revision history"><tr><th align="left" valign="top" 
colspan="2"><b>Revision History</b></th></tr><tr><td align="left">Revision 
Gnash User Manual version 0.4</td><td align="left">Feb 2008</td></tr><tr><td 
align="left" colspan="2"> 
+      <p class="author">Rob Savoye
+      <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>
+      The end user parts of the manual have been pulled out of
+      the original version of the manual, and rewritten. This
+      is now a reference manual only.
+      </p>
+      
+      <p class="publisher">Open Media Now! Foundation</p>
+    </td></tr></table></div></div></div><hr></div><div class="toc"><p><b>Table 
of Contents</b></p><dl><dt><span class="chapter"><a href="#intro">1. 
Introduction</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="#audience">Audience</a></span></dt><dt><span class="sect1"><a 
href="#runs-on">What Is Supported?</a></span></dt></dl></dd><dt><span 
class="chapter"><a href="#build">2. Building from 
Source</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="#building_overview">Overview</a></span></dt><dt><span class="sect1"><a 
href="#gettingsource">Getting The Source</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#sourcereleases">Releases</a></span></dt><dt><span 
class="sect2"><a href="#sourcecvs">CVS 
Access</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#dependencies">Code Dependencies</a></span></dt><dt><span 
class="sect1"><a href="#testdep">Testing Dependencies</a></span></dt><dt><span 
class="sect1"><a href="#docdepend">Documentation 
Dependencies</a></span></dt><dt><span class="sect1"><a 
href="#configure">Configuring Gnash</a></span></dt><dt><span class="sect1"><a 
href="#compile">Compiling the Code</a></span></dt><dt><span class="sect1"><a 
href="#processdoc">Creating the Documentation</a></span></dt><dt><span 
class="sect1"><a href="#runtests">Running the 
Tests</a></span></dt><dd><dl><dt><span class="sect2"><a href="#dejagnu">Using 
DejaGnu</a></span></dt><dt><span class="sect2"><a href="#manually">Running The 
Tests Manually</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a 
href="#internals">3. Software Internals</a></span></dt><dd><dl><dt><span 
class="sect1"><a href="#tour">A Tour of Gnash</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#The%20Libraries">The Libraries</a></span></dt><dt><span 
class="sect2"><a href="#apps">The Applications</a></span></dt><dt><span 
class="sect2"><a href="#plugin">The Plugin</a></span></dt><dt><span 
class="sect2"><a href="#logging">The Debug Logging 
System</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#soundhandlers">Sound handling in Gnash</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#soundtypes">Sound types</a></span></dt><dt><span 
class="sect2"><a href="#soundparsing">Sound parsing</a></span></dt><dt><span 
class="sect2"><a href="#soundplayback">Sound playback</a></span></dt><dt><span 
class="sect2"><a href="#sdlsound">The SDL sound 
backend</a></span></dt><dt><span class="sect2"><a href="#gstreamer">The 
Gstreamer backend</a></span></dt><dt><span class="sect2"><a 
href="#audio-future">Future audio backends</a></span></dt><dt><span 
class="sect2"><a href="#gstreamer-details">Detailed description of the 
Gstreamer backend</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#testing">Testing </a></span></dt><dd><dl><dt><span class="sect2"><a 
href="#testtools">Testing Tools</a></span></dt><dt><span class="sect2"><a 
href="#testcases">Test Cases</a></span></dt><dt><span class="sect2"><a 
href="#writeastests">Writing ActionScript Tests</a></span></dt><dt><span 
class="sect2"><a href="#writemingtests">Writing Ming-based self-contained SWF 
tests</a></span></dt><dt><span class="sect2"><a 
href="#writing_dejagnu_so_tests">Writing self-contained SWF tests with other 
compilers</a></span></dt><dt><span class="sect2"><a 
href="#writing_test_runners">Writing Test 
Runners</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a 
href="#bugreport">5. Reporting Bugs</a></span></dt><dd><dl><dt><span 
class="sect1"><a href="#bugstep_package">Get a Fresh Binary 
Package</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_search">Determine if the bug was previously 
reported</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_guidelines">Review the bug writing 
guidelines</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_file">Filing a bug report</a></span></dt></dl></dd><dt><span 
class="chapter"><a href="#extensions">6. Gnash 
Extensions</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="#newext">Creating A New Extension</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#craftext">Crafting an 
Extension</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#debuext">Debugging An Extension</a></span></dt><dt><span 
class="sect1"><a href="#inclext">Included 
Extensions</a></span></dt></dl></dd><dt><span class="chapter"><a 
href="#rtmp">7. RTMP Protocol</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="#amf">AMF Format</a></span></dt></dl></dd><dt><span class="chapter"><a 
href="#nsapi">8. Mozilla/Firefox NPAPI Plugin</a></span></dt><dd><dl><dt><span 
class="sect1"><a href="#plugincapi">Plugin C API</a></span></dt><dt><span 
class="sect1"><a href="#plugincppapi">Plugin C++ API</a></span></dt><dt><span 
class="sect1"><a href="#glthread">OpenGL and Threads</a></span></dt><dt><span 
class="sect1"><a href="#eventhandle">Plugin Event 
Handling</a></span></dt></dl></dd><dt><span class="chapter"><a 
href="#authors">9. Authors</a></span></dt><dt><span class="appendix"><a 
href="#fdl">A. GNU Free Documentation License</a></span></dt><dd><dl><dt><span 
class="sect1"><a href="#fdl-preamble">0. PREAMBLE</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section1">1. APPLICABILITY AND 
DEFINITIONS</a></span></dt><dt><span class="sect1"><a href="#fdl-section2">2. 
VERBATIM COPYING</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section3">3. COPYING IN QUANTITY</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section4">4. MODIFICATIONS</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section5">5. COMBINING 
DOCUMENTS</a></span></dt><dt><span class="sect1"><a href="#fdl-section6">6. 
COLLECTIONS OF DOCUMENTS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section7">7. AGGREGATION WITH INDEPENDENT 
WORKS</a></span></dt><dt><span class="sect1"><a href="#fdl-section8">8. 
TRANSLATION</a></span></dt><dt><span class="sect1"><a href="#fdl-section9">9. 
TERMINATION</a></span></dt><dt><span class="sect1"><a href="#fdl-section10">10. 
FUTURE REVISIONS OF THIS LICENSE</a></span></dt><dt><span class="sect1"><a 
href="#fdl-using">Addendum</a></span></dt></dl></dd></dl></div><div 
class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>2.1. <a 
href="#codedeps">Code Dependency Table</a></dt><dt>2.2. <a 
href="#testdeps">Testing Dependency Table</a></dt><dt>2.3. <a 
href="#docdeps">Documentation Dependency Table</a></dt><dt>2.4. <a 
href="#tb-config-features">Configuration Options - Features</a></dt><dt>2.5. <a 
href="#tb-configure-paths">Custom Path Options</a></dt></dl></div><div 
class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a 
name="intro"></a>Chapter 1. Introduction</h2></div></div></div><div 
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a 
href="#audience">Audience</a></span></dt><dt><span class="sect1"><a 
href="#runs-on">What Is Supported?</a></span></dt></dl></div><p>
+    <span class="application">Gnash</span> is a free SWF movie player.  It is 
available as a
+    stand-alone application or as a plugin for several popular
+    web browsers. It supports playing media from a disk or streaming
+    over a network connection. Some popular video sharing sites like
+    YouTube are supported on a wide variety of devices from
+    embedded ones to modern desktops.
+  </p><p>
+    <span class="application">Gnash</span> has a better focus on security, 
allowing the user tight
+    control of all network or disk based I/O. Gnash also supports
+    extending ActionScript by creating your own classes. You can write
+    wrappers for any development library, and import them into the
+    player much like Perl or Python does.
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a 
name="audience"></a>Audience</h2></div></div></div><p>
+      This manual is primarily focused on users interested in how to
+      get Gnash installed from a package, and basic usage as a web
+      browser plugin. For more technical details, please refer to the
+      Gnash Reference manual.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="runs-on"></a>What Is Supported?</h2></div></div></div><p>
+      Gnash is known to compile for most any POSIX and ANSI C++
+      conforming system if you have all the dependent libraries
+      installed. Systems we test on, and which Gnash is known to
+      run on are Ubuntu, Fedora, Debian, Mandriva, OpenBSD, NetBSD, FreeBSD,
+      Win32, and Darwin (OSX) primarily. Occasionally other platforms
+      are built, primarily by those distribution maintainers. This
+      includes BeOS, Haiku, Syllable, OS/2, Solaris, Slackware, and
+      Gentoo.
+    </p><p>
+      Gnash is capable of reading up to SWF v9 files and opcodes,
+      but primarily supports SWF v7, with better SWF v8 and v9
+      support under heavy development. With the 0.8.2 release,
+      Gnash includes initial parser support for SWF v8 and v9.
+      Not all ActionScript 2 classes are implemented yet, but all of the
+      most heavily used ones are. Many ActionScript 2 classes are
+      partially implemented; there is support for all of the
+      commonly used methods of each class.
+    </p><p>
+      Gnash has implemented about 80% of ActionScript v2.0, and has
+      begun implementing ActionScript v3.0. Gnash supports the
+      majority of Flash opcodes up to SWF v9, and a wide
+      sampling of ActionScript classes for SWF v8.
+    </p><p>
+      As ActionScript 3 is a more developed version of
+      ActionScript 2, many of the same classes work for
+      both. Support has been added to Gnash's ActionScript library
+      to support the new ActionScript 3 filters, which get applied
+      to every class. Implementing ActionScript clases is often the
+      easiest way for new Gnash developers to make a contribution
+      without a deep internal knpowledge of Gnash.
+    </p><p>
+      Gnash has included video support since early 2007, but this is
+      an ever changing field of reverse engineering. Many of the
+      popular video sharing sites use SWF v8 or v9, which Gnash
+      still has imperfect support for. This is improving all the
+      time, so often builds from a development snapshot will work
+      when using the older release packaged in your distribution
+      doesn't. You can find daily snapshots of the latest CVS tree
+      at: <a class="ulink" href="http://www.gnashdev.org/dev_snapshots/"; 
target="_top">
+      http://www.gnashdev.org/dev_snapshots</a>.
+    </p><p>
+      Gnash uses ffmpeg for codecs, so any file supported by Mplayer
+      should work with Gnash. Gnash supports the loading of patent
+      free codecs like Ogg Vorbis or Theora from disk based files,
+      while work is being done to support these codecs when embedded
+      in a SWF file. Ffmpeg contains the codecs used by the current
+      SWF defintion, FLV, VP6 (ON2), H.263, H.264, and MP3.
+    </p></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="build"></a>Chapter 2. 
Building from Source</h2></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a 
href="#building_overview">Overview</a></span></dt><dt><span class="sect1"><a 
href="#gettingsource">Getting The Source</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#sourcereleases">Releases</a></span></dt><dt><span 
class="sect2"><a href="#sourcecvs">CVS 
Access</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#dependencies">Code Dependencies</a></span></dt><dt><span 
class="sect1"><a href="#testdep">Testing Dependencies</a></span></dt><dt><span 
class="sect1"><a href="#docdepend">Documentation 
Dependencies</a></span></dt><dt><span class="sect1"><a 
href="#configure">Configuring Gnash</a></span></dt><dt><span class="sect1"><a 
href="#compile">Compiling the Code</a></span></dt><dt><span class="sect1"><a 
href="#processdoc">Creating the Documentation</a></span></dt><dt><span 
class="sect1"><a href="#runtests">Running the 
Tests</a></span></dt><dd><dl><dt><span class="sect2"><a href="#dejagnu">Using 
DejaGnu</a></span></dt><dt><span class="sect2"><a href="#manually">Running The 
Tests Manually</a></span></dt></dl></dd></dl></div><div class="sect1" 
lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: 
both"><a name="building_overview"></a>Overview</h2></div></div></div><p>
+      The typical process of building from source will involve 
+      <a class="link" href="#gettingsource" title="Getting The Source">getting 
the source</a>,
+      <a class="link" href="#dependencies" title="Code Dependencies">build 
dependencies</a>,
+      <a class="link" href="#configure" title="Configuring 
Gnash">configuration</a>, 
+      <a class="link" href="#compile" title="Compiling the 
Code">compilation</a>,
+      <a class="link" href="#runtests" title="Running the Tests">testing</a>, 
and
+      <a class="link" href="#install" title="Installation">installation</a>.
+      A simplified overview of the process would be:
+      </p><pre class="programlisting">
+        ./autogen.sh
+        ./configure 
+        make
+        make check
+        make install
+      </pre><p>
+    </p><p>
+      If you are compiling with GCC you will probably need to use a machine
+      with at least 128 megabytes of physical RAM; 64MB is not enough for a
+      couple of the files, even with swap enabled and optimisation turned off.
+    </p><p>
+      At present the Gnash source is about 30 MB extracted and configured
+      and requires a total of about 125 megabytes to compile it.
+    </p><p>
+      Continue reading for detailed step-by-step instructions 
+      of the entire procedure.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="gettingsource"></a>Getting The Source</h2></div></div></div><div 
class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a 
name="sourcereleases"></a>Releases</h3></div></div></div><p>
+       Tarballs of official releases can be found in the download area
+       of the project's GNU Savannah page at
+       <a class="ulink" href="http://savannah.gnu.org/projects/gnash"; 
target="_top">
+                   http://savannah.gnu.org/projects/gnash
+       </a> 
+       or under
+       <a class="ulink" href="http://ftp.gnu.org/gnu/gnash"; target="_top">
+                   http://ftp.gnu.org/gnu/gnash
+       </a> 
+      </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="sourcecvs"></a>CVS 
Access</h3></div></div></div><p>
+       The latest Gnash development sources are available via anonymous CVS.
+       Use the following commands to check them out
+       (just hit return when you are prompted for the password):
+       </p><pre class="programlisting">
+         export CVS_RSH=ssh
+         cvs -z3 -d:pserver:address@hidden:/sources/gnash co gnash
+       </pre><p>
+       You will then be able to update your copy from the repository using
+       </p><pre class="programlisting">
+         cd gnash
+         cvs update -d
+       </pre><p>
+      </p><p>
+       If you only have access to the internet via a web proxy,
+       you will find daily source snapshots of the latest CVS tree in
+       <a class="ulink" href="http://www.gnashdev.org/dev_snapshots/"; 
target="_top">
+                   http://www.gnashdev.org/dev_snapshots
+       </a> 
+      </p></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="dependencies"></a>Code Dependencies</h2></div></div></div><p>
+    <span class="application">Gnash</span> has a number of dependencies on 
other packages.
+    If you install the dependencies using a package
+    manager, be certain to install the development versions
+    of the packages.  The normal versions are often missing
+    the headers <span class="application">Gnash</span> needs to compile.
+  </p><p>
+    Some dependencies have other dependencies, like GTk also needs
+    glib2, atk, and pango to produce a fully linked
+    executable. Different distributions also use differing
+    dependencies, sometimes a package will depend on libxml2 on one
+    system, but libexpat on another.
+  </p><div class="table"><a name="codedeps"></a><p class="title"><b>Table 2.1. 
Code Dependency Table</b></p><div class="table-contents"><table summary="Code 
Dependency Table" 
border="1"><colgroup><col><col><col><col><col><col><col></colgroup><thead><tr><th
 align="left">Name</th><th align="left">Level</th><th 
align="left">Version</th><th align="left">Description</th><th 
align="left">Explanation</th><th align="left">apt-get package</th><th 
align="left">RPM/Yum package</th><th align="left">BSD 
package</th></tr></thead><tbody><tr><td align="left">Boost</td><td 
align="left">Required</td><td align="left">1.32 or higher</td><td align="left">
+           Boost is a library of portable C++ classes and
+           templates.
+         </td><td align="left">
+           In <span class="application">Gnash</span>, Boost libraries are used 
extensively, primarily
+           boost-gthread and boost-date-time. Boost is used for thread and 
mutext 
+           handling. 
+         </td><td align="left">
+           <code class="filename">libboost-thread-dev, libboost-date-time-dev 
libboost-dev
+           </code>
+         </td><td align="left">
+           <code class="filename">
+             libboost-thread-devel, libboost-date-time-devel
+         </code>
+         </td><td align="left">
+           <code class="filename">
+             boost-headers, boost-libs, or just boost
+         </code></td></tr><tr><td align="left">libxml2</td><td 
align="left">Required</td><td align="left"> </td><td align="left">
+           Libxml2 is the GNOME XML parser library and
+           is available at <a class="ulink" href="http://xmlsoft.org"; 
target="_top">http://xmlsoft.org</a>.
+         </td><td align="left">
+           This library is used to parse messages for the
+           XML XMLNode, or XMLSocket ActionScript classes.
+         </td><td align="left"><code 
class="filename">libxml2-dev</code></td><td align="left"><code 
class="filename">libxml2-devel</code></td><td align="left"><code 
class="filename">libxml2</code></td></tr><tr><td align="left">AGG</td><td 
align="left">Possibly Required</td><td align="left">2.4 or higher</td><td 
align="left">
+           AGG is the AntiGrain low-level 2D graphics
+           library.  
+         </td><td align="left">
+           <span class="application">Gnash</span> requires the installation of 
at least one
+           renderer.  AGG is considered the <span class="emphasis"><em>best
+           supported</em></span> renderer for <span 
class="application">Gnash</span>.
+         </td><td align="left"><code 
class="filename">libagg-dev</code></td><td align="left"><code 
class="filename">agg-devel</code></td><td align="left"><code 
class="filename">agg</code></td></tr><tr><td align="left">OpenGL</td><td 
align="left">Possibly Required</td><td align="left"> </td><td align="left">
+           OpenGL is a standard specification defining a
+           cross-language cross-platform API for writing
+           applications which produce 3D and 2D graphics.
+           It supports hardware acceleration.
+           You can download a free implementation from
+           <a class="ulink" href="http://www.mesa3d.org"; 
target="_top">http://www.mesa3d.org</a>,
+           although it doesn't support hardware acceleration.
+         </td><td align="left">
+           <span class="application">Gnash</span> requires the installation of 
at least one
+           renderer. If you don't have a hardware accelerated driver,
+           you're better off using AGG for the renderer.
+         </td><td align="left"><code 
class="filename">libgl1-mesa-dev</code></td><td align="left"><code 
class="filename">libmesa-devel</code></td><td align="left"><code 
class="filename">mesa</code></td></tr><tr><td align="left">Cairo</td><td 
align="left">Possibly Required</td><td align="left"> </td><td align="left">
+           Cairo is a 2D graphics library with support for
+           multiple output devices.  It will automatically use
+           graphic card acceleration when available, and has
+           an experimental OpenGL backend.  
+         </td><td align="left">
+           <span class="application">Gnash</span> requires the installation of 
at least one
+           renderer.  Cairo is considered
+           the <span class="emphasis"><em>least supported</em></span> renderer
+           for <span class="application">Gnash</span>.
+         </td><td align="left"><code 
class="filename">libcairo2-dev</code></td><td align="left"><code 
class="filename">cairo-devel</code></td><td align="left"><code 
class="filename">cairo</code></td></tr><tr><td align="left">GTK</td><td 
align="left">Possibly Required</td><td align="left">2.2 or higher</td><td 
align="left">
+           GTK is the GIMP Toolkit GUI library used by the GNOME
+           desktop. It uses Cairo internally. Gtk enables better
+           integration with Firefox, as well as better event handling
+           and higher level GUI constructs like menus and dialog
+           boxes.
+         </td><td align="left">
+           <span class="application">Gnash</span> requires the installation of 
at least one
+           GUI library.  GTK is considered to be the
+           <span class="emphasis"><em>best supported</em></span> GUI library
+           option for <span class="application">Gnash</span>.
+         </td><td align="left"><code 
class="filename">libgtk2.0-dev</code></td><td align="left"><code 
class="filename">gtk-devel</code></td><td align="left"><code 
class="filename">gtk+2</code></td></tr><tr><td align="left">GtkGlExt</td><td 
align="left">Possibly Required</td><td align="left"> </td><td align="left">
+           GtkGlExt integrates OpenGL into GTK.
+         </td><td align="left">
+           This library is required in order to use
+           the GTK GUI library in conjunction with the
+           OpenGL renderer.
+         </td><td align="left"><code 
class="filename">libgtkglext1-dev</code></td><td align="left"><code 
class="filename">gtkglext-devel</code></td><td align="left"><code 
class="filename">gtkglext</code></td></tr><tr><td align="left">SDL</td><td 
align="left">Possibly Required</td><td align="left"> </td><td align="left">
+           The Simple DirectMedia Layer is a cross-platform
+           multimedia library which provides abstraction for
+           audio, graphics, sound and input APIs.  
+           SDL is available from
+           <a class="ulink" href="http://www.libsdl.org"; target="_top">
+             http://www.libsdl.org</a>.  
+         </td><td align="left">
+           <span class="application">Gnash</span> requires the installation of 
at least one
+           GUI library.  SDL may also be used as a sound
+           handler regardless of whether it is employed as
+           a GUI library.  The GUI
+           library is <span class="emphasis"><em>poorly supported</em></span>
+           in <span class="application">Gnash</span>, but the sound handler is 
the
+           <span class="emphasis"><em>best supported</em></span> in <span 
class="application">Gnash</span>.
+         </td><td align="left"><code 
class="filename">libsdl1.2-dev</code></td><td align="left"><code 
class="filename">SDL-devel</code></td><td align="left"><code 
class="filename">SDL-1.2</code></td></tr><tr><td align="left">FLTK</td><td 
align="left">Possibly Required</td><td align="left">2.0 or higher</td><td 
align="left">
+           The Fast Light ToolKit is a portable GUI library
+           which is intended as a replacement for the SDL GUI.
+         </td><td align="left">
+           <span class="application">Gnash</span> requires the installation of 
at least one
+           GUI library.  FLTK may be used in conjunction with
+           the Cairo and AGG renderers.
+         </td><td align="left">No distribution packages are available.</td><td 
align="left">No distribution packages are available.</td><td align="left">No 
distribution packages are available.</td></tr><tr><td align="left">KDE</td><td 
align="left">Possibly Required</td><td align="left"> </td><td align="left">
+           Kdelibs is a collection of libraries needed to
+           compile KDE applications.
+         </td><td align="left">
+           <span class="application">Gnash</span> requires the installation of 
at least one
+           GUI library.  Kdelibs is also required for the
+           Kpart plugin for Konqueror.
+         </td><td align="left"><code class="filename">kdelibs3-dev, 
kdebase-dev</code></td><td align="left"><code class="filename">kdelibs-devel, 
kdebase-devel</code></td><td align="left"><code class="filename">kdelibs, 
kdebase</code></td></tr><tr><td align="left">Gstreamer</td><td 
align="left">Optional</td><td align="left"> </td><td align="left">
+           Gstreamer is a video handler.
+         </td><td align="left">
+           If you would like video playback, you must
+           install one of the video handlers.
+         </td><td align="left"><code 
class="filename">libgstreamer0.8-dev</code></td><td align="left"><code 
class="filename">gstreamer-devel</code></td><td align="left"><code 
class="filename">gstreamer-0.10</code></td></tr><tr><td 
align="left">gst-ffmpeg</td><td align="left">Possibly Required</td><td 
align="left"> </td><td align="left">
+           gst-ffmpeg allows you to use the FFMPEG decoder
+           with Gstreamer.
+         </td><td align="left">
+           This package is required if you would like to
+           use Gstreamer as a video handler.
+         </td><td align="left"><code 
class="filename">gstreamer0.8-ffmpeg-dev</code></td><td align="left"><code 
class="filename">gstreamer-ffmpeg-devel</code></td><td align="left"><code 
class="filename">gstreamer-ffmpeg</code></td></tr><tr><td 
align="left">FFMPEG</td><td align="left">Possibly Required</td><td 
align="left"> </td><td align="left">
+           FFMPEG is a video handler.
+         </td><td align="left">
+           If you would like video playback, you must
+           install one of the video handlers. When using the
+           gstreamer-ffmpeg plugin, ffmpeg doesn't need to be
+           installed, as it's part of the plugin. For systems
+           without Gstreamer support, ffmpeg can be used directly.
+         </td><td align="left"><code 
class="filename">ffmpeg-dev</code></td><td align="left"><code 
class="filename">ffmpeg-devel</code></td><td align="left"><code 
class="filename">ffmpeg</code></td></tr><tr><td align="left">JPEG</td><td 
align="left">Optional</td><td align="left"> </td><td align="left">
+           <a class="ulink" href="http://www.ijg.org/"; target="_top">JPEG</a>
+           is a lossy image format which is heavily used for images.
+         </td><td align="left">
+           This library is used for rendering JPEGs.
+         </td><td align="left"><code 
class="filename">libjpeg62-dev</code></td><td align="left"><code 
class="filename">libjpeg</code></td><td align="left"><code 
class="filename">jpeg</code></td></tr><tr><td align="left">PNG</td><td 
align="left">Optional</td><td align="left"> </td><td align="left">
+           <a class="ulink" href="http://www.libpng.org/pub/png/"; 
target="_top">PNG</a> is
+           a patent-free image format which is comparable to
+           <span class="emphasis"><em>GIF</em></span>.
+         </td><td align="left">
+           This library is used for rendering PNGs.
+         </td><td align="left"><code 
class="filename">libpng12-dev</code></td><td align="left"><code 
class="filename">libpng</code></td><td align="left"><code 
class="filename">png</code></td></tr><tr><td align="left">libcurl</td><td 
align="left">Optional</td><td align="left"> </td><td align="left">
+           libcurl is the multiprotocal file transfer library.
+         </td><td align="left">
+           This library is used for URL downloading.
+         </td><td align="left"><code 
class="filename">libcurl4-gnutls</code></td><td align="left"><code 
class="filename">libcurl</code></td><td align="left"><code 
class="filename">curl</code></td></tr><tr><td align="left">Glib2</td><td 
align="left">Optional</td><td align="left"> </td><td align="left">
+           Glib2 is a dependency of Gtk, and is a collection of
+           commonly used functions.
+         </td><td align="left">
+           This library is used for convenience.
+         </td><td align="left"><code class="filename">glib2-dev</code></td><td 
align="left"><code class="filename">glib2-devel</code></td><td 
align="left"><code class="filename">glib2</code></td></tr><tr><td 
align="left">Atk</td><td align="left">Optional</td><td align="left"> </td><td 
align="left">
+           Atk is a dependency of Gtk, and is used for accessibility
+           support.
+         </td><td align="left">
+           This library is used for accessiblity..
+         </td><td align="left"><code class="filename">atk-dev</code></td><td 
align="left"><code class="filename">atk-devel</code></td><td align="left"><code 
class="filename">atk</code></td></tr><tr><td align="left">Pango</td><td 
align="left">Optional</td><td align="left"> </td><td align="left">
+           Pango is a dependency of Gtk, and is used for font handling.
+         </td><td align="left">
+           This library is used for font handling.
+         </td><td align="left"><code class="filename">pango-dev</code></td><td 
align="left"><code class="filename">pango-devel</code></td><td 
align="left"><code class="filename">pango</code></td></tr><tr><td 
align="left">automake</td><td align="left">Possibly Required</td><td 
align="left">1.6.0</td><td align="left">
+           Automake is a tool for generating
+           <span class="emphasis"><em>Makefile.in</em></span> files.
+         </td><td align="left">
+           This package is required to run
+           <span class="emphasis"><em>autogen.sh</em></span>, which is a 
requirement
+           if you are using the development source from CVS.
+         </td><td align="left"><code class="filename">automake</code></td><td 
align="left"><code class="filename">automake</code></td><td align="left"><code 
class="filename">automake</code></td></tr><tr><td align="left">autoconf</td><td 
align="left">Possibly Required</td><td align="left">2.59</td><td align="left">
+           Autoconf is a package for generating configure
+           scripts.
+         </td><td align="left">
+           This package is required to run
+           <span class="emphasis"><em>autogen.sh</em></span>, which is a 
requirement
+           if you are using the development source from CVS.
+         </td><td align="left"><code class="filename">autoconf</code></td><td 
align="left"><code class="filename">autoconf</code></td><td align="left"><code 
class="filename">autoconf</code></td></tr><tr><td align="left">gettext</td><td 
align="left">Possibly Required</td><td align="left">0.14.6</td><td align="left">
+           Gettext is part of the GNU Translation Project.
+         </td><td align="left">
+           This package is required to run
+           <span class="emphasis"><em>autogen.sh</em></span>, which is a 
requirement
+           if you are using the development source from CVS.
+         </td><td align="left"><code class="filename">gettext</code></td><td 
align="left"><code class="filename">gettext</code></td><td align="left"><code 
class="filename">gettext</code></td></tr><tr><td align="left">libtool</td><td 
align="left">Possibly Required</td><td align="left">1.5.22</td><td align="left">
+           This is a generic library support script.
+         </td><td align="left">
+           This package is required to run
+           <span class="emphasis"><em>autogen.sh</em></span>, which is a 
requirement
+           if you are using the development source from CVS.
+         </td><td align="left"><code 
class="filename">libltdl3-dev</code></td><td align="left"><code 
class="filename">libtool</code></td><td align="left"><code 
class="filename">libtool</code></td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="testdep"></a>Testing Dependencies</h2></div></div></div><p>
+    <span class="application">Gnash</span> tries to run as many tests as 
possible, but will
+    simply skip tests if the tools to run them are unavailable.
+  </p><div class="table"><a name="testdeps"></a><p class="title"><b>Table 2.2. 
Testing Dependency Table</b></p><div class="table-contents"><table 
summary="Testing Dependency Table" 
border="1"><colgroup><col><col><col><col><col><col><col></colgroup><thead><tr><th
 align="left">Name</th><th align="left">Level</th><th 
align="left">Version</th><th align="left">Description</th><th 
align="left">Explanation</th><th align="left">apt-get package</th><th 
align="left">RPM/Yum package</th><th align="left">BSD 
package</th></tr></thead><tbody><tr><td align="left">Ming</td><td 
align="left">Optional</td><td align="left">0.4.0_beta4 or higher</td><td 
align="left">
+           Ming is an ActionScript compiler.
+         </td><td align="left">
+           Ming is the primary compiler for ActionScript testcases.
+         </td><td align="left">No distribution packages are available.</td><td 
align="left">No distribution packages are available.</td><td align="left">No 
distribution packages are available.</td></tr><tr><td 
align="left">Mtasc</td><td align="left">Optional</td><td align="left">1.12 or 
higher</td><td align="left">
+           Mtasc is an ActionScript compiler.
+         </td><td align="left">
+           Mtasc is used in some tests.
+         </td><td align="left"><code class="filename">mtasc</code></td><td 
align="left">No distribution packages are available.</td><td align="left">No 
distribution packages are available.</td></tr><tr><td align="left">swfc</td><td 
align="left">Optional</td><td align="left">part of swftools 0.8.1</td><td 
align="left">
+           Swfc a swf decompiler.
+         </td><td align="left">
+           Swfc is used in some testcases.
+         </td><td align="left">No distribution packages are available.</td><td 
align="left">No distribution packages are available.</td><td align="left">No 
distribution packages are available.</td></tr><tr><td 
align="left">swfmill</td><td align="left">Optional</td><td align="left"> 
0.2.12</td><td align="left">
+           Swfmill is an XML-based SWF (Shockwave Flash) processing tool.
+         </td><td align="left">
+           Swfmill is used in some testcases.
+         </td><td align="left">No distribution packages are available.</td><td 
align="left">No distribution packages are available.</td><td align="left">No 
distribution packages are available.</td></tr><tr><td 
align="left">Python</td><td align="left">Optional</td><td align="left">2.4 or 
higher</td><td align="left">
+           Python is a scripting language.
+         </td><td align="left">
+           Python is used by part of the testing framework.
+         </td><td align="left"><code class="filename">python</code></td><td 
align="left"><code class="filename">python</code></td><td align="left"><code 
class="filename">python</code></td></tr><tr><td align="left">DejaGnu</td><td 
align="left">Optional</td><td align="left">1.4 or higher</td><td align="left">
+           DejaGnu is a testing framework.
+         </td><td align="left">
+           DejaGnu is used to run multiple tests in an
+           automated fashion.
+         </td><td align="left"><code class="filename">dejagnu</code></td><td 
align="left"><code class="filename">dejagnu</code></td><td align="left"><code 
class="filename">dejagnu</code></td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="docdepend"></a>Documentation Dependencies</h2></div></div></div><p>
+    The following packages are used to build <span 
class="application">Gnash</span>'s documentation.
+  </p><div class="table"><a name="docdeps"></a><p class="title"><b>Table 2.3. 
Documentation Dependency Table</b></p><div class="table-contents"><table 
summary="Documentation Dependency Table" 
border="1"><colgroup><col><col><col><col><col><col><col></colgroup><thead><tr><th
 align="left">Name</th><th align="left">Level</th><th 
align="left">Version</th><th align="left">Description</th><th 
align="left">Explanation</th><th align="left">apt-get package</th><th 
align="left">RPM/Yum package</th><th align="left">BSD 
package</th></tr></thead><tbody><tr><td align="left">Docbook</td><td 
align="left">Required</td><td align="left"> </td><td align="left">
+           <a class="ulink" href="http://http://docbook.sourceforge.net/"; 
target="_top">Docbook</a> is
+           is an industry-standard XML format for technical
+           documentation.  You can download it from
+           <a class="ulink" 
href="http://sourceforge.net/project/showfiles.php?group_id=21935#files"; 
target="_top">http://sourceforge.net/project/showfiles.php?group_id=21935#files</a>.
+         </td><td align="left">
+           <span class="application">Gnash</span> documentation is written in 
Docbook.
+         </td><td align="left">
+           <code class="filename">docbook-utils</code> and <code 
class="filename">docbook-dsssl</code>
+         </td><td align="left">
+           <code class="filename">docbook-dtd41-sgml</code> and <code 
class="filename">docbook-style-dsssl</code>
+         </td><td align="left">docbook</td></tr><tr><td 
align="left">DocBook2X</td><td align="left">Optional</td><td align="left"> 
</td><td align="left">
+           This software package converts Docbook documents to
+           the traditional man page format, GNU Texinfo
+           format, and HTML (via Texinfo) format.  
+           It is available at <a class="ulink" 
href="http://docbook2x.sourceforge.net/"; 
target="_top">http://docbook2x.sourceforge.net/</a>.
+         </td><td align="left">
+           DocBook2X is required to produce HTML and Texinfo
+           formats.
+         </td><td align="left"><code class="filename">docbook2x</code></td><td 
align="left"><code class="filename">docbook2x</code></td><td align="left"><code 
class="filename">docbook2x</code></td></tr><tr><td 
align="left">DocBook-utils</td><td align="left">Optional</td><td align="left"> 
</td><td align="left">
+           This software package converts Docbook documents to
+           the traditional man page format, GNU Texinfo
+           format, and HTML (via Texinfo) format.  
+         </td><td align="left">
+           DocBook-utils is required to produce HTML and Texinfo
+           formats.
+         </td><td align="left"><code 
class="filename">docbook-utils</code></td><td align="left"><code 
class="filename">docbook-utils</code></td><td align="left"><code 
class="filename">docbook-utils</code></td></tr><tr><td 
align="left">Texinfo</td><td align="left">Possibly Required</td><td 
align="left"> </td><td align="left">
+           Texinfo can be used to convert DocBook2X output
+           into GNU info pages.  You can download it from
+           <a class="ulink" href="http://ftp.gnu.org/gnu/texinfo/"; 
target="_top">http://ftp.gnu.org/gnu/texinfo/</a>.
+         </td><td align="left">
+           Texinfo is required if you wish to product GNU info
+           pages.
+         </td><td align="left"><code class="filename">texinfo</code></td><td 
align="left"><code class="filename">texinfo</code></td><td align="left"><code 
class="filename">texinfo</code></td></tr><tr><td align="left">FOP</td><td 
align="left">Optional</td><td align="left">0.20.5</td><td align="left">
+           Formatting Objects Processor is a print formatter
+           driven by XSL formatting objects.  It is a Java
+           application which can output PDF, PCL, PS, SVG, XML,
+           Print, AWT, MIF, and Text.  It is available at
+           <a class="ulink" href="http://xmlgraphics.apache.org/fop/"; 
target="_top">http://xmlgraphics.apache.org/fop/</a>.
+         </td><td align="left">
+           FOP is required for PDF output.
+         </td><td align="left"><code class="filename">fop</code></td><td 
align="left"><code class="filename">fop</code></td><td align="left"><code 
class="filename">fop</code></td></tr><tr><td align="left">Java (j2re)</td><td 
align="left">Possibly Required</td><td align="left"> </td><td align="left">
+           FOP requires Sun's Java runtime (GCJ does not work with
+           FOP).  You can download it from
+           <a class="ulink" href="http://java.sun.com"; 
target="_top">http://java.sun.com</a>.
+         </td><td align="left">
+           Sun's Java runtime (j2re) is required to use FOP.  
+         </td><td align="left">
+           Download the package from <a class="ulink" 
href="http://java.sun.com"; target="_top">Sun</a>.
+         </td><td align="left">
+           Download the package from <a class="ulink" 
href="http://java.sun.com"; target="_top">Sun</a>.
+         </td><td align="left"> </td></tr><tr><td align="left">JAI</td><td 
align="left">Possibly Required</td><td align="left"> </td><td align="left">
+           Sun's Java Advanced Imaging API can be downloaded from
+           <a class="ulink" 
href="http://java.sun.com/products/java-media/jai/iio.html"; 
target="_top">http://java.sun.com/products/java-media/jai/iio.html</a>.
+         </td><td align="left">
+           JAI is required
+           if you wish to include graphics in a PDF file being
+           generated with FOP.
+         </td><td align="left">
+           Download the package from <a class="ulink" 
href="http://java.sun.com/products/java-media/jai/iio.html"; 
target="_top">Sun</a>.
+         </td><td align="left">
+           Download the package from <a class="ulink" 
href="http://java.sun.com/products/java-media/jai/iio.html"; 
target="_top">Sun</a>.
+         </td><td align="left"> </td></tr></tbody></table></div></div><br 
class="table-break"><p>
+    If you install j2re, set the <span 
class="emphasis"><em>JAVA_HOME</em></span>
+    environment variable to the top directory of the j2re
+    installation.  If you encounter problems with the Java
+    installation, you may also need to add this path to the
+    <span class="emphasis"><em>CLASSPATH</em></span> environment variable.
+  </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="configure"></a>Configuring 
Gnash</h2></div></div></div><p>
+    <span class="application">Gnash</span>, like most GNU projects, allows a 
user to select various
+    options before compiling its source code. These options include
+    selecting from the available features, specifying custom paths for
+    installation, and cross compiling support uses <a class="ulink" 
href="http://www.gnu.org/software/autoconf/"; target="_top">GNU Autoconf</a>
+    for configuration.
+  </p><p>
+    If you opted to download the development snapshot
+    of <span class="application">Gnash</span>, the <span 
class="emphasis"><em>configure</em></span> script will
+    not be included.  It can be created by running 
+    <span class="emphasis"><em>autogen.sh</em></span> from the source root 
directory:
+    </p><pre class="programlisting">
+      ./autogen.sh
+    </pre><p>
+    Note that there are some 
+    <a class="link" href="#dependencies" title="Code 
Dependencies">dependencies</a> for
+    autogen.
+  </p><p>
+    All the standard <span class="command"><strong>configure</strong></span> 
options
+    are available.  In addition, <span class="application">Gnash</span> has 
two types of
+    options: those that <a class="link" href="#configfeatures" 
title="Features">enable or disable 
+    features</a>, and
+    those that <a class="link" href="#custompath" title="Specifying Custom 
Paths">specify custom paths for 
+    development packages</a>
+    which are not found during the default search.  A complete
+    list of <span class="emphasis"><em>all</em></span> configuration options, 
including
+    standard ones, can be seen by typing:
+    </p><pre class="programlisting">
+      ./configure --help | less
+    </pre><p>
+    Read further for a more detailed explanation of <span 
class="application">Gnash</span>-specific
+    options.
+  </p><p>
+    The syntax for running <span class="emphasis"><em>configure</em></span> is 
as follows:
+    </p><pre class="programlisting">
+      configure <em class="replaceable"><code>&lt;options&gt;</code></em>
+    </pre><p>
+    The example below shows the <span 
class="command"><strong>configure</strong></span> options
+    which create the smallest working standalone version of <span 
class="application">Gnash</span>.  In
+    this example, <span class="command"><strong>configure</strong></span> is 
being run from the
+    source root directory:
+  </p><pre class="programlisting">
+    ./configure --disable-debugger --disable-cygnal \
+    --disable-plugin --enable-media=ffmpeg --enable-gui=sdl
+  </pre><p>
+    By default, you shouldn't need to supply any options to
+    configure. The configure script will attempt to determine what to
+    build based on the development libraries you have installed. The
+    default configuration for Gnash is both GTK and KDE GUIs, the AGG
+    renderer, and Gstreamer for multimedia support, with no extensions
+    built.
+  </p><p>
+    Being highly portable, <span class="application">Gnash</span> has many 
configuration options
+    available, and not all are supposed to work together. A common
+    mistake when configuring <span class="application">Gnash</span> is to 
supply too many options,
+    overdriving <span class="application">Gnash</span>'s ability to do the 
right thing.
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a 
name="configfeatures"></a>Features</h2></div></div></div><p>
+    Some switches can be used during configuration to enable or disable
+    features of <span class="application">Gnash</span>. Some of the most 
important configuration options
+    are:
+  </p><div class="itemizedlist"><ul type="opencircle"><li 
style="list-style-type: circle"><p>
+       <code class="option">--enable-gui</code> lets you specify your GUI of 
choice.
+       The default option is GTK.
+      </p></li><li style="list-style-type: circle"><p>
+       <code class="option">--enable-renderer</code> allows a renderer to be
+       chosen.  The default renderer is AGG.
+      </p></li><li style="list-style-type: circle"><p>
+       <code class="option">--enable-media</code> permits a media handler to be
+       selected.  The default is Gstreamer. 
+      </p></li></ul></div><p>
+    A complete list of available features follows.
+  </p><div class="table"><a name="tb-config-features"></a><p 
class="title"><b>Table 2.4. Configuration Options - Features</b></p><div 
class="table-contents"><table summary="Configuration Options - Features" 
border="1"><colgroup><col><col></colgroup><thead><tr><th 
align="left">Option</th><th 
align="left">Function</th></tr></thead><tbody><tr><td align="left"><code 
class="option">--enable-debugger</code></td><td align="left">Enable support for 
the Flash debugger. The debugger is
+         mainly of interest to Flash developers, and is still under 
development.</td></tr><tr><td align="left"><code 
class="option">--enable-lirc</code></td><td align="left">
+           Enable support for the LIRC remote control protocol.
+         </td></tr><tr><td align="left"><code 
class="option">--enable-cygnal</code></td><td align="left">
+           Build the Cygnal streaming media server.
+         </td></tr><tr><td align="left"><code 
class="option">--disable-menus</code></td><td align="left">
+           Disable building all the menus for the GUI. THis is used
+           by mobile devices without as much screen space.
+         </td></tr><tr><td align="left"> <code 
class="option">--enable-docbook</code></td><td align="left">  Enable the 
generation of HTML, INFO, and MAN
+         versions of the documentation from the Docbook XML. You will
+         then be able to use <span class="command"><strong>make 
html</strong></span>,
+         <span class="command"><strong>make info</strong></span>, and <span 
class="command"><strong>make
+         man</strong></span> commands. By default, man,info and html pages
+         are generated.</td></tr><tr><td align="left"><code 
class="option">--enable-gui=gtk|sdl|kde|fltk|fb|hildon|alp</code></td><td 
align="left"><p>Select the Graphic User Interface to use (choose one).</p>
+         <div class="variablelist"><dl><dt><span 
class="term">GTK</span></dt><dd><p>
+                 The GTK+ toolkit, which is the default GUI.
+                 Said to interwork particularly well with firefox.
+               </p></dd><dt><span class="term">Hildon</span></dt><dd><p>
+                 The Hildon toolkist is based on GTK+, and is use by
+                 some mobile devices.
+               </p></dd><dt><span class="term">ALP</span></dt><dd><p>
+                 The ALP "Hiker" GUI is used for the Access Linux platform.
+               </p></dd><dt><span class="term">SDL</span></dt><dd><p>
+                 Simple DirectMedia Layer, a simple and portable GUI.
+                 Its sound facilities are used when --enable-media=ffmpeg
+                 regardless of whether it is also in charge of the GUI.
+               </p></dd><dt><span class="term">KDE</span></dt><dd><p>
+                 An interface adapted to the KDE Desktop Environment.
+                 This must be selected when building the Konqueror plugin
+                 "klash". Furthermore, the only renderer that currently
+                 works with KDE is opengl.
+               </p></dd><dt><span class="term">FLTK</span></dt><dd><p>
+                 Fast Light ToolKit, low on resource usage.
+                 Since all build using fltk are now broken, we declare it
+                 "for developers".
+               </p></dd><dt><span class="term">FB</span></dt><dd><p>
+                 The Linux Frame Buffer, also known as /dev/fb0.
+                 AGG is the only renderer that can currently be used
+                 with the framebuffer GUI.
+               </p></dd></dl></div>
+         </td></tr><tr><td align="left"><code 
class="option">--enable-i810-lod-bias</code>
+         </td><td align="left">Enable fix for Intel 810 LOD bias problem. 
Older versions
+         of libMesa on the Intel i810 or i815 graphics processor
+         need this flag or Gnash will core dump. This has been
+         fixed in newer versions (summer 2005) of libMesa.</td></tr><tr><td 
align="left"><code class="option">--enable-media=ffmpeg|gst|none</code>
+         </td><td align="left">  <p>
+           Select the specified media decoder and sound engine.
+           FFMPEG uses the SDL sound engine; GST uses its own.
+           <code class="option">GST</code> is the default decoder.
+         </p>
+         <p>
+           You should only select one media decoder.
+         </p></td></tr><tr><td align="left">
+           <code class="option">--disable-nsapi</code>
+           <code class="option">--enable-nsapi</code>
+         </td><td align="left">Force disable/enable building the NPAPI plugin.
+         By default the Mozilla plugin is built if the GTK gui 
+         is selected.  Specify the 
+         <code class="option">--with-npapi-plugindir=</code> option to specify 
where the
+         plugin should be installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--disable-kparts</code>
+           <code class="option">--enable-kparts</code>
+         </td><td align="left">Force disable/enable building the KPARTS 
plugin. By default the
+         KDE plugin is built if the kde gui is selected. 
+         Specify the <code class="option">--with-kde-plugindir=</code> and
+         <code class="option">--with-kde-servicesdir=</code> options (or more 
generally
+         the <code class="option">--with-kde-pluginprefix=</code> one) to 
specify where the
+         plugin should be installed. The default installation dir is extracted
+         from kde-config.
+         </td></tr><tr><td align="left">
+           <code class="option">--disable-plugins</code>
+         </td><td align="left">Disable build of both kparts and npapi 
plugins</td></tr><tr><td align="left"><code 
class="option">--enable-renderer=opengl|cairo|agg</code>
+         </td><td align="left">Enable support for the a graphics backend. 
Currently
+         only <code class="option">opengl</code> and
+         <code class="option">agg</code> work sufficiently. OpenGL is
+         used when you have hardware accelerated graphics. AGG i
+         used when you do not have hardware accelerated
+         graphics. Typically most desktop machines have OpenGL
+         support, and most embedded systems do not. OpenGl is the
+         default when building Gnash, although the quality of AGG's
+         rendering is currently superior to OpenGL.</td></tr><tr><td 
align="left"><code class="option">--enable-sdk-install</code>
+         </td><td align="left">Enable installing the libraries and headers as 
an SDK.
+         </td></tr><tr><td align="left"><code 
class="option">--disable-shared</code>
+         </td><td align="left">Enable installing the shared libraries and 
headers.
+         Note that the extensions mechanism may not work if shared
+         libraries are disabled.</td></tr><tr><td align="left"><code 
class="option">--enable-strict</code>
+         </td><td align="left">Turn verbose GCC compiler warnings. By default 
only
+         <code class="option">-Wall</code> is used with GCC.</td></tr><tr><td 
align="left"><code class="option">--enable-fps-debug</code>
+         </td><td align="left">Enable FPS debugging code. When this feature is 
compiled in you can use the -f switch of <span class="application">Gnash</span>
+         to have FPS printed at regular intervals.</td></tr><tr><td 
align="left"><code class="option">--enable-write</code></td><td 
align="left">Makes the Mozilla plugin write the currently playing SWF movie to 
<code class="filename">/tmp</code>.
+         </td></tr><tr><td align="left"><code 
class="option">--disable-mit-shm</code>
+         </td><td align="left">Disable support for the MIT-SHM X extensions.
+         Currently support is only available using GTK gui and AGG renderer.
+         Keeping it enabled is not a problem as it will not be used if not
+         available in the current X session.
+         </td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="custompath"></a>Specifying Custom Paths</h2></div></div></div><p>
+    By default, none of these options should be required
+    unless you want <span class="application">Gnash</span> to use a specific 
version of a
+    development package, or if the configure test fails to
+    find a component.  Please <a class="link" href="#bugreport" title="Chapter 
5. Reporting Bugs">report the problem</a> if a
+    configure test fails.
+  </p><p>
+    The following custom path options are available:
+  </p><div class="table"><a name="tb-configure-paths"></a><p 
class="title"><b>Table 2.5. Custom Path Options</b></p><div 
class="table-contents"><table summary="Custom Path Options" 
border="1"><colgroup><col><col></colgroup><thead><tr><th 
align="left">Option</th><th 
align="left">Function</th></tr></thead><tbody><tr><td align="left">
+           <code class="option">--x-includes=DIR</code>
+         </td><td align="left">
+           X include files are in DIR.
+         </td></tr><tr><td align="left">
+           <code class="option">--x-libraries=DIR</code>
+         </td><td align="left">
+           X library files are in DIR.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-libxml=PFX</code>
+         </td><td align="left">
+           Prefix to where libxml is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-libxml-libraries=DIR</code>
+         </td><td align="left">
+           Directory where libxml library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-libxml-includes=DIR</code>
+         </td><td align="left">
+           Directory where libxml header files are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-docbook=DIR</code>
+         </td><td align="left">
+           Directory where the DocBook style-sheets are installed.        
+         </td></tr><tr><td align="left">
+           <code class="option">--with-sdl-prefix=PFX</code>
+         </td><td align="left">
+           Prefix where SDL is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-zlib-incl</code>
+         </td><td align="left">
+           Directory where zlib header is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-zlib-lib</code>
+         </td><td align="left">
+           Directory where zlib library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-jpeg-incl</code>
+         </td><td align="left">
+           Directory where jpeg header is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-jpeg-lib</code>
+         </td><td align="left">
+           Directory where jpeg library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-png-incl</code>
+         </td><td align="left">
+           Directory where png header is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-png-lib</code>
+         </td><td align="left">
+           Directory where png library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-qt-dir</code>
+         </td><td align="left">
+           Directory where QT is installed. This is only used by
+           the Klash plugin.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-qt-includes</code>
+         </td><td align="left">
+           Directory where the QT header files are installed. This
+           is only used by the Klash plugin.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-qt-libraries</code>
+         </td><td align="left">
+           Directory where the QT libraries are installed. This is
+           only used by the Klash plugin.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-npapi-plugindir</code>
+         </td><td align="left">
+           This is the directory to install the NPAPI (Mozilla) plugin in.
+           By default it goes to ~/.mozilla/plugins.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-kde-pluginprefix</code>
+         </td><td align="left">
+           This option sets the default install dir for all KPARTS (kde) files.
+           The plugin will be installed in PREFIX/lib/kde3, use
+           <code class="option">-with-kde-plugindir</code> to override. The 
service file in 
+           PREFIX/share/services, use <code 
class="option">--with-kde-servicesdir</code> to
+           override. The config file in PREFIX/share/config, use
+           <code class="option">--with-kde-configdir</code> to override. The
+           appdata file in PREFIX/share/apps/klash, use
+           <code class="option">--with-kde-appsdatadir</code> to override. 
+         </td></tr><tr><td align="left">
+           <code class="option">--with-kde-plugindir</code>
+         </td><td align="left">
+           This is the directory to install the KPARTS (kde) plugin in.
+           By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install module --expandvars,
+           or $(prefix)/share/services if kde-config is not found.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-kde-servicesdir</code>
+         </td><td align="left">
+           This is the directory to install the KPARTS (kde) service in.
+           By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install services --expandvars,
+           or $(libdir)/kde3 if kde-config is not found.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-kde-configdir</code>
+         </td><td align="left">
+           This is the directory to install the KPARTS (kde) config files in.
+           By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install config --expandvars,
+           or $(prefix)/share/config if kde-config is not found.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-kde-appsdatadir</code>
+         </td><td align="left">
+           This is the directory to install the KPARTS (kde) application data 
files in.
+           By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install data --expandvars,
+           or $(prefix)/share/apps if kde-config is not found.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-ming</code>
+         </td><td align="left">
+           Ming is used to build test cases, but not by the Gnash
+           player itself.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-ogg_incl</code>
+         </td><td align="left">
+           Directory where the libogg headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-ogg_lib</code>
+         </td><td align="left">
+           Directory where the libogg library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-gstreamer-incl</code>
+         </td><td align="left">
+           Directory where the Gstreamer headers are
+           installed. Gstreamer version 0.10 or greater must be used.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-gstreamer-lib</code>
+         </td><td align="left">
+           Directory where the Gstreamer library is
+           installed. Gstreamer version 0.10 or greater must be used.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-opengl-includes</code>
+         </td><td align="left">
+           Directory where OpenGL (libMesa) headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-opengl-lib</code>
+         </td><td align="left">
+           Directory where the OpenGL (libMesa) library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-glext-incl</code>
+         </td><td align="left">
+           Directory where GtkGlExt headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-glext-lib</code>
+         </td><td align="left">
+           Directory where the GtkGlExt library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-gtk2-incl</code>
+         </td><td align="left">
+           Directory where the Gtk2 headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-gtk2-lib</code>
+         </td><td align="left">
+           Directory where the Gtk2 library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-cairo_incl</code>
+         </td><td align="left">
+           Directory where the Cairo headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-cairo-lib</code>
+         </td><td align="left">
+           Directory where the Cairo library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-glib-incl</code>
+         </td><td align="left">
+           Directory where the Glib headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-glib-lib</code>
+         </td><td align="left">
+           Directory where the Glib library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-pango-incl</code>
+         </td><td align="left">
+           Directory where the Pango headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-pango-lib</code>
+         </td><td align="left">
+           Directory where the Pango library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-atk-incl</code>
+         </td><td align="left">
+           Directory where the ATK headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-atk-lib</code>
+         </td><td align="left">
+           Directory where the ATK library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-pthread-incl</code>
+         </td><td align="left">
+           Directory where the Pthread headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-pthread-lib</code>
+         </td><td align="left">
+           Directory where the Pthread library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-agg-incl</code>
+         </td><td align="left">
+           Directory where the AGG (Antigrain) headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-agg-lib</code>
+         </td><td align="left">
+           Directory where the AGG (Antigrain) library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-ffmpeg-incl</code>
+         </td><td align="left">
+           Directory where the FFMPEG headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-ffmpeg-lib</code>
+         </td><td align="left">
+           Directory where the FFMPEG library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-boost-incl</code>
+         </td><td align="left">
+           Directory where the Boost headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-boost-lib</code>
+         </td><td align="left">
+           Directory where the Boost library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-curl-incl</code>
+         </td><td align="left">
+           Directory where the libCurl headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-curl-lib</code>
+         </td><td align="left">
+           Directory where the libCurl library is installed.
+         </td></tr></tbody></table></div></div><br 
class="table-break"></div></div><p>
+    Once you have <span class="application">Gnash</span> configured, you are 
ready to build the code.  <span class="application">Gnash</span> is built using
+    <span class="emphasis"><em>GNU make</em></span>.
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="compile"></a>Compiling the 
Code</h2></div></div></div><p>
+      The most basic way to compile code is simply:
+      </p><pre class="programlisting">
+       make
+      </pre><p>
+      If the compilation ends with an error, check the output of 
+      <span class="emphasis"><em>configure</em></span> and ensure that you are 
not missing 
+      any required prerequisites.  The output of <span 
class="command"><strong>make</strong></span> can be verbose; you may wish to 
pipe the output to a file.
+    </p><p>
+      The variables used by <span class="command"><strong>make</strong></span> 
can be redefined when
+      the program is invoked, if you desire it.   The most interesting flags
+      are <span class="emphasis"><em>CFLAGS</em></span> and <span 
class="emphasis"><em>CXXFLAGS</em></span>,
+      which are often used to enable debugging or turn of optimization.
+      The default value for both of these variables is
+      <span class="emphasis"><em>-O2 -g</em></span>.  A list of influential 
+      environment variables can be seen in the configuration help:
+    </p><pre class="programlisting">./configure --help</pre><p>
+      In the following example, debugging is enabled and optimization is
+      disabled:
+    </p><pre class="programlisting">make CFLAGS=-g CXXFLAGS=-g</pre></div><div 
class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" 
style="clear: both"><a name="processdoc"></a>Creating the 
Documentation</h2></div></div></div><p>
+      By default, documentation is not built when you
+      <a class="link" href="#install" title="Installation">install</a> <span 
class="application">Gnash</span>.  This is because
+      there are a number of <a class="link" href="#docdepend" 
title="Documentation Dependencies">dependencies 
+      for the documentation</a>.  Documentation is built when it
+      is specified with a specific target in the generated 
+      <span class="command"><strong>Makefile</strong></span> in the <code 
class="filename">doc/C</code>
+      sub-directory.  If you type <span class="command"><strong>make 
install</strong></span> in
+      this directory, all documents will be built.
+    </p><p>
+      You must specify a target output format when you wish to create
+      documentation.  The available output formats are: <span 
class="command"><strong>html</strong></span>,
+      <span class="command"><strong>pdf</strong></span>, <span 
class="command"><strong>info</strong></span>, 
+      <span class="command"><strong>man</strong></span>, and <span 
class="command"><strong>alldocs</strong></span>.  
+      It is also possible to output <span class="command"><strong>GNOME 
help</strong></span> if
+      the <a class="link" href="#configfeatures" title="Features">configure 
option</a>
+      <code class="option">--enable-ghelp</code> was used.  
+      The <span class="command"><strong>alldocs</strong></span> target will 
build all output formats
+      except <span class="emphasis"><em>GNOME help</em></span>.
+      For example, to create HTML output, type:
+      </p><pre class="programlisting">
+       make html
+      </pre><p>
+    </p><p>
+      <span class="application">Gnash</span> also uses <a class="ulink" 
href="http://www.stack.nl/~dimitri/doxygen/index.html"; 
target="_top">Doxygen</a> to produce <span class="emphasis"><em>HTML</em></span>
+      documentation of <span class="application">Gnash</span> internals.  You 
must have Doxygen installed
+      to produce this documentation, which is built from the
+      <code class="filename">doc</code> directory with the command (documents
+      will be placed in the subdirectory <code 
class="filename">apidoc/html</code>):
+      </p><pre class="programlisting">
+       make apidoc
+      </pre><p>
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="runtests"></a>Running the Tests</h2></div></div></div><p>
+      Before beginning the potentially lengthy install, it is wise to
+      test the installation.  If a test fails, please report it by
+      following the <a class="link" href="#bugreport" title="Chapter 5. 
Reporting Bugs">instructions for
+      reporting a bug</a>. 
+    </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="dejagnu"></a>Using DejaGnu</h3></div></div></div><p>
+       
+       The easiest way to run <span class="application">Gnash</span>'s test 
suite is to install
+       <span class="emphasis"><em><a class="ulink" 
href="http://www.gnu.org/software/dejagnu"; 
target="_top">DejaGnu</a></em></span>.
+       After installing DejaGnu, run:
+       </p><pre class="programlisting">
+         make check
+       </pre><p>
+      </p><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 
class="title"><a name="testing_verbosity"></a>Increasing 
Verbosity</h5></div></div></div><p>
+         If you encounter a problem with a test, increasing the
+         verbosity may make the issue easier to spot.
+         Additional details are visible when 
+         <span class="emphasis"><em>RUNTESTFLAGS</em></span> are used to add 
the 
+         <span class="emphasis"><em>verbose</em></span> and <span 
class="emphasis"><em>all</em></span> options.
+         The <code class="option">verbose</code> option prints more 
information about the testing process, while
+         the <code class="option">all</code> option includes details on 
passing tests.  
+         </p><pre class="programlisting">
+           make check RUNTESTFLAGS="-v -a"
+         </pre><p>
+       </p></div><div class="sect4" lang="en"><div 
class="titlepage"><div><div><h5 class="title"><a 
name="running_some_tests"></a>Running Some Tests</h5></div></div></div><p>
+         It is possible to run just a single test, or 
+         a subdirectory of tests, by specifying the directory or 
+         compiled test file.
+       </p><p>
+         Some tests rely on <span 
class="emphasis"><em>testsuite/Dejagnu.swf</em></span>,
+         which in turn relies on <span class="emphasis"><em>Ming</em></span>.
+         This file is created when you run <span class="command"><strong>make 
check</strong></span> for the entire
+         testsuite, and can also be created on demand:
+         </p><pre class="programlisting">
+           make -C testsuite Dejagnu.swf 
+         </pre><p>
+       </p><p>
+         In this example, the <span 
class="command"><strong>clip_as_button2</strong></span> test is compiled and
+         run:
+         </p><pre class="programlisting">
+           make -C testsuite/samples clip_as_button2-TestRunner 
+           cd testsuite/samples &amp;&amp; ./clip_as_button2-TestRunner
+         </pre><p>
+         This creates and runs all the tests in the directory
+         <code class="filename">movies.all</code>:
+         </p><pre class="programlisting">
+           make -C testsuite/movies.all check
+         </pre><p>
+       </p></div></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="manually"></a>Running 
The Tests Manually</h3></div></div></div><p>
+       You may also run test cases by hand, which can be useful if you
+       want to see all the debugging output from the test case.  Often
+       the messages which come from deep within <span 
class="application">Gnash</span> are most useful for
+       development.
+      </p><p>
+       The first step is to compile the test case, which can be done
+       with <code class="filename">make XML-v#.swf</code> where the '#' is 
replaced
+       with the <span class="emphasis"><em>target</em></span> SWF version or 
versions.  
+       For example:
+       </p><pre class="programlisting">
+         make XML-v{5,6,7,8}.swf
+       </pre><p>
+      </p><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 
class="title"><a name="manual_compiled_tests"></a>Movie 
tests</h5></div></div></div><p>
+         This creates a Flash movie version of the test case, which
+         can be run with a standalone Flash player.  For instance,
+         the target for SWF version 6 could be run with <span 
class="application">Gnash</span>:
+         </p><pre class="programlisting">
+           gnash -v XML-v6.swf
+         </pre><p>
+       </p></div><div class="sect4" lang="en"><div 
class="titlepage"><div><div><h5 class="title"><a 
name="manual_actionscript_tests"></a>ActionScript Unit 
Tests</h5></div></div></div><p>
+         Unit tests for ActionScript classes in <span 
class="command"><strong>testsuite/actionscript.all</strong></span>
+         are run without a graphical display:
+         </p><pre class="programlisting">
+           gprocessor -v XML-v6.swf
+         </pre><p>
+       </p></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="install"></a>Installation</h2></div></div></div><p>
+    Now that <span class="application">Gnash</span> has been compiled and 
tested, use the following command to install it:
+    </p><pre class="programlisting">
+      make install
+    </pre><p>
+    The above command installs the standalone player.  If the correct
+    files were found by <span 
class="command"><strong>configure</strong></span> and if the
+    <code class="option">--disable-plugin</code> option was not specified, the
+    <span class="application">Gnash</span> browser plugin is also installed. 
+  </p><p>
+    <span class="application">Gnash</span> installs a number of <a 
class="link" href="#libinstall" title="Libraries">libraries</a>,
+    namely: <span class="emphasis"><em>libgnashbase</em></span>,
+    <span class="emphasis"><em>libgnashamf</em></span>, <span 
class="emphasis"><em>libgnashmedia</em></span>,
+    <span class="emphasis"><em>libserver</em></span>, and <span 
class="emphasis"><em>libgnashplugin</em></span>.
+    <a class="link" href="#appinstall" title="Executables">Executables</a>
+    consist of the (optional) plugin, <code class="filename">gprocessor</code>,
+    <code class="filename">cygnal</code>,  <code 
class="filename">dumpshm</code>,
+    <code class="filename">soldumper</code>, and <code 
class="filename">gnash</code>.
+    <a class="link" href="#docinstall" title="Documentation">Documentation</a> 
may also be installed.
+    The installation location is controlled with the
+    <span class="emphasis"><em>--prefix</em></span> <a class="link" 
href="#custompath" title="Specifying Custom Paths">configure
+    option</a>, except for plugins, which are explicitly set with
+    <span class="emphasis"><em>--plugin-dir</em></span>.
+  </p><p>
+    Note that if you are using a single file-system <span 
class="emphasis"><em>NFS</em></span>
+    mounted to multiple platforms, the 
+    <a class="link" href="#custompath" title="Specifying Custom 
Paths">configuration option</a> 
+    <span class="emphasis"><em>--exec-prefix</em></span> may be used to 
specify where
+    platform-dependent executables and libraries are installed.
+  </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="libinstall"></a>Libraries</h3></div></div></div><p>
+      Installed libraries are located in 
+      <code class="filename">/usr/local/lib</code> by default.
+      If the <span class="emphasis"><em>--prefix</em></span> option was used 
during the
+      configuration step, the libraries will
+      be installed in the directory <code class="filename">lib</code> inside 
the
+      path you specified.  If the libraries are stored in a non-standard
+      location, you must identify the path in one of two ways.
+    </p><p>
+      The traditional way to do this on UNIX
+      platforms is to set the <span 
class="emphasis"><em>LD_LIBRARY_PATH</em></span> variable
+      to the path plus <code class="filename">/lib</code>.  For example, if you
+      installed in <code class="filename">/home/gnash</code>, the 
+      <span class="emphasis"><em>LD_LIBRARY_PATH</em></span> path would be
+      <code class="filename">/home/gnash/lib</code>.  Multiple paths are 
delimited
+      with a colon (':').
+    </p><p>
+      GNU/Linux allows the custom path to be added to
+      <code class="filename">/etc/ld.so.conf</code>.  After adding the path,
+      run <span class="emphasis"><em>ldconfig</em></span> as root to update 
the runtime
+      cache.
+    </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="appinstall"></a>Executables</h3></div></div></div><p>
+      The Mozilla plugin is built from headers (the Mozilla SDK) provided with 
Gnash and
+      does not need extra development packages to be installed. By default, the
+      plugin is installed to <code 
class="filename">~/.mozilla/plugins/</code>. To enable
+      the plugin for other users, copy the file <code 
class="filename">libgnashplugin.so</code>
+      to <code class="filename">.mozilla/plugins/</code> in their home 
directory.
+      You may also specify the plugin installation directory by using the 
+      <code class="option">--with-plugindir</code> <a class="link" 
href="#custompath" title="Specifying Custom Paths">option 
+      at configuration time</a>.
+    </p><p>
+      These defaults are likely to change in future versions of Gnash.
+    </p><p>
+      The remaining executables are installed in the <code 
class="filename">bin</code>
+      subdirectory of the directory specified by during configuration.
+      If no path was specified, the default is 
+      <code class="filename">/usr/local/bin</code>.
+    </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="docinstall"></a>Documentation</h3></div></div></div><p>
+      Documentation is not built by default; please refer to the 
+      <a class="link" href="#processdoc" title="Creating the 
Documentation">section on documentation</a> for
+      more information on building documentation.
+    </p><p>
+      <span class="command"><strong>man</strong></span> and <span 
class="command"><strong>info</strong></span> 
+      are installed in <code class="filename">/usr/local/share/man</code>
+      and <code class="filename">/usr/local/share/info</code> respectively, 
unless
+      the <code class="option">--mandir</code> or <code 
class="option">--infodir</code>
+      <a class="link" href="#custompath" title="Specifying Custom 
Paths">configuration options</a> are used.
+    </p><p>
+      <span class="emphasis"><em>GNOME help</em></span> documentation uses the 
directory
+      <code class="filename">/usr/local/share/gnash/doc/gnash/C/</code> by 
default.
+      A configuration file in the <span class="application">Gnash</span> 
source tree,
+      <code class="filename">doc/C/gnash.omf</code> is used to specify under
+      which menu item <span class="application">Gnash</span> appears in the 
<span class="emphasis"><em>GNOME help</em></span>
+      system.
+    </p></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="cross"></a>Cross Configuring</h2></div></div></div><p>
+    To cross configure and compile <span class="application">Gnash</span>, 
begin by building a target system
+    on your workstation.  This includes cross compilers for the target
+    architecture, and some system headers. 
+    You will also need to cross compile all the <a class="link" 
href="#docdepend" title="Documentation Dependencies">dependencies  
+    </a> normally needed to build Gnash. This can on occasion be a
+    daunting process, as not all libraries will cross configure and cross
+    compile. There is more information about cross compiling all the
+    dependant packages on the <a class="ulink" href="http://www.gnashdev.org"; 
target="_top">http://www.gnashdev.org</a> web
+    site.
+  </p><p>
+    If you need to build your own tool chain, that is beyond the scope
+    of this manual. There are various resources on the web for howto's
+    on building GCC based cross toolchains. Two popular sites are
+    <a class="ulink" href="http://frank.harvard.edu/~coldwell/toolchain/"; 
target="_top">http://frank.harvard.edu/~coldwell/toolchain/</a>
+    and <a class="ulink" href="http://www.kegel.com/crosstool/"; 
target="_top">http://www.kegel.com/crosstool/</a>. This
+    can also be a very time consuming and frustrating process, even
+    for experienced developers.
+  </p><p>
+    Because the process of building your own cross tool chain can be
+    harder than one may wish, there are several other cross
+    development environments that simulate a native environment to
+    make it easier to develop. These also let you develop for both
+    native and cross builds. Several popular ones are 
+    <a class="ulink" 
href="http://www.access-company.com/products/linux/alp.html"; target="_top">
+    Access Linux Platform</a>, 
+    <a class="ulink" href="http://www.scratchbox.org/"; target="_top">
+    Scratchbox</a>, 
+    <a class="ulink" href="http://www.openembedded.org/"; target="_top">
+    Open Embedded</a>, 
+    <a class="ulink" href="http://maemo.org/"; target="_top">
+    Maemo</a>.
+  </p><p>
+    To build for an ARM based system on an x86 based systems,
+    configure like this using the traditional style cross toolchain,
+    configure like this:
+  </p><pre class="programlisting">
+    ../../gnash/configure --build=i686-pc-linux-gnu
+    --host=arm-linux --prefix=/usr/local/arm/oe --disable-nsapi
+    --disable-kparts --enable-gui=fb --enable-renderer=agg
+    --disable-shared --disable-menus
+    
+  </pre><p>
+    The important configuration options are the ones which specify the
+    architecture for the build:
+  </p><div class="variablelist"><dl><dt><span 
class="term">--target</span></dt><dd><p>
+         The target architecture, where the final executables are expected
+         to run.
+       </p></dd><dt><span class="term">--host</span></dt><dd><p>
+         The host architecture, where the executables are expected
+         to run.  Usually this is the same as the <span 
class="emphasis"><em>--target</em></span>,
+         except when building a compiler as a Canadian Cross.  In this
+         case, you might build a cross compiler on a UNIX system which
+         runs on a win32 machine, producing code for a third architecture,
+         such as ARM.  In this example, <span 
class="emphasis"><em>--target</em></span> would
+         be 'arm-unknown-linux-gnu', while <span 
class="emphasis"><em>--host</em></span> would 
+         be 'win32'.
+       </p></dd><dt><span class="term">--build</span></dt><dd><p>
+         This is the system the build is running on.
+       </p></dd></dl></div><p>
+    The following example of <span class="emphasis"><em>configure</em></span> 
builds for an
+    ARM system on an x86 system.  It was run after an ARM system was built
+    in <code class="filename">/usr/arm</code> and other required libraries 
were 
+    cross compiled.
+    </p><pre class="programlisting">
+      ./configure -target=arm-unknown-linux-gnu --prefix=/usr/arm \
+      --host=arm-unknown-linux-gnu --build=i686-pc-linux-gnu --disable-plugin
+    </pre><p>
+  </p></div></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="internals"></a>Chapter 
3. Software Internals</h2></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a href="#tour">A Tour of 
Gnash</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="#The%20Libraries">The Libraries</a></span></dt><dt><span class="sect2"><a 
href="#apps">The Applications</a></span></dt><dt><span class="sect2"><a 
href="#plugin">The Plugin</a></span></dt><dt><span class="sect2"><a 
href="#logging">The Debug Logging System</a></span></dt></dl></dd><dt><span 
class="sect1"><a href="#soundhandlers">Sound handling in 
Gnash</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="#soundtypes">Sound types</a></span></dt><dt><span class="sect2"><a 
href="#soundparsing">Sound parsing</a></span></dt><dt><span class="sect2"><a 
href="#soundplayback">Sound playback</a></span></dt><dt><span class="sect2"><a 
href="#sdlsound">The SDL sound backend</a></span></dt><dt><span 
class="sect2"><a href="#gstreamer">The Gstreamer 
backend</a></span></dt><dt><span class="sect2"><a href="#audio-future">Future 
audio backends</a></span></dt><dt><span class="sect2"><a 
href="#gstreamer-details">Detailed description of the Gstreamer 
backend</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#testing">Testing </a></span></dt><dd><dl><dt><span class="sect2"><a 
href="#testtools">Testing Tools</a></span></dt><dt><span class="sect2"><a 
href="#testcases">Test Cases</a></span></dt><dt><span class="sect2"><a 
href="#writeastests">Writing ActionScript Tests</a></span></dt><dt><span 
class="sect2"><a href="#writemingtests">Writing Ming-based self-contained SWF 
tests</a></span></dt><dt><span class="sect2"><a 
href="#writing_dejagnu_so_tests">Writing self-contained SWF tests with other 
compilers</a></span></dt><dt><span class="sect2"><a 
href="#writing_test_runners">Writing Test 
Runners</a></span></dt></dl></dd></dl></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="tour"></a>A Tour of Gnash</h2></div></div></div><p>
+      The top level of Gnash has several libraries, <span 
class="emphasis"><em>libgnashbase</em></span>,
+      <span class="emphasis"><em>libgnashserver</em></span>,
+      <span class="emphasis"><em>libgnashasobjs</em></span> and
+      <span class="emphasis"><em>libgnashbackend</em></span>. There are 
several utility programs 
+      included for debug parsing and processing of Flash movie files,
+      and other useful utilities for examining local Shared Objects and
+      sniffing LocalConnections.
+    </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="The%20Libraries"></a>The 
Libraries</h3></div></div></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="libbase"></a>libgnashbase</h4></div></div></div><p>
+         Libgnashbase contains support classes used by the rest of the
+         code.This library has no dependencies on any of the other
+         <span class="application">Gnash</span> libraries.
+       </p><p>
+         <span class="application">Gnash</span> makes heavy use of smart 
pointers, so memory allocations
+         are freed up automatically by the interpreter. Both STL and
+         Boost smart pointers are used.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="libgnashgui"></a>libgnashgui</h4></div></div></div><p>
+         Libgnashgui contains code for a portable GUI class that
+         supports using GTK2, a framebuffer, SDL, or KDE, FLTK, or Aqua.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="libgnashserver"></a>libgnashserver</h4></div></div></div><p>
+         Libgnashserver is the guts of the interpreter itself. This is where
+         the main code for the interpreter lives. Includes in
+         libserver are the two support libraries for the parser and
+         the core of the virtual machine.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="libgnashasobjs"></a>libgnashasobjs</h4></div></div></div><p>
+         Libgnashasobjs contains all the ActionScript classes used by
+         the interpreter.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="libgnashamf"></a>libgnashamf</h4></div></div></div><p>
+         AMF is the data format used internally by SWF files. This is
+         Gnash's support library to handle AMF data. This is used by
+         the ActionScript classes SharedObject and
+         LocalConnection. This is also used by the NetStream class
+         when using thre RTMP streaming network protocol.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="libgnashbackend"></a>libgnashbackend</h4></div></div></div><p>
+         Libgnashbackend is a library containing the rendering
+         code that glues this display to the Gnash. Supported
+         rendering backends are OpenGL, Cairo, and AGG.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="libgnashpluin"></a>libgnashplugin</h4></div></div></div><p>
+         Libgnashplugin is the Mozilla/Firefox plugin.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="libklashpart"></a>libklashpart</h4></div></div></div><p>
+         Libklashpart is the Konqueror plugin.
+       </p></div></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="apps"></a>The 
Applications</h3></div></div></div><p>
+           There are currently a few standalone programs in Gnash,
+        which serve either to assist with Gnash development or to play flash
+        movies.
+      </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="Gnash"></a>The Standalone 
Player</h4></div></div></div><p>
+         This is the standalone OpenGL backend used to play
+         movies. There are several command line options and keyboard
+         control keys used by Gnash.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="processor"></a>Gprocessor</h4></div></div></div><p>
+         Gprocessor is used to print out the actions (using the -va
+         option) or the parsing (using the -vp option) of a flash
+         movie. It is also used to produce the <span 
class="emphasis"><em>.gsc</em></span>
+         files that Gnash uses to cache data, thereby speeding up the
+         loading of files.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="soldumper"></a>SOLdumper</h4></div></div></div><p>
+         SOLDumper is a utility program used to find and dump the
+         content of <span class="emphasis"><em>Local Shared 
Objects</em></span>, also
+         called "Flash Cookies" by some.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="dumpshm"></a>Dumpshm</h4></div></div></div><p>
+         Dumpshm is a program used to find and dump the contents of
+         the <span class="emphasis"><em>LocalConnection</em></span> shared 
memory segment.
+       </p></div></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="plugin"></a>The 
Plugin</h3></div></div></div><p>
+       The plugin is designed to work within Mozilla or Firefox,
+       although there is Konqueror support as well. The plugin uses
+       the Mozilla NPAPI plugin API to be cross platform, and is
+       portable, as well as being well integrated into Mozilla based
+       browsers.
+      </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="pluginstatus"></a>Current 
Status</h4></div></div></div><p>
+         As of March 30, 2006, the plugin works! This works in a
+         fashion similar to MozPlugger in that the standalone player
+         is used instead of using a thread. This gets around the
+         issue of having to maintain a separate player to support the
+         plugin. It also gets around the other issues that Gnash
+         itself is not thread safe at this time.
+       </p><p>
+         As of Jan, 2007, streaming video, ala "YouTube"
+         works, along with other video sharing sites.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a name="gui"></a>GUI 
Support</h4></div></div></div><p>
+         Any plugin that wants to display in a browser window needs
+         to be tied into the windowing system of the platform being
+         used. On GNU/Linux systems, Firefox is a GTK2+ application.
+         There is also KDE support through the use of the Klash
+         plugin.
+       </p><p>
+         Gnash can use either several different GUI toolkits to create the 
window,
+         and to handle events for the standalone player.
+       </p><p>
+         The SDL version is more limited, but runs on all
+         platforms, including win32. It has no support for event
+         handling, which means mouse clicks, keyboard presses, and
+         window resizing doesn't work. I personally find the default
+         event handler slow and unresponsive. Gnash has support to
+         use fast events, (currently not enabled) which is an SDL
+         hack using a background thread to pump events into the SDL
+         event queue at a much higher rate.
+       </p><p>
+         There are a variety of development libraries that build a GUI
+         widget system on top of SDL and OpenGL. The use of these to
+         add menus and dialog boxes to the SDL version is being
+         considered. 
+       </p><p>
+         The GTK support is currently the most functional, and the
+         best integrated into Firefox. The performance of this
+         version is better than the SDL version because of the more
+         efficient event handling within GTK. For the best end user
+         experience, use the GTK enabled version.
+       </p><p>
+         GTK also allows Gnash to have menus and dialog
+         boxes. Currently this is only being utilized in a limited
+         fashion for now. There is a right mouse button menu that
+         allows the user to control the movie being player the same
+         way the existing keyboard commands do.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="mozplugger"></a>Mozplugger</h4></div></div></div><p>
+         <a class="ulink" href="http://mozplugger.mozdev.org/"; 
target="_top">Mozplugger</a> is a
+         <span class="emphasis"><em>Mozilla/Firefox</em></span> plugin that 
uses external
+         programs to play video, audio, and other multimedia content
+         in the browser. With some support added to the external
+         application, it's possible to force the external program to
+         use the internal window in the browser where this plugin is
+         supposed to display. This enables one to then run the
+         standalone player and display its output in the browser.
+       </p><p>
+         While this is not an optimal solution, it does enable one to
+         use Gnash as the flash player when browsing. The main issue
+         appears to be that the Flash movie being played doesn't get
+         any mouse or keyboard input. That may be a mozplugger
+         configuration issue, however.
+       </p><p>
+         Use of MozPlugger is obsolete now that the Gnash plugin
+         works. Still, this may be useful still on some platforms.
+       </p><p>
+         Add this to your <span 
class="emphasis"><em>$(HOME)/.mozilla/mozpluggerrc</em></span>
+         file to enable this:
+
+         </p><pre class="programlisting">
+           application/x-shockwave-flash:swf:Shockwave Gnash
+        nokill embed noisy ignore_errors hidden fill swallow(Gnash) loop: 
gnash -v "$file" -x $window
+        : gnash -v "$file" -x $window
+         </pre><p>
+       </p><p>
+         Once this is added, you must delete the
+         <span 
class="emphasis"><em>$(HOME)/.mozilla/firefox/pluginreg.dat</em></span> file to
+         force Firefox to register the plugins again. This is an
+         ASCII text file, so if the patch has been added correctly,
+         you'll see an entry for <span class="emphasis"><em>swf</em></span> 
files after it is
+         recreated. You will need to restart Firefox to recreate this
+         file.
+       </p><p>
+         This file is not recreated immediately when restarting
+         Firefox, but waits till the first time a plugin is used. You
+         can force creation of this file by typing
+         <span class="emphasis"><em>about:plugins</em></span> into the URL 
entry of the browser
+         window. The output will also contain information about the
+         mozplugger. You should see an entry for Gnash now.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="Klash"></a>Klash</h4></div></div></div><p>
+         Klash is MozPlugger type support for KDE's Konqueror web
+         browser. Klash makes Gnash a <span 
class="emphasis"><em>kpart</em></span>, so it's
+         integrated into KDE better than when using MozPlugger. Klash
+         uses the standalone player, utilizing Gnash's "-x" window
+         plugin command line option.
+       </p><p>
+         By default, Klash is not built. To enable building Klash,
+         use the <span class="emphasis"><em>--enable-klash</em></span> option 
when
+         configuring. Other than installing, there is nothing else
+         that needs to be done to install Klash.
+       </p></div></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="logging"></a>The Debug 
Logging System</h3></div></div></div><p>
+    Gnash supports a debug logging system which supports both C and C++
+    natively. This means you can use both <span 
class="emphasis"><em>printf()</em></span> style
+    debug messages and C++ <span class="emphasis"><em>iostreams</em></span> 
style, where you can
+    print C++ objects directly as you would when using
+    <span class="emphasis"><em>cout</em></span>.
+  </p><p>
+    In the beginning, Gnash only supported the C API for debug
+    logging, so it is the most heavily used in Gnash. This API was used in
+    the <span class="emphasis"><em>log_msg()</em></span> and <span 
class="emphasis"><em>log_error()</em></span> functions,
+    and used a callback to set them up.
+  </p><p>
+    If a filename is not specified at object construction time, a
+    default name of <span class="emphasis"><em>gnash-dbg.log</em></span> is 
used. If Gnash is
+    started from the command line, the debug log will be created in
+    the current directory. When executing Gnash from a launcher under
+    <span class="emphasis"><em>GNOME</em></span> or <span 
class="emphasis"><em>KDE</em></span> the debug file goes in your
+    home directory, since that's considered the current directory.
+  </p><p>
+    There is common functionality between using the C or C++
+    API. Optional output is based on flags that can be set or
+    unset. Multiple levels of verbosity are supported, so you can get
+    more output by supplying multiple <span 
class="emphasis"><em>-v</em></span> options on the
+    command line. You can also disable the creation of the debug log.
+  </p><p>
+    Currently the use of the C++ API for logging is discouraged, do to
+    performance issues.and the generic log_msg() has been replaced by
+    more spcific function calls to allow more control of what gets
+    displayed and logged.
+  </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="capi"></a>Logging System C API</h4></div></div></div><p>
+      These functions are clones of the originals as they were used
+      for Gnash. These function the same as always except output can
+      be logged to disk now as well. These currently print no
+      timestamp with the output, which is the older functionality. As
+      these functions are implemented on top of the C++ API now, they
+      can be used without corrupting the output buffers.
+    </p><div class="variablelist"><dl><dt><span class="term">log_error(const 
char* fmt, ...)</span></dt><dd><p>
+           Display an error message if verbose output is enabled. By
+           default the error messages are always written to the disk
+           file, but optionally displayed in the terminal.
+         </p></dd><dt><span class="term">void log_unimpl</span></dt><dd><p>
+           Displays a warning to the user about missing Gnash features.
+           We expect all calls to this function to disappear over time, as we
+           implement those features of Flash.
+         </p></dd><dt><span class="term">void log_trace</span></dt><dd><p>
+           Used only for explicit user traces
+         </p></dd><dt><span class="term">void log_debug</span></dt><dd><p>
+           Logs debug information.
+         </p></dd><dt><span class="term">void log_action</span></dt><dd><p>
+           Log action execution information. Wrap all calls to this
+           function (and other related statements) into an
+           IF_VERBOSE_ACTION macro, so to allow completely removing
+           all the overhead at compile time and reduce it at
+           runtime.
+         </p></dd><dt><span class="term">void log_parse</span></dt><dd><p>
+           Log SWF parsing  Wrap all calls to this function (and
+           other related statements) into an IF_VERBOSE_PARSE macro,
+           so to allow completely removing all the overhead at
+           compile time and reduce it at runtime.
+         </p></dd><dt><span class="term">void log_security</span></dt><dd><p>
+           Display a message with security related information.
+         </p></dd><dt><span class="term">void log_swferror</span></dt><dd><p>
+           This indicates an error in how the binary SWF file was
+           constructed, i.e.probably a bug in the tools used to build
+           the SWF file. Wrap all calls to this function (and other
+           related statements) into an IF_VERBOSE_MALFORMED_SWF
+           macro, so to allow completely removing all the overhead at
+           compile time and reduce it at runtime.
+         </p></dd><dt><span class="term">log_warning(const char* fmt, 
...)</span></dt><dd><p>
+           Display a warning message if verbose output is enabled. By
+           default the error messages are always written to the disk
+           file, but optionally displayed in the terminal.
+         </p></dd></dl></div></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a name="cppapi"></a>Logging 
System C++ API</h4></div></div></div><p>
+      This is the new C++ streams based API that can be used to print
+      C++ objects natively. All output lines are timestamped.       
+    </p><p>
+      There are two macros used for program tracing. these can be used
+      in both C or C++ code with one little difference. Since C
+      doesn't have destructors, you must call
+      <span class="emphasis"><em>GNASH_REPORT_RETURN</em></span> at the end of 
a function to
+      display the function returning message.
+    </p><div class="variablelist"><dl><dt><span 
class="term">GNASH_REPORT_FUNCTION;</span></dt><dd><p>
+           When this is included in a C++ method, a message is
+           printed when entering and exiting this method by hooking
+           into the constructor and destructor. These are always
+           written to the disk file, but optionally written to the
+           screen only at the highest levels of verbosity.
+         </p></dd><dt><span 
class="term">GNASH_REPORT_RETURN;</span></dt><dd><p>
+           This is used by C functions to print the returning from
+           function debug message. For C++, this macro is executed
+           automatically by the destructor.
+         </p></dd></dl></div><p>
+      This is the main API for the logging system. By default
+      everything is setup to write to the default
+      <span class="emphasis"><em>gnash-dbg.log</em></span> file whenever a 
verbose option is
+      supplied. Optionally it is possible to open a log file with a
+      specified name, allowing multiple output files.
+    </p><div class="variablelist"><dl><dt><span 
class="term">closeLog(void)</span></dt><dd><p>
+           Close a debug log. The disk file remains.
+         </p></dd><dt><span class="term">removeLog(void)</span></dt><dd><p>
+           Delete the debug log file from disk.
+         </p></dd><dt><span class="term">setVerbosity(void)</span></dt><dd><p>
+           Increment the verbosity level.
+         </p></dd><dt><span class="term">setVerbosity(int)</span></dt><dd><p>
+           Set the verbosity level.
+         </p></dd><dt><span class="term">setStamp(bool flag)</span></dt><dd><p>
+           If <span class="emphasis"><em>flag</em></span> is <span 
class="emphasis"><em>true</em></span>, then print a
+           timestamp prefixed to every output line. If
+           <span class="emphasis"><em>flag</em></span> is <span 
class="emphasis"><em>false</em></span>, then don't print
+           a timestamp.
+         </p></dd><dt><span class="term">setWriteDisk(bool 
flag)</span></dt><dd><p>
+           If <span class="emphasis"><em>flag</em></span> is <span 
class="emphasis"><em>true</em></span>, then create the
+           disk file. If <span class="emphasis"><em>flag</em></span> is <span 
class="emphasis"><em>false</em></span>,
+           then don't create the disk file.
+         </p></dd></dl></div></div></div></div><div class="sect1" 
lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: 
both"><a name="soundhandlers"></a>Sound handling in 
Gnash</h2></div></div></div><p>
+      When a SWF-file contains audio Gnash uses its sound handlers to play it.
+      At the moment there are two sound handlers, but it is likely that more 
+      will be made.
+    </p><p>
+      There are two different settings related to sound support:
+      <span class="emphasis"><em>pluginsound</em></span> and <span 
class="emphasis"><em>sound</em></span>. 
+      This was done in order to allow the plugin to be independently 
+      configured, for instance to block sound from advertisements.
+    </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="soundtypes"></a>Sound types</h3></div></div></div><p>
+        Sounds can be divided into two groups: event-sounds and soundstreams.
+       Event-sounds are contained in a single SWF frame, but the playtime can
+       span multiple frames. Soundstreams can be (and normally are) divided
+       between the SWF frames the soundstreams spans. This means that if a
+       gotoframe-action jumps to a frame which contains data for a soundstream,
+       playback of the stream can be picked up from there. 
+      </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="soundparsing"></a>Sound 
parsing</h3></div></div></div><p>
+        When Gnash parses a SWF-file, it creates a sound handler if possible
+       and hands over the sounds to it. Since the event-sounds are contained 
+       in one frame, the entire event-sound is retrieved at once, while a 
+       soundstream maybe not be completely retrieved before the entire 
+       SWF-file has been parsed. But since the entire soundstream doesn't need
+       to be present when playback starts, it is not necessary to wait. 
+      </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="soundplayback"></a>Sound 
playback</h3></div></div></div><p>
+       When a sound is about to be played Gnash calls the sound handler, which
+       then starts to play the sound and return. All the playing is done by
+       threads (in both SDL and Gstreamer), so once 
+       started the audio and graphics are not sync'ed with each other, which
+       means that we have to trust both the graphic backend and the audio
+       backend to play at correct speed. 
+      </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="sdlsound"></a>The SDL 
sound backend</h3></div></div></div><p>
+       The current SDL sound backend has replaced the original sound 
+       handler, based on SDL_mixer, which by design had some limitations, 
+       making it difficult to implement needed features such as support 
+       for soundstreams. 
+       The SDL sound backend supports both event-sounds and soundstreams,
+       using Gnash's internal ADPCM, and optionally MP3 support, using
+       either FFMPEG or LIBMAD.
+       When it receives sound data it is stored without being decoded, unless
+       it is ADPCM, which is decoded in the parser. When playing, backend
+       relies on a function callback for retrieving output sound, which is 
+       decoded and re-sampled if needed, and all sound output is mixed 
together.
+       The current SDL sound backend was made since Gnash needed a working
+       sound backend as soon as possible, and since the gstreamer backend at
+       the time suffered from bugs and/or lack of features in gstreamer. The
+       result was the most complete and best sound handler so far.
+       The advantages of the SDL sound handler is speed, and ease of use,
+       while its only real disadvantage is that it has to be compiled with
+       MP3 support, which some Linux distributions will probably not like...
+      </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="gstreamer"></a>The 
Gstreamer backend</h3></div></div></div><p>
+       The Gstreamer backend, though not complete, supports both soundstreams
+       and event-sounds. When receiving sound data it stores it compressed,
+       unless if it's ADPCM event-sounds, which it decodes by the parser.
+        When the playback starts, the backend sets up a
+       Gstreamer bin containing a decoder (and other things needed) and places
+       it in a Gstreamer pipeline, which plays the audio. All the sound data is
+       not passed at once, but in small chunks, and via callbacks the
+       pipeline gets fed. The advantages of the Gstreamer backend is that it
+        supports both kinds of sound, it avoids all the legal MP3-stuff, and it
+       should be relatively easy to add VORBIS support. The drawbacks are that
+       it has longer "reply delay" when starting the playback of a sound, and
+       it suffers under some bugs in Gstreamer that are yet to be fixed. 
+      </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="audio-future"></a>Future 
audio backends</h3></div></div></div><p>
+       It would probably be desirable to make more backends in the future,
+       either because other and better backend systems are brought to our
+       attention, or perhaps because an internal sound handling is better
+       suited for embedded platform with limited software installed. 
+      </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="gstreamer-details"></a>Detailed description of the Gstreamer 
backend</h3></div></div></div><p>
+       Gstreamer uses pipelines, bins and elements. Pipelines are the
+       main bin, where all other bins or elements are places. Visually the
+       audio pipeline in Gnash looks like this: 
+      </p><pre class="programlisting">
+        ___
+       |Bin|_
+       |___| \
+        ___   \ _____       ____________
+       |Bin|___|Adder|_____|Audio output|
+       |___|   |_____|     |____________|
+        ___   /
+       |Bin|_/
+       |___|
+
+      </pre><p>
+       There is one bin for each sound which is being played. If a sound is
+       played more the once at the same time, multiple bins will be made. The
+       bins contains: 
+      </p><pre class="programlisting">
+
+       
|source|---|capsfilter|---|decoder|---|aconverter|---|aresampler|---|volume|
+
+      </pre><p>
+       In the source element we place parts of the undecoded sound data, and
+       when playing the pipeline will pull the data from the element. Via
+       callbacks it is refilled if needed. In the capsfilter the data is
+       labeled with the format of the data. The decoder (surprise!) decodes
+       the data. The audioconverter converts the now raw sound data into a
+       format accepted by the adder, all input to the adder must in the same
+       format. The audio re-sampler re-samples the raw sound data into a sample
+       accepted by the adder, all input to the adder must in the same
+       sample rate. The volume element makes it possible to control the volume
+       of each sound. 
+      </p><p>
+       When a sound is done being played it emits a End-Of-Stream-signal
+       (EOS), which is caught by an event-handler-callback, which then makes
+       sure that the bin in question is removed from the pipeline. When a
+       sound is told by Gnash to stop playback before it has ended playback,
+       we do something (not yet finally implemented), which makes the bin emit
+       an EOS, and the event-handler-callback will remove the sound from the
+       pipeline. Unfortunately Gstreamer currently has a bug which causes the
+       entire pipeline to stop playing when unlinking an element from the
+       pipeline; so far no fix is known. 
+      </p><p>
+       Gstreamer also contains a bug concerning linking multiple elements to
+       the adder in rapid succession, which causes to adder to "die" and stop
+       the playback. 
+      </p></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="testing"></a>Testing </h2></div></div></div><p>
+       <a class="link" href="#runtests" title="Running the Tests">Instructions 
on running tests</a>
+       can be found in the section on building Gnash.
+     </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="testtools"></a>Testing Tools</h3></div></div></div><p>
+       Currently Gnash uses three other tools to help with
+       testing. Two of these are free compilers for the Flash
+       format. This lets us write simple test cases for Gnash to test
+       specific features, and to see how the features operate.
+      </p><p>
+       The primary compiler used at this time is <a class="ulink" 
href="http://ming.sf.net"; target="_top">Ming</a>. Since release 0.3,
+       <span class="emphasis"><em>Ming</em></span> includes a command-line 
compiler,
+       <span class="emphasis"><em>makeswf</em></span>. This allows test case 
development
+        to be done entirely with free tools.
+      </p><p>
+        The other tools are optional.  
+       <a class="ulink" href="http://www.gnu.org/software/dejagnu"; 
target="_top">DejaGnu</a>
+       is used to run multiple test cases in an automated
+       manner. <span class="emphasis"><em>DejaGnu</em></span> is used by many 
other <a class="ulink" href="http://www.gnu.org"; target="_top">GNU</a> projects 
like 
+       <a class="ulink" href="http://gcc.gnu.org"; target="_top">GCC</a> and 
+       <a class="ulink" href="http://www.samba.org"; target="_top">Samba</a>.
+      </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="testcases"></a>Test 
Cases</h3></div></div></div><p>
+       ActionScript test cases are located under testsuite/actionscript.all/;
+       these are organized in one file for the ActionScript class.
+       Other Ming-generated tests are under testsuite/ming-misc.all/;
+       these are typically used to test specific tag types.
+       Full movies are located in testsuite/movies.all/ and
+       sample movies are found in testsuite/samples/.
+       Other directories in testsuite/ are (or shall be) used for other
+       kind of tests.
+      </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="writeastests"></a>Writing ActionScript Tests</h3></div></div></div><p>
+       Writing ActionScript tests is very simple. The
+       <span class="emphasis"><em>makeswf</em></span> compiler makes use of 
the C preprocessor,
+       thus allowing the inclusion of definitions for macros and external 
+       files. We use these feature to provide common utilities
+       for test units.
+      </p><p>
+       Each test unit sets an <span class="emphasis"><em>rcsid</em></span> 
variable, includes the
+       <span class="emphasis"><em>check.as</em></span> file and performs some 
checks using
+       the provided macros. Here is an example:
+       
+       </p><pre class="programlisting">
+
+         // This variable will be used by check.as
+         // to show testcase info as part of the test runs.
+         rcsid="Name and version of this testcase, usually the RCS id";
+         
+         #include "check.as"
+         
+         // Test object creation
+         check(new Object() instanceOf Object);
+         
+         // Test parseInt
+         check(isNaN(parseInt('none')));
+
+         // Test assignment
+         var a = 1;
+         check_equals(a, 1);
+         
+         // .. your tests here ...
+       </pre><p>
+      </p><p>
+       The check(expr) macro will <span class="emphasis"><em>trace</em></span> 
PASSED or FAILED
+       together with the expression being evaluated and the line number
+       of the check. This is the format expected by DejaGnu.
+      </p><p>
+       The <span class="emphasis"><em>check_equals(obtained, 
expected)</em></span> macro uses equality operator
+       <span class="emphasis"><em>==</em></span> to check for equality. When 
possible, use of the
+       <span class="emphasis"><em>check_equals()</em></span> macro is 
preferred over <span class="emphasis"><em>check()</em></span>
+       because it shows what the actual result was in case of a failure. 
+      </p><p>
+       Additionally, the check.as file provides a transparent way to send
+       results to a TextField rather then using trace. This is very useful
+       when you use a flash player without tracing support.
+      </p><p>
+       Test units are built by running <span class="emphasis"><em>make 
TestName-v#.swf</em></span>.
+       This will use TestName.as as source and the value of # as target 
version.
+       Allowed target version are from 5 to 8 (inclusive).
+      </p><p>
+       Note that if you get a syntax error from the compiler, the line
+       number will refer to the pre-processed file. This file is called
+       <span class="emphasis"><em>TestName.as.pp</em></span> or <span 
class="emphasis"><em>TestName-v#.swf.frame#.pp</em></span>
+       (depending on Ming version) and it's not thrown away by
+       <span class="emphasis"><em>makeswf</em></span> to make debugging easier.
+      </p><p>
+       Sometimes an expression is only supported by a specific SWF
+       version, or it's evaluated differently by different SWF versions.
+       For this purpose the framework provides an OUTPUT_VERSION macro
+       that you can use to switch code based on output version. For example:
+
+       </p><pre class="programlisting">
+
+         #if OUTPUT_VERSION &gt;= 7
+         check(_root.getSWFVersion == OUTPUT_VERSION);
+         #endif
+         
+       </pre><p>
+      </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="writemingtests"></a>Writing Ming-based self-contained SWF 
tests</h3></div></div></div><p>
+       Ming-based test cases are located in testsuite/misc-ming.all
+       and contain a test generator and a test runner.
+       The test generator (usually a C program) is used to produce the SWF 
+        file, while the test runner (a C++ program) will run it using a 
+       MovieTester class.
+       Note that only the test generator needs Ming, not the test
+       runner, so if Ming isn't installed on the user's host,
+       the test cases can still be run as long as SWF has been distributed.
+      </p><p>
+       Producing tests using Ming has the advantage that you can easily see
+       and modify the full source code for the SWF movie, and you can use
+       some <a class="link" href="#ming_testgenerator_facilities" title="Using 
Ming-based test generators facilities">facilities</a>
+       provided by the Gnash testing framework to easily run tests.
+      </p><p>
+       For generic Ming API documentation, see <a class="ulink" 
href="http://www.libming.org/"; target="_top">http://www.libming.org</a>. 
+      </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="ming_testgenerator_facilities"></a>Using Ming-based test 
generators facilities</h4></div></div></div><p>
+       Ming-based test generator facilities, which might be moved into
+       a loadable SWF in the future, can be currently used by your test
+       generator by including the ming_utils.h file and calling the
+       appropriate functions.
+      </p><p>
+       The most useful facility provided for Ming-based SWF test generators
+       is a Dejagnu-like TestState ActionScript class.
+       In order to use this facility you must call 'add_dejagnu_functions()'
+       right after Movie creation.
+       The function takes an SWFMovie object and some parameters specifying
+       depth and location of the "visual" trace textfield; it instantiates
+       a global 'TestState' ActionScript object to keep track of test's state.
+      </p><p>
+        You will <span class="emphasis"><em>not</em></span> need to directly 
invoke the
+       TestState object created by the 'add_dejagnu_functions()' routine,
+       rather you will be using C macros hiding its complexity:
+       
+       </p><pre class="programlisting">
+
+       check(SWFMovie mo, const char* expr)
+
+               Evaluate an ActionScript expression.
+
+       xcheck(SWFMovie mo, const char* expr)
+
+               Evaluate an ActionScript expression.
+               A failure is expected
+               (for cases where the call exposes a known bug).
+
+       check_equals(SWFMovie mo, const char* obtained, const char* expected)
+
+               Evaluate an ActionScript expression against an expected output.
+
+       xcheck_equals(SWFMovie mo, const char* obtained, const char* expected)
+
+               Evaluate an ActionScript expression against an expected output.
+               A failure is expected (for cases where the call exposes a known 
bug).
+
+       print_tests_summary(SWFMovie mo)
+
+                This will print a summary of tests run, and should be
+               called as the last step in your SWF generator.
+       </pre><p>
+       
+      </p><p>
+       Test cases generated using Ming and the provided
+       <a class="link" href="#ming_testgenerator_facilities" title="Using 
Ming-based test generators facilities">facilities</a>
+       will be self-contained, which means they can be used as tests
+       by simply running them with whatever Player you might have.
+       Any 'check' or 'check_equals' result will be both traced and
+       printed in a textfield. You can use 'gprocessor -v' to have
+       Gnash use them as tests.
+      </p><p>
+       See section <a class="link" href="#writing_test_runners" title="Writing 
Test Runners">Writing Test Runners</a>
+       for information about writing SWF test runners.
+      </p></div></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="writing_dejagnu_so_tests"></a>Writing self-contained SWF tests with other 
compilers</h3></div></div></div><p>
+       If you want/need to use a different compiler for your test cases 
(there's
+       plenty of open source tools for generating SWF out there), you can still
+       make use of a loadable SWF utility provided as part of the Gnash 
testsuite
+       to let your test consistent with the rest of the suite.
+      </p><p>
+       The loadable module is called <span 
class="emphasis"><em>Dejagnu.swf</em></span> and is built during
+       <span class="emphasis"><em>make check</em></span> under 
testsuite/misc-ming.all. In order to use it
+       you will need to load it into your SWF. We currently load it with an 
IMPORT
+       tag for our ActionScript based test cases, but you can probably also use
+       loadMovie or whatever works in the target SWF you're generating. Just 
make
+       sure that the module is initialized before using it. You can check this 
by
+       inspecting the <span 
class="emphasis"><em>dejagnu_module_initialized</em></span> variable, which will
+       be set to 'true' when all initialization actions contained in the
+       <span class="emphasis"><em>Dejagnu.swf</em></span> file are executed. 
+      </p><p>
+       Once the module is loaded you will be able to invoke the following 
functions,
+       all registered against the <span class="emphasis"><em>_root</em></span> 
sprite (effects of <span class="emphasis"><em>_lockroot</em></span>
+       untested):
+       </p><pre class="programlisting">
+         
+         check(expression, [message]);
+         
+         Evaluate the expression.
+         Trace result (PASSED: expression / FAILED: expression).
+         If fails, *visually* trace the failure.
+         If second argument is given, it will be used instead of
+         'expression' for printing results.
+         
+         check_equals(obtained, expected)
+         
+         Evaluate an expression against an expected output.
+         Trace result (PASSED: obtained == expected / FAILED: expected X, 
obtained Y)
+         If fails, *visually* trace the failure.
+         
+         xcheck(expression, [message]);
+         
+         Evaluate the expression.
+         Trace result (XPASSED: expression / XFAILED: expression).
+         If fails, *visually* trace the failure.
+         If second argument is given, it will be used instead of
+         'expression' for printing results.
+         
+         xcheck_equals(obtained, expected)
+         
+         Evaluate an expression against an expected output.
+         Trace result (XPASSED: obtained == expected / XFAILED: expected X, 
obtained Y)
+         If fails, *visually* trace the failure.
+         
+         note(string)
+         
+         Print string, both as debugging and *visual* trace.
+         
+         totals()
+         
+         Print a summary of tests run, both as debugging and *visual* traces.
+         
+       </pre><p>
+      </p><p>
+       Visual traces are lines of text pushed to a textarea defined
+       by the <span class="emphasis"><em>Dejagnu.swf</em></span> module. The 
textarea is
+       initially placed at <span class="emphasis"><em>0, 50</em></span> and is
+       <span class="emphasis"><em>600x800</em></span> in size. You can 
resize/move the clip
+       after loading it. Also, you can completely make the clip
+       invisible if that bothers you. The important thing is the
+       <span class="emphasis"><em>debugging</em></span> trace (call to the 
trace
+       function). The latter will be used by the testing framework. 
+      </p><p>
+       See section <a class="link" href="#writing_test_runners" title="Writing 
Test Runners">Writing Test Runners</a>
+       for information about writing a test runners for your self-contained 
tests.
+      </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="writing_test_runners"></a>Writing Test Runners</h3></div></div></div><p>
+       Test runners are executables that run one or more tests,
+       writing results in Dejagnu form to standard output.
+      </p><p>
+       The Dejagnu form uses a standard set of labels when printing test 
+       results.  These are:
+       </p><div class="informaltable"><table border="1" 
width="75%"><colgroup><col><col></colgroup><thead><tr><th valign="top">
+                 <p>Label</p>
+               </th><th valign="top">
+                 <p>Meaning</p>
+               </th></tr></thead><tbody><tr><td align="left" valign="top">
+                 <p>PASSED</p>
+               </td><td align="left" valign="top">
+                 <p>The test succeeded.</p>
+               </td></tr><tr><td align="left" valign="top">
+                 <p>FAILED</p>
+               </td><td align="left" valign="top">
+                 <p>The test failed.</p>
+               </td></tr><tr><td align="left" valign="top">
+                 <p>XPASSED</p>
+               </td><td align="left" valign="top">
+                 <p>The test succeeded, but was expected to fail.</p>
+               </td></tr><tr><td align="left" valign="top">
+                 <p>XFAILED</p>
+               </td><td align="left" valign="top">
+                 <p>The test failed, and was expected to fail.</p>
+               </td></tr><tr><td align="left" valign="top">
+                 <p>UNRESOLVED</p>
+               </td><td align="left" valign="top">
+                 <p>The results of the test could not be automatically 
+                 parsed.</p>
+               </td></tr><tr><td align="left" valign="top">
+                 <p>UNTESTED</p>
+               </td><td align="left" valign="top">
+                 <p>This test case is not complete.</p>
+               </td></tr><tr><td align="left" valign="top">
+                 <p>UNSUPPORTED</p>
+               </td><td align="left" valign="top">
+                 <p>The test case relies on a conditional feature which 
+                 is not present in your environment.</p>
+               </td></tr></tbody></table></div><p>
+      </p><p>
+       The following labels may also appear:
+       </p><div class="informaltable"><table border="1" 
width="75%"><colgroup><col><col></colgroup><thead><tr><th valign="top">
+                 <p>Label</p>
+               </th><th valign="top">
+                 <p>Meaning</p>
+               </th></tr></thead><tbody><tr><td align="left" valign="top">
+                 <p>ERROR</p>
+               </td><td align="left" valign="top">
+                 <p>There was a serious error in running the test. </p>
+               </td></tr><tr><td align="left" valign="top">
+                 <p>WARNING</p>
+               </td><td align="left" valign="top">
+                 <p>There may have been a problem with running the
+                 test.</p>
+               </td></tr><tr><td align="left" valign="top">
+                 <p>NOTE</p>
+               </td><td align="left" valign="top">
+                 <p>There was some additional information given about
+                 the test.</p>
+               </td></tr></tbody></table></div><p>
+      </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="generic_test_runner"></a>Using the generic test runner 
for self-contained SWF tests</h4></div></div></div><p>
+         The simplest test runner is one that simply invokes Gnash
+         in verbose mode against a self-contained SWF test movie.
+         Self-contained SWF test movies are the ones that print
+         the PASSED/FAILED etc. lines using ActionScript (traces).
+         By invoking Gnash in verbose mode this movie will behave
+         as a compliant "Test Runner".
+       </p><p>
+         A generator for simple test runners can be found in
+         <span 
class="emphasis"><em>testsuite/generic-testrunner.sh</em></span>.
+         The script can be invoked by passing it <span 
class="emphasis"><em>$(top_builddir)</em></span>
+         as the first argument and the name of the SWF file (without the path)
+         as the second argument. This will create a specific runner for your
+         test in the current build directory.
+         A simple Makefile.am rule for doing this follows:
+         </p><pre class="programlisting">
+           MyTest-Runner: $(srcdir)/../generic-testrunner.sh MyTest.swf
+           sh $(srcdir)/../generic-testrunner.sh $(top_builddir) MyTest.swf 
&gt; $@
+           chmod +x $@
+         </pre><p>
+       </p><p>
+         By default, the generated test runner will play the movie up to the
+         last frame. If you want the movie to be played more then once (maybe
+         because you're exactly testing loop features) you can use the -r 
switch
+         to the generic-testrunner.sh call. The following will create a runner
+         playing the movie twice:
+         </p><pre class="programlisting">
+           MyTest-Runner: $(srcdir)/../generic-testrunner.sh MyTest.swf
+           sh $(srcdir)/../generic-testrunner.sh -r2 $(top_builddir) 
MyTest.swf &gt; $@
+           chmod +x $@
+         </pre><p>
+       </p><p>
+         In case your test movie stops before the last frame, or you want to 
control the
+         exact number of times to call the frame advancement routine, you can 
use the 
+         -f switch to control that.
+         </p><pre class="programlisting">
+           MyTest-Runner: $(srcdir)/../generic-testrunner.sh MyTest.swf
+           sh $(srcdir)/../generic-testrunner.sh -f10 $(top_builddir) 
MyTest.swf &gt; $@
+           chmod +x $@
+         </pre><p>
+         When both -f and -r are given, the first exit condition reached will 
take effect.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="writing_movie_testers"></a>Writing Movie testers</h4></div></div></div><p>
+         There are some parts of Gnash that can NOT be tested
+         by only using ActionScript tests. Examples include: frame
+         advancements, actual actions execution, gui events and so on.
+       </p><p>
+         In this case you might want to use the MovieTester class to
+         implement a C++ test runner. Be aware that you can <span 
class="emphasis"><em>mix</em></span> tests in
+         the MovieTester-based class with <span 
class="emphasis"><em>self-contained</em></span>
+         tests in the SWF file as long as you activate verbosity for
+         the debug logfile. This is done, for example, for the
+         DefineEditTextVariableNameTest.swf file. The corresponding
+         test runner (DefineEditTextVariableNameTest-Runner) is a C++
+         runner based on MovieTester class. If you run the runner you
+         see two kinds of test results: the ones coming from the ActionScript
+         engine, and the ones coming from the test runner. You can
+         distinguish between the two because the former contains an additional
+         timestamp and the latter does not. Also, you'll see two final
+         summaries for the two test sets. The 'make check' rule, which uses
+         the testsuite/simple.exp output parser as its work-horse, will
+         count test results from both test sets.
+       </p><p>
+         Movie testers are executables which load an SWF, generate events
+         (both user or system) on it, and check its state using
+         a standard interface.
+       </p><p>
+         To help this process a MovieTester class is defined in the
+         testsuite/MovieTester.{h,cpp} files; see Doxygen documentation
+         for more information.
+       </p><p>
+         Note that you do NOT need access to the SWF source code in order
+         to implement a Movie tester for it.  Some knowledge about the 
+         expected behavior suffices.
+       </p></div></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="newclass"></a>Chapter 4. 
Adding New ActionScript Class</h2></div></div></div><div 
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a 
href="#prototype">Prototype</a></span></dt><dt><span class="sect1"><a 
href="#declaration">Declaration</a></span></dt><dt><span class="sect1"><a 
href="#instantiation">Instantiation</a></span></dt><dt><span class="sect1"><a 
href="#methods">Methods</a></span></dt><dt><span class="sect1"><a 
href="#properties">Dynamic Properties</a></span></dt><dt><span class="sect1"><a 
href="#as_value">The <span class="emphasis"><em>as_value</em></span> Object 
Type</a></span></dt><dd><dl><dt><span class="sect2"><a href="#data_types">Data 
Types</a></span></dt><dt><span class="sect2"><a href="#is_methods">Determining 
the Type</a></span></dt><dt><span class="sect2"><a href="#to_methods">Fetching 
the Value</a></span></dt><dt><span class="sect2"><a href="#set_methods">Setting 
the Value and Type</a></span></dt><dt><span class="sect2"><a 
href="#further_as_value_reading">Further 
Reading</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#asobject">Object ActionScript Class</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#objectmethods">The Methods of the  
Class</a></span></dt><dt><span class="sect2"><a href="#objectprops">The 
Properties of the Object Class</a></span></dt><dt><span class="sect2"><a 
href="#objectconf">Object Class 
Conformance</a></span></dt></dl></dd></dl></div><p>
+    In this document, the term 'ActionScript class' refers to the
+    C++ class which is instantiated by Gnash when some ActionScript
+    code instantiates a corresponding class.  The C++ class
+    stores instance data and implements the methods which are 
+    called on the object in the ActionScript code.
+  </p><p>
+    Adding a new ActionScript class is relatively simple, but the
+    process is complicated by the fact that the interface has evolved
+    over time and the current code base represents several different
+    formats.  This document describes the current interface.  The
+    Boolean class should be considered the authoritative example of
+    a modern ActionScript class.
+  </p><p>
+    ActionScript classes contain a header file and a C++
+    implementation.  The name is usually the name of the
+    class as it is called in the ActionScript specifications;
+    for instance <span class="emphasis"><em>Boolean.cpp</em></span> for the 
Boolean class.
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a 
name="prototype"></a>Prototype</h2></div></div></div><p>
+      In ActionScript, a prototype is a base object which contains
+      all the methods that an instantiated object will contain.
+      In short, it contains every part of the class except for
+      the portions dealing with the storage of instance data.
+    </p><p>
+      In Gnash, the prototype of an ActionScript object is 
+      implemented as an <span class="emphasis"><em>as_object</em></span>.
+      At startup, the methods and properties of the ActionScript class
+      are attached to the <span class="emphasis"><em>as_object</em></span>.  
The
+      following example demonstrates how methods can be attached:
+      </p><pre class="programlisting">
+       static void
+       attachBooleanInterface(as_object&amp; o) {
+         o.init_member("toString", new builtin_function(boolean_tostring));
+         o.init_member("valueOf", new builtin_function(boolean_valueof));
+       }
+      </pre><p>
+    </p><p>
+      Static properties can also be added to the ActionScript prototype
+      (<a class="link" href="#properties" title="Dynamic Properties">dynamic 
properties</a> 
+      are addressed later).  They are attached in a similar way:
+      </p><pre class="programlisting">
+       o.init_member("myProperty", as_value("HelloWorld"));
+      </pre><p>
+    </p><p>
+      Properties which have been added in this manner can be
+      directly accessed in ActionScript code without a function
+      call, as this piece of ActionScript code compiled by Ming's
+      <span class="emphasis"><em>makeswf</em></span> compiler demonstrates:
+      </p><pre class="programlisting">
+       // Get the value of the myProperty property
+       if (node.myProperty == "HelloWorld") {
+         trace("MATCHED");
+       }
+      </pre><p>
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="declaration"></a>Declaration</h2></div></div></div><p>
+      A new class should derive from <span 
class="emphasis"><em>as_object</em></span>,
+      which is the base class of every ActionScript object in Gnash.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="instantiation"></a>Instantiation</h2></div></div></div><p>
+      When a new object is needed, instance data is added to
+      the methods and properties inherited from the prototype.
+    </p><p>
+      The init method should be called in the constructor in
+      <span class="emphasis"><em>Global.cpp</em></span>, where all other 
ActionScript
+      classes are similarly referenced. This method constructs a
+      prototype, which is implemented as an
+      <span class="emphasis"><em>as_object</em></span>.  In addition, the 
method 
+      registers the constructor to be used for future object creation,
+      and attaches methods and properties to the prototype.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="methods"></a>Methods</h2></div></div></div><p>
+      Every method you implement and 
+      <a class="link" href="#prototype" title="Prototype">attach</a> will 
receive an
+      <span class="emphasis"><em>fn_call</em></span> data structure as an 
argument when it is called.
+    </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="arguments"></a>Accessing 
Arguments</h4></div></div></div><p>
+       The arguments stored in <span class="emphasis"><em>fn_call</em></span>
+       should be accessed using <span class="emphasis"><em>arg()</em></span>.  
For
+       instance, the first element can be popped with
+       <span class="emphasis"><em>fn.arg(0)</em></span>.
+      </p><p>
+       The element popped off the stack is an 
+       <a class="link" href="#as_value" title="The as_value Object Type"><span 
class="emphasis"><em>as_value</em></span>
+       object</a>.
+      </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a name="return"></a>Returning a 
Value to ActionScript</h4></div></div></div><p>
+       The return value should be an
+       <a class="link" href="#as_value" title="The as_value Object Type"><span 
class="emphasis"><em>as_value</em></span> 
+       object</a>.  For example:
+       </p><pre class="programlisting">
+         return as_value('Goodbye, cruel world.');
+       </pre><p>
+      </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="additional_fn_call"></a>Additional <span 
class="emphasis"><em>fn_call</em></span> Members</h4></div></div></div><p>
+       There are two other useful members of the <span 
class="emphasis"><em>fn_call</em></span>
+       structure, namely <span class="emphasis"><em>this_ptr</em></span> and
+       <span class="emphasis"><em>nargs</em></span>.  The former points to the
+       class which is invoking this method, while the latter
+       is a count of the number of 
+       <a class="link" href="#arguments" title="Accessing Arguments">arguments 
in the stack</a>.
+      </p><p>
+       You may also see instances of the <span 
class="emphasis"><em>env</em></span>
+       pointer being used.   This is being deprecated.  Instances
+       which could be replaced with
+       <a class="link" href="#arguments" title="Accessing Arguments"><span 
class="emphasis"><em>arg()</em></span></a>
+       are already deprecated; other uses will be deprecated
+       in the near future.
+      </p><p>
+       Beyond the <span class="emphasis"><em><a class="link" href="#arguments" 
title="Accessing Arguments">arg()</a></em></span> method, there
+       is one method of note.  <span 
class="emphasis"><em>dump_args()</em></span>
+       can be used in debugging to output the entire argument
+       stack.
+      </p></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="properties"></a>Dynamic Properties</h2></div></div></div><p>
+      This section describes accessors to dynamic properties.
+      Read-only properties are described
+      in the <a class="link" href="#prototype" title="Prototype">prototype</a> 
section.
+    </p><p>
+      Accessors should be written as a single get/set method.
+      Previously this was done by overriding
+      <span class="emphasis"><em>get_member()</em></span> and 
+      <span class="emphasis"><em>set_member()</em></span>, but this practice
+      is deprecated.  
+    </p><p> 
+      The accessor is written so that it sets the property
+      if it is called with an argument, and puts the property in
+      the <a class="link" href="#methods" title="Methods"><span 
class="emphasis"><em>fn_call</em></span></a>
+      <a class="link" href="#return" title="Returning a Value to 
ActionScript">result pointer</a>.  For instance:
+      </p><pre class="programlisting">
+       void
+       MyClass::myProperty_getset(const fn_call&amp; fn) {     
+         boost::intrusive_ptr&lt;MyClass&gt; ptr = 
ensureType&lt;MyClass&gt;(fn.this_ptr);
+       
+         // setter
+         if ( fn.nargs &gt; 0 ) {
+           bool h = fn.arg(0).to_bool();
+           ptr-&gt;MyMethod(h);
+           return;
+          }
+       
+         // getter
+         bool h = ptr-&gt;MyMethod();
+         fn.result-&gt;set_bool(h);
+       }
+      </pre><p>
+    </p><p> 
+      It has not yet been decided whether properties should be set
+      in the <a class="link" href="#prototype" title="Prototype">exported 
interface</a> 
+      or attached to instances of the class.  A property is attached
+      in the following manner:
+      </p><pre class="programlisting">
+       boost::intrusive_ptr&lt;builtin_function&gt; gettersetter;
+       gettersetter = new builtin_function(&amp;MyClass::myProperty_getset, 
NULL);
+       o.init_property("myProperty", *gettersetter, *gettersetter);
+      </pre><p>
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="as_value"></a>The <span class="emphasis"><em>as_value</em></span> Object 
Type</h2></div></div></div><p>
+    The <span class="emphasis"><em>as_value</em></span> class is used 
throughout
+    the interpreter to create generic objects to hold data.
+  </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="data_types"></a>Data Types</h3></div></div></div><p>
+      The following data types are supported:
+      <span class="emphasis"><em>NULLTYPE</em></span>,
+      <span class="emphasis"><em>BOOLEAN</em></span>, <span 
class="emphasis"><em>STRING</em></span>,
+      <span class="emphasis"><em>NUMBER</em></span>, <span 
class="emphasis"><em>OBJECT</em></span>,
+      <span class="emphasis"><em>AS_FUNCTION</em></span>, and 
+      <span class="emphasis"><em>MOVIECLIP</em></span> (sprite).  
+      The type <span class="emphasis"><em>C_FUNCTION</em></span> is being 
deprecated.
+    </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="is_methods"></a>Determining the Type</h3></div></div></div><p>
+      Several methods allow you to determine if a value stored in
+      <span class="emphasis"><em>as_value</em></span> is of a specific type.  
These
+      follow the form of <span class="emphasis"><em>is_TYPE</em></span>, for 
example
+      <span class="emphasis"><em>is_as_function()</em></span> and 
+      <span class="emphasis"><em>is_number()</em></span>.  In general, the 
type names
+      match the <a class="link" href="#data_types" title="Data Types">data 
types</a> listed
+      above, with the exception of the type <span 
class="emphasis"><em>MOVIECLIP</em></span>
+      which has a method <span class="emphasis"><em>is_sprite()</em></span>.
+    </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="to_methods"></a>Fetching 
the Value</h3></div></div></div><p>
+      Another set of methods will return a representation of
+      the value as a particular type.  They follow the
+      <span class="emphasis"><em>to_TYPE</em></span> naming convention.  
Examples
+      are <span class="emphasis"><em>to_number()</em></span> and
+      <span class="emphasis"><em>to_bool()</em></span>.  The type names are as 
+      <a class="link" href="#data_types" title="Data Types">listed</a> 
earlier, except for
+      <span class="emphasis"><em>MOVIECLIP</em></span>, which uses 
+      <span class="emphasis"><em>to_sprite()</em></span>.
+    </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="set_methods"></a>Setting 
the Value and Type</h3></div></div></div><p>
+      Finally, there is the <span class="emphasis"><em>set_TYPE</em></span> 
series
+      of methods.  They change the type to the type specified in
+      the method name, and set the value to the one given as an
+      argument.  It is also possible to accomplish the same thing
+      with the <span class="emphasis"><em>=</em></span> operator.  Again, type 
names
+      match those <a class="link" href="#data_types" title="Data Types">named 
earlier</a>,
+      except in the case of <span class="emphasis"><em>MOVIECLASS</em></span>. 
 Its
+      method is called <span class="emphasis"><em>set_sprite()</em></span>.
+    </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="further_as_value_reading"></a>Further Reading</h3></div></div></div><p>
+      Please refer to <span class="emphasis"><em>as_value.h</em></span> or the
+      Doxygen documentation (see 'Processing The Documentation'
+      in the Gnash manual for instructions on generating
+      documents with Doxygen) for more information
+      about which methods are available for the
+      <span class="emphasis"><em>as_value</em></span> object.
+    </p></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="asobject"></a>Object ActionScript Class</h2></div></div></div><p>
+    This class implements an Object object.
+  </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="objectmethods"></a>The Methods of the  
Class</h3></div></div></div><p>
+      </p><div class="variablelist"><dl><dt><span 
class="term">addProperty()</span></dt><dd><p>
+           </p></dd><dt><span class="term">registerClass()</span></dt><dd><p>
+           </p></dd><dt><span class="term">toString()</span></dt><dd><p>
+           </p></dd><dt><span class="term">unwatch()</span></dt><dd><p>
+           </p></dd><dt><span class="term">valueOf()</span></dt><dd><p>
+           </p></dd><dt><span class="term">watch()</span></dt><dd><p>
+           </p></dd><dt><span class="term">Sharedclear()</span></dt><dd><p>
+           </p></dd><dt><span class="term">Sharedflush()</span></dt><dd><p>
+           </p></dd><dt><span class="term">SharedgetLocal()</span></dt><dd><p>
+           </p></dd><dt><span class="term">SharedgetSize()</span></dt><dd><p>
+           </p></dd></dl></div><p>
+    </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="objectprops"></a>The 
Properties of the Object Class</h3></div></div></div><p>
+      </p><div class="variablelist"><dl><dt><span 
class="term">constructor</span></dt><dd><p>
+           </p></dd><dt><span class="term">__proto__</span></dt><dd><p>
+           </p></dd><dt><span class="term">__resolve</span></dt><dd><p>
+           </p></dd><dt><span class="term">Shareddata</span></dt><dd><p>
+           </p></dd><dt><span class="term">SharedonStatus</span></dt><dd><p>
+           </p></dd></dl></div><p>
+    </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="objectconf"></a>Object 
Class Conformance</h3></div></div></div><p>
+      </p><div class="informaltable"><table border="1" 
width="75%"><colgroup><col><col></colgroup><thead><tr><th valign="top">
+               <p>Class Name</p>
+             </th><th valign="top">
+               <p>Conformance</p>
+             </th></tr></thead><tbody><tr><td align="left" valign="top">
+               <p>addProperty()</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This method has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>registerClass()</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This method has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>toString()</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This method has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>unwatch()</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This method has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>valueOf()</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This method has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>watch()</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This method has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>Sharedclear()</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This method has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>Sharedflush()</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This method has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>SharedgetLocal()</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This method has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>SharedgetSize()</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This method has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>constructor</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This property has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>__proto__</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This property has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>__resolve</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This property has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>Shareddata</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This property has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>SharedonStatus</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This property has an unknown status.
+               </p>
+             </td></tr></tbody></table></div><p>
+    </p></div></div></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="bugreport"></a>Chapter 
5. Reporting Bugs</h2></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a href="#bugstep_package">Get a 
Fresh Binary Package</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_search">Determine if the bug was previously 
reported</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_guidelines">Review the bug writing 
guidelines</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_file">Filing a bug report</a></span></dt></dl></div><p>
+    The Gnash project relies on the community of Gnash users to test
+    the player, feedback is critical to any successful project.  Not
+    only does it let us know that people use Gnash, but it helps us  
+    understand the community's needs. Gnash uses a bug tracker on
+    <a class="ulink" href="http://savannah.gnu.org"; 
target="_top">http://savannah.gnu.org</a> to manage these reports.
+  </p><p>
+    When filing a report, please follow the guidelines below. The better
+    your bug report is, the easier it will be for the developers to
+    address the issue. Bug reports without enough information will
+    initially be asked to provide this information anyway. Adding
+    critical details, like the Operating System you are on, its
+    version, and any relevant error messages from Gnash that you get.
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="bugstep_package"></a>Get a Fresh 
Binary Package</h2></div></div></div><p>
+      For starters, it's a good idea to obtain a copy of the latest
+      snapshot. Although Gnash is primarily released as source, the
+      Gnash build infrastructure allows the automated building of
+      binary packages. Often the version of Gnash as packaged by a
+      GNU/Linux or BSD distribution is based on the last official
+      release, which could be months out of date. It is helpful if
+      this is the case to try a newer packaged build of Gnash. 
+    </p><p>
+      You can get a fresh binary package of Gnash, as well as recent 
+      source packages from
+      <a class="ulink" href="http://www.getgnash.org/packages/"; target="_top">
+       http://www.getgnash.org/packages
+      </a>. 
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="bugstep_search"></a>Determine if the bug was previously 
reported</h2></div></div></div><p>
+      Search the <a class="ulink" 
href="https://savannah.gnu.org/bugs/?group=gnash"; target="_top">Gnash
+      bug tracker</a> to see if the bug has already been identified.
+    </p><p>
+      If the issue has already been reported, you should not file
+      a bug report.  However, you may add some additional information
+      to the ticket if you feel that it will be beneficial to the
+      developers.  For instance, if someone reported a memory issue
+      on Ubuntu GNU/Linux, and you noticed the same problem on OpenBSD,
+      your stacktrace would be useful.  Conversely, adding a "me too"
+      note to a feature request is not helpful.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="bugstep_guidelines"></a>Review the bug writing 
guidelines</h2></div></div></div><p>
+      A good bug report should be precise, explicit, and discrete.
+      This means that there should be just one bug per ticket, and
+      that a ticket should contain the following information:
+    </p><div class="itemizedlist"><ul type="opencircle"><li 
style="list-style-type: circle"><p>
+         An overview of the problem;
+       </p></li><li style="list-style-type: circle"><p>
+         Instructions on how to replicate the bug;
+       </p></li><li style="list-style-type: circle"><p>
+         A description of what happened when you performed the steps
+         to replicate the bug, and what you expected to happen;
+       </p></li><li style="list-style-type: circle"><p>
+         Your system information: operating system name and version, as
+         well as the versions of major development dependencies;
+       </p></li><li style="list-style-type: circle"><p>
+         The release number or checkout timestamp for the version of Gnash
+         where you observe the problem;
+       </p></li><li style="list-style-type: circle"><p>
+         The file <code class="filename">config.log</code>, which should be
+         attached as a file;
+       </p></li><li style="list-style-type: circle"><p>
+         A descriptive title.
+       </p></li></ul></div><p>
+      Include any additional information that you feel might be useful
+      to the developers.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="bugstep_file"></a>Filing a bug report</h2></div></div></div><p>
+      After following the steps described above, you can file a bug report at 
+      <a class="ulink" href="https://savannah.gnu.org/bugs/?group=gnash"; 
target="_top">https://savannah.gnu.org/bugs/?group=gnash</a>.
+    </p></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="extensions"></a>Chapter 
6. Gnash Extensions</h2></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a href="#newext">Creating A New 
Extension</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="#craftext">Crafting an Extension</a></span></dt></dl></dd><dt><span 
class="sect1"><a href="#debuext">Debugging An 
Extension</a></span></dt><dt><span class="sect1"><a href="#inclext">Included 
Extensions</a></span></dt></dl></div><p>
+    Gnash supports extending the Flash specification by creating
+    custom ActionScript classes that are compiled code, as opposed to
+    the existing method of defining custom classes as
+    ActionScript. Executing compiled code has many performance
+    benefits over having to interpret the byte stream of the
+    ActionScript opcodes.
+  </p><p>
+    I can already hear people complaining now about the concept of
+    extending Flash, so this in no way affects Gnash's ability to play
+    Flash movies when functioning as a browser plugin.
+    Gnash's goal is still to function in a way that is compatible
+    with the current proprietary Flash player.
+  </p><p>
+    But at the same time, we see Flash as the ideal scripting language
+    for a digital multi-media streaming environment. There are many
+    resources for Flash movie creators for widgets, higher level APIs,
+    all sorts of desirable things. But for those of use committed to
+    using free software tools for Flash, our options are very
+    limited. 
+  </p><p>
+    Rather than launching a multi-year project to duplicate all
+    classes in the commercial Flash IDE, it's much more efficient to
+    use existing development libraries much like Python or Perl
+    do. The extension mechanism in Gnash allows wrappers to be created
+    for any C or C++ development library. Unlike the proprietary Flash
+    IDE, which compiles all the extension libraries into byte codes
+    from ActionScript, the support is moved to the player side. Movies
+    with all of the goodies of the proprietary IDE in them play in
+    Gnash just fine, as it's all just byte codes by then.
+  </p><p>
+    This trick works because until Flash player version 9, all the
+    ActionScript class names and methods are passed as ASCII strings
+    into the Flash movie. So the Gnash Virtual Machine just loads the
+    extension file if that class name is invoked in the movie. All
+    extension files specify the class name and methods it implements
+    in an identical style as adding any new ActionScript class. The
+    advantage is the class itself is compiled code, and runs much
+    faster than the equivalent byte codes which all have to be
+    interpreted..
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="newext"></a>Creating A New 
Extension</h2></div></div></div><p>
+      Each new extension should live in it's own directory. The
+      extensions included in Gnash are all in the
+      <span class="emphasis"><em>gnash/extensions</em></span> directory. 
Creating an extension
+      requires a Makefile.am,
+    </p><p>
+      If you are adding this extension to the Gnash source tree
+      itself, then you need to make two changes to add the new
+      extension.
+    </p><p>
+      The first change is to add the directory to the list in
+      extensions/Makefile.am. This can be done either by adding the
+      new directory to the SUBDIRS setting, or by wrapping it in a
+      conditional test.
+    </p><p>
+      The other change is to add it to the AC_OUTPUT list in
+      <span class="emphasis"><em>configure.ac</em></span> so the new directory 
will be
+      configured along with the rest of Gnash.
+    </p><p>
+      Each extension should have an ActionScript source file included
+      that tests the new class, and this file should be referenced in
+      the new Makefile.am in the <span 
class="emphasis"><em>check_PROGRAMS</em></span>
+      variable so that "make check" works.
+    </p><p>
+      When creating an extension that is a wrapper for an existing
+      development library API, it's often better to make this a thin
+      layer, than to get carried away with creating beautiful
+      abstractions. Higher-level classes that offer a lot of new
+      functionality are fine, but is different than wrapping a library
+      so it can be used from within Gnash.
+    </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="craftext"></a>Crafting an 
Extension</h3></div></div></div><p>
+       All extensions have the same requirements, namely setting up a
+       few defined function callbacks, which the Gnash VM then uses
+       to do the right thing. The initial two function callbacks are
+       for handling the interface of the newly created object so that
+       Gnash can find and use it.
+      </p><p>
+       The first function is commonly called
+       <span class="emphasis"><em>attachInterface</em></span>, and this sets 
the other
+       function callbacks for all the methods this class
+       supports. The method callbacks are attached to the parent
+       class by using <span class="emphasis"><em>init_member()</em></span> to 
set a C
+       function pointer to the string value used in the Flash movie.
+      </p><pre class="programlisting">
+       // Attach DummyClass 'func1' and 'func2' methods to the given object
+       static void
+       attachInterface(as_object&amp; obj) {
+            obj.init_member("func1", &amp;ext_func1);
+            obj.init_member("func2", &amp;ext_func2);
+       }
+      </pre><p>
+       The second function is commonly called
+       <span class="emphasis"><em>getInterface()</em></span>, and this returns 
a
+       pointer to a static prototype of the class.
+        Gnash uses garbage collection for ActionScript objects
+        so you need to register the static with the VM to give it
+        a chance to be marked as reachable.
+      </p><pre class="programlisting">
+       static as_object*
+       getInterface()
+       {
+           static boost::intrusive_ptr&lt;as_object&gt; o;
+           if (o == NULL) {
+               o = new as_object();
+                VM::get().addStatic(o);
+                attachInterface(*o);
+           }
+           return o.get();
+       }
+      </pre><p>
+       This is the callback that gets executed when constructing a
+       new object for the VM. In this example we'll assume the new
+       ActionScript class is called <span 
class="emphasis"><em>DummyExt</em></span>,
+       and has two methods, <span class="emphasis"><em>func1</em></span> and
+       <span class="emphasis"><em>func2</em></span>.
+      </p><pre class="programlisting">
+       static as_value
+       dummyext_ctor(const fn_call&amp; fn)
+       {
+           DummyExt *obj = new DummyExt(); // will setup prototypes
+
+           return as_value(obj); 
+       }
+      </pre><p>
+       The trick for the above simple constructor to work is that
+        class appartenence is setup in the C++ DummyExt constructor
+        itself, which should derive from as_object and construct the
+        base passing it the interface (prototype) of it's class.
+      </p><pre class="programlisting">
+       class DummyExt : public as_object
+        {
+        public:
+           DummyExt()
+                :
+                as_object(getInterface()) // returns the static prototype
+            {}
+
+       };
+      </pre><p>
+       Initialize the extension. This is looked for by the extension
+       handling code in each extension, and is executed when the
+       extension is loaded. This is the main entry point into the
+       extension. This function can be found because the prefix of
+       <span class="emphasis"><em>dummyext</em></span>, which also matches the 
file
+       name of the extension. Gnash uses the name of the extension
+       file itself when looking for the init function.
+      </p><pre class="programlisting">
+        extern "C" {
+           void
+           dummyext_class_init(as_object &amp;obj)
+           {
+               static builtin_function* cl=NULL;
+               if (!cl)
+                {
+                    // Create a builtin function using the given constructor
+                    // to instanciate objects and exporting the given interface
+                   cl = new builtin_function(&amp;dummyext_ctor, 
getInterface());
+                   VM::get().addStatic(cl); // will forbid to collect the class
+               }
+       
+               obj.init_member("DummyExt", cl);
+           }
+        } // end of extern C
+      </pre><p>
+       The callbacks are all C functions. Like all the other code
+       that implements ActionScript, parameters to the function are
+       passed in using the <span class="emphasis"><em>fn_call</em></span> data
+       structure. The return code, if any, is also returned using
+       this data structure. <span class="emphasis"><em>this_ptr</em></span> is 
the
+       object that the method is a member of.
+      </p><pre class="programlisting">
+       // Creates a new button with the label as the text.
+       as_value func1(const fn_call&amp; fn) {
+            // Following line will ensure 'func1' is called for a DummyExt 
instance,
+            // or would throw an exception which should behave as if we 
returned the
+            // undefined value.
+            boost::intrusive_ptr&lt;DummyExt&gt; ptr = 
ensureType&lt;DummyExt&gt;(fn.this_ptr);
+       
+           if (fn.nargs &gt; 0) {
+               std::string label = fn.arg(0).to_string();
+               bool ret = ptr-&gt;dummy_text_label(label);
+               return as_value(ret);
+           }
+       }
+      </pre></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="debuext"></a>Debugging An Extension</h2></div></div></div><p>
+      As extensions are loaded dynamically at runtime, debugging one
+      can be difficult. You can use GDB, but you have the problem of
+      not being able to set a breakpoint in Gnash until
+      <span class="emphasis"><em>after</em></span> the extension has been 
loaded into
+      Gnash's VM. The easy solution is to use the Gnash debugger.
+    </p><p>
+      You can insert these few lines in any file that you wish to
+      manually start the debugger. Once at the console, you can attach
+      GDB to the process. Then you can set breakpoints, etc... and you
+      are at the point of execution where the console was started. To
+      then continue playing the movie, type the <span 
class="emphasis"><em>c</em></span>
+      (for continue) command to the Gnash console.
+    </p><pre class="programlisting">
+      // Get the debugger instance
+      static Debugger&amp; debugger = Debugger::getDefaultInstance();
+
+      // Enable the debugger
+      debugger.enabled(true);
+      // Stop and drop into a console
+      debugger.console();
+    </pre><p>
+      You can also resort to the time honored technique of creating a
+      loop before the point you want to set a breakpoint for. Gnash
+      will stop playing the movie at this point, and then you can
+      externally attach GDB to the running process, or type
+      <span class="emphasis"><em>^C</em></span> to drop into the GDB command 
console.
+    </p><pre class="programlisting">
+      bool stall = true;
+      while (stall) {
+          sleep 1;
+      }
+    </pre><p>
+      Once you have set the breakpoints you want, reset the value of
+      the <span class="emphasis"><em>stall</em></span> variable to break out 
of the
+      loop, and the Flash movie will then continue playing.
+    </p><pre class="programlisting">
+      (gdb) set variable stall = false;
+      continue
+    </pre></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="inclext"></a>Included Extensions</h2></div></div></div><p>
+      Gnash has some extensions included in the distribution. This is
+      mostly because they were written by the Gnash team. Extensions
+      can be external to gnash, Gnash needs no compiled in knowledge
+      to load an extension file.
+    </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="gtkext"></a>Gtk Extension</h4></div></div></div><p>
+    The GTK ActionScript class follows the same API as Gtk2, even down
+    to the same arguments to the same function names. This means
+    you're actually programming GTK,you're just using ActionScript
+    instead of python, perl, or C. This extension makes it possible to
+    write Flash movies that use the Gtk2 widgets for user interface
+    components.
+  </p><div class="variablelist"><dl><dt><span 
class="term">window_new</span></dt><dd><p>
+         Create a new window.
+       </p></dd><dt><span class="term">signal_connect</span></dt><dd><p>
+         Add an event handler to a widget.
+       </p></dd><dt><span 
class="term">container_set_border_width</span></dt><dd><p>
+         Set the width of the window border.
+       </p></dd><dt><span class="term">button_new_with_label</span></dt><dd><p>
+         Create a new button and give it the specified label.
+       </p></dd><dt><span 
class="term">signal_connect_swapped</span></dt><dd><p>
+         Swap signals. Commonly used for <span 
class="emphasis"><em>delete</em></span> event handling.
+       </p></dd><dt><span class="term">container_add</span></dt><dd><p>
+             Add one widget to another as a child.
+           </p></dd><dt><span class="term">widget_show</span></dt><dd><p>
+         Display the widget on the screen.
+       </p></dd><dt><span class="term">main</span></dt><dd><p>
+         Start the main GTK event loop. This function does not return.
+       </p></dd></dl></div></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a name="fileioext"></a>File I/O 
Extension</h4></div></div></div><p>
+    Flash movies are traditionally forbidden from accessing the
+    filesystem, but this may be necessary for some embedded
+    applications. Especially in the case of a user console, currently
+    there is no way to get input into a Flash movie but through a
+    TextField.
+  </p><div class="variablelist"><dl><dt><span 
class="term">fopen</span></dt><dd><p>
+         Open the file.
+       </p></dd><dt><span class="term">fread</span></dt><dd><p>
+         Read a series of bytes from the opened file.
+       </p></dd><dt><span class="term">fgetc</span></dt><dd><p>
+         Read a single byte from the opened file.
+       </p></dd><dt><span class="term">fgets</span></dt><dd><p>
+         Read a single line until a Carriage Return from the opened file.
+       </p></dd><dt><span class="term">gets</span></dt><dd><p>
+         Read a single line from the standard in.
+       </p></dd><dt><span class="term">getchar</span></dt><dd><p>
+         Read a single character from the standard in.
+       </p></dd><dt><span class="term">fwrite</span></dt><dd><p>
+       </p></dd><dt><span class="term">fputc</span></dt><dd><p>
+         Write a single character to the opened file.
+       </p></dd><dt><span class="term">fputs</span></dt><dd><p>
+         Write a single line to the opened file.
+       </p></dd><dt><span class="term">puts</span></dt><dd><p>
+         Write a single line to standard out..
+       </p></dd><dt><span class="term">putchar</span></dt><dd><p>
+         Write a single character to standard out..
+       </p></dd><dt><span class="term">fflush</span></dt><dd><p>
+         Flush the current opened file to disk.
+       </p></dd><dt><span class="term">fseek</span></dt><dd><p>
+         Seek to a location within the opened file.
+       </p></dd><dt><span class="term">ftell</span></dt><dd><p>
+         Report the current position within the opened file.
+       </p></dd><dt><span class="term">fclose</span></dt><dd><p>
+         Close the opened file.
+       </p></dd></dl></div></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a name="mysqlext"></a>MySQL 
Extension</h4></div></div></div><p>
+    The MySQL ActionScript class follows the same API as MySQL, even down
+    to the same arguments to the same function names. This enables a
+    Flash movie to have direct access to a MySQL
+    database. Traditionally Flash movies have had no database
+    support, they either had to use arrays, or use XML to communicate
+    to an application specific external database daemon.
+  </p><div class="variablelist"><dl><dt><span 
class="term">connect</span></dt><dd><p>
+         Connect to a MySQL database.
+       </p></dd><dt><span class="term">qetData</span></dt><dd><p>
+         Get data from the database.
+       </p></dd><dt><span class="term">disconnect</span></dt><dd><p>
+         Disconnect from a MySQL database.
+       </p></dd><dt><span class="term">query</span></dt><dd><p>
+         Execute an SQL query to the database.
+       </p></dd><dt><span class="term">fetch_row</span></dt><dd><p>
+         Fetch a row from the query results.
+       </p></dd><dt><span class="term">num_fields</span></dt><dd><p>
+       </p></dd><dt><span class="term">free_result</span></dt><dd><p>
+         Free the results of a query.
+       </p></dd><dt><span class="term">store_results</span></dt><dd><p>
+         Store the results of a query.
+       </p></dd></dl></div></div></div></div><div class="chapter" 
lang="en"><div class="titlepage"><div><div><h2 class="title"><a 
name="rtmp"></a>Chapter 7. RTMP Protocol</h2></div></div></div><div 
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a 
href="#amf">AMF Format</a></span></dt></dl></div><p>
+    This document is based mostly on my own reverse engineering of the
+    RTMP protocol and AMF format. <span 
class="emphasis"><em>tcpdump</em></span> and
+    <span class="emphasis"><em>ethereal</em></span> are your friend. Some 
additional info that got
+    me started was from the <a class="ulink" 
href="http://www.osflash.org/red5"; target="_top">Red5</a>
+    project. <span class="emphasis"><em>Red5</em></span> is the only other 
open source Flash
+    server. So some details are still vague, but as the implementation
+    appears to work, we'll figure out what they are later.
+  </p><p>
+    The Real Time Messaging Protocol was created by MacroMedia (now
+    Adobe) for delivering Flash objects and video over a network
+    connection. Currently the only servers which support this format
+    are the MacroMedia Media sever, and the Open Source Red5 project.
+  </p><p>
+    This is a simple protocol, optimized for poor bandwidth
+    connections. It can support up to 64 concurrent streams over the
+    same network connection. Part of each AMF packet header contains
+    the index number of the stream. A single RTMP message can contain
+    multiple AMF packets.
+  </p><p>
+    An RTMP connection uses Tcp/ip port 1935. It is also possible to
+    tunnel RTMP over an HTTP connection using port 80. Each AMF packet
+    is 128 bytes long except for streaming audio, which has 64 byte
+    packets.
+  </p><p>
+    The basics of the RTMP protocol are as follows. All communications
+    are initiated by the client.
+    </p><div class="mediaobject" align="center"><img src="images/rtmp.png" 
align="middle"></div><p>
+  </p><p>
+    The client starts the RTMP connection by sending a single byte
+    with a value of 0x3. This byte is followed by a data block of 1536
+    bytes. The format if this data block is unknown, but it appears to
+    not be actually used by the protocol except as a handshake.
+  </p><p>
+    The server receives this packet, stores the 1536 byte data block,
+    and then send a single byte with the value of 0x3, followed by two
+    1536 data blocks. The second data block is the full contents of
+    the original data block as sent by the client.
+  </p><p>
+    The client receives the 1536 byte data block, and if they match,
+    the connection is established. After the handshake process is
+    done, there are three other messages that the client sends to the
+    sever to start the data flowing.
+  </p><p>
+    The first AMF packet sent to the server contains the
+    <span class="emphasis"><em>connect</em></span> packet. This doesn't appear 
to do
+    much but notify the server the client is happy with the
+    handshake, and ready to start reading packets.
+  </p><p>
+    The second packet is the <span 
class="emphasis"><em>NetConnection</em></span> object from
+    the client. This ActionScript class is used by the Flash movie to
+    create the network connection to the server.
+  </p><p>
+    The third packet is the <span class="emphasis"><em>NetStream</em></span> 
object from the
+    client. This is the ActionScript class used to specify the file to
+    be streamed by the server.
+  </p><p>
+    The RTMP packet for our example looks like this:
+   
+    </p><pre class="programlisting">
+      030000190000c91400000000020007connect00?f0000000000000030003app0200#
+      software/gnash/tests/1153948634.flv0008flashVer02000cLNX 6,0,82,0 0006
+      swfUrl02001dfile:///file|%2Ftmp%2Fout.swfc30005tcUrl\002\0004
+      rtmp://localhost/software/gnash/tests/1153948634.flv\000\000\t
+      \002\000\005userx
+    </pre><p>
+    
+    We'll take this apart in a bit, but you can see how all three AMF
+    packets are in the same message. The message is received in
+    several 128 byte blocks, with the last one being less than
+    that. The total size of the RTMP message is in the header, so the
+    reader can tell if the entire message was read or not.
+  </p><p>
+    The RTMP header is first, followed by the connect message as an
+    ASCII string as the message body. The following AMF packet is the
+    <span class="emphasis"><em>NetConnection</em></span> one, which specifies 
that this is coming
+    from a Flash application. This also contains the file path the server
+    can use to find the file to stream. This is then followed by the
+    version number, which I assume is the version of the Flash player,
+    so the server knows what it is talking to.
+  </p><p>
+    The third packet is the one from <span 
class="emphasis"><em>NetStream</em></span>, which
+    specifies the URL used for the movie, followed by the user name
+    for a semblance of security.
+  </p><p>
+    For the next level of detail, we'll explain the format of AMF. AMF
+    is used by the RTMP protocol to transfer data. Each Flash object
+    is encapsulated in an AMF packet, including streaming audio or
+    video.
+  </p><p>
+    The first byte of the RTMP header determines two things about the
+    rest of the message. The first 2 bits of this byte signify the
+    total size of the RTMP header. The RTMP header is of a variable
+    size, so this is important.
+
+    </p><div class="variablelist"><dl><dt><span 
class="term">00</span></dt><dd><p>
+           This specifies the header contains 12 bytes, including
+           this one.
+         </p></dd><dt><span class="term">01</span></dt><dd><p>
+           This specifies the header contains 8 bytes, including this
+           one.
+         </p></dd><dt><span class="term">02</span></dt><dd><p>
+           This specifies the header contains 4 bytes, including this
+           one.
+         </p></dd><dt><span class="term">03</span></dt><dd><p>
+           This specifies the header contains 1 byte, so this is the
+           complete header.
+         </p></dd></dl></div><p>
+  </p><p>
+    The other 6 bits in this byte represent the AMF index. As a single
+    RTMP connection can support multiple data streams, this signifies
+    which stream this packet is for. Once an AMF object is fully
+    received by the client, the AMF index may be reused.
+  </p><p>
+    For messages with headers of at least 4 bytes, the next 3 bytes are
+    used by audio and video data packets, but at this time the meaning
+    of this field is unknown.
+  </p><p>
+    For messages with a 8 byte or larger header, the next 3 bytes
+    determine the size of the RTMP message being transmitted. Messages
+    with a 1 byte or 4 byte header use a standard size, 128 bytes for
+    video, and 64 bytes for audio.
+  </p><p>
+    For messages with an 8 byte or larger header, the next byte is the
+    type of the AMF object.
+    
+    </p><div class="variablelist"><dl><dt><span 
class="term">0x3</span></dt><dd><p>
+           This specifies the content type of the RTMP packet is the
+           number of bytes read. This is used to start the RTMP
+           connection.
+         </p></dd><dt><span class="term">0x4</span></dt><dd><p>
+           This specifies the content type of the RTMP message is a
+           <span class="emphasis"><em>ping</em></span> packet.
+         </p></dd><dt><span class="term">0x5</span></dt><dd><p>
+           This specifies the content type of the RTMP message is
+           server response of some type.
+         </p></dd><dt><span class="term">0x6</span></dt><dd><p>
+           This specifies the content type of the RTMP packet is
+           client request of some type.
+         </p></dd><dt><span class="term">0x8</span></dt><dd><p>
+           This specifies the content type of the RTMP packet is an
+           audio message.
+         </p></dd><dt><span class="term">0x9</span></dt><dd><p>
+           This specifies the content type of the RTMP message is a
+           video packet.
+         </p></dd><dt><span class="term">0x12</span></dt><dd><p>
+           This specifies the content type of the RTMP message is
+           notify. 
+         </p></dd><dt><span class="term">0x13</span></dt><dd><p>
+           This specifies the content type of the RTMP message is
+           shared object.
+         </p></dd><dt><span class="term">0x14</span></dt><dd><p>
+           This specifies the content type of the RTMP message is
+           remote procedure call. This invokes the method of a Flash
+           class remotely.
+         </p></dd></dl></div><p>     
+  
+  </p><p>
+    There are two sets of data types to consider. One set is used by
+    the to specify the content type of the AMF object, the other is an
+    ActionScript data type tag used to denote which type of object is
+    being transferred.
+  </p><p>
+    The values of the initial type byte are:
+    </p><div class="variablelist"><dl><dt><span 
class="term">0x0</span></dt><dd><p>
+           This specifies the data in the AMF packet is a numeric
+           value. All numeric values in Flash are 64 bit,
+           <span class="emphasis"><em>big-endian</em></span>.
+         </p></dd><dt><span class="term">0x1</span></dt><dd><p>
+           This specifies the data in the AMF packet is a boolean
+           value.
+         </p></dd><dt><span class="term">0x2</span></dt><dd><p>
+           This specifies the data in the AMF packet is an
+           <span class="emphasis"><em>ASCII</em></span> string. 
+         </p></dd><dt><span class="term">0x3</span></dt><dd><p>
+           This specifies the data in the AMF packet is a Flash
+           object. The Flash object data type field further along in
+           the message specifies which type of ActionScript object it
+           is.
+         </p></dd><dt><span class="term">0x4</span></dt><dd><p>
+           This specifies the data in the AMF packet is a Flash
+           movie, ie. another Flash movie.
+         </p></dd><dt><span class="term">0x5</span></dt><dd><p>
+           This specifies the data in the AMF packet is a NULL
+           value. NULL is often used as the return code from calling
+           Flash functions.
+         </p></dd><dt><span class="term">0x6</span></dt><dd><p>
+           This specifies the data in the AMF packet is a
+           undefined. This is also used as the return code from
+           calling Flash functions.
+         </p></dd><dt><span class="term">0x7</span></dt><dd><p>
+           This specifies the data in the AMF packet is a reference.
+         </p></dd><dt><span class="term">0x8</span></dt><dd><p>
+           This specifies the data in the AMF packet is a ECMA
+           array.
+         </p></dd><dt><span class="term">0x9</span></dt><dd><p>
+           This specifies the data in the AMF packet is the end of an
+           object definition. As an object is transmitted with
+           multiple AMF packets, this lets the server know when the
+           end of the object is reached.
+         </p></dd><dt><span class="term">0xa</span></dt><dd><p>
+           This specifies the data in the AMF packet is a Strict
+           array.
+         </p></dd><dt><span class="term">0xb</span></dt><dd><p>
+           This specifies the data in the AMF packet is a date.
+         </p></dd><dt><span class="term">0xc</span></dt><dd><p>
+           This specifies the data in the AMF packet is a multi-byte
+           string. Multi-byte strings are used for international
+           language support to represent non <span 
class="emphasis"><em>ASCII</em></span>
+           fonts.
+         </p></dd><dt><span class="term">0xd</span></dt><dd><p>
+           This specifies the data in the AMF packet is a an
+           unsupported feature.
+         </p></dd><dt><span class="term">0xe</span></dt><dd><p>
+           This specifies the data in the AMF packet is a record
+           set.
+         </p></dd><dt><span class="term">0xf</span></dt><dd><p>
+           This specifies the data in the AMF packet is a AML
+           object. XML objects are then parsed by the
+           <span class="emphasis"><em>XML</em></span> ActionScript class.
+         </p></dd><dt><span class="term">0x10</span></dt><dd><p>
+           This specifies the data in the AMF packet is a typed object.
+         </p></dd></dl></div><p>
+    
+  </p><p>
+    For messages with a 12 byte header, the last 4 bytes are the
+    routing of the message. If the destination is the server, this
+    value is the NetStream object source. If the destination is the
+    client, this is the NetStream object for this RTMP message. A
+    value of 0x00000000 appears to be reserved for the NetConnection
+    object. 
+  </p><p>
+    Multiple AMF streams can be contained in a single RTMP messages,
+    so it's important to check the index of each AMF packet.
+  </p><p>
+    An example RTMP header might look like this. (spaces added between
+    fields for clarity) All the numbers are in hex.
+
+    </p><pre class="screen">
+      03 000019 0000c9 14 000000000
+    </pre><p>
+    
+    </p><div class="variablelist"><dl><dt><span 
class="term">03</span></dt><dd><p>
+           The first two bits of this byte are the size of the
+           header, which in this example is 00, for a 12 byte
+           header. The next 6 bits is the AMF stream index number,
+           which in this example is 0x3.
+         </p></dd><dt><span class="term">000019</span></dt><dd><p>
+           These 3 bytes currently have an unknown purpose.
+         </p></dd><dt><span class="term">000c9</span></dt><dd><p>
+           Since this example has a 12 byte header, this is the size
+           of the RTMP message, in this case 201 bytes.
+         </p></dd><dt><span class="term">14</span></dt><dd><p>
+           This is the content type of the RTMP message, which in
+           this case is to invoke a remote function call. (which we
+           later see is the connect function).
+         </p></dd><dt><span class="term">00000000</span></dt><dd><p>
+           The source is the NetConnection object used to start this
+           connection.
+         </p></dd></dl></div><p>
+
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="amf"></a>AMF 
Format</h2></div></div></div><p>
+    The AMF format is used in the LocalConnection, SharedObject,
+    NetConnection, and NetStream ActionScript classes. This is a means
+    of binary data interchange between Flash movies, or between a
+    Flash player and a Flash server.
+  </p><p>
+    Like the RTMP messages, an AMF packet header can be of a variable
+    size. The size is either the same as the initial header of the
+    RTMP message, or a 1 byte header, which is commonly used for
+    streaming audio or video data.
+  </p><p>
+    The body of an AMF packet may look something like this
+    example. The spaces have been added for clarity.
+    
+    </p><pre class="screen">
+      02  0007 636f6e6e656374
+    </pre><p>
+
+    </p><div class="variablelist"><dl><dt><span 
class="term">02</span></dt><dd><p>
+           This is a single byte header. The value of the first 2
+           bits is 0x3, and the AMF index is also 0x3.
+         </p></dd><dt><span class="term">0007</span></dt><dd><p>
+           This is the length in bytes of the string.
+         </p></dd><dt><span class="term">63 6f 6e 6e 65 63 
74</span></dt><dd><p>
+           This is the string. Note that there is no null terminator
+           since the length is specified.
+         </p></dd></dl></div><p>
+
+  </p></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="nsapi"></a>Chapter 8. 
Mozilla/Firefox NPAPI Plugin</h2></div></div></div><div class="toc"><p><b>Table 
of Contents</b></p><dl><dt><span class="sect1"><a href="#plugincapi">Plugin C 
API</a></span></dt><dt><span class="sect1"><a href="#plugincppapi">Plugin C++ 
API</a></span></dt><dt><span class="sect1"><a href="#glthread">OpenGL and 
Threads</a></span></dt><dt><span class="sect1"><a href="#eventhandle">Plugin 
Event Handling</a></span></dt></dl></div><p>
+    The Mozilla SDK has two API layers for plugins. The older layer is
+    documented in the <a class="ulink" 
href="http://www.gnu.org/software/gnash/manual/plugin.pdf"; target="_top">
+    Geeko Plugin API Reference</a>, and the newer layer doesn't
+    appear to be documented. The new API is simpler, and is portable
+    across multiple versions of Mozilla or Firefox. The new API is
+    just a layer on top of the older one, so this manual still
+    applies.
+  </p><p>
+    Most of the programming of a plugin is filling in real emphasis for
+    the standard API functions and methods. Firefox uses these to
+    create the plugin, and to send it data.
+  </p><p>
+    When initializing or destroying a plugin, no matter how many
+    instances are being used, the C API is used. These functions are
+    typically called once for each plugin that is loaded.
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="plugincapi"></a>Plugin C 
API</h2></div></div></div><p>
+      The lower layer is a C based API which is used by Firefox to
+      initialize and destroy a plugin. This is so a plugin can be
+      portable across multiple systems, since C++ emphasis is not portable
+      between most C++ compilers. This is where most of the behind the
+      scenes work is done in a plugin. For Gnash, the sources this
+      lower layer are in <span 
class="emphasis"><em>plugin/mozilla-sdk</em></span>. They were
+      added to the Gnash source tree so it wouldn't be necessary to
+      have the Mozilla development packages installed to compile the
+      Gnash plugin.
+    </p><p>
+      This is also the older API used for plugins, so is usually the
+      one used if you dig around for plugin examples on the web. These
+      are the main functions which have to be implemented in a plugin
+      for it to be recognized by the browser, and to be initialized
+      and destroyed.
+    </p><div class="variablelist"><dl><dt><span 
class="term">NS_PluginInitialize</span></dt><dd><p>
+           This C function gets called once when the plugin is
+           loaded, regardless of how many instantiations there are
+           actually playing movies. So this is where all the one
+           time only initialization stuff goes that is shared by all
+           the threads.
+         </p></dd><dt><span 
class="term">NS_NewPluginInstance</span></dt><dd><p>
+           This instantiates a new object for the browser. Returning
+           a pointer to the C++ plugin object is what ties the C++
+           and C emphasis parts of the API together.
+         </p></dd><dt><span 
class="term">NS_DestroyPluginInstance</span></dt><dd><p>
+           This destroys our instantiated object when the browser is
+           done.
+         </p></dd><dt><span class="term">NS_PluginShutdown</span></dt><dd><p>
+           This is called when a plugin is shut down, so this is
+           where all the one time only shutdown stuff goes.
+         </p></dd><dt><span 
class="term">NPP_GetMIMEDescription</span></dt><dd><p>
+           This is called to get the MIME types the plugin supports.
+         </p></dd><dt><span class="term">NS_PluginGetValue</span></dt><dd><p>
+           This is used by Firefox to query information from the
+           plugin, like the supported MIME type, the version number,
+           and a description.
+         </p></dd></dl></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="plugincppapi"></a>Plugin C++ API</h2></div></div></div><p>
+      The higher level layer is the one we are most concerned
+      with. This is an instantiation of the
+      <span class="emphasis"><em>nsPluginInstanceBase</em></span> class, as 
defined by the
+      Mozilla SDK, for our plugin. With this API, a plugin is mostly
+      defining the standard entry points for Firefox, and the emphasis
+      that implements the glue between the Firefox and our plugin.
+    </p><p>
+      These are called for each instantiation of plugin. If there are
+      three Flash movies on a web page, then three instances are
+      created. Unfortunately for plugin programmers, these functions
+      may randomly be called more than once, so it's good to use
+      initialization flags for things that should only be done one per
+      thread. For instance, <span 
class="emphasis"><em>nsPluginInstance::init()</em></span> and
+      <span class="emphasis"><em>nsPluginInstance::SetWindow()</em></span> are 
called more than
+      once, so the plugin must protect against actions that could be
+      destructive.
+    </p><div class="variablelist"><dl><dt><span 
class="term">nsPluginInstance::nsPluginInstance</span></dt><dd><p>
+           Create a new plugin object.
+         </p></dd><dt><span 
class="term">nsPluginInstance::init</span></dt><dd><p>
+           This methods initializes the plugin object, and is
+           called for every movie which gets played. This is where
+           the thread-specific information goes.
+         </p></dd><dt><span 
class="term">nsPluginInstance::SetWindow</span></dt><dd><p>
+           This sets up the window the plugin is supposed to render
+           into. This calls passes in various information used by
+           the plugin to setup the window. This may get called
+           multiple times by each instantiated object, so it can't
+           do much but window specific setup here. This is where the
+           main emphasis is that sets up the window for the plugin.
+         </p></dd><dt><span 
class="term">nsPluginInstance::NewStream</span></dt><dd><p>
+           Opens a new incoming data stream, which is the flash
+           movie we want to play. A URL can be pretty ugly, like in
+           this example:
+           
http://www.sickwave.com/swf/navbar/navbar_sw.swf?atfilms=http%3a//www.atm.com/af/home/&amp;shickwave=http%3a//www.sickwave.com&amp;gblst=http%3a//gbst.sickwave.com/gb/gbHome.jsp&amp;known=0
 
../flash/gui.swf?ip_addr=foobar.com&amp;ip_port=3660&amp;show_cursor=true&amp;path_prefix=../flash/&amp;trapallkeys=true"
+           So this is where we parse the URL to get all the options
+           passed in when invoking the plugin.
+         </p></dd><dt><span 
class="term">nsPluginInstance::Write</span></dt><dd><p>
+           Read the data stream from Mozilla/Firefox.  For now we
+           read the bytes and write them to a disk file.
+         </p></dd><dt><span 
class="term">nsPluginInstance::WriteReady</span></dt><dd><p>
+           Return how many bytes we can read into the buffer.
+         </p></dd><dt><span 
class="term">nsPluginInstance::DestroyStream</span></dt><dd><p>
+           Destroy the data stream we've been reading. For Gnash,
+           when the stream is destroyed means we've grabbed the
+           entire movie. So we signal the thread to start reading and
+           playing the movie.
+         </p></dd><dt><span 
class="term">nsPluginInstance::shut</span></dt><dd><p>
+           This is where the movie playing specific shutdown emphasis goes.
+         </p></dd><dt><span 
class="term">nsPluginInstance::~nsPluginInstance</span></dt><dd><p>
+           This destroys our plugin object.
+         </p></dd><dt><span 
class="term">NS_PluginInitialize::initGL</span></dt><dd><p>
+           This is a Gnash internal function that sets up OpenGL.
+         </p></dd><dt><span 
class="term">NS_PluginInitialize::destroyContext</span></dt><dd><p>
+           This is a Gnash internal function that destroys a GLX
+           context. 
+         </p></dd><dt><span 
class="term">nsPluginInstance::getVersion</span></dt><dd><p>
+           This returns the version of Mozilla this plugin supports.
+         </p></dd><dt><span 
class="term">nsPluginInstance::GetValue</span></dt><dd><p>
+           This returns information to the browser about the plugin's
+           name and description.
+         </p></dd><dt><span 
class="term">nsPluginInstance::URLNotify</span></dt><dd><p>
+         </p></dd></dl></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="glthread"></a>OpenGL and Threads</h2></div></div></div><p>
+      Neither OpenGL nor X11 has any built-in support for threads. Most
+      actions aren't even atomic, so care has to be made to not corrupt
+      any internal data. While it is difficult to render OpenGL from
+      multiple threads, it can be done with the proper locking. The
+      downside is the locking adds a performance hit, since all the
+      threads will have to have the access synchronized by using
+      mutexes.
+    </p><p>
+      The X11 context is maintained one per instantiation of the
+      plugin. It is necessary to lock access to the X11 context when
+      using threads by using <span 
class="emphasis"><em>XLockDisplay()</em></span> and
+      <span class="emphasis"><em>XUnlockDisplay()</em></span>. A connection to 
the X11
+      server is opened for every instantiation of the plugin using
+      <span class="emphasis"><em>XOpenDisplay()</em></span>.
+    </p><p>
+      The <span class="emphasis"><em>GLX Context</em></span> is maintained one 
per
+      instantiation of the plugin for a web page. If there are more
+      than one Flash movie, there is more than one GLX Context. A GLX
+      context can be created by using <span 
class="emphasis"><em>glXCreateContext()</em></span>,
+      and then later destroyed by using <span 
class="emphasis"><em>glXDestroyContext()</em></span>.
+      When swapping threads, the context is changed using
+      <span class="emphasis"><em>glXMakeCurrent()</em></span>.
+    </p><p>
+      All the emphasis that directly accesses a GLX context or the X11
+      display must be wrapped with a mutex.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="eventhandle"></a>Plugin Event Handling</h2></div></div></div><p>
+      Firefox on most UNIX systems is a GTK+ application, so it is
+      possible to have the plugin hook into the X11 event handling via
+      GLX or GTK. Since Firefox uses GTK, so does Gnash. This also
+      allows the addition of a right-click mouse menu for controlling
+      the player. The GTK build of Gnash offers the best browsing
+      experience as it's more functional than the SDL version.
+    </p><p>
+      It is also possible to disable the <span 
class="emphasis"><em>GTK</em></span> support so
+      only the older <span class="emphasis"><em>SDL</em></span> support is 
used. In this case 
+      Gnash can't support event handling within the browser. This
+      means that when using the SDL of the plugin, mouse clicks and
+      keys pressed get ignored. Windows also can't be resized, and
+      sometimes they overrun their boundaries as well. To disable the
+      GTK support and force SDL to be used anyway, configure with
+      <span class="emphasis"><em>--disable-glext</em></span>
+    </p><p>
+      
+    </p></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="appendix"></a>Appendix</h2></div></div></div><div class="sect2" 
lang="en"><div class="titlepage"><div><div><h3 class="title"><a 
name="codestyle"></a>Code Style</h3></div></div></div><p>
+      I know any discussion of coding styles leads to strong opinions,
+      so I'll state simply I follow the <a class="ulink" 
href="http://www.gnu.org/prep/standards/standards.html"; target="_top">GNU
+      Coding Standards</a>. Where there is some flexibility as to
+      the location of braces, I prefer mine on the end of a line when
+      using an <span class="emphasis"><em>if</em></span>, <span 
class="emphasis"><em>while</em></span>, or <span 
class="emphasis"><em>do</em></span>
+      statement. I find this more compact style easier to read and
+      parse by eye. I'm also a big fan of always using
+      braces around <span class="emphasis"><em>if</em></span> statements, even 
if they're one
+      liners.
+    </p><p>
+      Here's my tweaked style settings for <span 
class="emphasis"><em>Emacs</em></span>, the one
+      true editor to rule them all.
+
+      </p><pre class="programlisting">
+      (defconst my-style
+          '((c-tab-always-indent   . t)
+           (c-auto-newline        . t)
+           (c-hanging-braces-alist . (
+                                  (brace-list-intro)
+                                  (namespace-open)
+                                  (inline-open)
+                                  (block-open)
+                                  (brace-list-open)
+                                  (brace-list-close)
+                                  (brace-entry-open)
+                                  (brace-else-brace)
+                                  (brace-elseif-brace)
+                                  (class-open after)
+                                  (class-close)
+                                  (defun-open after)
+                                  (defun-close)
+                                  (extern-lang-open)
+                                  (inexpr-class-open)
+                                  (statement-open)
+                                  (substatement-open)
+                                  (inexpr-class-close)))
+            (c-hanging-colons-alist . ((member-init-intro before)
+                                   (inher-intro)
+                                   (case-label after)
+                                   (label after)
+                                   (access-label after)))
+            (c-offsets-alist   . (
+                                  (innamespace . 0)
+                                   (case-label  . 2)
+                                  ))
+            (c-cleanup-list    . (
+                                  (scope-operator)
+                                  (empty-defun-braces)
+                                  (brace-else-brace)
+                                  (brace-elseif-brace)
+                                  (defun-close-semi)
+                                  (list-close-comma)
+                                  )
+                               )
+    ;; no automatic newlines after ';' if following line non-blank or inside
+    ;; one-line inline methods
+    (add-to-list 'c-hanging-semi&amp;comma-criteria
+                'c-semi&amp;comma-no-newlines-before-nonblanks)
+    (add-to-list 'c-hanging-semi&amp;comma-criteria
+                'c-semi&amp;comma-no-newlines-for-oneline-inliners)
+;    (knr-argdecl-intro . -)
+    (c-echo-syntactic-information-p . t)
+    )
+  "My GNU Programming Style")
+    </pre><p>
+
+    </p><p>
+      Another coding consideration: comments are good!  Over
+      commenting isn't good.  Here is an over commented example:
+
+      </p><pre class="programlisting">
+       counter++;              // increment counter
+      </pre><p>
+      
+      Gnash also uses <a class="ulink" href="http://www.doxygen.org"; 
target="_top">Doxygen</a> style
+      comments. These are processed by Doxygen when building a cross
+      reference of all the classes, and is a good way to help push
+      internals documentation from the depths of the code into
+      documentation where it can be seen by others.
+    </p><p>
+      <span class="emphasis"><em>Doxygen</em></span> style comments for <span 
class="emphasis"><em>C++</em></span> code involves
+      simply using three slashes <span class="emphasis"><em>///</em></span> 
instead of the
+      standard two slashes <span class="emphasis"><em>//</em></span> used for 
C++
+      comments. Here's a short comment block for the
+      <span class="emphasis"><em>XML::cloneNode()</em></span> method:
+
+      </p><pre class="programlisting">
+       /// \brief copy a node
+       ///
+       /// Method; constructs and returns a new XML node of the same type,
+       /// name, value, and attributes as the specified XML object. If deep
+       /// is set to true, all child nodes are recursively cloned, resulting
+       /// in an exact copy of the original object's document tree.
+       XMLNode &amp;
+       XML::cloneNode(XMLNode &amp;newnode, bool deep) {
+       ...
+       }
+      </pre><p> 
+    </p><p>
+      The <span class="emphasis"><em>\brief</em></span> keyword means that the 
+      text becomes associated
+      when listing all the classes on the generated web pages. The
+      text after the blank link becomes the detailed description which
+      appears on the generated web page for that class and method.
+    </p></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="authors"></a>Chapter 9. 
Authors</h2></div></div></div><p>
+        <span class="application">Gnash</span> is maintained by Rob Savoye. 
Other active developers
+       are: Sandro Santilli, Bastiaan Jacques, Udo Giacomozzi, Chad
+       Musick, Benjamin Wolsey, and Zou Lunkai. Please send all
+       comments and suggestions to <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden
+       </a>&gt;</code>. Past and sometimes current developers are Tomas
+       Groth and Markus Gothe.
+    </p><p>
+        <span class="application">Gnash</span> was initially derived from 
<span class="application">GameSWF</span>.
+        <span class="application">GameSWF</span> is maintained by
+        Thatcher Ulrich <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>.  The following
+        people contributed to <span class="application">GameSWF</span>:
+        Mike Shaver, Thierry Berger-Perrin,
+       Ignacio Castaño, Willem Kokke, Vitaly Alexeev, Alexander Streit, 
+        and Rob Savoye.
+    </p></div><div class="appendix" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="fdl"></a>Appendix A. GNU 
Free Documentation License</h2></div><div><p class="releaseinfo">
+      Version 1.1, March 2000
+    </p></div><div><p class="copyright">Copyright © 2000 Free Software 
Foundation, Inc.</p></div><div><div class="legalnotice"><a 
name="fdl-legalnotice"></a><p>
+       </p><div class="address"><p>Free Software Foundation, Inc. <span 
class="street">59 Temple Place, <br>
+        Suite 330</span>, <span class="city">Boston</span>, <span 
class="state">MA</span>  <br>
+        <span class="postcode">02111-1307</span>  <span 
class="country">USA</span></p></div><p> 
+       Everyone is permitted to copy and distribute verbatim copies of this 
+        license document, but changing it is not allowed.
+      </p></div></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a href="#fdl-preamble">0. 
PREAMBLE</a></span></dt><dt><span class="sect1"><a href="#fdl-section1">1. 
APPLICABILITY AND DEFINITIONS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section2">2. VERBATIM COPYING</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section3">3. COPYING IN 
QUANTITY</a></span></dt><dt><span class="sect1"><a href="#fdl-section4">4. 
MODIFICATIONS</a></span></dt><dt><span class="sect1"><a href="#fdl-section5">5. 
COMBINING DOCUMENTS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section6">6. COLLECTIONS OF DOCUMENTS</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section7">7. AGGREGATION WITH INDEPENDENT 
WORKS</a></span></dt><dt><span class="sect1"><a href="#fdl-section8">8. 
TRANSLATION</a></span></dt><dt><span class="sect1"><a href="#fdl-section9">9. 
TERMINATION</a></span></dt><dt><span class="sect1"><a href="#fdl-section10">10. 
FUTURE REVISIONS OF THIS LICENSE</a></span></dt><dt><span class="sect1"><a 
href="#fdl-using">Addendum</a></span></dt></dl></div><div class="sect1" 
lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: 
both"><a name="fdl-preamble"></a>0. PREAMBLE</h2></div></div></div><p>
+      The purpose of this License is to make a manual, textbook, or
+      other written document "free" in the sense of
+      freedom: to assure everyone the effective freedom to copy and
+      redistribute it, with or without modifying it, either
+      commercially or non-commercially. Secondarily, this License
+      preserves for the author and publisher a way to get credit for
+      their work, while not being considered responsible for
+      modifications made by others.
+    </p><p>
+      This License is a kind of "copyleft", which means
+      that derivative works of the document must themselves be free in
+      the same sense. It complements the GNU General Public License,
+      which is a copyleft license designed for free software.
+    </p><p>
+      We have designed this License in order to use it for manuals for
+      free software, because free software needs free documentation: a
+      free program should come with manuals providing the same
+      freedoms that the software does. But this License is not limited
+      to software manuals; it can be used for any textual work,
+      regardless of subject matter or whether it is published as a
+      printed book. We recommend this License principally for works
+      whose purpose is instruction or reference.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section1"></a>1. APPLICABILITY AND 
DEFINITIONS</h2></div></div></div><p><a name="fdl-document"></a>
+      This License applies to any manual or other work that contains a
+      notice placed by the copyright holder saying it can be
+      distributed under the terms of this License. The
+      "Document", below, refers to any such manual or
+      work. Any member of the public is a licensee, and is addressed
+      as "you".
+    </p><p><a name="fdl-modified"></a>
+      A "Modified Version" of the Document means any work
+      containing the Document or a portion of it, either copied
+      verbatim, or with modifications and/or translated into another
+      language.
+    </p><p><a name="fdl-secondary"></a>
+      A "Secondary Section" is a named appendix or a
+      front-matter section of the <a class="link" 
href="#fdl-document">Document</a> that deals exclusively
+      with the relationship of the publishers or authors of the
+      Document to the Document's overall subject (or to related
+      matters) and contains nothing that could fall directly within
+      that overall subject. (For example, if the Document is in part a
+      textbook of mathematics, a Secondary Section may not explain any
+      mathematics.)  The relationship could be a matter of historical
+      connection with the subject or with related matters, or of
+      legal, commercial, philosophical, ethical or political position
+      regarding them.
+    </p><p><a name="fdl-invariant"></a>
+      The "Invariant Sections" are certain <a class="link" 
href="#fdl-secondary"> Secondary Sections</a> whose titles
+      are designated, as being those of Invariant Sections, in the
+      notice that says that the <a class="link" 
href="#fdl-document">Document</a> is released under this
+      License.
+    </p><p><a name="fdl-cover-texts"></a>
+      The "Cover Texts" are certain short passages of
+      text that are listed, as Front-Cover Texts or Back-Cover Texts,
+      in the notice that says that the <a class="link" 
href="#fdl-document">Document</a> is released under this
+      License.
+    </p><p><a name="fdl-transparent"></a>
+      A "Transparent" copy of the <a class="link" href="#fdl-document"> 
Document</a> means a machine-readable
+      copy, represented in a format whose specification is available
+      to the general public, whose contents can be viewed and edited
+      directly and straightforwardly with generic text editors or (for
+      images composed of pixels) generic paint programs or (for
+      drawings) some widely available drawing editor, and that is
+      suitable for input to text formatters or for automatic
+      translation to a variety of formats suitable for input to text
+      formatters. A copy made in an otherwise Transparent file format
+      whose markup has been designed to thwart or discourage
+      subsequent modification by readers is not Transparent.  A copy
+      that is not "Transparent" is called "Opaque".
+    </p><p>
+      Examples of suitable formats for Transparent copies include
+      plain ASCII without markup, Texinfo input format, LaTeX input
+      format, SGML or XML using a publicly available DTD, and
+      standard-conforming simple HTML designed for human
+      modification. Opaque formats include PostScript, PDF,
+      proprietary formats that can be read and edited only by
+      proprietary word processors, SGML or XML for which the DTD
+      and/or processing tools are not generally available, and the
+      machine-generated HTML produced by some word processors for
+      output purposes only.
+    </p><p><a name="fdl-title-page"></a>
+      The "Title Page" means, for a printed book, the
+      title page itself, plus such following pages as are needed to
+      hold, legibly, the material this License requires to appear in
+      the title page. For works in formats which do not have any title
+      page as such, "Title Page" means the text near the
+      most prominent appearance of the work's title, preceding the
+      beginning of the body of the text.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section2"></a>2. VERBATIM COPYING</h2></div></div></div><p>
+      You may copy and distribute the <a class="link" 
href="#fdl-document">Document</a> in any medium, either
+      commercially or noncommercially, provided that this License, the
+      copyright notices, and the license notice saying this License
+      applies to the Document are reproduced in all copies, and that
+      you add no other conditions whatsoever to those of this
+      License. You may not use technical measures to obstruct or
+      control the reading or further copying of the copies you make or
+      distribute. However, you may accept compensation in exchange for
+      copies. If you distribute a large enough number of copies you
+      must also follow the conditions in <a class="link" href="#fdl-section3" 
title="3. COPYING IN QUANTITY">section 3</a>.
+    </p><p>
+      You may also lend copies, under the same conditions stated
+      above, and you may publicly display copies.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section3"></a>3. COPYING IN QUANTITY</h2></div></div></div><p>
+      If you publish printed copies of the <a class="link" 
href="#fdl-document">Document</a> numbering more than 100,
+      and the Document's license notice requires <a class="link" 
href="#fdl-cover-texts">Cover Texts</a>, you must enclose
+      the copies in covers that carry, clearly and legibly, all these
+      Cover Texts: Front-Cover Texts on the front cover, and
+      Back-Cover Texts on the back cover. Both covers must also
+      clearly and legibly identify you as the publisher of these
+      copies. The front cover must present the full title with all
+      words of the title equally prominent and visible. You may add
+      other material on the covers in addition. Copying with changes
+      limited to the covers, as long as they preserve the title of the
+      <a class="link" href="#fdl-document">Document</a> and satisfy these
+      conditions, can be treated as verbatim copying in other
+      respects.
+    </p><p>
+      If the required texts for either cover are too voluminous to fit
+      legibly, you should put the first ones listed (as many as fit
+      reasonably) on the actual cover, and continue the rest onto
+      adjacent pages.
+    </p><p>
+      If you publish or distribute <a class="link" 
href="#fdl-transparent">Opaque</a> copies of the <a class="link" 
href="#fdl-document">Document</a> numbering more than 100,
+      you must either include a machine-readable <a class="link" 
href="#fdl-transparent">Transparent</a> copy along with
+      each Opaque copy, or state in or with each Opaque copy a
+      publicly-accessible computer-network location containing a
+      complete Transparent copy of the Document, free of added
+      material, which the general network-using public has access to
+      download anonymously at no charge using public-standard network
+      protocols. If you use the latter option, you must take
+      reasonably prudent steps, when you begin distribution of Opaque
+      copies in quantity, to ensure that this Transparent copy will
+      remain thus accessible at the stated location until at least one
+      year after the last time you distribute an Opaque copy (directly
+      or through your agents or retailers) of that edition to the
+      public.
+    </p><p>
+      It is requested, but not required, that you contact the authors
+      of the <a class="link" href="#fdl-document">Document</a> well before
+      redistributing any large number of copies, to give them a chance
+      to provide you with an updated version of the Document.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section4"></a>4. MODIFICATIONS</h2></div></div></div><p>
+      You may copy and distribute a <a class="link" 
href="#fdl-modified">Modified Version</a> of the <a class="link" 
href="#fdl-document">Document</a> under the conditions of
+      sections <a class="link" href="#fdl-section2" title="2. VERBATIM 
COPYING">2</a> and <a class="link" href="#fdl-section3" title="3. COPYING IN 
QUANTITY">3</a> above, provided that you release
+      the Modified Version under precisely this License, with the
+      Modified Version filling the role of the Document, thus
+      licensing distribution and modification of the Modified Version
+      to whoever possesses a copy of it. In addition, you must do
+      these things in the Modified Version:
+    </p><div class="itemizedlist"><ul type="opencircle"><li 
style="list-style-type: circle"><p><b>A. </b>
+           Use in the <a class="link" href="#fdl-title-page">Title
+           Page</a> (and on the covers, if any) a title distinct
+           from that of the <a class="link" href="#fdl-document">Document</a>, 
and from those of
+           previous versions (which should, if there were any, be
+           listed in the History section of the Document). You may
+           use the same title as a previous version if the original
+           publisher of that version gives permission.
+         </p></li><li style="list-style-type: circle"><p><b>B. </b>
+           List on the <a class="link" href="#fdl-title-page">Title
+           Page</a>, as authors, one or more persons or entities
+           responsible for authorship of the modifications in the
+           <a class="link" href="#fdl-modified">Modified Version</a>,
+           together with at least five of the principal authors of
+           the <a class="link" href="#fdl-document">Document</a> (all of
+           its principal authors, if it has less than five).
+         </p></li><li style="list-style-type: circle"><p><b>C. </b>
+           State on the <a class="link" href="#fdl-title-page">Title
+           Page</a> the name of the publisher of the <a class="link" 
href="#fdl-modified">Modified Version</a>, as the
+           publisher.
+         </p></li><li style="list-style-type: circle"><p><b>D. </b>
+           Preserve all the copyright notices of the <a class="link" 
href="#fdl-document">Document</a>.
+         </p></li><li style="list-style-type: circle"><p><b>E. </b>
+           Add an appropriate copyright notice for your modifications
+           adjacent to the other copyright notices.
+         </p></li><li style="list-style-type: circle"><p><b>F. </b>
+           Include, immediately after the copyright notices, a
+           license notice giving the public permission to use the
+           <a class="link" href="#fdl-modified">Modified Version</a> under
+           the terms of this License, in the form shown in the
+           Addendum below.
+         </p></li><li style="list-style-type: circle"><p><b>G. </b>
+           Preserve in that license notice the full lists of <a class="link" 
href="#fdl-invariant"> Invariant Sections</a> and
+           required <a class="link" href="#fdl-cover-texts">Cover
+           Texts</a> given in the <a class="link" 
href="#fdl-document">Document's</a> license notice.
+         </p></li><li style="list-style-type: circle"><p><b>H. </b>
+           Include an unaltered copy of this License.
+         </p></li><li style="list-style-type: circle"><p><b>I. </b>
+           Preserve the section entitled "History", and
+           its title, and add to it an item stating at least the
+           title, year, new authors, and publisher of the <a class="link" 
href="#fdl-modified">Modified Version </a>as given on
+           the <a class="link" href="#fdl-title-page">Title Page</a>.  If
+           there is no section entitled "History" in the
+           <a class="link" href="#fdl-document">Document</a>, create one
+           stating the title, year, authors, and publisher of the
+           Document as given on its Title Page, then add an item
+           describing the Modified Version as stated in the previous
+           sentence.
+         </p></li><li style="list-style-type: circle"><p><b>J. </b>
+           Preserve the network location, if any, given in the <a class="link" 
href="#fdl-document">Document</a> for public access
+           to a <a class="link" href="#fdl-transparent">Transparent</a>
+           copy of the Document, and likewise the network locations
+           given in the Document for previous versions it was based
+           on. These may be placed in the "History"
+           section.  You may omit a network location for a work that
+           was published at least four years before the Document
+           itself, or if the original publisher of the version it
+           refers to gives permission.
+         </p></li><li style="list-style-type: circle"><p><b>K. </b>
+           In any section entitled "Acknowledgements" or
+           "Dedications", preserve the section's title,
+           and preserve in the section all the substance and tone of
+           each of the contributor acknowledgements and/or
+           dedications given therein.
+         </p></li><li style="list-style-type: circle"><p><b>L. </b>
+           Preserve all the <a class="link" href="#fdl-invariant">Invariant
+           Sections</a> of the <a class="link" 
href="#fdl-document">Document</a>, unaltered in their
+           text and in their titles.  Section numbers or the
+           equivalent are not considered part of the section titles.
+         </p></li><li style="list-style-type: circle"><p><b>M. </b>
+           Delete any section entitled
+           "Endorsements". Such a section may not be
+           included in the <a class="link" href="#fdl-modified">Modified
+           Version</a>.
+         </p></li><li style="list-style-type: circle"><p><b>N. </b>
+           Do not retitle any existing section as
+           "Endorsements" or to conflict in title with
+           any <a class="link" href="#fdl-invariant">Invariant
+           Section</a>.
+         </p></li></ul></div><p>
+      If the <a class="link" href="#fdl-modified">Modified Version</a>
+      includes new front-matter sections or appendices that qualify as
+      <a class="link" href="#fdl-secondary">Secondary Sections</a> and
+      contain no material copied from the Document, you may at your
+      option designate some or all of these sections as invariant. To
+      do this, add their titles to the list of <a class="link" 
href="#fdl-invariant">Invariant Sections</a> in the
+      Modified Version's license notice.  These titles must be
+      distinct from any other section titles.
+    </p><p>
+      You may add a section entitled "Endorsements",
+      provided it contains nothing but endorsements of your <a class="link" 
href="#fdl-modified">Modified Version</a> by various
+      parties--for example, statements of peer review or that the text
+      has been approved by an organization as the authoritative
+      definition of a standard.
+    </p><p>
+      You may add a passage of up to five words as a <a class="link" 
href="#fdl-cover-texts">Front-Cover Text</a>, and a passage
+      of up to 25 words as a <a class="link" 
href="#fdl-cover-texts">Back-Cover Text</a>, to the end of
+      the list of <a class="link" href="#fdl-cover-texts">Cover Texts</a>
+      in the <a class="link" href="#fdl-modified">Modified Version</a>.
+      Only one passage of Front-Cover Text and one of Back-Cover Text
+      may be added by (or through arrangements made by) any one
+      entity. If the <a class="link" href="#fdl-document">Document</a>
+      already includes a cover text for the same cover, previously
+      added by you or by arrangement made by the same entity you are
+      acting on behalf of, you may not add another; but you may
+      replace the old one, on explicit permission from the previous
+      publisher that added the old one.
+    </p><p>
+      The author(s) and publisher(s) of the <a class="link" 
href="#fdl-document">Document</a> do not by this License
+      give permission to use their names for publicity for or to
+      assert or imply endorsement of any <a class="link" 
href="#fdl-modified">Modified Version </a>.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section5"></a>5. COMBINING DOCUMENTS</h2></div></div></div><p>
+      You may combine the <a class="link" href="#fdl-document">Document</a>
+      with other documents released under this License, under the
+      terms defined in <a class="link" href="#fdl-section4" title="4. 
MODIFICATIONS">section 4</a>
+      above for modified versions, provided that you include in the
+      combination all of the <a class="link" href="#fdl-invariant">Invariant
+      Sections</a> of all of the original documents, unmodified,
+      and list them all as Invariant Sections of your combined work in
+      its license notice.
+    </p><p>
+      The combined work need only contain one copy of this License,
+      and multiple identical <a class="link" href="#fdl-invariant">Invariant
+      Sections</a> may be replaced with a single copy. If there are
+      multiple Invariant Sections with the same name but different
+      contents, make the title of each such section unique by adding
+      at the end of it, in parentheses, the name of the original
+      author or publisher of that section if known, or else a unique
+      number. Make the same adjustment to the section titles in the
+      list of Invariant Sections in the license notice of the combined
+      work.
+    </p><p>
+      In the combination, you must combine any sections entitled
+      "History" in the various original documents,
+      forming one section entitled "History"; likewise
+      combine any sections entitled "Acknowledgements",
+      and any sections entitled "Dedications".  You must
+      delete all sections entitled "Endorsements."
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section6"></a>6. COLLECTIONS OF DOCUMENTS</h2></div></div></div><p>
+      You may make a collection consisting of the <a class="link" 
href="#fdl-document">Document</a> and other documents
+      released under this License, and replace the individual copies
+      of this License in the various documents with a single copy that
+      is included in the collection, provided that you follow the
+      rules of this License for verbatim copying of each of the
+      documents in all other respects.
+    </p><p>
+      You may extract a single document from such a collection, and
+      distribute it individually under this License, provided you
+      insert a copy of this License into the extracted document, and
+      follow this License in all other respects regarding verbatim
+      copying of that document.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section7"></a>7. AGGREGATION WITH INDEPENDENT 
WORKS</h2></div></div></div><p>
+      A compilation of the <a class="link" href="#fdl-document">Document</a> 
or its derivatives with
+      other separate and independent documents or works, in or on a
+      volume of a storage or distribution medium, does not as a whole
+      count as a <a class="link" href="#fdl-modified">Modified Version</a>
+      of the Document, provided no compilation copyright is claimed
+      for the compilation.  Such a compilation is called an
+      "aggregate", and this License does not apply to the
+      other self-contained works thus compiled with the Document , on
+      account of their being thus compiled, if they are not themselves
+      derivative works of the Document.  If the <a class="link" 
href="#fdl-cover-texts">Cover Text</a> requirement of <a class="link" 
href="#fdl-section3" title="3. COPYING IN QUANTITY">section 3</a> is applicable 
to these
+      copies of the Document, then if the Document is less than one
+      quarter of the entire aggregate, the Document's Cover Texts may
+      be placed on covers that surround only the Document within the
+      aggregate. Otherwise they must appear on covers around the whole
+      aggregate.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section8"></a>8. TRANSLATION</h2></div></div></div><p>
+      Translation is considered a kind of modification, so you may
+      distribute translations of the <a class="link" 
href="#fdl-document">Document</a> under the terms of <a class="link" 
href="#fdl-section4" title="4. MODIFICATIONS">section 4</a>. Replacing <a 
class="link" href="#fdl-invariant"> Invariant Sections</a> with
+      translations requires special permission from their copyright
+      holders, but you may include translations of some or all
+      Invariant Sections in addition to the original versions of these
+      Invariant Sections. You may include a translation of this
+      License provided that you also include the original English
+      version of this License. In case of a disagreement between the
+      translation and the original English version of this License,
+      the original English version will prevail.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section9"></a>9. TERMINATION</h2></div></div></div><p>
+      You may not copy, modify, sublicense, or distribute the <a class="link" 
href="#fdl-document">Document</a> except as expressly
+      provided for under this License. Any other attempt to copy,
+      modify, sublicense or distribute the Document is void, and will
+      automatically terminate your rights under this License. However,
+      parties who have received copies, or rights, from you under this
+      License will not have their licenses terminated so long as such
+      parties remain in full compliance.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section10"></a>10. FUTURE REVISIONS OF THIS 
LICENSE</h2></div></div></div><p>
+      The <a class="ulink" href="http://www.gnu.org/fsf/fsf.html"; 
target="_top">Free Software
+      Foundation</a> may publish new, revised versions of the GNU
+      Free Documentation License from time to time. Such new versions
+      will be similar in spirit to the present version, but may differ
+      in detail to address new problems or concerns. See <a class="ulink" 
href="http://www.gnu.org/copyleft"; 
target="_top">http://www.gnu.org/copyleft/</a>.
+    </p><p>
+      Each version of the License is given a distinguishing version
+      number. If the <a class="link" href="#fdl-document">Document</a>
+      specifies that a particular numbered version of this License
+      "or any later version" applies to it, you have the
+      option of following the terms and conditions either of that
+      specified version or of any later version that has been
+      published (not as a draft) by the Free Software Foundation. If
+      the Document does not specify a version number of this License,
+      you may choose any version ever published (not as a draft) by
+      the Free Software Foundation.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-using"></a>Addendum</h2></div></div></div><p>
+      To use this License in a document you have written, include a copy of
+      the License in the document and put the following copyright and
+      license notices just after the title page:
+    </p><div class="blockquote"><blockquote class="blockquote"><p>
+       Copyright 2008, Free Software Foundation.
+      </p><p>
+       Permission is granted to copy, distribute and/or modify this
+       document under the terms of the GNU Free Documentation
+       License, Version 1.1 or any later version published by the
+       Free Software Foundation; with no<a class="link" 
href="#fdl-invariant">Invariant Sections</a>, with no <a class="link" 
href="#fdl-cover-texts">Front-Cover Texts</a>,
+       and with no <a class="link" href="#fdl-cover-texts">Back-Cover
+       Texts</a>. A copy of the license is included in
+       the section entitled "GNU Free Documentation License".
+      </p></blockquote></div><p>
+      If your document contains nontrivial examples of program code,
+      we recommend releasing these examples in parallel under your
+      choice of free software license, such as the <a class="ulink" 
href="http://www.gnu.org/copyleft/gpl.html"; target="_top"> GNU General Public
+      License</a>, to permit their use in free software.
+    </p></div></div></div></body></html>

Index: doc/C/preformatted/gnash_ref.info.in
===================================================================
RCS file: doc/C/preformatted/gnash_ref.info.in
diff -N doc/C/preformatted/gnash_ref.info.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/preformatted/gnash_ref.info.in        3 Mar 2008 23:46:43 -0000       
1.2.2.2
@@ -0,0 +1,4685 @@
+START-INFO-DIR-ENTRY
+This is gnash_ref.info, produced by makeinfo version 4.11 from gnash_ref.texi.
+
+* Gnash Reference Manual: (gnash_ref).   Gnash
+END-INFO-DIR-ENTRY
+
+
+File: gnash_ref.info,  Node: Top,  Next: Introduction,  Up: (dir)
+
+Gnash Reference Manual
+**********************
+
+* Menu:
+
+* Introduction::
+* Building from Source::
+* Software Internals::
+* Reporting Bugs::
+* Gnash Extensions::
+* RTMP Protocol::
+* Mozilla/Firefox NPAPI Plugin::
+* Appendix::
+* Authors::
+* GNU Free Documentation License::
+
+--- The Detailed Node Listing ---
+
+Introduction
+
+* Audience::
+* What Is Supported?::
+
+Building from Source
+
+* Overview::
+* Getting The Source::
+* Code Dependencies::
+* Testing Dependencies::
+* Documentation Dependencies::
+* Configuring Gnash::
+* Compiling the Code::
+* Creating the Documentation::
+* Running the Tests::
+
+Software Internals
+
+* A Tour of Gnash::
+* Sound handling in Gnash::
+* Testing : Testing.
+* Adding New ActionScript Class::
+
+Reporting Bugs
+
+* Get a Fresh Binary Package::
+* Determine if the bug was previously reported::
+* Review the bug writing guidelines::
+* Filing a bug report::
+
+Gnash Extensions
+
+* Creating A New Extension::
+* Debugging An Extension::
+* Included Extensions::
+
+RTMP Protocol
+
+* AMF Format::
+
+Mozilla/Firefox NPAPI Plugin
+
+* Plugin C API::
+* Plugin C++ API::
+* OpenGL and Threads::
+* Plugin Event Handling::
+
+Appendix
+
+* Code Style::
+
+GNU Free Documentation License
+
+* 0. PREAMBLE: 0_ PREAMBLE.
+* 1. APPLICABILITY AND DEFINITIONS: 1_ APPLICABILITY AND DEFINITIONS.
+* 2. VERBATIM COPYING: 2_ VERBATIM COPYING.
+* 3. COPYING IN QUANTITY: 3_ COPYING IN QUANTITY.
+* 4. MODIFICATIONS: 4_ MODIFICATIONS.
+* 5. COMBINING DOCUMENTS: 5_ COMBINING DOCUMENTS.
+* 6. COLLECTIONS OF DOCUMENTS: 6_ COLLECTIONS OF DOCUMENTS.
+* 7. AGGREGATION WITH INDEPENDENT WORKS: 7_ AGGREGATION WITH INDEPENDENT WORKS.
+* 8. TRANSLATION: 8_ TRANSLATION.
+* 9. TERMINATION: 9_ TERMINATION.
+* 10. FUTURE REVISIONS OF THIS LICENSE: 10_ FUTURE REVISIONS OF THIS LICENSE.
+* Addendum::
+
+
+File: gnash_ref.info,  Node: Introduction,  Next: Building from Source,  Prev: 
Top,  Up: Top
+
+1 Introduction
+**************
+
+Gnash is a free SWF movie player.  It is available as a stand-alone
+application or as a plugin for several popular web browsers. It
+supports playing media from a disk or streaming over a network
+connection. Some popular video sharing sites like YouTube are supported
+on a wide variety of devices from embedded ones to modern desktops.
+
+   Gnash has a better focus on security, allowing the user tight
+control of all network or disk based I/O. Gnash also supports extending
+ActionScript by creating your own classes. You can write wrappers for
+any development library, and import them into the player much like Perl
+or Python does.
+
+* Menu:
+
+* Audience::
+* What Is Supported?::
+
+
+File: gnash_ref.info,  Node: Audience,  Next: What Is Supported?,  Up: 
Introduction
+
+1.1 Audience
+============
+
+This manual is primarily focused on users interested in how to get
+Gnash installed from a package, and basic usage as a web browser
+plugin. For more technical details, please refer to the Gnash Reference
+manual.
+
+
+File: gnash_ref.info,  Node: What Is Supported?,  Prev: Audience,  Up: 
Introduction
+
+1.2 What Is Supported?
+======================
+
+Gnash is known to compile for most any POSIX and ANSI C++ conforming
+system if you have all the dependent libraries installed. Systems we
+test on, and which Gnash is known to run on are Ubuntu, Fedora, Debian,
+Mandriva, OpenBSD, NetBSD, FreeBSD, Win32, and Darwin (OSX) primarily.
+Occasionally other platforms are built, primarily by those distribution
+maintainers. This includes BeOS, Haiku, Syllable, OS/2, Solaris,
+Slackware, and Gentoo.
+
+   Gnash is capable of reading up to SWF v9 files and opcodes, but
+primarily supports SWF v7, with better SWF v8 and v9 support under
+heavy development. With the 0.8.2 release, Gnash includes initial
+parser support for SWF v8 and v9.  Not all ActionScript 2 classes are
+implemented yet, but all of the most heavily used ones are. Many
+ActionScript 2 classes are partially implemented; there is support for
+all of the commonly used methods of each class.
+
+   Gnash has implemented about 80% of ActionScript v2.0, and has begun
+implementing ActionScript v3.0. Gnash supports the majority of Flash
+opcodes up to SWF v9, and a wide sampling of ActionScript classes for
+SWF v8.
+
+   As ActionScript 3 is a more developed version of ActionScript 2,
+many of the same classes work for both. Support has been added to
+Gnash's ActionScript library to support the new ActionScript 3 filters,
+which get applied to every class. Implementing ActionScript clases is
+often the easiest way for new Gnash developers to make a contribution
+without a deep internal knpowledge of Gnash.
+
+   Gnash has included video support since early 2007, but this is an
+ever changing field of reverse engineering. Many of the popular video
+sharing sites use SWF v8 or v9, which Gnash still has imperfect support
+for. This is improving all the time, so often builds from a development
+snapshot will work when using the older release packaged in your
+distribution doesn't. You can find daily snapshots of the latest CVS
+tree at: http://www.gnashdev.org/dev_snapshots
+(http://www.gnashdev.org/dev_snapshots/).
+
+   Gnash uses ffmpeg for codecs, so any file supported by Mplayer
+should work with Gnash. Gnash supports the loading of patent free
+codecs like Ogg Vorbis or Theora from disk based files, while work is
+being done to support these codecs when embedded in a SWF file. Ffmpeg
+contains the codecs used by the current SWF defintion, FLV, VP6 (ON2),
+H.263, H.264, and MP3.
+
+
+File: gnash_ref.info,  Node: Building from Source,  Next: Software Internals,  
Prev: Introduction,  Up: Top
+
+2 Building from Source
+**********************
+
+* Menu:
+
+* Overview::
+* Getting The Source::
+* Code Dependencies::
+* Testing Dependencies::
+* Documentation Dependencies::
+* Configuring Gnash::
+* Compiling the Code::
+* Creating the Documentation::
+* Running the Tests::
+
+
+File: gnash_ref.info,  Node: Overview,  Next: Getting The Source,  Up: 
Building from Source
+
+2.1 Overview
+============
+
+The typical process of building from source will involve getting the
+source (*note Getting The Source::), build dependencies (*note Code
+Dependencies::), configuration (*note Configuring Gnash::), compilation
+(*note Compiling the Code::), testing (*note Running the Tests::), and
+installation (*note Installation::).  A simplified overview of the
+process would be:
+
+
+             ./autogen.sh
+             ./configure
+             make
+             make check
+             make install
+
+   If you are compiling with GCC you will probably need to use a machine
+with at least 128 megabytes of physical RAM; 64MB is not enough for a
+couple of the files, even with swap enabled and optimisation turned off.
+
+   At present the Gnash source is about 30 MB extracted and configured
+and requires a total of about 125 megabytes to compile it.
+
+   Continue reading for detailed step-by-step instructions of the
+entire procedure.
+
+
+File: gnash_ref.info,  Node: Getting The Source,  Next: Code Dependencies,  
Prev: Overview,  Up: Building from Source
+
+2.2 Getting The Source
+======================
+
+* Menu:
+
+* Releases::
+* CVS Access::
+
+
+File: gnash_ref.info,  Node: Releases,  Next: CVS Access,  Up: Getting The 
Source
+
+2.2.1 Releases
+--------------
+
+Tarballs of official releases can be found in the download area of the
+project's GNU Savannah page at http://savannah.gnu.org/projects/gnash
+(http://savannah.gnu.org/projects/gnash) or under
+http://ftp.gnu.org/gnu/gnash (http://ftp.gnu.org/gnu/gnash)
+
+
+File: gnash_ref.info,  Node: CVS Access,  Prev: Releases,  Up: Getting The 
Source
+
+2.2.2 CVS Access
+----------------
+
+The latest Gnash development sources are available via anonymous CVS.
+Use the following commands to check them out (just hit return when you
+are prompted for the password):
+
+
+         export CVS_RSH=ssh
+         cvs -z3 -d:pserver:address@hidden:/sources/gnash co gnash
+
+You will then be able to update your copy from the repository using
+
+
+         cd gnash
+         cvs update -d
+
+   If you only have access to the internet via a web proxy, you will
+find daily source snapshots of the latest CVS tree in
+http://www.gnashdev.org/dev_snapshots
+(http://www.gnashdev.org/dev_snapshots/)
+
+
+File: gnash_ref.info,  Node: Code Dependencies,  Next: Testing Dependencies,  
Prev: Getting The Source,  Up: Building from Source
+
+2.3 Code Dependencies
+=====================
+
+Gnash has a number of dependencies on other packages.  If you install
+the dependencies using a package manager, be certain to install the
+development versions of the packages.  The normal versions are often
+missing the headers Gnash needs to compile.
+
+   Some dependencies have other dependencies, like GTk also needs
+glib2, atk, and pango to produce a fully linked executable. Different
+distributions also use differing dependencies, sometimes a package will
+depend on libxml2 on one system, but libexpat on another.
+
+*Code Dependency Table*
+
+Name       Level      Version    DescriptionExplanationapt-get    RPM/Yum
+                                                       package    packageBSD
+                                                                  package
+Boost      Required   1.32 or     Boost is  In Gnash,  `libboost-thread-dev,`
+                      higher     a library  Boost      
libboost-date-time-devlibboost-thread-devel,
+                                 of         libraries  
libboost-devlibboost-date-time-devel
+                                 portable   are used   '          '`
+                                 C++        extensively,           
boost-headers,
+                                 classes    primarily             boost-libs,
+                                 and        boost-gthread           or just
+                                 templates. and                   boost '
+                                            boost-date-time.           
+                                            Boost is              
+                                            used for              
+                                            thread                
+                                            and mutext            
+                                            handling.             
+libxml2    Required               Libxml2   This       
`libxml2-dev'`libxml2-devel'`libxml2'
+                                 is the     library               
+                                 GNOME XML  is used               
+                                 parser     to parse              
+                                 library    messages              
+                                 and is     for the               
+                                 available  XML                   
+                                 at         XMLNode,              
+                                 http://xmlsoft.orgor                    
+                                 (http://xmlsoft.org).XMLSocket             
+                                            ActionScript           
+                                            classes.              
+AGG        Possibly   2.4 or      AGG is    Gnash      
`libagg-dev'`agg-devel'`agg'
+           Required   higher     the        requires              
+                                 AntiGrain  the                   
+                                 low-level  installation           
+                                 2D         of at                 
+                                 graphics   least one             
+                                 library.   renderer.             
+                                            AGG is                
+                                            considered            
+                                            the _best             
+                                            supported_            
+                                            renderer              
+                                            for Gnash.            
+OpenGL     Possibly               OpenGL    Gnash      
`libgl1-mesa-dev'`libmesa-devel'`mesa'
+           Required              is a       requires              
+                                 standard   the                   
+                                 specificationinstallation           
+                                 defining a of at                 
+                                 cross-languageleast one             
+                                 cross-platformrenderer.             
+                                 API for    If you                
+                                 writing    don't                 
+                                 applicationshave a                
+                                 which      hardware              
+                                 produce    accelerated           
+                                 3D and 2D  driver,               
+                                 graphics.  you're                
+                                 It         better                
+                                 supports   off using             
+                                 hardware   AGG for               
+                                 acceleration.the                   
+                                 You can    renderer.             
+                                 download                         
+                                 a free                           
+                                 implementation                      
+                                 from                             
+                                 http://www.mesa3d.org                      
+                                 (http://www.mesa3d.org),                      
+                                 although                         
+                                 it                               
+                                 doesn't                          
+                                 support                          
+                                 hardware                         
+                                 acceleration.                      
+Cairo      Possibly               Cairo is  Gnash      
`libcairo2-dev'`cairo-devel'`cairo'
+           Required              a 2D       requires              
+                                 graphics   the                   
+                                 library    installation           
+                                 with       of at                 
+                                 support    least one             
+                                 for        renderer.             
+                                 multiple   Cairo is              
+                                 output     considered            
+                                 devices.   the                   
+                                 It will    _least                
+                                 automaticallysupported_            
+                                 use        renderer              
+                                 graphic    for Gnash.            
+                                 card                             
+                                 acceleration                      
+                                 when                             
+                                 available,                       
+                                 and has                          
+                                 an                               
+                                 experimental                      
+                                 OpenGL                           
+                                 backend.                         
+GTK        Possibly   2.2 or      GTK is    Gnash      
`libgtk2.0-dev'`gtk-devel'`gtk+2'
+           Required   higher     the GIMP   requires              
+                                 Toolkit    the                   
+                                 GUI        installation           
+                                 library    of at                 
+                                 used by    least one             
+                                 the GNOME  GUI                   
+                                 desktop.   library.              
+                                 It uses    GTK is                
+                                 Cairo      considered            
+                                 internally.to be the             
+                                 Gtk        _best                 
+                                 enables    supported_            
+                                 better     GUI                   
+                                 integrationlibrary               
+                                 with       option                
+                                 Firefox,   for Gnash.            
+                                 as well                          
+                                 as better                        
+                                 event                            
+                                 handling                         
+                                 and                              
+                                 higher                           
+                                 level GUI                        
+                                 constructs                       
+                                 like                             
+                                 menus and                        
+                                 dialog                           
+                                 boxes.                           
+GtkGlExt   Possibly               GtkGlExt  This       
`libgtkglext1-dev'`gtkglext-devel'`gtkglext'
+           Required              integrates library               
+                                 OpenGL     is                    
+                                 into GTK.  required              
+                                            in order              
+                                            to use                
+                                            the GTK               
+                                            GUI                   
+                                            library               
+                                            in                    
+                                            conjunction           
+                                            with the              
+                                            OpenGL                
+                                            renderer.             
+SDL        Possibly               The       Gnash      
`libsdl1.2-dev'`SDL-devel'`SDL-1.2'
+           Required              Simple     requires              
+                                 DirectMediathe                   
+                                 Layer is   installation           
+                                 a          of at                 
+                                 cross-platformleast one             
+                                 multimedia GUI                   
+                                 library    library.              
+                                 which      SDL may               
+                                 provides   also be               
+                                 abstractionused as a             
+                                 for        sound                 
+                                 audio,     handler               
+                                 graphics,  regardless            
+                                 sound and  of                    
+                                 input      whether               
+                                 APIs.      it is                 
+                                 SDL is     employed              
+                                 available  as a GUI              
+                                 from       library.              
+                                 http://www.libsdl.orgThe GUI               
+                                 (http://www.libsdl.org).library               
+                                            is                    
+                                            _poorly               
+                                            supported_            
+                                            in Gnash,             
+                                            but the               
+                                            sound                 
+                                            handler               
+                                            is the                
+                                            _best                 
+                                            supported_            
+                                            in Gnash.             
+FLTK       Possibly   2.0 or      The Fast  Gnash      No         No
+           Required   higher     Light      requires   distributiondistribution
+                                 ToolKit    the        packages   packages
+                                 is a       installationare        are
+                                 portable   of at      available. available.No
+                                 GUI        least one             distribution
+                                 library    GUI                   packages
+                                 which is   library.              are
+                                 intended   FLTK may              available.
+                                 as a       be used               
+                                 replacementin                    
+                                 for the    conjunction           
+                                 SDL GUI.   with the              
+                                            Cairo and             
+                                            AGG                   
+                                            renderers.            
+KDE        Possibly               Kdelibs   Gnash      
`kdelibs3-dev,`kdelibs-devel,
+           Required              is a       requires   
kdebase-dev'kdebase-devel'`kdelibs,
+                                 collection the                   kdebase'
+                                 of         installation           
+                                 libraries  of at                 
+                                 needed to  least one             
+                                 compile    GUI                   
+                                 KDE        library.              
+                                 applications.Kdelibs               
+                                            is also               
+                                            required              
+                                            for the               
+                                            Kpart                 
+                                            plugin                
+                                            for                   
+                                            Konqueror.            
+Gstreamer  Optional               Gstreamer If you     
`libgstreamer0.8-dev'`gstreamer-devel'`gstreamer-0.10'
+                                 is a       would                 
+                                 video      like                  
+                                 handler.   video                 
+                                            playback,             
+                                            you must              
+                                            install               
+                                            one of                
+                                            the video             
+                                            handlers.             
+gst-ffmpeg Possibly               gst-ffmpegThis       
`gstreamer0.8-ffmpeg-dev'`gstreamer-ffmpeg-devel'`gstreamer-ffmpeg'
+           Required              allows     package               
+                                 you to     is                    
+                                 use the    required              
+                                 FFMPEG     if you                
+                                 decoder    would                 
+                                 with       like to               
+                                 Gstreamer. use                   
+                                            Gstreamer             
+                                            as a                  
+                                            video                 
+                                            handler.              
+FFMPEG     Possibly               FFMPEG    If you     
`ffmpeg-dev'`ffmpeg-devel'`ffmpeg'
+           Required              is a       would                 
+                                 video      like                  
+                                 handler.   video                 
+                                            playback,             
+                                            you must              
+                                            install               
+                                            one of                
+                                            the video             
+                                            handlers.             
+                                            When                  
+                                            using the             
+                                            gstreamer-ffmpeg           
+                                            plugin,               
+                                            ffmpeg                
+                                            doesn't               
+                                            need to be            
+                                            installed,            
+                                            as it's               
+                                            part of               
+                                            the                   
+                                            plugin.               
+                                            For                   
+                                            systems               
+                                            without               
+                                            Gstreamer             
+                                            support,              
+                                            ffmpeg                
+                                            can be                
+                                            used                  
+                                            directly.             
+JPEG       Optional              JPEG       This       
`libjpeg62-dev'`libjpeg'`jpeg'
+                                 (http://www.ijg.org/)library               
+                                 is a       is used               
+                                 lossy      for                   
+                                 image      rendering             
+                                 format     JPEGs.                
+                                 which is                         
+                                 heavily                          
+                                 used for                         
+                                 images.                          
+PNG        Optional              PNG        This       
`libpng12-dev'`libpng'`png'
+                                 (http://www.libpng.org/pub/png/)library       
        
+                                 is a       is used               
+                                 patent-freefor                   
+                                 image      rendering             
+                                 format     PNGs.                 
+                                 which is                         
+                                 comparable                       
+                                 to _GIF_.                        
+libcurl    Optional               libcurl   This       
`libcurl4-gnutls'`libcurl'`curl'
+                                 is the     library               
+                                 multiprotocalis used               
+                                 file       for URL               
+                                 transfer   downloading.           
+                                 library.                         
+Glib2      Optional               Glib2 is  This       
`glib2-dev'`glib2-devel'`glib2'
+                                 a          library               
+                                 dependency is used               
+                                 of Gtk,    for                   
+                                 and is a   convenience.           
+                                 collection                       
+                                 of                               
+                                 commonly                         
+                                 used                             
+                                 functions.                       
+Atk        Optional               Atk is a  This       `atk-dev'  
`atk-devel'`atk'
+                                 dependency library               
+                                 of Gtk,    is used               
+                                 and is     for                   
+                                 used for   accessiblity..           
+                                 accessibility                      
+                                 support.                         
+Pango      Optional               Pango is  This       
`pango-dev'`pango-devel'`pango'
+                                 a          library               
+                                 dependency is used               
+                                 of Gtk,    for font              
+                                 and is     handling.             
+                                 used for                         
+                                 font                             
+                                 handling.                        
+automake   Possibly   1.6.0       Automake  This       `automake' 
`automake'`automake'
+           Required              is a tool  package               
+                                 for        is                    
+                                 generating required              
+                                 _Makefile.in_to run                
+                                 files.     _autogen.sh_,           
+                                            which is              
+                                            a                     
+                                            requirement           
+                                            if you                
+                                            are using             
+                                            the                   
+                                            development           
+                                            source                
+                                            from CVS.             
+autoconf   Possibly   2.59        Autoconf  This       `autoconf' 
`autoconf'`autoconf'
+           Required              is a       package               
+                                 package    is                    
+                                 for        required              
+                                 generating to run                
+                                 configure  _autogen.sh_,           
+                                 scripts.   which is              
+                                            a                     
+                                            requirement           
+                                            if you                
+                                            are using             
+                                            the                   
+                                            development           
+                                            source                
+                                            from CVS.             
+gettext    Possibly   0.14.6      Gettext   This       `gettext'  
`gettext'`gettext'
+           Required              is part    package               
+                                 of the     is                    
+                                 GNU        required              
+                                 Translationto run                
+                                 Project.   _autogen.sh_,           
+                                            which is              
+                                            a                     
+                                            requirement           
+                                            if you                
+                                            are using             
+                                            the                   
+                                            development           
+                                            source                
+                                            from CVS.             
+libtool    Possibly   1.5.22      This is   This       
`libltdl3-dev'`libtool'`libtool'
+           Required              a generic  package               
+                                 library    is                    
+                                 support    required              
+                                 script.    to run                
+                                            _autogen.sh_,           
+                                            which is              
+                                            a                     
+                                            requirement           
+                                            if you                
+                                            are using             
+                                            the                   
+                                            development           
+                                            source                
+                                            from CVS.             
+
+
+File: gnash_ref.info,  Node: Testing Dependencies,  Next: Documentation 
Dependencies,  Prev: Code Dependencies,  Up: Building from Source
+
+2.4 Testing Dependencies
+========================
+
+Gnash tries to run as many tests as possible, but will simply skip
+tests if the tools to run them are unavailable.
+
+*Testing Dependency Table*
+
+Name       Level      Version    DescriptionExplanationapt-get    RPM/Yum
+                                                       package    packageBSD
+                                                                  package
+Ming       Optional   0.4.0_beta4 Ming is   Ming is    No         No
+                      or higher  an         the        distributiondistribution
+                                 ActionScriptprimary    packages   packages
+                                 compiler.  compiler   are        are
+                                            for        available. available.No
+                                            ActionScript           distribution
+                                            testcases.            packages
+                                                                  are
+                                                                  available.
+Mtasc      Optional   1.12 or     Mtasc is  Mtasc is   `mtasc'    No
+                      higher     an         used in               distribution
+                                 ActionScriptsome                  packages
+                                 compiler.  tests.                are
+                                                                  available.No
+                                                                  distribution
+                                                                  packages
+                                                                  are
+                                                                  available.
+swfc       Optional   part of     Swfc a    Swfc is    No         No
+                      swftools   swf        used in    distributiondistribution
+                      0.8.1      decompiler.some       packages   packages
+                                            testcases. are        are
+                                                       available. available.No
+                                                                  distribution
+                                                                  packages
+                                                                  are
+                                                                  available.
+swfmill    Optional   0.2.12      Swfmill   Swfmill    No         No
+                                 is an      is used    distributiondistribution
+                                 XML-based  in some    packages   packages
+                                 SWF        testcases. are        are
+                                 (Shockwave            available. available.No
+                                 Flash)                           distribution
+                                 processing                       packages
+                                 tool.                            are
+                                                                  available.
+Python     Optional   2.4 or      Python    Python is  `python'   
`python'`python'
+                      higher     is a       used by               
+                                 scripting  part of               
+                                 language.  the                   
+                                            testing               
+                                            framework.            
+DejaGnu    Optional   1.4 or      DejaGnu   DejaGnu    `dejagnu'  
`dejagnu'`dejagnu'
+                      higher     is a       is used               
+                                 testing    to run                
+                                 framework. multiple              
+                                            tests in              
+                                            an                    
+                                            automated             
+                                            fashion.              
+
+
+File: gnash_ref.info,  Node: Documentation Dependencies,  Next: Configuring 
Gnash,  Prev: Testing Dependencies,  Up: Building from Source
+
+2.5 Documentation Dependencies
+==============================
+
+The following packages are used to build Gnash's documentation.
+
+*Documentation Dependency Table*
+
+Name       Level      Version    DescriptionExplanationapt-get    RPM/Yum
+                                                       package    packageBSD
+                                                                  package
+Docbook    Required              Docbook    Gnash      
`docbook-utils'`docbook-dtd41-sgml'
+                                 
(http://http://docbook.sourceforge.net/)documentationand        and
+                                 is is an   is         
`docbook-dsssl'`docbook-style-dsssl'docbook
+                                 industry-standardwritten               
+                                 XML        in                    
+                                 format     Docbook.              
+                                 for                              
+                                 technical                        
+                                 documentation.                      
+                                 You can                          
+                                 download                         
+                                 it from                          
+                                 
http://sourceforge.net/project/showfiles.php?group_id=21935#files               
       
+                                 
(http://sourceforge.net/project/showfiles.php?group_id=21935#files).            
          
+DocBook2X  Optional               This      DocBook2X  
`docbook2x'`docbook2x'`docbook2x'
+                                 software   is                    
+                                 package    required              
+                                 converts   to                    
+                                 Docbook    produce               
+                                 documents  HTML and              
+                                 to the     Texinfo               
+                                 traditionalformats.              
+                                 man page                         
+                                 format,                          
+                                 GNU                              
+                                 Texinfo                          
+                                 format,                          
+                                 and HTML                         
+                                 (via                             
+                                 Texinfo)                         
+                                 format.                          
+                                 It is                            
+                                 available                        
+                                 at                               
+                                 http://docbook2x.sourceforge.net/             
         
+                                 (http://docbook2x.sourceforge.net/).          
            
+DocBook-utilsOptional               This      
DocBook-utils`docbook-utils'`docbook-utils'`docbook-utils'
+                                 software   is                    
+                                 package    required              
+                                 converts   to                    
+                                 Docbook    produce               
+                                 documents  HTML and              
+                                 to the     Texinfo               
+                                 traditionalformats.              
+                                 man page                         
+                                 format,                          
+                                 GNU                              
+                                 Texinfo                          
+                                 format,                          
+                                 and HTML                         
+                                 (via                             
+                                 Texinfo)                         
+                                 format.                          
+Texinfo    Possibly               Texinfo   Texinfo    `texinfo'  
`texinfo'`texinfo'
+           Required              can be     is                    
+                                 used to    required              
+                                 convert    if you                
+                                 DocBook2X  wish to               
+                                 output     product               
+                                 into GNU   GNU info              
+                                 info       pages.                
+                                 pages.                           
+                                 You can                          
+                                 download                         
+                                 it from                          
+                                 http://ftp.gnu.org/gnu/texinfo/               
       
+                                 (http://ftp.gnu.org/gnu/texinfo/).            
          
+FOP        Optional   0.20.5      FormattingFOP is     `fop'      `fop'`fop'
+                                 Objects    required              
+                                 Processor  for PDF               
+                                 is a       output.               
+                                 print                            
+                                 formatter                        
+                                 driven by                        
+                                 XSL                              
+                                 formatting                       
+                                 objects.                         
+                                 It is a                          
+                                 Java                             
+                                 application                      
+                                 which can                        
+                                 output                           
+                                 PDF, PCL,                        
+                                 PS, SVG,                         
+                                 XML,                             
+                                 Print,                           
+                                 AWT, MIF,                        
+                                 and Text.                        
+                                 It is                            
+                                 available                        
+                                 at                               
+                                 http://xmlgraphics.apache.org/fop/            
          
+                                 (http://xmlgraphics.apache.org/fop/).         
             
+Java       Possibly               FOP       Sun's      Download   Download
+(j2re)     Required              requires   Java       the        the
+                                 Sun's      runtime    package    package
+                                 Java       (j2re) is  from Sun   from Sun
+                                 runtime    required   
(http://java.sun.com).(http://java.sun.com).
+                                 (GCJ does  to use                
+                                 not work   FOP.                  
+                                 with                             
+                                 FOP).                            
+                                 You can                          
+                                 download                         
+                                 it from                          
+                                 http://java.sun.com                      
+                                 (http://java.sun.com).                      
+JAI        Possibly               Sun's     JAI is     Download   Download
+           Required              Java       required   the        the
+                                 Advanced   if you     package    package
+                                 Imaging    wish to    from Sun   from Sun
+                                 API can    include    
(http://java.sun.com/products/java-media/jai/iio.html).(http://java.sun.com/products/java-media/jai/iio.html).
+                                 be         graphics              
+                                 downloaded in a PDF              
+                                 from       file being            
+                                 
http://java.sun.com/products/java-media/jai/iio.htmlgenerated             
+                                 
(http://java.sun.com/products/java-media/jai/iio.html).with FOP.             
+
+   If you install j2re, set the _JAVA_HOME_ environment variable to the
+top directory of the j2re installation.  If you encounter problems with
+the Java installation, you may also need to add this path to the
+_CLASSPATH_ environment variable.
+
+
+File: gnash_ref.info,  Node: Configuring Gnash,  Prev: Documentation 
Dependencies,  Up: Building from Source
+
+2.6 Configuring Gnash
+=====================
+
+Gnash, like most GNU projects, allows a user to select various options
+before compiling its source code. These options include selecting from
+the available features, specifying custom paths for installation, and
+cross compiling support uses GNU Autoconf
+(http://www.gnu.org/software/autoconf/) for configuration.
+
+   If you opted to download the development snapshot of Gnash, the
+_configure_ script will not be included.  It can be created by running
+_autogen.sh_ from the source root directory:
+
+
+           ./autogen.sh
+
+Note that there are some dependencies (*note Code Dependencies::) for
+autogen.
+
+   All the standard `configure' options are available.  In addition,
+Gnash has two types of options: those that enable or disable features
+(*note Features::), and those that specify custom paths for development
+packages (*note Specifying Custom Paths::) which are not found during
+the default search.  A complete list of _all_ configuration options,
+including standard ones, can be seen by typing:
+
+
+           ./configure --help | less
+
+Read further for a more detailed explanation of Gnash-specific options.
+
+   The syntax for running _configure_ is as follows:
+
+
+           configure <options>
+
+The example below shows the `configure' options which create the
+smallest working standalone version of Gnash.  In this example,
+`configure' is being run from the source root directory:
+
+
+         ./configure --disable-debugger --disable-cygnal \
+         --disable-plugin --enable-media=ffmpeg --enable-gui=sdl
+
+   By default, you shouldn't need to supply any options to configure.
+The configure script will attempt to determine what to build based on
+the development libraries you have installed. The default configuration
+for Gnash is both GTK and KDE GUIs, the AGG renderer, and Gstreamer for
+multimedia support, with no extensions built.
+
+   Being highly portable, Gnash has many configuration options
+available, and not all are supposed to work together. A common mistake
+when configuring Gnash is to supply too many options, overdriving
+Gnash's ability to do the right thing.
+
+* Menu:
+
+* Features::
+* Specifying Custom Paths::
+
+
+File: gnash_ref.info,  Node: Features,  Next: Specifying Custom Paths,  Up: 
Configuring Gnash
+
+2.6.1 Features
+--------------
+
+Some switches can be used during configuration to enable or disable
+features of Gnash. Some of the most important configuration options are:
+
+   * `--enable-gui' lets you specify your GUI of choice.  The default
+     option is GTK.
+
+   * `--enable-renderer' allows a renderer to be chosen.  The default
+     renderer is AGG.
+
+   * `--enable-media' permits a media handler to be selected.  The
+     default is Gstreamer.
+
+   A complete list of available features follows.
+
+*Configuration Options - Features*
+
+Option                               Function
+`--enable-debugger'                  Enable support for the Flash
+                                     debugger. The debugger is mainly of
+                                     interest to Flash developers, and
+                                     is still under development.
+`--enable-lirc'                       Enable support for the LIRC remote
+                                     control protocol.
+`--enable-cygnal'                     Build the Cygnal streaming media
+                                     server.
+`--disable-menus'                     Disable building all the menus for
+                                     the GUI. THis is used by mobile
+                                     devices without as much screen
+                                     space.
+`--enable-docbook'                   Enable the generation of HTML,
+                                     INFO, and MAN versions of the
+                                     documentation from the Docbook XML.
+                                     You will then be able to use `make
+                                     html', `make info', and `make man'
+                                     commands. By default, man,info and
+                                     html pages are generated.
+`--enable-gui=gtk|sdl|kde|fltk|fb|hildon|alp'Select the Graphic User Interface
+                                     to use (choose one).?
+                                     [undisplayable block object]
+`--enable-i810-lod-bias'             Enable fix for Intel 810 LOD bias
+                                     problem. Older versions of libMesa
+                                     on the Intel i810 or i815 graphics
+                                     processor need this flag or Gnash
+                                     will core dump. This has been fixed
+                                     in newer versions (summer 2005) of
+                                     libMesa.
+`--enable-media=ffmpeg|gst|none'      Select the specified media decoder
+                                     and sound engine.  FFMPEG uses the
+                                     SDL sound engine; GST uses its own.
+                                     `GST' is the default decoder.  ?
+                                     [undisplayable block object] You
+                                     should only select one media
+                                     decoder.
+`--disable-nsapi'`--enable-nsapi'    Force disable/enable building the
+                                     NPAPI plugin.  By default the
+                                     Mozilla plugin is built if the GTK
+                                     gui is selected.  Specify the
+                                     `--with-npapi-plugindir=' option to
+                                     specify where the plugin should be
+                                     installed.
+`--disable-kparts'`--enable-kparts'  Force disable/enable building the
+                                     KPARTS plugin. By default the KDE
+                                     plugin is built if the kde gui is
+                                     selected.  Specify the
+                                     `--with-kde-plugindir=' and
+                                     `--with-kde-servicesdir=' options
+                                     (or more generally the
+                                     `--with-kde-pluginprefix=' one) to
+                                     specify where the plugin should be
+                                     installed. The default installation
+                                     dir is extracted from kde-config.
+`--disable-plugins'                  Disable build of both kparts and
+                                     npapi plugins
+`--enable-renderer=opengl|cairo|agg' Enable support for the a graphics
+                                     backend. Currently only `opengl' and
+                                     `agg' work sufficiently. OpenGL is
+                                     used when you have hardware
+                                     accelerated graphics. AGG i used
+                                     when you do not have hardware
+                                     accelerated graphics. Typically
+                                     most desktop machines have OpenGL
+                                     support, and most embedded systems
+                                     do not. OpenGl is the default when
+                                     building Gnash, although the
+                                     quality of AGG's rendering is
+                                     currently superior to OpenGL.
+`--enable-sdk-install'               Enable installing the libraries and
+                                     headers as an SDK.
+`--disable-shared'                   Enable installing the shared
+                                     libraries and headers.  Note that
+                                     the extensions mechanism may not
+                                     work if shared libraries are
+                                     disabled.
+`--enable-strict'                    Turn verbose GCC compiler warnings.
+                                     By default only `-Wall' is used
+                                     with GCC.
+`--enable-fps-debug'                 Enable FPS debugging code. When
+                                     this feature is compiled in you can
+                                     use the -f switch of Gnash to have
+                                     FPS printed at regular intervals.
+`--enable-write'                     Makes the Mozilla plugin write the
+                                     currently playing SWF movie to
+                                     `/tmp'.
+`--disable-mit-shm'                  Disable support for the MIT-SHM X
+                                     extensions.  Currently support is
+                                     only available using GTK gui and
+                                     AGG renderer.  Keeping it enabled
+                                     is not a problem as it will not be
+                                     used if not available in the
+                                     current X session.
+
+
+File: gnash_ref.info,  Node: Specifying Custom Paths,  Prev: Features,  Up: 
Configuring Gnash
+
+2.6.2 Specifying Custom Paths
+-----------------------------
+
+By default, none of these options should be required unless you want
+Gnash to use a specific version of a development package, or if the
+configure test fails to find a component.  Please report the problem
+(*note Reporting Bugs::) if a configure test fails.
+
+   The following custom path options are available:
+
+*Custom Path Options*
+
+Option                               Function
+`--x-includes=DIR'                    X include files are in DIR.
+`--x-libraries=DIR'                   X library files are in DIR.
+`--with-libxml=PFX'                   Prefix to where libxml is
+                                     installed.
+`--with-libxml-libraries=DIR'         Directory where libxml library is
+                                     installed.
+`--with-libxml-includes=DIR'          Directory where libxml header
+                                     files are installed.
+`--with-docbook=DIR'                  Directory where the DocBook
+                                     style-sheets are installed.
+`--with-sdl-prefix=PFX'               Prefix where SDL is installed.
+`--with-zlib-incl'                    Directory where zlib header is
+                                     installed.
+`--with-zlib-lib'                     Directory where zlib library is
+                                     installed.
+`--with-jpeg-incl'                    Directory where jpeg header is
+                                     installed.
+`--with-jpeg-lib'                     Directory where jpeg library is
+                                     installed.
+`--with-png-incl'                     Directory where png header is
+                                     installed.
+`--with-png-lib'                      Directory where png library is
+                                     installed.
+`--with-qt-dir'                       Directory where QT is installed.
+                                     This is only used by the Klash
+                                     plugin.
+`--with-qt-includes'                  Directory where the QT header
+                                     files are installed. This is only
+                                     used by the Klash plugin.
+`--with-qt-libraries'                 Directory where the QT libraries
+                                     are installed. This is only used by
+                                     the Klash plugin.
+`--with-npapi-plugindir'              This is the directory to install
+                                     the NPAPI (Mozilla) plugin in.  By
+                                     default it goes to
+                                     ~/.mozilla/plugins.
+`--with-kde-pluginprefix'             This option sets the default
+                                     install dir for all KPARTS (kde)
+                                     files.  The plugin will be
+                                     installed in PREFIX/lib/kde3, use
+                                     `-with-kde-plugindir' to override.
+                                     The service file in
+                                     PREFIX/share/services, use
+                                     `--with-kde-servicesdir' to
+                                     override. The config file in
+                                     PREFIX/share/config, use
+                                     `--with-kde-configdir' to override.
+                                     The appdata file in
+                                     PREFIX/share/apps/klash, use
+                                     `--with-kde-appsdatadir' to
+                                     override.
+`--with-kde-plugindir'                This is the directory to install
+                                     the KPARTS (kde) plugin in.  By
+                                     default it is what's set by
+                                     -with-kde-pluginprefix or what's
+                                     returned by kde-config -install
+                                     module -expandvars, or
+                                     $(prefix)/share/services if
+                                     kde-config is not found.
+`--with-kde-servicesdir'              This is the directory to install
+                                     the KPARTS (kde) service in.  By
+                                     default it is what's set by
+                                     -with-kde-pluginprefix or what's
+                                     returned by kde-config -install
+                                     services -expandvars, or
+                                     $(libdir)/kde3 if kde-config is not
+                                     found.
+`--with-kde-configdir'                This is the directory to install
+                                     the KPARTS (kde) config files in.
+                                     By default it is what's set by
+                                     -with-kde-pluginprefix or what's
+                                     returned by kde-config -install
+                                     config -expandvars, or
+                                     $(prefix)/share/config if
+                                     kde-config is not found.
+`--with-kde-appsdatadir'              This is the directory to install
+                                     the KPARTS (kde) application data
+                                     files in.  By default it is what's
+                                     set by -with-kde-pluginprefix or
+                                     what's returned by kde-config
+                                     -install data -expandvars, or
+                                     $(prefix)/share/apps if kde-config
+                                     is not found.
+`--with-ming'                         Ming is used to build test cases,
+                                     but not by the Gnash player itself.
+`--with-ogg_incl'                     Directory where the libogg headers
+                                     are installed.
+`--with-ogg_lib'                      Directory where the libogg library
+                                     is installed.
+`--with-gstreamer-incl'               Directory where the Gstreamer
+                                     headers are installed. Gstreamer
+                                     version 0.10 or greater must be
+                                     used.
+`--with-gstreamer-lib'                Directory where the Gstreamer
+                                     library is installed. Gstreamer
+                                     version 0.10 or greater must be
+                                     used.
+`--with-opengl-includes'              Directory where OpenGL (libMesa)
+                                     headers are installed.
+`--with-opengl-lib'                   Directory where the OpenGL
+                                     (libMesa) library is installed.
+`--with-glext-incl'                   Directory where GtkGlExt headers
+                                     are installed.
+`--with-glext-lib'                    Directory where the GtkGlExt
+                                     library is installed.
+`--with-gtk2-incl'                    Directory where the Gtk2 headers
+                                     are installed.
+`--with-gtk2-lib'                     Directory where the Gtk2 library
+                                     is installed.
+`--with-cairo_incl'                   Directory where the Cairo headers
+                                     are installed.
+`--with-cairo-lib'                    Directory where the Cairo library
+                                     is installed.
+`--with-glib-incl'                    Directory where the Glib headers
+                                     are installed.
+`--with-glib-lib'                     Directory where the Glib library
+                                     is installed.
+`--with-pango-incl'                   Directory where the Pango headers
+                                     are installed.
+`--with-pango-lib'                    Directory where the Pango library
+                                     is installed.
+`--with-atk-incl'                     Directory where the ATK headers
+                                     are installed.
+`--with-atk-lib'                      Directory where the ATK library is
+                                     installed.
+`--with-pthread-incl'                 Directory where the Pthread
+                                     headers are installed.
+`--with-pthread-lib'                  Directory where the Pthread
+                                     library is installed.
+`--with-agg-incl'                     Directory where the AGG
+                                     (Antigrain) headers are installed.
+`--with-agg-lib'                      Directory where the AGG
+                                     (Antigrain) library is installed.
+`--with-ffmpeg-incl'                  Directory where the FFMPEG headers
+                                     are installed.
+`--with-ffmpeg-lib'                   Directory where the FFMPEG library
+                                     is installed.
+`--with-boost-incl'                   Directory where the Boost headers
+                                     are installed.
+`--with-boost-lib'                    Directory where the Boost library
+                                     is installed.
+`--with-curl-incl'                    Directory where the libCurl
+                                     headers are installed.
+`--with-curl-lib'                     Directory where the libCurl
+                                     library is installed.
+
+   Once you have Gnash configured, you are ready to build the code.
+Gnash is built using _GNU make_.
+
+* Menu:
+
+* Overview::
+* Getting The Source::
+* Code Dependencies::
+* Testing Dependencies::
+* Documentation Dependencies::
+* Configuring Gnash::
+* Compiling the Code::
+* Creating the Documentation::
+* Running the Tests::
+
+
+File: gnash_ref.info,  Node: Compiling the Code,  Next: Creating the 
Documentation,  Up: Building from Source
+
+2.7 Compiling the Code
+======================
+
+The most basic way to compile code is simply:
+
+
+       make
+
+If the compilation ends with an error, check the output of _configure_
+and ensure that you are not missing any required prerequisites.  The
+output of `make' can be verbose; you may wish to pipe the output to a
+file.
+
+   The variables used by `make' can be redefined when the program is
+invoked, if you desire it.   The most interesting flags are _CFLAGS_
+and _CXXFLAGS_, which are often used to enable debugging or turn of
+optimization.  The default value for both of these variables is _-O2
+-g_.  A list of influential environment variables can be seen in the
+configuration help:
+
+     ./configure --help
+
+   In the following example, debugging is enabled and optimization is
+disabled:
+
+     make CFLAGS=-g CXXFLAGS=-g
+
+
+File: gnash_ref.info,  Node: Creating the Documentation,  Next: Running the 
Tests,  Prev: Compiling the Code,  Up: Building from Source
+
+2.8 Creating the Documentation
+==============================
+
+By default, documentation is not built when you install (*note
+Installation::) Gnash.  This is because there are a number of
+dependencies for the documentation (*note Documentation
+Dependencies::).  Documentation is built when it is specified with a
+specific target in the generated `Makefile' in the `doc/C'
+sub-directory.  If you type `make install' in this directory, all
+documents will be built.
+
+   You must specify a target output format when you wish to create
+documentation.  The available output formats are: `html', `pdf', `info',
+`man', and `alldocs'.  It is also possible to output `GNOME help' if
+the configure option (*note Features::) `--enable-ghelp' was used.  The
+`alldocs' target will build all output formats except _GNOME help_.
+For example, to create HTML output, type:
+
+
+       make html
+
+   Gnash also uses Doxygen
+(http://www.stack.nl/~dimitri/doxygen/index.html) to produce _HTML_
+documentation of Gnash internals.  You must have Doxygen installed to
+produce this documentation, which is built from the `doc' directory
+with the command (documents will be placed in the subdirectory
+`apidoc/html'):
+
+
+       make apidoc
+
+
+File: gnash_ref.info,  Node: Running the Tests,  Prev: Creating the 
Documentation,  Up: Building from Source
+
+2.9 Running the Tests
+=====================
+
+Before beginning the potentially lengthy install, it is wise to test
+the installation.  If a test fails, please report it by following the
+instructions for reporting a bug (*note Reporting Bugs::).
+
+* Menu:
+
+* Using DejaGnu::
+* Running The Tests Manually::
+* Installation::
+* Cross Configuring::
+
+
+File: gnash_ref.info,  Node: Using DejaGnu,  Next: Running The Tests Manually, 
 Up: Running the Tests
+
+2.9.1 Using DejaGnu
+-------------------
+
+The easiest way to run Gnash's test suite is to install _DejaGnu
+(http://www.gnu.org/software/dejagnu)_.  After installing DejaGnu, run:
+
+
+         make check
+
+* Menu:
+
+* Increasing Verbosity::
+* Running Some Tests::
+
+
+File: gnash_ref.info,  Node: Increasing Verbosity,  Next: Running Some Tests,  
Up: Using DejaGnu
+
+2.9.1.1 Increasing Verbosity
+............................
+
+If you encounter a problem with a test, increasing the verbosity may
+make the issue easier to spot.  Additional details are visible when
+_RUNTESTFLAGS_ are used to add the _verbose_ and _all_ options.  The
+`verbose' option prints more information about the testing process,
+while the `all' option includes details on passing tests.
+
+
+           make check RUNTESTFLAGS="-v -a"
+
+
+File: gnash_ref.info,  Node: Running Some Tests,  Prev: Increasing Verbosity,  
Up: Using DejaGnu
+
+2.9.1.2 Running Some Tests
+..........................
+
+It is possible to run just a single test, or a subdirectory of tests,
+by specifying the directory or compiled test file.
+
+   Some tests rely on _testsuite/Dejagnu.swf_, which in turn relies on
+_Ming_.  This file is created when you run `make check' for the entire
+testsuite, and can also be created on demand:
+
+
+           make -C testsuite Dejagnu.swf
+
+   In this example, the `clip_as_button2' test is compiled and run:
+
+
+           make -C testsuite/samples clip_as_button2-TestRunner
+           cd testsuite/samples && ./clip_as_button2-TestRunner
+
+This creates and runs all the tests in the directory `movies.all':
+
+
+           make -C testsuite/movies.all check
+
+
+File: gnash_ref.info,  Node: Running The Tests Manually,  Next: Installation,  
Prev: Using DejaGnu,  Up: Running the Tests
+
+2.9.2 Running The Tests Manually
+--------------------------------
+
+You may also run test cases by hand, which can be useful if you want to
+see all the debugging output from the test case.  Often the messages
+which come from deep within Gnash are most useful for development.
+
+   The first step is to compile the test case, which can be done with
+`make XML-v#.swf' where the '#' is replaced with the _target_ SWF
+version or versions.  For example:
+
+
+         make XML-v{5,6,7,8}.swf
+
+* Menu:
+
+* Movie tests::
+* ActionScript Unit Tests::
+
+
+File: gnash_ref.info,  Node: Movie tests,  Next: ActionScript Unit Tests,  Up: 
Running The Tests Manually
+
+2.9.2.1 Movie tests
+...................
+
+This creates a Flash movie version of the test case, which can be run
+with a standalone Flash player.  For instance, the target for SWF
+version 6 could be run with Gnash:
+
+
+           gnash -v XML-v6.swf
+
+
+File: gnash_ref.info,  Node: ActionScript Unit Tests,  Prev: Movie tests,  Up: 
Running The Tests Manually
+
+2.9.2.2 ActionScript Unit Tests
+...............................
+
+Unit tests for ActionScript classes in `testsuite/actionscript.all' are
+run without a graphical display:
+
+
+           gprocessor -v XML-v6.swf
+
+
+File: gnash_ref.info,  Node: Installation,  Next: Cross Configuring,  Prev: 
Running The Tests Manually,  Up: Running the Tests
+
+2.9.3 Installation
+------------------
+
+Now that Gnash has been compiled and tested, use the following command
+to install it:
+
+
+           make install
+
+The above command installs the standalone player.  If the correct files
+were found by `configure' and if the `--disable-plugin' option was not
+specified, the Gnash browser plugin is also installed.
+
+   Gnash installs a number of libraries (*note Libraries::), namely:
+_libgnashbase_, _libgnashamf_, _libgnashmedia_, _libserver_, and
+_libgnashplugin_.  Executables (*note Executables::) consist of the
+(optional) plugin, `gprocessor', `cygnal',  `dumpshm', `soldumper', and
+`gnash'.  Documentation (*note Documentation::) may also be installed.
+The installation location is controlled with the _-prefix_ configure
+option (*note Specifying Custom Paths::), except for plugins, which are
+explicitly set with _-plugin-dir_.
+
+   Note that if you are using a single file-system _NFS_ mounted to
+multiple platforms, the configuration option (*note Specifying Custom
+Paths::) _-exec-prefix_ may be used to specify where platform-dependent
+executables and libraries are installed.
+
+* Menu:
+
+* Libraries::
+* Executables::
+* Documentation::
+
+
+File: gnash_ref.info,  Node: Libraries,  Next: Executables,  Up: Installation
+
+2.9.3.1 Libraries
+.................
+
+Installed libraries are located in `/usr/local/lib' by default.  If the
+_-prefix_ option was used during the configuration step, the libraries
+will be installed in the directory `lib' inside the path you specified.
+If the libraries are stored in a non-standard location, you must
+identify the path in one of two ways.
+
+   The traditional way to do this on UNIX platforms is to set the
+_LD_LIBRARY_PATH_ variable to the path plus `/lib'.  For example, if you
+installed in `/home/gnash', the _LD_LIBRARY_PATH_ path would be
+`/home/gnash/lib'.  Multiple paths are delimited with a colon (':').
+
+   GNU/Linux allows the custom path to be added to `/etc/ld.so.conf'.
+After adding the path, run _ldconfig_ as root to update the runtime
+cache.
+
+
+File: gnash_ref.info,  Node: Executables,  Next: Documentation,  Prev: 
Libraries,  Up: Installation
+
+2.9.3.2 Executables
+...................
+
+The Mozilla plugin is built from headers (the Mozilla SDK) provided
+with Gnash and does not need extra development packages to be
+installed. By default, the plugin is installed to
+`~/.mozilla/plugins/'. To enable the plugin for other users, copy the
+file `libgnashplugin.so' to `.mozilla/plugins/' in their home directory.
+You may also specify the plugin installation directory by using the
+`--with-plugindir' option at configuration time (*note Specifying
+Custom Paths::).
+
+   These defaults are likely to change in future versions of Gnash.
+
+   The remaining executables are installed in the `bin' subdirectory of
+the directory specified by during configuration.  If no path was
+specified, the default is `/usr/local/bin'.
+
+
+File: gnash_ref.info,  Node: Documentation,  Prev: Executables,  Up: 
Installation
+
+2.9.3.3 Documentation
+.....................
+
+Documentation is not built by default; please refer to the section on
+documentation (*note Creating the Documentation::) for more information
+on building documentation.
+
+   `man' and `info' are installed in `/usr/local/share/man' and
+`/usr/local/share/info' respectively, unless the `--mandir' or
+`--infodir' configuration options (*note Specifying Custom Paths::) are
+used.
+
+   _GNOME help_ documentation uses the directory
+`/usr/local/share/gnash/doc/gnash/C/' by default.  A configuration file
+in the Gnash source tree, `doc/C/gnash.omf' is used to specify under
+which menu item Gnash appears in the _GNOME help_ system.
+
+
+File: gnash_ref.info,  Node: Cross Configuring,  Prev: Installation,  Up: 
Running the Tests
+
+2.9.4 Cross Configuring
+-----------------------
+
+To cross configure and compile Gnash, begin by building a target system
+on your workstation.  This includes cross compilers for the target
+architecture, and some system headers.  You will also need to cross
+compile all the dependencies (*note Documentation Dependencies::)
+normally needed to build Gnash. This can on occasion be a daunting
+process, as not all libraries will cross configure and cross compile.
+There is more information about cross compiling all the dependant
+packages on the http://www.gnashdev.org (http://www.gnashdev.org) web
+site.
+
+   If you need to build your own tool chain, that is beyond the scope
+of this manual. There are various resources on the web for howto's on
+building GCC based cross toolchains. Two popular sites are
+http://frank.harvard.edu/~coldwell/toolchain/
+(http://frank.harvard.edu/~coldwell/toolchain/) and
+http://www.kegel.com/crosstool/ (http://www.kegel.com/crosstool/). This
+can also be a very time consuming and frustrating process, even for
+experienced developers.
+
+   Because the process of building your own cross tool chain can be
+harder than one may wish, there are several other cross development
+environments that simulate a native environment to make it easier to
+develop. These also let you develop for both native and cross builds.
+Several popular ones are Access Linux Platform
+(http://www.access-company.com/products/linux/alp.html), Scratchbox
+(http://www.scratchbox.org/), Open Embedded
+(http://www.openembedded.org/), Maemo (http://maemo.org/).
+
+   To build for an ARM based system on an x86 based systems, configure
+like this using the traditional style cross toolchain, configure like
+this:
+
+
+         ../../gnash/configure --build=i686-pc-linux-gnu
+         --host=arm-linux --prefix=/usr/local/arm/oe --disable-nsapi
+         --disable-kparts --enable-gui=fb --enable-renderer=agg
+         --disable-shared --disable-menus
+
+   The important configuration options are the ones which specify the
+architecture for the build:
+
+-target
+     The target architecture, where the final executables are expected
+     to run.
+
+-host
+     The host architecture, where the executables are expected to run.
+     Usually this is the same as the _-target_, except when building a
+     compiler as a Canadian Cross.  In this case, you might build a
+     cross compiler on a UNIX system which runs on a win32 machine,
+     producing code for a third architecture, such as ARM.  In this
+     example, _-target_ would be 'arm-unknown-linux-gnu', while _-host_
+     would be 'win32'.
+
+-build
+     This is the system the build is running on.
+
+   The following example of _configure_ builds for an ARM system on an
+x86 system.  It was run after an ARM system was built in `/usr/arm' and
+other required libraries were cross compiled.
+
+
+           ./configure -target=arm-unknown-linux-gnu --prefix=/usr/arm \
+           --host=arm-unknown-linux-gnu --build=i686-pc-linux-gnu 
--disable-plugin
+
+
+File: gnash_ref.info,  Node: Software Internals,  Next: Reporting Bugs,  Prev: 
Building from Source,  Up: Top
+
+3 Software Internals
+********************
+
+* Menu:
+
+* A Tour of Gnash::
+* Sound handling in Gnash::
+* Testing : Testing.
+* Adding New ActionScript Class::
+
+
+File: gnash_ref.info,  Node: A Tour of Gnash,  Next: Sound handling in Gnash,  
Up: Software Internals
+
+3.1 A Tour of Gnash
+===================
+
+The top level of Gnash has several libraries, _libgnashbase_,
+_libgnashserver_, _libgnashasobjs_ and _libgnashbackend_. There are
+several utility programs included for debug parsing and processing of
+Flash movie files, and other useful utilities for examining local
+Shared Objects and sniffing LocalConnections.
+
+* Menu:
+
+* The Libraries::
+* The Applications::
+* The Plugin::
+* The Debug Logging System::
+
+
+File: gnash_ref.info,  Node: The Libraries,  Next: The Applications,  Up: A 
Tour of Gnash
+
+3.1.1 The Libraries
+-------------------
+
+* Menu:
+
+* libgnashbase::
+* libgnashgui::
+* libgnashserver::
+* libgnashasobjs::
+* libgnashamf::
+* libgnashbackend::
+* libgnashplugin::
+* libklashpart::
+
+
+File: gnash_ref.info,  Node: libgnashbase,  Next: libgnashgui,  Up: The 
Libraries
+
+3.1.1.1 libgnashbase
+....................
+
+Libgnashbase contains support classes used by the rest of the code.This
+library has no dependencies on any of the other Gnash libraries.
+
+   Gnash makes heavy use of smart pointers, so memory allocations are
+freed up automatically by the interpreter. Both STL and Boost smart
+pointers are used.
+
+
+File: gnash_ref.info,  Node: libgnashgui,  Next: libgnashserver,  Prev: 
libgnashbase,  Up: The Libraries
+
+3.1.1.2 libgnashgui
+...................
+
+Libgnashgui contains code for a portable GUI class that supports using
+GTK2, a framebuffer, SDL, or KDE, FLTK, or Aqua.
+
+
+File: gnash_ref.info,  Node: libgnashserver,  Next: libgnashasobjs,  Prev: 
libgnashgui,  Up: The Libraries
+
+3.1.1.3 libgnashserver
+......................
+
+Libgnashserver is the guts of the interpreter itself. This is where the
+main code for the interpreter lives. Includes in libserver are the two
+support libraries for the parser and the core of the virtual machine.
+
+
+File: gnash_ref.info,  Node: libgnashasobjs,  Next: libgnashamf,  Prev: 
libgnashserver,  Up: The Libraries
+
+3.1.1.4 libgnashasobjs
+......................
+
+Libgnashasobjs contains all the ActionScript classes used by the
+interpreter.
+
+
+File: gnash_ref.info,  Node: libgnashamf,  Next: libgnashbackend,  Prev: 
libgnashasobjs,  Up: The Libraries
+
+3.1.1.5 libgnashamf
+...................
+
+AMF is the data format used internally by SWF files. This is Gnash's
+support library to handle AMF data. This is used by the ActionScript
+classes SharedObject and LocalConnection. This is also used by the
+NetStream class when using thre RTMP streaming network protocol.
+
+
+File: gnash_ref.info,  Node: libgnashbackend,  Next: libgnashplugin,  Prev: 
libgnashamf,  Up: The Libraries
+
+3.1.1.6 libgnashbackend
+.......................
+
+Libgnashbackend is a library containing the rendering code that glues
+this display to the Gnash. Supported rendering backends are OpenGL,
+Cairo, and AGG.
+
+
+File: gnash_ref.info,  Node: libgnashplugin,  Next: libklashpart,  Prev: 
libgnashbackend,  Up: The Libraries
+
+3.1.1.7 libgnashplugin
+......................
+
+Libgnashplugin is the Mozilla/Firefox plugin.
+
+
+File: gnash_ref.info,  Node: libklashpart,  Prev: libgnashplugin,  Up: The 
Libraries
+
+3.1.1.8 libklashpart
+....................
+
+Libklashpart is the Konqueror plugin.
+
+
+File: gnash_ref.info,  Node: The Applications,  Next: The Plugin,  Prev: The 
Libraries,  Up: A Tour of Gnash
+
+3.1.2 The Applications
+----------------------
+
+There are currently a few standalone programs in Gnash, which serve
+either to assist with Gnash development or to play flash movies.
+
+* Menu:
+
+* The Standalone Player::
+* Gprocessor::
+* SOLdumper::
+* Dumpshm::
+
+
+File: gnash_ref.info,  Node: The Standalone Player,  Next: Gprocessor,  Up: 
The Applications
+
+3.1.2.1 The Standalone Player
+.............................
+
+This is the standalone OpenGL backend used to play movies. There are
+several command line options and keyboard control keys used by Gnash.
+
+
+File: gnash_ref.info,  Node: Gprocessor,  Next: SOLdumper,  Prev: The 
Standalone Player,  Up: The Applications
+
+3.1.2.2 Gprocessor
+..................
+
+Gprocessor is used to print out the actions (using the -va option) or
+the parsing (using the -vp option) of a flash movie. It is also used to
+produce the _.gsc_ files that Gnash uses to cache data, thereby
+speeding up the loading of files.
+
+
+File: gnash_ref.info,  Node: SOLdumper,  Next: Dumpshm,  Prev: Gprocessor,  
Up: The Applications
+
+3.1.2.3 SOLdumper
+.................
+
+SOLDumper is a utility program used to find and dump the content of
+_Local Shared Objects_, also called "Flash Cookies" by some.
+
+
+File: gnash_ref.info,  Node: Dumpshm,  Prev: SOLdumper,  Up: The Applications
+
+3.1.2.4 Dumpshm
+...............
+
+Dumpshm is a program used to find and dump the contents of the
+_LocalConnection_ shared memory segment.
+
+
+File: gnash_ref.info,  Node: The Plugin,  Next: The Debug Logging System,  
Prev: The Applications,  Up: A Tour of Gnash
+
+3.1.3 The Plugin
+----------------
+
+The plugin is designed to work within Mozilla or Firefox, although
+there is Konqueror support as well. The plugin uses the Mozilla NPAPI
+plugin API to be cross platform, and is portable, as well as being well
+integrated into Mozilla based browsers.
+
+* Menu:
+
+* Current Status::
+* GUI Support::
+* Mozplugger::
+* Klash::
+
+
+File: gnash_ref.info,  Node: Current Status,  Next: GUI Support,  Up: The 
Plugin
+
+3.1.3.1 Current Status
+......................
+
+As of March 30, 2006, the plugin works! This works in a fashion similar
+to MozPlugger in that the standalone player is used instead of using a
+thread. This gets around the issue of having to maintain a separate
+player to support the plugin. It also gets around the other issues that
+Gnash itself is not thread safe at this time.
+
+   As of Jan, 2007, streaming video, ala "YouTube" works, along with
+other video sharing sites.
+
+
+File: gnash_ref.info,  Node: GUI Support,  Next: Mozplugger,  Prev: Current 
Status,  Up: The Plugin
+
+3.1.3.2 GUI Support
+...................
+
+Any plugin that wants to display in a browser window needs to be tied
+into the windowing system of the platform being used. On GNU/Linux
+systems, Firefox is a GTK2+ application.  There is also KDE support
+through the use of the Klash plugin.
+
+   Gnash can use either several different GUI toolkits to create the
+window, and to handle events for the standalone player.
+
+   The SDL version is more limited, but runs on all platforms,
+including win32. It has no support for event handling, which means
+mouse clicks, keyboard presses, and window resizing doesn't work. I
+personally find the default event handler slow and unresponsive. Gnash
+has support to use fast events, (currently not enabled) which is an SDL
+hack using a background thread to pump events into the SDL event queue
+at a much higher rate.
+
+   There are a variety of development libraries that build a GUI widget
+system on top of SDL and OpenGL. The use of these to add menus and
+dialog boxes to the SDL version is being considered.
+
+   The GTK support is currently the most functional, and the best
+integrated into Firefox. The performance of this version is better than
+the SDL version because of the more efficient event handling within
+GTK. For the best end user experience, use the GTK enabled version.
+
+   GTK also allows Gnash to have menus and dialog boxes. Currently this
+is only being utilized in a limited fashion for now. There is a right
+mouse button menu that allows the user to control the movie being
+player the same way the existing keyboard commands do.
+
+
+File: gnash_ref.info,  Node: Mozplugger,  Next: Klash,  Prev: GUI Support,  
Up: The Plugin
+
+3.1.3.3 Mozplugger
+..................
+
+Mozplugger (http://mozplugger.mozdev.org/) is a _Mozilla/Firefox_
+plugin that uses external programs to play video, audio, and other
+multimedia content in the browser. With some support added to the
+external application, it's possible to force the external program to
+use the internal window in the browser where this plugin is supposed to
+display. This enables one to then run the standalone player and display
+its output in the browser.
+
+   While this is not an optimal solution, it does enable one to use
+Gnash as the flash player when browsing. The main issue appears to be
+that the Flash movie being played doesn't get any mouse or keyboard
+input. That may be a mozplugger configuration issue, however.
+
+   Use of MozPlugger is obsolete now that the Gnash plugin works.
+Still, this may be useful still on some platforms.
+
+   Add this to your _$(HOME)/.mozilla/mozpluggerrc_ file to enable this:
+
+
+           application/x-shockwave-flash:swf:Shockwave Gnash
+             nokill embed noisy ignore_errors hidden fill swallow(Gnash) loop: 
gnash -v "$file" -x $window
+             : gnash -v "$file" -x $window
+
+   Once this is added, you must delete the
+_$(HOME)/.mozilla/firefox/pluginreg.dat_ file to force Firefox to
+register the plugins again. This is an ASCII text file, so if the patch
+has been added correctly, you'll see an entry for _swf_ files after it
+is recreated. You will need to restart Firefox to recreate this file.
+
+   This file is not recreated immediately when restarting Firefox, but
+waits till the first time a plugin is used. You can force creation of
+this file by typing _about:plugins_ into the URL entry of the browser
+window. The output will also contain information about the mozplugger.
+You should see an entry for Gnash now.
+
+
+File: gnash_ref.info,  Node: Klash,  Prev: Mozplugger,  Up: The Plugin
+
+3.1.3.4 Klash
+.............
+
+Klash is MozPlugger type support for KDE's Konqueror web browser. Klash
+makes Gnash a _kpart_, so it's integrated into KDE better than when
+using MozPlugger. Klash uses the standalone player, utilizing Gnash's
+"-x" window plugin command line option.
+
+   By default, Klash is not built. To enable building Klash, use the
+_-enable-klash_ option when configuring. Other than installing, there
+is nothing else that needs to be done to install Klash.
+
+
+File: gnash_ref.info,  Node: The Debug Logging System,  Prev: The Plugin,  Up: 
A Tour of Gnash
+
+3.1.4 The Debug Logging System
+------------------------------
+
+Gnash supports a debug logging system which supports both C and C++
+natively. This means you can use both _printf()_ style debug messages
+and C++ _iostreams_ style, where you can print C++ objects directly as
+you would when using _cout_.
+
+   In the beginning, Gnash only supported the C API for debug logging,
+so it is the most heavily used in Gnash. This API was used in the
+_log_msg()_ and _log_error()_ functions, and used a callback to set
+them up.
+
+   If a filename is not specified at object construction time, a
+default name of _gnash-dbg.log_ is used. If Gnash is started from the
+command line, the debug log will be created in the current directory.
+When executing Gnash from a launcher under _GNOME_ or _KDE_ the debug
+file goes in your home directory, since that's considered the current
+directory.
+
+   There is common functionality between using the C or C++ API.
+Optional output is based on flags that can be set or unset. Multiple
+levels of verbosity are supported, so you can get more output by
+supplying multiple _-v_ options on the command line. You can also
+disable the creation of the debug log.
+
+   Currently the use of the C++ API for logging is discouraged, do to
+performance issues.and the generic log_msg() has been replaced by more
+spcific function calls to allow more control of what gets displayed and
+logged.
+
+* Menu:
+
+* Logging System C API::
+* Logging System C++ API::
+
+
+File: gnash_ref.info,  Node: Logging System C API,  Next: Logging System C++ 
API,  Up: The Debug Logging System
+
+3.1.4.1 Logging System C API
+............................
+
+These functions are clones of the originals as they were used for
+Gnash. These function the same as always except output can be logged to
+disk now as well. These currently print no timestamp with the output,
+which is the older functionality. As these functions are implemented on
+top of the C++ API now, they can be used without corrupting the output
+buffers.
+
+log_error(const char* fmt, ...)
+     Display an error message if verbose output is enabled. By default
+     the error messages are always written to the disk file, but
+     optionally displayed in the terminal.
+
+void log_unimpl
+     Displays a warning to the user about missing Gnash features.  We
+     expect all calls to this function to disappear over time, as we
+     implement those features of Flash.
+
+void log_trace
+     Used only for explicit user traces
+
+void log_debug
+     Logs debug information.
+
+void log_action
+     Log action execution information. Wrap all calls to this function
+     (and other related statements) into an IF_VERBOSE_ACTION macro, so
+     to allow completely removing all the overhead at compile time and
+     reduce it at runtime.
+
+void log_parse
+     Log SWF parsing  Wrap all calls to this function (and other
+     related statements) into an IF_VERBOSE_PARSE macro, so to allow
+     completely removing all the overhead at compile time and reduce it
+     at runtime.
+
+void log_security
+     Display a message with security related information.
+
+void log_swferror
+     This indicates an error in how the binary SWF file was
+     constructed, i.e.probably a bug in the tools used to build the SWF
+     file. Wrap all calls to this function (and other related
+     statements) into an IF_VERBOSE_MALFORMED_SWF macro, so to allow
+     completely removing all the overhead at compile time and reduce it
+     at runtime.
+
+log_warning(const char* fmt, ...)
+     Display a warning message if verbose output is enabled. By default
+     the error messages are always written to the disk file, but
+     optionally displayed in the terminal.
+
+
+File: gnash_ref.info,  Node: Logging System C++ API,  Prev: Logging System C 
API,  Up: The Debug Logging System
+
+3.1.4.2 Logging System C++ API
+..............................
+
+This is the new C++ streams based API that can be used to print C++
+objects natively. All output lines are timestamped.
+
+   There are two macros used for program tracing. these can be used in
+both C or C++ code with one little difference. Since C doesn't have
+destructors, you must call _GNASH_REPORT_RETURN_ at the end of a
+function to display the function returning message.
+
+GNASH_REPORT_FUNCTION;
+     When this is included in a C++ method, a message is printed when
+     entering and exiting this method by hooking into the constructor
+     and destructor. These are always written to the disk file, but
+     optionally written to the screen only at the highest levels of
+     verbosity.
+
+GNASH_REPORT_RETURN;
+     This is used by C functions to print the returning from function
+     debug message. For C++, this macro is executed automatically by
+     the destructor.
+
+   This is the main API for the logging system. By default everything
+is setup to write to the default _gnash-dbg.log_ file whenever a
+verbose option is supplied. Optionally it is possible to open a log
+file with a specified name, allowing multiple output files.
+
+closeLog(void)
+     Close a debug log. The disk file remains.
+
+removeLog(void)
+     Delete the debug log file from disk.
+
+setVerbosity(void)
+     Increment the verbosity level.
+
+setVerbosity(int)
+     Set the verbosity level.
+
+setStamp(bool flag)
+     If _flag_ is _true_, then print a timestamp prefixed to every
+     output line. If _flag_ is _false_, then don't print a timestamp.
+
+setWriteDisk(bool flag)
+     If _flag_ is _true_, then create the disk file. If _flag_ is
+     _false_, then don't create the disk file.
+
+
+File: gnash_ref.info,  Node: Sound handling in Gnash,  Next: Testing,  Prev: A 
Tour of Gnash,  Up: Software Internals
+
+3.2 Sound handling in Gnash
+===========================
+
+When a SWF-file contains audio Gnash uses its sound handlers to play it.
+At the moment there are two sound handlers, but it is likely that more
+will be made.
+
+   There are two different settings related to sound support:
+_pluginsound_ and _sound_.  This was done in order to allow the plugin
+to be independently configured, for instance to block sound from
+advertisements.
+
+* Menu:
+
+* Sound types::
+* Sound parsing::
+* Sound playback::
+* The SDL sound backend::
+* The Gstreamer backend::
+* Future audio backends::
+* Detailed description of the Gstreamer backend::
+
+
+File: gnash_ref.info,  Node: Sound types,  Next: Sound parsing,  Up: Sound 
handling in Gnash
+
+3.2.1 Sound types
+-----------------
+
+Sounds can be divided into two groups: event-sounds and soundstreams.
+Event-sounds are contained in a single SWF frame, but the playtime can
+span multiple frames. Soundstreams can be (and normally are) divided
+between the SWF frames the soundstreams spans. This means that if a
+gotoframe-action jumps to a frame which contains data for a soundstream,
+playback of the stream can be picked up from there.
+
+
+File: gnash_ref.info,  Node: Sound parsing,  Next: Sound playback,  Prev: 
Sound types,  Up: Sound handling in Gnash
+
+3.2.2 Sound parsing
+-------------------
+
+When Gnash parses a SWF-file, it creates a sound handler if possible
+and hands over the sounds to it. Since the event-sounds are contained
+in one frame, the entire event-sound is retrieved at once, while a
+soundstream maybe not be completely retrieved before the entire
+SWF-file has been parsed. But since the entire soundstream doesn't need
+to be present when playback starts, it is not necessary to wait.
+
+
+File: gnash_ref.info,  Node: Sound playback,  Next: The SDL sound backend,  
Prev: Sound parsing,  Up: Sound handling in Gnash
+
+3.2.3 Sound playback
+--------------------
+
+When a sound is about to be played Gnash calls the sound handler, which
+then starts to play the sound and return. All the playing is done by
+threads (in both SDL and Gstreamer), so once started the audio and
+graphics are not sync'ed with each other, which means that we have to
+trust both the graphic backend and the audio backend to play at correct
+speed.
+
+
+File: gnash_ref.info,  Node: The SDL sound backend,  Next: The Gstreamer 
backend,  Prev: Sound playback,  Up: Sound handling in Gnash
+
+3.2.4 The SDL sound backend
+---------------------------
+
+The current SDL sound backend has replaced the original sound handler,
+based on SDL_mixer, which by design had some limitations, making it
+difficult to implement needed features such as support for soundstreams.
+The SDL sound backend supports both event-sounds and soundstreams,
+using Gnash's internal ADPCM, and optionally MP3 support, using either
+FFMPEG or LIBMAD.  When it receives sound data it is stored without
+being decoded, unless it is ADPCM, which is decoded in the parser. When
+playing, backend relies on a function callback for retrieving output
+sound, which is decoded and re-sampled if needed, and all sound output
+is mixed together.  The current SDL sound backend was made since Gnash
+needed a working sound backend as soon as possible, and since the
+gstreamer backend at the time suffered from bugs and/or lack of
+features in gstreamer. The result was the most complete and best sound
+handler so far.  The advantages of the SDL sound handler is speed, and
+ease of use, while its only real disadvantage is that it has to be
+compiled with MP3 support, which some Linux distributions will probably
+not like...
+
+
+File: gnash_ref.info,  Node: The Gstreamer backend,  Next: Future audio 
backends,  Prev: The SDL sound backend,  Up: Sound handling in Gnash
+
+3.2.5 The Gstreamer backend
+---------------------------
+
+The Gstreamer backend, though not complete, supports both soundstreams
+and event-sounds. When receiving sound data it stores it compressed,
+unless if it's ADPCM event-sounds, which it decodes by the parser.
+When the playback starts, the backend sets up a Gstreamer bin
+containing a decoder (and other things needed) and places it in a
+Gstreamer pipeline, which plays the audio. All the sound data is not
+passed at once, but in small chunks, and via callbacks the pipeline
+gets fed. The advantages of the Gstreamer backend is that it supports
+both kinds of sound, it avoids all the legal MP3-stuff, and it should
+be relatively easy to add VORBIS support. The drawbacks are that it has
+longer "reply delay" when starting the playback of a sound, and it
+suffers under some bugs in Gstreamer that are yet to be fixed.
+
+
+File: gnash_ref.info,  Node: Future audio backends,  Next: Detailed 
description of the Gstreamer backend,  Prev: The Gstreamer backend,  Up: Sound 
handling in Gnash
+
+3.2.6 Future audio backends
+---------------------------
+
+It would probably be desirable to make more backends in the future,
+either because other and better backend systems are brought to our
+attention, or perhaps because an internal sound handling is better
+suited for embedded platform with limited software installed.
+
+
+File: gnash_ref.info,  Node: Detailed description of the Gstreamer backend,  
Prev: Future audio backends,  Up: Sound handling in Gnash
+
+3.2.7 Detailed description of the Gstreamer backend
+---------------------------------------------------
+
+Gstreamer uses pipelines, bins and elements. Pipelines are the main
+bin, where all other bins or elements are places. Visually the audio
+pipeline in Gnash looks like this:
+
+
+        ___
+       |Bin|_
+       |___| \
+        ___   \ _____       ____________
+       |Bin|___|Adder|_____|Audio output|
+       |___|   |_____|     |____________|
+        ___   /
+       |Bin|_/
+       |___|
+
+   There is one bin for each sound which is being played. If a sound is
+played more the once at the same time, multiple bins will be made. The
+bins contains:
+
+
+
+       
|source|---|capsfilter|---|decoder|---|aconverter|---|aresampler|---|volume|
+
+   In the source element we place parts of the undecoded sound data, and
+when playing the pipeline will pull the data from the element. Via
+callbacks it is refilled if needed. In the capsfilter the data is
+labeled with the format of the data. The decoder (surprise!) decodes
+the data. The audioconverter converts the now raw sound data into a
+format accepted by the adder, all input to the adder must in the same
+format. The audio re-sampler re-samples the raw sound data into a sample
+accepted by the adder, all input to the adder must in the same sample
+rate. The volume element makes it possible to control the volume of
+each sound.
+
+   When a sound is done being played it emits a End-Of-Stream-signal
+(EOS), which is caught by an event-handler-callback, which then makes
+sure that the bin in question is removed from the pipeline. When a
+sound is told by Gnash to stop playback before it has ended playback,
+we do something (not yet finally implemented), which makes the bin emit
+an EOS, and the event-handler-callback will remove the sound from the
+pipeline. Unfortunately Gstreamer currently has a bug which causes the
+entire pipeline to stop playing when unlinking an element from the
+pipeline; so far no fix is known.
+
+   Gstreamer also contains a bug concerning linking multiple elements to
+the adder in rapid succession, which causes to adder to "die" and stop
+the playback.
+
+
+File: gnash_ref.info,  Node: Testing,  Next: Adding New ActionScript Class,  
Prev: Sound handling in Gnash,  Up: Software Internals
+
+3.3 Testing
+===========
+
+Instructions on running tests (*note Running the Tests::) can be found
+in the section on building Gnash.
+
+* Menu:
+
+* Testing Tools::
+* Test Cases::
+* Writing ActionScript Tests::
+* Writing Ming-based self-contained SWF tests::
+* Writing self-contained SWF tests with other compilers::
+* Writing Test Runners::
+
+
+File: gnash_ref.info,  Node: Testing Tools,  Next: Test Cases,  Up: Testing
+
+3.3.1 Testing Tools
+-------------------
+
+Currently Gnash uses three other tools to help with testing. Two of
+these are free compilers for the Flash format. This lets us write
+simple test cases for Gnash to test specific features, and to see how
+the features operate.
+
+   The primary compiler used at this time is Ming (http://ming.sf.net).
+Since release 0.3, _Ming_ includes a command-line compiler, _makeswf_.
+This allows test case development to be done entirely with free tools.
+
+   The other tools are optional.  DejaGnu
+(http://www.gnu.org/software/dejagnu) is used to run multiple test
+cases in an automated manner. _DejaGnu_ is used by many other GNU
+(http://www.gnu.org) projects like GCC (http://gcc.gnu.org) and Samba
+(http://www.samba.org).
+
+
+File: gnash_ref.info,  Node: Test Cases,  Next: Writing ActionScript Tests,  
Prev: Testing Tools,  Up: Testing
+
+3.3.2 Test Cases
+----------------
+
+ActionScript test cases are located under testsuite/actionscript.all/;
+these are organized in one file for the ActionScript class.  Other
+Ming-generated tests are under testsuite/ming-misc.all/; these are
+typically used to test specific tag types.  Full movies are located in
+testsuite/movies.all/ and sample movies are found in testsuite/samples/.
+Other directories in testsuite/ are (or shall be) used for other kind
+of tests.
+
+
+File: gnash_ref.info,  Node: Writing ActionScript Tests,  Next: Writing 
Ming-based self-contained SWF tests,  Prev: Test Cases,  Up: Testing
+
+3.3.3 Writing ActionScript Tests
+--------------------------------
+
+Writing ActionScript tests is very simple. The _makeswf_ compiler makes
+use of the C preprocessor, thus allowing the inclusion of definitions
+for macros and external files. We use these feature to provide common
+utilities for test units.
+
+   Each test unit sets an _rcsid_ variable, includes the _check.as_
+file and performs some checks using the provided macros. Here is an
+example:
+
+
+
+         // This variable will be used by check.as
+         // to show testcase info as part of the test runs.
+         rcsid="Name and version of this testcase, usually the RCS id";
+
+         #include "check.as"
+
+         // Test object creation
+         check(new Object() instanceOf Object);
+
+         // Test parseInt
+         check(isNaN(parseInt('none')));
+
+         // Test assignment
+         var a = 1;
+         check_equals(a, 1);
+
+         // .. your tests here ...
+
+   The check(expr) macro will _trace_ PASSED or FAILED together with
+the expression being evaluated and the line number of the check. This
+is the format expected by DejaGnu.
+
+   The _check_equals(obtained, expected)_ macro uses equality operator
+_==_ to check for equality. When possible, use of the _check_equals()_
+macro is preferred over _check()_ because it shows what the actual
+result was in case of a failure.
+
+   Additionally, the check.as file provides a transparent way to send
+results to a TextField rather then using trace. This is very useful
+when you use a flash player without tracing support.
+
+   Test units are built by running _make TestName-v#.swf_.  This will
+use TestName.as as source and the value of # as target version.
+Allowed target version are from 5 to 8 (inclusive).
+
+   Note that if you get a syntax error from the compiler, the line
+number will refer to the pre-processed file. This file is called
+_TestName.as.pp_ or _TestName-v#.swf.frame#.pp_ (depending on Ming
+version) and it's not thrown away by _makeswf_ to make debugging easier.
+
+   Sometimes an expression is only supported by a specific SWF version,
+or it's evaluated differently by different SWF versions.  For this
+purpose the framework provides an OUTPUT_VERSION macro that you can use
+to switch code based on output version. For example:
+
+
+
+         #if OUTPUT_VERSION >= 7
+         check(_root.getSWFVersion == OUTPUT_VERSION);
+         #endif
+
+
+File: gnash_ref.info,  Node: Writing Ming-based self-contained SWF tests,  
Next: Writing self-contained SWF tests with other compilers,  Prev: Writing 
ActionScript Tests,  Up: Testing
+
+3.3.4 Writing Ming-based self-contained SWF tests
+-------------------------------------------------
+
+Ming-based test cases are located in testsuite/misc-ming.all and
+contain a test generator and a test runner.  The test generator
+(usually a C program) is used to produce the SWF file, while the test
+runner (a C++ program) will run it using a MovieTester class.  Note
+that only the test generator needs Ming, not the test runner, so if
+Ming isn't installed on the user's host, the test cases can still be
+run as long as SWF has been distributed.
+
+   Producing tests using Ming has the advantage that you can easily see
+and modify the full source code for the SWF movie, and you can use some
+facilities (*note Using Ming-based test generators facilities::)
+provided by the Gnash testing framework to easily run tests.
+
+   For generic Ming API documentation, see http://www.libming.org
+(http://www.libming.org/).
+
+* Menu:
+
+* Using Ming-based test generators facilities::
+
+
+File: gnash_ref.info,  Node: Using Ming-based test generators facilities,  Up: 
Writing Ming-based self-contained SWF tests
+
+3.3.4.1 Using Ming-based test generators facilities
+...................................................
+
+Ming-based test generator facilities, which might be moved into a
+loadable SWF in the future, can be currently used by your test
+generator by including the ming_utils.h file and calling the
+appropriate functions.
+
+   The most useful facility provided for Ming-based SWF test generators
+is a Dejagnu-like TestState ActionScript class.  In order to use this
+facility you must call 'add_dejagnu_functions()' right after Movie
+creation.  The function takes an SWFMovie object and some parameters
+specifying depth and location of the "visual" trace textfield; it
+instantiates a global 'TestState' ActionScript object to keep track of
+test's state.
+
+   You will _not_ need to directly invoke the TestState object created
+by the 'add_dejagnu_functions()' routine, rather you will be using C
+macros hiding its complexity:
+
+
+
+       check(SWFMovie mo, const char* expr)
+
+               Evaluate an ActionScript expression.
+
+       xcheck(SWFMovie mo, const char* expr)
+
+               Evaluate an ActionScript expression.
+               A failure is expected
+               (for cases where the call exposes a known bug).
+
+       check_equals(SWFMovie mo, const char* obtained, const char* expected)
+
+               Evaluate an ActionScript expression against an expected output.
+
+       xcheck_equals(SWFMovie mo, const char* obtained, const char* expected)
+
+               Evaluate an ActionScript expression against an expected output.
+               A failure is expected (for cases where the call exposes a known 
bug).
+
+       print_tests_summary(SWFMovie mo)
+
+                     This will print a summary of tests run, and should be
+               called as the last step in your SWF generator.
+
+   Test cases generated using Ming and the provided facilities (*note
+Using Ming-based test generators facilities::) will be self-contained,
+which means they can be used as tests by simply running them with
+whatever Player you might have.  Any 'check' or 'check_equals' result
+will be both traced and printed in a textfield. You can use 'gprocessor
+-v' to have Gnash use them as tests.
+
+   See section Writing Test Runners (*note Writing Test Runners::) for
+information about writing SWF test runners.
+
+
+File: gnash_ref.info,  Node: Writing self-contained SWF tests with other 
compilers,  Next: Writing Test Runners,  Prev: Writing Ming-based 
self-contained SWF tests,  Up: Testing
+
+3.3.5 Writing self-contained SWF tests with other compilers
+-----------------------------------------------------------
+
+If you want/need to use a different compiler for your test cases
+(there's plenty of open source tools for generating SWF out there), you
+can still make use of a loadable SWF utility provided as part of the
+Gnash testsuite to let your test consistent with the rest of the suite.
+
+   The loadable module is called _Dejagnu.swf_ and is built during
+_make check_ under testsuite/misc-ming.all. In order to use it you will
+need to load it into your SWF. We currently load it with an IMPORT tag
+for our ActionScript based test cases, but you can probably also use
+loadMovie or whatever works in the target SWF you're generating. Just
+make sure that the module is initialized before using it. You can check
+this by inspecting the _dejagnu_module_initialized_ variable, which will
+be set to 'true' when all initialization actions contained in the
+_Dejagnu.swf_ file are executed.
+
+   Once the module is loaded you will be able to invoke the following
+functions, all registered against the __root_ sprite (effects of
+__lockroot_ untested):
+
+
+
+         check(expression, [message]);
+
+         Evaluate the expression.
+         Trace result (PASSED: expression / FAILED: expression).
+         If fails, *visually* trace the failure.
+         If second argument is given, it will be used instead of
+         'expression' for printing results.
+
+         check_equals(obtained, expected)
+
+         Evaluate an expression against an expected output.
+         Trace result (PASSED: obtained == expected / FAILED: expected X, 
obtained Y)
+         If fails, *visually* trace the failure.
+
+         xcheck(expression, [message]);
+
+         Evaluate the expression.
+         Trace result (XPASSED: expression / XFAILED: expression).
+         If fails, *visually* trace the failure.
+         If second argument is given, it will be used instead of
+         'expression' for printing results.
+
+         xcheck_equals(obtained, expected)
+
+         Evaluate an expression against an expected output.
+         Trace result (XPASSED: obtained == expected / XFAILED: expected X, 
obtained Y)
+         If fails, *visually* trace the failure.
+
+         note(string)
+
+         Print string, both as debugging and *visual* trace.
+
+         totals()
+
+         Print a summary of tests run, both as debugging and *visual* traces.
+
+   Visual traces are lines of text pushed to a textarea defined by the
+_Dejagnu.swf_ module. The textarea is initially placed at _0, 50_ and is
+_600x800_ in size. You can resize/move the clip after loading it. Also,
+you can completely make the clip invisible if that bothers you. The
+important thing is the _debugging_ trace (call to the trace function).
+The latter will be used by the testing framework.
+
+   See section Writing Test Runners (*note Writing Test Runners::) for
+information about writing a test runners for your self-contained tests.
+
+
+File: gnash_ref.info,  Node: Writing Test Runners,  Prev: Writing 
self-contained SWF tests with other compilers,  Up: Testing
+
+3.3.6 Writing Test Runners
+--------------------------
+
+Test runners are executables that run one or more tests, writing
+results in Dejagnu form to standard output.
+
+   The Dejagnu form uses a standard set of labels when printing test
+results.  These are:
+
+Label                                Meaning
+PASSED                               The test succeeded.
+FAILED                               The test failed.
+XPASSED                              The test succeeded, but was
+                                     expected to fail.
+XFAILED                              The test failed, and was expected
+                                     to fail.
+UNRESOLVED                           The results of the test could not
+                                     be automatically parsed.
+UNTESTED                             This test case is not complete.
+UNSUPPORTED                          The test case relies on a
+                                     conditional feature which is not
+                                     present in your environment.
+
+   The following labels may also appear:
+
+Label                                Meaning
+ERROR                                There was a serious error in
+                                     running the test.
+WARNING                              There may have been a problem with
+                                     running the test.
+NOTE                                 There was some additional
+                                     information given about the test.
+
+* Menu:
+
+* Using the generic test runner for self-contained SWF tests::
+* Writing Movie testers::
+
+
+File: gnash_ref.info,  Node: Using the generic test runner for self-contained 
SWF tests,  Next: Writing Movie testers,  Up: Writing Test Runners
+
+3.3.6.1 Using the generic test runner for self-contained SWF tests
+..................................................................
+
+The simplest test runner is one that simply invokes Gnash in verbose
+mode against a self-contained SWF test movie.  Self-contained SWF test
+movies are the ones that print the PASSED/FAILED etc. lines using
+ActionScript (traces).  By invoking Gnash in verbose mode this movie
+will behave as a compliant "Test Runner".
+
+   A generator for simple test runners can be found in
+_testsuite/generic-testrunner.sh_.  The script can be invoked by
+passing it _$(top_builddir)_ as the first argument and the name of the
+SWF file (without the path) as the second argument. This will create a
+specific runner for your test in the current build directory.  A simple
+Makefile.am rule for doing this follows:
+
+
+           MyTest-Runner: $(srcdir)/../generic-testrunner.sh MyTest.swf
+           sh $(srcdir)/../generic-testrunner.sh $(top_builddir) MyTest.swf > 
$@
+           chmod +x $@
+
+   By default, the generated test runner will play the movie up to the
+last frame. If you want the movie to be played more then once (maybe
+because you're exactly testing loop features) you can use the -r switch
+to the generic-testrunner.sh call. The following will create a runner
+playing the movie twice:
+
+
+           MyTest-Runner: $(srcdir)/../generic-testrunner.sh MyTest.swf
+           sh $(srcdir)/../generic-testrunner.sh -r2 $(top_builddir) 
MyTest.swf > $@
+           chmod +x $@
+
+   In case your test movie stops before the last frame, or you want to
+control the exact number of times to call the frame advancement
+routine, you can use the -f switch to control that.
+
+
+           MyTest-Runner: $(srcdir)/../generic-testrunner.sh MyTest.swf
+           sh $(srcdir)/../generic-testrunner.sh -f10 $(top_builddir) 
MyTest.swf > $@
+           chmod +x $@
+
+When both -f and -r are given, the first exit condition reached will
+take effect.
+
+
+File: gnash_ref.info,  Node: Writing Movie testers,  Prev: Using the generic 
test runner for self-contained SWF tests,  Up: Writing Test Runners
+
+3.3.6.2 Writing Movie testers
+.............................
+
+There are some parts of Gnash that can NOT be tested by only using
+ActionScript tests. Examples include: frame advancements, actual
+actions execution, gui events and so on.
+
+   In this case you might want to use the MovieTester class to
+implement a C++ test runner. Be aware that you can _mix_ tests in the
+MovieTester-based class with _self-contained_ tests in the SWF file as
+long as you activate verbosity for the debug logfile. This is done, for
+example, for the DefineEditTextVariableNameTest.swf file. The
+corresponding test runner (DefineEditTextVariableNameTest-Runner) is a
+C++ runner based on MovieTester class. If you run the runner you see
+two kinds of test results: the ones coming from the ActionScript
+engine, and the ones coming from the test runner. You can distinguish
+between the two because the former contains an additional timestamp and
+the latter does not. Also, you'll see two final summaries for the two
+test sets. The 'make check' rule, which uses the testsuite/simple.exp
+output parser as its work-horse, will count test results from both test
+sets.
+
+   Movie testers are executables which load an SWF, generate events
+(both user or system) on it, and check its state using a standard
+interface.
+
+   To help this process a MovieTester class is defined in the
+testsuite/MovieTester.{h,cpp} files; see Doxygen documentation for more
+information.
+
+   Note that you do NOT need access to the SWF source code in order to
+implement a Movie tester for it.  Some knowledge about the expected
+behavior suffices.
+
+
+File: gnash_ref.info,  Node: Adding New ActionScript Class,  Prev: Testing,  
Up: Software Internals
+
+3.4 Adding New ActionScript Class
+=================================
+
+In this document, the term 'ActionScript class' refers to the C++ class
+which is instantiated by Gnash when some ActionScript code instantiates
+a corresponding class.  The C++ class stores instance data and
+implements the methods which are called on the object in the
+ActionScript code.
+
+   Adding a new ActionScript class is relatively simple, but the
+process is complicated by the fact that the interface has evolved over
+time and the current code base represents several different formats.
+This document describes the current interface.  The Boolean class
+should be considered the authoritative example of a modern ActionScript
+class.
+
+   ActionScript classes contain a header file and a C++ implementation.
+The name is usually the name of the class as it is called in the
+ActionScript specifications; for instance _Boolean.cpp_ for the Boolean
+class.
+
+* Menu:
+
+* Prototype::
+* Declaration::
+* Instantiation::
+* Methods::
+* Dynamic Properties::
+* The as_value Object Type::
+* Object ActionScript Class::
+
+
+File: gnash_ref.info,  Node: Prototype,  Next: Declaration,  Up: Adding New 
ActionScript Class
+
+3.4.1 Prototype
+---------------
+
+In ActionScript, a prototype is a base object which contains all the
+methods that an instantiated object will contain.  In short, it
+contains every part of the class except for the portions dealing with
+the storage of instance data.
+
+   In Gnash, the prototype of an ActionScript object is implemented as
+an _as_object_.  At startup, the methods and properties of the
+ActionScript class are attached to the _as_object_.  The following
+example demonstrates how methods can be attached:
+
+
+       static void
+       attachBooleanInterface(as_object& o) {
+         o.init_member("toString", new builtin_function(boolean_tostring));
+         o.init_member("valueOf", new builtin_function(boolean_valueof));
+       }
+
+   Static properties can also be added to the ActionScript prototype
+(dynamic properties (*note Dynamic Properties::) are addressed later).
+They are attached in a similar way:
+
+
+       o.init_member("myProperty", as_value("HelloWorld"));
+
+   Properties which have been added in this manner can be directly
+accessed in ActionScript code without a function call, as this piece of
+ActionScript code compiled by Ming's _makeswf_ compiler demonstrates:
+
+
+       // Get the value of the myProperty property
+       if (node.myProperty == "HelloWorld") {
+         trace("MATCHED");
+       }
+
+
+File: gnash_ref.info,  Node: Declaration,  Next: Instantiation,  Prev: 
Prototype,  Up: Adding New ActionScript Class
+
+3.4.2 Declaration
+-----------------
+
+A new class should derive from _as_object_, which is the base class of
+every ActionScript object in Gnash.
+
+
+File: gnash_ref.info,  Node: Instantiation,  Next: Methods,  Prev: 
Declaration,  Up: Adding New ActionScript Class
+
+3.4.3 Instantiation
+-------------------
+
+When a new object is needed, instance data is added to the methods and
+properties inherited from the prototype.
+
+   The init method should be called in the constructor in _Global.cpp_,
+where all other ActionScript classes are similarly referenced. This
+method constructs a prototype, which is implemented as an _as_object_.
+In addition, the method registers the constructor to be used for future
+object creation, and attaches methods and properties to the prototype.
+
+
+File: gnash_ref.info,  Node: Methods,  Next: Dynamic Properties,  Prev: 
Instantiation,  Up: Adding New ActionScript Class
+
+3.4.4 Methods
+-------------
+
+Every method you implement and attach (*note Prototype::) will receive
+an _fn_call_ data structure as an argument when it is called.
+
+* Menu:
+
+* Accessing Arguments::
+* Returning a Value to ActionScript::
+* Additional fn_call Members::
+
+
+File: gnash_ref.info,  Node: Accessing Arguments,  Next: Returning a Value to 
ActionScript,  Up: Methods
+
+3.4.4.1 Accessing Arguments
+...........................
+
+The arguments stored in _fn_call_ should be accessed using _arg()_.  For
+instance, the first element can be popped with _fn.arg(0)_.
+
+   The element popped off the stack is an _as_value_ object (*note The
+as_value Object Type::).
+
+
+File: gnash_ref.info,  Node: Returning a Value to ActionScript,  Next: 
Additional fn_call Members,  Prev: Accessing Arguments,  Up: Methods
+
+3.4.4.2 Returning a Value to ActionScript
+.........................................
+
+The return value should be an _as_value_ object (*note The as_value
+Object Type::).  For example:
+
+
+         return as_value('Goodbye, cruel world.');
+
+
+File: gnash_ref.info,  Node: Additional fn_call Members,  Prev: Returning a 
Value to ActionScript,  Up: Methods
+
+3.4.4.3 Additional fn_call Members
+..................................
+
+There are two other useful members of the _fn_call_ structure, namely
+_this_ptr_ and _nargs_.  The former points to the class which is
+invoking this method, while the latter is a count of the number of
+arguments in the stack (*note Accessing Arguments::).
+
+   You may also see instances of the _env_ pointer being used.   This
+is being deprecated.  Instances which could be replaced with _arg()_
+(*note Accessing Arguments::) are already deprecated; other uses will
+be deprecated in the near future.
+
+   Beyond the _arg() (*note Accessing Arguments::)_ method, there is
+one method of note.  _dump_args()_ can be used in debugging to output
+the entire argument stack.
+
+
+File: gnash_ref.info,  Node: Dynamic Properties,  Next: The as_value Object 
Type,  Prev: Methods,  Up: Adding New ActionScript Class
+
+3.4.5 Dynamic Properties
+------------------------
+
+This section describes accessors to dynamic properties.  Read-only
+properties are described in the prototype (*note Prototype::) section.
+
+   Accessors should be written as a single get/set method.  Previously
+this was done by overriding _get_member()_ and _set_member()_, but this
+practice is deprecated.
+
+   The accessor is written so that it sets the property if it is called
+with an argument, and puts the property in the _fn_call_ (*note
+Methods::) result pointer (*note Returning a Value to ActionScript::).
+For instance:
+
+
+       void
+       MyClass::myProperty_getset(const fn_call& fn) {
+         boost::intrusive_ptr<MyClass> ptr = ensureType<MyClass>(fn.this_ptr);
+
+         // setter
+         if ( fn.nargs > 0 ) {
+           bool h = fn.arg(0).to_bool();
+           ptr->MyMethod(h);
+           return;
+          }
+
+         // getter
+         bool h = ptr->MyMethod();
+         fn.result->set_bool(h);
+       }
+
+   It has not yet been decided whether properties should be set in the
+exported interface (*note Prototype::) or attached to instances of the
+class.  A property is attached in the following manner:
+
+
+       boost::intrusive_ptr<builtin_function> gettersetter;
+       gettersetter = new builtin_function(&MyClass::myProperty_getset, NULL);
+       o.init_property("myProperty", *gettersetter, *gettersetter);
+
+
+File: gnash_ref.info,  Node: The as_value Object Type,  Next: Object 
ActionScript Class,  Prev: Dynamic Properties,  Up: Adding New ActionScript 
Class
+
+3.4.6 The as_value Object Type
+------------------------------
+
+The _as_value_ class is used throughout the interpreter to create
+generic objects to hold data.
+
+* Menu:
+
+* Data Types::
+* Determining the Type::
+* Fetching the Value::
+* Setting the Value and Type::
+* Further Reading::
+
+
+File: gnash_ref.info,  Node: Data Types,  Next: Determining the Type,  Up: The 
as_value Object Type
+
+3.4.6.1 Data Types
+..................
+
+The following data types are supported: _NULLTYPE_, _BOOLEAN_, _STRING_,
+_NUMBER_, _OBJECT_, _AS_FUNCTION_, and _MOVIECLIP_ (sprite).  The type
+_C_FUNCTION_ is being deprecated.
+
+
+File: gnash_ref.info,  Node: Determining the Type,  Next: Fetching the Value,  
Prev: Data Types,  Up: The as_value Object Type
+
+3.4.6.2 Determining the Type
+............................
+
+Several methods allow you to determine if a value stored in _as_value_
+is of a specific type.  These follow the form of _is_TYPE_, for example
+_is_as_function()_ and _is_number()_.  In general, the type names match
+the data types (*note Data Types::) listed above, with the exception of
+the type _MOVIECLIP_ which has a method _is_sprite()_.
+
+
+File: gnash_ref.info,  Node: Fetching the Value,  Next: Setting the Value and 
Type,  Prev: Determining the Type,  Up: The as_value Object Type
+
+3.4.6.3 Fetching the Value
+..........................
+
+Another set of methods will return a representation of the value as a
+particular type.  They follow the _to_TYPE_ naming convention.  Examples
+are _to_number()_ and _to_bool()_.  The type names are as listed (*note
+Data Types::) earlier, except for _MOVIECLIP_, which uses _to_sprite()_.
+
+
+File: gnash_ref.info,  Node: Setting the Value and Type,  Next: Further 
Reading,  Prev: Fetching the Value,  Up: The as_value Object Type
+
+3.4.6.4 Setting the Value and Type
+..................................
+
+Finally, there is the _set_TYPE_ series of methods.  They change the
+type to the type specified in the method name, and set the value to the
+one given as an argument.  It is also possible to accomplish the same
+thing with the _=_ operator.  Again, type names match those named
+earlier (*note Data Types::), except in the case of _MOVIECLASS_.  Its
+method is called _set_sprite()_.
+
+
+File: gnash_ref.info,  Node: Further Reading,  Prev: Setting the Value and 
Type,  Up: The as_value Object Type
+
+3.4.6.5 Further Reading
+.......................
+
+Please refer to _as_value.h_ or the Doxygen documentation (see
+'Processing The Documentation' in the Gnash manual for instructions on
+generating documents with Doxygen) for more information about which
+methods are available for the _as_value_ object.
+
+
+File: gnash_ref.info,  Node: Object ActionScript Class,  Prev: The as_value 
Object Type,  Up: Adding New ActionScript Class
+
+3.4.7 Object ActionScript Class
+-------------------------------
+
+This class implements an Object object.
+
+* Menu:
+
+* The Methods of the Class::
+* The Properties of the Object Class::
+* Object Class Conformance::
+
+
+File: gnash_ref.info,  Node: The Methods of the Class,  Next: The Properties 
of the Object Class,  Up: Object ActionScript Class
+
+3.4.7.1 The Methods of the Class
+................................
+
+addProperty()
+
+registerClass()
+
+toString()
+
+unwatch()
+
+valueOf()
+
+watch()
+
+Sharedclear()
+
+Sharedflush()
+
+SharedgetLocal()
+
+SharedgetSize()
+
+
+File: gnash_ref.info,  Node: The Properties of the Object Class,  Next: Object 
Class Conformance,  Prev: The Methods of the Class,  Up: Object ActionScript 
Class
+
+3.4.7.2 The Properties of the Object Class
+..........................................
+
+constructor
+
+__proto__
+
+__resolve
+
+Shareddata
+
+SharedonStatus
+
+
+File: gnash_ref.info,  Node: Object Class Conformance,  Prev: The Properties 
of the Object Class,  Up: Object ActionScript Class
+
+3.4.7.3 Object Class Conformance
+................................
+
+Class Name                           Conformance
+addProperty()                         This method has an unknown status.
+registerClass()                       This method has an unknown status.
+toString()                            This method has an unknown status.
+unwatch()                             This method has an unknown status.
+valueOf()                             This method has an unknown status.
+watch()                               This method has an unknown status.
+Sharedclear()                         This method has an unknown status.
+Sharedflush()                         This method has an unknown status.
+SharedgetLocal()                      This method has an unknown status.
+SharedgetSize()                       This method has an unknown status.
+constructor                           This property has an unknown
+                                     status.
+__proto__                             This property has an unknown
+                                     status.
+__resolve                             This property has an unknown
+                                     status.
+Shareddata                            This property has an unknown
+                                     status.
+SharedonStatus                        This property has an unknown
+                                     status.
+
+
+File: gnash_ref.info,  Node: Reporting Bugs,  Next: Gnash Extensions,  Prev: 
Software Internals,  Up: Top
+
+4 Reporting Bugs
+****************
+
+The Gnash project relies on the community of Gnash users to test the
+player, feedback is critical to any successful project.  Not only does
+it let us know that people use Gnash, but it helps us understand the
+community's needs. Gnash uses a bug tracker on
+`http://savannah.gnu.org' to manage these reports.
+
+   When filing a report, please follow the guidelines below. The better
+your bug report is, the easier it will be for the developers to address
+the issue. Bug reports without enough information will initially be
+asked to provide this information anyway. Adding critical details, like
+the Operating System you are on, its version, and any relevant error
+messages from Gnash that you get.
+
+* Menu:
+
+* Get a Fresh Binary Package::
+* Determine if the bug was previously reported::
+* Review the bug writing guidelines::
+* Filing a bug report::
+
+
+File: gnash_ref.info,  Node: Get a Fresh Binary Package,  Next: Determine if 
the bug was previously reported,  Up: Reporting Bugs
+
+4.1 Get a Fresh Binary Package
+==============================
+
+For starters, it's a good idea to obtain a copy of the latest snapshot.
+Although Gnash is primarily released as source, the Gnash build
+infrastructure allows the automated building of binary packages. Often
+the version of Gnash as packaged by a GNU/Linux or BSD distribution is
+based on the last official release, which could be months out of date.
+It is helpful if this is the case to try a newer packaged build of
+Gnash.
+
+   You can get a fresh binary package of Gnash, as well as recent
+source packages from http://www.getgnash.org/packages
+(http://www.getgnash.org/packages/).
+
+
+File: gnash_ref.info,  Node: Determine if the bug was previously reported,  
Next: Review the bug writing guidelines,  Prev: Get a Fresh Binary Package,  
Up: Reporting Bugs
+
+4.2 Determine if the bug was previously reported
+================================================
+
+Search the Gnash bug tracker
+(https://savannah.gnu.org/bugs/?group=gnash) to see if the bug has
+already been identified.
+
+   If the issue has already been reported, you should not file a bug
+report.  However, you may add some additional information to the ticket
+if you feel that it will be beneficial to the developers.  For
+instance, if someone reported a memory issue on Ubuntu GNU/Linux, and
+you noticed the same problem on OpenBSD, your stacktrace would be
+useful.  Conversely, adding a "me too" note to a feature request is not
+helpful.
+
+
+File: gnash_ref.info,  Node: Review the bug writing guidelines,  Next: Filing 
a bug report,  Prev: Determine if the bug was previously reported,  Up: 
Reporting Bugs
+
+4.3 Review the bug writing guidelines
+=====================================
+
+A good bug report should be precise, explicit, and discrete.  This
+means that there should be just one bug per ticket, and that a ticket
+should contain the following information:
+
+   * An overview of the problem;
+
+   * Instructions on how to replicate the bug;
+
+   * A description of what happened when you performed the steps to
+     replicate the bug, and what you expected to happen;
+
+   * Your system information: operating system name and version, as
+     well as the versions of major development dependencies;
+
+   * The release number or checkout timestamp for the version of Gnash
+     where you observe the problem;
+
+   * The file `config.log', which should be attached as a file;
+
+   * A descriptive title.
+
+   Include any additional information that you feel might be useful to
+the developers.
+
+
+File: gnash_ref.info,  Node: Filing a bug report,  Prev: Review the bug 
writing guidelines,  Up: Reporting Bugs
+
+4.4 Filing a bug report
+=======================
+
+After following the steps described above, you can file a bug report at
+`https://savannah.gnu.org/bugs/?group=gnash'.
+
+
+File: gnash_ref.info,  Node: Gnash Extensions,  Next: RTMP Protocol,  Prev: 
Reporting Bugs,  Up: Top
+
+5 Gnash Extensions
+******************
+
+Gnash supports extending the Flash specification by creating custom
+ActionScript classes that are compiled code, as opposed to the existing
+method of defining custom classes as ActionScript. Executing compiled
+code has many performance benefits over having to interpret the byte
+stream of the ActionScript opcodes.
+
+   I can already hear people complaining now about the concept of
+extending Flash, so this in no way affects Gnash's ability to play
+Flash movies when functioning as a browser plugin.  Gnash's goal is
+still to function in a way that is compatible with the current
+proprietary Flash player.
+
+   But at the same time, we see Flash as the ideal scripting language
+for a digital multi-media streaming environment. There are many
+resources for Flash movie creators for widgets, higher level APIs, all
+sorts of desirable things. But for those of use committed to using free
+software tools for Flash, our options are very limited.
+
+   Rather than launching a multi-year project to duplicate all classes
+in the commercial Flash IDE, it's much more efficient to use existing
+development libraries much like Python or Perl do. The extension
+mechanism in Gnash allows wrappers to be created for any C or C++
+development library. Unlike the proprietary Flash IDE, which compiles
+all the extension libraries into byte codes from ActionScript, the
+support is moved to the player side. Movies with all of the goodies of
+the proprietary IDE in them play in Gnash just fine, as it's all just
+byte codes by then.
+
+   This trick works because until Flash player version 9, all the
+ActionScript class names and methods are passed as ASCII strings into
+the Flash movie. So the Gnash Virtual Machine just loads the extension
+file if that class name is invoked in the movie. All extension files
+specify the class name and methods it implements in an identical style
+as adding any new ActionScript class. The advantage is the class itself
+is compiled code, and runs much faster than the equivalent byte codes
+which all have to be interpreted..
+
+* Menu:
+
+* Creating A New Extension::
+* Debugging An Extension::
+* Included Extensions::
+
+
+File: gnash_ref.info,  Node: Creating A New Extension,  Next: Debugging An 
Extension,  Up: Gnash Extensions
+
+5.1 Creating A New Extension
+============================
+
+Each new extension should live in it's own directory. The extensions
+included in Gnash are all in the _gnash/extensions_ directory. Creating
+an extension requires a Makefile.am,
+
+   If you are adding this extension to the Gnash source tree itself,
+then you need to make two changes to add the new extension.
+
+   The first change is to add the directory to the list in
+extensions/Makefile.am. This can be done either by adding the new
+directory to the SUBDIRS setting, or by wrapping it in a conditional
+test.
+
+   The other change is to add it to the AC_OUTPUT list in
+_configure.ac_ so the new directory will be configured along with the
+rest of Gnash.
+
+   Each extension should have an ActionScript source file included that
+tests the new class, and this file should be referenced in the new
+Makefile.am in the _check_PROGRAMS_ variable so that "make check" works.
+
+   When creating an extension that is a wrapper for an existing
+development library API, it's often better to make this a thin layer,
+than to get carried away with creating beautiful abstractions.
+Higher-level classes that offer a lot of new functionality are fine,
+but is different than wrapping a library so it can be used from within
+Gnash.
+
+* Menu:
+
+* Crafting an Extension::
+
+
+File: gnash_ref.info,  Node: Crafting an Extension,  Up: Creating A New 
Extension
+
+5.1.1 Crafting an Extension
+---------------------------
+
+All extensions have the same requirements, namely setting up a few
+defined function callbacks, which the Gnash VM then uses to do the
+right thing. The initial two function callbacks are for handling the
+interface of the newly created object so that Gnash can find and use it.
+
+   The first function is commonly called _attachInterface_, and this
+sets the other function callbacks for all the methods this class
+supports. The method callbacks are attached to the parent class by
+using _init_member()_ to set a C function pointer to the string value
+used in the Flash movie.
+
+
+       // Attach DummyClass 'func1' and 'func2' methods to the given object
+       static void
+       attachInterface(as_object& obj) {
+                 obj.init_member("func1", &ext_func1);
+                 obj.init_member("func2", &ext_func2);
+       }
+
+   The second function is commonly called _getInterface()_, and this
+returns a pointer to a static prototype of the class.  Gnash uses
+garbage collection for ActionScript objects so you need to register the
+static with the VM to give it a chance to be marked as reachable.
+
+
+       static as_object*
+       getInterface()
+       {
+           static boost::intrusive_ptr<as_object> o;
+           if (o == NULL) {
+               o = new as_object();
+                     VM::get().addStatic(o);
+                     attachInterface(*o);
+           }
+           return o.get();
+       }
+
+   This is the callback that gets executed when constructing a new
+object for the VM. In this example we'll assume the new ActionScript
+class is called _DummyExt_, and has two methods, _func1_ and _func2_.
+
+
+       static as_value
+       dummyext_ctor(const fn_call& fn)
+       {
+           DummyExt *obj = new DummyExt(); // will setup prototypes
+
+           return as_value(obj);
+       }
+
+   The trick for the above simple constructor to work is that class
+appartenence is setup in the C++ DummyExt constructor itself, which
+should derive from as_object and construct the base passing it the
+interface (prototype) of it's class.
+
+
+       class DummyExt : public as_object
+             {
+             public:
+           DummyExt()
+                     :
+                     as_object(getInterface()) // returns the static prototype
+                 {}
+
+       };
+
+   Initialize the extension. This is looked for by the extension
+handling code in each extension, and is executed when the extension is
+loaded. This is the main entry point into the extension. This function
+can be found because the prefix of _dummyext_, which also matches the
+file name of the extension. Gnash uses the name of the extension file
+itself when looking for the init function.
+
+
+             extern "C" {
+           void
+           dummyext_class_init(as_object &obj)
+           {
+               static builtin_function* cl=NULL;
+               if (!cl)
+                     {
+                         // Create a builtin function using the given 
constructor
+                         // to instanciate objects and exporting the given 
interface
+                   cl = new builtin_function(&dummyext_ctor, getInterface());
+                   VM::get().addStatic(cl); // will forbid to collect the class
+               }
+
+               obj.init_member("DummyExt", cl);
+           }
+             } // end of extern C
+
+   The callbacks are all C functions. Like all the other code that
+implements ActionScript, parameters to the function are passed in using
+the _fn_call_ data structure. The return code, if any, is also returned
+using this data structure. _this_ptr_ is the object that the method is
+a member of.
+
+
+       // Creates a new button with the label as the text.
+       as_value func1(const fn_call& fn) {
+                 // Following line will ensure 'func1' is called for a 
DummyExt instance,
+                 // or would throw an exception which should behave as if we 
returned the
+                 // undefined value.
+                 boost::intrusive_ptr<DummyExt> ptr = 
ensureType<DummyExt>(fn.this_ptr);
+
+           if (fn.nargs > 0) {
+               std::string label = fn.arg(0).to_string();
+               bool ret = ptr->dummy_text_label(label);
+               return as_value(ret);
+           }
+       }
+
+
+File: gnash_ref.info,  Node: Debugging An Extension,  Next: Included 
Extensions,  Prev: Creating A New Extension,  Up: Gnash Extensions
+
+5.2 Debugging An Extension
+==========================
+
+As extensions are loaded dynamically at runtime, debugging one can be
+difficult. You can use GDB, but you have the problem of not being able
+to set a breakpoint in Gnash until _after_ the extension has been
+loaded into Gnash's VM. The easy solution is to use the Gnash debugger.
+
+   You can insert these few lines in any file that you wish to manually
+start the debugger. Once at the console, you can attach GDB to the
+process. Then you can set breakpoints, etc... and you are at the point
+of execution where the console was started. To then continue playing
+the movie, type the _c_ (for continue) command to the Gnash console.
+
+
+           // Get the debugger instance
+           static Debugger& debugger = Debugger::getDefaultInstance();
+
+           // Enable the debugger
+           debugger.enabled(true);
+           // Stop and drop into a console
+           debugger.console();
+
+   You can also resort to the time honored technique of creating a loop
+before the point you want to set a breakpoint for. Gnash will stop
+playing the movie at this point, and then you can externally attach GDB
+to the running process, or type _^C_ to drop into the GDB command
+console.
+
+
+           bool stall = true;
+           while (stall) {
+               sleep 1;
+           }
+
+   Once you have set the breakpoints you want, reset the value of the
+_stall_ variable to break out of the loop, and the Flash movie will
+then continue playing.
+
+
+           (gdb) set variable stall = false;
+           continue
+
+
+File: gnash_ref.info,  Node: Included Extensions,  Prev: Debugging An 
Extension,  Up: Gnash Extensions
+
+5.3 Included Extensions
+=======================
+
+Gnash has some extensions included in the distribution. This is mostly
+because they were written by the Gnash team. Extensions can be external
+to gnash, Gnash needs no compiled in knowledge to load an extension
+file.
+
+* Menu:
+
+* Gtk Extension::
+* File I/O Extension::
+* MySQL Extension::
+
+
+File: gnash_ref.info,  Node: Gtk Extension,  Next: File I/O Extension,  Up: 
Included Extensions
+
+5.3.1 Gtk Extension
+-------------------
+
+The GTK ActionScript class follows the same API as Gtk2, even down to
+the same arguments to the same function names. This means you're
+actually programming GTK,you're just using ActionScript instead of
+python, perl, or C. This extension makes it possible to write Flash
+movies that use the Gtk2 widgets for user interface components.
+
+window_new
+     Create a new window.
+
+signal_connect
+     Add an event handler to a widget.
+
+container_set_border_width
+     Set the width of the window border.
+
+button_new_with_label
+     Create a new button and give it the specified label.
+
+signal_connect_swapped
+     Swap signals. Commonly used for _delete_ event handling.
+
+container_add
+     Add one widget to another as a child.
+
+widget_show
+     Display the widget on the screen.
+
+main
+     Start the main GTK event loop. This function does not return.
+
+
+File: gnash_ref.info,  Node: File I/O Extension,  Next: MySQL Extension,  
Prev: Gtk Extension,  Up: Included Extensions
+
+5.3.2 File I/O Extension
+------------------------
+
+Flash movies are traditionally forbidden from accessing the filesystem,
+but this may be necessary for some embedded applications. Especially in
+the case of a user console, currently there is no way to get input into
+a Flash movie but through a TextField.
+
+fopen
+     Open the file.
+
+fread
+     Read a series of bytes from the opened file.
+
+fgetc
+     Read a single byte from the opened file.
+
+fgets
+     Read a single line until a Carriage Return from the opened file.
+
+gets
+     Read a single line from the standard in.
+
+getchar
+     Read a single character from the standard in.
+
+fwrite
+
+fputc
+     Write a single character to the opened file.
+
+fputs
+     Write a single line to the opened file.
+
+puts
+     Write a single line to standard out..
+
+putchar
+     Write a single character to standard out..
+
+fflush
+     Flush the current opened file to disk.
+
+fseek
+     Seek to a location within the opened file.
+
+ftell
+     Report the current position within the opened file.
+
+fclose
+     Close the opened file.
+
+
+File: gnash_ref.info,  Node: MySQL Extension,  Prev: File I/O Extension,  Up: 
Included Extensions
+
+5.3.3 MySQL Extension
+---------------------
+
+The MySQL ActionScript class follows the same API as MySQL, even down
+to the same arguments to the same function names. This enables a Flash
+movie to have direct access to a MySQL database. Traditionally Flash
+movies have had no database support, they either had to use arrays, or
+use XML to communicate to an application specific external database
+daemon.
+
+connect
+     Connect to a MySQL database.
+
+qetData
+     Get data from the database.
+
+disconnect
+     Disconnect from a MySQL database.
+
+query
+     Execute an SQL query to the database.
+
+fetch_row
+     Fetch a row from the query results.
+
+num_fields
+
+free_result
+     Free the results of a query.
+
+store_results
+     Store the results of a query.
+
+
+File: gnash_ref.info,  Node: RTMP Protocol,  Next: Mozilla/Firefox NPAPI 
Plugin,  Prev: Gnash Extensions,  Up: Top
+
+6 RTMP Protocol
+***************
+
+This document is based mostly on my own reverse engineering of the RTMP
+protocol and AMF format. _tcpdump_ and _ethereal_ are your friend. Some
+additional info that got me started was from the Red5
+(http://www.osflash.org/red5) project. _Red5_ is the only other open
+source Flash server. So some details are still vague, but as the
+implementation appears to work, we'll figure out what they are later.
+
+   The Real Time Messaging Protocol was created by MacroMedia (now
+Adobe) for delivering Flash objects and video over a network
+connection. Currently the only servers which support this format are
+the MacroMedia Media sever, and the Open Source Red5 project.
+
+   This is a simple protocol, optimized for poor bandwidth connections.
+It can support up to 64 concurrent streams over the same network
+connection. Part of each AMF packet header contains the index number of
+the stream. A single RTMP message can contain multiple AMF packets.
+
+   An RTMP connection uses Tcp/ip port 1935. It is also possible to
+tunnel RTMP over an HTTP connection using port 80. Each AMF packet is
+128 bytes long except for streaming audio, which has 64 byte packets.
+
+   The basics of the RTMP protocol are as follows. All communications
+are initiated by the client.
+
+Image of the RTMP protocol.
+
+   The client starts the RTMP connection by sending a single byte with
+a value of 0x3. This byte is followed by a data block of 1536 bytes.
+The format if this data block is unknown, but it appears to not be
+actually used by the protocol except as a handshake.
+
+   The server receives this packet, stores the 1536 byte data block,
+and then send a single byte with the value of 0x3, followed by two 1536
+data blocks. The second data block is the full contents of the original
+data block as sent by the client.
+
+   The client receives the 1536 byte data block, and if they match, the
+connection is established. After the handshake process is done, there
+are three other messages that the client sends to the sever to start
+the data flowing.
+
+   The first AMF packet sent to the server contains the _connect_
+packet. This doesn't appear to do much but notify the server the client
+is happy with the handshake, and ready to start reading packets.
+
+   The second packet is the _NetConnection_ object from the client.
+This ActionScript class is used by the Flash movie to create the
+network connection to the server.
+
+   The third packet is the _NetStream_ object from the client. This is
+the ActionScript class used to specify the file to be streamed by the
+server.
+
+   The RTMP packet for our example looks like this:
+
+
+           030000190000c91400000000020007connect00?f0000000000000030003app0200#
+           software/gnash/tests/1153948634.flv0008flashVer02000cLNX 6,0,82,0 
0006
+           swfUrl02001dfile:///file|%2Ftmp%2Fout.swfc30005tcUrl\002\0004
+           rtmp://localhost/software/gnash/tests/1153948634.flv\000\000\t
+           \002\000\005userx
+
+We'll take this apart in a bit, but you can see how all three AMF
+packets are in the same message. The message is received in several 128
+byte blocks, with the last one being less than that. The total size of
+the RTMP message is in the header, so the reader can tell if the entire
+message was read or not.
+
+   The RTMP header is first, followed by the connect message as an
+ASCII string as the message body. The following AMF packet is the
+_NetConnection_ one, which specifies that this is coming from a Flash
+application. This also contains the file path the server can use to
+find the file to stream. This is then followed by the version number,
+which I assume is the version of the Flash player, so the server knows
+what it is talking to.
+
+   The third packet is the one from _NetStream_, which specifies the
+URL used for the movie, followed by the user name for a semblance of
+security.
+
+   For the next level of detail, we'll explain the format of AMF. AMF
+is used by the RTMP protocol to transfer data. Each Flash object is
+encapsulated in an AMF packet, including streaming audio or video.
+
+   The first byte of the RTMP header determines two things about the
+rest of the message. The first 2 bits of this byte signify the total
+size of the RTMP header. The RTMP header is of a variable size, so this
+is important.
+
+00
+     This specifies the header contains 12 bytes, including this one.
+
+01
+     This specifies the header contains 8 bytes, including this one.
+
+02
+     This specifies the header contains 4 bytes, including this one.
+
+03
+     This specifies the header contains 1 byte, so this is the complete
+     header.
+
+   The other 6 bits in this byte represent the AMF index. As a single
+RTMP connection can support multiple data streams, this signifies which
+stream this packet is for. Once an AMF object is fully received by the
+client, the AMF index may be reused.
+
+   For messages with headers of at least 4 bytes, the next 3 bytes are
+used by audio and video data packets, but at this time the meaning of
+this field is unknown.
+
+   For messages with a 8 byte or larger header, the next 3 bytes
+determine the size of the RTMP message being transmitted. Messages with
+a 1 byte or 4 byte header use a standard size, 128 bytes for video, and
+64 bytes for audio.
+
+   For messages with an 8 byte or larger header, the next byte is the
+type of the AMF object.
+
+0x3
+     This specifies the content type of the RTMP packet is the number
+     of bytes read. This is used to start the RTMP connection.
+
+0x4
+     This specifies the content type of the RTMP message is a _ping_
+     packet.
+
+0x5
+     This specifies the content type of the RTMP message is server
+     response of some type.
+
+0x6
+     This specifies the content type of the RTMP packet is client
+     request of some type.
+
+0x8
+     This specifies the content type of the RTMP packet is an audio
+     message.
+
+0x9
+     This specifies the content type of the RTMP message is a video
+     packet.
+
+0x12
+     This specifies the content type of the RTMP message is notify.
+
+0x13
+     This specifies the content type of the RTMP message is shared
+     object.
+
+0x14
+     This specifies the content type of the RTMP message is remote
+     procedure call. This invokes the method of a Flash class remotely.
+
+   There are two sets of data types to consider. One set is used by the
+to specify the content type of the AMF object, the other is an
+ActionScript data type tag used to denote which type of object is being
+transferred.
+
+   The values of the initial type byte are:
+
+0x0
+     This specifies the data in the AMF packet is a numeric value. All
+     numeric values in Flash are 64 bit, _big-endian_.
+
+0x1
+     This specifies the data in the AMF packet is a boolean value.
+
+0x2
+     This specifies the data in the AMF packet is an _ASCII_ string.
+
+0x3
+     This specifies the data in the AMF packet is a Flash object. The
+     Flash object data type field further along in the message
+     specifies which type of ActionScript object it is.
+
+0x4
+     This specifies the data in the AMF packet is a Flash movie, ie.
+     another Flash movie.
+
+0x5
+     This specifies the data in the AMF packet is a NULL value. NULL is
+     often used as the return code from calling Flash functions.
+
+0x6
+     This specifies the data in the AMF packet is a undefined. This is
+     also used as the return code from calling Flash functions.
+
+0x7
+     This specifies the data in the AMF packet is a reference.
+
+0x8
+     This specifies the data in the AMF packet is a ECMA array.
+
+0x9
+     This specifies the data in the AMF packet is the end of an object
+     definition. As an object is transmitted with multiple AMF packets,
+     this lets the server know when the end of the object is reached.
+
+0xa
+     This specifies the data in the AMF packet is a Strict array.
+
+0xb
+     This specifies the data in the AMF packet is a date.
+
+0xc
+     This specifies the data in the AMF packet is a multi-byte string.
+     Multi-byte strings are used for international language support to
+     represent non _ASCII_ fonts.
+
+0xd
+     This specifies the data in the AMF packet is a an unsupported
+     feature.
+
+0xe
+     This specifies the data in the AMF packet is a record set.
+
+0xf
+     This specifies the data in the AMF packet is a AML object. XML
+     objects are then parsed by the _XML_ ActionScript class.
+
+0x10
+     This specifies the data in the AMF packet is a typed object.
+
+   For messages with a 12 byte header, the last 4 bytes are the routing
+of the message. If the destination is the server, this value is the
+NetStream object source. If the destination is the client, this is the
+NetStream object for this RTMP message. A value of 0x00000000 appears
+to be reserved for the NetConnection object.
+
+   Multiple AMF streams can be contained in a single RTMP messages, so
+it's important to check the index of each AMF packet.
+
+   An example RTMP header might look like this. (spaces added between
+fields for clarity) All the numbers are in hex.
+
+
+           03 000019 0000c9 14 000000000
+
+03
+     The first two bits of this byte are the size of the header, which
+     in this example is 00, for a 12 byte header. The next 6 bits is
+     the AMF stream index number, which in this example is 0x3.
+
+000019
+     These 3 bytes currently have an unknown purpose.
+
+000c9
+     Since this example has a 12 byte header, this is the size of the
+     RTMP message, in this case 201 bytes.
+
+14
+     This is the content type of the RTMP message, which in this case
+     is to invoke a remote function call. (which we later see is the
+     connect function).
+
+00000000
+     The source is the NetConnection object used to start this
+     connection.
+
+* Menu:
+
+* AMF Format::
+
+
+File: gnash_ref.info,  Node: AMF Format,  Up: RTMP Protocol
+
+6.1 AMF Format
+==============
+
+The AMF format is used in the LocalConnection, SharedObject,
+NetConnection, and NetStream ActionScript classes. This is a means of
+binary data interchange between Flash movies, or between a Flash player
+and a Flash server.
+
+   Like the RTMP messages, an AMF packet header can be of a variable
+size. The size is either the same as the initial header of the RTMP
+message, or a 1 byte header, which is commonly used for streaming audio
+or video data.
+
+   The body of an AMF packet may look something like this example. The
+spaces have been added for clarity.
+
+
+           02  0007 636f6e6e656374
+
+02
+     This is a single byte header. The value of the first 2 bits is
+     0x3, and the AMF index is also 0x3.
+
+0007
+     This is the length in bytes of the string.
+
+63 6f 6e 6e 65 63 74
+     This is the string. Note that there is no null terminator since
+     the length is specified.
+
+
+File: gnash_ref.info,  Node: Mozilla/Firefox NPAPI Plugin,  Next: Appendix,  
Prev: RTMP Protocol,  Up: Top
+
+7 Mozilla/Firefox NPAPI Plugin
+******************************
+
+The Mozilla SDK has two API layers for plugins. The older layer is
+documented in the Geeko Plugin API Reference
+(http://www.gnu.org/software/gnash/manual/plugin.pdf), and the newer
+layer doesn't appear to be documented. The new API is simpler, and is
+portable across multiple versions of Mozilla or Firefox. The new API is
+just a layer on top of the older one, so this manual still applies.
+
+   Most of the programming of a plugin is filling in real emphasis for
+the standard API functions and methods. Firefox uses these to create
+the plugin, and to send it data.
+
+   When initializing or destroying a plugin, no matter how many
+instances are being used, the C API is used. These functions are
+typically called once for each plugin that is loaded.
+
+* Menu:
+
+* Plugin C API::
+* Plugin C++ API::
+* OpenGL and Threads::
+* Plugin Event Handling::
+
+
+File: gnash_ref.info,  Node: Plugin C API,  Next: Plugin C++ API,  Up: 
Mozilla/Firefox NPAPI Plugin
+
+7.1 Plugin C API
+================
+
+The lower layer is a C based API which is used by Firefox to initialize
+and destroy a plugin. This is so a plugin can be portable across
+multiple systems, since C++ emphasis is not portable between most C++
+compilers. This is where most of the behind the scenes work is done in
+a plugin. For Gnash, the sources this lower layer are in
+_plugin/mozilla-sdk_. They were added to the Gnash source tree so it
+wouldn't be necessary to have the Mozilla development packages
+installed to compile the Gnash plugin.
+
+   This is also the older API used for plugins, so is usually the one
+used if you dig around for plugin examples on the web. These are the
+main functions which have to be implemented in a plugin for it to be
+recognized by the browser, and to be initialized and destroyed.
+
+NS_PluginInitialize
+     This C function gets called once when the plugin is loaded,
+     regardless of how many instantiations there are actually playing
+     movies. So this is where all the one time only initialization
+     stuff goes that is shared by all the threads.
+
+NS_NewPluginInstance
+     This instantiates a new object for the browser. Returning a
+     pointer to the C++ plugin object is what ties the C++ and C
+     emphasis parts of the API together.
+
+NS_DestroyPluginInstance
+     This destroys our instantiated object when the browser is done.
+
+NS_PluginShutdown
+     This is called when a plugin is shut down, so this is where all
+     the one time only shutdown stuff goes.
+
+NPP_GetMIMEDescription
+     This is called to get the MIME types the plugin supports.
+
+NS_PluginGetValue
+     This is used by Firefox to query information from the plugin, like
+     the supported MIME type, the version number, and a description.
+
+
+File: gnash_ref.info,  Node: Plugin C++ API,  Next: OpenGL and Threads,  Prev: 
Plugin C API,  Up: Mozilla/Firefox NPAPI Plugin
+
+7.2 Plugin C++ API
+==================
+
+The higher level layer is the one we are most concerned with. This is
+an instantiation of the _nsPluginInstanceBase_ class, as defined by the
+Mozilla SDK, for our plugin. With this API, a plugin is mostly defining
+the standard entry points for Firefox, and the emphasis that implements
+the glue between the Firefox and our plugin.
+
+   These are called for each instantiation of plugin. If there are
+three Flash movies on a web page, then three instances are created.
+Unfortunately for plugin programmers, these functions may randomly be
+called more than once, so it's good to use initialization flags for
+things that should only be done one per thread. For instance,
+_nsPluginInstance::init()_ and _nsPluginInstance::SetWindow()_ are
+called more than once, so the plugin must protect against actions that
+could be destructive.
+
+nsPluginInstance::nsPluginInstance
+     Create a new plugin object.
+
+nsPluginInstance::init
+     This methods initializes the plugin object, and is called for
+     every movie which gets played. This is where the thread-specific
+     information goes.
+
+nsPluginInstance::SetWindow
+     This sets up the window the plugin is supposed to render into.
+     This calls passes in various information used by the plugin to
+     setup the window. This may get called multiple times by each
+     instantiated object, so it can't do much but window specific setup
+     here. This is where the main emphasis is that sets up the window
+     for the plugin.
+
+nsPluginInstance::NewStream
+     Opens a new incoming data stream, which is the flash movie we want
+     to play. A URL can be pretty ugly, like in this example:
+     
http://www.sickwave.com/swf/navbar/navbar_sw.swf?atfilms=http%3a//www.atm.com/af/home/&shickwave=http%3a//www.sickwave.com&gblst=http%3a//gbst.sickwave.com/gb/gbHome.jsp&known=0
+     
../flash/gui.swf?ip_addr=foobar.com&ip_port=3660&show_cursor=true&path_prefix=../flash/&trapallkeys=true"
+     So this is where we parse the URL to get all the options passed in
+     when invoking the plugin.
+
+nsPluginInstance::Write
+     Read the data stream from Mozilla/Firefox.  For now we read the
+     bytes and write them to a disk file.
+
+nsPluginInstance::WriteReady
+     Return how many bytes we can read into the buffer.
+
+nsPluginInstance::DestroyStream
+     Destroy the data stream we've been reading. For Gnash, when the
+     stream is destroyed means we've grabbed the entire movie. So we
+     signal the thread to start reading and playing the movie.
+
+nsPluginInstance::shut
+     This is where the movie playing specific shutdown emphasis goes.
+
+nsPluginInstance::~nsPluginInstance
+     This destroys our plugin object.
+
+NS_PluginInitialize::initGL
+     This is a Gnash internal function that sets up OpenGL.
+
+NS_PluginInitialize::destroyContext
+     This is a Gnash internal function that destroys a GLX context.
+
+nsPluginInstance::getVersion
+     This returns the version of Mozilla this plugin supports.
+
+nsPluginInstance::GetValue
+     This returns information to the browser about the plugin's name
+     and description.
+
+nsPluginInstance::URLNotify
+
+
+File: gnash_ref.info,  Node: OpenGL and Threads,  Next: Plugin Event Handling, 
 Prev: Plugin C++ API,  Up: Mozilla/Firefox NPAPI Plugin
+
+7.3 OpenGL and Threads
+======================
+
+Neither OpenGL nor X11 has any built-in support for threads. Most
+actions aren't even atomic, so care has to be made to not corrupt any
+internal data. While it is difficult to render OpenGL from multiple
+threads, it can be done with the proper locking. The downside is the
+locking adds a performance hit, since all the threads will have to have
+the access synchronized by using mutexes.
+
+   The X11 context is maintained one per instantiation of the plugin.
+It is necessary to lock access to the X11 context when using threads by
+using _XLockDisplay()_ and _XUnlockDisplay()_. A connection to the X11
+server is opened for every instantiation of the plugin using
+_XOpenDisplay()_.
+
+   The _GLX Context_ is maintained one per instantiation of the plugin
+for a web page. If there are more than one Flash movie, there is more
+than one GLX Context. A GLX context can be created by using
+_glXCreateContext()_, and then later destroyed by using
+_glXDestroyContext()_.  When swapping threads, the context is changed
+using _glXMakeCurrent()_.
+
+   All the emphasis that directly accesses a GLX context or the X11
+display must be wrapped with a mutex.
+
+
+File: gnash_ref.info,  Node: Plugin Event Handling,  Prev: OpenGL and Threads, 
 Up: Mozilla/Firefox NPAPI Plugin
+
+7.4 Plugin Event Handling
+=========================
+
+Firefox on most UNIX systems is a GTK+ application, so it is possible
+to have the plugin hook into the X11 event handling via GLX or GTK.
+Since Firefox uses GTK, so does Gnash. This also allows the addition of
+a right-click mouse menu for controlling the player. The GTK build of
+Gnash offers the best browsing experience as it's more functional than
+the SDL version.
+
+   It is also possible to disable the _GTK_ support so only the older
+_SDL_ support is used. In this case Gnash can't support event handling
+within the browser. This means that when using the SDL of the plugin,
+mouse clicks and keys pressed get ignored. Windows also can't be
+resized, and sometimes they overrun their boundaries as well. To
+disable the GTK support and force SDL to be used anyway, configure with
+_-disable-glext_
+
+
+File: gnash_ref.info,  Node: Appendix,  Next: Authors,  Prev: Mozilla/Firefox 
NPAPI Plugin,  Up: Top
+
+8 Appendix
+**********
+
+* Menu:
+
+* Code Style::
+
+
+File: gnash_ref.info,  Node: Code Style,  Up: Appendix
+
+8.1 Code Style
+==============
+
+I know any discussion of coding styles leads to strong opinions, so
+I'll state simply I follow the GNU Coding Standards
+(http://www.gnu.org/prep/standards/standards.html). Where there is some
+flexibility as to the location of braces, I prefer mine on the end of a
+line when using an _if_, _while_, or _do_ statement. I find this more
+compact style easier to read and parse by eye. I'm also a big fan of
+always using braces around _if_ statements, even if they're one liners.
+
+   Here's my tweaked style settings for _Emacs_, the one true editor to
+rule them all.
+
+
+           (defconst my-style
+               '((c-tab-always-indent   . t)
+                (c-auto-newline           . t)
+                (c-hanging-braces-alist . (
+                                  (brace-list-intro)
+                                  (namespace-open)
+                                  (inline-open)
+                                  (block-open)
+                                  (brace-list-open)
+                                  (brace-list-close)
+                                  (brace-entry-open)
+                                  (brace-else-brace)
+                                  (brace-elseif-brace)
+                                  (class-open after)
+                                  (class-close)
+                                  (defun-open after)
+                                  (defun-close)
+                                  (extern-lang-open)
+                                  (inexpr-class-open)
+                                  (statement-open)
+                                  (substatement-open)
+                                  (inexpr-class-close)))
+                 (c-hanging-colons-alist . ((member-init-intro before)
+                                        (inher-intro)
+                                        (case-label after)
+                                        (label after)
+                                        (access-label after)))
+                 (c-offsets-alist      . (
+                                  (innamespace . 0)
+                                        (case-label  . 2)
+                                  ))
+                 (c-cleanup-list       . (
+                                  (scope-operator)
+                                  (empty-defun-braces)
+                                  (brace-else-brace)
+                                  (brace-elseif-brace)
+                                  (defun-close-semi)
+                                  (list-close-comma)
+                                  )
+                               )
+         ;; no automatic newlines after ';' if following line non-blank or 
inside
+         ;; one-line inline methods
+         (add-to-list 'c-hanging-semi&comma-criteria
+                'c-semi&comma-no-newlines-before-nonblanks)
+         (add-to-list 'c-hanging-semi&comma-criteria
+                'c-semi&comma-no-newlines-for-oneline-inliners)
+     ;    (knr-argdecl-intro . -)
+         (c-echo-syntactic-information-p . t)
+         )
+       "My GNU Programming Style")
+
+   Another coding consideration: comments are good!  Over commenting
+isn't good.  Here is an over commented example:
+
+
+       counter++;              // increment counter
+
+Gnash also uses Doxygen (http://www.doxygen.org) style comments. These
+are processed by Doxygen when building a cross reference of all the
+classes, and is a good way to help push internals documentation from
+the depths of the code into documentation where it can be seen by
+others.
+
+   _Doxygen_ style comments for _C++_ code involves simply using three
+slashes _///_ instead of the standard two slashes _//_ used for C++
+comments. Here's a short comment block for the _XML::cloneNode()_
+method:
+
+
+       /// \brief copy a node
+       ///
+       /// Method; constructs and returns a new XML node of the same type,
+       /// name, value, and attributes as the specified XML object. If deep
+       /// is set to true, all child nodes are recursively cloned, resulting
+       /// in an exact copy of the original object's document tree.
+       XMLNode &
+       XML::cloneNode(XMLNode &newnode, bool deep) {
+       ...
+       }
+
+   The _\brief_ keyword means that the text becomes associated when
+listing all the classes on the generated web pages. The text after the
+blank link becomes the detailed description which appears on the
+generated web page for that class and method.
+
+
+File: gnash_ref.info,  Node: Authors,  Next: GNU Free Documentation License,  
Prev: Appendix,  Up: Top
+
+9 Authors
+*********
+
+Gnash is maintained by Rob Savoye. Other active developers are: Sandro
+Santilli, Bastiaan Jacques, Udo Giacomozzi, Chad Musick, Benjamin
+Wolsey, and Zou Lunkai. Please send all comments and suggestions to
+<address@hidden>. Past and sometimes current developers are Tomas
+Groth and Markus Gothe.
+
+   Gnash was initially derived from GameSWF.  GameSWF is maintained by
+Thatcher Ulrich <address@hidden>.  The following people contributed to
+GameSWF: Mike Shaver, Thierry Berger-Perrin, Ignacio Castan~o, Willem
+Kokke, Vitaly Alexeev, Alexander Streit, and Rob Savoye.
+
+
+File: gnash_ref.info,  Node: GNU Free Documentation License,  Prev: Authors,  
Up: Top
+
+Appendix A GNU Free Documentation License
+*****************************************
+
+* Menu:
+
+* 0. PREAMBLE: 0_ PREAMBLE.
+* 1. APPLICABILITY AND DEFINITIONS: 1_ APPLICABILITY AND DEFINITIONS.
+* 2. VERBATIM COPYING: 2_ VERBATIM COPYING.
+* 3. COPYING IN QUANTITY: 3_ COPYING IN QUANTITY.
+* 4. MODIFICATIONS: 4_ MODIFICATIONS.
+* 5. COMBINING DOCUMENTS: 5_ COMBINING DOCUMENTS.
+* 6. COLLECTIONS OF DOCUMENTS: 6_ COLLECTIONS OF DOCUMENTS.
+* 7. AGGREGATION WITH INDEPENDENT WORKS: 7_ AGGREGATION WITH INDEPENDENT WORKS.
+* 8. TRANSLATION: 8_ TRANSLATION.
+* 9. TERMINATION: 9_ TERMINATION.
+* 10. FUTURE REVISIONS OF THIS LICENSE: 10_ FUTURE REVISIONS OF THIS LICENSE.
+* Addendum::
+
+
+File: gnash_ref.info,  Node: 0_ PREAMBLE,  Next: 1_ APPLICABILITY AND 
DEFINITIONS,  Up: GNU Free Documentation License
+
+A.1 0. PREAMBLE
+===============
+
+The purpose of this License is to make a manual, textbook, or other
+written document "free" in the sense of freedom: to assure everyone the
+effective freedom to copy and redistribute it, with or without
+modifying it, either commercially or non-commercially. Secondarily,
+this License preserves for the author and publisher a way to get credit
+for their work, while not being considered responsible for
+modifications made by others.
+
+   This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense. It
+complements the GNU General Public License, which is a copyleft license
+designed for free software.
+
+   We have designed this License in order to use it for manuals for
+free software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does. But this License is not limited to software manuals; it
+can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book. We recommend this License
+principally for works whose purpose is instruction or reference.
+
+
+File: gnash_ref.info,  Node: 1_ APPLICABILITY AND DEFINITIONS,  Next: 2_ 
VERBATIM COPYING,  Prev: 0_ PREAMBLE,  Up: GNU Free Documentation License
+
+A.2 1. APPLICABILITY AND DEFINITIONS
+====================================
+
+This License applies to any manual or other work that contains a notice
+placed by the copyright holder saying it can be distributed under the
+terms of this License. The "Document", below, refers to any such manual
+or work. Any member of the public is a licensee, and is addressed as
+"you".
+
+   A "Modified Version" of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+   A "Secondary Section" is a named appendix or a front-matter section
+of the Document (*note fdl-document::) that deals exclusively with the
+relationship of the publishers or authors of the Document to the
+Document's overall subject (or to related matters) and contains nothing
+that could fall directly within that overall subject. (For example, if
+the Document is in part a textbook of mathematics, a Secondary Section
+may not explain any mathematics.)  The relationship could be a matter
+of historical connection with the subject or with related matters, or of
+legal, commercial, philosophical, ethical or political position
+regarding them.
+
+   The "Invariant Sections" are certain  Secondary Sections (*note
+fdl-secondary::) whose titles are designated, as being those of
+Invariant Sections, in the notice that says that the Document (*note
+fdl-document::) is released under this License.
+
+   The "Cover Texts" are certain short passages of text that are
+listed, as Front-Cover Texts or Back-Cover Texts, in the notice that
+says that the Document (*note fdl-document::) is released under this
+License.
+
+   A "Transparent" copy of the  Document (*note fdl-document::) means a
+machine-readable copy, represented in a format whose specification is
+available to the general public, whose contents can be viewed and edited
+directly and straightforwardly with generic text editors or (for images
+composed of pixels) generic paint programs or (for drawings) some
+widely available drawing editor, and that is suitable for input to text
+formatters or for automatic translation to a variety of formats
+suitable for input to text formatters. A copy made in an otherwise
+Transparent file format whose markup has been designed to thwart or
+discourage subsequent modification by readers is not Transparent.  A
+copy that is not "Transparent" is called "Opaque".
+
+   Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input format, SGML or
+XML using a publicly available DTD, and standard-conforming simple HTML
+designed for human modification. Opaque formats include PostScript, PDF,
+proprietary formats that can be read and edited only by proprietary
+word processors, SGML or XML for which the DTD and/or processing tools
+are not generally available, and the machine-generated HTML produced by
+some word processors for output purposes only.
+
+   The "Title Page" means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page. For works in formats
+which do not have any title page as such, "Title Page" means the text
+near the most prominent appearance of the work's title, preceding the
+beginning of the body of the text.
+
+
+File: gnash_ref.info,  Node: 2_ VERBATIM COPYING,  Next: 3_ COPYING IN 
QUANTITY,  Prev: 1_ APPLICABILITY AND DEFINITIONS,  Up: GNU Free Documentation 
License
+
+A.3 2. VERBATIM COPYING
+=======================
+
+You may copy and distribute the Document (*note fdl-document::) in any
+medium, either commercially or noncommercially, provided that this
+License, the copyright notices, and the license notice saying this
+License applies to the Document are reproduced in all copies, and that
+you add no other conditions whatsoever to those of this License. You
+may not use technical measures to obstruct or control the reading or
+further copying of the copies you make or distribute. However, you may
+accept compensation in exchange for copies. If you distribute a large
+enough number of copies you must also follow the conditions in section
+3 (*note 3_ COPYING IN QUANTITY::).
+
+   You may also lend copies, under the same conditions stated above,
+and you may publicly display copies.
+
+
+File: gnash_ref.info,  Node: 3_ COPYING IN QUANTITY,  Next: 4_ MODIFICATIONS,  
Prev: 2_ VERBATIM COPYING,  Up: GNU Free Documentation License
+
+A.4 3. COPYING IN QUANTITY
+==========================
+
+If you publish printed copies of the Document (*note fdl-document::)
+numbering more than 100, and the Document's license notice requires
+Cover Texts (*note fdl-cover-texts::), you must enclose the copies in
+covers that carry, clearly and legibly, all these Cover Texts:
+Front-Cover Texts on the front cover, and Back-Cover Texts on the back
+cover. Both covers must also clearly and legibly identify you as the
+publisher of these copies. The front cover must present the full title
+with all words of the title equally prominent and visible. You may add
+other material on the covers in addition. Copying with changes limited
+to the covers, as long as they preserve the title of the Document
+(*note fdl-document::) and satisfy these conditions, can be treated as
+verbatim copying in other respects.
+
+   If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+   If you publish or distribute Opaque (*note fdl-transparent::) copies
+of the Document (*note fdl-document::) numbering more than 100, you
+must either include a machine-readable Transparent (*note
+fdl-transparent::) copy along with each Opaque copy, or state in or
+with each Opaque copy a publicly-accessible computer-network location
+containing a complete Transparent copy of the Document, free of added
+material, which the general network-using public has access to download
+anonymously at no charge using public-standard network protocols. If
+you use the latter option, you must take reasonably prudent steps, when
+you begin distribution of Opaque copies in quantity, to ensure that
+this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+   It is requested, but not required, that you contact the authors of
+the Document (*note fdl-document::) well before redistributing any
+large number of copies, to give them a chance to provide you with an
+updated version of the Document.
+
+
+File: gnash_ref.info,  Node: 4_ MODIFICATIONS,  Next: 5_ COMBINING DOCUMENTS,  
Prev: 3_ COPYING IN QUANTITY,  Up: GNU Free Documentation License
+
+A.5 4. MODIFICATIONS
+====================
+
+You may copy and distribute a Modified Version (*note fdl-modified::)
+of the Document (*note fdl-document::) under the conditions of sections
+2 (*note 2_ VERBATIM COPYING::) and 3 (*note 3_ COPYING IN QUANTITY::)
+above, provided that you release the Modified Version under precisely
+this License, with the Modified Version filling the role of the
+Document, thus licensing distribution and modification of the Modified
+Version to whoever possesses a copy of it. In addition, you must do
+these things in the Modified Version:
+
+   * *A. * Use in the Title Page (*note fdl-title-page::) (and on the
+     covers, if any) a title distinct from that of the Document (*note
+     fdl-document::), and from those of previous versions (which
+     should, if there were any, be listed in the History section of the
+     Document). You may use the same title as a previous version if the
+     original publisher of that version gives permission.
+
+   * *B. * List on the Title Page (*note fdl-title-page::), as authors,
+     one or more persons or entities responsible for authorship of the
+     modifications in the Modified Version (*note fdl-modified::),
+     together with at least five of the principal authors of the
+     Document (*note fdl-document::) (all of its principal authors, if
+     it has less than five).
+
+   * *C. * State on the Title Page (*note fdl-title-page::) the name of
+     the publisher of the Modified Version (*note fdl-modified::), as
+     the publisher.
+
+   * *D. * Preserve all the copyright notices of the Document (*note
+     fdl-document::).
+
+   * *E. * Add an appropriate copyright notice for your modifications
+     adjacent to the other copyright notices.
+
+   * *F. * Include, immediately after the copyright notices, a license
+     notice giving the public permission to use the Modified Version
+     (*note fdl-modified::) under the terms of this License, in the
+     form shown in the Addendum below.
+
+   * *G. * Preserve in that license notice the full lists of  Invariant
+     Sections (*note fdl-invariant::) and required Cover Texts (*note
+     fdl-cover-texts::) given in the Document's (*note fdl-document::)
+     license notice.
+
+   * *H. * Include an unaltered copy of this License.
+
+   * *I. * Preserve the section entitled "History", and its title, and
+     add to it an item stating at least the title, year, new authors,
+     and publisher of the Modified Version  (*note fdl-modified::)as
+     given on the Title Page (*note fdl-title-page::).  If there is no
+     section entitled "History" in the Document (*note fdl-document::),
+     create one stating the title, year, authors, and publisher of the
+     Document as given on its Title Page, then add an item describing
+     the Modified Version as stated in the previous sentence.
+
+   * *J. * Preserve the network location, if any, given in the Document
+     (*note fdl-document::) for public access to a Transparent (*note
+     fdl-transparent::) copy of the Document, and likewise the network
+     locations given in the Document for previous versions it was based
+     on. These may be placed in the "History" section.  You may omit a
+     network location for a work that was published at least four years
+     before the Document itself, or if the original publisher of the
+     version it refers to gives permission.
+
+   * *K. * In any section entitled "Acknowledgements" or "Dedications",
+     preserve the section's title, and preserve in the section all the
+     substance and tone of each of the contributor acknowledgements
+     and/or dedications given therein.
+
+   * *L. * Preserve all the Invariant Sections (*note fdl-invariant::)
+     of the Document (*note fdl-document::), unaltered in their text
+     and in their titles.  Section numbers or the equivalent are not
+     considered part of the section titles.
+
+   * *M. * Delete any section entitled "Endorsements". Such a section
+     may not be included in the Modified Version (*note fdl-modified::).
+
+   * *N. * Do not retitle any existing section as "Endorsements" or to
+     conflict in title with any Invariant Section (*note
+     fdl-invariant::).
+
+   If the Modified Version (*note fdl-modified::) includes new
+front-matter sections or appendices that qualify as Secondary Sections
+(*note fdl-secondary::) and contain no material copied from the
+Document, you may at your option designate some or all of these
+sections as invariant. To do this, add their titles to the list of
+Invariant Sections (*note fdl-invariant::) in the Modified Version's
+license notice.  These titles must be distinct from any other section
+titles.
+
+   You may add a section entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version (*note
+fdl-modified::) by various parties-for example, statements of peer
+review or that the text has been approved by an organization as the
+authoritative definition of a standard.
+
+   You may add a passage of up to five words as a Front-Cover Text
+(*note fdl-cover-texts::), and a passage of up to 25 words as a
+Back-Cover Text (*note fdl-cover-texts::), to the end of the list of
+Cover Texts (*note fdl-cover-texts::) in the Modified Version (*note
+fdl-modified::).  Only one passage of Front-Cover Text and one of
+Back-Cover Text may be added by (or through arrangements made by) any
+one entity. If the Document (*note fdl-document::) already includes a
+cover text for the same cover, previously added by you or by
+arrangement made by the same entity you are acting on behalf of, you
+may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+   The author(s) and publisher(s) of the Document (*note
+fdl-document::) do not by this License give permission to use their
+names for publicity for or to assert or imply endorsement of any
+Modified Version  (*note fdl-modified::).
+
+
+File: gnash_ref.info,  Node: 5_ COMBINING DOCUMENTS,  Next: 6_ COLLECTIONS OF 
DOCUMENTS,  Prev: 4_ MODIFICATIONS,  Up: GNU Free Documentation License
+
+A.6 5. COMBINING DOCUMENTS
+==========================
+
+You may combine the Document (*note fdl-document::) with other
+documents released under this License, under the terms defined in
+section 4 (*note 4_ MODIFICATIONS::) above for modified versions,
+provided that you include in the combination all of the Invariant
+Sections (*note fdl-invariant::) of all of the original documents,
+unmodified, and list them all as Invariant Sections of your combined
+work in its license notice.
+
+   The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections (*note fdl-invariant::) may be
+replaced with a single copy. If there are multiple Invariant Sections
+with the same name but different contents, make the title of each such
+section unique by adding at the end of it, in parentheses, the name of
+the original author or publisher of that section if known, or else a
+unique number. Make the same adjustment to the section titles in the
+list of Invariant Sections in the license notice of the combined work.
+
+   In the combination, you must combine any sections entitled "History"
+in the various original documents, forming one section entitled
+"History"; likewise combine any sections entitled "Acknowledgements",
+and any sections entitled "Dedications".  You must delete all sections
+entitled "Endorsements."
+
+
+File: gnash_ref.info,  Node: 6_ COLLECTIONS OF DOCUMENTS,  Next: 7_ 
AGGREGATION WITH INDEPENDENT WORKS,  Prev: 5_ COMBINING DOCUMENTS,  Up: GNU 
Free Documentation License
+
+A.7 6. COLLECTIONS OF DOCUMENTS
+===============================
+
+You may make a collection consisting of the Document (*note
+fdl-document::) and other documents released under this License, and
+replace the individual copies of this License in the various documents
+with a single copy that is included in the collection, provided that
+you follow the rules of this License for verbatim copying of each of the
+documents in all other respects.
+
+   You may extract a single document from such a collection, and
+distribute it individually under this License, provided you insert a
+copy of this License into the extracted document, and follow this
+License in all other respects regarding verbatim copying of that
+document.
+
+
+File: gnash_ref.info,  Node: 7_ AGGREGATION WITH INDEPENDENT WORKS,  Next: 8_ 
TRANSLATION,  Prev: 6_ COLLECTIONS OF DOCUMENTS,  Up: GNU Free Documentation 
License
+
+A.8 7. AGGREGATION WITH INDEPENDENT WORKS
+=========================================
+
+A compilation of the Document (*note fdl-document::) or its derivatives
+with other separate and independent documents or works, in or on a
+volume of a storage or distribution medium, does not as a whole count
+as a Modified Version (*note fdl-modified::) of the Document, provided
+no compilation copyright is claimed for the compilation.  Such a
+compilation is called an "aggregate", and this License does not apply
+to the other self-contained works thus compiled with the Document , on
+account of their being thus compiled, if they are not themselves
+derivative works of the Document.  If the Cover Text (*note
+fdl-cover-texts::) requirement of section 3 (*note 3_ COPYING IN
+QUANTITY::) is applicable to these copies of the Document, then if the
+Document is less than one quarter of the entire aggregate, the
+Document's Cover Texts may be placed on covers that surround only the
+Document within the aggregate. Otherwise they must appear on covers
+around the whole aggregate.
+
+
+File: gnash_ref.info,  Node: 8_ TRANSLATION,  Next: 9_ TERMINATION,  Prev: 7_ 
AGGREGATION WITH INDEPENDENT WORKS,  Up: GNU Free Documentation License
+
+A.9 8. TRANSLATION
+==================
+
+Translation is considered a kind of modification, so you may distribute
+translations of the Document (*note fdl-document::) under the terms of
+section 4 (*note 4_ MODIFICATIONS::). Replacing  Invariant Sections
+(*note fdl-invariant::) with translations requires special permission
+from their copyright holders, but you may include translations of some
+or all Invariant Sections in addition to the original versions of these
+Invariant Sections. You may include a translation of this License
+provided that you also include the original English version of this
+License. In case of a disagreement between the translation and the
+original English version of this License, the original English version
+will prevail.
+
+
+File: gnash_ref.info,  Node: 9_ TERMINATION,  Next: 10_ FUTURE REVISIONS OF 
THIS LICENSE,  Prev: 8_ TRANSLATION,  Up: GNU Free Documentation License
+
+A.10 9. TERMINATION
+===================
+
+You may not copy, modify, sublicense, or distribute the Document (*note
+fdl-document::) except as expressly provided for under this License.
+Any other attempt to copy, modify, sublicense or distribute the
+Document is void, and will automatically terminate your rights under
+this License. However, parties who have received copies, or rights,
+from you under this License will not have their licenses terminated so
+long as such parties remain in full compliance.
+
+
+File: gnash_ref.info,  Node: 10_ FUTURE REVISIONS OF THIS LICENSE,  Next: 
Addendum,  Prev: 9_ TERMINATION,  Up: GNU Free Documentation License
+
+A.11 10. FUTURE REVISIONS OF THIS LICENSE
+=========================================
+
+The Free Software Foundation (http://www.gnu.org/fsf/fsf.html) may
+publish new, revised versions of the GNU Free Documentation License
+from time to time. Such new versions will be similar in spirit to the
+present version, but may differ in detail to address new problems or
+concerns. See http://www.gnu.org/copyleft/
+(http://www.gnu.org/copyleft).
+
+   Each version of the License is given a distinguishing version
+number. If the Document (*note fdl-document::) specifies that a
+particular numbered version of this License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that specified version or of any later version
+that has been published (not as a draft) by the Free Software
+Foundation. If the Document does not specify a version number of this
+License, you may choose any version ever published (not as a draft) by
+the Free Software Foundation.
+
+
+File: gnash_ref.info,  Node: Addendum,  Prev: 10_ FUTURE REVISIONS OF THIS 
LICENSE,  Up: GNU Free Documentation License
+
+A.12 Addendum
+=============
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and license
+notices just after the title page:
+
+     Copyright 2008, Free Software Foundation.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.1 or any later version published by the Free Software
+     Foundation; with noInvariant Sections (*note fdl-invariant::),
+     with no Front-Cover Texts (*note fdl-cover-texts::), and with no
+     Back-Cover Texts (*note fdl-cover-texts::). A copy of the license
+     is included in the section entitled "GNU Free Documentation
+     License".
+
+   If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License
+(http://www.gnu.org/copyleft/gpl.html), to permit their use in free
+software.
+
+
+
+Tag Table:
+Node: Top168
+Node: Introduction1998
+Node: Audience2803
+Node: What Is Supported?3130
+Node: Building from Source5647
+Node: Overview6027
+Node: Getting The Source7069
+Node: Releases7275
+Node: CVS Access7643
+Node: Code Dependencies8355
+Ref: Code Dependency Table9052
+Node: Testing Dependencies34567
+Ref: Testing Dependency Table34875
+Node: Documentation Dependencies38799
+Ref: Documentation Dependency Table39068
+Node: Configuring Gnash48136
+Node: Features50430
+Ref: Configuration Options - Features51030
+Node: Specifying Custom Paths57360
+Ref: Custom Path Options57830
+Node: Compiling the Code67453
+Node: Creating the Documentation68394
+Node: Running the Tests69740
+Node: Using DejaGnu70194
+Node: Increasing Verbosity70557
+Node: Running Some Tests71093
+Node: Running The Tests Manually71913
+Node: Movie tests72575
+Node: ActionScript Unit Tests72929
+Node: Installation73246
+Node: Libraries74559
+Node: Executables75415
+Node: Documentation76285
+Node: Cross Configuring77040
+Node: Software Internals80120
+Node: A Tour of Gnash80389
+Node: The Libraries80941
+Node: libgnashbase81228
+Node: libgnashgui81652
+Node: libgnashserver81922
+Node: libgnashasobjs82293
+Node: libgnashamf82529
+Node: libgnashbackend82952
+Node: libgnashplugin83267
+Node: libklashpart83473
+Node: The Applications83643
+Node: The Standalone Player84013
+Node: Gprocessor84310
+Node: SOLdumper84704
+Node: Dumpshm84971
+Node: The Plugin85190
+Node: Current Status85668
+Node: GUI Support86226
+Node: Mozplugger87907
+Node: Klash89798
+Node: The Debug Logging System90348
+Node: Logging System C API91909
+Node: Logging System C++ API94113
+Node: Sound handling in Gnash95954
+Node: Sound types96697
+Node: Sound parsing97234
+Node: Sound playback97802
+Node: The SDL sound backend98332
+Node: The Gstreamer backend99651
+Node: Future audio backends100667
+Node: Detailed description of the Gstreamer backend101157
+Node: Testing103408
+Node: Testing Tools103879
+Node: Test Cases104711
+Node: Writing ActionScript Tests105290
+Node: Writing Ming-based self-contained SWF tests107793
+Node: Using Ming-based test generators facilities108950
+Node: Writing self-contained SWF tests with other compilers111310
+Node: Writing Test Runners114435
+Node: Using the generic test runner for self-contained SWF tests116184
+Node: Writing Movie testers118274
+Node: Adding New ActionScript Class120014
+Node: Prototype121194
+Node: Declaration122611
+Node: Instantiation122876
+Node: Methods123503
+Node: Accessing Arguments123894
+Node: Returning a Value to ActionScript124290
+Node: Additional fn_call Members124669
+Node: Dynamic Properties125523
+Node: The as_value Object Type127028
+Node: Data Types127466
+Node: Determining the Type127787
+Node: Fetching the Value128319
+Node: Setting the Value and Type128809
+Node: Further Reading129403
+Node: Object ActionScript Class129818
+Node: The Methods of the Class130158
+Node: The Properties of the Object Class130497
+Node: Object Class Conformance130812
+Node: Reporting Bugs132351
+Node: Get a Fresh Binary Package133343
+Node: Determine if the bug was previously reported134121
+Node: Review the bug writing guidelines134939
+Node: Filing a bug report135990
+Node: Gnash Extensions136273
+Node: Creating A New Extension138543
+Node: Crafting an Extension139961
+Node: Debugging An Extension144265
+Node: Included Extensions145957
+Node: Gtk Extension146401
+Node: File I/O Extension147388
+Node: MySQL Extension148574
+Node: RTMP Protocol149425
+Node: AMF Format159221
+Node: Mozilla/Firefox NPAPI Plugin160197
+Node: Plugin C API161215
+Node: Plugin C++ API163074
+Node: OpenGL and Threads166338
+Node: Plugin Event Handling167666
+Node: Appendix168635
+Node: Code Style168787
+Node: Authors172617
+Node: GNU Free Documentation License173313
+Node: 0_ PREAMBLE174076
+Node: 1_ APPLICABILITY AND DEFINITIONS175382
+Ref: fdl-document175607
+Ref: fdl-modified175898
+Ref: fdl-secondary176085
+Ref: fdl-invariant176730
+Ref: fdl-cover-texts176979
+Ref: fdl-transparent177192
+Ref: fdl-title-page178482
+Node: 2_ VERBATIM COPYING178871
+Node: 3_ COPYING IN QUANTITY179851
+Node: 4_ MODIFICATIONS182208
+Node: 5_ COMBINING DOCUMENTS188268
+Node: 6_ COLLECTIONS OF DOCUMENTS189765
+Node: 7_ AGGREGATION WITH INDEPENDENT WORKS190656
+Node: 8_ TRANSLATION191884
+Node: 9_ TERMINATION192787
+Node: 10_ FUTURE REVISIONS OF THIS LICENSE193442
+Node: Addendum194582
+
+End Tag Table
+
+
+Local Variables:
+coding: US-ASCII
+End:

Index: doc/C/preformatted/gnash_user.html.in
===================================================================
RCS file: doc/C/preformatted/gnash_user.html.in
diff -N doc/C/preformatted/gnash_user.html.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/preformatted/gnash_user.html.in       3 Mar 2008 23:46:43 -0000       
1.1.2.1
@@ -0,0 +1,1316 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=ISO-8859-1"><title>Gnash User Manual</title><meta name="generator" 
content="DocBook XSL Stylesheets V1.73.2"></head><body bgcolor="white" 
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" 
lang="en"><div class="titlepage"><div><div><h1 class="title"><a 
name="index"></a>Gnash User Manual</h1></div><div><p class="releaseinfo">
+        This manual describes version 0.8.2 of Gnash.
+    </p></div><div><p class="copyright">Copyright © 2005, 2006, 2007, 2008 
Free Software Foundation</p></div><div><div class="legalnotice"><a 
name="legalnotice"></a><p>
+    Permission is granted to copy, distribute and/or modify this document
+    under the terms of the <a class="link" href="#fdl" title="Appendix A. GNU 
Free Documentation License"><em class="citetitle">GNU
+    Free Documentation License</em></a>, Version 1.1 or any later
+    version published by the Free Software Foundation with no Invariant
+    Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find
+    a copy of the GFDL at this 
+    <a class="link" href="#fdl" title="Appendix A. GNU Free Documentation 
License">link</a> or in the file COPYING-DOCS
+    distributed with this manual.
+   </p></div></div><div><div class="revhistory"><table border="1" width="100%" 
summary="Revision history"><tr><th align="left" valign="top" 
colspan="2"><b>Revision History</b></th></tr><tr><td align="left">Revision 
Gnash User Manual version 0.1</td><td align="left">Feb 2008</td></tr><tr><td 
align="left" colspan="2"> 
+      <p class="author">Rob Savoye
+      <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>
+      The end user parts of the manual have been pulled out of
+      the original version of the manual and rewritten.
+      </p>
+      
+      <p class="publisher">Open Media Now! Foundation</p>
+    </td></tr></table></div></div></div><hr></div><div class="toc"><p><b>Table 
of Contents</b></p><dl><dt><span class="chapter"><a href="#intro">1. 
Introduction</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="#audience">Audience</a></span></dt><dt><span class="sect1"><a 
href="#runs-on">What Is Supported?</a></span></dt></dl></dd><dt><span 
class="chapter"><a href="#usage">2. Using <span 
class="application">Gnash</span></a></span></dt><dd><dl><dt><span 
class="sect1"><a href="#options"><span class="application">Gnash</span> Command 
Line Options</a></span></dt><dt><span class="sect1"><a href="#keys"><span 
class="application">Gnash</span> Interactive Control 
Keys</a></span></dt><dt><span class="sect1"><a href="#gnashrc">User 
Configuration File</a></span></dt></dl></dd><dt><span class="chapter"><a 
href="#build">3. Installing and Configuring 
Gnash</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="#requirements">Requirements</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#hardware">Hardware 
Requirements</a></span></dt><dt><span class="sect2"><a 
href="#software">Software Requirements</a></span></dt></dl></dd><dt><span 
class="sect1"><a href="#downloading">Downloading 
Gnash</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="#gettingsource">Getting the Source</a></span></dt><dt><span 
class="sect2"><a href="#getcodecs">Getting Codec 
Support</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a 
href="#bugreport">4. Reporting Bugs</a></span></dt><dd><dl><dt><span 
class="sect1"><a href="#bugstep_package">Get a Fresh Binary 
Package</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_search">Determine if the bug was previously 
reported</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_guidelines">Review the bug writing 
guidelines</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_file">Filing a bug report</a></span></dt></dl></dd><dt><span 
class="glossary"><a href="#glossary">Glossary</a></span></dt><dt><span 
class="chapter"><a href="#authors">5. Authors</a></span></dt><dt><span 
class="appendix"><a href="#fdl">A. GNU Free Documentation 
License</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="#fdl-preamble">0. PREAMBLE</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section1">1. APPLICABILITY AND DEFINITIONS</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section2">2. VERBATIM 
COPYING</a></span></dt><dt><span class="sect1"><a href="#fdl-section3">3. 
COPYING IN QUANTITY</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section4">4. MODIFICATIONS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section5">5. COMBINING DOCUMENTS</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section6">6. COLLECTIONS OF 
DOCUMENTS</a></span></dt><dt><span class="sect1"><a href="#fdl-section7">7. 
AGGREGATION WITH INDEPENDENT WORKS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section8">8. TRANSLATION</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section9">9. TERMINATION</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section10">10. FUTURE REVISIONS OF THIS 
LICENSE</a></span></dt><dt><span class="sect1"><a 
href="#fdl-using">Addendum</a></span></dt></dl></dd></dl></div><div 
class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>2.1. <a 
href="#tb-command-line-options">Gnash Command Line Options</a></dt><dt>2.2. <a 
href="#tb-control-keys">Gnash Interactive Control Keys</a></dt><dt>2.3. <a 
href="#tb-config-variables">User Configuration Variables</a></dt><dt>3.1. <a 
href="#tb-os-cpu">Build Matrix</a></dt></dl></div><div class="chapter" 
lang="en"><div class="titlepage"><div><div><h2 class="title"><a 
name="intro"></a>Chapter 1. Introduction</h2></div></div></div><div 
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a 
href="#audience">Audience</a></span></dt><dt><span class="sect1"><a 
href="#runs-on">What Is Supported?</a></span></dt></dl></div><p>
+    <span class="application">Gnash</span> is a free SWF movie player.  It is 
available as a
+    stand-alone application or as a plugin for several popular
+    web browsers. It supports playing media from a disk or streaming
+    over a network connection. Some popular video sharing sites like
+    YouTube are supported on a wide variety of devices from
+    embedded ones to modern desktops.
+  </p><p>
+    <span class="application">Gnash</span> has a better focus on security, 
allowing the user tight
+    control of all network or disk based I/O. Gnash also supports
+    extending ActionScript by creating your own classes. You can write
+    wrappers for any development library, and import them into the
+    player much like Perl or Python does.
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a 
name="audience"></a>Audience</h2></div></div></div><p>
+      This manual is primarily focused on users interested in how to
+      get Gnash installed from a package, and basic usage as a web
+      browser plugin. For more technical details, please refer to the
+      Gnash Reference manual.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="runs-on"></a>What Is Supported?</h2></div></div></div><p>
+      Gnash is known to compile for most any POSIX and ANSI C++
+      conforming system if you have all the dependent libraries
+      installed. Systems we test on, and which Gnash is known to
+      run on are Ubuntu, Fedora, Debian, Mandriva, OpenBSD, NetBSD, FreeBSD,
+      Win32, and Darwin (OSX) primarily. Occasionally other platforms
+      are built, primarily by those distribution maintainers. This
+      includes BeOS, Haiku, Syllable, OS/2, Solaris, Slackware, and
+      Gentoo.
+    </p><p>
+      Gnash is capable of reading up to SWF v9 files and opcodes,
+      but primarily supports SWF v7, with better SWF v8 and v9
+      support under heavy development. With the 0.8.2 release,
+      Gnash includes initial parser support for SWF v8 and v9.
+      Not all ActionScript 2 classes are implemented yet, but all of the
+      most heavily used ones are. Many ActionScript 2 classes are
+      partially implemented; there is support for all of the
+      commonly used methods of each class.
+    </p><p>
+      Gnash has implemented about 80% of ActionScript v2.0, and has
+      begun implementing ActionScript v3.0. Gnash supports the
+      majority of Flash opcodes up to SWF v9, and a wide
+      sampling of ActionScript classes for SWF v8.
+    </p><p>
+      As ActionScript 3 is a more developed version of
+      ActionScript 2, many of the same classes work for
+      both. Support has been added to Gnash's ActionScript library
+      to support the new ActionScript 3 filters, which get applied
+      to every class. Implementing ActionScript clases is often the
+      easiest way for new Gnash developers to make a contribution
+      without a deep internal knpowledge of Gnash.
+    </p><p>
+      Gnash has included video support since early 2007, but this is
+      an ever changing field of reverse engineering. Many of the
+      popular video sharing sites use SWF v8 or v9, which Gnash
+      still has imperfect support for. This is improving all the
+      time, so often builds from a development snapshot will work
+      when using the older release packaged in your distribution
+      doesn't. You can find daily snapshots of the latest CVS tree
+      at: <a class="ulink" href="http://www.gnashdev.org/dev_snapshots/"; 
target="_top">
+      http://www.gnashdev.org/dev_snapshots</a>.
+    </p><p>
+      Gnash uses ffmpeg for codecs, so any file supported by Mplayer
+      should work with Gnash. Gnash supports the loading of patent
+      free codecs like Ogg Vorbis or Theora from disk based files,
+      while work is being done to support these codecs when embedded
+      in a SWF file. Ffmpeg contains the codecs used by the current
+      SWF defintion, FLV, VP6 (ON2), H.263, H.264, and MP3.
+    </p></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="usage"></a>Chapter 2. 
Using <span class="application">Gnash</span></h2></div></div></div><div 
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a 
href="#options"><span class="application">Gnash</span> Command Line 
Options</a></span></dt><dt><span class="sect1"><a href="#keys"><span 
class="application">Gnash</span> Interactive Control 
Keys</a></span></dt><dt><span class="sect1"><a href="#gnashrc">User 
Configuration File</a></span></dt></dl></div><p>
+    When used as a standalone player, you can play any Flash file from
+    the command line by entering a command of the format: 
+    </p><pre class="programlisting">
+      gnash <em class="replaceable"><code>&lt;option&gt; 
&lt;flashfile.swf&gt;</code></em>
+    </pre><p>
+    The only required argument is the name (and location)of the file
+    to be played. 
+  </p><p>
+    The available options are listed in the following section, or you
+    may view them in the terminal window by executing the following at
+    the command line: 
+    </p><pre class="programlisting">
+      gnash --help | less
+    </pre><p>
+  </p><p>
+    The source code download of <span class="application">Gnash</span> 
includes several example .SWF
+    files.  They are located in the
+    <code class="filename">testsuite/samples/</code> directory of the <span 
class="application">Gnash</span>
+    source directory.  If you have installed <span 
class="application">Gnash</span> correctly, issuing
+    the a command similar to the following plays a short animation of
+    a car swerving and crashing: 
+    </p><pre class="programlisting">
+      gnash
+      /home/<em 
class="replaceable"><code>&lt;username&gt;</code></em>/gnash/testsuite/car_smash.swf
 
+    </pre><p>
+    </p><div class="mediaobject" align="center"><img 
src="images/car_crash.png" align="middle"></div><p>
+  </p><p>
+    The above is useful for playing Flash files downloaded to your
+    local system.  It is also possible to play Flash files directly
+    from the web.  To do so, use the <code class="option">-u</code> option 
along
+    with the URL of the desired file. 
+    </p><pre class="programlisting">
+      gnash -u http://example.domain.com/flashfile.swf
+    </pre><p>
+    Note that this will not work with every website; some embedded
+    Flash files are difficult to play. 
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="options"></a><span 
class="application">Gnash</span> Command Line Options</h2></div></div></div><p>
+      No options are required for  <span class="application">Gnash</span>'s 
default behavior.  However,
+      there are many options that can be used to that behavior. 
+    </p><p>
+      </p><pre class="programlisting">
+       gnash <em class="replaceable"><code>&lt;options&gt;</code></em>
+       <code class="filename">filename.swf</code> 
+      </pre><p>
+    </p><div class="table"><a name="tb-command-line-options"></a><p 
class="title"><b>Table 2.1. Gnash Command Line Options</b></p><div 
class="table-contents"><table summary="Gnash Command Line Options" 
border="1"><colgroup><col><col></colgroup><thead><tr><th 
align="left">Option</th><th 
align="left">Function</th></tr></thead><tbody><tr><td align="left"><code 
class="option">-h</code></td><td align="left">
+             Print usage information.
+           </td></tr><tr><td align="left">
+             <code class="option">-s factor</code>
+           </td><td align="left">
+             Scale the movie up/down by the specified factor.
+           </td></tr><tr><td align="left">
+             <code class="option">-c</code>
+           </td><td align="left">
+             Produce a core file instead of letting SDL trap it. By
+             default, SDL traps all signals, but sometimes a core file
+             is desired to assist with debugging.
+           </td></tr><tr><td align="left">
+             <code class="option">-d num</code>
+           </td><td align="left">
+             Number of milliseconds to delay in main loop. The main
+             loop polls continuously with a delay to adjust how long
+             <span class="emphasis"><em><span 
class="application">Gnash</span></em></span> sleeps between iterations of the
+             loop. The smaller the number, the higher the CPU load
+             gets, and of course, the more iterations of the main
+             command loop.
+           </td></tr><tr><td align="left">
+             <code class="option">-v</code>
+           </td><td align="left">
+             Be verbose; i.e. print important messages to stdout.
+           </td></tr><tr><td align="left">
+             <code class="option">-vv</code>
+           </td><td align="left">
+             Be very verbose; i.e. also print debug messages to stdout.
+           </td></tr><tr><td align="left">
+             <code class="option">-va</code>
+           </td><td align="left">
+             Be verbose about movie actions (for ActionScript debugging). This
+             generates very large amounts of text and will affect <span 
class="application">Gnash</span>'s performance.
+           </td></tr><tr><td align="left">
+             <code class="option">-vp</code>
+           </td><td align="left">
+             Be verbose about parsing the movie. Warning: this can
+             generate a lot of text, and can affect the performance of
+             the movie you are playing.
+           </td></tr><tr><td align="left">
+             <code class="option">-ml bias</code>
+           </td><td align="left">
+             Specify the texture LOD bias (float, default is -1) This
+             affects the fuzziness of small objects, especially small
+             text.
+           </td></tr><tr><td align="left">
+             <code class="option">-w</code>
+           </td><td align="left">
+             Write a debug log called gnash-dbg.log. This will 
+             record of all the debug messages whether they are printed
+             to the screen or not.
+           </td></tr><tr><td align="left">
+             <code class="option">-j</code>
+           </td><td align="left">
+             Specify the width of the window. This is mostly used
+             only by the plugin.
+           </td></tr><tr><td align="left">
+             <code class="option">-k</code>
+           </td><td align="left">
+             Specify the height of the window. This is mostly used
+             only by the plugin.
+           </td></tr><tr><td align="left">
+             <code class="option">-1</code>
+           </td><td align="left">
+             Play once; exit when/if movie reaches the last
+             frame.
+           </td></tr><tr><td align="left">
+             <code class="option">-r [0|1|2|3]</code>
+           </td><td align="left">
+             <div class="itemizedlist"><ul type="disc"><li><p>
+                   0 disables rendering and sound (good for batch tests).
+                 </p></li><li><p>
+                   1 enables rendering and disables sound (default setting).
+                 </p></li><li><p>
+                   2 enables sound and disables rendering.
+                 </p></li><li><p>
+                   3 enables rendering and sound.
+                 </p></li></ul></div>
+           </td></tr><tr><td align="left">
+             <code class="option">-t sec</code>
+           </td><td align="left">
+             Timeout and exit after the specified number of
+             seconds. This is useful for movies which repeat
+             themselves.
+           </td></tr><tr><td align="left">
+             <code class="option">-g</code>
+           </td><td align="left">
+             Start <span class="application">Gnash</span> with a Flash 
debugger console so one can set
+             break points or watchpoints.
+           </td></tr><tr><td align="left">
+             <code class="option">-x id</code>
+           </td><td align="left">
+             This specifies the X11 window ID to display
+             in; this is mainly used by plugins.
+           </td></tr><tr><td align="left">
+             <code class="option">-u url</code>
+           </td><td align="left">
+             Set the _url member of the root movie. This is useful 
+             when you download a movie and play it from a different 
+             location. See also the -U switch.
+           </td></tr><tr><td align="left">
+             <code class="option">-U baseurl</code>
+           </td><td align="left">
+             Set base URL for this run. URLs are resolved relative to 
+             this base. If omitted defaults to the _url member of the 
+             top-level movie (see the -u switch).
+           </td></tr><tr><td align="left">
+             <code class="option">-P parameter</code>
+           </td><td align="left">
+             Parameters are given in the syntax "ParamName=Value" and are 
mostly 
+             useful for the plugin to honour EMBED tags attributes 
+             or explicit OBJECT PARAM tags. A common use for -P 
+             is to provide FlashVars 
+             (ie: -P "FlashVars=home=http://www.gnu.org";).
+           </td></tr><tr><td align="left">
+             <code class="option">-F filedescriptor</code>
+           </td><td align="left">
+             Use the given filedescriptor to send requests to the host
+             application. This is currently only used for GETURL requests.
+             The protocol is not documented yet, and also needs improvement.
+             Primary use for this switch is for the NPAPI plugin to properly
+             support javascript and target windows in geturl requests.
+           </td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="keys"></a><span class="application">Gnash</span> Interactive Control 
Keys</h2></div></div></div><p>
+      While a movie is playing, there are several control
+      keys. These can be used to step through frames, pause the
+      playing, and control other actions.
+    </p><div class="table"><a name="tb-control-keys"></a><p 
class="title"><b>Table 2.2. Gnash Interactive Control Keys</b></p><div 
class="table-contents"><table summary="Gnash Interactive Control Keys" 
border="1"><colgroup><col><col></colgroup><thead><tr><th align="left">Key 
Combination</th><th align="left">Function</th></tr></thead><tbody><tr><td 
align="left">
+             <code class="option">CTRL-Q</code>
+           </td><td align="left">
+             Quit/Exit.
+           </td></tr><tr><td align="left">
+             <code class="option">CTRL-W</code>
+           </td><td align="left">
+             Quit/Exit.
+           </td></tr><tr><td align="left">
+             <code class="option">ESC</code>
+           </td><td align="left">
+             Quit/Exit.
+           </td></tr><tr><td align="left">
+             <code class="option">CTRL-P</code>
+           </td><td align="left">
+             Toggle Pause.
+           </td></tr><tr><td align="left">
+             <code class="option">CTRL-R   </code>
+           </td><td align="left">
+             Restart the movie.
+           </td></tr><tr><td align="left">
+               <code class="option">CTRL-L</code>
+             </td><td align="left">
+               Force immediate redraw.
+             </td></tr><tr><td align="left">
+             <code class="option">CTRL-T</code>
+           </td><td align="left">
+             Debug.  Test the set_variable() function.
+           </td></tr><tr><td align="left">
+             <code class="option">CTRL-G</code>
+           </td><td align="left">
+             Debug.  Test the get_variable() function.
+           </td></tr><tr><td align="left">
+             <code class="option">CTRL-M</code>
+           </td><td align="left">
+             Debug.  Test the call_method() function.
+           </td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="gnashrc"></a>User Configuration File</h2></div></div></div><p>
+    Individual user preferences may be set by editing variables with
+    the <code class="filename">.gnashrc</code> file: 
+    </p><pre class="programlisting">
+      ~/.gnashrc
+    </pre><p>
+  </p><p>
+    Each line must begin with an action: either
+    <span class="emphasis"><em>set</em></span> or, in the case of lists, also 
+    <span class="emphasis"><em>append</em></span>.
+  </p><p>
+    The values in this configuration file apply only to an individual
+    user, and become the default settings of the standalone player and
+    the plugin.  Note that any command line options take precedence
+    over <code class="filename">.gnashrc</code> settings. 
+  </p><p>
+    The variables in the <code class="filename">.gnashrc</code> file support
+    three types of arguments: on/off, numeric values, or in the case
+    of the whitelist and blacklist, a list of hostnames as ASCII text. 
+  </p><div class="table"><a name="tb-config-variables"></a><p 
class="title"><b>Table 2.3. User Configuration Variables</b></p><div 
class="table-contents"><table summary="User Configuration Variables" 
border="1"><colgroup><col><col><col></colgroup><thead><tr><th 
align="left">Variable</th><th align="left">Value</th><th 
align="left">Function</th></tr></thead><tbody><tr><td 
align="left">localdomain</td><td align="left">on/off</td><td align="left">This 
value can be set to either <span class="emphasis"><em>on</em></span> or
+         <span class="emphasis"><em>off</em></span>, and controls the loading 
of
+         external Flash movies over a network. This option
+         tells Gnash to only load Flash movies from the existing 
domain.</td></tr><tr><td align="left">localhost</td><td 
align="left">on/off</td><td align="left">This value can be set to either <span 
class="emphasis"><em>on</em></span> or
+         <span class="emphasis"><em>off</em></span>, and controls the loading 
of
+         external Flash movies over a network. This is a stricter
+         version of the <span class="emphasis"><em>localdomain</em></span> 
setting as
+         this allows the loading of Flash movies to the same host
+         that is running <span 
class="application">Gnash</span>.</td></tr><tr><td 
align="left">whitelist</td><td align="left">hostnames</td><td align="left">This 
is a list of hostnames separated by spaces, or <span 
class="emphasis"><em>off</em></span>
+         to disable the whitelist. The hostname must be given
+         without a protocol (http://, https://). If this list is populated,
+         <span class="application">Gnash</span> will only load external Flash 
movies from the specified hosts.  The
+         whitelist takes precedence over the blacklist. Because several files 
can
+         be parsed in succession, each file can override or add to
+         lists in other files. Use <span class="emphasis"><em>set</em></span> 
to override
+         all other lists or <span class="emphasis"><em>append</em></span> to 
add your blacklisted
+         hosts to lists in previously parsed files.</td></tr><tr><td 
align="left">blacklist</td><td align="left">hostnames</td><td align="left">This 
is a list of hostnames separated by spaces, or <span 
class="emphasis"><em>off</em></span>
+         to disable the blacklist. The hostname must be given
+         without a protocol (http://, https://).
+         External flash movies from these
+         domains are never allowed to load. If whitelist is present
+         and not empty, blacklist is not used. Because several files can
+         be parsed in succession, each file can override or add to
+         lists in other files. Use <span class="emphasis"><em>set</em></span> 
to override
+         all other lists or <span class="emphasis"><em>append</em></span> to 
add your blacklisted
+         hosts to lists in previously parsed files.</td></tr><tr><td 
align="left">localSandboxPath</td><td align="left">dirs</td><td 
align="left">This is a list of directories separated by spaces.
+         Only resources from these directories and from the directory
+         portion of movie filename (if loaded from filesystem) are allowed to 
load.
+         Because several files can be parsed in succession, each file can 
override
+         or add to lists in other files. Use <span 
class="emphasis"><em>set</em></span> to override
+         all other lists or <span class="emphasis"><em>append</em></span> to 
add new sandboxes.
+         Note that there's currently no way to *drop* the directory of base dir
+         from the list of allowed local sandboxes.
+         </td></tr><tr><td align="left">delay</td><td 
align="left">Number</td><td align="left"><span class="application">Gnash</span> 
uses a timer-based event mechanism to advance frames
+         at a steady rate. This option overrides the default
+         setting in Gnash to play a movie slower or faster.</td></tr><tr><td 
align="left">verbosity</td><td align="left">Number</td><td align="left">This is 
a numeric value which defines the default level of
+         verbosity from the player.</td></tr><tr><td 
align="left">MalformedSWFVerbosity</td><td align="left">on/off</td><td 
align="left">This value can be set to either <span 
class="emphasis"><em>on</em></span> or
+         <span class="emphasis"><em>off</em></span>, and controls whether 
malformed SWF errors should
+         be printed. If set to true, verbosity level is automatically 
incremented.
+         Set <code class="option">verbosity</code> to 0 afterwards to 
hush.</td></tr><tr><td align="left">ASCodingErrorsVerbosity</td><td 
align="left">on/off</td><td align="left">This value can be set to either <span 
class="emphasis"><em>on</em></span> or
+         <span class="emphasis"><em>off</em></span>, and controls whether 
ActionScript coding
+         errors should be printed. If set to true, verbosity level is
+         automatically incremented.  Set <code class="option">verbosity</code> 
to 0 afterwards to hush.</td></tr><tr><td align="left">debuglog</td><td 
align="left">Absolute path</td><td align="left">This is the full path and name 
of debug logfile as
+         produced by <span class="application">Gnash</span>. On systems with a 
UNIX-type shell,
+         a tilde prefix (~) will be expanded as by Posix shell requirements
+         (see 
http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_01).</td></tr><tr><td
 align="left">writelog</td><td align="left">on/off</td><td align="left">This 
value can be set to either <span class="emphasis"><em>on</em></span> or
+         <span class="emphasis"><em>off</em></span>, and controls whether a 
debug log
+         is always written by <span class="application">Gnash</span>, or not 
at all.</td></tr><tr><td align="left">sound</td><td align="left">on/off</td><td 
align="left">This value can be set to either <span 
class="emphasis"><em>on</em></span> or
+         <span class="emphasis"><em>off</em></span>, and controls the sound of 
the
+         standalone player. By default <span class="application">Gnash</span> 
enables playing the
+         sound in any Flash movie.</td></tr><tr><td 
align="left">pluginsound</td><td align="left">on/off</td><td align="left">This 
value can be set to either <span class="emphasis"><em>on</em></span> or
+         <span class="emphasis"><em>off</em></span>, and controls the sound of 
the
+         player when running as a browser plugin. By default, sound
+         is enabled when using <span class="application">Gnash</span> as a 
browser plugin.</td></tr><tr><td align="left">EnableExtensions</td><td 
align="left">on/off</td><td align="left">Set to <span 
class="emphasis"><em>on</em></span> to enable extensions. This option is <span 
class="emphasis"><em>off</em></span> by default</td></tr><tr><td 
align="left">StartStopped</td><td align="left">on/off</td><td align="left">Set 
to <span class="emphasis"><em>on</em></span> to have the GUI start in "stop" 
mode. This is useful in particular
+         for the plugin, so you have to explicitly start any movie on a 
webpage. This option is <span class="emphasis"><em>off</em></span> by default.
+         </td></tr><tr><td align="left">flashVersionString</td><td 
align="left">string</td><td align="left">Set the string returned by $version 
and System.capabilities.version.
+         Useful to get around some flash version detection movies.
+         Note that the version advertised by the plugin is NOT affected by 
this setting,
+         instead you need to set the GNASH_FLASH_VERSION environment variable 
for
+         the latter (which doesn't affect $version and 
System.capabilities.version).</td></tr><tr><td 
align="left">flashSystemOS</td><td align="left">string</td><td align="left">The 
string that Gnash should return for System.capabilities.OS</td></tr><tr><td 
align="left">flashSystemManufacturer</td><td align="left">string</td><td 
align="left">The string that Gnash should return for 
System.capabilities.manufacturer</td></tr><tr><td 
align="left">StreamsTimeout</td><td align="left">double</td><td align="left">
+           Set the number of seconds after which streams download time out. 
Note that timeouts only occurs after the given number of seconds
+           passed w/out anything was received.
+         </td></tr><tr><td align="left">insecureSSL</td><td 
align="left">on/off</td><td align="left">If set to <span 
class="emphasis"><em>on</em></span>, no verification of SSL connections
+         is performed. This means that, although the connection is encrypted, 
the server
+         certificate could be invalid, may not belong to the host, or both. 
Equivalent
+         to curl --insecure. By default, this option is <span 
class="emphasis"><em>off</em></span> and
+         connections will fail when a host cannot be 
verified.</td></tr><tr><td align="left">SOLsafedir</td><td 
align="left">Absolute path</td><td align="left">The full path to a directory 
where <span class="application">Gnash</span> should store Shared Object files 
("flash cookies") if
+         they are enabled.</td></tr><tr><td align="left">SOLreadonly</td><td 
align="left">on/off</td><td align="left">If set to <span 
class="emphasis"><em>on</em></span>, <span class="application">Gnash</span> 
will not write Shared Object files.</td></tr><tr><td 
align="left">URLOpenerFormat</td><td align="left">string</td><td align="left">
+           Set the format of an url opener command. The %u label would be 
substituted by the actual url to be opened.
+           Examples:
+           <pre class="programlisting">
+             set urlOpenerFormat firefox -remote 'openurl(%u)'
+             set urlOpenerFormat xdg-open %u
+             set urlOpenerFormat open %u
+             set urlOpenerFormat kfmclient exec %u
+           </pre>
+         </td></tr></tbody></table></div></div><br class="table-break"><p>
+    The following example <code class="filename">.gnashrc</code> file allows a 
user to only play Flash files saved locally to the machine on which <span 
class="application">Gnash</span> is running.  It also specifically forbids 
content from doubleclick.com and mochibot.com.  <span 
class="application">Gnash</span>'s error output is set to be fairly verbose, 
with the debug log placed in a location convenient for the user.  Finally, 
sound is turned on for both the standalone player and the plugin.
+  </p><pre class="programlisting">
+    
+    #
+    # Gnash client options
+    #
+    
+    # Only access remote content from our local domain
+    set localdomain on
+    
+    # Only access content from our local host
+    set localhost on
+    
+    # These sites are OK
+    # uncommenting the following line will allow load of external
+    # movies *only* from the specified hosts.
+    #set whitelist www.doonesbury.com www.cnn.com www.9news.com
+    
+    # Disable whitelists set in any other gnashrc files, because
+    # these could override our blacklist.
+    set whitelist off
+    
+    # Don't access content from these sites
+    set blacklist www.doubleclick.com mochibot.com
+    
+    # The delay between timer interrupts
+    set delay 50
+    
+    # The default verbosity level
+    set verbosity 1
+    
+    # Be verbose about malformed SWF
+    set MalformedSWFVerbosity true
+    
+    # Be verbose about AS coding errors
+    set ASCodingErrorsVerbosity true
+    
+    # The full path to the debug log
+    set debuglog ~/gnash-dbg.log
+    
+    # Write a debug log to disk
+    set writelog on
+    
+    # Enable or Disable sound for the standalone player
+    set sound on
+    
+    # Enable or Disable sound for the standalone player
+    set pluginsound on
+    
+    # Make sure SSL connections are always verified
+    set insecureSSL off
+    
+    # Use firefox to open urls
+    set urlOpenerFormat firefox -remote 'openurl(%u)'
+    
+  </pre></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="build"></a>Chapter 3. 
Installing and Configuring Gnash</h2></div></div></div><div 
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a 
href="#requirements">Requirements</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#hardware">Hardware 
Requirements</a></span></dt><dt><span class="sect2"><a 
href="#software">Software Requirements</a></span></dt></dl></dd><dt><span 
class="sect1"><a href="#downloading">Downloading 
Gnash</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="#gettingsource">Getting the Source</a></span></dt><dt><span 
class="sect2"><a href="#getcodecs">Getting Codec 
Support</a></span></dt></dl></dd></dl></div><p>
+    There are two ways of installing Gnash:
+
+    using a package manager, or <a class="link" href="#gettingsource" 
title="Getting the Source">installing from source</a>.
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a 
name="requirements"></a>Requirements</h2></div></div></div><p>
+      Before downloading and installing Gnash, check that your
+      hardware and software meet the following requirements.
+    </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="hardware"></a>Hardware 
Requirements</h3></div></div></div><p>
+       One of the goals of Gnash is to make it portable enough to
+       install on small devices.  As a result, the hardware
+       requirements are minimal. Gnash has even run on an ARM9 at 200
+       MHz with 32 MB of RAM! (It ran without video support in this
+       case.) While firm minimums have not been established, Gnash
+       has been shown to run successfully with the following:
+      </p><div class="itemizedlist"><ul type="disc"><li><p>
+           336 MHz processor
+         </p></li><li><p>
+           128 MB RAM
+         </p></li><li><p>
+           Gnash will run on anything from a raw frame
+           buffer up to an OpenGL-supporting graphics card.
+         </p></li></ul></div><p>
+       The following table provides a list of the Operating System/CPU
+       combinations on which Gnash has been shown to run. 
+      </p><div class="table"><a name="tb-os-cpu"></a><p class="title"><b>Table 
3.1. Build Matrix</b></p><div class="table-contents"><table summary="Build 
Matrix" border="1"><colgroup><col><col></colgroup><thead><tr><th 
align="left">Operating System</th><th 
align="left">Processor</th></tr></thead><tbody><tr><td align="left">OpenBSD, 
FreeBSD, NetBSD</td><td align="left">Alpha AXP, AMD64, i386, Itanium, PC-98, 
PowerPC, SPARC64 
+             </td></tr><tr><td align="left">Debian</td><td align="left">Alpha 
AXP, AMD64, ARM, hppa, i386, Itanium, MIPS,
+             PowerPC, IBM zSeries (s390), SPARC  
+             </td></tr><tr><td align="left">Fedora</td><td 
align="left">x86-32, x86-64, Geode GX, Geode LX
+             </td></tr><tr><td align="left">Gentoo</td><td align="left">AMD64, 
PowerPC, SPARC, x86 
+             </td></tr><tr><td align="left">Maemo 2.1</td><td 
align="left">i385, ARMv5t</td></tr><tr><td align="left">Scratchbox</td><td 
align="left">i386, ARMv5t</td></tr><tr><td align="left">Access Linux Platform
+             </td><td align="left">i386, ARMv5t</td></tr><tr><td 
align="left">Mandriva
+             </td><td align="left">i386, x86-64, MIPS</td></tr><tr><td 
align="left">Open Embedded, OpenMoko, Poky
+             </td><td align="left">ARM
+             </td></tr><tr><td align="left">YellowDog Linux 6
+             </td><td align="left">PowerPC, PS3
+             </td></tr><tr><td align="left">OpenSuSE 10 
+             </td><td align="left">i586, x86-64 
+             </td></tr><tr><td align="left">Red Hat Enterprise, CentOS
+             </td><td align="left">x86-32, x86-64 
+             </td></tr><tr><td align="left">Ubuntu 
+             </td><td align="left">x86-64, x86-32, PowerPC, UltraSPARC 
+             </td></tr><tr><td align="left">Haiku</td><td 
align="left">i386</td></tr><tr><td align="left">Syllable</td><td 
align="left">i386</td></tr><tr><td align="left">Irix 6.5 
+             </td><td align="left">MIPS R10K 
+             </td></tr><tr><td align="left">Darwin (MacOS X)
+             </td><td align="left">PowerPC and x86-32 
+             </td></tr><tr><td align="left">Windows XP, Windows Vista</td><td 
align="left">x86-32</td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="software"></a>Software 
Requirements</h3></div></div></div><p>
+       The 0.8.2 release of Gnash has been designed to run on
+       UNIX/Linux variants, and has been run on most of the free ones.
+       However, Gnash has successfully run on Windows, Darwin (Mac OS X),
+       Irix, Solaris, BeOs, OS/2, and Haiku.  Gnash has also run on the
+       following 64-bit systems: PowerPC, Itanium, UltraSparc, and AMD64.
+       For now, it is important to be sure that the following code, testing,
+       and documentation dependencies are met before installing Gnash.  If
+       you will be downloading Gnash with a package manager, these
+       dependencies may be solved by the package manager.  Otherwise, you
+       must first verify that each of these dependencies are installed on the
+       target system.
+      </p></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="downloading"></a>Downloading Gnash</h2></div></div></div><p>
+       There are two ways to download Gnash: using a package manager or by
+       downloading the source code and building it on your system. If
+       possible, it is advisable to use a package manager to download Gnash,
+       as it will resolve dependencies for you.  However, if you want the
+       very latest features, or a Gnash package is not available for your
+       operating system, it is better to download the source code and build
+       Gnash locally. 
+      </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="gettingsource"></a>Getting the 
Source</h3></div></div></div><p>
+         Gnash is available as a <a class="link" href="#sourcereleases" 
title="Releases">release
+         tarball</a>, a <a class="link" href="#sourcerepo" 
title="Repository">development 
+         checkout</a>, or a <a class="link" href="#sourcesnapshot" 
title="Snapshot">development
+         snapshot</a>.
+       </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="sourcereleases"></a>Releases</h4></div></div></div><p>
+           The source can be acquired from a
+           <a class="ulink" href="http://www.gnu.org/prep/ftp.html"; 
target="_top">GNU FTP
+           Mirror</a>.  The release version is intended to be
+           stable, and is probably your best choice if the release took
+           place recently.  If you need features or fixes which were
+           introduced after the release, consider a 
+           <a class="link" href="#sourcerepo" title="Repository">CVS 
checkout</a> or the
+           <a class="link" href="#sourcesnapshot" title="Snapshot">daily 
snapshot</a>.
+         </p><p>
+           To download, select a mirror near you, then choose the
+           <code class="filename">gnash</code> directory.
+         </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="sourcesnapshot"></a>Snapshot</h4></div></div></div><p>
+           The daily development snapshot can be downloaded from
+           <a class="ulink" href="http://www.gnashdev.org/dev_snapshots/"; 
target="_top">http://www.gnashdev.org/dev_snapshots/</a>.
+           This is the best option if you need changes which were introduced
+           after the <a class="link" href="#sourcereleases" 
title="Releases">last release</a> of
+           Gnash, but are unable to <a class="link" href="#sourcerepo" 
title="Repository">download
+           directly from the repository.</a>
+         </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="sourcerepo"></a>Repository</h4></div></div></div><p>
+           The latest development sources are available via
+           anonymous CVS.  This is recommended
+           if you need features or bug fixes which were introduced after
+           the <a class="link" href="#sourcereleases" title="Releases">last 
release</a>.  Look at
+           the <a class="link" href="#sourcesnapshot" title="Snapshot">daily 
snapshot</a> if you
+           experience difficulty accessing the repository.
+         </p><p>
+           To download via anonymous CVS, first set the
+           environment variable <span 
class="command"><strong>CVS_RSH</strong></span> to
+           <span class="command"><strong>ssh</strong></span>, then check out 
the source code.
+           The example below uses the GNU Bourne-Again shell (bash): 
+         </p><pre class="screen">
+           export CVS_RSH="ssh"
+           cvs -z3 -d:pserver:address@hidden:/sources/gnash co gnash
+         </pre><p>
+           It is also possible to browse the repository
+           <a class="ulink" 
href="http://cvs.savannah.gnu.org/viewcvs/gnash/?root=gnash"; 
target="_top">http://cvs.savannah.gnu.org/viewcvs/gnash/?root=gnash</a> on the 
web.
+         </p></div></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="getcodecs"></a>Getting 
Codec Support</h3></div></div></div><p>
+         Gnash requires codec support to handle audio and video
+         correctly. Some platforms like Ubuntu or Fedora under the
+         GNOME desktop will automatically notify the user that the
+         proper codecs aren't installed, and pop up a dialog box to
+         let the user download the codecs Gnash needs to make site
+         like YouTube work correctly. If you have installed Gnash on
+         any other platform, and video doesn't work, it's highly
+         likely you need to install the proper codecs. For most
+         platforms, this is the Gstreamer-ffmpeg plugin, available
+         from your distributions repository.
+       </p></div></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="bugreport"></a>Chapter 
4. Reporting Bugs</h2></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a href="#bugstep_package">Get a 
Fresh Binary Package</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_search">Determine if the bug was previously 
reported</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_guidelines">Review the bug writing 
guidelines</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_file">Filing a bug report</a></span></dt></dl></div><p>
+    The Gnash project relies on the community of Gnash users to test
+    the player, feedback is critical to any successful project.  Not
+    only does it let us know that people use Gnash, but it helps us  
+    understand the community's needs. Gnash uses a bug tracker on
+    <a class="ulink" href="http://savannah.gnu.org"; 
target="_top">http://savannah.gnu.org</a> to manage these reports.
+  </p><p>
+    When filing a report, please follow the guidelines below. The better
+    your bug report is, the easier it will be for the developers to
+    address the issue. Bug reports without enough information will
+    initially be asked to provide this information anyway. Adding
+    critical details, like the Operating System you are on, its
+    version, and any relevant error messages from Gnash that you get.
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="bugstep_package"></a>Get a Fresh 
Binary Package</h2></div></div></div><p>
+      For starters, it's a good idea to obtain a copy of the latest
+      snapshot. Although Gnash is primarily released as source, the
+      Gnash build infrastructure allows the automated building of
+      binary packages. Often the version of Gnash as packaged by a
+      GNU/Linux or BSD distribution is based on the last official
+      release, which could be months out of date. It is helpful if
+      this is the case to try a newer packaged build of Gnash. 
+    </p><p>
+      You can get a fresh binary package of Gnash, as well as recent 
+      source packages from
+      <a class="ulink" href="http://www.getgnash.org/packages/"; target="_top">
+       http://www.getgnash.org/packages
+      </a>. 
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="bugstep_search"></a>Determine if the bug was previously 
reported</h2></div></div></div><p>
+      Search the <a class="ulink" 
href="https://savannah.gnu.org/bugs/?group=gnash"; target="_top">Gnash
+      bug tracker</a> to see if the bug has already been identified.
+    </p><p>
+      If the issue has already been reported, you should not file
+      a bug report.  However, you may add some additional information
+      to the ticket if you feel that it will be beneficial to the
+      developers.  For instance, if someone reported a memory issue
+      on Ubuntu GNU/Linux, and you noticed the same problem on OpenBSD,
+      your stacktrace would be useful.  Conversely, adding a "me too"
+      note to a feature request is not helpful.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="bugstep_guidelines"></a>Review the bug writing 
guidelines</h2></div></div></div><p>
+      A good bug report should be precise, explicit, and discrete.
+      This means that there should be just one bug per ticket, and
+      that a ticket should contain the following information:
+    </p><div class="itemizedlist"><ul type="opencircle"><li 
style="list-style-type: circle"><p>
+         An overview of the problem;
+       </p></li><li style="list-style-type: circle"><p>
+         Instructions on how to replicate the bug;
+       </p></li><li style="list-style-type: circle"><p>
+         A description of what happened when you performed the steps
+         to replicate the bug, and what you expected to happen;
+       </p></li><li style="list-style-type: circle"><p>
+         Your system information: operating system name and version, as
+         well as the versions of major development dependencies;
+       </p></li><li style="list-style-type: circle"><p>
+         The release number or checkout timestamp for the version of Gnash
+         where you observe the problem;
+       </p></li><li style="list-style-type: circle"><p>
+         The file <code class="filename">config.log</code>, which should be
+         attached as a file;
+       </p></li><li style="list-style-type: circle"><p>
+         A descriptive title.
+       </p></li></ul></div><p>
+      Include any additional information that you feel might be useful
+      to the developers.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="bugstep_file"></a>Filing a bug report</h2></div></div></div><p>
+      After following the steps described above, you can file a bug report at 
+      <a class="ulink" href="https://savannah.gnu.org/bugs/?group=gnash"; 
target="_top">https://savannah.gnu.org/bugs/?group=gnash</a>.
+    </p></div></div><div class="glossary"><div class="titlepage"><div><div><h2 
class="title"><a name="glossary"></a>Glossary</h2></div></div></div><div 
class="glossdiv"><h3 class="title">A</h3><dl><dt>
+       ActionScript
+      </dt><dd><p>
+         <span class="emphasis"><em>ActionScript</em></span>, or "AS", is the 
scripting 
+         language for <span class="emphasis"><em>Flash</em></span>
+         applications. It is compiled to bytecode, which is a subset of
+         the <span class="emphasis"><em>SWF</em></span> format.
+       </p></dd><dt>
+       AGG
+      </dt><dd><p>
+         AGG is the AntiGrain 2D graphics library, which can be used
+         as a renderer in Gnash. It is faster than OpenGL on systems
+         without hardware graphics acceleration. As of Gnash version
+         0.8.1 it is the more feature complete renderer. 
+       </p></dd><dt>
+       AMF
+      </dt><dd><p>
+         <span class="emphasis"><em>AMF</em></span> 
+         is the object format used by <span 
class="emphasis"><em>Flash</em></span> 
+         for shared objects and streaming video.
+       </p></dd><dt>
+       as_environment
+      </dt><dd><p>
+         In Gnash terms, the as_environment, or ActionScript
+         execution environment, contains a stack of objects,
+         characters and values which are in the immediate environment
+         of the current fn_call. Please refer to the Gnash
+         ActionScript manual for more information. 
+        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">C</h3><dl><dt>
+       Cairo
+      </dt><dd><p>
+         Cairo is a 2D graphics library with support for multiple
+         output devices. Can be used as a renderer in Gnash. A useful
+         feature of Cairo is that it will automatically use graphic
+         card acceleration when available. Cairo has an experimental
+         OpenGL backend. 
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">D</h3><dl><dt>
+       DejaGNU
+      </dt><dd><p>
+         DejaGNU is a framework for testing software.
+       </p></dd><dt>
+       DocBook
+      </dt><dd><p>
+         <span class="emphasis"><em>DocBook</em></span>
+         is a markup language for presentation-neutral 
+         documentation, such as manuals.
+       </p></dd><dt>
+       Doxygen
+      </dt><dd><p>
+         <span class="emphasis"><em>Doxygen</em></span> 
+         is a documentation generator for for multiple languages 
+         which uses comments in the source code to create stand-alone
+         documentation. 
+       </p></dd><dt>
+       Drupal
+      </dt><dd><p>
+         Drupal is a CMS/blog system used for the main Gnash website.
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">E</h3><dl><dt>
+       extensions
+      </dt><dd><p>
+         A <span class="application">Gnash</span> <span 
class="emphasis"><em>extension</em></span> is a plugin (not a
+         browser plugin) which implements additional functionality
+         beyond what is covered by <span class="emphasis"><em>Flash</em></span>
+         specification. These are shared libraries which are loaded
+         at runtime. 
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">F</h3><dl><dt>
+       ffmpeg
+      </dt><dd><p>
+         ffmpeg is an audio and video decoding library which can be 
+         used by Gnash to decode mp3, FLV and other media types.  
+       </p></dd><dt>
+       Flash
+      </dt><dd><p>
+         The term <span class="emphasis"><em>Flash</em></span> is used to 
describe both the 
+         Adobe IDE for creating <span class="emphasis"><em>SWF</em></span>
+         files, and the technology itself. Flash is a trademarked
+         term of Adobe's, we prfer to use SWF to refer to the files
+         themselves, as well as the format, instead of flash(tm).
+       </p></dd><dt>
+       FLV
+      </dt><dd><p>
+         FLV is a proprietary file format used to deliver Flash
+         video. It is used by YouTube, among others.  
+       </p></dd><dt>
+       FLTK
+      </dt><dd><p>
+         FLTK, or the 'Fast Light ToolKit', is a portable GUI library
+         which is intended to replace the SDL GUI. Currently in Gnash,
+         FLTK may be used with the Cairo and AGG renderers. FLTK has an
+         experimental Cairo backend. 
+       </p></dd><dt>
+       FrameBuffer
+      </dt><dd><p>
+         In Gnash, this is a GUI library that outputs directly to the
+         Linux Frame Buffer and so does not need a window system to
+         run. This makes it particularly suitable for use on small
+         devices. 
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">G</h3><dl><dt>
+       Gnash
+      </dt><dd><p>
+         Gnash is the GNU Flash movie player.
+       </p></dd><dt>
+       Gstreamer
+      </dt><dd><p>
+         Gstreamer is a multimedia framework which Gnash can use for
+         decoding audio and video. Gstreamer itself cannot decode
+         anything, so it needs some appropriate decoding-plugins to do
+         the work for it. Remember to install them if you use Gnash
+         with Gstreamer enabled. To get the best out of Gnashs
+         gstreamer-parts, it is recommended to install the
+         gst-plugins-good, gst-plugins-good and gst-ffmpeg plugins
+         packages.  
+       </p></dd><dt>
+       GTK
+      </dt><dd><p>
+         GTK is the GIMP Toolkit GUI library. It is one of the GUI
+         options for Gnash. As of Gnash 0.7.2, this is the more
+         performant and feature-rich choice. GTK uses Cairo
+         internally. 
+       </p></dd><dt>
+      GUI
+    </dt><dd><p>
+       A <span class="emphasis"><em>GUI</em></span> is a 
+       "graphical user interface". In <span class="application">Gnash</span>, 
the GUI 
+       library provides a wrapper for mouse and keyboard events, 
+       menus, windowing (where available) and a drawing area. 
+       You must choose a GUI library during the
+       configuration stage of building Gnash.
+      </p></dd></dl></div><div class="glossdiv"><h3 
class="title">K</h3><dl><dt>
+       Klash
+      </dt><dd><p>
+         <span class="emphasis"><em>Klash</em></span> was the name given to 
the stand-alone 
+         instance of <span class="application">Gnash</span> which used the KDE 
GUI.  It has been replaced with 
+         an implementation using Qt.  Some documentation may incorrectly
+         refer to the Konqueror plugin as <span 
class="emphasis"><em>Klash</em></span>.
+         The plugin was renamed <span class="emphasis"><em>Kpart</em></span>.
+       </p></dd><dt>
+       Kpart
+      </dt><dd><p>
+         <span class="emphasis"><em>Kpart</em></span> is a plugin for 
Konqueror which is
+         enabled with the configuration option --enable-kparts.
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">L</h3><dl><dt>
+       libmad
+      </dt><dd><p>
+         libmad is a mp3-decoding library, which used to be an option for Gnash
+         handling of sound (dropped since 0.8.2).
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">M</h3><dl><dt>
+       Mesa
+      </dt><dd><p>
+         <span class="emphasis"><em>Mesa</em></span> is the free software 
OpenGL 
+         implementation.  <span class="application">Gnash</span> documentation 
will sometimes use the
+         glossterms 'OpenGL' and 'Mesa' interchangeably.
+       </p></dd><dt>
+       Ming
+      </dt><dd><p>
+         Ming is a C library for generating SWF ("Flash") format
+         movies, plus a set of wrappers for using the library. It is
+         used by the Gnash project for generating testcases.  
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">N</h3><dl><dt>
+       Nellymoser
+      </dt><dd><p>
+         Nellymoser is a proprietary audio codec introduced in the
+         Flash Player in version 6. For more information, please see
+         Wikipedia. 
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">O</h3><dl><dt>
+       OpenGL
+      </dt><dd><p>
+         OpenGL (Open Graphics Library) is a standard specification
+         defining a cross-language cross-platform API for writing
+         applications that produce 3D and 2D computer
+         graphics. Accelerated graphic cards usually provide OpenGL at
+         the hardware level. Please refer to Wikipedia for availability
+         of free software OpenGL hardware drivers. A free software
+         implementation of the API is available (Mesa). OpenGL can be
+         used as a renderer in Gnash. 
+       </p></dd><dt>
+       ORM
+      </dt><dd><p>
+         ORM is a system for ensuring the rights of the creator over a piece 
of digital content. It is more passive than DRM.
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">P</h3><dl><dt>
+       plugin
+      </dt><dd><p>
+         The glossterm <span class="emphasis"><em>plugin</em></span> is used 
in <span class="application">Gnash</span> to
+         refer to both any <span class="application">Gnash</span> browser 
plugin, as well as the Firefox
+         plugin specifically.  The Konqueror plugin is called
+         <span class="emphasis"><em>Kpart</em></span>.  Sometimes, the term is 
used in
+         an even more generic sense to refer to 
+         <span class="emphasis"><em>extensions</em></span>.
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">Q</h3><dl><dt>
+       Qt
+      </dt><dd><p>
+         Qt is a GUI library which is used by KDE. The plugin version
+         of Gnash using this GUI library is Kpart. The standalone
+         version is enabled with --enable-gui=kde. 
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">R</h3><dl><dt>
+       renderer
+      </dt><dd><p>
+         The <span class="emphasis"><em>renderer</em></span> is the subsystem 
of <span class="application">Gnash</span>
+         which renders content.  Only one renderer may be used; it is
+         selected at configuration time if building from source.
+       </p><p>
+         Available renderers are: AGG, OpenGL, and Cairo. In terms of 
+         feature completeness, AGG comes first; followed by OpenGL and 
+         then Cairo. In most cases, AGG is preferred for performance, 
+         except cases where it is beneficial to have hardware accelerated 
+         rendering (for example, when you have a very slow CPU but a very 
+         fast graphics card). In this case OpenGL should be used.
+       </p></dd><dt>
+       RTMP
+    </dt><dd><p>
+       RTMP is the Real Time Messaging Protocol primarily used with
+       to stream audio and video over the internet to the Flash
+       Player client. 
+      </p></dd><dt>
+       RTMPT
+      </dt><dd><p>
+         RTMPT is basically a HTTP wrapper around the RTMP protocol
+         that is sent using POST requests from the client to the
+         server. Because of the non-persistent nature of HTTP
+         connections, RTMPT requires the clients to poll for updates
+         periodically in order to get notified about events that are
+         generated by the server or other clients.  
+       </p></dd><dt>
+       RTMPTS
+      </dt><dd><p>
+         RTMPTS is the same as RTMPT, but instead of being a HTTP
+         wrapper, it is a HTTP SSL wrapper (HTTP secure connection). 
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">S</h3><dl><dt>
+       SDL
+      </dt><dd><p>
+         Simple DirectMedia Layer is a cross-platform multimedia free
+         software library that creates an abstraction over various
+         platforms' graphics, sound, and input APIs. Gnash can use it
+         as a GUI and/or as a sound handler. Note that the two usages
+         are independent of each other: you can use it for a task and
+         not for the other if you wish. At time or writing (2007-01-11)
+         the SDL GUI lacks menus and a performant input event
+         architecture; the SDL sound handler is the most feature rich,
+         supporting Video through ffmpeg. 
+       </p></dd><dt>
+       sound handler
+      </dt><dd><p>
+         The <span class="emphasis"><em>sound handler</em></span> is the part 
of <span class="application">Gnash</span>
+         which handles both event sounds and streaming sound.  Audio
+         from external sources are also handled through the sound handler
+         when SDL is used.  The sound handler must be selected during
+         configuration of Gnash when compiling.
+       </p><p>
+         There are currently two sound handlers available in <span 
class="application">Gnash</span>:
+         ffmpeg and Gstreamer.  The ffmpeg sound handler uses SDL for
+         mixing.
+         The Gstreamer-sound handler uses the available 
+         plugins to decode the audio, so it might not work if some 
+         important plugins are missing.  The GST sound handler is 
+         recommended (the default).
+       </p></dd><dt>
+       sprite
+      </dt><dd><p>
+         A sprite is an element of an Flash Movie. It's basically a
+         Movie inside another, having its own timeline. 
+       </p></dd><dt>
+       Stage
+      </dt><dd><p>
+         The visible area of a Flash movie. The name derives from a      
theater analogy. Graphical elements are referred to as
+         characters.  
+       </p></dd><dt>
+       SWF
+      </dt><dd><p>
+         <span class="emphasis"><em>SWF</em></span> is the file format for 
+         <span class="emphasis"><em>Flash</em></span> movies.
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">T</h3><dl><dt>
+       Tamarin
+      </dt><dd><p>
+         The Tamarin project seeks to create an open source
+         implementation of the ECMAScript 4th edition language
+         specification. The code is used by Adobe as part of the
+         ActionScript Virtual Machine within the Adobe Flash
+         Player. Gnash does not use Tamarin; it already has a working
+         virtual server and most ActionScript classes are implemented. 
+       </p></dd><dt>
+       timeline
+      </dt><dd><p>
+         In Flash technology, a timeline is a sequence of "frames". A
+         single Flash movie can contain multiple timelines, each
+         independently controlled (STOP or PLAY). At regular intervals
+         (FPS) the player advances all timelines in PLAY mode to the
+         next frame, looping back when last frame is reached. 
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">X</h3><dl><dt>
+       X.org
+      </dt><dd><p>
+         X.org is the most commonly used X server; it was forked from
+         XFree86. 
+       </p></dd></dl></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="authors"></a>Chapter 5. 
Authors</h2></div></div></div><p>
+        <span class="application">Gnash</span> is maintained by Rob Savoye. 
Other active developers
+       are: Sandro Santilli, Bastiaan Jacques, Udo Giacomozzi, Chad
+       Musick, Benjamin Wolsey, and Zou Lunkai. Please send all
+       comments and suggestions to <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden
+       </a>&gt;</code>. Past and sometimes current developers are Tomas
+       Groth and Markus Gothe.
+    </p><p>
+        <span class="application">Gnash</span> was initially derived from 
<span class="application">GameSWF</span>.
+        <span class="application">GameSWF</span> is maintained by
+        Thatcher Ulrich <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>.  The following
+        people contributed to <span class="application">GameSWF</span>:
+        Mike Shaver, Thierry Berger-Perrin,
+       Ignacio Castaño, Willem Kokke, Vitaly Alexeev, Alexander Streit, 
+        and Rob Savoye.
+    </p></div><div class="appendix" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="fdl"></a>Appendix A. GNU 
Free Documentation License</h2></div><div><p class="releaseinfo">
+      Version 1.1, March 2000
+    </p></div><div><p class="copyright">Copyright © 2000 Free Software 
Foundation, Inc.</p></div><div><div class="legalnotice"><a 
name="fdl-legalnotice"></a><p>
+       </p><div class="address"><p>Free Software Foundation, Inc. <span 
class="street">59 Temple Place, <br>
+        Suite 330</span>, <span class="city">Boston</span>, <span 
class="state">MA</span>  <br>
+        <span class="postcode">02111-1307</span>  <span 
class="country">USA</span></p></div><p> 
+       Everyone is permitted to copy and distribute verbatim copies of this 
+        license document, but changing it is not allowed.
+      </p></div></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a href="#fdl-preamble">0. 
PREAMBLE</a></span></dt><dt><span class="sect1"><a href="#fdl-section1">1. 
APPLICABILITY AND DEFINITIONS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section2">2. VERBATIM COPYING</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section3">3. COPYING IN 
QUANTITY</a></span></dt><dt><span class="sect1"><a href="#fdl-section4">4. 
MODIFICATIONS</a></span></dt><dt><span class="sect1"><a href="#fdl-section5">5. 
COMBINING DOCUMENTS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section6">6. COLLECTIONS OF DOCUMENTS</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section7">7. AGGREGATION WITH INDEPENDENT 
WORKS</a></span></dt><dt><span class="sect1"><a href="#fdl-section8">8. 
TRANSLATION</a></span></dt><dt><span class="sect1"><a href="#fdl-section9">9. 
TERMINATION</a></span></dt><dt><span class="sect1"><a href="#fdl-section10">10. 
FUTURE REVISIONS OF THIS LICENSE</a></span></dt><dt><span class="sect1"><a 
href="#fdl-using">Addendum</a></span></dt></dl></div><div class="sect1" 
lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: 
both"><a name="fdl-preamble"></a>0. PREAMBLE</h2></div></div></div><p>
+      The purpose of this License is to make a manual, textbook, or
+      other written document "free" in the sense of
+      freedom: to assure everyone the effective freedom to copy and
+      redistribute it, with or without modifying it, either
+      commercially or non-commercially. Secondarily, this License
+      preserves for the author and publisher a way to get credit for
+      their work, while not being considered responsible for
+      modifications made by others.
+    </p><p>
+      This License is a kind of "copyleft", which means
+      that derivative works of the document must themselves be free in
+      the same sense. It complements the GNU General Public License,
+      which is a copyleft license designed for free software.
+    </p><p>
+      We have designed this License in order to use it for manuals for
+      free software, because free software needs free documentation: a
+      free program should come with manuals providing the same
+      freedoms that the software does. But this License is not limited
+      to software manuals; it can be used for any textual work,
+      regardless of subject matter or whether it is published as a
+      printed book. We recommend this License principally for works
+      whose purpose is instruction or reference.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section1"></a>1. APPLICABILITY AND 
DEFINITIONS</h2></div></div></div><p><a name="fdl-document"></a>
+      This License applies to any manual or other work that contains a
+      notice placed by the copyright holder saying it can be
+      distributed under the terms of this License. The
+      "Document", below, refers to any such manual or
+      work. Any member of the public is a licensee, and is addressed
+      as "you".
+    </p><p><a name="fdl-modified"></a>
+      A "Modified Version" of the Document means any work
+      containing the Document or a portion of it, either copied
+      verbatim, or with modifications and/or translated into another
+      language.
+    </p><p><a name="fdl-secondary"></a>
+      A "Secondary Section" is a named appendix or a
+      front-matter section of the <a class="link" 
href="#fdl-document">Document</a> that deals exclusively
+      with the relationship of the publishers or authors of the
+      Document to the Document's overall subject (or to related
+      matters) and contains nothing that could fall directly within
+      that overall subject. (For example, if the Document is in part a
+      textbook of mathematics, a Secondary Section may not explain any
+      mathematics.)  The relationship could be a matter of historical
+      connection with the subject or with related matters, or of
+      legal, commercial, philosophical, ethical or political position
+      regarding them.
+    </p><p><a name="fdl-invariant"></a>
+      The "Invariant Sections" are certain <a class="link" 
href="#fdl-secondary"> Secondary Sections</a> whose titles
+      are designated, as being those of Invariant Sections, in the
+      notice that says that the <a class="link" 
href="#fdl-document">Document</a> is released under this
+      License.
+    </p><p><a name="fdl-cover-texts"></a>
+      The "Cover Texts" are certain short passages of
+      text that are listed, as Front-Cover Texts or Back-Cover Texts,
+      in the notice that says that the <a class="link" 
href="#fdl-document">Document</a> is released under this
+      License.
+    </p><p><a name="fdl-transparent"></a>
+      A "Transparent" copy of the <a class="link" href="#fdl-document"> 
Document</a> means a machine-readable
+      copy, represented in a format whose specification is available
+      to the general public, whose contents can be viewed and edited
+      directly and straightforwardly with generic text editors or (for
+      images composed of pixels) generic paint programs or (for
+      drawings) some widely available drawing editor, and that is
+      suitable for input to text formatters or for automatic
+      translation to a variety of formats suitable for input to text
+      formatters. A copy made in an otherwise Transparent file format
+      whose markup has been designed to thwart or discourage
+      subsequent modification by readers is not Transparent.  A copy
+      that is not "Transparent" is called "Opaque".
+    </p><p>
+      Examples of suitable formats for Transparent copies include
+      plain ASCII without markup, Texinfo input format, LaTeX input
+      format, SGML or XML using a publicly available DTD, and
+      standard-conforming simple HTML designed for human
+      modification. Opaque formats include PostScript, PDF,
+      proprietary formats that can be read and edited only by
+      proprietary word processors, SGML or XML for which the DTD
+      and/or processing tools are not generally available, and the
+      machine-generated HTML produced by some word processors for
+      output purposes only.
+    </p><p><a name="fdl-title-page"></a>
+      The "Title Page" means, for a printed book, the
+      title page itself, plus such following pages as are needed to
+      hold, legibly, the material this License requires to appear in
+      the title page. For works in formats which do not have any title
+      page as such, "Title Page" means the text near the
+      most prominent appearance of the work's title, preceding the
+      beginning of the body of the text.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section2"></a>2. VERBATIM COPYING</h2></div></div></div><p>
+      You may copy and distribute the <a class="link" 
href="#fdl-document">Document</a> in any medium, either
+      commercially or noncommercially, provided that this License, the
+      copyright notices, and the license notice saying this License
+      applies to the Document are reproduced in all copies, and that
+      you add no other conditions whatsoever to those of this
+      License. You may not use technical measures to obstruct or
+      control the reading or further copying of the copies you make or
+      distribute. However, you may accept compensation in exchange for
+      copies. If you distribute a large enough number of copies you
+      must also follow the conditions in <a class="link" href="#fdl-section3" 
title="3. COPYING IN QUANTITY">section 3</a>.
+    </p><p>
+      You may also lend copies, under the same conditions stated
+      above, and you may publicly display copies.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section3"></a>3. COPYING IN QUANTITY</h2></div></div></div><p>
+      If you publish printed copies of the <a class="link" 
href="#fdl-document">Document</a> numbering more than 100,
+      and the Document's license notice requires <a class="link" 
href="#fdl-cover-texts">Cover Texts</a>, you must enclose
+      the copies in covers that carry, clearly and legibly, all these
+      Cover Texts: Front-Cover Texts on the front cover, and
+      Back-Cover Texts on the back cover. Both covers must also
+      clearly and legibly identify you as the publisher of these
+      copies. The front cover must present the full title with all
+      words of the title equally prominent and visible. You may add
+      other material on the covers in addition. Copying with changes
+      limited to the covers, as long as they preserve the title of the
+      <a class="link" href="#fdl-document">Document</a> and satisfy these
+      conditions, can be treated as verbatim copying in other
+      respects.
+    </p><p>
+      If the required texts for either cover are too voluminous to fit
+      legibly, you should put the first ones listed (as many as fit
+      reasonably) on the actual cover, and continue the rest onto
+      adjacent pages.
+    </p><p>
+      If you publish or distribute <a class="link" 
href="#fdl-transparent">Opaque</a> copies of the <a class="link" 
href="#fdl-document">Document</a> numbering more than 100,
+      you must either include a machine-readable <a class="link" 
href="#fdl-transparent">Transparent</a> copy along with
+      each Opaque copy, or state in or with each Opaque copy a
+      publicly-accessible computer-network location containing a
+      complete Transparent copy of the Document, free of added
+      material, which the general network-using public has access to
+      download anonymously at no charge using public-standard network
+      protocols. If you use the latter option, you must take
+      reasonably prudent steps, when you begin distribution of Opaque
+      copies in quantity, to ensure that this Transparent copy will
+      remain thus accessible at the stated location until at least one
+      year after the last time you distribute an Opaque copy (directly
+      or through your agents or retailers) of that edition to the
+      public.
+    </p><p>
+      It is requested, but not required, that you contact the authors
+      of the <a class="link" href="#fdl-document">Document</a> well before
+      redistributing any large number of copies, to give them a chance
+      to provide you with an updated version of the Document.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section4"></a>4. MODIFICATIONS</h2></div></div></div><p>
+      You may copy and distribute a <a class="link" 
href="#fdl-modified">Modified Version</a> of the <a class="link" 
href="#fdl-document">Document</a> under the conditions of
+      sections <a class="link" href="#fdl-section2" title="2. VERBATIM 
COPYING">2</a> and <a class="link" href="#fdl-section3" title="3. COPYING IN 
QUANTITY">3</a> above, provided that you release
+      the Modified Version under precisely this License, with the
+      Modified Version filling the role of the Document, thus
+      licensing distribution and modification of the Modified Version
+      to whoever possesses a copy of it. In addition, you must do
+      these things in the Modified Version:
+    </p><div class="itemizedlist"><ul type="opencircle"><li 
style="list-style-type: circle"><p><b>A. </b>
+           Use in the <a class="link" href="#fdl-title-page">Title
+           Page</a> (and on the covers, if any) a title distinct
+           from that of the <a class="link" href="#fdl-document">Document</a>, 
and from those of
+           previous versions (which should, if there were any, be
+           listed in the History section of the Document). You may
+           use the same title as a previous version if the original
+           publisher of that version gives permission.
+         </p></li><li style="list-style-type: circle"><p><b>B. </b>
+           List on the <a class="link" href="#fdl-title-page">Title
+           Page</a>, as authors, one or more persons or entities
+           responsible for authorship of the modifications in the
+           <a class="link" href="#fdl-modified">Modified Version</a>,
+           together with at least five of the principal authors of
+           the <a class="link" href="#fdl-document">Document</a> (all of
+           its principal authors, if it has less than five).
+         </p></li><li style="list-style-type: circle"><p><b>C. </b>
+           State on the <a class="link" href="#fdl-title-page">Title
+           Page</a> the name of the publisher of the <a class="link" 
href="#fdl-modified">Modified Version</a>, as the
+           publisher.
+         </p></li><li style="list-style-type: circle"><p><b>D. </b>
+           Preserve all the copyright notices of the <a class="link" 
href="#fdl-document">Document</a>.
+         </p></li><li style="list-style-type: circle"><p><b>E. </b>
+           Add an appropriate copyright notice for your modifications
+           adjacent to the other copyright notices.
+         </p></li><li style="list-style-type: circle"><p><b>F. </b>
+           Include, immediately after the copyright notices, a
+           license notice giving the public permission to use the
+           <a class="link" href="#fdl-modified">Modified Version</a> under
+           the terms of this License, in the form shown in the
+           Addendum below.
+         </p></li><li style="list-style-type: circle"><p><b>G. </b>
+           Preserve in that license notice the full lists of <a class="link" 
href="#fdl-invariant"> Invariant Sections</a> and
+           required <a class="link" href="#fdl-cover-texts">Cover
+           Texts</a> given in the <a class="link" 
href="#fdl-document">Document's</a> license notice.
+         </p></li><li style="list-style-type: circle"><p><b>H. </b>
+           Include an unaltered copy of this License.
+         </p></li><li style="list-style-type: circle"><p><b>I. </b>
+           Preserve the section entitled "History", and
+           its title, and add to it an item stating at least the
+           title, year, new authors, and publisher of the <a class="link" 
href="#fdl-modified">Modified Version </a>as given on
+           the <a class="link" href="#fdl-title-page">Title Page</a>.  If
+           there is no section entitled "History" in the
+           <a class="link" href="#fdl-document">Document</a>, create one
+           stating the title, year, authors, and publisher of the
+           Document as given on its Title Page, then add an item
+           describing the Modified Version as stated in the previous
+           sentence.
+         </p></li><li style="list-style-type: circle"><p><b>J. </b>
+           Preserve the network location, if any, given in the <a class="link" 
href="#fdl-document">Document</a> for public access
+           to a <a class="link" href="#fdl-transparent">Transparent</a>
+           copy of the Document, and likewise the network locations
+           given in the Document for previous versions it was based
+           on. These may be placed in the "History"
+           section.  You may omit a network location for a work that
+           was published at least four years before the Document
+           itself, or if the original publisher of the version it
+           refers to gives permission.
+         </p></li><li style="list-style-type: circle"><p><b>K. </b>
+           In any section entitled "Acknowledgements" or
+           "Dedications", preserve the section's title,
+           and preserve in the section all the substance and tone of
+           each of the contributor acknowledgements and/or
+           dedications given therein.
+         </p></li><li style="list-style-type: circle"><p><b>L. </b>
+           Preserve all the <a class="link" href="#fdl-invariant">Invariant
+           Sections</a> of the <a class="link" 
href="#fdl-document">Document</a>, unaltered in their
+           text and in their titles.  Section numbers or the
+           equivalent are not considered part of the section titles.
+         </p></li><li style="list-style-type: circle"><p><b>M. </b>
+           Delete any section entitled
+           "Endorsements". Such a section may not be
+           included in the <a class="link" href="#fdl-modified">Modified
+           Version</a>.
+         </p></li><li style="list-style-type: circle"><p><b>N. </b>
+           Do not retitle any existing section as
+           "Endorsements" or to conflict in title with
+           any <a class="link" href="#fdl-invariant">Invariant
+           Section</a>.
+         </p></li></ul></div><p>
+      If the <a class="link" href="#fdl-modified">Modified Version</a>
+      includes new front-matter sections or appendices that qualify as
+      <a class="link" href="#fdl-secondary">Secondary Sections</a> and
+      contain no material copied from the Document, you may at your
+      option designate some or all of these sections as invariant. To
+      do this, add their titles to the list of <a class="link" 
href="#fdl-invariant">Invariant Sections</a> in the
+      Modified Version's license notice.  These titles must be
+      distinct from any other section titles.
+    </p><p>
+      You may add a section entitled "Endorsements",
+      provided it contains nothing but endorsements of your <a class="link" 
href="#fdl-modified">Modified Version</a> by various
+      parties--for example, statements of peer review or that the text
+      has been approved by an organization as the authoritative
+      definition of a standard.
+    </p><p>
+      You may add a passage of up to five words as a <a class="link" 
href="#fdl-cover-texts">Front-Cover Text</a>, and a passage
+      of up to 25 words as a <a class="link" 
href="#fdl-cover-texts">Back-Cover Text</a>, to the end of
+      the list of <a class="link" href="#fdl-cover-texts">Cover Texts</a>
+      in the <a class="link" href="#fdl-modified">Modified Version</a>.
+      Only one passage of Front-Cover Text and one of Back-Cover Text
+      may be added by (or through arrangements made by) any one
+      entity. If the <a class="link" href="#fdl-document">Document</a>
+      already includes a cover text for the same cover, previously
+      added by you or by arrangement made by the same entity you are
+      acting on behalf of, you may not add another; but you may
+      replace the old one, on explicit permission from the previous
+      publisher that added the old one.
+    </p><p>
+      The author(s) and publisher(s) of the <a class="link" 
href="#fdl-document">Document</a> do not by this License
+      give permission to use their names for publicity for or to
+      assert or imply endorsement of any <a class="link" 
href="#fdl-modified">Modified Version </a>.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section5"></a>5. COMBINING DOCUMENTS</h2></div></div></div><p>
+      You may combine the <a class="link" href="#fdl-document">Document</a>
+      with other documents released under this License, under the
+      terms defined in <a class="link" href="#fdl-section4" title="4. 
MODIFICATIONS">section 4</a>
+      above for modified versions, provided that you include in the
+      combination all of the <a class="link" href="#fdl-invariant">Invariant
+      Sections</a> of all of the original documents, unmodified,
+      and list them all as Invariant Sections of your combined work in
+      its license notice.
+    </p><p>
+      The combined work need only contain one copy of this License,
+      and multiple identical <a class="link" href="#fdl-invariant">Invariant
+      Sections</a> may be replaced with a single copy. If there are
+      multiple Invariant Sections with the same name but different
+      contents, make the title of each such section unique by adding
+      at the end of it, in parentheses, the name of the original
+      author or publisher of that section if known, or else a unique
+      number. Make the same adjustment to the section titles in the
+      list of Invariant Sections in the license notice of the combined
+      work.
+    </p><p>
+      In the combination, you must combine any sections entitled
+      "History" in the various original documents,
+      forming one section entitled "History"; likewise
+      combine any sections entitled "Acknowledgements",
+      and any sections entitled "Dedications".  You must
+      delete all sections entitled "Endorsements."
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section6"></a>6. COLLECTIONS OF DOCUMENTS</h2></div></div></div><p>
+      You may make a collection consisting of the <a class="link" 
href="#fdl-document">Document</a> and other documents
+      released under this License, and replace the individual copies
+      of this License in the various documents with a single copy that
+      is included in the collection, provided that you follow the
+      rules of this License for verbatim copying of each of the
+      documents in all other respects.
+    </p><p>
+      You may extract a single document from such a collection, and
+      distribute it individually under this License, provided you
+      insert a copy of this License into the extracted document, and
+      follow this License in all other respects regarding verbatim
+      copying of that document.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section7"></a>7. AGGREGATION WITH INDEPENDENT 
WORKS</h2></div></div></div><p>
+      A compilation of the <a class="link" href="#fdl-document">Document</a> 
or its derivatives with
+      other separate and independent documents or works, in or on a
+      volume of a storage or distribution medium, does not as a whole
+      count as a <a class="link" href="#fdl-modified">Modified Version</a>
+      of the Document, provided no compilation copyright is claimed
+      for the compilation.  Such a compilation is called an
+      "aggregate", and this License does not apply to the
+      other self-contained works thus compiled with the Document , on
+      account of their being thus compiled, if they are not themselves
+      derivative works of the Document.  If the <a class="link" 
href="#fdl-cover-texts">Cover Text</a> requirement of <a class="link" 
href="#fdl-section3" title="3. COPYING IN QUANTITY">section 3</a> is applicable 
to these
+      copies of the Document, then if the Document is less than one
+      quarter of the entire aggregate, the Document's Cover Texts may
+      be placed on covers that surround only the Document within the
+      aggregate. Otherwise they must appear on covers around the whole
+      aggregate.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section8"></a>8. TRANSLATION</h2></div></div></div><p>
+      Translation is considered a kind of modification, so you may
+      distribute translations of the <a class="link" 
href="#fdl-document">Document</a> under the terms of <a class="link" 
href="#fdl-section4" title="4. MODIFICATIONS">section 4</a>. Replacing <a 
class="link" href="#fdl-invariant"> Invariant Sections</a> with
+      translations requires special permission from their copyright
+      holders, but you may include translations of some or all
+      Invariant Sections in addition to the original versions of these
+      Invariant Sections. You may include a translation of this
+      License provided that you also include the original English
+      version of this License. In case of a disagreement between the
+      translation and the original English version of this License,
+      the original English version will prevail.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section9"></a>9. TERMINATION</h2></div></div></div><p>
+      You may not copy, modify, sublicense, or distribute the <a class="link" 
href="#fdl-document">Document</a> except as expressly
+      provided for under this License. Any other attempt to copy,
+      modify, sublicense or distribute the Document is void, and will
+      automatically terminate your rights under this License. However,
+      parties who have received copies, or rights, from you under this
+      License will not have their licenses terminated so long as such
+      parties remain in full compliance.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section10"></a>10. FUTURE REVISIONS OF THIS 
LICENSE</h2></div></div></div><p>
+      The <a class="ulink" href="http://www.gnu.org/fsf/fsf.html"; 
target="_top">Free Software
+      Foundation</a> may publish new, revised versions of the GNU
+      Free Documentation License from time to time. Such new versions
+      will be similar in spirit to the present version, but may differ
+      in detail to address new problems or concerns. See <a class="ulink" 
href="http://www.gnu.org/copyleft"; 
target="_top">http://www.gnu.org/copyleft/</a>.
+    </p><p>
+      Each version of the License is given a distinguishing version
+      number. If the <a class="link" href="#fdl-document">Document</a>
+      specifies that a particular numbered version of this License
+      "or any later version" applies to it, you have the
+      option of following the terms and conditions either of that
+      specified version or of any later version that has been
+      published (not as a draft) by the Free Software Foundation. If
+      the Document does not specify a version number of this License,
+      you may choose any version ever published (not as a draft) by
+      the Free Software Foundation.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-using"></a>Addendum</h2></div></div></div><p>
+      To use this License in a document you have written, include a copy of
+      the License in the document and put the following copyright and
+      license notices just after the title page:
+    </p><div class="blockquote"><blockquote class="blockquote"><p>
+       Copyright 2008, Free Software Foundation.
+      </p><p>
+       Permission is granted to copy, distribute and/or modify this
+       document under the terms of the GNU Free Documentation
+       License, Version 1.1 or any later version published by the
+       Free Software Foundation; with no<a class="link" 
href="#fdl-invariant">Invariant Sections</a>, with no <a class="link" 
href="#fdl-cover-texts">Front-Cover Texts</a>,
+       and with no <a class="link" href="#fdl-cover-texts">Back-Cover
+       Texts</a>. A copy of the license is included in
+       the section entitled "GNU Free Documentation License".
+      </p></blockquote></div><p>
+      If your document contains nontrivial examples of program code,
+      we recommend releasing these examples in parallel under your
+      choice of free software license, such as the <a class="ulink" 
href="http://www.gnu.org/copyleft/gpl.html"; target="_top"> GNU General Public
+      License</a>, to permit their use in free software.
+    </p></div></div></div></body></html>

Index: doc/C/preformatted/gnash_user.info.in
===================================================================
RCS file: doc/C/preformatted/gnash_user.info.in
diff -N doc/C/preformatted/gnash_user.info.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/preformatted/gnash_user.info.in       3 Mar 2008 23:46:44 -0000       
1.2.2.2
@@ -0,0 +1,1963 @@
+START-INFO-DIR-ENTRY
+This is gnash_user.info, produced by makeinfo version 4.11 from 
gnash_user.texi.
+
+* Gnash User Manual: (gnash_user).   Gnash
+END-INFO-DIR-ENTRY
+
+
+File: gnash_user.info,  Node: Top,  Next: Introduction,  Up: (dir)
+
+Gnash User Manual
+*****************
+
+* Menu:
+
+* Introduction::
+* Using Gnash::
+* Installing and Configuring Gnash::
+* Reporting Bugs::
+* Glossary::
+* Authors::
+* GNU Free Documentation License::
+
+--- The Detailed Node Listing ---
+
+Introduction
+
+* Audience::
+* What Is Supported?::
+
+Using Gnash
+
+* Gnash Command Line Options::
+* Gnash Interactive Control Keys::
+* User Configuration File::
+
+Installing and Configuring Gnash
+
+* Requirements::
+* Downloading Gnash::
+
+Reporting Bugs
+
+* Get a Fresh Binary Package::
+* Determine if the bug was previously reported::
+* Review the bug writing guidelines::
+* Filing a bug report::
+
+GNU Free Documentation License
+
+* 0. PREAMBLE: 0_ PREAMBLE.
+* 1. APPLICABILITY AND DEFINITIONS: 1_ APPLICABILITY AND DEFINITIONS.
+* 2. VERBATIM COPYING: 2_ VERBATIM COPYING.
+* 3. COPYING IN QUANTITY: 3_ COPYING IN QUANTITY.
+* 4. MODIFICATIONS: 4_ MODIFICATIONS.
+* 5. COMBINING DOCUMENTS: 5_ COMBINING DOCUMENTS.
+* 6. COLLECTIONS OF DOCUMENTS: 6_ COLLECTIONS OF DOCUMENTS.
+* 7. AGGREGATION WITH INDEPENDENT WORKS: 7_ AGGREGATION WITH INDEPENDENT WORKS.
+* 8. TRANSLATION: 8_ TRANSLATION.
+* 9. TERMINATION: 9_ TERMINATION.
+* 10. FUTURE REVISIONS OF THIS LICENSE: 10_ FUTURE REVISIONS OF THIS LICENSE.
+* Addendum::
+
+
+File: gnash_user.info,  Node: Introduction,  Next: Using Gnash,  Prev: Top,  
Up: Top
+
+1 Introduction
+**************
+
+Gnash is a free SWF movie player.  It is available as a stand-alone
+application or as a plugin for several popular web browsers. It
+supports playing media from a disk or streaming over a network
+connection. Some popular video sharing sites like YouTube are supported
+on a wide variety of devices from embedded ones to modern desktops.
+
+   Gnash has a better focus on security, allowing the user tight
+control of all network or disk based I/O. Gnash also supports extending
+ActionScript by creating your own classes. You can write wrappers for
+any development library, and import them into the player much like Perl
+or Python does.
+
+* Menu:
+
+* Audience::
+* What Is Supported?::
+
+
+File: gnash_user.info,  Node: Audience,  Next: What Is Supported?,  Up: 
Introduction
+
+1.1 Audience
+============
+
+This manual is primarily focused on users interested in how to get
+Gnash installed from a package, and basic usage as a web browser
+plugin. For more technical details, please refer to the Gnash Reference
+manual.
+
+
+File: gnash_user.info,  Node: What Is Supported?,  Prev: Audience,  Up: 
Introduction
+
+1.2 What Is Supported?
+======================
+
+Gnash is known to compile for most any POSIX and ANSI C++ conforming
+system if you have all the dependent libraries installed. Systems we
+test on, and which Gnash is known to run on are Ubuntu, Fedora, Debian,
+Mandriva, OpenBSD, NetBSD, FreeBSD, Win32, and Darwin (OSX) primarily.
+Occasionally other platforms are built, primarily by those distribution
+maintainers. This includes BeOS, Haiku, Syllable, OS/2, Solaris,
+Slackware, and Gentoo.
+
+   Gnash is capable of reading up to SWF v9 files and opcodes, but
+primarily supports SWF v7, with better SWF v8 and v9 support under
+heavy development. With the 0.8.2 release, Gnash includes initial
+parser support for SWF v8 and v9.  Not all ActionScript 2 classes are
+implemented yet, but all of the most heavily used ones are. Many
+ActionScript 2 classes are partially implemented; there is support for
+all of the commonly used methods of each class.
+
+   Gnash has implemented about 80% of ActionScript v2.0, and has begun
+implementing ActionScript v3.0. Gnash supports the majority of Flash
+opcodes up to SWF v9, and a wide sampling of ActionScript classes for
+SWF v8.
+
+   As ActionScript 3 is a more developed version of ActionScript 2,
+many of the same classes work for both. Support has been added to
+Gnash's ActionScript library to support the new ActionScript 3 filters,
+which get applied to every class. Implementing ActionScript clases is
+often the easiest way for new Gnash developers to make a contribution
+without a deep internal knpowledge of Gnash.
+
+   Gnash has included video support since early 2007, but this is an
+ever changing field of reverse engineering. Many of the popular video
+sharing sites use SWF v8 or v9, which Gnash still has imperfect support
+for. This is improving all the time, so often builds from a development
+snapshot will work when using the older release packaged in your
+distribution doesn't. You can find daily snapshots of the latest CVS
+tree at: http://www.gnashdev.org/dev_snapshots
+(http://www.gnashdev.org/dev_snapshots/).
+
+   Gnash uses ffmpeg for codecs, so any file supported by Mplayer
+should work with Gnash. Gnash supports the loading of patent free
+codecs like Ogg Vorbis or Theora from disk based files, while work is
+being done to support these codecs when embedded in a SWF file. Ffmpeg
+contains the codecs used by the current SWF defintion, FLV, VP6 (ON2),
+H.263, H.264, and MP3.
+
+
+File: gnash_user.info,  Node: Using Gnash,  Next: Installing and Configuring 
Gnash,  Prev: Introduction,  Up: Top
+
+2 Using Gnash
+*************
+
+When used as a standalone player, you can play any Flash file from the
+command line by entering a command of the format:
+
+
+           gnash <option> <flashfile.swf>
+
+The only required argument is the name (and location)of the file to be
+played.
+
+   The available options are listed in the following section, or you
+may view them in the terminal window by executing the following at the
+command line:
+
+
+           gnash --help | less
+
+   The source code download of Gnash includes several example .SWF
+files.  They are located in the `testsuite/samples/' directory of the
+Gnash source directory.  If you have installed Gnash correctly, issuing
+the a command similar to the following plays a short animation of a car
+swerving and crashing:
+
+
+           gnash
+           /home/<username>/gnash/testsuite/car_smash.swf
+
+‰PNG
+
+
IHDR6À˜Sh        pHYs:ÊduhtIMEÕ Eö—H 
IDATxÚì}yœdU}ïï,w¿µvWwÏ* 
Âì*”Eшã.ˆF1Ä$ïÅ|address@hidden>ý™©S·îrÎ=ç{¾¿åüŒñYÏ;ÿ˜íÇÃyð‘=6mA€Ðü?¹ä’K.CE€ÖöìÙ}ü¶Í«»ÎÃ=pç7+¥Æø}øè9ç½hzúŽC„©É
        øìnáÆF¥‰±ãÓ$ñ’IC±¶íUã(ô=+XóÀ°Kq^ÊdˆÍbµË¥Rœ)¬" ~µ+•jœ
+¢c…½,i—ËÕ8a1‰žvüb%I2“H–È×/%Ij›ˆ+*Yd¹Å4I›r‰
ÛÏÒص-&‘–       1¼,<address@hidden:,<ßg\!•jì°4,Š)“2…lÎ"×-0&
+LÁcÛñV)Ór9ãER%Rj:œ3Ó Ra-3B-ΙiR(†ˆ%8³,SH
Š6ÏlÛR!-42¤È,ËæBaè™iZBJŒ´¢$£†%…$`-9¡¦‚¤4֊cbH))ÁJ#­ÆT*A       
Q€¨R‚ª4€–€ˆR‚ª%!D+
 a­$&D)ݝ´Va¥Âz¾ZBZk47Ui4ÿzèÇóçv»îÜõAkèw»ù¢Âé…
¢Rw‹-Tg¡vRPÚSwÉ©aJ©RÝ¢!¥šojN
C
+5×Ԋb)kj!(%J#­&¦àÜ4
©æÞ¬ä™e[Bj¤¹F¦à©m»\HE‡IT`HžZ¶Ã¸ X+ R¤¦åpÆŠ¥&J$†é2–Y&
+k™ÃeYbۖÝnì²,ò\—     T
+Äaiäû…ŒK¬S…–……B1ͦÍ³Ðó‹iÆ
,%˜sƒ(Í,
+B’…¶[L’ı     
—DñÈ´I{®ÅÒ"¢f!I‚ïeLƒŠ0õ“¸ÓÂDEšøIܪVÇ¢DPˆ$ò³¸Y®Ö¢851ತU,EQbQɵÅӎã•ã$5ÊÂ=o}Í`f¶Î[Ô]&jã†aÀþ¥”‹ºÒ†
“·Ýò­¾ÿ·Ðóιàò±8
+Î:ã$4OŸº½4K³[¿ßD­öÏ×߆,î|/ˆ™0Çâötu|¢ÙN}+“¤št¦ËcSÍVXrU¦‹,Ú_ªlh¶ÚåI„ËãýÅʦf«9V²‚ÌRÉ~¿²¹Õ¬•ÝNJ«ÛÅ
A{¶Rò;  Ù1ÝZÔË¥b'–Äت$a£T*u"n“LÓR×ÅJeŽ!$òYÒðÕ0J<˜rDÚpca\’JS¦M§0 …
AÁ3nhÖ´½ñ(êøž•0‚D`8å4<ÏI2À:&V1‹×s“LQ”!ê±4t7ɤA„ÆŽÈBÛñҌ›T+°mÇO3f 
´!ydÙ~šf¶E¸$ZD†UȲԶ(address@hidden)2Ã0¹P+address@hidden
+!AJ­2B-)%Xj¬#ԔB‚»Ð†±!¥$w‡7ÂT)I0VBD+‰0Öº‹5´BÍ͒õC+=wÐóX¥»Ð3ÁnqávswÇK¥1Ò]$"„́(Å
       5¤”ƒÒd¡v” 9Ww[fR"ŵ8ç¦A„ÐSKpfš”ÀÀ55WKÀ¦`©iYœKŠ•B¦ä‰e9ã&Õ
ÉcËò2–YŠ*™v!MÇ¢L-BÓ.¦Iì:fÊR1µ
+Y¹Ž•rÀ:%†Ÿ¥ëºI&
Āú,鸞Ÿ¤Ü$Bc—¥×+ÄIfJ"W¤-Ç+Gqâو)[¦
§0…a·«¬ájaÐ.ì(#ˆ7-¿­RÁ
S„UÛpÆã°Y*úA¬ˆˆ]‰ƒ…A”‚QNÂÙR©Ú  
Sײh¦Xªµƒ¨àèLû<:P¬LµÚ²Obáˆîn6ÆËv'3U²ß¯li5fjU¿cÄgœâævóÀxµÔŠ4•MÓßÐi«Vڑ¤b³$£]¿öº:ö)'n÷<·jÀmwÞkÛ^Ggœz‚i‹Ž~ëæ;ÇÇkïÿŸ¿N.xÑKN:å
Ç&ž_ɸT
+„„ŒK­Aixr÷^ÏóôÀ®N¤Çi‡Ì„„ãrМ.–Ç6"×ÈR]ŽZû
+剙َgːûI0í'gê­¢‹;©…ûâÔìl½\0‘!âýVaC}v¦\rê!Ré,u'™RÁ«ñ6²ÆÚ͙BÁ¯w8Ñ¡¢å 
=ëùÅz;3PÊ ³ŽWnt‹ðTºiT·Ýr³نŠ¸•ÅuÓ©4ہkã ¥,iP§Ún·]›v"’±«íNËuÌNŒkƒQ
+ƒŽíXHi)âGaDzìN,Jr“(0,'ˆ8δ•Å5 Î’©4²4 †F)Á:儥!6¼0J
Šb†x"address@hidden       f–&ˆÐ$Zq¡h–%Ó$Z®ËÀFšq
Š       ÌX
address@hidden
+YÆ ÀyªfÓLh!˜Ô$c\0®„àRcƹÖÝ¢1.¤FŒ+!¥ „
+¸PB*!µè~˜/r¡„ÔBj!UϟR)…TB‚RHÅ¥B
+       Œ©º'Î5â¼{1Î¥F—JI.cL>Tä™’1®µf-Ôæën¦iŠJ™î6E’f£„i)3    
Fš¦“$SZ2Æ¡¦Ö\(š¥1&F”rВ)ÊÒQ+J2ŒT&K#L(I     F       Ç,ë¾èØ4H”!‘ÈðÃ(2
¦ZñP/
+CÓ4ÃDi+ìFÑB¿Êr“¨mZn'Êp¦$n›¶ßRƒÈTØiÔ4íb;ˆ,"n²¸a8åV;pmÒI‰H†SmµZ¾gµ"¤²&¶ÇÚ­¦ïÙÍPƒhQ
ÚuÏsÀ*P¤´ëž_¨·3%£ÎŒç—ë­Ø¢,U^Ì8~µÞ\K…ÜÍÂN¡6Ûh]ÜN-îw
+fêõJÁªGTÄÓvqóÌÌÁjٛé Íf
oC}v¥\œiK,ȞjÖ§Ëåòl[QJ“ÀÐÑé'=3K“­[·d¬Ûs@(-¥Vfëu)address@hidden ›iĞÁR]ŠÛӅ
òÄL=(Ø*â^ì÷Š“³õVÉÅíÔæѧ85;Û(ÌFDU|Àò7Ô볕’; Èf©;Ñl̔‹^=PX´5ÖiÍ…
FGPIRÛ³¾_l´3g
+IXw½R³[D¤ÒÍ¢†å–›íÈ1uÄ-–4L§ÜꞍƒ”Š´iؕN»ã9´“`™5‰SítڞcubмƒŒR´ÇìD
+d¤‰‡Û²ƒX`•Jä¤QÇ´ì0b8?„VŒ"•Iƒ§a­(Ñ)'<‹ˆáFQbRœ0$X„©G±Iqœâ7Žcƒ’$SZ¤YiSB“LiɘYb$©-„2X–"b$™Bž¥iÆ4˜ó.Zqš
       $x¦‘‘e¼‹V’gŒŒqÄ8Ε¦œq
À¹–RH…ù<ZI)¥B\­s©”’„RRJ%¥BJ¥…ÐBuÁKJµªæqM*!ô¡S¤–BIBH¥€K-e÷ús·“RJÕ-¢î݅
D‚s
˜s¡çŠLɘ­¹Á3š±¹ÊÎ×=Ãe¤È42³4#§Lk™)0³4#„¤Ljɤ6²4ń&©œoê3NÉáYŒ©•$Œ    
ÂYÜE+Š!å¸ûf£(6)Ž2,D†…‘eÐ(address@hidden
+-Ë   2Ñ؋£À:¼_Y–DŒgÚNã¶ey 1‰Ì„•%-Ó.v‚Ø6 
æOš†Snwææ`™6©]m·ÛÏlEH³&±«V£àÙÍP#Ñ£´¾ï5Iu¤h9ìÔ}¿Ðh3§âά뗭Ħ<U~̺~¥Ñ
=KGÜaáAǯÕí¢KÚ©)¢ƒvaª^¯W
+f=¢*9`ù›fgŽ•Ý™6›¡î†Æìj¥8ӒT6‘=ÙjLW+åÙ3!P´‡mÛq%6Ž 
„ŒºŸ{¸:‚z½uý×nþôg¯ÿþ]?VJõ 
¥‡>ôœçžúo_üf¥\ܲibÓƚš×$µÆa,LÌ8xi0S*UÖゝ%ªÂ‚ý¥Jíàl§ìé€û29P(OÎÖ[Õi'–Îx¥©úl}¬d7BŠùA»8UŸ©U½ÙP9Kü©Vcv¬â϶¥
     
°kæL¹\¬·¹Mb‰+i{¶T*5ڙc0¦‹<˜õ‹åF;ö,•JO¦u·PiµÂ‚ƒ"f)Öp¼J»<¤xÓò*v§è™#Ñ4ݱN«U*ØíH€]ƒvÁs:¡¢(QF1
ڞçv"nb&ˆ'¢ŽãxAÈ-*˜rdÚ±/Œ2ËЩ0•-ˋ¢Ä6QÊ©¡1W$q #jyQ;¶e€UD
address@hidden,address@hidden  SBÍ,å”BÆ  ¨S3K¡˜qabʌQŠ3®‘æ‚1‚1ãi0QJ`Œ…
ThΪÕ-J4gf’c¥Õ\¤A£®Mj¾ØW„ —º&°EWÐ
+c$¤D °Öc,D×¢‡µæÁF ƒfSÁÁÀ8Í0¡YÆ)AŒ£neÓ43(I bb±45)M2…kbÉ$5Lš¤’ 
!±%ÓÄ0Í$•t¾©MÃLN‰bÂP"6,;N˜I!T‹Ø°œ8N-%
ƒŒ¨åÆQlÛ4ÎɈX~†®c†‰":Õ¦GëXa,)dŠúiÔq'ˆ¸‰¹ 
®ˆ:ŽëuÂÌ¢’+G¤mÇõ;aj›*¶bmÛ-v‚ȳQÄLÍ[–[î´ߥAB‘hXnµÝj•‹v3DD5±3Öi5KE§hmWƒv³TòaáXârÚ®KÅF;shÆu‘uê
…R¹ÑŠ}K¦Òçɬ_¬4šaх
¹*ñJµz£U)Ðvb›q‹“õz}¼ÜÂŒâÆúìÁ‰1ÿ`L5CýÍÙµ±âÁ†°Q[;address@hidden>I¨ÞhÝsïOºHtÎÙ'—Š~/`ÕÆË[7M>úøî—^üJ
        îéa¸÷Ó¶£¶\yŋ¶lš¸üÒópìi--*€z2ëT*•v˜–]®HE$«cí 
®4ƒd³åêd§Ó/‘D:˜Ï*SN«V±CnP9ë•7„íæä¸×I°©Nq*îÔkc~'¦WË¢ÆXµ&Ò¥1±ª<iV*å0æ¾É-ª¬Y*W¢8+ÚJaO³V¡T‰ã¤äam¿PMâ¸ì&M"Ûn¡šÆa¥`¦‚RÕqü±4îTKv°
      ¡åUx”‹NÊÁ"     µŠ2‹7eÊ¡›¾â‘ï{®)€: 
"Ïó箥[HÅ®ëqÎ<+0°Jl×<ó"H-Ǘ<ó]C(L!5m_ŠÔsL¡¹aºJd®cJ©M,ˆiÊǔJYTj"address@hidden
L±f¦e)--"qÃ4µ¦‰ ‚¸a˜ZËÄE‚a¢HRJ(ƒb„€bMÁh¡„`Œõ\‘!cM Ƹ{a” 
address@hidden&c¬ç¾ÄzþúhþvceP‚6àîýEIîÂ#ahi™0Æó•µM¢QÄÓҊ;U€
Ì©aiÅlÛP"  address@hidden&‘¨ÛÔ¶)•´ˆ‰uf;ŽÂ1Å:µGæÚX%:±WòÌs
©Ñ©éø‚%Ïä(5l_²Ø÷l&ÀČZ¾äQÁw2¡lʱáén¿bÂ5%¢Ž¡ï²Œy–ÖȺ~1Mӂƒ„¶°
\¿œ%QɧLTµ,IÂjɎ6¡m{ãiÜ®–Ý8C·ÊâVµìG‰rHL­2OZ•r1Š…
g2d”DÚ*WÊa”©ˆ¯²F©\¢¤ìñF±Rƒ`¬HaÑ(”'ƒNk¢b‡YwoÛõ©šßŽ±
u»¸1ìÌLՊ­H»¤møSIpp¢Vm²`†Ä®±h¶\*Å©°(7sjDQôãŸ<ü£ûþñO îòbt°P³Ù¦„\ýúËw>ú¤V
+õP,ô¦·¼ëõo~ÅbÛÑÛº<mž¤!)åÍ·Ý511ùÏ×ßê)–†®ëvÂÔ5˜À¥,œ)UÆZ¤`Ë
+"®Jã­NXòP"•ÕÝb­Óî”FÄ,`u»8Ñi·ªE§“,š–?vš•’׉êuÆã°Q*úX™(Æf%š…
b1ˆ¸M™"·üB1Œ˜cJ<‘¶]¿F©gÓ¶Ê:¶WŠ¢ØwH*MÍ;–[Š£ØwiÂi׬žÄ¡ïZ1CX…
†½P¢lX¹®Óµ²õx9Ž“dÒÄBa[²Ø²”    
“(–±i¹YÆ»Vv-bÃr³ŒY&撀L©é2–Ù&aϳ̶h6gew8Ë,“²9Ó¯-xfšú•Ý4¹i¨’¬ke'address@hidden<gt_deD´Rc­5­ç¬ìÝ"address@hidden<†
 5`zÎ_     jáv‡î®”Â4`Ða¢”´Ơ»îQI0R½u§Hªnє‚SJ„¬"¦Ì 
”KÀÐ[ì6µ!ë65EJ!C‰Ì0-ƅA´C‰Ô0mƸI‘ÐÝ7ë0Æ,“ðCo6ul#åë„ 
ËÇ6S2D]žÅŽm¥LSĀº"‹ìù~¥±#Xd;n’2‹j‰,É"Ûñ’$³MàÚÒ<°œbœ$®M2AA–SŽãÐẅ́$Ã-'aPôí0CD
…Ô.'Q§XpƒD›#«”EíBÁbi‘LÓ‹Û…B!ˆ˜c
+‰|ž6=¿D©g)®]™5]¿Ú     £¢‹aiÖtýñNÐ)ûfÈ(â
۟촛ce§"êVaªÓªWüf¦nSw"lÏV+ÅV(m"k,ë•r9ˆ…EP_EOþÚë.贛Ï=ëT)address@hidden  
óV«®·þø“jããŸùÂ-‰®Ø–¤Ì"Ba/‹…R¥$ž¥òXÒ,« ò”)G¦M¯0Ö       
‚¢GajÖtüZ´K¾1‚xÛòÇÃN«\tƒˆ
+
§‡­bÁE!!f)‰Û…‚&ÂD…,i{^!J˜M¥Ä®H;®WŒ’Ô1€ƒ¥X`»Å(N\3ej Zn1ŽcϦ™ 
ZF¦]LâÈs͔c‘a—Ò8ô\+a€uBÌK#DZS¦pL–ÅŽí¤LR,ۂǖådL¤ë9J-ËΘ0(HMµH
Ëɳ(šh™Rc¡O#PŒ6c™e\R¶`Ì4)—s#Jf†
+#ؐ‚ÔRa¤J2B
)ÆZéú॔#X+Aˆ!¤8î@%!X*z®ˆ       V
+!€h×
§4 ­wðҀ`.v#¤æâ
 Ûuô¡" 4 ÑáøÕu("@zñ)€z"æ‹!5WÄZ˹èŠîѹg›/­%ÆDI…1R€ˆR
+J°Téù"ÅR"¤9"¦”Ü DH@ 6¤à¥BjŒ$`C      F©Á¥"address@hidden     WTF
‡±Ì6)“©Œ.c‰m™Œk¤1\ž%–mf\àˆ:"KlÛîíW¶å¤ŒD+dI 
Y¶—¦™e€Ô¦ä‘åøi’:fÊÐ<4b’Äžm¤ƒŒL»”āïÙqDÅÔ.&qPðœ(ÓT§Ø,dIÇ÷¼(•ʐágIà{^˜p›
+…=žv\¿E™c*ŽÈÚ®W£Øs0“–b-ǯaXtiÂ
Í[Ž? tZ墦‰–åO„F¹ä1Ý1ñ0hTJ…
v$Ma«šõR¹Ü‰¸E8¢>g‰N÷¿íõ/ît:“µ²i‹â:}bo¡XŽ£pã†1BÈaGüt瓵‰üä_¡_ûõß¹æí¿¥µÞ7½ÑäHš¬À§þùdod\QÄõXÒö
…(fÚ(dQÓ/”¢˜Ù¦”ÈcqÓ+”£(qm$´ÍӖëWÂ(*84S¦H›Ž?…AÑ·Nk[n5Ž‚‚o'
!N9‰ϵÓy4I“Às»Q¥ãzi&"address@hidden'–SH“Ô¶    
—Tñ°ë‡vmƒI¬ElX~–&¶m2JçûœÅ„Æš!ê–X–ŸÂH"l
+žš–Ÿ¤XkdHž¦Í¹0(( =E¤4‘"5L‡sfX*¢eF[pfD*¤#t¾(€ÀØ‚•R#P€©’œÚããç„R©y¿ 
„Êy2¢•À„.‘EÅyn¥0FZ£CÌ!
æCŸP÷h—UuÁfQ‰j-±h-¥»ÁXÁüÝÒÝH1¬ ®UKIL°RzPe   
¡óáèð"ÌÑL)!JA·©¥ä´^ݦœ],S€¨̘cµZ#*EF
KpA)hM¥è¾h>÷f»1z,3M*ÒrË,“ò9,sK-Ëàœz¾_$€Ø<‹mÛΘ4ˆÒÈâ,²m7eÜ¢ 
Á,²l/͘mb¡¨ä¡å’¤Û‰âéÓ8v]“ñ®‰­&QÏ ò³$t]'address@hidden,±0„]š       
SdCØL8UYËöÇ¢ 
],ºqŠìN%Ûł¥šèÅ,,Ûî4ž|÷Õ/€™ÙcÙâ8¬‰šA)ì?0#¥Xttã†)„ÐßýÍGél£ýà#»qÚFY°´»{
 address@hidden)ŽrÁ\rÉeˆ¬û¨™]y±|×åÜűM;ïtñ'¦Ÿr띍º²K³6=bcñü36nüþíôë+   
  
À‘yÈ%—\Ö&·ÿÍêΟÿëÁ9ï½÷¶"ÎÛ0—\ryºHX¹ä’KX¹ä’K.9`å’K.9`å’K.¹ä€•K.¹ä’V.¹ä’V.¹ä’KX¹ä’K.9`å’K.9`å’K.¹ä€•K.¹ä’V.¹ä’V.¹ä’KX¹ä’K.9`å’K.9`å’K.¹ä€•K.¹ä2‚м
      žF’øÜ^CÙŒ@(˜Ž¡ÃÁÄP2 ¨Ú+؇+—\rÀúE¥¡•ׇ¾if ÔÜ!‚Ì$p ¡ÊL
address@hidden@iD0R¦Â³)<ÖDH¡©…;îOÀp<BHÐéÅsw 
b9V¡¤‹¥´œÅhm9ŽMlZ®Ž§{åI¥ë)h€2Î
+¶Q¶Àæ!æcé¨ÈÔ¬b…¡æªAP4¡fƒEòמKX?Orx"€‡Zpÿ,úò›    
åPdxEÛ¶)¥éÁ™$ŠbÓ°s0©¹ª´¥µ'%˜›B)¥À žÂ5M«•ބ     ]BlΜßÜ*Óp4BÈÖz!eš»_ö
address@hidden<¯[´gf'address@hidden:H»‡fŸs®pÀRíW¢CžÙ¦„Ï_GJ hi)ÕÞùHøø 
­dl*ùH«€(¡ @êìÛ„¾Ž(Qª¸0B.†1G
address@hidden,0,%J&L:P2¡fCÁ̇R.9`­YbÓ142x°:address@hidden)¢ÁŒ 
€Œnc!Dñêí~Ç÷„Úö…¯Œz&>ü5 Ùý¿öÐNMHŸ‹/}ÍaD
—š‡Œ…uÈ4hгÏ9=:b+(¡µPªÙjeiÚh4 h·Z õ®ÝÆ Pz!àDíÕRmRóÏÄÛ
ÂðÍÇèŠc6T-¨ÙPÌá,—°zeo?EÖäS˜‹0Kˆ™á) Sšœ®h
cÝÝɶqè|Ùå8JðÓ@;²êýÞd 
p».0õÃ{á‡÷.wš†{HSˆç6šzás+ÖO„êIP‘(Üõ}ɑvMš)žÕF*$J Ũvm³f«s'D— mrÁ 
€le+¹üB֓!|áIszê쪷áŒ)ë…Ss:°2u«Wúú7‘ùË^Á>ZP}Quþã€ñâ>%1­™&´Ô 
˜nÄÐÖj÷“âq-ïCJ-A‡”& g‘Ú)RŽÐ6GýÊ&½¹¤ŸUm% ¹+;—§;`íáÏîEb¿wéy]ø®wáñqà=?H{>ϼåM 
õZnWú֍ƾéCãPÈf«ÇQÐ    ×õ}oçÎGâ8"=¼Ì²­R±4¬£Þ1 IDAT7È       VR9>|ˆ§Ô²ƒ¨ 
,@E„{¡„Psþ3гjÎð^ÃØ4·ã»©¨DãšdZÿT
+       `"GÔ06
+ÐÏØ[HBV—Ñ!€Ý¯‰q˜Ž«µÔÀöƒßPʏ`êQ²OÉûÜäz¡H‰—kâèŠ~öŒÛù˜Íëi%4áïv•w?ÂG{§ 
bÜú=ùŸ?2ª×Tª®Õ킅ZK¥5D'¿ïˆ­­VKBˆf³I)圷Ûmq8;3Mc|è˨¥(471¥‡ 
CkŽƒ!BZk<1‡_JiÁš2º‡”#¼.@) ¸ûQH¹P;-„A(address@hiddenzB*¢¡¢´­uÅ×UÐ6º
+â8Æ&dŒaì#TA#p›’€€Dk녈"°ŽF`®²UŒOH
ÎêpVýÔ`ŸÖ1¥;Æ7ËçLÀ3
+€¤¡rÿfX?¢5|g¿ñ¡Ç/Q…
ßם±ùáD‚pÑ/J5´ªkµO©H«Çì%x7%(I(eR(ËÒ/Ðõ·؃t­1ZkBH¥R!„ض=66…
B”!d†çy…BÁ0‚`Û¶mãããõz]÷P¹v»Ç1`ŒÕ<KÛ¶+•J÷{J)c¬ÑhdYvˆ˜"¥ìþ 
Z­vï‚RJÍÎÎ*¥´ÖÝ1Ƥ”Û¶m«ÏÎ
+)…Zë(Šc¶fÀÁ8NÓtg!<ÏcŒaŒ ! AܹÆÕRRBB µâ\K©…“ª¨õ˜Tµ¢|©\¥1FJkhj[è6 
²       “
Oa²Ž¼¸¹@&„s.8\è4‚Çv‰ïh–xœ•¤c06¤—mWS.Œ|Pç€õs 
RÃgö”?ûcë#‚–ÓÖÃZTŠ–•šÁˆa¬AÏÜíZ„RaRk     ¤T†Q«Õ6ÕjµZmÛ¶m“““¥R© 
¦¦¦°!ÔeFcaŒBJJ
€BaŒ»_€Rªûå¢gF£idý¦5t¿_ø°ô€VJ`Œ{rѺ(©¤TZw¿‚ ‚0;ç|vvöPKY¯×¥” 
u'²,ët:išîŽ¢iš$ÉÂÓv1c¼ððc¬5Ñ 8ׂoârR*W©ŠÒR™mD¨†ð8Æ„'1Y5êú
NBÆI`¨Twʑ0ý„üáãìÃ*©•¾ãx8²í°~vòÃøÄô¦öƒñ§½R$Ñø˜ã¹c­µÔšqÎ9—R
+…Z­V.—K¥R¥\>ò¨£&'&6nÚÔ
³"„ƒe¸:ÔÕ¼–²ŒG½È"ôbY[øÙÒk"´pԅÔyYô<K¥P(èáæ<address@hidden é;KëÙz½K     
»¼ïŽ;îˆã˜1Ön·ëõz«ÝžN’ &&&Úí6F 
­1€BqN4J•”Be¥Ç„8Bê’Ò]崊ðÆǺq(Yë0لÉ&p.%η¦ÑŽÇ[gm'¿µ­³ÕÏxXÿýhÕ4¿qô[ýðáÿ?ö¼‰Îd­X,nÚ´©\.W*•
6LMMMLLÔjµîÌߕ¥ÒÕwú£ÀR"³ôÐmØKo1ü‚C address@hidden/„Ð|C
¾­®Û{Ú¶mÛÈ]WºHwàÀ ÚívgfšÍf—ÍÌÌ4$I’$éro½N06-«Ëg%ç]h+¤Ùv.ŽÍø©˜ 
Eè1„Òåzó%B‡ýßOjØtŸsðþ·çƒ<¬ÿ>¹¯Iÿ¼È{âà›~ø㠌ÞÏӇ7Ô¦ÆÇÿôÃv=ÍË
+®8âP_‘Ž¶†[?µ²–;v¥[Ù¥¬ìð&ë%w½0wÄG,:u_ë~BÌÎÌÌÖëI’tÍfóñÇ?xðàC»wߺ?Ò”"Hn“z;ãÏòLÇ0vMa¼ˆˆ‰Éí™yš¼ëØóvÞwëOŒÌÜ$ŸÖZ‘*\áí
Þrç-ÛýGž~­Vñ|ÿø€_(Œ¤…õ—¥$k8-¢WkAAüîçVæëŽPi¸V»š÷`(¥›·lÙ´yó 
åtßÞ½?ñÄ®]»öìÙóàÁƒ_ݹ“3fƱ
+ZPr\È
Bnàâ
JÊq„ß÷äþ/˜¹ï܋ÿ÷ƒ7}ðøɗƒç€õ”ÊÍûÉw~›ˆ×ÞyË6B¿#؟–=ì8ïyÏ{jãã0ÀP:ìPߟ­+^ 
åÆçacÍdpeÙð´y:T‹¾Zí £k    [PN6oÙ²y˖sÎ9gÊZÍæÃ;w>þøã»wïö§§÷îÝûÆ 
wÝÿ´mŒñÞ={nÓOsçKß¼ù³Ï?ë]ü×{Ø½ÙËÇ{XOÜ´Ÿ~có7oÙú© GŒ¥øŸ՞wõÕW?ëYÏZBhé 
7­4,ƒV£é›h°°/
CL騧¹–jvË`
+Bý‘wD
º÷ú«V¥ûÕ¨R­žyæ™gžyæBÝgff ~øáÔëuø¯ 
øëÝÓï¶ýGpρ¿zíƒ÷|hìûǔò!ŸÖzËÁ¾3ùŠçœó+{ßó?.ÇF]«wR”Ê—\tÑyç7,VdÒ^‰"³šA 
aUy©Eê>zèˆÏ¹¤FÝæ:
u´†Ã4½¶õË´g÷æoŸI¬ÕjµZ­[<ãŒ3Þÿþ÷ÿÃXéÌvr­aþÚwn>ñU¯øóo>ñçϚ¶s{ÖÓY~î–iþbß'œwÙ=üÐÛ
 jýûÀ÷ŽUO:é¤×¾öµ‡ù­–sÏ?%Ê×ȗս¡Ë_U{ª…
ë,X‘ziˊj´¬¾¼Ž–¯!f¬~OŽ—Eš>êùÁ2³B'Ÿ|ò»ßýîÔ4ÏđT˜žýé7Ÿÿš=VR:õ9`­“D>´kë‰WÿÑÿá¯Ý7
 ’›Ç«µZío{7à{™Q1Ș²„ì ृguІFŒ·ê}¶®ûl•zO_аAØȘØçIôÏnì"¤‡>[Ãߐ 
“~rþùçŸ{î¹3c•ß‘ÉL®ùÉÃví~â˜WýÅCŽÌ1+¬µK&á/žÜðœwþùýßü֛ᄋ„ÐGDzÆIÇq~ó7³R­®unb§y
 
H¶2˜CóDnK:ä4èëÜ\ädVÖ·:‹4µ1¬!è¶*à[^£ï½r/©±gc|ÕUW=Tÿû,~¦§~çÇ+ì9é͟Ûeç<+¬5‰Òð¹½¥¯ú_ÿாøÕíÄø[™ýÓäuì·½ímq‰k'ý‡ÇÒÐÊQ˜Ëj-ú¨—5ô¢Ï=náoÀÅêSKHJ¯z՗衾¦·¡ñ#«¾ACß+÷2Ðîî8Îoÿöo‡ŽýW•Â»Fôå¯VjSl½üë{òœ59`­V4À7÷›Ÿw­d♟þ§Ö'yrÝx™Æ\ð¼ç>·¿_
     3øËA±ZCæ|ýs?;/û„=0·”"v‘
ˆ°´jÅ;”{ÎáÑ`ÃZŠÚC+ûŒ­[wìؑšÆŸ¨¥ÕµõÎcÿþùÒ3Oú7rÞOšùðÏkUhuÓ4¹cëkŽxæ1¿ú›W
+}ƒ`^-¾üñÇïرce³úJfûÕx©
ý4T-VgÆёº6Ù\ê~ý–×ÒûPË^øÂmÛ¶í«¼Ofc_»ûÀýß¾ñ„ç¾ðo 
ÙÈrÈk¥hµŸÞxä[N{áKûã?}ÏLsV«šØ,øG 
yä;ßùNÃ0ÖâÌBCŒë_®Z£F?¢.ùs‚w£<F—Š.K0{±fu/n€ÃtÁåºÒiÆ´¬ßýÝß­T«÷×Æ>ÅÒ0yõ}÷?xÿÅç½ú/address@hidden
zãW_¾ãMw|èsρLë?–ÙôxõÈ#|ï{ß[­TÖzƒ^B´ÄzrHY6J ï 
F¿ä¦ýYÀ‚Qi©Ž¶‹¿ïž¸œ¯sÙ*èi¾ƒìh#»ÖÖ+´rÌ-—Ëïz×»:–ù7•Â­‚]䬛ncq’ 
闞¤¹>¬‘äÀøæ3®~Í[Þùåëþîí>i"ôO"»arÜ4Ík®¹Æ²¬5vñÅG—Úk–Â^[ûºÐŸUÞ¥è°`t›‡¹XŒV`SIóèéëÎ"ây!¼cûöíW\qEb[6Ñ>%_—
  
¸þ«öÔ3o­¼èîÙܟÖr’Iø,Î˯ú{î¼óä/í(B‘â/}ÆÞð†-[¶Œ:Vž³xð?XóÉõó¿óQ1Ä^pï×æh°©~œÐèD¸·>_|ñÅGqÄîñ±?R
ÞÕ
+wßð­Í'=ÿSá³w‡9ä€5Ôtõ·—N~Õ»›ÆÃþÈ+€dZÿ1])Ÿzê©çŸ>2—ö°T3ZPÍúž2|B~j”šeNY[AG[ŸŠ
Zu¸¤õÈa+›*–]“¸ôñæCÛºÒ
è+–Ë÷Unl&oyø±Goº¹vÆŹgcœo«”Ö ¹qÚЗ¼÷ØcýêÇþúÚF|A°ÛÇ+årùꫯƏ%F 
Á‡^;Ê,Ò,address@hidden<Ô²³>Ð95†?áS‹´õ!)X—‹×ššzë5× øcŽ1«ÔYˆ¼ížÏü×Oà´W}òɲÈ
ð9`-•fߨ^ö¢‹_òƒ;î8ãß Gx§â[–eíر£\.¯³‘¨™Bë6ˆPŸœ6‡àþñ3?
[Ø|ÈÐ>ÜÑÙsÍ¥-Ó«‘¡ÁJÓH„eĐúÿ6¥xä;.ð¾N<ñœsÎy¤èXe
ôiˆ÷–ýÀæK¿¹ßÊíï9`-î]ß5~ٛ~½Õj=þ'v9µ­I]­œrÊ)Ï]ˆV½¢Q1<ÉÁºääAÿ4xVvëeY'BzéJ£
 address@hidden
}´Ú_åù
+„Wýê¯K¥ïŒ•¿Å¸2³·~wۉ§~Å:ïÞFžÌ!¬ ùîl]ø®ñññ/}⺷·#øˆH šœ 
„¼ùMoêŸD|i}*2¢¬Úð´rÒ1ÌÁ7äôeÀÏ£ÕbžÕ»ÒhHþÕµ¡¶žO¦¼RÅüK]k`ÀZ¤¹webrò¥/}ibš×Y¸£Õ$Æç=ôèîÇ
 ;æì?Ó8ªÍrXÈfSø¢wы^rù]×_Î
7nÂä?xúoã…
ÑÕW_=6>>ÄJԟ¬Z¹[;¥ê56÷5$Í#Ú2:×(*í(ƒy’p]´ãáLvpâ®oçaíٗºöói\pÁG 
yäc•òç$€—h·|èI—|mÚÉð€+øÄ̑W¼õw¦§§÷~â“/z·’æšÔuÏ>ûìç?ÿùË°ªî„¼’q´*3v_µe 
i8òCÏàQ:0„jxάe     address@hidden<«£H}{Q
+ÓÞ·0Ùûa¢ëº;vì}Ê·’¢€Ð•{î¼ó›Ÿqä­ô”½QŽ¿ô€õ¯»ÝWüžçûßüƒþF”qАig¢666vÕUW
ÙQj¡S¢¾0±Àq–5©¬"âq-$hÙ!4‡ðªÃA‡äŸìd\qÕÊë;ÒrŸe™×ª–:»}ûÙgŸÿI¦õ˜ǝ÷MOž|Þç÷—óœY¿Ô€õƒ´ëÔ·~æYßúÄuoûéÎ"BÿÊÒÛ§&B¿uíµ®ë.ßŗ;2€—õ/®(3̐Œ(£œ§HW]EžõÑôµQUÑõRÃ%tîg{t¢
 ÑÌw¸PøüòË]×½}¼òEÉ0ÀëRÞ¼ñÆb¹²sâ¶óð÷_VÀšIáKö…¿òuwÿûϼþ?ŽÁtŸ’êY
+ào|ã3žñŒåÇâ ÄE¼iÙ}Ö¢’,%J«ÈÖð3JF<ÒéCZi”©×©ºg‡Z=`u¬hÂè–-[.ºè"mYs͇¥¨ 
|åc»¾ëîgœü¼O՟ò~ùKiøĞɋ®ùI’<öᏼ\ý^•©±êi§vÞyçõ·¤Œ˜t¨pX8ûRwÏ÷¥Ê 
®H®/Y/CRßo–M 1$Žá©©êq\ Á«V¼[ÏÈï!tÑEmݺµ3Vý¿ZDZ?Ó£¿wgèċ¿°Ï×¹bøËX·  
•K~³61ùû‰w6Ðu<ýÁԄmÛo{ë[çLW£Xe…¬(¤h€n2,&`¥X6Ø6µÔ¤Õ;ºø¬¾®€¡™Âôêžsí
q¸¡j)Ãê     
’XýÎÞ#X-=×}ík_K(ýQ­úÉÀk¢lß-ßÝ´õˆÛüç?+†¿T€ÕÌàëö¹gŸÿ¢û~øÓn¸qá;ûx¹ ´~ík_[îÍ 
³œCŒîZÍÌ«ZýT¯:^š¾}„5
+‘éGІš¬¸m‡/Q\òƒ!­0d×Å!g{챗\|qÓ4þŸMw)¹       “òà¾GÛvÆyŸÝåk
IKiøÌôøùo¸6Š¢‡þè×IاäR åÒ        'œð‚¼`5êCßî>@s]%¦7âpCWí­6™2Z8[S
+ªžÅÃì\xœ^6AÕ³¥1zøØ*6v›>4”ß^ré¥'œp®JùŠK€KÈoÒZGÇ]òíýV¿€õÅ=¶uñïLmØøÕ?þðÛfš‚?icÃTµZ}÷»ßMY¥e¤oˆVßøƒÑ÷œgz)ÑXÈÀ7ädìe[vÏ
…•¬JU!]]ÄÖèõì߃–
‘”uot=}D'à¢í‡êƒ‹¦Çq®¸â
+Ó²n(û÷Hî"ôÆý³ÜqÇÏ<æ+âÙÓq¿è€u×
~ðYW~Îßøëï¸ó‡þgwNMDZ]{íµÅbqejÎr‘h=ì/}u¢åþ®hg„%ÑK÷F]
¥s‡ôª8tûQ䩜ˮŽZõ.Ük1”Áàõ¡K÷Á>¼ÑŽ>úèóÏ??²¬ë°´>‘ÐÓpÏ̾}›Î¸ð3{«yXÖ/2`= 
ÀWJ/yñ«Þô½ï}ïô¯|ý$DZ}Ô¦ÀŽ;¶nÝ:address@hidden
+áÁºµÒý´Î¼ïð³F#´ŽÖW¢ó®ýՌŽht…
½§vzž^vÙe߯ü£Ì4À¡›_¿¡X,=8yþ=õ|Qô/(`e>Ý9öÅo~Bèà'?}®Bà/D:address@hidden
ß:ÀÇ"sۊPcè°Ó‚KõT&‘Z‘—p¸Þ7ˆöt¤R©tùå—#J?Sp(ð[ö|ø{ß?îÔ3?Y?*Èò~!ëkûÌ®üí±ññoýûç_ñä^à‡‚}¥ZJ²ìíïx‡mÛKÕHv5†V¯vÇc4(²±÷R£[–Õמµyæ¸œF©ŸºpüQÈڐ«—¾»ÖW÷
 8묳Ž;\ú Õ
­NÁôÄïßÕn4Š§½äßöòí*~Ñk?ÚzŶO;pà€ñ¥/Ÿ€H¦õŸŠÅO<ñ”SNDȗU
+ô‚i|­G©atf‘ªµ0€—êSK9ßûõàŒ%«V8ם£¨C8U
JŠð3‘µ,EìחÇyýë_ï‹ûjcŸà©ØÁÔþ›n™Ú¸é»þ9yXÖ/`}±±á엽Þ4Íï|ê~u¶E>&³ŸÖÆÓ,{Ýë^G)]:ZÐ:
r„± ‘aõp:=Âèy¨öؽ˜8p˜õµLõÈÊÆç*°cEۚ­â.ËBÛpä²Êe oÙ²åÊ+¯L(ýjÑÛ­ä8Æ; 
~쁻î:þ9/¸îà‘I 
–õX·ìƒô¬7oÞ²õÞ»ï~Ö·oފ𽂦èjŒ.½ä’EkѪ³}N݋VîDkö¾Î¥!òÃSD­(g^¯Ùhåh8×X֗·Äx·€š«ßW¢MVlÑýý
+cÜWŸðð£guÖI'Ô*®Ó‚ƒ>ÓgßzG»Ý6OyÉçwçi”!+äp³Þ¹—\‘eÙöÑK™Œ´~Õhl¬T*]ñŠW,address@hidden/F}µR¸G
+ð® ¿ó7oý9u:ϖõXߘ¶¶½øõŽãÜòùÏ¿|ïþBŸà铓µ$I®¹æ×ušB†g¹[ªS
¿ÎZXÌè{!¡àèükEzÖ"Ÿé(crHº«µXyFi¢!)ÉF„ì5Fê„–Úã‡5ŽÖ°}ûö³Ï>yÞ_ 
k=èù?º¿~ðàQg_ô¡'¶äŠáÓ°fSøÑą
'žrÚ®]»è¿|þL¤ÄgʞÆøÂ/|ö³Ÿ½Ô¨‡kLC²²-¹ÎÂßúŒ–•0¬¹Ù0wèK3ou9¢÷p)>®-nve¨1Ü 
address@hidden/address@hidden;” ?ªU×u_ùÊWÎ)ƒ}7ÚZvò_ãæ«È¼òìýQi(è¾`7Ô?œ 
+ˆï‹›ÝK-±|¤svº¿ú½V}mÄùc“í»Œqsþ–-[Î8ãaddress@hidden >ãG 
õÌïûÛç~ÿîI„?ÃÒ'ÆÒ4}ë[ßZê®Âé7b‡uèux‡ÍöÃ-?Eù™ÀV‘G¥7þ¶_ö.=Êꢕ,Üéph8Y 
p÷ÃBü×þ–‡äκñҐlY/ùËà‘ñê×€×*¼ûƛ¤”αç|address@hidden 
Ôê/¶6ŒóÎ;ïä“OÖKªïøTãÂ[:ɏâÁ\£5¼YVZÁA{L¬º}êEB룁2ÏÁ2)ÀNK˾­§¦¦.¹ä0Í1q
 
µ‡Ðe<¾ç‰'Ž=î¸o=ƒç;address@hidden,Ä[FŸ‚>Î5=\ËXo¸™aV½šr¸Kqˆ÷Õ°æíGzÄ¥H«N³ˆ.61\%_èƒÿ’‹/.•JW?-R
ð2lDß¹YJi{î-ÓyéÏ°ny„üùô#?ÄßÜ
£¯™:˜À}.>ù´3¾ÿ¥ëß²ó‰B_âéjcq_y啕Þü|«›çW:address@hidden:ô\i¶†A‰%ì½¼lþu½¬Ãwu¯~ž8â
 
bý®àùþ«_ýjBé§={¯’B/ß?ó؃n;þĪoÍIÖÏ°ÎMýßØ?õŽ'68ß«}ìߋ¸Áúؽø§ÍeNþÙÊ/}}§ÓI¾~јì”âCžEþQGuÎ9çŒ:„FÜó)Rûîí¾*¥×Ãòµ(\Sî]4(°³?.M‡¿w†>9ʘúïüÜÀV£»6[ÞÊTûzÈsžóœ7fÕÊ_ÊL¼QyãMBç¤߸/'Y?ÀBÀEèÔú=«ø¾¨ö†G§¾ó­âu÷#6`¹gö=û
ێÙ~×õ_~徃±Ö¿‹$LMrÎßøÆ7.,r i¶¼¾^kMú2—áQZ}³nõnA¼jånÝQxuÆ 
¾qáC6²†e<¶¨_lÚa¨úTWvĄ+‚B„!BÈ+^ñ
+¥ÔW+şHÞÜ ¼ïGÛ·oÿ·ð˜<UÖÏކ…
Š¿“O~`üŸìÓb_eÇ]øò»žxÂý●!ôODòÈÆIJéùçŸÌ1ÇÀÎr=Ä©>V¬-.]€2DsÁÁ¨”p-»Ï¯»Ê¹R-ixÛÁñá1¨«2áûÍ(ÊïÐ+\Z´¢‡ÔN;í´-[¶Xåò‚È´>“š¥ïޞe™±ýœ›ö¡G~ƀµ[§«ý·gÉZ„/NûG½òw“$¹ëøêVpÏn¯ÚŽC)}ÙË^¶ü6ÎÃà(а6›Å°ø¦
 Í«Ï÷íQ‹<kw„­„-b—}ÛvÄ 
Û¡øˆ­åʋÌö‡Ôõê<¡«n´%÷ºêª«”RÿU«~M0xgüçí·{ì±ÿ\ߜ§ù¹, ¯…ÏÝwX–…
Ý!ì:æU§ž~úMÿÉ« 
zÌGøsÉbAqÕUWU«ÕLjc]bFߟnhxçºk1‡™Ÿ¥Ä¾ÄdOëer<Œ¦Ó-“õxˆÛ´wá˪1¥g9ºî65bòøµ¾©¥p9ÿá裏޾}»ãû¶I]«£}Á÷îj6Þé/»~™CÉÏ`À&•Yg_ÉúQà
 uæ¯<öØc›n¹}3&wvw¹$ÉË.»ìä“O^ìÞZ¹N´¼k|E™${gþõ
Ry—ňÑÝg‹p+}þ^sþh‰uÆ2= âÅgxìÛ`ÍQ¯ã‹ðû+®¸‚1–LNü=OÀ€Þ{ÛíÿŸ½7³eV2æ 
IDATë¨îEתÚәºOênÍóìI–-c#›`Œ§`c›Á\àq    $—address@hidden `À&¶Á’,K 
$K²ÔR«Õêy8óÞ»ªÖû£ÎÙ½ÏéӓÔ2-÷þý!³»Î jWýjMµÖš5k¾VØ1\šóÉ<9Ng`܅¬‡‡àéspdÆ\(
+(IˆD¶D¨ÙÑ\2Ç2¬+¡ 
ëÃÁæ›ïÞ¼ù{öçωñEÉdƒmßôö·OäGSՊ¹¤î­4§!8C`ÑÂbæóÏiIDacÿTœûó^ºç›ûÍÌ00‚=Ìó4Ð<ÝtþÐéV‹JûM›6íÞ½ûСC_oHܝ÷·sãþƒ/»þºkn»ÿo?ñmËÎpM_A_
 
âkCÈÆ,3c¶H#CÊ\Ïx„#†x²àÈ<S²Õ½eº¢lV䇜/a5å·øã¡Äêûî?×ÛÛñì/address@hidden|ßðÁ›››qæ1‡HuÝÛ3ÉW€Õ'
Û2°Þ¶ÕY_°ÿq^¢Y˜j/À
š9X7ßÖ+_M½ÕK)2÷Jb3n-À™ROU¢ëq"Í«ˆäœ9îþûïñōö¶¿;qê/Yâ¦óџ?û¶îߗ¼:ç?“4ëúãðƒ—¬Ö‘Ø6ißÎ
Œ)“OØ ¡ØOÿ~Öýšãõ¥JïÜ*vwP,Ú4G•,’Œºp°ñÆ«®¹öÀ7¿ug¾¨þ46´¶¶ÞpÃ
sµ8÷ª™7ý¨nšù7žUH©Ò¡¦ÙÏ%ξn憟f]13 
¹çÛº˜MÎNs3$ÃY5|.kbu°M—°;¼6uttÜvÛmJ©'»–}_¸1Äkß°ë¦|£~n¿“ãøo?I|b¤õؼÆ0í9Üa

ñNËùuÕðßÆÛJ?oþ³çù™\DVs&,address@hidden<ݘô}ÿŽ;îH¥Ró[óZåæeºèÑ\gpÏ!/͙5¦žª6F´nì(QÝxѹøìgƒšk¶†
…R™k˜bŽçÊ;몸ƒêY9qÆôú¿»îº«¥¥%‘Jý³‰ Я?òåmhh|µñú㵿 ÈãOÅ’ԇ1ÄÛ
çwÆZ~:öÒ0D¦­9VrWÂ`^i½eÓ¶¾ñÍ;rEð
ÐÐÐÞÞþ¶·½­ÎˆœW|ÐÅL€9
+e³n«'°`ÝÎ+V\°¤3kœ™Éh.™Bg½ùH²3,Í+"t†¸°¹ùð`*•zðÁs¹Üétúid¿3–=vìØú=·ýõéæðí(‚;Â?ì74âE¢š=ãwŠMßÿYüÄøRç¬9õã(IƒÁcCWßý‘3'Ovüø§+™äBˆÛn»mR¼šÙj3ëîùùFŠ^pA„Ë׬ß̱yÝðÅïvžù®Â5H2š!§;ÍLó¼Ê¬îKª«5ÃBðBfš—*ZïOW]uÕÖ­[Y2ñ%òÀÛ
+ûâK¶ãL¬{çѐ5áwÎic`6wO¦¿ÿóø¹|DX³á,ŠC#ø”yíæ-[=öø»K¾Gô7$(nmm½ñÆ/\†ª6À¬â̅
NΪu(
+EEםEÀ˜%]ÎÝÊôä
L=·SáôšZ­zä#žB—t)ìýӇM-Œ¼6½‹æ½ï}o±XüiCbH)xGwÏØØØÆm;žè›´¥ÅmEg¡žÕA¼ÝOü´)"¬éàõHñLÑû›îôÆëné=uªñ±­aü9éH7À;ßùÎ:Ö«¹O¹–Ê™Çe)„DߋI¼4Qk¢š.Òz1`Zºœj‰š¯.6Ÿ
        Iiš¡”ô¢v_ê 
Ï9rnÝǚz’Yeÿ)ëè¶mÛÚÚÚb--_ð‹p/38`ÙÎËÎvQÙ~{twæN×mÊúÎËFa     × 6f _sÏ      
±ýš›Þõ®wýðÿýÿþc¾”Aü+ ±!¿-p.ˆ 7O-«E 
"ò<¯Ô¼]ärRJð<¤Ràû¾’2˜f£ccž7q®œTÒàFïk¯I¥Ý¥ÖMå2ÍTkk!6¥­XŒ#ê]¯Ü4R--û9獣¯—Z7ƒé
+‰B„'Šâ¼$¯ `ƘeYåÙ®q;6Y̑mÛä¥T>ŸWRZ¶
œ1Ó²æ§Ü]|Ë°S§ë        
‡bL÷N§‚ûeÄÄá£ä¦pÖ­·ÞúÈ#|#é|ÊSË[ýÒËôŽw4l»éG^yp½€³\Á8 
áN™811~UkDXõ`#~ÄI<Jüž{î8ս­`ü_…
{¢£|ÿÝï~wsKËBYI\×%"ß÷¥”ú+y¾¯”%7?6¦e”üȨ>ø®›C½B–JcãˆSÊÈdì’k•\ˆgs1Æ<á@<WàBc´£©
 address@hidden… 
ˆŽê–`”ªVd”*™€>‚ñêdéEËê‰;`†/+¹¬X¬zؘ/y¶m\˜“¯€˧’È’_’¥T“ëÄô‹p‰±J:œ
 €¤h’ë֖HJåû 
ØÉd,•€&Ë¥ÖµˆÐÐÞn†$""+™Œk¡¸B1šµóÌ´,ÆcÌ4MƘƒS†3;—M—Æo.ÆÁù†•ÁŒ›¦ÏqŠ!—M½â-·ÜòðÛmm_<Ýû_¬ø}®ø§#G6oÝú?Ÿ\~ÿš³Ö¥‰œºž[oLàU­V}U¢}ïMË;;Oÿ?ú5Wô‘ú‚c؉D:~ûÛß.„B(¥<Ïó<O)¥”*ŒOäÇÇ
       ¨8>áWÏU¿T*ŽW×b13>DÉ\ IÅ
+%Ë÷P©T6ñBÑÂFlC¦5Ø42,ÀÆÊÐlb|ö'áð’/•¥4nά3tAõЛË@,ׁå8ÉZ%Ä6ÊÕ£ò£U_‡‹³_ëÌùš¢<)'ò`T)address@hidden&g
2–qlipÏ4Kñ˜bÌŒ2L»sé8ŽmóDÂpìÀËÏM3ÙÒȂZ3±Æ+ 
sGÌdÉѹö:õ˜a¦e9Ž/\]&jt^ù.ظ–L$®¿þúÇ%n}ʧ¸ùOÏÿ‚oßÞ¾e×÷{ÎÞ·ö’ÌØvÆ^(’Å,ÓÜ%zÈ6n~Ç;þý3ÿ÷<Û×ø7n>Of¢§·©Pzô³ãz\ÊD¡+–JùÂo)”V(R
ˆ5ar6`Cõ‘²Ä·†e"ÌqÄ8rh›#Éz
+ "#æêlŠË îv‰`‚È      (ZºO÷Q        
ªÒ¥$æéK€œ3ײ†Ö¬ÊÅãžïśšm­‰––Ô²öxS“SçÜqœÙs~Ôsž`]õ­ZiŲê¥'¼ÿþûŸþy³µõKgÏÿ¦»opäñS§v\yõ¾üÄÝ«ÉK
 
Þ.c<7bHò9F„5¤jÃÿ¯ÿöÊþÁÈ<¢Ñ<ÑhŽä`äÈô,ñÆ[)d)¸ˉ§ÀsC"¤cG4¹LSj‚Ô(©qÄÑD<›ˆ'âÊ2sñ¸0x

0æ8²¥%ÞҌŒÅ››-Çvš›íXÌ®°›eYVÅr‡ÓÅsÔ­üzqöSÎŽŽ«¯¾úرcÿl’êÝÜ|øgÏ®ýØGím·üàÌcÀ2a!©E¼žEV-JDŸG¹apä/&
+)'address@hidden)€1¥r¦1sò‰x6ÏÇ׶ãËÚÓ]]’(ÕىO´µ!b,³,Ë0
ÇqLÃpb±™<ÑæÖD|address@hidden,ûBwï±ã7góGϟßqå5ò…ŸÞ˜ô^b‹a, g
(i§$_ªIg"¬÷Ýs(ΕRˆð#Ï]Éͅ
uÓFˆ0DÚë,§Jɀ§£¥|€QR’hœH1Ì$âYÇÎF6™Èµµ”Š¥T[«‘J9-͉eË[Z|ƀ!Ɖx,‹Çãñ8c¬Žïr¹ŒˆÖ¬^½{÷î×_ýËIç×<u®ôk¯¼ºçÖw:«¯üّýÃnöwœä
悙5ú”|[±ˆ°jP$zA¸k9Šà¸'Iþ–fQ„ÅЌ¬™Oü] 
n`$£]y:‘%•!#åiçƒàl<ˆÇ;–eI9Í͉ŽeñööX[[<ݘˆÇ㉄f³zÀí·ß¾oß¾x[ë?œîý¯V|ç+Gä;n¹z×®½ôÒ{,gÙ
+žôݏ,_º¡£eÂzܒ(u¢ÑÉX#2       address@hidden  Eã¤&
>–ˆŸÇ†“‰¬m9­­±ö6§¹Ùikµãñ¸Ö:W¬Xá8Žaš¥â¿Zð7ûò[OüxÛM7:˗¯É.ì#æîoÛK÷
–       kÙúRßÞácìûçŒ#)Ca‘Ô-V< ¯ºÅ»¬XdºŠð–‡.¿Ò€lrHÁƒ‚ÐyýÔQŽÔQ 
`<f;vÆ4eÌyûÐèIR=¤¾âo7íß?ôÚߎ­Ú¼ù«Oýü&sÁæôÞ±Íw–°G«LXí1X×    Щ܍ÞwNžÞŸü]+‰
+àqÏ]ÍÍ+(¶ ÂRG²„É ŸÀ/”²FŽèç¾;̍½¦
ËÏüýÐÈ¿rPrÙBÄ»gH=Þ4ñ[Û[ÂzN­ÐÄFÙû¸ŽŸzIøýDwÚ±h°Fˆ03’ˆ·YÎ9¢óJÀrd¿S]À¾ê^T 
§tBŠŸÊÒ?4Œ~à:/µ´^UFwEððë¸ýtz
çpRŠŸ
+ïS±”
Ææ¶þÄIüK1÷ßbIhCöif~¶”{¿›×¦B8¯d’¯™¥¤»²C^Ñ©>ÙH
K^Ï1Â}ô£3h¾Òø+Ü€óJþ›_úO±T#C{„sE'ãóßՊá݆ýM,îÞ
++6+I
)yRÊnÛíM¸Ír{‡|G­H€…aO%¬ƒpbâ7yÆH}Û+}ÈN¤12´Gˆ0 ÀÝVì/
+™k+‰è þïNòÿYݕ¹õådڕ
D¾/r¹\±Xt††Ú^Ù?ØXjmR+šåžfêJ€‘Ô„u.ß}Öùï2À7¼â»íø 
é‚"Ì1ÄûøÝüï:IØaë{zŸݼy³”ò\Ïé³Ç^n¥‰N[í¸Ë˜·*-V¼Ë_ƒX4áæHX'NZÿÙO; 
_É,Á†ˆ­"D¸PláæanþÄwo5mðÿ`æŸ>ú˜xá©RºtkÓèÕ]^«I3
+kœ7Êß-èè0+ðˆWzŸE´GˆpQŠá½VlŸôû”€&d—äóžÿs{ÿ}+½µ)HElu1„଒
+qu$^Eˆpqp?î$ÿÅ-
+ ØÌÌMçS/
G³p„%¾ê>‰W",:¿Î´¿ã•ôL»‹bO¶³~Ô1DXÏøîvÃjc‘"B„…Qo¶ì!¢ ) 
Ù»ÆSß8yÞ‚°ÆHýLø¿‰W",LÀډó‹y"¸ŠYþñÄË#QÇ\aÀWÝâpâ‘p!¢™±Lç 
¿à}2ñè~{̍:æ"뤀<JÎ!ÂÂc—aURçÅoBöL㿼Ä}u̅–ð©X*êŽ.bˆ{
ûi¡ëÁ:flïiüÁÉ(°áB k›a&£=ƒ"\2ì6­£R踅
9ݯƻ³QÇ\aEˆᒢÙfÃ|Ö/YÀ~ò«¼ˆú&"¬®7íçä¤åjã·6þ¸;šƒaEˆ°øЌl'·^“‘£× 
õúqk<òF„!Â"Äu¦õc1ÉO&àMÙÄÓ½‘ù8"¬–1¾œ¯ÉI!ëZn=aE–¬ˆ°"DXŒ¸ÓŽ=æO
+Y6âî‰Äsç"!+"¬šÅU28ò6f¿pĊ6EG„!ÂbÄu¦u0dzwo™H>y&²"Šaña#3©*«Õ 
Ãê=m0Œ+B„Ňfƚ‡µBðŠ‘Ä琢މ+B„ņ]¦µ¯²µPãzÃê>˜|q0ꛈ°"DXdØÊ͓J†ÕBñ?Pâéc†ˆ²8D„!¢Bq
3ŽUQ4 k鏟ÊDÝV„‹Û
ëYËp3Å^8Ã#KVDX",.läF‘ CUàƇO9çòQ÷D„!Âb‚ØÂØ鐯Pã6/ñäI    
YaEˆ°¸°‚½Sk;72§bçrQ÷D„!ÂbB;ãçT§àmnâ‰ã\FRVDX", t0æùPËL›¸‘<•<ÅdE„!Â⁠   
ØŒã²Nr™;)þÔQ3J;V„‹WæËõ+xUꩳю舰"DX4ØÀóJ•¨Ž½êWçµ£öh´#:"¬ 
,À•Üèžâ+àÖ\òÑ7PEÖ÷ˆ°"DX<Zák²~ú¾«™5þzât´Y'"¬       
–!PÓîx~P&9lú2꧈°"DXhb¬P úŠ_c«z“OžÈ°"DX°]˜–îµœ£û¯EýV„‹ 
Ä<MKX&àÇ ùÝ,J•U&¬Q”5,B„_eh&•/¬ù\ü̒ß`X&¬¯0õ 
*ý‰,}Ç/Þ°Šè+B„7-Œ•hÕ½"ñí#K}ƒ¡Q–H×®õw]ý•înÏu5Kµ¢T¼AÁÕÀ6r£ñhHEˆp退4‹#°ñ–¾xo.»:µä
     ëCúÐ>ðžžž“'Oþä'?ééé9øÆ?Ëç㈭ž¿Ö-햰
address@hidden B„…Dcûåì•Tï‰~µð_÷H¶T§ 
|jllܹsçΝ;ï½÷Þb±xæ̙ÞÞÞÇüôéÓÇz{Ÿ:ÞAl’*åûW
+u uŒ­bFã‘ô!ÂEÏÃ:¾”êV"address@hidden<a…
‹Å¶lÙ²e˖[o½Õ󼁁îîîC‡íß¿ÿìÙ³öõ}Gˆ$bÜõ:</-äjÀm’¶1c›aF~Çæ¯#5ªT·’¯‘üÃÓ3˜‹lw.ÿy;±‚qøÿý+
…ß»Q,M!˘µ…eY+W®\¹råÞ½{…
£££}}}ûöí;xðà‰'Žž;GD,ë[R6Š³ù’¶näÆÆ-Œ”ÇêÀ%:§dŸ’çHzÕŒþ
+ý‡’cV¼}õê;n¾9‹mܸ±·çì?=üo¿u²§Y²ø¹Ø©LvÒ²Œùµ6Œöööööö«®ºJ)566Ö××÷ÒK/:tèèÑ£§OŸ
 0_˜&“Ò.–b%w³WKڎl#7–3#b¯K0ªÔ   
%N+qá8ÒbÎ4F¹QR67·uuuµ´´\qÅ»víZ¹rå²eËÒé4V–üÃ7ï}âî÷~P|Œ%ÿüïïr¥§ÎüKÆXKKKKKËΝ;?ò‘LLLô÷÷<xðàÁƒG
 
íîîÎ:ö¸eýˆ¹^"_hõJw»¢“ñÜ\ǍhGxk3Ô°’g•<ªäQT‡Î¼³|3æ+%¥lhhX·nݞõ믾úê+®¸¢©©©¡¡!™LòilÂ;¯¼òÇïú•üc?I
 &Wæœþ¢»"օiàˆét:NoÙ²åÁÌf³ÃÃï¼òÊ/¼ðÊ+¯œ={vˆ(ӔþAÞ÷ZòÇ+íêm„»
ky3á2Ç©SRô*yŽÔi„ÓÎ1,Ü3­,³”RÐÕÕµaÙ²µk×nß¾}çΝ]]]ÍÍͱX
çf6aŒµï½éÜcOlÛÐ<6a-y544èäž{îÉçóãããG 
Ý¿ÿáÇO:Õ+„ݐ:oß÷<3—_[*ìt7wrӎl^7\¢>%Ï)yNÉ  ã
Þ`Pà<›°¥w•’R*¥š››»ººººº6oÞ¼}ûöõë×755%“ÉX,vÁ—ÞyõÕG
c“$ØÀøs°ä¢H/¹j–H$‰ÄòåËo½õV×u3™ÌéÓ§÷ïß¿oß¾“'OöɾÃ1çˆi~¡Xl+”¶¹SÒfláF{$yEXèWògÂû9¨nÈEÎ|‹Ӓ¦)ˆ”’BÈööö՝Û¶mÛ´iÓÚµk›››‰D<
 glÁìL›6mz®9­†Æ@;ãÝç9mKm…SmI¶m·µµµµµíÞ½û“Ÿüd.—  
>tèо}ûŽ9rìر“®ûcÓ´¤ä%wµï])ÔuÀv֊ˆ¼"\zH€~%OKÑ­Ä      ãÇ8º¦!R       
²,B!,ËZ±bŊ+V­ZµgϞM›6¥ÓéX,‹Åžê®ýüŽwçÿå¡"¤‡¢ÜRÓI~iÆoÃ0´ÙkÆ
<address@hidden<qìرƒ ÊfXÖ7‰x±´Þs¯ê&address@hidden&ü³J åì ‡œaˆ˜IV8WJ      
á{žßÞظjÕª+VìرC»ðâñx,3Œ7{úì¸ûÎ}_y蝰RšGÇ`{sDX¿Äãñx<ÞÑѱgÏ 
ß÷³Ùlÿ£>zìØ뇿|xhèuÛúšP,®rý»Å h†–ÐΘÈÚ‹kŽØ-BµÕ-ÅkÂï&ù4ƒ 
ŽÍ†y27M“]ß÷}ß±¬U«V­ZµjëÖ­Û¶mÛ²eKKK‹ã8¶mã/[ž¹á¦›>¿móͯ7næö×O³íÍ*"¬_2LÓlnnnnnÞ¶m›”2›Í¾úê«?øÁž}öÙáá¡
 ‚?•RZ–…JQh;address@hidden"³›ÅSÈ
address@hidden,’1nš®Bˆ³¾¿¼¥eóæÍ+W®¼òÊ+·mÛ¶råJÛ¶mÛæ‹o×çܼîZÿÕcb+cãÖ"{Cétú¦›nºñÆGFF>ûÙÏ~ûÛßnjn
   address@hidden'I kª,Â&¢O´Œñð-ڀ­Õ$؄,ùF¯Iÿˆð)y’Á1¤ó‡˜EVJ*åºn{[ۆ
–/_ÞÖÖvÛm·­Y³& 
;Žóæëwձ̊•8€ˆk1[[[?ûÙÏ^sÍ5ôGdF&“™¯”Ϋi¬¢„ˆÌ0'·¡†InŒèçӑ]…
°€kR‰i *¨ê:sŠ0Ԁ,` ø@
á= 0üÚ€6dá«´2æ„2j˜ˆÕªq°FV¥±1ó²MÂ1Nê ðŽIñ¨—8fm14ß÷…
ÉdrÓ¦M[·nݽ{÷UW]ÕÙÙiY–axy®k7l8‹X 
Å%gñ¸Ì"ÎOž<™Ëåî»ï¾Ïþó±XlïÞ½>øàÜ]3ƒƒƒBL®H¾ïW
ýññb±p”r||\…8(ŸÏ
4aI9™ÉÈuÝl6kFp!Dæ"c5º"2Æ|ßß±cG©T:vì˜n¯O²aˆpgÖV¨r?n©DD–e±š\K$¨†X…
+Ós ¥úœ-á"address@hidden|¢ Š¶hZD€à2£…
P3HUS3l‡*jŽ#¶àä»îzd7b¿Á0ns3&”ò}ß4͍7êÝû7ß|óÚµkMÓ¼|ªëׯÿŸ&^eXôbÉ(F„µx±iÓ¦W^yeÕªU/¼ðÂÑ£G
 =ÚÔÔÔÒÒ2ǟ¯[·nÞxõÄ&¢írêך####žç…œ?> 2¥T.—+
+>úè]wÝ%„èîîÞ¹s'cL111Á9'¥tãb©”Ífñ'≄Öbôåôuóù|©Tҟ=Ïs]·±±ñ™gžq§–%«!zÎy0¥
…jZì›F´œÚcu[N'5ϱåd¥ôÿù|>™JY¶íy 
c¬³«ëꫯޱcÇ5×\³cǎËZ†š©TêÛ~œ°ˆhÂ5$Lj°±bxÏ=÷üå_þåý÷ßÿ¹Ï}nttôù矿ûî»/Ý/>²¦«««Vª_»¶æˆëºÏ=÷œ”òðáÃ+W®dh9Kÿ‡z’‡d®0Kª
+H)©Ô+/¿Ü?0ÐÚÒrüøñ¯|å+CCCaI°X,NLL„O266V*•&E.!FFFÂÊårZº
¤ZìííÍd2M•ÃlX£ŒOÇ_õ_?cúN’

–e¦R©?þã?¾ù曉ÄÔK¼%ÑÑÑaÛvyÁàfo–TÒËo²išýèGzè¡ë¯¿þÙgŸ}øá‡o¸á†¹Y‹:(±¥¥¥X,address@hidden(¥
+Ÿ!‚šZÉ IDAT̆Zðtm­—J¥L&#¥ÔçB¬]»ö‹_üâ†
––Nd×Ý/{®ð˜ï»a-ztvvvvvÞxãû÷ïùÁ~ð‘|ä²^]¥”ÅbQ±|ùò°éKÓVeZ‡•AUᡆ‡‡—wuêîîïï_@
   w.Ǘ-[6,y‘èïïÿô§?=22ÒÙÙù©O}êàÁƒëׯÇ%æfåŒqP ÙpiI=úe[—ðÎ;ïô<ïÞ{ïEÄG y¤§§ç²~
Ùl¶··—3–nlª%,Î9cŒóɯ0Æx¨IgΜY¿aƒRʲ¬·Æ`%¢ï~÷»ÃÃÃ+V¬øýßÿýS§N½÷½ïÅ¥"+vÕÆûa]hllܺuëöíÛ;::|ßøá‡ÃšËrÙä|tl̉Åt¬FÎ
+óT…
ªôç©låºnooïêÕ«‡††ÒéôÈÈÈ[`°>÷ÜsO<ñDGGÇwÜqäȑOúÓ¦iÂÒ¯„òµ"ˆërÁm·Ý688xûí·#âÓO?ý‹_üâò}–T*µbŊÌÄD2™´m[Û«´28ILµ¬Å¹aÔÈY
+yúôé­[·Ú¶],çåH]´|ôÑG‰hŊŽã|ò“Ÿ´m–$¨’@,É¥õì—qæO˲Þóž÷<üðÃ---ýýý_úҗ²Ùl*5idŒµ¶¶†Ý|‰D"™LB(Ôsj(i[°¦æ‘K!^uvv
+)ã±X:†À~ 2]æ¬Àî ˜ÛµÑŠ…
T§S§Nµ··3ÆÆÆÆn½õÖ·€2øõ¯ýøñãŽãÜsÏ=íí흝°T‘õ}‚ŠµÀdDX—vìØñÂ/|øÃþÜç>wüøñýû÷/_¾<<ʳÙlØ]*•´¯*‘HäóyDÔâI˜j¶h†QÃP5>ñx<̒ÐÖÖ¦¥!m·,«©©)ˆ%¢ÆÆFÇq¼É9/
+étZksýý+V®,óU…¨Âø0a)¥°zn3ÄL&£ÉºP(ìÝ»÷r¦GŽ9pà€eYŸøÄ'ÆÇÇ?þñãÞÏTò}`
t|®Ç"ºœpÍ5×>|x×®]/¾øâóÏ?¿wïހ_8çRJ¡£Äb1Îy< ×Ää8ŽfÝ *b`Δëºa‡=twwcL
+!òù|ø–
+…‚ïûaތÅbgϞ¸ï¾ûcÅR)¸Ÿ²z¶R¡ R!ñ*ˆlđ‘‘={öèh€3gÎLLL$“Éx< 
~ºt:¶ý0ƒt9µ»ôù0ˆè±Ç ›˜˜¸ãŽ;’Éä
7ܐH$–,[
Ž(©*½ŽbiíÎ)Ö÷¾÷½W_}U[:Ѷí+V¬[·®³³S)¥¥ŒX,address@hidden
+LP*•8çù|>¼q‡1æyžïû


RÊx<®ÉŽs^Ž*òKN*m†>³\§I*•JúOˆ¸ê4QÚ¶]C™LæðáÃ:address@hidden
ÚaŽÂBdˆ===÷Þ{ï™Ó§-Ë*
+…B¡T*¹®f\.Žã×ï]3i]Â"¢šàÌ©
+u[[[ð˜BˆX,V#~jé2¸®aÍÍÍúTú`ð€Zö4ãøñã/¼ðBGGÇûÞ÷¾îîî«®º
+–0~ò“Ÿ4Ò¤úo”–$a% 2þñ‹g€FÞ0x†HÅR
9·Tôýæövö׭[×Þޮ礶tttX–¥¿"b[[["‘ "=MÓÔs,üuáÀ0¶nݚN§;;;ÇI$

áD2ÐÞÞ^ïwï¸znçWJéxîññqMvzvss³5Ú}ž ²}‡1V,uÀ·FSS“&¯t:=>>^#—…[*¥Þxã
Û¶s¹¸ž[AEh
+È(²”Ršª« •:}útGGÇ#<ÒÐÐ000ô•®z 
#3uš'­árÎõö­Ì†¥KÍs¦2™LX÷</¦kJ©À¥«w&iá7ؤ‰ˆ¦ijêB¼þúë…
Báºë®ëîîþà?ȖvŽ³þþþs“:ˆ¿Ä’$— ëW˜ù«†SV9¢‘‰âR#cgûóp²ÇWj˜3ET 
€DY€P}Rfˆú…
ï¤RR)]O­¡­Õ²,˲mÛ¶’‰D"‰¶•njJ&“­­­:üš1ÖÕÕeš¦6÷Ԙ¢MÓdŒ†¡?Ô}†Ûo¿ý™gžB„µ¿…
cL‹uˆ¯­mîµ,g
4ïíí=zôh¡PH$Åb¦è§å¯c<address@hidden
1Ó7n4ãôéÓ˗/ÿЇ>ÐG&“        Kó‹ïûúëèè¨Voµ 
V(4õX–åyžçyŽãär9˲±±±1•J!¢ïûaÁ-­€kîSJqÎc±Xx9  
HPsâT•¾õ­oõ÷÷ëdÄ«W¯njjZÊlEDǎÛé      ¥)aME1‰|õ<3Ø
+%A¦ƒãg&$        `H)0th‚`œ”K꜖mŸõÜt{»GD€¬aP2‘ll4m§£«m‹ÆòÎN‹s…
¸¬³Së§DÔÙÙù™Ï|address@hidden" address@hidden"ÑÚÚ:wޜ£ÔyâÄ  
}“ŽãhÇëÔ©¥Ù0Põ^îp­qJD®ëj7‚þÉØØXOOϲeËÞÿþ÷ŽŽ^ÒM£—[=ôÐC~ï{ßäv0o  
K§¢jùÁ} ‘sÑ*[kHꀲ›-ÆÏNAQ•ˆÆIÀ(¹b,—ëé/yðÒ‘ 
’R9ėò‚hHH™ŽÅ6Ü°çÙ¯=ôlåd–ã$šÒÊñ”ln6m8gR*DLwtTI©¤š{Œ1˲Â
+N ÞN>RµÜ¶UÍBˆL&Ã9/‹ííí¯¾ú*„Ù
+‘ª¡*IˆBÁ
ú¿ÁÆÆFD<þü‚0ÔT©sóæÍoÂè<xðàSO=å8Ξ={úûûßÑdÏó8ð'ø‡ï,address@hiddenÀä 
        À¬…¶K9ˆÈ`Þa6¿8Te$"š ¢P’§1"tZY¬N“#
ӓi”R^¨0ŒbªJšÉdјäeÅy!•Ô.<ít’I§buFÓ²bé4r0Æm+žN+EÚ¤¥Yrlll’‰”RˆHåô*JSX 
ì¨j.€b©ÔÞÖ¦•µÁÁÁËwtjƒissóÁƒï»ï¾¥Ê Uø\.÷óŸÿüñïÿЁ׏Müèù  
¹itéÖÛ¸õ;address@hidden)!Ž)"$€< ˆ”¿id)ÄädNtf#š6¢
ÈboúX³ÛkväNm4«¾›«ÙZêA¦f+Ä,tP ÊUe8 a"Y¡Q'ÊùSrE—¶a†áyží8,,SU
U4%«†µ&&&öìÙÓwîç<—;¶oŸÔ 
7dVcƒé8‰P)Uãù5M³Æ¤V5†Å7ç%®^½ºµµ5—Ë]{íµ«V­š›â¤ðÔs´þ¦Å£Ç…
³PÔìAÊ\ß÷g®Ö”÷ïßÿ£ýèì™3فAsdôVÆ?ŠüFÃi¥0ü–[¼…
/Œ-¡ŠªF°øëg¶ڑ°åÕÝ^6‘Ô,€(ƕʒ*Œ‘êWê8‰)Mg 0d4"ڀŒ5 :€ÍŒqÀ8¢ 
k>›Vu¢^ñ²VÏãˆñê~›n-|C”þÚ÷Ϟ=»k×®††!¥¥Ã¬”BDU‰` ÄÀÊ 
f³€¶”R===<ðÀ¾}ûc›JÞÆÿþ,Äa¥ÜÊàf–å    1^mrãŽoÙ2°‘!æqÉ'_‚ošÅxUùâDKQã<ÙÖ
+¡÷è¤Rv"ÆX²µCª´–+kXR7|âŸø»¿û»ï~÷»ÍÍ́ö],‡††(address@hidden&`@
ü•™Lfll,`–:«çAc)e___pªÀÅ©ÃhÂþ_-$B%ÝXÏ¡}Éd2•J1Æƽ¡áüàPvx(ž/´2¾Ò0nbÆrÀÆvØÉô”y0¬Ô
        éÿg;ö­>À_rFw
þ‚ÚôÞ85ßwpÈhe¬0ô«ò0t*`B©Pž(GT:*}È#PnŔæÄŠTþ¡b¥¬æÍ5 
Z•áŒ!2€¢hj_JX5iËã‹IǸ¿*¹ýýýœóT*588¸zõj­ª 
؊hjl©”ö´º®ÛÒ҂ˆgϞ•R~Ø´o2§7«JÕc½ädçuçã¤üЯ€FªÓfåIªSߌUkë¾aŒT“`.‘AïýÅBæ¿tà‹_N#+•
+½5<KR0-·æˆ2÷<ßJ&çŒóq„˜ë¯.ljR¡¾ˆIÛ\œËÅ 0Z-°xS{!F“æB 
°¡zúPh†M+­ǙeŒ¥yâ³öyèoJ¹Mo       9
+ji*UÍ$íV7žú¹ªY6É×^¢ NwäL”„—‘%
+D%¥Î“rI—
+•e5_=‘ŠUõ! address@hiddenaddress@hidden(ˆ±¢…
¡S+3‚:‚ºjÎ2d¾¯ã¼öîÝÛÛÛ»råÊI¶ 
DÎ.¥|íÕW‡GF¤”™‰‰‰LF‡¿íÚµ«¹¹ù¹çžÛ½{7c¬¯¯òù÷Æ/y@:4u§Õ¾gE©ºúK©ÊŸ±y&©³+Ô¨;-ˆOÃÚ±Ëlµ.Oýu·p37:€
Ò,ºí±%GX\¼ØASx‰&õÎÙOÓ#š­Xµ„µÎtœ²Ê՜ŸBÜ
+>@†æIi«C†”O zH *!À*f،)¢Ѐ"„€1Ä"QžX•UW¸Õ´è  Э\8O
+= address@hidden<‘БZyòÉ'ÇÙ¾}{6›=~üøjƋDÇ¥°­êç#ýÃâQ©±Å
+(address@hidden ïfÆ«£ð+˗"aÁ<…¬šö4IyÐD™kþ‚î/ôö¦•øªO«-hԂ[€…í#U0 
address@hidden"]èSÕѱïÞïe²|íkÐÑÑ¡c÷'ÙJ°qýúõ5Z!)•J¥î¼óNîôÕ¯~5Ó×÷Qf½(}p¼m€62–µ€
Q1†Øˆ¬Ь,. ¤,ÀfdSƒ`
+DªÕv«b£\´PE"µ`C…ŠŠZe
address@hidden(„IDÀà·ær´Â#.‰xÂ]Š*Ἁ?0{éý!ÓÓÁ…Ñ_]+^ôÙ¦ §©w;­u© م
æ-<N ÛcX(þúÀØÏþì/¾³ãk×(Æ
address@hidden,Æ8WJ%‰x<žÍfOì? ††‹gÎü+ö›v|:!³ê æHˆ2D.P9ȝÊ\æÆ‰Æ刲SjÇ
DÊV«Þ>‘xK ‰h2í
0ӌ!DŽ˜4*Ã8€7ýÇÊ×Ë4à)Qýè 9jÊNúÕƪ¯k¢;½)
+l€@qªÚ°*k\ÑÌ) address@hidden
+¹      ˜¨?'EpTIFK—°pžjéÝ"S&Ö#ˆÎ\-ˆMÑR/à` ƒ ¢Àœ†õ°.mÕAÙÀIÕêó\Ø
+먺.µ3ÞÎø^Ã.<ÙëV&¿¬x¤
address@hidden p?̌ÆÚSÍ|–g    u)"$‘%±Ö‰Y-–Í*êÒloŠòš+çT~Lя€y 
—€U¤<VvƒÕa&1¥ºÀ³        
冘äÕC$§ºžiöuŽê'˜ù{=-„§ôçÏSÇtó¤ïý^ÂúýÒR‰l(ÖCL=Ád+‘Ф(ÐÐ,TŠ¡v½%‘%ce'=Õ(SSHŒB†sœM暎)ð"-kTq'¹¨êÇ!¥z”´P”¢Î‡G´U¥±PµÖ8ÈìÉ®˜™â±
 OÍ¢íƑ­álÆY ¢t¡œ>wAuZñ9¤>address@hidden
[kgoiS=Û§¿I-åÕ,4Õ1#¥Ò4kí̦†i¨§,yc=Ë*VßcxpÎ΀åŸ|CCkÛ?w~{{a 
V¡­mh˦~)‰H§X!)-!²D†ï[RZ¾Hø~Ú% EmI‚UR&¨ì)‹!¦MÄ$bj]cs30M'address@hidden    
¨€8 ‚B)©¬
+1¥d6ÌÎ
‘ËA¨<*´z>M([Q‹T"t¤YS§9E¦H1‚6¿J‰#‹Ú
+Ë` 
&ªgcИdœÓò<×6ÓMª¹ÖòìBVÕj„5l;-_Ќ,SŸ1ô«¹kêÓ®©3/-T­L¢qn6Šiõi˜«|address@hidden)ÖØØXoo¯iš:ÐY'H1'¨·{¸.ÀçDtNJ"%¥²„
 ¥òDLISHK®Ôò’'•dˆMJ5´´t%Ú¦‹˜¬·oqfY
gÇfÐ=ëN€òÁç}ÏalÙÚµáT¥½q7ø*¤<'DøHçé±´¡¼&Ï–Jàº2ø)Êå¡â(dˆäû²’°Ü$—‡J¯2OÉ´'04¼R&dù
&¢PªÅŒ‡˜T©Pý^֘&µi˜
+gŽ ˆ#³ª'o#ÂäOfd«Š8FÓHÐ4‘|:ñ«…M„EaéŸn(N;&ç ,“v+ÿ      ÈÆÆÆ|>ßdãÒ",Äó<Œ«”
+ªUÉÜ¡AqB
ƒs>‡˜T¢µ•AʖʑÊ”ґªƒ H‡Á´Úå+DFÔ“9…ÀŒ¡¾cÔNú$2¡‘–×R
+ÇpÑ\ôÊ-Üeü™…èÊŐÝP)åUË}®…
+é—rÖóÂ4*¥'í㈔Ë1y„„¤|>¬©b‘\/40es᎒)2®JMd~SÐjnLªç!çÅ´SzNR 
Î8ùi!btæâ9™áBXMÓpq¾©²z®þ^‰}m-†Rãããmñ¥’Ù݆²®¿2žÊT€çy:P¨¦A S€a
+3
g¤°v̓ÁŒ
address@hidden  ÂIVDò?Sà\­Ña»[•‘qÚh•¹
+qÓ¿g&Ç)Bå
+ÁÌT0AêËJ|­¹Ñqœ¾¾¾Ïwօ¬2*™oÈ 5
+T§s
+Žë|Ô4W2—Ó#ðZ8£yhöê#A†õ`ó]ƒT¦ù\þO­¸óV©3ºx^ü”R%/lP©vÆjLK8îOu½Æsw,`]{¦&œb"¤:fÒÊ©g÷®Ìpoág¡t‰3òl²¤Fˆ2Dϐü¡c
&TjttDJiš¦¤ˆ°.¥p±VPú§ð‘štQZÐÓÿÆ#ýï(€/DÆs{uD0—Ô„C”* 
address@hidden;¬Ç,TÏvVçvʁ5¡0     address@hidden@ê,ÃsÏ# óL^2
eYË4-K¸îøðp.—Ó†“E„µˆQ#I͗é4Íé­ùmIyÞQ¢®Hͅrl*…
ÍãzÊ6"¡øÑ(address@hidden<¬        m®¹%A4Ny "M         0QY
«iL¯ÚûA4‚T€,address@hidden \R‹¦%ΙÁã²¥”¾(…¾ïsγiÒ 
ˆ°ÞŠ3'ÄtK¼–Á›Ïy¥¯*_Ï1ÉP`yÞb`° SJimHĀ$gí’F
+Ô:(ƒs!±j(“:3#&\,h%°,Æ˙ÁàiEçMNŒ€08!–¹c2poº]¤°…
>ÔÖÒÆÙ°‹ˆÆËRŠ”
+‡“2HÎAD$¥—ó\×
Žú.Ò¾¥þ—äsŒë­]4‘„ué¢ô2¨ÛD„ 
+dÈæÅ+ž£ü5LŒ±‰Ê´’Ré”
RÊàTáíâˆxººˆYõ¢Eض¢†¼DTS.7ìÒä2ùt†nXK¥Rê2(T“Ãoª ¶†žf5«§
address@hidden 2¸a®ëJ)§¶™ùHøë́¹èøa֘z6ý§šâ¸“… §\%pMýnYSQ|aqc»XZ*áõ¾L½PN…
)︢…?fgX1Ñ¡è:1—ø G­Å¢s‘bY².-až/FôVí7¥XôEÚ
.³ 
VrO›Z"éLX¿0ù¿Æ.Ê»?Žø¢1×xéØêf_n/‡eOõg‡?Ó·-ã|=Þ\¥h—8}Àà¤?Pô:Ày¥´M#b–KGX1Ï÷‘\
+­
—€°ÔÚÔRyØSKç.z,>mò§Í‹Š‚B|an¼9Ìú”´ˆŒB1÷—Ž°lÏ7…
xAq›f—°6§#º<QD(ÎmJhŠÊµŽûÞ²hà_¸®ÛâØcRq è^Ä85.™®-–çy¹\Ž*e8ç†aè]ÐoÙ'7%…
*Zö/J¥’m;}ùü’ÚAòf¢+&—ÎÖ        «±±qåʕD¤”Ôai¥’ëyžR*ؽ¬Ý«†a†ñ 2]WJEÆ«K
Q*-ËEo—RÊÿe¿tž·LXù|~thˆ™¦ÞfY¶ã8圼D:MgpݒëzRÊ 
æEp×\v=ùbH®°à•J­€ÝÖ%þ'·.¡U·L1ÿ©äÿ¯Å~ʏM€ Rg•’`‚±qnd9cœ#ÃÁ
+µqÎ5s  !ŠÅ‚RTÉKCZ.ƒÉŕ¼tŒ•ÓÑT‚â‚ß|•0Â¥)€ PŒ1)eÔí¦|g)©ÚåÑã6"¶¢þZ•§QUê>ë¤ 
R(address@hidden@j€ÔyR㜏›<8Êi3‰µò¨?Tv𗷠ÀBý!ÈÊtýAә¶¬i,µéý
RÈEÛt.%aH¢!DíÖ®F±xG|i5j
+©ÂÔ}ó¬ü7ª¤]cHs¶)Ô^‘.æ‹ÊWÊ'*
+oŒèg&/J!…T¤†
>Œ8ÄY‘ó~†Çõ ÖUá£ÉDJ‘”šÖ„ë–„Aª½‰!Xæ£`H°g¢†˜
>ÃPB䔪IUa‘ÏdZ%éºndw¿pÕ¯’IiÏó¶ù'Vl_ƒXŠ„Eõ3j—™<”oÚÄlr»j¹f_°™3¸ž˜¥«} 
>)"¨ëò>WȜQ"H×6LT„IåÑSjˆ…
>S¸aŽáDåÂgHYfP€€s#¼þH)Ť”JI]>GÃ4M(¹Ñd¸´3MJè1˜çyaÍLIôfF­XÓ4µ¢™
+úíX"†ðbƒ\Š„…3T
+Ñ¥HªJ}à”d‰UùÕBµÂ”Èkºd[y“þ;MÀ¬I,¾ª­D0™ÕH’:
²êz^yáåÆP~˜‰HA<˜séH¼ÄçUh—ò’¥¤`5
Sày7#‹™¦É+W "ÏóD¡À‹¥R¢T¿¥ðm†DÉ%¬B!Ks
Ö-ØN‡V]_¯&Ñ,õ&f.S›”CDɐ­Â ËmäF½0YŸ¹Þ|address@hidden"
¦lº®ÉvöU¼Ì䐙:ŠÂ‰´%·¢: 
iZ–e!¢ïyžçù¾¯”žç¹nBªvE1%›¤B€f€­„»¹±Šq`¥nj’`IU%­Ë5T—¤.0µ~Uº¡r
+RAÙÊ)
)\Ò\¦—!(¯DA
+-à«. ¤       M€!„T*‘Ê¥C”%陦i”
+¦$Œ­aá<×aWL8™X–>y˜’ ˆ‚è2H_¥ý9á6“Ó£rhš&Vª‰€ð=”ÕU‘¤D
+“RúRæô>J¥ÒJq‚6©\0(©¨SÈN€UŒ¯BÞÅXVÌź4òðì¬[³£›‹k—6aMO3Ó埞Ž‡pzŽ"
Ÿ'Dè5á=*ý'MÞc.QP$ŽÈ¸á1V<¥¤Ñ1©âD€å”°L© 
öTŒ¨Q)h—Ägœ1dÌàÆ9á?räµ×^cŒµ´´%d1‘ɶý  IDATH„3¥1ƒÉdxL›¦™H$jÕ©Ëì¼¼õô 
õÜø„çI‚W6¸H !DJ 
`&èdƒ>Ôéú€qNŒ™–Å8"%e%ýguílDná‘Ç8g‡”R:xPÿ+„þŒ$år_0¥ZÕµ±ˆ<?N”g,©–3ÆZ‹
…Æy3²–ï',UV4°œC4\»^ãaFËÐæÉ–ÝB½o‰KXsŠpµn¶º’StºðÀߗò­È¿m¢­-    à¡”
+¬éˆh…TŒà xeÎûàWN{ë߉VO‚,kq£÷¬eÙDÔÛÛn¯›…—t)%Ñd>‰ 1›a:˜Öqì
+£•WoÇq8çA(-h„o&sÐqƒÉ¶íX,¾ád2æMÓ4ãñ8„’4%        
«º”Æ\X²&aÓ%B>“Ùč?‹¥ê‰ÖӍ®r½6ý!+ÕOôr‚€t°ÉŠØÄ+‘7’à<)ý{È̑×5‚CЂh¶3æ¶"Ɛµ`Å%Hí
VTۚŽ?ªËµÒ|fМt‘ªÂÚ5mió%MXs©ã†Ó<œ†ÎæôþJ>Á}¶ó˜_<
¤e³ÙT*ED5ÙÔ„Êí„íZÎGDÃàa©óÉ}EœsӌUΩ 
MŠUrqFQH¦:RgMãJŒ‘ïûᖺ6ÚÄÄDàͬIq'ªUàHÿ!ÊÌ>address@hidden&"Z–‹Å’É$çÜqœp­°1ª³KŸÃö©¹èÿ3Ž®*q>
…ìzú¾ Ð,Ä7
+¡ÙŽã”A^ýqº
+´…Ë%­ëNO[Z.ÂIÂê%i)ـhM;¦{:¶`V…qJ©ËŠÕR€z›aÙ{í÷|"
+l
+œs=¯Âójb¸žÃDÌö²õ¡2·u0K j…
«aoN 
Åh£©žðzz×LÔÐj[GUi©:UÈqêÍrÎjÜÿÚ:;å1kŠRÍnƞš'Ó÷}ß÷5‡ê¾ÒÞ+--†{2|˲ô½++Ødª¥?Ínº¯,ËûŒ›/
 ƒ`$Bbt1 fŸ4`Ãä$ì`Ì$-cä
address@hidden,à´¥nf¦šé¢“ÊD表îÍÑté'%W‚·k¯—PK”°^h…o.wO‹®‚jCÞJØN¸Ù
+ÆW!oaÌà.ã¡ 
[ j´é¾úÅĐ]oZ°q!„iš£££###5sl:hyª†_j„ÅýW˲ôôa6øHÏg}Ð÷ý|>æµRúÖ      
ה
address@hidden
ܪâͬV™<•–¿lÛªyŽ©™«ï<address@hidden(e3Q«T]ÈV![¬™…Gýšú Ù¯s)
_;¤«ƒsÐHp
+KN­zeĦHôåè¢òAd$–ª„µgm|óíËtŸdü¬ʉ—ó⩼ê/gæU7š 
[$–3¾‚ñõÈ:9·³®?‘j‹Ð!àÌ:#´Ú%—Çã®ë)=O¤á_©P„z 
„§Á\â×kêNå¯É.ü9ÄFàÆҒÅTù¨FŸªÑ°‚9f½i)Ì;¾/jXOˆ\õ=+D<õÆXñDљä§’æÔÍ5<î8N|Wo!
+ívÒ½Q#´j‡Gø<b­Iè
+`ˆh¨ò–Ëe¯|¿(Är_ìÈç?ÀÌë
Ӝ6xfµ´Ö#©%i>¬7Ílº‚²9¯zŠõ)µ<       K”°ÂzJG£ÙÑX;£¤¢‘¼ΉþŒÌÉçs4žñ³c…Wu1s
±Ik€oçÆ:ÆmÄ$ ]oɟþ=Mš6pã+ÿ<“‘“•×&¥Œÿ¿½o–ä*ïû}çôkfîÌ}ì½wïîJ+­VzDB 
!L0d‡¶‘)WÛ$$))ÊÄå`§âTªœr9NA%¡HåR©rl%eãÄ 
address@hidden/ôtÏéçô¬Vàìö'•4·g¦§ûô9¿óûÞY£NuÃýHn‡Ó—(Š˜‘¢[j,ÏíçéµVqÚC
+é‹têäŽ4'SUÄÐ<˜ËŽLÙVú™œ»=—+ kgÉWt
+4Ï©)TÆA‰æRÛT]Ó;Mš»‚Rjww7ÝL¾fÞN’ýŽ†Ô¸~;1£ŸRfjÚæ¤Zël—W2¾rþü_†XŸ 
YƤJt=±èM'«1Ti|TnŸšWçদC=jšÝ›cKD\Àµ3ZßØ¿æ«Rá´Þ·ÖûÖÇ2ÇýHïô¾¯¶Õ¹Ãè±Cµ?
+··Ãµ}œÔⵑõ:ËTŽr6uò§~ÚñžÝ=ø·ÑØr³e¬5$NmpÞ艔³(¥Q6©I%]ùq|éŒ#‚eÙI¼ŐGDq§&$¤ãå˜ñEQ”N²ë½`s,ö®1–qÓ¤x沌՟Ròuy¸Yõn.)address@hidden|©±­->ÉÖ֖RZq³<d{“¤‹’ž%ƒ§7³b
     «šÎR£ã<Ó{ÑΈÆ~-’k¡Ú´ó†°ü©&?ô¼Vonk^ñ,áõÅzß:½–kg¨þè[ûŸx|address@hidden
¿¸eFk2m+)@č2‰¦ÊÈx<.¬Xmô¹„‰)Dæ|ÿÂèû’.×8šq \ôÝ¢
+Æ…áCŒ£+´6[|Rß%L”‰’Hâ*Rh8åùÏeEÅü™çÌ9[µÖ#¨PÍꋲW1©•+šðÒÒ¢É2 
äx7RJ¹®»à8?¢2y‚0]lSÄ1žr96®õcÖis\çR/&cÚ´蒓?ŸçV%¼¢²Ü•ïºwit×à3ß:øG~ðQ÷f!‰Šy²ÍàX[_
 ú—ÞÂ>5èû¾ïû¾eY_ܲj¦Ž¢àÉü™ã;qA­ÞA©9NH§gNN9Q²ÞtúS³‹Ö¹vx9ú“#‰…
×ÓI¾ã…
jX‹Ä9êtà1rDÆt𙑂]¢ú±EÐQðd0¡*v&º®ëºN)ӝjZÜâfÈAäÐФW5Ó¦Õ_d)ÆÅ?3Ð^¯×ï÷­sçßl99PÑohîv%Ƨ8g¢Î€Uúg¹¯£
+€48d(`ÌglxDNãff­ö”E-`]iéØâíw
¶Nuóûoú¶ú!áR‰Û%ðҝø!~1ðÇÞÒÒp8ÜÝÝMxJ‰ï&Q+Ò°ç*—Y.T*NsÄÇ “Ê«3µ­Ò½4ej&rÅ
͈}j¹ÎÃÅ»6+ˆQ†Ì¾¹V͕ŸÞWښ8ílbk΍XIß÷SºÊÌñ1#Z,address@hiddenÖ
àˆ>À6ëCð–Ö‡à3ZŸD¬Iâ퀘! 
Ž0Qú½Ò¾-ëTå2¦EÝk±&Ò÷¨šÚê‚õŽXþtwwû›þ;µk×Eɛ3ŒÞ`9ñƒ_Þ¾È+ËBˆÃéF
˜s“Pnq¦íÔ«øNZ]¹až©å2àbž’]«ÈeÃi­3VÆ7—|‹‹­Mc_•æUô­9;\üŠyÞ 
˜uü­ø.ÍðÝ"n撍+®$†°ŒªžûLΛ)„ àFáûl¯ð”s‰ú
,JM’}žDÞÁs( d X?££§•Ú,J¤1ø<‚mÙt¤'mIž%i   
tl±hQÇ}OÄѾ£PõåaM)uçæÎm3g¯ë2µ€õ²ÊÛ^µø•þá' 
½2T‰#¼ÅrVÃðon9²²°°pxx˜ìØ3›¥Îœ \–#‰ÆÞnT»Jî(%Ys2rtÃÐ
‘È)¹BÇeŸ/address@hidden<9$;’Ä>‡ÜYS¨*½’¢.œs/æ~(V…
¹ˆªëÒ¿¡ðÞn¿:êjFQÎi½ËzSë'´:«Õ.q`Á±h$Y1°      
f¡ÇƒéYBHê9Nǧ:³„gQ¿#tm!’]…
˜Á3’0=ˆ·›aˆ?z>È«pOæŒd‡ƒ­JørË7÷¾$ðÈüŸ„W旙j™ÆïWZöÐâƒ[ŸX;"„Øßߏ㢨­“UkB–©Ì\Š9“'¨ÌàZc~nˆ†Ì\z
 *0Ó¦ì2WY¿ÚR>=ÖLáÅìOUÃháHI„Wò\òßÒZäºîküñ¯v­â­°a™OjŸñ5ü>address@hidden
ë{"ÞÔû_¾úÃ/ß*jI'D7 ä‡5>¸uñÛG–;ooo?­£*¬èP
;2/‰u‰f-û)address@hidden&~ª><ïL†â¯ 
ÃÕÕU×uw>âõû;W“¸§Éã²þBþ–5Ö§ìWÞпɖ4ùgòÄâ²E”=EYÞ8™ ÿŸyb¿Ÿ<'õ&_SD€'7C
÷îÃýû…U1»¦7òç*ºgõ4a}Ÿ:??tÇàS{;ǏþŠ´+žM‰óø!ÿµÂÏmm?¶¼Ôívͺ.1 ™¶äÄL »ç&¡Œ©'kâÂ7
#Qi­rø•âZn¢§•—S0,address@hidden&T†/3Oų’êóG¢(ZYYéIyß¹ÍBÖ
ÒªÖKµ~<¯Õ¿Ã§­ûoZZ]°ˆÒR·IʁdÃ$iα1EŠåyð2þæ’ÁÉØÀ‹»Á×/ÈÞxôs/ș.|G«·¯\Àµç«}_/¸â{Všé¡û–>ráÂû6q¿e7_º'¥ü¨v>paósa
 
»Ýد‚ƒ©h»ÉC¦±T˜&߈8Z:²´åbí™"Sü¥TŒu¡{EÖ+gºÏ§S•²éºeL5>ò”VõƚZÖ3±µ—ˊ_©ÐsøÂW„-•Ã0
ú!~ìâî/JÇí°þ“(|«íP¦ ÕÁ[n¸³ÿªMu×T¢‰"¥`”)ø2!O”‰Lue‚A©LÃí´„Í—ŸBô  
îÝ'«ëØã -Dy
Ögÿ¯þýÏö–„Õ.®[”«=±Ò=G¸uáY$ŕ3Ç¢7½véÝÿõÂçÅÒjêñɦw–Ê       
!?éö—üùþ3]áx^l´ŽÄÉ®àÝH9¥fÚÒ´ÛÔ䜫„‹B¨¹®÷«(address@hidden 
I¾b.£8”4í!çTêj¹*Òæ­³Óâ_9ϝq1:öQÆ·SÔ¢«4ª–j•šS[ûÚÚZW©woï¾Ïv%èIýNà?ìx4ÃûA|ðïÐø›·ÉWØeϔÇ$~šD6SÙ^@)dqʘc’Ï<Ý[m0’7cS˜ÿìŒÿøE{Õ÷ßE¡Æp9
?±—” 
k°dȗ‚Î%¶„ÏùO/2³àŽT©Ž{Ru,Z_«]lôÅRG<Ñq„k‘u¹#wóš{ú&ï¿<ç¿ßí¦O¢ÉvÜ#ñ7Ýî›m÷?ŽG¿yxñ¢ët:¸\Œe±z8Ååb
 IMΆr7‰À\qù¯}ò¹ž  v¹e\“ZËQWmRqÉOcîkLãÅãf×ô)&•|…D¶3ŽH­u.]Q){Z“BÃÊ 
VñWâ†CÂtÅa€lpÅõŒ4ƒÉڏ·‡tŸˆ9l\˜,MOR¨’¨M„2{1Ä 
:«««Þpø··wßãtóÿŽ‚o¨ð½^w%C]Ë'Ñ6ëçú‡w¸wmxB¤…CÌo$ •4‹ªUÝ„L«Èpö-6µB2     
ZüÉPñçŸ>ú‚½1ÿY 
N,$•9‰ž¦k°~2P÷míî;„³„‹DˆHôŽO{îÓ=¾¥kmSÔ³´+µgA–<ò,¬tÅÆ–;b±+ž\ôdý˜
address@hiddenÑ6é•ÖzsÈÚ¢   
2\žçÕ7um²µŒcyNtÔ£¹éû†§<ÁÏ­2טFYq+ñë1¤¦?GºšH7jÀñö~ðľS\91Î稨™Zhæ'[Þ¦ƒfÔYϔ?Œ#fSÍ:ÞNÒpü8RßÚÝý¥½Ñ۝NÄøÏÁÈ#z¿×µË£R2q¡ç´þ°çyu÷Î%‡*#³’Ï2Ž¼ÌfšyAÄÊ“ð(©ÇÃ(þŸO
address@hidden@«$NXNnÑÀžÖC¥ƒ`´‡áˆ(Ð:6 c`›è;–Üa:/ċŽ9’ƒH{b¼hG=›7úrc 
ûîd£v-\aK
+õDµ?»§¾ãڛZ­%e…Éð=%¥kŒ)t›´?Ö]üÑÐÿ÷JŸµ¬A0 -Ër]·&CÂdX/Ç°žõH+\N­‚sÆ 
X墛.õñx\$n)Š™cŠ|ߪ¡ŠEÅ9~£½öHþtic˜‚Ínz3É1–\Vc•žXš¶Í̡ᅥä? ëm–sÀü‰ñð 
Ë~½åÐl‹=©£ßX
+ÖïêíÛ0 ÆDýiì¡,^!®š-Tœt(0ÉUË`n%     
횜ò<>úúv÷–áð_D¸sZû¬È­2à<ë.p-V’ÿ`‰Ä’iYÌjZÐ,?â]Ö/„ÁX©ØdÞö   çÁ¾ 
‹Â¡%¤¥Ü—"±¤â‰=[0îƒô(͟2³XªÃyۄMôãNç-¬_Ôü
}êsÑø…ÑÈqœ8$—R÷=–çG/Õ›BFCqA÷™¢µ¾¤Ÿ-:"f ÑZqÓbžÍ;ác»V¬}_ލ\ߍÎç 
Xßtÿ!Ë÷ØÝ Ñ.ëù‡?áx·Ê|:]izö9­~Ùþà}K]GdAÈøß4Œ&è±=uRړ)ƒWL Úeý
FÀ•¡‚‹‡ê³OŽ¾¾Ý½þpøë!ß"¬¢[ƒ¨ªÐ é„7-rXõ}nJs>      
€GðHl"φ$”å‚÷˜ýˆ÷B>ð,‚=àŒ ¡õ“|P¸ýÔúG³üGØ
H¼Bˆw‚¾ËúÛ*üã 
ú,Âgm+î9GN_;½<¯8y|&ìt_ÚÆ®45©X±ÕZc4zÄÏ۝{¤«¤;Þ-Ò.K[ΛüñptâîNÇfÅÛédžf
Rˆ¦'™jæÄ&#Aj¯J"Ñ<
+ù¹‹á£ÏFg„Oý£‡¿ê[„ݺã_v¬\jVF{¯uõæ_çj¿fD
@2M”É…ª³ÄFN)Óì†Åh’À)§,÷!˹ 
ùÏtô{}•ø,ñöövZ#Ô,štˆÈZy95å*‰ËÌ[–åyž-ÄÝûßî¼Q:î4¤‰ ²]Yٕ7 
œ×ü?ìðÝ)'ÉBOnÒN-Æô›ÀÜäHâ
+E.!ȎDšG>address@hidden>  
Û¤K‘§àu¢ð´ð¡Pß7åV5mò›ô!sÏnk£)†;ò<Efs¿Ñ«»¬äõǪ³­zH8oƒsFGÛ”Ó?MÀE­ŸQê»îÅþ>!öC!ÁûÌ{ZI
¹8>Ëô$Ûm¶òÒ%¦TãñXêõz=!Žý‡ýàVgqÂ>™ÖꝑO…þڍ®”“„›ç¬TkTÉvͅmYiÞªPñ0Ð
ìùzÏ烀Ƽð®QDŠ…‚T¡¶˜Dœiµ<½Áߘä
B,K‹¦\Œš.ðÁJ`QXµƒd>²4ÙµŒg¡ÚL^ƒ}9#ZÊòj>‰f™Ï?ÎI!O¸¿¤2˜}`Äz\bÞb¾Àz;ԛ:zŽÕŽ”—mÚMÚ+ÄÅUrZX˲dMP̈¬=ÃË¢ë}¿*
Ã8¦!‚e­o#±º×rnÙž$:FrÙö(Sis¶ù"W¯*b<
+ÞÓù½Ð¶È³D­.u²1°ïG~8‰AЌáXBö#½3Â(œlÌ´ç³øҘÆÚÒ ID!˒
+9‚˜YÁjàŸ‡w1nî#yÜrÅìy[zœ~\Ewܨ,ÑVõeBG&æðú JTj\ˆ+Ib^Œ)W_בª)^®àòôEýïõ&× 
‹¿¤ÀûŒæ=Ö[¶³—œ÷EÖ!·§&ÂPó¦Ò8 ¸õà9úÈäæíŠiÄ>address@hidden|Iç˳d3‡2õ…
{Bù°rí¯rWôÍQ²7̓f#È4:F„g±Haî,æ;"õÉ×K÷–<*d¯ÄÕBYveS¬²B’ø5B~tÜû­Ç5˜Ò¾ 
`†€Šk8†,4„RŠ€Hk¡…fbK(3úJ‰É(ɞҒc»­DJ4cA)address@hidden@´^n#±*l§$I ‰¥5 
Ÿ§àF-îMUBªÍ*­kÆ=ߪ )˜pÖ¦0“FÉfwÜ̚cã/Ea     
Z",‘dFi˜†é˜šn5ò9Sž%diÑA€QÒ¾X'Xés&¼c‹Õ(™õD4f>¯U:address@hidden&J“'address@hidden
 ² Ãev5{ZÑ­Bú™`ÌIÆ%Ñ$ýk™Ä…uÚvI°ám™õtjŒ˜åäú§-÷™ýlëEǶ53ÐSÚf^Ò:×`Z€× 
xԁ^u3‘ðšà‹v™l]XqÄhWÚT6í9¿LPè³;ôu4XrÑVÃeÜ°%}áêf!5;IžUUØÈCU’ê¢Ì•ü11˶’¬Ëèå²K4TQ
üñÛx3w1yªfs6JÑM^DŒ1kÂÔp<GÆ  µÆØ2bˆˆÉ à9        
ÀÆߒd6(×ðgãNsËi“}1ߐf‘ða§;address@hidden"s´áö\£Ì{¶É·žÓju]Ij«nëgÍ#n…
”‡ÊQ/Gµšs¢Ò™Ñd.å8ßÌþÕUï›>r62<Œûâ\Â,ßfñ¯2´B­J¿bebPºH¡VTü"g+'Ÿ 
"ÝFÙʤw×pvÍ|«8©Ø%Ú 
jFܪ‡TÕ+ŒQ–¥WEßz“Í~ò­?¥àÁc×®>ˆl$(Í㪨ßÈLÔ,ûb]{OC¡ãZ’Å(dpÕlÚ<©ï˜~óò 
|rÛ1—,õ⅀/˜Òræ
+hų‚Ë~…²xWÀôº!¦Ââ,®RnF»9ãAzƒœµ-TŠjÙ:address@hidden&ɀó­I›´t/ë«4­3U¸ø      
õãìC™Y›k#¥³yÑ3&F“Þ«\£s°öX®®Ù¬"ÃjbM¨26Í$_¥Û—¹#Ñ,m´ –V&©¬hlœÔXM rvR© 
™{$WðžËÌYe2µJ´šI®îRúÀ¥L‚³·Êù'^ån°ë0WÃA)WÊRx¢f¦ÏÌs¬l¤ØÈFÖ྘«) 
•!~ݬ{B©ûó5 Ð,æ×äy&UW>âŠ:¼LšyÑίâË?-gg-×LVž[EðâZ,ã2ÒT¥~ÎüL…
²Ÿç1©V–SÏLÅ<‡,¹´Zh¦Rµ‘Mú™2Yžƒ¬Õ‘©êzÖTJ.(q
L(ÔÄhÕÔ&ó%׿s•ÑV“õÉuQ0œ§ïTÿHJÍ+sî̵`JÕìÊøÝlX-psQ«+P›l17eyCJÎÌyÂS‚ª3v¥:› 
5BÍØky±¾²s]¶z³eų®ŠmžW¨ÞÐð$Užq®šíg´Z?,;h
¸´9_ˍYJ@<cI[&Sa÷j`¦Òþ(5vÍٓonÂÅu˜EiSrÄ{¨ù7U      «ÎƙsÕèt
‚-‘mj–Y<š« `ÅNÁµŠä܁K\>‘¸±íÕ®ó龛ü
+•cn`Qipœè÷¬ÑC7ë6ÃUd·ã9Çqö^=§ŽÉV•¯nÉR—UÆ).¢l…^–;Zê°«äYKS
l5ß¹¹˜t[¡0re”CåƒæjÓ 
¬-5t;address@hidden/éÂñ}¯ño裣CzS%¨4:÷Pé²z´pÆNPºË0Ï\~eÊBî
ªÐÁP¤Æ(bV6~"Íb1¬ç\C£²ÿ`4C ãæ¬åÇDÜë¸IDATÀÚD™šëc\xT°a¡éìšÑ      
•&†æáå}™¦Z˜nHšêÓ×r(V 
í/hõ+ì¿rÛú!SÀڃžŽš[7].HaþôéƒËüƒw3ª!4{­åxV¹Oð2¬(œ±_MÁmgÌc.ÉaF¹jǜ·š{•Åjg²‘ª”Ø9w/#Ü
U©úÑ'YPDÍ £,à97õèÉ͍ÊП¿­¢Ÿ•Ü_ïx²+ Ãú
[~ÒRǕވÔIÍ×'@×y½kBÖ*ÿj  \5'ŠyT
+aShyW¦`=‹*È•NG*g« º"v‘«µìË S\ƒÈu1"\§åΐµ„2g
+¦¥³ÏY5s¦ŽæiddtlN¹P¯i#ÞJÖ_™§D‘
Óëÿ\èÝ£wљ°2€ew:½õõ]ð%Ʒ⢴A Â0
+/ŠN(½¡yUé
ͧ…|À²7„¬öìÒü'u3ɜ ÔùõxžÜìya•æĬìí§1¢Tk¹+rFžiÙ¢û|…
·œ2T_sRpŠšeæ”ý28k`5°’8ϾçÝJ‹­„1UŸ–ŠÙiMtˆé…ÿ¶
+¾³¶"   7v·,°rƒL$σçƤæ<ø|RÈ)
+Ý­-IR±Ê8=ôׅ°z-‰E¢5+$Ž”Ôlâˌ¥Ëè
+išÅèhÎiáٖ¾bæ`¦ên†4ÐLਿ;ƌ„F³f˜¹ljè5+ݨ#.û͟:#÷šìd¹S%Ù¡U܉îVGü‰*
address@hidden/©†FÐ2ãP¶LLvžå÷pÊT``*ÉAÅæœ"]¾Jʨ°Ó5‡ªÜ‚¹Œ‹á‚Áx."6‡öûҔwªÖ¦õr   
    ³ÉQujñ.êS“þípüÑ¥gq Æw,éª2€51▰-*:•‰& ý´tœÖúÞ#ú
ÇÌ(@åÎyöãùC\ã)ÏBEľ`_p 0b,4E€Z&1N °
:š­)7 Z‚X¢O‚¦¬ƒP’>“¯Æð,nõñYÐ<Dy¶uÅ6Mæqhª7Ͳã4a1Ù´P6‹`Å9yz 
+çå?#®dá5©™Å°¨«r™½•›aqi˜ÐÀEÖ¿¦‚Ï Y´{½˜(è(ºq¡eX*aa!0J)®09 {½…øP©“½ÙûÀñ 
œ\È=ÈhÛöqhôW5Î
address@hidden"@ŠŒ¯?æw˜‹ 
"ºŽ$ÀË$ú$ㄔ`IU,‘,íxóF+àÜPT/&.Év&\9{ófwj^"&¥­0P½ÆTRFaFV97ÐÙ©        
„ÏF7nô>³hR…®j"fٚîÁŠ 
çµÞf~J«‹¬?mËovÜÁà¨mYéº[¶B§m!P¬æqÞBÖ¬µÖš­dd£0¼{åJ×# Ždœ 
Ôl\IyÎY²`73ÎÀ¹1ž Fò­ðX "f°/™…
$B€}ÁŠ‰c$I“"`„XDq¹OhuÂõ&Tc•D'address@hidden
+s)address@hidden:ÞlCWÓ:address@hidden'é:éýÅÀ6ë! 
Á›š¿¦£¯KzÚ±ÏI)-WZ–eYqº•¬}†™Ddµ€Õ„aÕ`™Rj49Ž“¾uÜ 
address@hidden,:N‘NŽL%ÐØA3ˆ 4Ώ1$!¬Q„oú“O:Æ¦Q”Yzz(¢ 
,I‡ÆddÒ¾L‚j`ƒNp1N¤G4 Y‚XHºªÇÿÝ 
¸­p¬(k³éEêziãæ˜fÎ67CŠr5­ÆMó€lU™úÒ1\Ç;c*½MJбšS$`õ%æY_bކÞeÞe¾ 
EDtQŠC!ˆö¥IiÇ&
)¥ëºñN¿RX_Å×}KÛ-`lXs”. ûû{–e9r$ØŽ¿æ]åƒåœèMÿ¼¬T    
õ¯a;‚!ãÂ(^E¹à»af1~fˆÈà¾V$Æ㉕/M address@hidden&¬yÄ­w`íYEýið  ²Ò 
~‡ÈV Mî·FÂ1l‰h&``ŸõžÖ&,ˆd¯è–¦+9FÕØO—r-‘ÅK™Ä»0sÖ †Hĺ< 
&hfvµÞk”€ù¼–ÓÇÃ=ˆE¶¶ /1GÌûDÛ1…
áØuömYdI)-˒RHiÅ-/s¬tÛ±ívÕ_+jë%1,˲\×[ZZšvaö$·Äõ{ G
+»Â©¹qS7ÐPcs4Ÿ#:~d¶À…
”1)F¶Ç™¯_a¬2ätˇ#á+€úi·Arµ#(F¸d1~$X‘G%M•Õ(3ÕÔXèhb\sªç±?1WM]íô”
r%l 
O$]Þèó"ÀÍö„t§râR€ÿ³_}z]x–eF#!„çyaŽF£ÅÅEK‰2\\,4±²‚aM^.9ºµaÍmÃJߍ{=³¦xÏd
 Ço<µ£y5‰-&  Ã+cÙ(ô¬¿y¾Óó<dS_.QÕÖ³FÊÄnÛõÈðƒˆ¢(îž5üåá)nuV™
PÖô¬ôO¥¢uWµE¦Và²GȅÁÌìÌlYV©T‘ôôè7T;š­\MÒµ5نmÛ 
ÇÌEQlºM“´Î¢”#ãL´2%ŠÔ­ƒ6«Ä†UU<¨|H…
桛;£ëÚÁl媒%6¢9nU«”bÖav»™¢ŠÔ¯Y˜ÅÕ¥Ç&G”R§Ú 
¬R•°VÌét:é&EÑGƒžÕf+W•¬zð(0±m;'íh3-é+“>§V”庖TòÒÑ¢Ó>ŠÀâ†6¬âñ 
ÞØꃭ\€Õ§p/!P½^ïÒ¥­‹ThFþe{Êë1Uëþ…
½Z†eêvUʸR´J¯[£›íH¶rÕmæG]'uÄ!µ½ÞÑ$5-kÚ-eúà´ÒZßÐ Z†UX¨ õªwãÃZëWF×uÛM 
•«PN/D±s0žíDdÛN™C°‰]Å0ÅsÆN_\bñŸ£Ñè¡ë”h]„e*aÊQçhÍÀŒ address@hidden
+—e¥ðáÒ|õÉ/¬ˆÑÝË-(,“45ÔÃcY"ÿÕGZ·k+W§Üµ¤ä3>¬i†¿mÛÅm›¨i͏Iƒ€
+¼y\k}ßâpµÓ>„:†…¹ÐŠ™oï
Ûf ­\­rï*VÅp‹»1 Ù¶mYVú€s§
‚à­7EV«»de¶
«ÆŒ†á‹Ú¼V®VéÛ¸wq¬ÔD‡°m[Jér£r‰yl*[eÙ¿£ð•+­îR
XÅQI²=~`µ
hhåj–W¯„Z©‡`u¤{
`.4UÊ­°ë]ÿh«V©„±30ët§
hhå*—[lsÈ°Qa®šË†ebSše‚nêøƒ6 ¡
+°
+8•+V‚fJ©X–Ú1måê¬ElXóÜÁ¤\X~#Ok–Ì«&_GÚg%•(R·¯µEj«¦       
E)Ãê¨á;N¶Z¹Êåh‹2zAåŠ)s¾˜ýüPe°-ν¥¢ðµÖØR"¥Í¸f§˜kýرýW®´ØÊU.DxýêX)…Œ+Šy
address@hidden>‰òÑL_k­Oʽ÷ß֖šn嚐׭kKe[û•”t•)¥^³¬zíÀת„Mh¬RŠUx{wô¯î=¼±
¿jåڐ» Ã£!vœ°ø2š!UY¾Â0|Ûñ6{¤°b\P3ÑZ+uÞ¹0zE?zˆºw•‹'[iåj•÷Əµù …
FaÍCÞ+ƒ±«cmrn=`ÝÕ;x×Ú[ÐSûd<‰|ëR$=¡oêGïYÑ×/``·#Öʵ(o>~ᩈÈÎ郆‹p¾úËU˜ÅÌöîXj«°Þ~½þ©&.¿Hc¤0Š‚ˆáŠ’®­´r­É›Žó¯?éag™TÚmÚìEFMxV¥>address@hidden|ðÎhAT÷4_ðLÀ*E«(Š
 Ú/»íx·€ÕJ+/Mn àC·ê`Tîƒl`fFc厐
+îëîüÔMm¼èœ*a+­´R*?s³R|ñÓgíÇöÝ­Èu'îÑi0,³ÎŒÙº².&3GQxʾãúáß¹U¯·        
Ï-`µÒʕY-ïü³·[~ðøÎÁž•ÿý¬·¥;®ëCÔ÷úÔQØCpÌ  
îè¬ë·Ð]´¡W-`µÒÊGàxÇ»ü–ÑϏ>ÿâá#ÏÙ/Ž­ƒHµ°       address@hidden ÔP<Õ     
™¡Ð0I#ºeÀvR-`µÒÊ÷I\       
W6ül²ð’¤õ¶ÒJ+-`µÒJ+­´€ÕJ+­´€ÕJ+­´ÒV+­´ÒJX­´Òʵ&ÖO< 
¸ñuÚPÛVZiå/ppãƒÜ¿xÜúêW¿úÈ#<üðÃã›ßØL+­´ò—S 
yä‘×éOèºë®‚àþûï¿ýöÛÛAi¥•VþJ÷±' üâWÞ$íÿ­»†ö;gÆIEND®B`‚
+
+   The above is useful for playing Flash files downloaded to your local
+system.  It is also possible to play Flash files directly from the web.
+To do so, use the `-u' option along with the URL of the desired file.
+
+
+           gnash -u http://example.domain.com/flashfile.swf
+
+Note that this will not work with every website; some embedded Flash
+files are difficult to play.
+
+* Menu:
+
+* Gnash Command Line Options::
+* Gnash Interactive Control Keys::
+* User Configuration File::
+
+
+File: gnash_user.info,  Node: Gnash Command Line Options,  Next: Gnash 
Interactive Control Keys,  Up: Using Gnash
+
+2.1 Gnash Command Line Options
+==============================
+
+No options are required for  Gnash's default behavior.  However, there
+are many options that can be used to that behavior.
+
+
+       gnash <options>
+       filename.swf
+
+*Gnash Command Line Options*
+
+Option                               Function
+`-h'                                  Print usage information.
+`-s factor'                           Scale the movie up/down by the
+                                     specified factor.
+`-c'                                  Produce a core file instead of
+                                     letting SDL trap it. By default,
+                                     SDL traps all signals, but
+                                     sometimes a core file is desired to
+                                     assist with debugging.
+`-d num'                              Number of milliseconds to delay in
+                                     main loop. The main loop polls
+                                     continuously with a delay to adjust
+                                     how long _Gnash_ sleeps between
+                                     iterations of the loop. The smaller
+                                     the number, the higher the CPU load
+                                     gets, and of course, the more
+                                     iterations of the main command loop.
+`-v'                                  Be verbose; i.e. print important
+                                     messages to stdout.
+`-vv'                                 Be very verbose; i.e. also print
+                                     debug messages to stdout.
+`-va'                                 Be verbose about movie actions
+                                     (for ActionScript debugging). This
+                                     generates very large amounts of
+                                     text and will affect Gnash's
+                                     performance.
+`-vp'                                 Be verbose about parsing the
+                                     movie. Warning: this can generate a
+                                     lot of text, and can affect the
+                                     performance of the movie you are
+                                     playing.
+`-ml bias'                            Specify the texture LOD bias
+                                     (float, default is -1) This affects
+                                     the fuzziness of small objects,
+                                     especially small text.
+`-w'                                  Write a debug log called
+                                     gnash-dbg.log. This will record of
+                                     all the debug messages whether they
+                                     are printed to the screen or not.
+`-j'                                  Specify the width of the window.
+                                     This is mostly used only by the
+                                     plugin.
+`-k'                                  Specify the height of the window.
+                                     This is mostly used only by the
+                                     plugin.
+`-1'                                  Play once; exit when/if movie
+                                     reaches the last frame.
+`-r [0|1|2|3]'                       ? [undisplayable block object]
+`-t sec'                              Timeout and exit after the
+                                     specified number of seconds. This
+                                     is useful for movies which repeat
+                                     themselves.
+`-g'                                  Start Gnash with a Flash debugger
+                                     console so one can set break points
+                                     or watchpoints.
+`-x id'                               This specifies the X11 window ID
+                                     to display in; this is mainly used
+                                     by plugins.
+`-u url'                              Set the _url member of the root
+                                     movie. This is useful when you
+                                     download a movie and play it from a
+                                     different location. See also the -U
+                                     switch.
+`-U baseurl'                          Set base URL for this run. URLs
+                                     are resolved relative to this base.
+                                     If omitted defaults to the _url
+                                     member of the top-level movie (see
+                                     the -u switch).
+`-P parameter'                        Parameters are given in the syntax
+                                     "ParamName=Value" and are mostly
+                                     useful for the plugin to honour
+                                     EMBED tags attributes or explicit
+                                     OBJECT PARAM tags. A common use for
+                                     -P is to provide FlashVars (ie: -P
+                                     "FlashVars=home=http://www.gnu.org";).
+`-F filedescriptor'                   Use the given filedescriptor to
+                                     send requests to the host
+                                     application. This is currently only
+                                     used for GETURL requests.  The
+                                     protocol is not documented yet, and
+                                     also needs improvement.  Primary
+                                     use for this switch is for the
+                                     NPAPI plugin to properly support
+                                     javascript and target windows in
+                                     geturl requests.
+
+
+File: gnash_user.info,  Node: Gnash Interactive Control Keys,  Next: User 
Configuration File,  Prev: Gnash Command Line Options,  Up: Using Gnash
+
+2.2 Gnash Interactive Control Keys
+==================================
+
+While a movie is playing, there are several control keys. These can be
+used to step through frames, pause the playing, and control other
+actions.
+
+*Gnash Interactive Control Keys*
+
+Key Combination                      Function
+`CTRL-Q'                              Quit/Exit.
+`CTRL-W'                              Quit/Exit.
+`ESC'                                 Quit/Exit.
+`CTRL-P'                              Toggle Pause.
+`CTRL-R   '                           Restart the movie.
+`CTRL-L'                              Force immediate redraw.
+`CTRL-T'                              Debug.  Test the set_variable()
+                                     function.
+`CTRL-G'                              Debug.  Test the get_variable()
+                                     function.
+`CTRL-M'                              Debug.  Test the call_method()
+                                     function.
+
+
+File: gnash_user.info,  Node: User Configuration File,  Prev: Gnash 
Interactive Control Keys,  Up: Using Gnash
+
+2.3 User Configuration File
+===========================
+
+Individual user preferences may be set by editing variables with the
+`.gnashrc' file:
+
+
+           ~/.gnashrc
+
+   Each line must begin with an action: either _set_ or, in the case of
+lists, also _append_.
+
+   The values in this configuration file apply only to an individual
+user, and become the default settings of the standalone player and the
+plugin.  Note that any command line options take precedence over
+`.gnashrc' settings.
+
+   The variables in the `.gnashrc' file support three types of
+arguments: on/off, numeric values, or in the case of the whitelist and
+blacklist, a list of hostnames as ASCII text.
+
+*User Configuration Variables*
+
+Variable                 Value                    Function
+localdomain              on/off                   This value can be set
+                                                  to either _on_ or
+                                                  _off_, and controls the
+                                                  loading of external
+                                                  Flash movies over a
+                                                  network. This option
+                                                  tells Gnash to only
+                                                  load Flash movies from
+                                                  the existing domain.
+localhost                on/off                   This value can be set
+                                                  to either _on_ or
+                                                  _off_, and controls the
+                                                  loading of external
+                                                  Flash movies over a
+                                                  network. This is a
+                                                  stricter version of the
+                                                  _localdomain_ setting as
+                                                  this allows the loading
+                                                  of Flash movies to the
+                                                  same host that is
+                                                  running Gnash.
+whitelist                hostnames                This is a list of
+                                                  hostnames separated by
+                                                  spaces, or _off_ to
+                                                  disable the whitelist.
+                                                  The hostname must be
+                                                  given without a
+                                                  protocol (http://,
+                                                  https://). If this list
+                                                  is populated, Gnash
+                                                  will only load external
+                                                  Flash movies from the
+                                                  specified hosts.  The
+                                                  whitelist takes
+                                                  precedence over the
+                                                  blacklist. Because
+                                                  several files can be
+                                                  parsed in succession,
+                                                  each file can override
+                                                  or add to lists in
+                                                  other files. Use _set_
+                                                  to override all other
+                                                  lists or _append_ to
+                                                  add your blacklisted
+                                                  hosts to lists in
+                                                  previously parsed files.
+blacklist                hostnames                This is a list of
+                                                  hostnames separated by
+                                                  spaces, or _off_ to
+                                                  disable the blacklist.
+                                                  The hostname must be
+                                                  given without a
+                                                  protocol (http://,
+                                                  https://).  External
+                                                  flash movies from these
+                                                  domains are never
+                                                  allowed to load. If
+                                                  whitelist is present
+                                                  and not empty,
+                                                  blacklist is not used.
+                                                  Because several files
+                                                  can be parsed in
+                                                  succession, each file
+                                                  can override or add to
+                                                  lists in other files.
+                                                  Use _set_ to override
+                                                  all other lists or
+                                                  _append_ to add your
+                                                  blacklisted hosts to
+                                                  lists in previously
+                                                  parsed files.
+localSandboxPath         dirs                     This is a list of
+                                                  directories separated
+                                                  by spaces.  Only
+                                                  resources from these
+                                                  directories and from
+                                                  the directory portion
+                                                  of movie filename (if
+                                                  loaded from filesystem)
+                                                  are allowed to load.
+                                                  Because several files
+                                                  can be parsed in
+                                                  succession, each file
+                                                  can override or add to
+                                                  lists in other files.
+                                                  Use _set_ to override
+                                                  all other lists or
+                                                  _append_ to add new
+                                                  sandboxes.  Note that
+                                                  there's currently no
+                                                  way to *drop* the
+                                                  directory of base dir
+                                                  from the list of
+                                                  allowed local sandboxes.
+delay                    Number                   Gnash uses a
+                                                  timer-based event
+                                                  mechanism to advance
+                                                  frames at a steady
+                                                  rate. This option
+                                                  overrides the default
+                                                  setting in Gnash to
+                                                  play a movie slower or
+                                                  faster.
+verbosity                Number                   This is a numeric value
+                                                  which defines the
+                                                  default level of
+                                                  verbosity from the
+                                                  player.
+MalformedSWFVerbosity    on/off                   This value can be set
+                                                  to either _on_ or
+                                                  _off_, and controls
+                                                  whether malformed SWF
+                                                  errors should be
+                                                  printed. If set to
+                                                  true, verbosity level
+                                                  is automatically
+                                                  incremented.  Set
+                                                  `verbosity' to 0
+                                                  afterwards to hush.
+ASCodingErrorsVerbosity  on/off                   This value can be set
+                                                  to either _on_ or
+                                                  _off_, and controls
+                                                  whether ActionScript
+                                                  coding errors should be
+                                                  printed. If set to
+                                                  true, verbosity level is
+                                                  automatically
+                                                  incremented.  Set
+                                                  `verbosity' to 0
+                                                  afterwards to hush.
+debuglog                 Absolute path            This is the full path
+                                                  and name of debug
+                                                  logfile as produced by
+                                                  Gnash. On systems with
+                                                  a UNIX-type shell, a
+                                                  tilde prefix (~) will
+                                                  be expanded as by Posix
+                                                  shell requirements (see
+                                                  
http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_01).
+writelog                 on/off                   This value can be set
+                                                  to either _on_ or
+                                                  _off_, and controls
+                                                  whether a debug log is
+                                                  always written by
+                                                  Gnash, or not at all.
+sound                    on/off                   This value can be set
+                                                  to either _on_ or
+                                                  _off_, and controls the
+                                                  sound of the standalone
+                                                  player. By default
+                                                  Gnash enables playing
+                                                  the sound in any Flash
+                                                  movie.
+pluginsound              on/off                   This value can be set
+                                                  to either _on_ or
+                                                  _off_, and controls the
+                                                  sound of the player
+                                                  when running as a
+                                                  browser plugin. By
+                                                  default, sound is
+                                                  enabled when using
+                                                  Gnash as a browser
+                                                  plugin.
+EnableExtensions         on/off                   Set to _on_ to enable
+                                                  extensions. This option
+                                                  is _off_ by default
+StartStopped             on/off                   Set to _on_ to have the
+                                                  GUI start in "stop"
+                                                  mode. This is useful in
+                                                  particular for the
+                                                  plugin, so you have to
+                                                  explicitly start any
+                                                  movie on a webpage.
+                                                  This option is _off_ by
+                                                  default.
+flashVersionString       string                   Set the string returned
+                                                  by $version and
+                                                  System.capabilities.version.
+                                                  Useful to get around
+                                                  some flash version
+                                                  detection movies.  Note
+                                                  that the version
+                                                  advertised by the
+                                                  plugin is NOT affected
+                                                  by this setting,
+                                                  instead you need to set
+                                                  the GNASH_FLASH_VERSION
+                                                  environment variable for
+                                                  the latter (which
+                                                  doesn't affect $version
+                                                  and
+                                                  System.capabilities.version).
+flashSystemOS            string                   The string that Gnash
+                                                  should return for
+                                                  System.capabilities.OS
+flashSystemManufacturer  string                   The string that Gnash
+                                                  should return for
+                                                  
System.capabilities.manufacturer
+StreamsTimeout           double                    Set the number of
+                                                  seconds after which
+                                                  streams download time
+                                                  out. Note that timeouts
+                                                  only occurs after the
+                                                  given number of seconds
+                                                  passed w/out anything
+                                                  was received.
+insecureSSL              on/off                   If set to _on_, no
+                                                  verification of SSL
+                                                  connections is
+                                                  performed. This means
+                                                  that, although the
+                                                  connection is
+                                                  encrypted, the server
+                                                  certificate could be
+                                                  invalid, may not belong
+                                                  to the host, or both.
+                                                  Equivalent to curl
+                                                  -insecure. By default,
+                                                  this option is _off_ and
+                                                  connections will fail
+                                                  when a host cannot be
+                                                  verified.
+SOLsafedir               Absolute path            The full path to a
+                                                  directory where Gnash
+                                                  should store Shared
+                                                  Object files ("flash
+                                                  cookies") if they are
+                                                  enabled.
+SOLreadonly              on/off                   If set to _on_, Gnash
+                                                  will not write Shared
+                                                  Object files.
+URLOpenerFormat          string                    Set the format of an
+                                                  url opener command. The
+                                                  %u label would be
+                                                  substituted by the
+                                                  actual url to be opened.
+                                                  Examples: ?
+                                                  [undisplayable block
+                                                  object]
+
+   The following example `.gnashrc' file allows a user to only play
+Flash files saved locally to the machine on which Gnash is running.  It
+also specifically forbids content from doubleclick.com and
+mochibot.com.  Gnash's error output is set to be fairly verbose, with
+the debug log placed in a location convenient for the user.  Finally,
+sound is turned on for both the standalone player and the plugin.
+
+
+
+         #
+         # Gnash client options
+         #
+
+         # Only access remote content from our local domain
+         set localdomain on
+
+         # Only access content from our local host
+         set localhost on
+
+         # These sites are OK
+         # uncommenting the following line will allow load of external
+         # movies *only* from the specified hosts.
+         #set whitelist www.doonesbury.com www.cnn.com www.9news.com
+
+         # Disable whitelists set in any other gnashrc files, because
+         # these could override our blacklist.
+         set whitelist off
+
+         # Don't access content from these sites
+         set blacklist www.doubleclick.com mochibot.com
+
+         # The delay between timer interrupts
+         set delay 50
+
+         # The default verbosity level
+         set verbosity 1
+
+         # Be verbose about malformed SWF
+         set MalformedSWFVerbosity true
+
+         # Be verbose about AS coding errors
+         set ASCodingErrorsVerbosity true
+
+         # The full path to the debug log
+         set debuglog ~/gnash-dbg.log
+
+         # Write a debug log to disk
+         set writelog on
+
+         # Enable or Disable sound for the standalone player
+         set sound on
+
+         # Enable or Disable sound for the standalone player
+         set pluginsound on
+
+         # Make sure SSL connections are always verified
+         set insecureSSL off
+
+         # Use firefox to open urls
+         set urlOpenerFormat firefox -remote 'openurl(%u)'
+
+
+File: gnash_user.info,  Node: Installing and Configuring Gnash,  Next: 
Reporting Bugs,  Prev: Using Gnash,  Up: Top
+
+3 Installing and Configuring Gnash
+**********************************
+
+There are two ways of installing Gnash: using a package manager, or
+installing from source (*note Getting the Source::).
+
+* Menu:
+
+* Requirements::
+* Downloading Gnash::
+
+
+File: gnash_user.info,  Node: Requirements,  Next: Downloading Gnash,  Up: 
Installing and Configuring Gnash
+
+3.1 Requirements
+================
+
+Before downloading and installing Gnash, check that your hardware and
+software meet the following requirements.
+
+* Menu:
+
+* Hardware Requirements::
+* Software Requirements::
+
+
+File: gnash_user.info,  Node: Hardware Requirements,  Next: Software 
Requirements,  Up: Requirements
+
+3.1.1 Hardware Requirements
+---------------------------
+
+One of the goals of Gnash is to make it portable enough to install on
+small devices.  As a result, the hardware requirements are minimal.
+Gnash has even run on an ARM9 at 200 MHz with 32 MB of RAM! (It ran
+without video support in this case.) While firm minimums have not been
+established, Gnash has been shown to run successfully with the
+following:
+
+   * 336 MHz processor
+
+   * 128 MB RAM
+
+   * Gnash will run on anything from a raw frame buffer up to an
+     OpenGL-supporting graphics card.
+
+   The following table provides a list of the Operating System/CPU
+combinations on which Gnash has been shown to run.
+
+*Build Matrix*
+
+Operating System                     Processor
+OpenBSD, FreeBSD, NetBSD             Alpha AXP, AMD64, i386, Itanium,
+                                     PC-98, PowerPC, SPARC64
+Debian                               Alpha AXP, AMD64, ARM, hppa, i386,
+                                     Itanium, MIPS, PowerPC, IBM zSeries
+                                     (s390), SPARC
+Fedora                               x86-32, x86-64, Geode GX, Geode LX
+Gentoo                               AMD64, PowerPC, SPARC, x86
+Maemo 2.1                            i385, ARMv5t
+Scratchbox                           i386, ARMv5t
+Access Linux Platform                i386, ARMv5t
+Mandriva                             i386, x86-64, MIPS
+Open Embedded, OpenMoko, Poky        ARM
+YellowDog Linux 6                    PowerPC, PS3
+OpenSuSE 10                          i586, x86-64
+Red Hat Enterprise, CentOS           x86-32, x86-64
+Ubuntu                               x86-64, x86-32, PowerPC, UltraSPARC
+Haiku                                i386
+Syllable                             i386
+Irix 6.5                             MIPS R10K
+Darwin (MacOS X)                     PowerPC and x86-32
+Windows XP, Windows Vista            x86-32
+
+
+File: gnash_user.info,  Node: Software Requirements,  Prev: Hardware 
Requirements,  Up: Requirements
+
+3.1.2 Software Requirements
+---------------------------
+
+The 0.8.2 release of Gnash has been designed to run on UNIX/Linux
+variants, and has been run on most of the free ones.  However, Gnash
+has successfully run on Windows, Darwin (Mac OS X), Irix, Solaris,
+BeOs, OS/2, and Haiku.  Gnash has also run on the following 64-bit
+systems: PowerPC, Itanium, UltraSparc, and AMD64.  For now, it is
+important to be sure that the following code, testing, and
+documentation dependencies are met before installing Gnash.  If you
+will be downloading Gnash with a package manager, these dependencies
+may be solved by the package manager.  Otherwise, you must first verify
+that each of these dependencies are installed on the target system.
+
+
+File: gnash_user.info,  Node: Downloading Gnash,  Prev: Requirements,  Up: 
Installing and Configuring Gnash
+
+3.2 Downloading Gnash
+=====================
+
+There are two ways to download Gnash: using a package manager or by
+downloading the source code and building it on your system. If
+possible, it is advisable to use a package manager to download Gnash,
+as it will resolve dependencies for you.  However, if you want the very
+latest features, or a Gnash package is not available for your operating
+system, it is better to download the source code and build Gnash
+locally.
+
+* Menu:
+
+* Getting the Source::
+* Getting Codec Support::
+
+
+File: gnash_user.info,  Node: Getting the Source,  Next: Getting Codec 
Support,  Up: Downloading Gnash
+
+3.2.1 Getting the Source
+------------------------
+
+Gnash is available as a release tarball (*note Releases::), a
+development checkout (*note Repository::), or a development snapshot
+(*note Snapshot::).
+
+* Menu:
+
+* Releases::
+* Snapshot::
+* Repository::
+
+
+File: gnash_user.info,  Node: Releases,  Next: Snapshot,  Up: Getting the 
Source
+
+3.2.1.1 Releases
+................
+
+The source can be acquired from a GNU FTP Mirror
+(http://www.gnu.org/prep/ftp.html).  The release version is intended to
+be stable, and is probably your best choice if the release took place
+recently.  If you need features or fixes which were introduced after
+the release, consider a CVS checkout (*note Repository::) or the daily
+snapshot (*note Snapshot::).
+
+   To download, select a mirror near you, then choose the `gnash'
+directory.
+
+
+File: gnash_user.info,  Node: Snapshot,  Next: Repository,  Prev: Releases,  
Up: Getting the Source
+
+3.2.1.2 Snapshot
+................
+
+The daily development snapshot can be downloaded from
+http://www.gnashdev.org/dev_snapshots/
+(http://www.gnashdev.org/dev_snapshots/).  This is the best option if
+you need changes which were introduced after the last release (*note
+Releases::) of Gnash, but are unable to download directly from the
+repository. (*note Repository::)
+
+
+File: gnash_user.info,  Node: Repository,  Prev: Snapshot,  Up: Getting the 
Source
+
+3.2.1.3 Repository
+..................
+
+The latest development sources are available via anonymous CVS.  This
+is recommended if you need features or bug fixes which were introduced
+after the last release (*note Releases::).  Look at the daily snapshot
+(*note Snapshot::) if you experience difficulty accessing the
+repository.
+
+   To download via anonymous CVS, first set the environment variable
+`CVS_RSH' to `ssh', then check out the source code.  The example below
+uses the GNU Bourne-Again shell (bash):
+
+
+           export CVS_RSH="ssh"
+           cvs -z3 -d:pserver:address@hidden:/sources/gnash co gnash
+
+   It is also possible to browse the repository
+`http://cvs.savannah.gnu.org/viewcvs/gnash/?root=gnash' on the web.
+
+
+File: gnash_user.info,  Node: Getting Codec Support,  Prev: Getting the 
Source,  Up: Downloading Gnash
+
+3.2.2 Getting Codec Support
+---------------------------
+
+Gnash requires codec support to handle audio and video correctly. Some
+platforms like Ubuntu or Fedora under the GNOME desktop will
+automatically notify the user that the proper codecs aren't installed,
+and pop up a dialog box to let the user download the codecs Gnash needs
+to make site like YouTube work correctly. If you have installed Gnash on
+any other platform, and video doesn't work, it's highly likely you need
+to install the proper codecs. For most platforms, this is the
+Gstreamer-ffmpeg plugin, available from your distributions repository.
+
+
+File: gnash_user.info,  Node: Reporting Bugs,  Next: Glossary,  Prev: 
Installing and Configuring Gnash,  Up: Top
+
+4 Reporting Bugs
+****************
+
+The Gnash project relies on the community of Gnash users to test the
+player, feedback is critical to any successful project.  Not only does
+it let us know that people use Gnash, but it helps us understand the
+community's needs. Gnash uses a bug tracker on
+`http://savannah.gnu.org' to manage these reports.
+
+   When filing a report, please follow the guidelines below. The better
+your bug report is, the easier it will be for the developers to address
+the issue. Bug reports without enough information will initially be
+asked to provide this information anyway. Adding critical details, like
+the Operating System you are on, its version, and any relevant error
+messages from Gnash that you get.
+
+* Menu:
+
+* Get a Fresh Binary Package::
+* Determine if the bug was previously reported::
+* Review the bug writing guidelines::
+* Filing a bug report::
+
+
+File: gnash_user.info,  Node: Get a Fresh Binary Package,  Next: Determine if 
the bug was previously reported,  Up: Reporting Bugs
+
+4.1 Get a Fresh Binary Package
+==============================
+
+For starters, it's a good idea to obtain a copy of the latest snapshot.
+Although Gnash is primarily released as source, the Gnash build
+infrastructure allows the automated building of binary packages. Often
+the version of Gnash as packaged by a GNU/Linux or BSD distribution is
+based on the last official release, which could be months out of date.
+It is helpful if this is the case to try a newer packaged build of
+Gnash.
+
+   You can get a fresh binary package of Gnash, as well as recent
+source packages from http://www.getgnash.org/packages
+(http://www.getgnash.org/packages/).
+
+
+File: gnash_user.info,  Node: Determine if the bug was previously reported,  
Next: Review the bug writing guidelines,  Prev: Get a Fresh Binary Package,  
Up: Reporting Bugs
+
+4.2 Determine if the bug was previously reported
+================================================
+
+Search the Gnash bug tracker
+(https://savannah.gnu.org/bugs/?group=gnash) to see if the bug has
+already been identified.
+
+   If the issue has already been reported, you should not file a bug
+report.  However, you may add some additional information to the ticket
+if you feel that it will be beneficial to the developers.  For
+instance, if someone reported a memory issue on Ubuntu GNU/Linux, and
+you noticed the same problem on OpenBSD, your stacktrace would be
+useful.  Conversely, adding a "me too" note to a feature request is not
+helpful.
+
+
+File: gnash_user.info,  Node: Review the bug writing guidelines,  Next: Filing 
a bug report,  Prev: Determine if the bug was previously reported,  Up: 
Reporting Bugs
+
+4.3 Review the bug writing guidelines
+=====================================
+
+A good bug report should be precise, explicit, and discrete.  This
+means that there should be just one bug per ticket, and that a ticket
+should contain the following information:
+
+   * An overview of the problem;
+
+   * Instructions on how to replicate the bug;
+
+   * A description of what happened when you performed the steps to
+     replicate the bug, and what you expected to happen;
+
+   * Your system information: operating system name and version, as
+     well as the versions of major development dependencies;
+
+   * The release number or checkout timestamp for the version of Gnash
+     where you observe the problem;
+
+   * The file `config.log', which should be attached as a file;
+
+   * A descriptive title.
+
+   Include any additional information that you feel might be useful to
+the developers.
+
+
+File: gnash_user.info,  Node: Filing a bug report,  Prev: Review the bug 
writing guidelines,  Up: Reporting Bugs
+
+4.4 Filing a bug report
+=======================
+
+After following the steps described above, you can file a bug report at
+`https://savannah.gnu.org/bugs/?group=gnash'.
+
+
+File: gnash_user.info,  Node: Glossary,  Next: Authors,  Prev: Reporting Bugs, 
 Up: Top
+
+5 Glossary
+**********
+
+
+
+A
+=
+
+ActionScript
+     _ActionScript_, or "AS", is the scripting language for _Flash_
+     applications. It is compiled to bytecode, which is a subset of the
+     _SWF_ format.
+
+AGG
+     AGG is the AntiGrain 2D graphics library, which can be used as a
+     renderer in Gnash. It is faster than OpenGL on systems without
+     hardware graphics acceleration. As of Gnash version 0.8.1 it is
+     the more feature complete renderer.
+
+AMF
+     _AMF_ is the object format used by _Flash_ for shared objects and
+     streaming video.
+
+as_environment
+     In Gnash terms, the as_environment, or ActionScript execution
+     environment, contains a stack of objects, characters and values
+     which are in the immediate environment of the current fn_call.
+     Please refer to the Gnash ActionScript manual for more information.
+
+
+C
+=
+
+Cairo
+     Cairo is a 2D graphics library with support for multiple output
+     devices. Can be used as a renderer in Gnash. A useful feature of
+     Cairo is that it will automatically use graphic card acceleration
+     when available. Cairo has an experimental OpenGL backend.
+
+
+D
+=
+
+DejaGNU
+     DejaGNU is a framework for testing software.
+
+DocBook
+     _DocBook_ is a markup language for presentation-neutral
+     documentation, such as manuals.
+
+Doxygen
+     _Doxygen_ is a documentation generator for for multiple languages
+     which uses comments in the source code to create stand-alone
+     documentation.
+
+Drupal
+     Drupal is a CMS/blog system used for the main Gnash website.
+
+
+E
+=
+
+extensions
+     A Gnash _extension_ is a plugin (not a browser plugin) which
+     implements additional functionality beyond what is covered by
+     _Flash_ specification. These are shared libraries which are loaded
+     at runtime.
+
+
+F
+=
+
+ffmpeg
+     ffmpeg is an audio and video decoding library which can be used by
+     Gnash to decode mp3, FLV and other media types.
+
+Flash
+     The term _Flash_ is used to describe both the Adobe IDE for
+     creating _SWF_ files, and the technology itself. Flash is a
+     trademarked term of Adobe's, we prfer to use SWF to refer to the
+     files themselves, as well as the format, instead of flash(tm).
+
+FLV
+     FLV is a proprietary file format used to deliver Flash video. It
+     is used by YouTube, among others.
+
+FLTK
+     FLTK, or the 'Fast Light ToolKit', is a portable GUI library which
+     is intended to replace the SDL GUI. Currently in Gnash, FLTK may
+     be used with the Cairo and AGG renderers. FLTK has an experimental
+     Cairo backend.
+
+FrameBuffer
+     In Gnash, this is a GUI library that outputs directly to the Linux
+     Frame Buffer and so does not need a window system to run. This
+     makes it particularly suitable for use on small devices.
+
+
+G
+=
+
+Gnash
+     Gnash is the GNU Flash movie player.
+
+Gstreamer
+     Gstreamer is a multimedia framework which Gnash can use for
+     decoding audio and video. Gstreamer itself cannot decode anything,
+     so it needs some appropriate decoding-plugins to do the work for
+     it. Remember to install them if you use Gnash with Gstreamer
+     enabled. To get the best out of Gnashs gstreamer-parts, it is
+     recommended to install the gst-plugins-good, gst-plugins-good and
+     gst-ffmpeg plugins packages.
+
+GTK
+     GTK is the GIMP Toolkit GUI library. It is one of the GUI options
+     for Gnash. As of Gnash 0.7.2, this is the more performant and
+     feature-rich choice. GTK uses Cairo internally.
+
+GUI
+     A _GUI_ is a "graphical user interface". In Gnash, the GUI library
+     provides a wrapper for mouse and keyboard events, menus, windowing
+     (where available) and a drawing area.  You must choose a GUI
+     library during the configuration stage of building Gnash.
+
+
+K
+=
+
+Klash
+     _Klash_ was the name given to the stand-alone instance of Gnash
+     which used the KDE GUI.  It has been replaced with an
+     implementation using Qt.  Some documentation may incorrectly refer
+     to the Konqueror plugin as _Klash_.  The plugin was renamed
+     _Kpart_.
+
+Kpart
+     _Kpart_ is a plugin for Konqueror which is enabled with the
+     configuration option -enable-kparts.
+
+
+L
+=
+
+libmad
+     libmad is a mp3-decoding library, which used to be an option for
+     Gnash handling of sound (dropped since 0.8.2).
+
+
+M
+=
+
+Mesa
+     _Mesa_ is the free software OpenGL implementation.  Gnash
+     documentation will sometimes use the glossterms 'OpenGL' and
+     'Mesa' interchangeably.
+
+Ming
+     Ming is a C library for generating SWF ("Flash") format movies,
+     plus a set of wrappers for using the library. It is used by the
+     Gnash project for generating testcases.
+
+
+N
+=
+
+Nellymoser
+     Nellymoser is a proprietary audio codec introduced in the Flash
+     Player in version 6. For more information, please see Wikipedia.
+
+
+O
+=
+
+OpenGL
+     OpenGL (Open Graphics Library) is a standard specification
+     defining a cross-language cross-platform API for writing
+     applications that produce 3D and 2D computer graphics. Accelerated
+     graphic cards usually provide OpenGL at the hardware level. Please
+     refer to Wikipedia for availability of free software OpenGL
+     hardware drivers. A free software implementation of the API is
+     available (Mesa). OpenGL can be used as a renderer in Gnash.
+
+ORM
+     ORM is a system for ensuring the rights of the creator over a
+     piece of digital content. It is more passive than DRM.
+
+
+P
+=
+
+plugin
+     The glossterm _plugin_ is used in Gnash to refer to both any Gnash
+     browser plugin, as well as the Firefox plugin specifically.  The
+     Konqueror plugin is called _Kpart_.  Sometimes, the term is used in
+     an even more generic sense to refer to _extensions_.
+
+
+Q
+=
+
+Qt
+     Qt is a GUI library which is used by KDE. The plugin version of
+     Gnash using this GUI library is Kpart. The standalone version is
+     enabled with -enable-gui=kde.
+
+
+R
+=
+
+renderer
+     The _renderer_ is the subsystem of Gnash which renders content.
+     Only one renderer may be used; it is selected at configuration
+     time if building from source.
+
+     Available renderers are: AGG, OpenGL, and Cairo. In terms of
+     feature completeness, AGG comes first; followed by OpenGL and then
+     Cairo. In most cases, AGG is preferred for performance, except
+     cases where it is beneficial to have hardware accelerated
+     rendering (for example, when you have a very slow CPU but a very
+     fast graphics card). In this case OpenGL should be used.
+
+RTMP
+     RTMP is the Real Time Messaging Protocol primarily used with to
+     stream audio and video over the internet to the Flash Player
+     client.
+
+RTMPT
+     RTMPT is basically a HTTP wrapper around the RTMP protocol that is
+     sent using POST requests from the client to the server. Because of
+     the non-persistent nature of HTTP connections, RTMPT requires the
+     clients to poll for updates periodically in order to get notified
+     about events that are generated by the server or other clients.
+
+RTMPTS
+     RTMPTS is the same as RTMPT, but instead of being a HTTP wrapper,
+     it is a HTTP SSL wrapper (HTTP secure connection).
+
+
+S
+=
+
+SDL
+     Simple DirectMedia Layer is a cross-platform multimedia free
+     software library that creates an abstraction over various
+     platforms' graphics, sound, and input APIs. Gnash can use it as a
+     GUI and/or as a sound handler. Note that the two usages are
+     independent of each other: you can use it for a task and not for
+     the other if you wish. At time or writing (2007-01-11) the SDL GUI
+     lacks menus and a performant input event architecture; the SDL
+     sound handler is the most feature rich, supporting Video through
+     ffmpeg.
+
+sound handler
+     The _sound handler_ is the part of Gnash which handles both event
+     sounds and streaming sound.  Audio from external sources are also
+     handled through the sound handler when SDL is used.  The sound
+     handler must be selected during configuration of Gnash when
+     compiling.
+
+     There are currently two sound handlers available in Gnash: ffmpeg
+     and Gstreamer.  The ffmpeg sound handler uses SDL for mixing.  The
+     Gstreamer-sound handler uses the available plugins to decode the
+     audio, so it might not work if some important plugins are missing.
+     The GST sound handler is recommended (the default).
+
+sprite
+     A sprite is an element of an Flash Movie. It's basically a Movie
+     inside another, having its own timeline.
+
+Stage
+     The visible area of a Flash movie. The name derives from a
+     theater analogy. Graphical elements are referred to as characters.
+
+SWF
+     _SWF_ is the file format for _Flash_ movies.
+
+
+T
+=
+
+Tamarin
+     The Tamarin project seeks to create an open source implementation
+     of the ECMAScript 4th edition language specification. The code is
+     used by Adobe as part of the ActionScript Virtual Machine within
+     the Adobe Flash Player. Gnash does not use Tamarin; it already has
+     a working virtual server and most ActionScript classes are
+     implemented.
+
+timeline
+     In Flash technology, a timeline is a sequence of "frames". A
+     single Flash movie can contain multiple timelines, each
+     independently controlled (STOP or PLAY). At regular intervals
+     (FPS) the player advances all timelines in PLAY mode to the next
+     frame, looping back when last frame is reached.
+
+
+X
+=
+
+X.org
+     X.org is the most commonly used X server; it was forked from
+     XFree86.
+
+
+File: gnash_user.info,  Node: Authors,  Next: GNU Free Documentation License,  
Prev: Glossary,  Up: Top
+
+6 Authors
+*********
+
+Gnash is maintained by Rob Savoye. Other active developers are: Sandro
+Santilli, Bastiaan Jacques, Udo Giacomozzi, Chad Musick, Benjamin
+Wolsey, and Zou Lunkai. Please send all comments and suggestions to
+<address@hidden>. Past and sometimes current developers are Tomas
+Groth and Markus Gothe.
+
+   Gnash was initially derived from GameSWF.  GameSWF is maintained by
+Thatcher Ulrich <address@hidden>.  The following people contributed to
+GameSWF: Mike Shaver, Thierry Berger-Perrin, Ignacio Castan~o, Willem
+Kokke, Vitaly Alexeev, Alexander Streit, and Rob Savoye.
+
+
+File: gnash_user.info,  Node: GNU Free Documentation License,  Prev: Authors,  
Up: Top
+
+Appendix A GNU Free Documentation License
+*****************************************
+
+* Menu:
+
+* 0. PREAMBLE: 0_ PREAMBLE.
+* 1. APPLICABILITY AND DEFINITIONS: 1_ APPLICABILITY AND DEFINITIONS.
+* 2. VERBATIM COPYING: 2_ VERBATIM COPYING.
+* 3. COPYING IN QUANTITY: 3_ COPYING IN QUANTITY.
+* 4. MODIFICATIONS: 4_ MODIFICATIONS.
+* 5. COMBINING DOCUMENTS: 5_ COMBINING DOCUMENTS.
+* 6. COLLECTIONS OF DOCUMENTS: 6_ COLLECTIONS OF DOCUMENTS.
+* 7. AGGREGATION WITH INDEPENDENT WORKS: 7_ AGGREGATION WITH INDEPENDENT WORKS.
+* 8. TRANSLATION: 8_ TRANSLATION.
+* 9. TERMINATION: 9_ TERMINATION.
+* 10. FUTURE REVISIONS OF THIS LICENSE: 10_ FUTURE REVISIONS OF THIS LICENSE.
+* Addendum::
+
+
+File: gnash_user.info,  Node: 0_ PREAMBLE,  Next: 1_ APPLICABILITY AND 
DEFINITIONS,  Up: GNU Free Documentation License
+
+A.1 0. PREAMBLE
+===============
+
+The purpose of this License is to make a manual, textbook, or other
+written document "free" in the sense of freedom: to assure everyone the
+effective freedom to copy and redistribute it, with or without
+modifying it, either commercially or non-commercially. Secondarily,
+this License preserves for the author and publisher a way to get credit
+for their work, while not being considered responsible for
+modifications made by others.
+
+   This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense. It
+complements the GNU General Public License, which is a copyleft license
+designed for free software.
+
+   We have designed this License in order to use it for manuals for
+free software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does. But this License is not limited to software manuals; it
+can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book. We recommend this License
+principally for works whose purpose is instruction or reference.
+
+
+File: gnash_user.info,  Node: 1_ APPLICABILITY AND DEFINITIONS,  Next: 2_ 
VERBATIM COPYING,  Prev: 0_ PREAMBLE,  Up: GNU Free Documentation License
+
+A.2 1. APPLICABILITY AND DEFINITIONS
+====================================
+
+This License applies to any manual or other work that contains a notice
+placed by the copyright holder saying it can be distributed under the
+terms of this License. The "Document", below, refers to any such manual
+or work. Any member of the public is a licensee, and is addressed as
+"you".
+
+   A "Modified Version" of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+   A "Secondary Section" is a named appendix or a front-matter section
+of the Document (*note fdl-document::) that deals exclusively with the
+relationship of the publishers or authors of the Document to the
+Document's overall subject (or to related matters) and contains nothing
+that could fall directly within that overall subject. (For example, if
+the Document is in part a textbook of mathematics, a Secondary Section
+may not explain any mathematics.)  The relationship could be a matter
+of historical connection with the subject or with related matters, or of
+legal, commercial, philosophical, ethical or political position
+regarding them.
+
+   The "Invariant Sections" are certain  Secondary Sections (*note
+fdl-secondary::) whose titles are designated, as being those of
+Invariant Sections, in the notice that says that the Document (*note
+fdl-document::) is released under this License.
+
+   The "Cover Texts" are certain short passages of text that are
+listed, as Front-Cover Texts or Back-Cover Texts, in the notice that
+says that the Document (*note fdl-document::) is released under this
+License.
+
+   A "Transparent" copy of the  Document (*note fdl-document::) means a
+machine-readable copy, represented in a format whose specification is
+available to the general public, whose contents can be viewed and edited
+directly and straightforwardly with generic text editors or (for images
+composed of pixels) generic paint programs or (for drawings) some
+widely available drawing editor, and that is suitable for input to text
+formatters or for automatic translation to a variety of formats
+suitable for input to text formatters. A copy made in an otherwise
+Transparent file format whose markup has been designed to thwart or
+discourage subsequent modification by readers is not Transparent.  A
+copy that is not "Transparent" is called "Opaque".
+
+   Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input format, SGML or
+XML using a publicly available DTD, and standard-conforming simple HTML
+designed for human modification. Opaque formats include PostScript, PDF,
+proprietary formats that can be read and edited only by proprietary
+word processors, SGML or XML for which the DTD and/or processing tools
+are not generally available, and the machine-generated HTML produced by
+some word processors for output purposes only.
+
+   The "Title Page" means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page. For works in formats
+which do not have any title page as such, "Title Page" means the text
+near the most prominent appearance of the work's title, preceding the
+beginning of the body of the text.
+
+
+File: gnash_user.info,  Node: 2_ VERBATIM COPYING,  Next: 3_ COPYING IN 
QUANTITY,  Prev: 1_ APPLICABILITY AND DEFINITIONS,  Up: GNU Free Documentation 
License
+
+A.3 2. VERBATIM COPYING
+=======================
+
+You may copy and distribute the Document (*note fdl-document::) in any
+medium, either commercially or noncommercially, provided that this
+License, the copyright notices, and the license notice saying this
+License applies to the Document are reproduced in all copies, and that
+you add no other conditions whatsoever to those of this License. You
+may not use technical measures to obstruct or control the reading or
+further copying of the copies you make or distribute. However, you may
+accept compensation in exchange for copies. If you distribute a large
+enough number of copies you must also follow the conditions in section
+3 (*note 3_ COPYING IN QUANTITY::).
+
+   You may also lend copies, under the same conditions stated above,
+and you may publicly display copies.
+
+
+File: gnash_user.info,  Node: 3_ COPYING IN QUANTITY,  Next: 4_ MODIFICATIONS, 
 Prev: 2_ VERBATIM COPYING,  Up: GNU Free Documentation License
+
+A.4 3. COPYING IN QUANTITY
+==========================
+
+If you publish printed copies of the Document (*note fdl-document::)
+numbering more than 100, and the Document's license notice requires
+Cover Texts (*note fdl-cover-texts::), you must enclose the copies in
+covers that carry, clearly and legibly, all these Cover Texts:
+Front-Cover Texts on the front cover, and Back-Cover Texts on the back
+cover. Both covers must also clearly and legibly identify you as the
+publisher of these copies. The front cover must present the full title
+with all words of the title equally prominent and visible. You may add
+other material on the covers in addition. Copying with changes limited
+to the covers, as long as they preserve the title of the Document
+(*note fdl-document::) and satisfy these conditions, can be treated as
+verbatim copying in other respects.
+
+   If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+   If you publish or distribute Opaque (*note fdl-transparent::) copies
+of the Document (*note fdl-document::) numbering more than 100, you
+must either include a machine-readable Transparent (*note
+fdl-transparent::) copy along with each Opaque copy, or state in or
+with each Opaque copy a publicly-accessible computer-network location
+containing a complete Transparent copy of the Document, free of added
+material, which the general network-using public has access to download
+anonymously at no charge using public-standard network protocols. If
+you use the latter option, you must take reasonably prudent steps, when
+you begin distribution of Opaque copies in quantity, to ensure that
+this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+   It is requested, but not required, that you contact the authors of
+the Document (*note fdl-document::) well before redistributing any
+large number of copies, to give them a chance to provide you with an
+updated version of the Document.
+
+
+File: gnash_user.info,  Node: 4_ MODIFICATIONS,  Next: 5_ COMBINING DOCUMENTS, 
 Prev: 3_ COPYING IN QUANTITY,  Up: GNU Free Documentation License
+
+A.5 4. MODIFICATIONS
+====================
+
+You may copy and distribute a Modified Version (*note fdl-modified::)
+of the Document (*note fdl-document::) under the conditions of sections
+2 (*note 2_ VERBATIM COPYING::) and 3 (*note 3_ COPYING IN QUANTITY::)
+above, provided that you release the Modified Version under precisely
+this License, with the Modified Version filling the role of the
+Document, thus licensing distribution and modification of the Modified
+Version to whoever possesses a copy of it. In addition, you must do
+these things in the Modified Version:
+
+   * *A. * Use in the Title Page (*note fdl-title-page::) (and on the
+     covers, if any) a title distinct from that of the Document (*note
+     fdl-document::), and from those of previous versions (which
+     should, if there were any, be listed in the History section of the
+     Document). You may use the same title as a previous version if the
+     original publisher of that version gives permission.
+
+   * *B. * List on the Title Page (*note fdl-title-page::), as authors,
+     one or more persons or entities responsible for authorship of the
+     modifications in the Modified Version (*note fdl-modified::),
+     together with at least five of the principal authors of the
+     Document (*note fdl-document::) (all of its principal authors, if
+     it has less than five).
+
+   * *C. * State on the Title Page (*note fdl-title-page::) the name of
+     the publisher of the Modified Version (*note fdl-modified::), as
+     the publisher.
+
+   * *D. * Preserve all the copyright notices of the Document (*note
+     fdl-document::).
+
+   * *E. * Add an appropriate copyright notice for your modifications
+     adjacent to the other copyright notices.
+
+   * *F. * Include, immediately after the copyright notices, a license
+     notice giving the public permission to use the Modified Version
+     (*note fdl-modified::) under the terms of this License, in the
+     form shown in the Addendum below.
+
+   * *G. * Preserve in that license notice the full lists of  Invariant
+     Sections (*note fdl-invariant::) and required Cover Texts (*note
+     fdl-cover-texts::) given in the Document's (*note fdl-document::)
+     license notice.
+
+   * *H. * Include an unaltered copy of this License.
+
+   * *I. * Preserve the section entitled "History", and its title, and
+     add to it an item stating at least the title, year, new authors,
+     and publisher of the Modified Version  (*note fdl-modified::)as
+     given on the Title Page (*note fdl-title-page::).  If there is no
+     section entitled "History" in the Document (*note fdl-document::),
+     create one stating the title, year, authors, and publisher of the
+     Document as given on its Title Page, then add an item describing
+     the Modified Version as stated in the previous sentence.
+
+   * *J. * Preserve the network location, if any, given in the Document
+     (*note fdl-document::) for public access to a Transparent (*note
+     fdl-transparent::) copy of the Document, and likewise the network
+     locations given in the Document for previous versions it was based
+     on. These may be placed in the "History" section.  You may omit a
+     network location for a work that was published at least four years
+     before the Document itself, or if the original publisher of the
+     version it refers to gives permission.
+
+   * *K. * In any section entitled "Acknowledgements" or "Dedications",
+     preserve the section's title, and preserve in the section all the
+     substance and tone of each of the contributor acknowledgements
+     and/or dedications given therein.
+
+   * *L. * Preserve all the Invariant Sections (*note fdl-invariant::)
+     of the Document (*note fdl-document::), unaltered in their text
+     and in their titles.  Section numbers or the equivalent are not
+     considered part of the section titles.
+
+   * *M. * Delete any section entitled "Endorsements". Such a section
+     may not be included in the Modified Version (*note fdl-modified::).
+
+   * *N. * Do not retitle any existing section as "Endorsements" or to
+     conflict in title with any Invariant Section (*note
+     fdl-invariant::).
+
+   If the Modified Version (*note fdl-modified::) includes new
+front-matter sections or appendices that qualify as Secondary Sections
+(*note fdl-secondary::) and contain no material copied from the
+Document, you may at your option designate some or all of these
+sections as invariant. To do this, add their titles to the list of
+Invariant Sections (*note fdl-invariant::) in the Modified Version's
+license notice.  These titles must be distinct from any other section
+titles.
+
+   You may add a section entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version (*note
+fdl-modified::) by various parties-for example, statements of peer
+review or that the text has been approved by an organization as the
+authoritative definition of a standard.
+
+   You may add a passage of up to five words as a Front-Cover Text
+(*note fdl-cover-texts::), and a passage of up to 25 words as a
+Back-Cover Text (*note fdl-cover-texts::), to the end of the list of
+Cover Texts (*note fdl-cover-texts::) in the Modified Version (*note
+fdl-modified::).  Only one passage of Front-Cover Text and one of
+Back-Cover Text may be added by (or through arrangements made by) any
+one entity. If the Document (*note fdl-document::) already includes a
+cover text for the same cover, previously added by you or by
+arrangement made by the same entity you are acting on behalf of, you
+may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+   The author(s) and publisher(s) of the Document (*note
+fdl-document::) do not by this License give permission to use their
+names for publicity for or to assert or imply endorsement of any
+Modified Version  (*note fdl-modified::).
+
+
+File: gnash_user.info,  Node: 5_ COMBINING DOCUMENTS,  Next: 6_ COLLECTIONS OF 
DOCUMENTS,  Prev: 4_ MODIFICATIONS,  Up: GNU Free Documentation License
+
+A.6 5. COMBINING DOCUMENTS
+==========================
+
+You may combine the Document (*note fdl-document::) with other
+documents released under this License, under the terms defined in
+section 4 (*note 4_ MODIFICATIONS::) above for modified versions,
+provided that you include in the combination all of the Invariant
+Sections (*note fdl-invariant::) of all of the original documents,
+unmodified, and list them all as Invariant Sections of your combined
+work in its license notice.
+
+   The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections (*note fdl-invariant::) may be
+replaced with a single copy. If there are multiple Invariant Sections
+with the same name but different contents, make the title of each such
+section unique by adding at the end of it, in parentheses, the name of
+the original author or publisher of that section if known, or else a
+unique number. Make the same adjustment to the section titles in the
+list of Invariant Sections in the license notice of the combined work.
+
+   In the combination, you must combine any sections entitled "History"
+in the various original documents, forming one section entitled
+"History"; likewise combine any sections entitled "Acknowledgements",
+and any sections entitled "Dedications".  You must delete all sections
+entitled "Endorsements."
+
+
+File: gnash_user.info,  Node: 6_ COLLECTIONS OF DOCUMENTS,  Next: 7_ 
AGGREGATION WITH INDEPENDENT WORKS,  Prev: 5_ COMBINING DOCUMENTS,  Up: GNU 
Free Documentation License
+
+A.7 6. COLLECTIONS OF DOCUMENTS
+===============================
+
+You may make a collection consisting of the Document (*note
+fdl-document::) and other documents released under this License, and
+replace the individual copies of this License in the various documents
+with a single copy that is included in the collection, provided that
+you follow the rules of this License for verbatim copying of each of the
+documents in all other respects.
+
+   You may extract a single document from such a collection, and
+distribute it individually under this License, provided you insert a
+copy of this License into the extracted document, and follow this
+License in all other respects regarding verbatim copying of that
+document.
+
+
+File: gnash_user.info,  Node: 7_ AGGREGATION WITH INDEPENDENT WORKS,  Next: 8_ 
TRANSLATION,  Prev: 6_ COLLECTIONS OF DOCUMENTS,  Up: GNU Free Documentation 
License
+
+A.8 7. AGGREGATION WITH INDEPENDENT WORKS
+=========================================
+
+A compilation of the Document (*note fdl-document::) or its derivatives
+with other separate and independent documents or works, in or on a
+volume of a storage or distribution medium, does not as a whole count
+as a Modified Version (*note fdl-modified::) of the Document, provided
+no compilation copyright is claimed for the compilation.  Such a
+compilation is called an "aggregate", and this License does not apply
+to the other self-contained works thus compiled with the Document , on
+account of their being thus compiled, if they are not themselves
+derivative works of the Document.  If the Cover Text (*note
+fdl-cover-texts::) requirement of section 3 (*note 3_ COPYING IN
+QUANTITY::) is applicable to these copies of the Document, then if the
+Document is less than one quarter of the entire aggregate, the
+Document's Cover Texts may be placed on covers that surround only the
+Document within the aggregate. Otherwise they must appear on covers
+around the whole aggregate.
+
+
+File: gnash_user.info,  Node: 8_ TRANSLATION,  Next: 9_ TERMINATION,  Prev: 7_ 
AGGREGATION WITH INDEPENDENT WORKS,  Up: GNU Free Documentation License
+
+A.9 8. TRANSLATION
+==================
+
+Translation is considered a kind of modification, so you may distribute
+translations of the Document (*note fdl-document::) under the terms of
+section 4 (*note 4_ MODIFICATIONS::). Replacing  Invariant Sections
+(*note fdl-invariant::) with translations requires special permission
+from their copyright holders, but you may include translations of some
+or all Invariant Sections in addition to the original versions of these
+Invariant Sections. You may include a translation of this License
+provided that you also include the original English version of this
+License. In case of a disagreement between the translation and the
+original English version of this License, the original English version
+will prevail.
+
+
+File: gnash_user.info,  Node: 9_ TERMINATION,  Next: 10_ FUTURE REVISIONS OF 
THIS LICENSE,  Prev: 8_ TRANSLATION,  Up: GNU Free Documentation License
+
+A.10 9. TERMINATION
+===================
+
+You may not copy, modify, sublicense, or distribute the Document (*note
+fdl-document::) except as expressly provided for under this License.
+Any other attempt to copy, modify, sublicense or distribute the
+Document is void, and will automatically terminate your rights under
+this License. However, parties who have received copies, or rights,
+from you under this License will not have their licenses terminated so
+long as such parties remain in full compliance.
+
+
+File: gnash_user.info,  Node: 10_ FUTURE REVISIONS OF THIS LICENSE,  Next: 
Addendum,  Prev: 9_ TERMINATION,  Up: GNU Free Documentation License
+
+A.11 10. FUTURE REVISIONS OF THIS LICENSE
+=========================================
+
+The Free Software Foundation (http://www.gnu.org/fsf/fsf.html) may
+publish new, revised versions of the GNU Free Documentation License
+from time to time. Such new versions will be similar in spirit to the
+present version, but may differ in detail to address new problems or
+concerns. See http://www.gnu.org/copyleft/
+(http://www.gnu.org/copyleft).
+
+   Each version of the License is given a distinguishing version
+number. If the Document (*note fdl-document::) specifies that a
+particular numbered version of this License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that specified version or of any later version
+that has been published (not as a draft) by the Free Software
+Foundation. If the Document does not specify a version number of this
+License, you may choose any version ever published (not as a draft) by
+the Free Software Foundation.
+
+
+File: gnash_user.info,  Node: Addendum,  Prev: 10_ FUTURE REVISIONS OF THIS 
LICENSE,  Up: GNU Free Documentation License
+
+A.12 Addendum
+=============
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and license
+notices just after the title page:
+
+     Copyright 2008, Free Software Foundation.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.1 or any later version published by the Free Software
+     Foundation; with noInvariant Sections (*note fdl-invariant::),
+     with no Front-Cover Texts (*note fdl-cover-texts::), and with no
+     Back-Cover Texts (*note fdl-cover-texts::). A copy of the license
+     is included in the section entitled "GNU Free Documentation
+     License".
+
+   If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License
+(http://www.gnu.org/copyleft/gpl.html), to permit their use in free
+software.
+
+
+
+Tag Table:
+Node: Top166
+Node: Introduction1471
+Node: Audience2268
+Node: What Is Supported?2596
+Node: Using Gnash5114
+Node: Gnash Command Line Options51443
+Ref: Gnash Command Line Options <1>51790
+Node: Gnash Interactive Control Keys57483
+Ref: Gnash Interactive Control Keys <1>57850
+Node: User Configuration File58599
+Ref: User Configuration Variables59384
+Node: Installing and Configuring Gnash78241
+Node: Requirements78602
+Node: Hardware Requirements78923
+Ref: Build Matrix79700
+Node: Software Requirements80930
+Node: Downloading Gnash81763
+Node: Getting the Source82398
+Node: Releases82758
+Node: Snapshot83316
+Node: Repository83787
+Node: Getting Codec Support84608
+Node: Reporting Bugs85325
+Node: Get a Fresh Binary Package86324
+Node: Determine if the bug was previously reported87103
+Node: Review the bug writing guidelines87922
+Node: Filing a bug report88974
+Node: Glossary89258
+Ref: A89372
+Ref: C90196
+Ref: D90482
+Ref: E90894
+Ref: F91134
+Ref: G92117
+Ref: K93102
+Ref: L93508
+Ref: M93644
+Ref: N94003
+Ref: O94160
+Ref: P94775
+Ref: Q95062
+Ref: R95246
+Ref: S96487
+Ref: T98027
+Ref: X98735
+Node: Authors98828
+Node: GNU Free Documentation License99525
+Node: 0_ PREAMBLE100289
+Node: 1_ APPLICABILITY AND DEFINITIONS101596
+Ref: fdl-document101822
+Ref: fdl-modified102113
+Ref: fdl-secondary102300
+Ref: fdl-invariant102945
+Ref: fdl-cover-texts103194
+Ref: fdl-transparent103407
+Ref: fdl-title-page104697
+Node: 2_ VERBATIM COPYING105086
+Node: 3_ COPYING IN QUANTITY106067
+Node: 4_ MODIFICATIONS108425
+Node: 5_ COMBINING DOCUMENTS114486
+Node: 6_ COLLECTIONS OF DOCUMENTS115984
+Node: 7_ AGGREGATION WITH INDEPENDENT WORKS116876
+Node: 8_ TRANSLATION118105
+Node: 9_ TERMINATION119009
+Node: 10_ FUTURE REVISIONS OF THIS LICENSE119665
+Node: Addendum120806
+
+End Tag Table
+
+
+Local Variables:
+coding: US-ASCII
+End:

Index: doc/C/preformatted/gnashref.html.in
===================================================================
RCS file: doc/C/preformatted/gnashref.html.in
diff -N doc/C/preformatted/gnashref.html.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/preformatted/gnashref.html.in 3 Mar 2008 23:46:44 -0000       1.2.2.2
@@ -0,0 +1,3508 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=ISO-8859-1"><title>Gnash Reference Manual</title><meta name="generator" 
content="DocBook XSL Stylesheets V1.73.2"></head><body bgcolor="white" 
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" 
lang="en"><div class="titlepage"><div><div><h1 class="title"><a 
name="index"></a>Gnash Reference Manual</h1></div><div><p class="releaseinfo">
+      This manual describes version 0.8.2 of Gnash.
+    </p></div><div><p class="copyright">Copyright © 2005, 2006, 2007, 2008 
Free Software Foundation</p></div><div><div class="legalnotice"><a 
name="legalnotice"></a><p>
+    Permission is granted to copy, distribute and/or modify this document
+    under the terms of the <a class="link" href="#fdl" title="Appendix A. GNU 
Free Documentation License"><em class="citetitle">GNU
+    Free Documentation License</em></a>, Version 1.1 or any later
+    version published by the Free Software Foundation with no Invariant
+    Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find
+    a copy of the GFDL at this 
+    <a class="link" href="#fdl" title="Appendix A. GNU Free Documentation 
License">link</a> or in the file COPYING-DOCS
+    distributed with this manual.
+   </p></div></div><div><div class="revhistory"><table border="1" width="100%" 
summary="Revision history"><tr><th align="left" valign="top" 
colspan="2"><b>Revision History</b></th></tr><tr><td align="left">Revision 
Gnash User Manual version 0.4</td><td align="left">Feb 2008</td></tr><tr><td 
align="left" colspan="2"> 
+      <p class="author">Rob Savoye
+      <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>
+      The end user parts of the manual have been pulled out of
+      the original version of the manual, and rewritten. This
+      is now a reference manual only.
+      </p>
+      
+      <p class="publisher">Open Media Now! Foundation</p>
+    </td></tr></table></div></div></div><hr></div><div class="toc"><p><b>Table 
of Contents</b></p><dl><dt><span class="chapter"><a href="#intro">1. 
Introduction</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="#audience">Audience</a></span></dt><dt><span class="sect1"><a 
href="#runs-on">What Is Supported ?</a></span></dt></dl></dd><dt><span 
class="chapter"><a href="#build">2. Building from 
Source</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="#building_overview">Overview</a></span></dt><dt><span class="sect1"><a 
href="#gettingsource">Getting The Source</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#sourcereleases">Releases</a></span></dt><dt><span 
class="sect2"><a href="#sourcecvs">CVS 
Access</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#dependencies">Code Dependencies</a></span></dt><dt><span 
class="sect1"><a href="#testdep">Testing Dependencies</a></span></dt><dt><span 
class="sect1"><a href="#docdepend">Documentation 
Dependencies</a></span></dt><dt><span class="sect1"><a 
href="#configure">Configuring Gnash</a></span></dt><dt><span class="sect1"><a 
href="#compile">Compiling the Code</a></span></dt><dt><span class="sect1"><a 
href="#processdoc">Creating the Documentation</a></span></dt><dt><span 
class="sect1"><a href="#runtests">Running the 
Tests</a></span></dt><dd><dl><dt><span class="sect2"><a href="#dejagnu">Using 
DejaGnu</a></span></dt><dt><span class="sect2"><a href="#manually">Running The 
Tests Manually</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a 
href="#internals">3. Software Internals</a></span></dt><dd><dl><dt><span 
class="sect1"><a href="#tour">A Tour of Gnash</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#The%20Libraries">The Libraries</a></span></dt><dt><span 
class="sect2"><a href="#apps">The Applications</a></span></dt><dt><span 
class="sect2"><a href="#plugin">The Plugin</a></span></dt><dt><span 
class="sect2"><a href="#logging">The Debug Logging 
System</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#soundhandlers">Sound handling in Gnash</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#soundtypes">Sound types</a></span></dt><dt><span 
class="sect2"><a href="#soundparsing">Sound parsing</a></span></dt><dt><span 
class="sect2"><a href="#soundplayback">Sound playback</a></span></dt><dt><span 
class="sect2"><a href="#sdlsound">The SDL sound 
backend</a></span></dt><dt><span class="sect2"><a href="#gstreamer">The 
Gstreamer backend</a></span></dt><dt><span class="sect2"><a 
href="#audio-future">Future audio backends</a></span></dt><dt><span 
class="sect2"><a href="#gstreamer-details">Detailed description of the 
Gstreamer backend</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#testing">Testing </a></span></dt><dd><dl><dt><span class="sect2"><a 
href="#testtools">Testing Tools</a></span></dt><dt><span class="sect2"><a 
href="#testcases">Test Cases</a></span></dt><dt><span class="sect2"><a 
href="#writeastests">Writing ActionScript Tests</a></span></dt><dt><span 
class="sect2"><a href="#writemingtests">Writing Ming-based self-contained SWF 
tests</a></span></dt><dt><span class="sect2"><a 
href="#writing_dejagnu_so_tests">Writing self-contained SWF tests with other 
compilers</a></span></dt><dt><span class="sect2"><a 
href="#writing_test_runners">Writing Test 
Runners</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a 
href="#bugreport">5. Reporting Bugs</a></span></dt><dd><dl><dt><span 
class="sect1"><a href="#bugstep_package">Get a Fresh Binary 
Package</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_search">Determine if the bug was previously 
reported</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_guidelines">Review the bug writing 
guidelines</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_file">Filing a bug report</a></span></dt></dl></dd><dt><span 
class="chapter"><a href="#extensions">6. Gnash 
Extensions</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="#newext">Creating A New Extension</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#craftext">Crafting an 
Extension</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#debuext">Debugging An Extension</a></span></dt><dt><span 
class="sect1"><a href="#inclext">Included 
Extensions</a></span></dt></dl></dd><dt><span class="chapter"><a 
href="#rtmp">7. RTMP Protocol</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="#amf">AMF Format</a></span></dt></dl></dd><dt><span class="chapter"><a 
href="#nsapi">8. Mozilla/Firefox NPAPI Plugin</a></span></dt><dd><dl><dt><span 
class="sect1"><a href="#plugincapi">Plugin C API</a></span></dt><dt><span 
class="sect1"><a href="#plugincppapi">Plugin C++ API</a></span></dt><dt><span 
class="sect1"><a href="#glthread">OpenGL and Threads</a></span></dt><dt><span 
class="sect1"><a href="#eventhandle">Plugin Event 
Handling</a></span></dt></dl></dd><dt><span class="chapter"><a 
href="#authors">9. Authors</a></span></dt><dt><span class="appendix"><a 
href="#fdl">A. GNU Free Documentation License</a></span></dt><dd><dl><dt><span 
class="sect1"><a href="#fdl-preamble">0. PREAMBLE</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section1">1. APPLICABILITY AND 
DEFINITIONS</a></span></dt><dt><span class="sect1"><a href="#fdl-section2">2. 
VERBATIM COPYING</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section3">3. COPYING IN QUANTITY</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section4">4. MODIFICATIONS</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section5">5. COMBINING 
DOCUMENTS</a></span></dt><dt><span class="sect1"><a href="#fdl-section6">6. 
COLLECTIONS OF DOCUMENTS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section7">7. AGGREGATION WITH INDEPENDENT 
WORKS</a></span></dt><dt><span class="sect1"><a href="#fdl-section8">8. 
TRANSLATION</a></span></dt><dt><span class="sect1"><a href="#fdl-section9">9. 
TERMINATION</a></span></dt><dt><span class="sect1"><a href="#fdl-section10">10. 
FUTURE REVISIONS OF THIS LICENSE</a></span></dt><dt><span class="sect1"><a 
href="#fdl-using">Addendum</a></span></dt></dl></dd></dl></div><div 
class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>2.1. <a 
href="#codedeps">Code Dependency Table</a></dt><dt>2.2. <a 
href="#testdeps">Testing Dependency Table</a></dt><dt>2.3. <a 
href="#docdeps">Documentation Dependency Table</a></dt><dt>2.4. <a 
href="#tb-config-features">Configuration Options - Features</a></dt><dt>2.5. <a 
href="#tb-configure-paths">Custom Path Options</a></dt></dl></div><div 
class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a 
name="intro"></a>Chapter 1. Introduction</h2></div></div></div><div 
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a 
href="#audience">Audience</a></span></dt><dt><span class="sect1"><a 
href="#runs-on">What Is Supported ?</a></span></dt></dl></div><p>
+    <span class="application">Gnash</span> is a free SWF movie player.  It is 
available as a
+    stand-alone application or as a plugin for several popular
+    web browsers. It supports playing media from a disk or streaming
+    over a network connection. Some popular video sharing sites like
+    YouTube are supported from a wide vaariety of devices from
+    embedded ones to modern desktops.
+  </p><p>
+    <span class="application">Gnash</span> has a better focus on security, 
allowing the user tight
+    control of all network or disk based I/O. Gnash also supports
+    extending ActionScript by creating your own. You can write
+    wrappers for any development library, and import them into the
+    player much like perl or python does.
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a 
name="audience"></a>Audience</h2></div></div></div><p>
+      This manual is primarily focused on users interested in how to
+      get Gnash installed from a package, and basic usage as a web
+      browser plugin. For more technical details, please refer to the
+      Gnash Reference manual.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="runs-on"></a>What Is Supported ?</h2></div></div></div><p>
+      Gnash is known to compile for most any POSIX and ANSI C++
+      conforming system if you have all the dependent libraries
+      installed. Systems we test on, and which Gnash is know to
+      run on are Ubuntu, Fedora, Debian, OpenBSD, NetBSD, FreeBSD,
+      Win32, and Darwin (OSX) primarily. Occasionally other platforms
+      are built, primarily by those distribution maintainers. This
+      includes BeOS, Haiku, Syllable, OS/2, Solaris, Slackware, and
+      Gentoo.
+    </p><p>
+      Gnash is a capable of reading up to SWF v9 files and opcodes,
+      but primarily supports SWF v7, with better SWF v8 and v9
+      support under heavy developement. With the 0.8.2 release,
+      Gnash includes initial parser support for SWF v8 and v9.
+      Not all ActionScript 2 classes are implemented yet, but all of the
+      most heavily used ones are. Many ActionScript 2 classes are
+      partially implemented; there is support for all of the
+      commonly used methods of each class.
+    </p><p>
+      Gnash has implemented about 80% of ActionScript v. 2.0, and has
+      begun implementing ActionScript v. 3.0. Gnash supports the
+      majority of Flash opcodes up to SWF version 9, and a wide
+      sampling of ActionScript classes for SWF version 8.
+    </p><p>
+      As ActionsScript 3 is a more developed version of
+      ActionScript 2, many of the same classes work for
+      both. Support has been added to Gnash's ActionScript library
+      to support the new ActionScript 3 filters, which get applied
+      to every class. Implementing ActionScript clases is often the
+      easiest way for new Gnash developers to make a contribution
+      without a deep internal knpowledge of Gnash.
+    </p><p>
+      Gnash has included video support since early 2007, but this is
+      an every changing field of reverse engineering. Many of the
+      popular video sharing sites use SWF v8 or v9, which Gnash
+      still has imperfect support for. This is improving all the
+      time, so often builds from a development snapshot will work
+      when using the older release packaged in your distribution
+      doesn't. You can find daily snapshots of the latest CVS tree
+      at: <a class="ulink" href="http://www.gnashdev.org/dev_snapshots/"; 
target="_top">
+      http://www.gnashdev.org/dev_snapshots</a>.
+    </p><p>
+      Gnash uses ffmpeg for codecs, so any file supported by Mplayer
+      should work with Gnash. Gnash supports the loading of patent
+      free codecs like Ogg Vorbis or Theora from disk based files,
+      while work is being done to support these codecs when embedded
+      in a SWF file. Ffmpeg contains the codecs used by the current
+      SWF defintion, FLV, VP6 (ON2), H.263, H.264, and MP3.
+    </p></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="build"></a>Chapter 2. 
Building from Source</h2></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a 
href="#building_overview">Overview</a></span></dt><dt><span class="sect1"><a 
href="#gettingsource">Getting The Source</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#sourcereleases">Releases</a></span></dt><dt><span 
class="sect2"><a href="#sourcecvs">CVS 
Access</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#dependencies">Code Dependencies</a></span></dt><dt><span 
class="sect1"><a href="#testdep">Testing Dependencies</a></span></dt><dt><span 
class="sect1"><a href="#docdepend">Documentation 
Dependencies</a></span></dt><dt><span class="sect1"><a 
href="#configure">Configuring Gnash</a></span></dt><dt><span class="sect1"><a 
href="#compile">Compiling the Code</a></span></dt><dt><span class="sect1"><a 
href="#processdoc">Creating the Documentation</a></span></dt><dt><span 
class="sect1"><a href="#runtests">Running the 
Tests</a></span></dt><dd><dl><dt><span class="sect2"><a href="#dejagnu">Using 
DejaGnu</a></span></dt><dt><span class="sect2"><a href="#manually">Running The 
Tests Manually</a></span></dt></dl></dd></dl></div><div class="sect1" 
lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: 
both"><a name="building_overview"></a>Overview</h2></div></div></div><p>
+      The typical process of building from source will involve 
+      <a class="link" href="#gettingsource" title="Getting The Source">getting 
the source</a>,
+      <a class="link" href="#dependencies" title="Code Dependencies">build 
dependencies</a>,
+      <a class="link" href="#configure" title="Configuring 
Gnash">configuration</a>, 
+      <a class="link" href="#compile" title="Compiling the 
Code">compilation</a>,
+      <a class="link" href="#runtests" title="Running the Tests">testing</a>, 
and
+      <a class="link" href="#install" title="Installation">installation</a>.
+      A simplified overview of the process would be:
+      </p><pre class="programlisting">
+        ./autogen.sh
+        ./configure 
+        make
+        make check
+        make install
+      </pre><p>
+    </p><p>
+      If you are compiling with GCC you will probably need to use a machine
+      with at least 128 megabytes of physical RAM; 64MB is not enough for a
+      couple of the files, even with swap enabled and optimisation turned off.
+    </p><p>
+      At present the Gnash source is about 30 MB extracted and configured
+      and requires a total of about 125 megabytes to compile it.
+    </p><p>
+      Continue reading for detailed step-by-step instructions 
+      of the entire procedure.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="gettingsource"></a>Getting The Source</h2></div></div></div><div 
class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a 
name="sourcereleases"></a>Releases</h3></div></div></div><p>
+       Tarballs of official releases can be found in the download area
+       of the project's GNU Savannah page at
+       <a class="ulink" href="http://savannah.gnu.org/projects/gnash"; 
target="_top">
+                   http://savannah.gnu.org/projects/gnash
+       </a> 
+       or under
+       <a class="ulink" href="http://ftp.gnu.org/gnu/gnash"; target="_top">
+                   http://ftp.gnu.org/gnu/gnash
+       </a> 
+      </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="sourcecvs"></a>CVS 
Access</h3></div></div></div><p>
+       The latest Gnash development sources are available via anonymous CVS.
+       Use the following commands to check them out
+       (just hit return when you are prompted for the password):
+       </p><pre class="programlisting">
+         export CVS_RSH=ssh
+         cvs -z3 -d:pserver:address@hidden:/sources/gnash co gnash
+       </pre><p>
+       You will then be able to update your copy from the repository using
+       </p><pre class="programlisting">
+         cd gnash
+         cvs update -d
+       </pre><p>
+      </p><p>
+       If you only have access to the internet via a web proxy,
+       you will find daily source snapshots of the latest CVS tree in
+       <a class="ulink" href="http://www.gnashdev.org/dev_snapshots/"; 
target="_top">
+                   http://www.gnashdev.org/dev_snapshots
+       </a> 
+      </p></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="dependencies"></a>Code Dependencies</h2></div></div></div><p>
+    <span class="application">Gnash</span> has a number of dependencies on 
other packages.
+    If you install the dependencies using a package
+    manager, be certain to install the development versions
+    of the packages.  The normal versions are often missing
+    the headers <span class="application">Gnash</span> needs to compile.
+  </p><p>
+    Some dependencies have other dependencies, like GTk also needs
+    glib2, atk, and pango to produce a fully linked
+    executable. Different distributions also use differing
+    dependencies, sometimes a package will depend on libxml2 on one
+    system, but libexpat on another.
+  </p><div class="table"><a name="codedeps"></a><p class="title"><b>Table 2.1. 
Code Dependency Table</b></p><div class="table-contents"><table summary="Code 
Dependency Table" 
border="1"><colgroup><col><col><col><col><col><col><col></colgroup><thead><tr><th
 align="left">Name</th><th align="left">Level</th><th 
align="left">Version</th><th align="left">Description</th><th 
align="left">Explanation</th><th align="left">apt-get package</th><th 
align="left">RPM/Yum package</th><th align="left">BSD 
package</th></tr></thead><tbody><tr><td align="left">Boost</td><td 
align="left">Required</td><td align="left">1.32 or higher</td><td align="left">
+           Boost is a library of portable C++ classes and
+           templates.
+         </td><td align="left">
+           In <span class="application">Gnash</span>, Boost libraries are used 
extensively, primarily
+           boost-gthread and boost-date-time. Boost is used for thread and 
mutext 
+           handling. 
+         </td><td align="left">
+           <code class="filename">libboost-thread-dev, libboost-date-time-dev 
libboost-dev
+           </code>
+         </td><td align="left">
+           <code class="filename">
+             libboost-thread-devel, libboost-date-time-devel
+         </code>
+         </td><td align="left">
+           <code class="filename">
+             boost-headers, boost-libs, or just boost
+         </code></td></tr><tr><td align="left">libxml2</td><td 
align="left">Required</td><td align="left"> </td><td align="left">
+           Libxml2 is the GNOME XML parser library and
+           is available at <a class="ulink" href="http://xmlsoft.org"; 
target="_top">http://xmlsoft.org</a>.
+         </td><td align="left">
+           This library is used to parse messages for the
+           XML XMLNode, or XMLSocket ActionScript classes.
+         </td><td align="left"><code 
class="filename">libxml2-dev</code></td><td align="left"><code 
class="filename">libxml2-devel</code></td><td align="left"><code 
class="filename">libxml2</code></td></tr><tr><td align="left">AGG</td><td 
align="left">Possibly Required</td><td align="left">2.4 or higher</td><td 
align="left">
+           AGG is the AntiGrain low-level 2D graphics
+           library.  
+         </td><td align="left">
+           <span class="application">Gnash</span> requires the installation of 
at least one
+           renderer.  AGG is considered the <span class="emphasis"><em>best
+           supported</em></span> renderer for <span 
class="application">Gnash</span>.
+         </td><td align="left"><code 
class="filename">libagg-dev</code></td><td align="left"><code 
class="filename">agg-devel</code></td><td align="left"><code 
class="filename">agg</code></td></tr><tr><td align="left">OpenGL</td><td 
align="left">Possibly Required</td><td align="left"> </td><td align="left">
+           OpenGL is a standard specification defining a
+           cross-language cross-platform API for writing
+           applications which produce 3D and 2D graphics.
+           It supports hardware acceleration.
+           You can download a free implementation from
+           <a class="ulink" href="http://www.mesa3d.org"; 
target="_top">http://www.mesa3d.org</a>,
+           although it doesn't support hardware acceleration.
+         </td><td align="left">
+           <span class="application">Gnash</span> requires the installation of 
at least one
+           renderer. If you don't have a hardware accelerated driver,
+           you're better off using AGG for the renderer.
+         </td><td align="left"><code 
class="filename">libgl1-mesa-dev</code></td><td align="left"><code 
class="filename">libmesa-devel</code></td><td align="left"><code 
class="filename">mesa</code></td></tr><tr><td align="left">Cairo</td><td 
align="left">Possibly Required</td><td align="left"> </td><td align="left">
+           Cairo is a 2D graphics library with support for
+           multiple output devices.  It will automatically use
+           graphic card acceleration when available, and has
+           an experimental OpenGL backend.  
+         </td><td align="left">
+           <span class="application">Gnash</span> requires the installation of 
at least one
+           renderer.  Cairo is considered
+           the <span class="emphasis"><em>least supported</em></span> renderer
+           for <span class="application">Gnash</span>.
+         </td><td align="left"><code 
class="filename">libcairo2-dev</code></td><td align="left"><code 
class="filename">cairo-devel</code></td><td align="left"><code 
class="filename">cairo</code></td></tr><tr><td align="left">GTK</td><td 
align="left">Possibly Required</td><td align="left">2.2 or higher</td><td 
align="left">
+           GTK is the GIMP Toolkit GUI library used by the GNOME
+           desktop. It uses Cairo internally. Gtk enables better
+           integration with Firefox, as well as better event handling
+           and higher level GUI constructs like menus and dialog
+           boxes.
+         </td><td align="left">
+           <span class="application">Gnash</span> requires the installation of 
at least one
+           GUI library.  GTK is considered to be the
+           <span class="emphasis"><em>best supported</em></span> GUI library
+           option for <span class="application">Gnash</span>.
+         </td><td align="left"><code 
class="filename">libgtk2.0-dev</code></td><td align="left"><code 
class="filename">gtk-devel</code></td><td align="left"><code 
class="filename">gtk+2</code></td></tr><tr><td align="left">GtkGlExt</td><td 
align="left">Possibly Required</td><td align="left"> </td><td align="left">
+           GtkGlExt integrates OpenGL into GTK.
+         </td><td align="left">
+           This library is required in order to use
+           the GTK GUI library in conjunction with the
+           OpenGL renderer.
+         </td><td align="left"><code 
class="filename">libgtkglext1-dev</code></td><td align="left"><code 
class="filename">gtkglext-devel</code></td><td align="left"><code 
class="filename">gtkglext</code></td></tr><tr><td align="left">SDL</td><td 
align="left">Possibly Required</td><td align="left"> </td><td align="left">
+           The Simple DirectMedia Layer is a cross-platform
+           multimedia library which provides abstraction for
+           audio, graphics, sound and input APIs.  
+           SDL is available from
+           <a class="ulink" href="http://www.libsdl.org"; target="_top">
+             http://www.libsdl.org</a>.  
+         </td><td align="left">
+           <span class="application">Gnash</span> requires the installation of 
at least one
+           GUI library.  SDL may also be used as a sound
+           handler regardless of whether it is employed as
+           a GUI library.  The GUI
+           library is <span class="emphasis"><em>poorly supported</em></span>
+           in <span class="application">Gnash</span>, but the sound handler is 
the
+           <span class="emphasis"><em>best supported</em></span> in <span 
class="application">Gnash</span>.
+         </td><td align="left"><code 
class="filename">libsdl1.2-dev</code></td><td align="left"><code 
class="filename">SDL-devel</code></td><td align="left"><code 
class="filename">SDL-1.2</code></td></tr><tr><td align="left">FLTK</td><td 
align="left">Possibly Required</td><td align="left">2.0 or higher</td><td 
align="left">
+           The Fast Light ToolKit is a portable GUI library
+           which is intended as a replacement for the SDL GUI.
+         </td><td align="left">
+           <span class="application">Gnash</span> requires the installation of 
at least one
+           GUI library.  FLTK may be used in conjunction with
+           the Cairo and AGG renderers.
+         </td><td align="left">No distribution packages are available.</td><td 
align="left">No distribution packages are available.</td><td align="left">No 
distribution packages are available.</td></tr><tr><td align="left">KDE</td><td 
align="left">Possibly Required</td><td align="left"> </td><td align="left">
+           Kdelibs is a collection of libraries needed to
+           compile KDE applications.
+         </td><td align="left">
+           <span class="application">Gnash</span> requires the installation of 
at least one
+           GUI library.  Kdelibs is also required for the
+           Kpart plugin for Konqueror.
+         </td><td align="left"><code class="filename">kdelibs3-dev, 
kdebase-dev</code></td><td align="left"><code class="filename">kdelibs-devel, 
kdebase-devel</code></td><td align="left"><code class="filename">kdelibs, 
kdebase</code></td></tr><tr><td align="left">Gstreamer</td><td 
align="left">Optional</td><td align="left"> </td><td align="left">
+           Gstreamer is a video handler.
+         </td><td align="left">
+           If you would like video playback, you must
+           install one of the video handlers.
+         </td><td align="left"><code 
class="filename">libgstreamer0.8-dev</code></td><td align="left"><code 
class="filename">gstreamer-devel</code></td><td align="left"><code 
class="filename">gstreamer-0.10</code></td></tr><tr><td 
align="left">gst-ffmpeg</td><td align="left">Possibly Required</td><td 
align="left"> </td><td align="left">
+           gst-ffmpeg allows you to use the FFMPEG decoder
+           with Gstreamer.
+         </td><td align="left">
+           This package is required if you would like to
+           use Gstreamer as a video handler.
+         </td><td align="left"><code 
class="filename">gstreamer0.8-ffmpeg-dev</code></td><td align="left"><code 
class="filename">gstreamer-ffmpeg-devel</code></td><td align="left"><code 
class="filename">gstreamer-ffmpeg</code></td></tr><tr><td 
align="left">FFMPEG</td><td align="left">Possibly Required</td><td 
align="left"> </td><td align="left">
+           FFMPEG is a video handler.
+         </td><td align="left">
+           If you would like video playback, you must
+           install one of the video handlers. When using the
+           gstreamer-ffmpeg plugin, ffmpeg doesn't need to be
+           installed, as it's part of the plugin. For systems
+           without Gstreamer support, ffmpeg can be used directly.
+         </td><td align="left"><code 
class="filename">ffmpeg-dev</code></td><td align="left"><code 
class="filename">ffmpeg-devel</code></td><td align="left"><code 
class="filename">ffmpeg</code></td></tr><tr><td align="left">JPEG</td><td 
align="left">Optional</td><td align="left"> </td><td align="left">
+           <a class="ulink" href="http://www.ijg.org/"; target="_top">JPEG</a>
+           is a lossy image format which is heavily used for images.
+         </td><td align="left">
+           This library is used for rendering JPEGs.
+         </td><td align="left"><code 
class="filename">libjpeg62-dev</code></td><td align="left"><code 
class="filename">libjpeg</code></td><td align="left"><code 
class="filename">jpeg</code></td></tr><tr><td align="left">PNG</td><td 
align="left">Optional</td><td align="left"> </td><td align="left">
+           <a class="ulink" href="http://www.libpng.org/pub/png/"; 
target="_top">PNG</a> is
+           a patent-free image format which is comparable to
+           <span class="emphasis"><em>GIF</em></span>.
+         </td><td align="left">
+           This library is used for rendering PNGs.
+         </td><td align="left"><code 
class="filename">libpng12-dev</code></td><td align="left"><code 
class="filename">libpng</code></td><td align="left"><code 
class="filename">png</code></td></tr><tr><td align="left">libcurl</td><td 
align="left">Optional</td><td align="left"> </td><td align="left">
+           libcurl is the multiprotocal file transfer library.
+         </td><td align="left">
+           This library is used for URL downloading.
+         </td><td align="left"><code 
class="filename">libcurl4-gnutls</code></td><td align="left"><code 
class="filename">libcurl</code></td><td align="left"><code 
class="filename">curl</code></td></tr><tr><td align="left">Glib2</td><td 
align="left">Optional</td><td align="left"> </td><td align="left">
+           Glib2 is a dependency of Gtk, and is a collection of
+           commonly used functions.
+         </td><td align="left">
+           This library is used for convenience.
+         </td><td align="left"><code class="filename">glib2-dev</code></td><td 
align="left"><code class="filename">glib2-devel</code></td><td 
align="left"><code class="filename">glib2</code></td></tr><tr><td 
align="left">Atk</td><td align="left">Optional</td><td align="left"> </td><td 
align="left">
+           Atk is a dependency of Gtk, and is used for accessibility
+           support.
+         </td><td align="left">
+           This library is used for accessiblity..
+         </td><td align="left"><code class="filename">atk-dev</code></td><td 
align="left"><code class="filename">atk-devel</code></td><td align="left"><code 
class="filename">atk</code></td></tr><tr><td align="left">Pango</td><td 
align="left">Optional</td><td align="left"> </td><td align="left">
+           Pango is a dependency of Gtk, and is used for font handling.
+         </td><td align="left">
+           This library is used for font handling.
+         </td><td align="left"><code class="filename">pango-dev</code></td><td 
align="left"><code class="filename">pango-devel</code></td><td 
align="left"><code class="filename">pango</code></td></tr><tr><td 
align="left">automake</td><td align="left">Possibly Required</td><td 
align="left">1.6.0</td><td align="left">
+           Automake is a tool for generating
+           <span class="emphasis"><em>Makefile.in</em></span> files.
+         </td><td align="left">
+           This package is required to run
+           <span class="emphasis"><em>autogen.sh</em></span>, which is a 
requirement
+           if you are using the development source from CVS.
+         </td><td align="left"><code class="filename">automake</code></td><td 
align="left"><code class="filename">automake</code></td><td align="left"><code 
class="filename">automake</code></td></tr><tr><td align="left">autoconf</td><td 
align="left">Possibly Required</td><td align="left">2.59</td><td align="left">
+           Autoconf is a package for generating configure
+           scripts.
+         </td><td align="left">
+           This package is required to run
+           <span class="emphasis"><em>autogen.sh</em></span>, which is a 
requirement
+           if you are using the development source from CVS.
+         </td><td align="left"><code class="filename">autoconf</code></td><td 
align="left"><code class="filename">autoconf</code></td><td align="left"><code 
class="filename">autoconf</code></td></tr><tr><td align="left">gettext</td><td 
align="left">Possibly Required</td><td align="left">0.14.6</td><td align="left">
+           Gettext is part of the GNU Translation Project.
+         </td><td align="left">
+           This package is required to run
+           <span class="emphasis"><em>autogen.sh</em></span>, which is a 
requirement
+           if you are using the development source from CVS.
+         </td><td align="left"><code class="filename">gettext</code></td><td 
align="left"><code class="filename">gettext</code></td><td align="left"><code 
class="filename">gettext</code></td></tr><tr><td align="left">libtool</td><td 
align="left">Possibly Required</td><td align="left">1.5.22</td><td align="left">
+           This is a generic library support script.
+         </td><td align="left">
+           This package is required to run
+           <span class="emphasis"><em>autogen.sh</em></span>, which is a 
requirement
+           if you are using the development source from CVS.
+         </td><td align="left"><code 
class="filename">libltdl3-dev</code></td><td align="left"><code 
class="filename">libtool</code></td><td align="left"><code 
class="filename">libtool</code></td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="testdep"></a>Testing Dependencies</h2></div></div></div><p>
+    <span class="application">Gnash</span> tries to run as many tests as 
possible, but will
+    simply skip tests if the tools to run them are unavailable.
+  </p><div class="table"><a name="testdeps"></a><p class="title"><b>Table 2.2. 
Testing Dependency Table</b></p><div class="table-contents"><table 
summary="Testing Dependency Table" 
border="1"><colgroup><col><col><col><col><col><col><col></colgroup><thead><tr><th
 align="left">Name</th><th align="left">Level</th><th 
align="left">Version</th><th align="left">Description</th><th 
align="left">Explanation</th><th align="left">apt-get package</th><th 
align="left">RPM/Yum package</th><th align="left">BSD 
package</th></tr></thead><tbody><tr><td align="left">Ming</td><td 
align="left">Optional</td><td align="left">0.4.0_beta4 or higher</td><td 
align="left">
+           Ming is an ActionScript compiler.
+         </td><td align="left">
+           Ming is the primary compiler for ActionScript testcases.
+         </td><td align="left">No distribution packages are available.</td><td 
align="left">No distribution packages are available.</td><td align="left">No 
distribution packages are available.</td></tr><tr><td 
align="left">Mtasc</td><td align="left">Optional</td><td align="left">1.12 or 
higher</td><td align="left">
+           Mtasc is an ActionScript compiler.
+         </td><td align="left">
+           Mtasc is used in some tests.
+         </td><td align="left"><code class="filename">mtasc</code></td><td 
align="left">No distribution packages are available.</td><td align="left">No 
distribution packages are available.</td></tr><tr><td align="left">swfc</td><td 
align="left">Optional</td><td align="left">part of swftools 0.8.1</td><td 
align="left">
+           Swfc a swf decompiler.
+         </td><td align="left">
+           Swfc is used in some testcases.
+         </td><td align="left">No distribution packages are available.</td><td 
align="left">No distribution packages are available.</td><td align="left">No 
distribution packages are available.</td></tr><tr><td 
align="left">swfmill</td><td align="left">Optional</td><td align="left"> 
0.2.12</td><td align="left">
+           Swfmill is an XML-based SWF (Shockwave Flash) processing tool.
+         </td><td align="left">
+           Swfmill is used in some testcases.
+         </td><td align="left">No distribution packages are available.</td><td 
align="left">No distribution packages are available.</td><td align="left">No 
distribution packages are available.</td></tr><tr><td 
align="left">Python</td><td align="left">Optional</td><td align="left">2.4 or 
higher</td><td align="left">
+           Python is a scripting language.
+         </td><td align="left">
+           Python is used by part of the testing framework.
+         </td><td align="left"><code class="filename">python</code></td><td 
align="left"><code class="filename">python</code></td><td align="left"><code 
class="filename">python</code></td></tr><tr><td align="left">DejaGnu</td><td 
align="left">Optional</td><td align="left">1.4 or higher</td><td align="left">
+           DejaGnu is a testing framework.
+         </td><td align="left">
+           DejaGnu is used to run multiple tests in an
+           automated fashion.
+         </td><td align="left"><code class="filename">dejagnu</code></td><td 
align="left"><code class="filename">dejagnu</code></td><td align="left"><code 
class="filename">dejagnu</code></td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="docdepend"></a>Documentation Dependencies</h2></div></div></div><p>
+    The following packages are used to build <span 
class="application">Gnash</span>'s documentation.
+  </p><div class="table"><a name="docdeps"></a><p class="title"><b>Table 2.3. 
Documentation Dependency Table</b></p><div class="table-contents"><table 
summary="Documentation Dependency Table" 
border="1"><colgroup><col><col><col><col><col><col><col></colgroup><thead><tr><th
 align="left">Name</th><th align="left">Level</th><th 
align="left">Version</th><th align="left">Description</th><th 
align="left">Explanation</th><th align="left">apt-get package</th><th 
align="left">RPM/Yum package</th><th align="left">BSD 
package</th></tr></thead><tbody><tr><td align="left">Docbook</td><td 
align="left">Required</td><td align="left"> </td><td align="left">
+           <a class="ulink" href="http://http://docbook.sourceforge.net/"; 
target="_top">Docbook</a> is
+           is an industry-standard XML format for technical
+           documentation.  You can download it from
+           <a class="ulink" 
href="http://sourceforge.net/project/showfiles.php?group_id=21935#files"; 
target="_top">http://sourceforge.net/project/showfiles.php?group_id=21935#files</a>.
+         </td><td align="left">
+           <span class="application">Gnash</span> documentation is written in 
Docbook.
+         </td><td align="left">
+           <code class="filename">docbook-utils</code> and <code 
class="filename">docbook-dsssl</code>
+         </td><td align="left">
+           <code class="filename">docbook-dtd41-sgml</code> and <code 
class="filename">docbook-style-dsssl</code>
+         </td><td align="left">docbook</td></tr><tr><td 
align="left">DocBook2X</td><td align="left">Optional</td><td align="left"> 
</td><td align="left">
+           This software package converts Docbook documents to
+           the traditional man page format, GNU Texinfo
+           format, and HTML (via Texinfo) format.  
+           It is available at <a class="ulink" 
href="http://docbook2x.sourceforge.net/"; 
target="_top">http://docbook2x.sourceforge.net/</a>.
+         </td><td align="left">
+           DocBook2X is required to produce HTML and Texinfo
+           formats.
+         </td><td align="left"><code class="filename">docbook2x</code></td><td 
align="left"><code class="filename">docbook2x</code></td><td align="left"><code 
class="filename">docbook2x</code></td></tr><tr><td 
align="left">DocBook-utils</td><td align="left">Optional</td><td align="left"> 
</td><td align="left">
+           This software package converts Docbook documents to
+           the traditional man page format, GNU Texinfo
+           format, and HTML (via Texinfo) format.  
+         </td><td align="left">
+           DocBook-utils is required to produce HTML and Texinfo
+           formats.
+         </td><td align="left"><code 
class="filename">docbook-utils</code></td><td align="left"><code 
class="filename">docbook-utils</code></td><td align="left"><code 
class="filename">docbook-utils</code></td></tr><tr><td 
align="left">Texinfo</td><td align="left">Possibly Required</td><td 
align="left"> </td><td align="left">
+           Texinfo can be used to convert DocBook2X output
+           into GNU info pages.  You can download it from
+           <a class="ulink" href="http://ftp.gnu.org/gnu/texinfo/"; 
target="_top">http://ftp.gnu.org/gnu/texinfo/</a>.
+         </td><td align="left">
+           Texinfo is required if you wish to product GNU info
+           pages.
+         </td><td align="left"><code class="filename">texinfo</code></td><td 
align="left"><code class="filename">texinfo</code></td><td align="left"><code 
class="filename">texinfo</code></td></tr><tr><td align="left">FOP</td><td 
align="left">Optional</td><td align="left">0.20.5</td><td align="left">
+           Formatting Objects Processor is a print formatter
+           driven by XSL formatting objects.  It is a Java
+           application which can output PDF, PCL, PS, SVG, XML,
+           Print, AWT, MIF, and Text.  It is available at
+           <a class="ulink" href="http://xmlgraphics.apache.org/fop/"; 
target="_top">http://xmlgraphics.apache.org/fop/</a>.
+         </td><td align="left">
+           FOP is required for PDF output.
+         </td><td align="left"><code class="filename">fop</code></td><td 
align="left"><code class="filename">fop</code></td><td align="left"><code 
class="filename">fop</code></td></tr><tr><td align="left">Java (j2re)</td><td 
align="left">Possibly Required</td><td align="left"> </td><td align="left">
+           FOP requires Sun's Java runtime (GCJ does not work with
+           FOP).  You can download it from
+           <a class="ulink" href="http://java.sun.com"; 
target="_top">http://java.sun.com</a>.
+         </td><td align="left">
+           Sun's Java runtime (j2re) is required to use FOP.  
+         </td><td align="left">
+           Download the package from <a class="ulink" 
href="http://java.sun.com"; target="_top">Sun</a>.
+         </td><td align="left">
+           Download the package from <a class="ulink" 
href="http://java.sun.com"; target="_top">Sun</a>.
+         </td><td align="left"> </td></tr><tr><td align="left">JAI</td><td 
align="left">Possibly Required</td><td align="left"> </td><td align="left">
+           Sun's Java Advanced Imaging API can be downloaded from
+           <a class="ulink" 
href="http://java.sun.com/products/java-media/jai/iio.html"; 
target="_top">http://java.sun.com/products/java-media/jai/iio.html</a>.
+         </td><td align="left">
+           JAI is required
+           if you wish to include graphics in a PDF file being
+           generated with FOP.
+         </td><td align="left">
+           Download the package from <a class="ulink" 
href="http://java.sun.com/products/java-media/jai/iio.html"; 
target="_top">Sun</a>.
+         </td><td align="left">
+           Download the package from <a class="ulink" 
href="http://java.sun.com/products/java-media/jai/iio.html"; 
target="_top">Sun</a>.
+         </td><td align="left"> </td></tr></tbody></table></div></div><br 
class="table-break"><p>
+    If you install j2re, set the <span 
class="emphasis"><em>JAVA_HOME</em></span>
+    environment variable to the top directory of the j2re
+    installation.  If you encounter problems with the Java
+    installation, you may also need to add this path to the
+    <span class="emphasis"><em>CLASSPATH</em></span> environment variable.
+  </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="configure"></a>Configuring 
Gnash</h2></div></div></div><p>
+    <span class="application">Gnash</span>, like most GNU projects, allows a 
user to select various
+    options before compiling its source code. These options include
+    selecting from the available features, specifying custom paths for
+    installation, and cross compiling support uses <a class="ulink" 
href="http://www.gnu.org/software/autoconf/"; target="_top">GNU Autoconf</a>
+    for configuration.
+  </p><p>
+    If you opted to download the development snapshot
+    of <span class="application">Gnash</span>, the <span 
class="emphasis"><em>configure</em></span> script will
+    not be included.  It can be created by running 
+    <span class="emphasis"><em>autogen.sh</em></span> from the source root 
directory:
+    </p><pre class="programlisting">
+      ./autogen.sh
+    </pre><p>
+    Note that there are some 
+    <a class="link" href="#dependencies" title="Code 
Dependencies">dependencies</a> for
+    autogen.
+  </p><p>
+    All the standard <span class="command"><strong>configure</strong></span> 
options
+    are available.  In addition, <span class="application">Gnash</span> has 
two types of
+    options: those that <a class="link" href="#configfeatures" 
title="Features">enable or disable 
+    features</a>, and
+    those that <a class="link" href="#custompath" title="Specifying Custom 
Paths">specify custom paths for 
+    development packages</a>
+    which are not found during the default search.  A complete
+    list of <span class="emphasis"><em>all</em></span> configuration options, 
including
+    standard ones, can be seen by typing:
+    </p><pre class="programlisting">
+      ./configure --help | less
+    </pre><p>
+    Read further for a more detailed explanation of <span 
class="application">Gnash</span>-specific
+    options.
+  </p><p>
+    The syntax for running <span class="emphasis"><em>configure</em></span> is 
as follows:
+    </p><pre class="programlisting">
+      configure <em class="replaceable"><code>&lt;options&gt;</code></em>
+    </pre><p>
+    The example below shows the <span 
class="command"><strong>configure</strong></span> options
+    which create the smallest working standalone version of <span 
class="application">Gnash</span>.  In
+    this example, <span class="command"><strong>configure</strong></span> is 
being run from the
+    source root directory:
+  </p><pre class="programlisting">
+    ./configure --disable-debugger --disable-cygnal \
+    --disable-plugin --enable-media=ffmpeg --enable-gui=sdl
+  </pre><p>
+    By default, you shouldn't need to supply any options to
+    configure. The configure script will attempt to determine what to
+    build based on the development libraries you have installed. The
+    default configuration for Gnash is both GTK and KDE GUIs, the AGG
+    renderer, and Gstreamer for multimedia support, with no extensions
+    built.
+  </p><p>
+    Being highly portable, <span class="application">Gnash</span> has many 
configuration options
+    available, and not all are supposed to work together. A common
+    mistake when configuring <span class="application">Gnash</span> is to 
supply too many options,
+    overdriving <span class="application">Gnash</span>'s ability to do the 
right thing.
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a 
name="configfeatures"></a>Features</h2></div></div></div><p>
+    Some switches can be used during configuration to enable or disable
+    features of <span class="application">Gnash</span>. Some of the most 
important configuration options
+    are:
+  </p><div class="itemizedlist"><ul type="opencircle"><li 
style="list-style-type: circle"><p>
+       <code class="option">--enable-gui</code> lets you specify your GUI of 
choice.
+       The default option is GTK.
+      </p></li><li style="list-style-type: circle"><p>
+       <code class="option">--enable-renderer</code> allows a renderer to be
+       chosen.  The default renderer is AGG.
+      </p></li><li style="list-style-type: circle"><p>
+       <code class="option">--enable-media</code> permits a media handler to be
+       selected.  The default is Gstreamer. 
+      </p></li></ul></div><p>
+    A complete list of available features follows.
+  </p><div class="table"><a name="tb-config-features"></a><p 
class="title"><b>Table 2.4. Configuration Options - Features</b></p><div 
class="table-contents"><table summary="Configuration Options - Features" 
border="1"><colgroup><col><col></colgroup><thead><tr><th 
align="left">Option</th><th 
align="left">Function</th></tr></thead><tbody><tr><td align="left"><code 
class="option">--enable-debugger</code></td><td align="left">Enable support for 
the Flash debugger. The debugger is
+         mainly of interest to Flash developers, and is still under 
development.</td></tr><tr><td align="left"><code 
class="option">--enable-lirc</code></td><td align="left">
+           Enable support for the LIRC remote control protocol.
+         </td></tr><tr><td align="left"><code 
class="option">--enable-cygnal</code></td><td align="left">
+           Build the Cygnal streaming media server.
+         </td></tr><tr><td align="left"><code 
class="option">--disable-menus</code></td><td align="left">
+           Disable building all the menus for the GUI. THis is used
+           by mobile devices without as much screen space.
+         </td></tr><tr><td align="left"> <code 
class="option">--enable-docbook</code></td><td align="left">  Enable the 
generation of HTML, INFO, and MAN
+         versions of the documentation from the Docbook XML. You will
+         then be able to use <span class="command"><strong>make 
html</strong></span>,
+         <span class="command"><strong>make info</strong></span>, and <span 
class="command"><strong>make
+         man</strong></span> commands. By default, man,info and html pages
+         are generated.</td></tr><tr><td align="left"><code 
class="option">--enable-gui=gtk|sdl|kde|fltk|fb|hildon|alp</code></td><td 
align="left"><p>Select the Graphic User Interface to use (choose one).</p>
+         <div class="variablelist"><dl><dt><span 
class="term">GTK</span></dt><dd><p>
+                 The GTK+ toolkit, which is the default GUI.
+                 Said to interwork particularly well with firefox.
+               </p></dd><dt><span class="term">Hildon</span></dt><dd><p>
+                 The Hildon toolkist is based on GTK+, and is use by
+                 some mobile devices.
+               </p></dd><dt><span class="term">ALP</span></dt><dd><p>
+                 The ALP "Hiker" GUI is used for the Access Linux platform.
+               </p></dd><dt><span class="term">SDL</span></dt><dd><p>
+                 Simple DirectMedia Layer, a simple and portable GUI.
+                 Its sound facilities are used when --enable-media=ffmpeg
+                 regardless of whether it is also in charge of the GUI.
+               </p></dd><dt><span class="term">KDE</span></dt><dd><p>
+                 An interface adapted to the KDE Desktop Environment.
+                 This must be selected when building the Konqueror plugin
+                 "klash". Furthermore, the only renderer that currently
+                 works with KDE is opengl.
+               </p></dd><dt><span class="term">FLTK</span></dt><dd><p>
+                 Fast Light ToolKit, low on resource usage.
+                 Since all build using fltk are now broken, we declare it
+                 "for developers".
+               </p></dd><dt><span class="term">FB</span></dt><dd><p>
+                 The Linux Frame Buffer, also known as /dev/fb0.
+                 AGG is the only renderer that can currently be used
+                 with the framebuffer GUI.
+               </p></dd></dl></div>
+         </td></tr><tr><td align="left"><code 
class="option">--enable-i810-lod-bias</code>
+         </td><td align="left">Enable fix for Intel 810 LOD bias problem. 
Older versions
+         of libMesa on the Intel i810 or i815 graphics processor
+         need this flag or Gnash will core dump. This has been
+         fixed in newer versions (summer 2005) of libMesa.</td></tr><tr><td 
align="left"><code class="option">--enable-media=ffmpeg|gst|none</code>
+         </td><td align="left">  <p>
+           Select the specified media decoder and sound engine.
+           FFMPEG uses the SDL sound engine; GST uses its own.
+           <code class="option">GST</code> is the default decoder.
+         </p>
+         <p>
+           You should only select one media decoder.
+         </p></td></tr><tr><td align="left">
+           <code class="option">--disable-nsapi</code>
+           <code class="option">--enable-nsapi</code>
+         </td><td align="left">Force disable/enable building the NPAPI plugin.
+         By default the Mozilla plugin is built if the GTK gui 
+         is selected.  Specify the 
+         <code class="option">--with-npapi-plugindir=</code> option to specify 
where the
+         plugin should be installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--disable-kparts</code>
+           <code class="option">--enable-kparts</code>
+         </td><td align="left">Force disable/enable building the KPARTS 
plugin. By default the
+         KDE plugin is built if the kde gui is selected. 
+         Specify the <code class="option">--with-kde-plugindir=</code> and
+         <code class="option">--with-kde-servicesdir=</code> options (or more 
generally
+         the <code class="option">--with-kde-pluginprefix=</code> one) to 
specify where the
+         plugin should be installed. The default installation dir is extracted
+         from kde-config.
+         </td></tr><tr><td align="left">
+           <code class="option">--disable-plugins</code>
+         </td><td align="left">Disable build of both kparts and npapi 
plugins</td></tr><tr><td align="left"><code 
class="option">--enable-renderer=opengl|cairo|agg</code>
+         </td><td align="left">Enable support for the a graphics backend. 
Currently
+         only <code class="option">opengl</code> and
+         <code class="option">agg</code> work sufficiently. OpenGL is
+         used when you have hardware accelerated graphics. AGG i
+         used when you do not have hardware accelerated
+         graphics. Typically most desktop machines have OpenGL
+         support, and most embedded systems do not. OpenGl is the
+         default when building Gnash, although the quality of AGG's
+         rendering is currently superior to OpenGL.</td></tr><tr><td 
align="left"><code class="option">--enable-sdk-install</code>
+         </td><td align="left">Enable installing the libraries and headers as 
an SDK.
+         </td></tr><tr><td align="left"><code 
class="option">--disable-shared</code>
+         </td><td align="left">Enable installing the shared libraries and 
headers.
+         Note that the extensions mechanism may not work if shared
+         libraries are disabled.</td></tr><tr><td align="left"><code 
class="option">--enable-strict</code>
+         </td><td align="left">Turn verbose GCC compiler warnings. By default 
only
+         <code class="option">-Wall</code> is used with GCC.</td></tr><tr><td 
align="left"><code class="option">--enable-fps-debug</code>
+         </td><td align="left">Enable FPS debugging code. When this feature is 
compiled in you can use the -f switch of <span class="application">Gnash</span>
+         to have FPS printed at regular intervals.</td></tr><tr><td 
align="left"><code class="option">--enable-write</code></td><td 
align="left">Makes the Mozilla plugin write the currently playing SWF movie to 
<code class="filename">/tmp</code>.
+         </td></tr><tr><td align="left"><code 
class="option">--disable-mit-shm</code>
+         </td><td align="left">Disable support for the MIT-SHM X extensions.
+         Currently support is only available using GTK gui and AGG renderer.
+         Keeping it enabled is not a problem as it will not be used if not
+         available in the current X session.
+         </td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="custompath"></a>Specifying Custom Paths</h2></div></div></div><p>
+    By default, none of these options should be required
+    unless you want <span class="application">Gnash</span> to use a specific 
version of a
+    development package, or if the configure test fails to
+    find a component.  Please <a class="link" href="#bugreport" title="Chapter 
5. Reporting Bugs">report the problem</a> if a
+    configure test fails.
+  </p><p>
+    The following custom path options are available:
+  </p><div class="table"><a name="tb-configure-paths"></a><p 
class="title"><b>Table 2.5. Custom Path Options</b></p><div 
class="table-contents"><table summary="Custom Path Options" 
border="1"><colgroup><col><col></colgroup><thead><tr><th 
align="left">Option</th><th 
align="left">Function</th></tr></thead><tbody><tr><td align="left">
+           <code class="option">--x-includes=DIR</code>
+         </td><td align="left">
+           X include files are in DIR.
+         </td></tr><tr><td align="left">
+           <code class="option">--x-libraries=DIR</code>
+         </td><td align="left">
+           X library files are in DIR.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-libxml=PFX</code>
+         </td><td align="left">
+           Prefix to where libxml is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-libxml-libraries=DIR</code>
+         </td><td align="left">
+           Directory where libxml library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-libxml-includes=DIR</code>
+         </td><td align="left">
+           Directory where libxml header files are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-docbook=DIR</code>
+         </td><td align="left">
+           Directory where the DocBook style-sheets are installed.        
+         </td></tr><tr><td align="left">
+           <code class="option">--with-sdl-prefix=PFX</code>
+         </td><td align="left">
+           Prefix where SDL is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-zlib-incl</code>
+         </td><td align="left">
+           Directory where zlib header is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-zlib-lib</code>
+         </td><td align="left">
+           Directory where zlib library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-jpeg-incl</code>
+         </td><td align="left">
+           Directory where jpeg header is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-jpeg-lib</code>
+         </td><td align="left">
+           Directory where jpeg library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-png-incl</code>
+         </td><td align="left">
+           Directory where png header is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-png-lib</code>
+         </td><td align="left">
+           Directory where png library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-qt-dir</code>
+         </td><td align="left">
+           Directory where QT is installed. This is only used by
+           the Klash plugin.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-qt-includes</code>
+         </td><td align="left">
+           Directory where the QT header files are installed. This
+           is only used by the Klash plugin.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-qt-libraries</code>
+         </td><td align="left">
+           Directory where the QT libraries are installed. This is
+           only used by the Klash plugin.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-npapi-plugindir</code>
+         </td><td align="left">
+           This is the directory to install the NPAPI (Mozilla) plugin in.
+           By default it goes to ~/.mozilla/plugins.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-kde-pluginprefix</code>
+         </td><td align="left">
+           This option sets the default install dir for all KPARTS (kde) files.
+           The plugin will be installed in PREFIX/lib/kde3, use
+           <code class="option">-with-kde-plugindir</code> to override. The 
service file in 
+           PREFIX/share/services, use <code 
class="option">--with-kde-servicesdir</code> to
+           override. The config file in PREFIX/share/config, use
+           <code class="option">--with-kde-configdir</code> to override. The
+           appdata file in PREFIX/share/apps/klash, use
+           <code class="option">--with-kde-appsdatadir</code> to override. 
+         </td></tr><tr><td align="left">
+           <code class="option">--with-kde-plugindir</code>
+         </td><td align="left">
+           This is the directory to install the KPARTS (kde) plugin in.
+           By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install module --expandvars,
+           or $(prefix)/share/services if kde-config is not found.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-kde-servicesdir</code>
+         </td><td align="left">
+           This is the directory to install the KPARTS (kde) service in.
+           By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install services --expandvars,
+           or $(libdir)/kde3 if kde-config is not found.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-kde-configdir</code>
+         </td><td align="left">
+           This is the directory to install the KPARTS (kde) config files in.
+           By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install config --expandvars,
+           or $(prefix)/share/config if kde-config is not found.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-kde-appsdatadir</code>
+         </td><td align="left">
+           This is the directory to install the KPARTS (kde) application data 
files in.
+           By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install data --expandvars,
+           or $(prefix)/share/apps if kde-config is not found.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-ming</code>
+         </td><td align="left">
+           Ming is used to build test cases, but not by the Gnash
+           player itself.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-ogg_incl</code>
+         </td><td align="left">
+           Directory where the libogg headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-ogg_lib</code>
+         </td><td align="left">
+           Directory where the libogg library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-gstreamer-incl</code>
+         </td><td align="left">
+           Directory where the Gstreamer headers are
+           installed. Gstreamer version 0.10 or greater must be used.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-gstreamer-lib</code>
+         </td><td align="left">
+           Directory where the Gstreamer library is
+           installed. Gstreamer version 0.10 or greater must be used.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-opengl-includes</code>
+         </td><td align="left">
+           Directory where OpenGL (libMesa) headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-opengl-lib</code>
+         </td><td align="left">
+           Directory where the OpenGL (libMesa) library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-glext-incl</code>
+         </td><td align="left">
+           Directory where GtkGlExt headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-glext-lib</code>
+         </td><td align="left">
+           Directory where the GtkGlExt library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-gtk2-incl</code>
+         </td><td align="left">
+           Directory where the Gtk2 headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-gtk2-lib</code>
+         </td><td align="left">
+           Directory where the Gtk2 library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-cairo_incl</code>
+         </td><td align="left">
+           Directory where the Cairo headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-cairo-lib</code>
+         </td><td align="left">
+           Directory where the Cairo library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-glib-incl</code>
+         </td><td align="left">
+           Directory where the Glib headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-glib-lib</code>
+         </td><td align="left">
+           Directory where the Glib library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-pango-incl</code>
+         </td><td align="left">
+           Directory where the Pango headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-pango-lib</code>
+         </td><td align="left">
+           Directory where the Pango library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-atk-incl</code>
+         </td><td align="left">
+           Directory where the ATK headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-atk-lib</code>
+         </td><td align="left">
+           Directory where the ATK library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-pthread-incl</code>
+         </td><td align="left">
+           Directory where the Pthread headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-pthread-lib</code>
+         </td><td align="left">
+           Directory where the Pthread library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-agg-incl</code>
+         </td><td align="left">
+           Directory where the AGG (Antigrain) headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-agg-lib</code>
+         </td><td align="left">
+           Directory where the AGG (Antigrain) library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-ffmpeg-incl</code>
+         </td><td align="left">
+           Directory where the FFMPEG headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-ffmpeg-lib</code>
+         </td><td align="left">
+           Directory where the FFMPEG library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-boost-incl</code>
+         </td><td align="left">
+           Directory where the Boost headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-boost-lib</code>
+         </td><td align="left">
+           Directory where the Boost library is installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-curl-incl</code>
+         </td><td align="left">
+           Directory where the libCurl headers are installed.
+         </td></tr><tr><td align="left">
+           <code class="option">--with-curl-lib</code>
+         </td><td align="left">
+           Directory where the libCurl library is installed.
+         </td></tr></tbody></table></div></div><br 
class="table-break"></div></div><p>
+    Once you have <span class="application">Gnash</span> configured, you are 
ready to build the code.  <span class="application">Gnash</span> is built using
+    <span class="emphasis"><em>GNU make</em></span>.
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="compile"></a>Compiling the 
Code</h2></div></div></div><p>
+      The most basic way to compile code is simply:
+      </p><pre class="programlisting">
+       make
+      </pre><p>
+      If the compilation ends with an error, check the output of 
+      <span class="emphasis"><em>configure</em></span> and ensure that you are 
not missing 
+      any required prerequisites.  The output of <span 
class="command"><strong>make</strong></span> can be verbose; you may wish to 
pipe the output to a file.
+    </p><p>
+      The variables used by <span class="command"><strong>make</strong></span> 
can be redefined when
+      the program is invoked, if you desire it.   The most interesting flags
+      are <span class="emphasis"><em>CFLAGS</em></span> and <span 
class="emphasis"><em>CXXFLAGS</em></span>,
+      which are often used to enable debugging or turn of optimization.
+      The default value for both of these variables is
+      <span class="emphasis"><em>-O2 -g</em></span>.  A list of influential 
+      environment variables can be seen in the configuration help:
+    </p><pre class="programlisting">./configure --help</pre><p>
+      In the following example, debugging is enabled and optimization is
+      disabled:
+    </p><pre class="programlisting">make CFLAGS=-g CXXFLAGS=-g</pre></div><div 
class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" 
style="clear: both"><a name="processdoc"></a>Creating the 
Documentation</h2></div></div></div><p>
+      By default, documentation is not built when you
+      <a class="link" href="#install" title="Installation">install</a> <span 
class="application">Gnash</span>.  This is because
+      there are a number of <a class="link" href="#docdepend" 
title="Documentation Dependencies">dependencies 
+      for the documentation</a>.  Documentation is built when it
+      is specified with a specific target in the generated 
+      <span class="command"><strong>Makefile</strong></span> in the <code 
class="filename">doc/C</code>
+      sub-directory.  If you type <span class="command"><strong>make 
install</strong></span> in
+      this directory, all documents will be built.
+    </p><p>
+      You must specify a target output format when you wish to create
+      documentation.  The available output formats are: <span 
class="command"><strong>html</strong></span>,
+      <span class="command"><strong>pdf</strong></span>, <span 
class="command"><strong>info</strong></span>, 
+      <span class="command"><strong>man</strong></span>, and <span 
class="command"><strong>alldocs</strong></span>.  
+      It is also possible to output <span class="command"><strong>GNOME 
help</strong></span> if
+      the <a class="link" href="#configfeatures" title="Features">configure 
option</a>
+      <code class="option">--enable-ghelp</code> was used.  
+      The <span class="command"><strong>alldocs</strong></span> target will 
build all output formats
+      except <span class="emphasis"><em>GNOME help</em></span>.
+      For example, to create HTML output, type:
+      </p><pre class="programlisting">
+       make html
+      </pre><p>
+    </p><p>
+      <span class="application">Gnash</span> also uses <a class="ulink" 
href="http://www.stack.nl/~dimitri/doxygen/index.html"; 
target="_top">Doxygen</a> to produce <span class="emphasis"><em>HTML</em></span>
+      documentation of <span class="application">Gnash</span> internals.  You 
must have Doxygen installed
+      to produce this documentation, which is built from the
+      <code class="filename">doc</code> directory with the command (documents
+      will be placed in the subdirectory <code 
class="filename">apidoc/html</code>):
+      </p><pre class="programlisting">
+       make apidoc
+      </pre><p>
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="runtests"></a>Running the Tests</h2></div></div></div><p>
+      Before beginning the potentially lengthy install, it is wise to
+      test the installation.  If a test fails, please report it by
+      following the <a class="link" href="#bugreport" title="Chapter 5. 
Reporting Bugs">instructions for
+      reporting a bug</a>. 
+    </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="dejagnu"></a>Using DejaGnu</h3></div></div></div><p>
+       
+       The easiest way to run <span class="application">Gnash</span>'s test 
suite is to install
+       <span class="emphasis"><em><a class="ulink" 
href="http://www.gnu.org/software/dejagnu"; 
target="_top">DejaGnu</a></em></span>.
+       After installing DejaGnu, run:
+       </p><pre class="programlisting">
+         make check
+       </pre><p>
+      </p><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 
class="title"><a name="testing_verbosity"></a>Increasing 
Verbosity</h5></div></div></div><p>
+         If you encounter a problem with a test, increasing the
+         verbosity may make the issue easier to spot.
+         Additional details are visible when 
+         <span class="emphasis"><em>RUNTESTFLAGS</em></span> are used to add 
the 
+         <span class="emphasis"><em>verbose</em></span> and <span 
class="emphasis"><em>all</em></span> options.
+         The <code class="option">verbose</code> option prints more 
information about the testing process, while
+         the <code class="option">all</code> option includes details on 
passing tests.  
+         </p><pre class="programlisting">
+           make check RUNTESTFLAGS="-v -a"
+         </pre><p>
+       </p></div><div class="sect4" lang="en"><div 
class="titlepage"><div><div><h5 class="title"><a 
name="running_some_tests"></a>Running Some Tests</h5></div></div></div><p>
+         It is possible to run just a single test, or 
+         a subdirectory of tests, by specifying the directory or 
+         compiled test file.
+       </p><p>
+         Some tests rely on <span 
class="emphasis"><em>testsuite/Dejagnu.swf</em></span>,
+         which in turn relies on <span class="emphasis"><em>Ming</em></span>.
+         This file is created when you run <span class="command"><strong>make 
check</strong></span> for the entire
+         testsuite, and can also be created on demand:
+         </p><pre class="programlisting">
+           make -C testsuite Dejagnu.swf 
+         </pre><p>
+       </p><p>
+         In this example, the <span 
class="command"><strong>clip_as_button2</strong></span> test is compiled and
+         run:
+         </p><pre class="programlisting">
+           make -C testsuite/samples clip_as_button2-TestRunner 
+           cd testsuite/samples &amp;&amp; ./clip_as_button2-TestRunner
+         </pre><p>
+         This creates and runs all the tests in the directory
+         <code class="filename">movies.all</code>:
+         </p><pre class="programlisting">
+           make -C testsuite/movies.all check
+         </pre><p>
+       </p></div></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="manually"></a>Running 
The Tests Manually</h3></div></div></div><p>
+       You may also run test cases by hand, which can be useful if you
+       want to see all the debugging output from the test case.  Often
+       the messages which come from deep within <span 
class="application">Gnash</span> are most useful for
+       development.
+      </p><p>
+       The first step is to compile the test case, which can be done
+       with <code class="filename">make XML-v#.swf</code> where the '#' is 
replaced
+       with the <span class="emphasis"><em>target</em></span> SWF version or 
versions.  
+       For example:
+       </p><pre class="programlisting">
+         make XML-v{5,6,7,8}.swf
+       </pre><p>
+      </p><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 
class="title"><a name="manual_compiled_tests"></a>Movie 
tests</h5></div></div></div><p>
+         This creates a Flash movie version of the test case, which
+         can be run with a standalone Flash player.  For instance,
+         the target for SWF version 6 could be run with <span 
class="application">Gnash</span>:
+         </p><pre class="programlisting">
+           gnash -v XML-v6.swf
+         </pre><p>
+       </p></div><div class="sect4" lang="en"><div 
class="titlepage"><div><div><h5 class="title"><a 
name="manual_actionscript_tests"></a>ActionScript Unit 
Tests</h5></div></div></div><p>
+         Unit tests for ActionScript classes in <span 
class="command"><strong>testsuite/actionscript.all</strong></span>
+         are run without a graphical display:
+         </p><pre class="programlisting">
+           gprocessor -v XML-v6.swf
+         </pre><p>
+       </p></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="install"></a>Installation</h2></div></div></div><p>
+    Now that <span class="application">Gnash</span> has been compiled and 
tested, use the following command to install it:
+    </p><pre class="programlisting">
+      make install
+    </pre><p>
+    The above command installs the standalone player.  If the correct
+    files were found by <span 
class="command"><strong>configure</strong></span> and if the
+    <code class="option">--disable-plugin</code> option was not specified, the
+    <span class="application">Gnash</span> browser plugin is also installed. 
+  </p><p>
+    <span class="application">Gnash</span> installs a number of <a 
class="link" href="#libinstall" title="Libraries">libraries</a>,
+    namely: <span class="emphasis"><em>libgnashbase</em></span>,
+    <span class="emphasis"><em>libgnashamf</em></span>, <span 
class="emphasis"><em>libgnashmedia</em></span>,
+    <span class="emphasis"><em>libserver</em></span>, and <span 
class="emphasis"><em>libgnashplugin</em></span>.
+    <a class="link" href="#appinstall" title="Executables">Executables</a>
+    consist of the (optional) plugin, <code class="filename">gprocessor</code>,
+    <code class="filename">cygnal</code>,  <code 
class="filename">dumpshm</code>,
+    <code class="filename">soldumper</code>, and <code 
class="filename">gnash</code>.
+    <a class="link" href="#docinstall" title="Documentation">Documentation</a> 
may also be installed.
+    The installation location is controlled with the
+    <span class="emphasis"><em>--prefix</em></span> <a class="link" 
href="#custompath" title="Specifying Custom Paths">configure
+    option</a>, except for plugins, which are explicitly set with
+    <span class="emphasis"><em>--plugin-dir</em></span>.
+  </p><p>
+    Note that if you are using a single file-system <span 
class="emphasis"><em>NFS</em></span>
+    mounted to multiple platforms, the 
+    <a class="link" href="#custompath" title="Specifying Custom 
Paths">configuration option</a> 
+    <span class="emphasis"><em>--exec-prefix</em></span> may be used to 
specify where
+    platform-dependent executables and libraries are installed.
+  </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="libinstall"></a>Libraries</h3></div></div></div><p>
+      Installed libraries are located in 
+      <code class="filename">/usr/local/lib</code> by default.
+      If the <span class="emphasis"><em>--prefix</em></span> option was used 
during the
+      configuration step, the libraries will
+      be installed in the directory <code class="filename">lib</code> inside 
the
+      path you specified.  If the libraries are stored in a non-standard
+      location, you must identify the path in one of two ways.
+    </p><p>
+      The traditional way to do this on UNIX
+      platforms is to set the <span 
class="emphasis"><em>LD_LIBRARY_PATH</em></span> variable
+      to the path plus <code class="filename">/lib</code>.  For example, if you
+      installed in <code class="filename">/home/gnash</code>, the 
+      <span class="emphasis"><em>LD_LIBRARY_PATH</em></span> path would be
+      <code class="filename">/home/gnash/lib</code>.  Multiple paths are 
delimited
+      with a colon (':').
+    </p><p>
+      GNU/Linux allows the custom path to be added to
+      <code class="filename">/etc/ld.so.conf</code>.  After adding the path,
+      run <span class="emphasis"><em>ldconfig</em></span> as root to update 
the runtime
+      cache.
+    </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="appinstall"></a>Executables</h3></div></div></div><p>
+      The Mozilla plugin is built from headers (the Mozilla SDK) provided with 
Gnash and
+      does not need extra development packages to be installed. By default, the
+      plugin is installed to <code 
class="filename">~/.mozilla/plugins/</code>. To enable
+      the plugin for other users, copy the file <code 
class="filename">libgnashplugin.so</code>
+      to <code class="filename">.mozilla/plugins/</code> in their home 
directory.
+      You may also specify the plugin installation directory by using the 
+      <code class="option">--with-plugindir</code> <a class="link" 
href="#custompath" title="Specifying Custom Paths">option 
+      at configuration time</a>.
+    </p><p>
+      These defaults are likely to change in future versions of Gnash.
+    </p><p>
+      The remaining executables are installed in the <code 
class="filename">bin</code>
+      subdirectory of the directory specified by during configuration.
+      If no path was specified, the default is 
+      <code class="filename">/usr/local/bin</code>.
+    </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="docinstall"></a>Documentation</h3></div></div></div><p>
+      Documentation is not built by default; please refer to the 
+      <a class="link" href="#processdoc" title="Creating the 
Documentation">section on documentation</a> for
+      more information on building documentation.
+    </p><p>
+      <span class="command"><strong>man</strong></span> and <span 
class="command"><strong>info</strong></span> 
+      are installed in <code class="filename">/usr/local/share/man</code>
+      and <code class="filename">/usr/local/share/info</code> respectively, 
unless
+      the <code class="option">--mandir</code> or <code 
class="option">--infodir</code>
+      <a class="link" href="#custompath" title="Specifying Custom 
Paths">configuration options</a> are used.
+    </p><p>
+      <span class="emphasis"><em>GNOME help</em></span> documentation uses the 
directory
+      <code class="filename">/usr/local/share/gnash/doc/gnash/C/</code> by 
default.
+      A configuration file in the <span class="application">Gnash</span> 
source tree,
+      <code class="filename">doc/C/gnash.omf</code> is used to specify under
+      which menu item <span class="application">Gnash</span> appears in the 
<span class="emphasis"><em>GNOME help</em></span>
+      system.
+    </p></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="cross"></a>Cross Configuring</h2></div></div></div><p>
+    To cross configure and compile <span class="application">Gnash</span>, 
begin by building a target system
+    on your workstation.  This includes cross compilers for the target
+    architecture, and some system headers. 
+    You will also need to cross compile all the <a class="link" 
href="#docdepend" title="Documentation Dependencies">dependencies  
+    </a> normally needed to build Gnash. This can on occasion be a
+    daunting process, as not all libraries will cross configure and cross
+    compile. There is more information about cross compiling all the
+    dependant packages on the <a class="ulink" href="http://www.gnashdev.org"; 
target="_top">http://www.gnashdev.org</a> web
+    site.
+  </p><p>
+    If you need to build your own tool chain, that is beyond the scope
+    of this manual. There are various resources on the web for howto's
+    on building GCC based cross toolchains. Two popular sites are
+    <a class="ulink" href="http://frank.harvard.edu/~coldwell/toolchain/"; 
target="_top">http://frank.harvard.edu/~coldwell/toolchain/</a>
+    and <a class="ulink" href="http://www.kegel.com/crosstool/"; 
target="_top">http://www.kegel.com/crosstool/</a>. This
+    can also be a very time consuming and frustrating process, even
+    for experienced developers.
+  </p><p>
+    Because the process of building your own cross tool chain can be
+    harder than one may wish, there are several other cross
+    development environments that simulate a native environment to
+    make it easier to develop. These also let you develop for both
+    native and cross builds. Several popular ones are 
+    <a class="ulink" 
href="http://www.access-company.com/products/linux/alp.html"; target="_top">
+    Access Linux Platform</a>, 
+    <a class="ulink" href="http://www.scratchbox.org/"; target="_top">
+    Scratchbox</a>, 
+    <a class="ulink" href="http://www.openembedded.org/"; target="_top">
+    Open Embedded</a>, 
+    <a class="ulink" href="http://maemo.org/"; target="_top">
+    Maemo</a>.
+  </p><p>
+    To build for an ARM based system on an x86 based systems,
+    configure like this using the traditional style cross toolchain,
+    configure like this:
+  </p><pre class="programlisting">
+    ../../gnash/configure --build=i686-pc-linux-gnu
+    --host=arm-linux --prefix=/usr/local/arm/oe --disable-nsapi
+    --disable-kparts --enable-gui=fb --enable-renderer=agg
+    --disable-shared --disable-menus
+    
+  </pre><p>
+    The important configuration options are the ones which specify the
+    architecture for the build:
+  </p><div class="variablelist"><dl><dt><span 
class="term">--target</span></dt><dd><p>
+         The target architecture, where the final executables are expected
+         to run.
+       </p></dd><dt><span class="term">--host</span></dt><dd><p>
+         The host architecture, where the executables are expected
+         to run.  Usually this is the same as the <span 
class="emphasis"><em>--target</em></span>,
+         except when building a compiler as a Canadian Cross.  In this
+         case, you might build a cross compiler on a UNIX system which
+         runs on a win32 machine, producing code for a third architecture,
+         such as ARM.  In this example, <span 
class="emphasis"><em>--target</em></span> would
+         be 'arm-unknown-linux-gnu', while <span 
class="emphasis"><em>--host</em></span> would 
+         be 'win32'.
+       </p></dd><dt><span class="term">--build</span></dt><dd><p>
+         This is the system the build is running on.
+       </p></dd></dl></div><p>
+    The following example of <span class="emphasis"><em>configure</em></span> 
builds for an
+    ARM system on an x86 system.  It was run after an ARM system was built
+    in <code class="filename">/usr/arm</code> and other required libraries 
were 
+    cross compiled.
+    </p><pre class="programlisting">
+      ./configure -target=arm-unknown-linux-gnu --prefix=/usr/arm \
+      --host=arm-unknown-linux-gnu --build=i686-pc-linux-gnu --disable-plugin
+    </pre><p>
+  </p></div></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="internals"></a>Chapter 
3. Software Internals</h2></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a href="#tour">A Tour of 
Gnash</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="#The%20Libraries">The Libraries</a></span></dt><dt><span class="sect2"><a 
href="#apps">The Applications</a></span></dt><dt><span class="sect2"><a 
href="#plugin">The Plugin</a></span></dt><dt><span class="sect2"><a 
href="#logging">The Debug Logging System</a></span></dt></dl></dd><dt><span 
class="sect1"><a href="#soundhandlers">Sound handling in 
Gnash</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="#soundtypes">Sound types</a></span></dt><dt><span class="sect2"><a 
href="#soundparsing">Sound parsing</a></span></dt><dt><span class="sect2"><a 
href="#soundplayback">Sound playback</a></span></dt><dt><span class="sect2"><a 
href="#sdlsound">The SDL sound backend</a></span></dt><dt><span 
class="sect2"><a href="#gstreamer">The Gstreamer 
backend</a></span></dt><dt><span class="sect2"><a href="#audio-future">Future 
audio backends</a></span></dt><dt><span class="sect2"><a 
href="#gstreamer-details">Detailed description of the Gstreamer 
backend</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#testing">Testing </a></span></dt><dd><dl><dt><span class="sect2"><a 
href="#testtools">Testing Tools</a></span></dt><dt><span class="sect2"><a 
href="#testcases">Test Cases</a></span></dt><dt><span class="sect2"><a 
href="#writeastests">Writing ActionScript Tests</a></span></dt><dt><span 
class="sect2"><a href="#writemingtests">Writing Ming-based self-contained SWF 
tests</a></span></dt><dt><span class="sect2"><a 
href="#writing_dejagnu_so_tests">Writing self-contained SWF tests with other 
compilers</a></span></dt><dt><span class="sect2"><a 
href="#writing_test_runners">Writing Test 
Runners</a></span></dt></dl></dd></dl></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="tour"></a>A Tour of Gnash</h2></div></div></div><p>
+      The top level of Gnash has several libraries, <span 
class="emphasis"><em>libgnashbase</em></span>,
+      <span class="emphasis"><em>libgnashgeo</em></span>, <span 
class="emphasis"><em>libgnashserver</em></span>,
+      <span class="emphasis"><em>libgnashasobjs</em></span> and
+      <span class="emphasis"><em>libgnashbackend</em></span>. There are 
several utility programs 
+      included for debug parsing and processing of Flash movie files,
+      and other useful utilitis for examining local Shared Objects and
+      sniffingh LocalConnections.
+    </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="The%20Libraries"></a>The 
Libraries</h3></div></div></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="libbase"></a>libgnashbase</h4></div></div></div><p>
+         Libgnashbase contains support classes used by the rest of the
+         code.This library has no dependencies on any of the other
+         <span class="application">Gnash</span> libraries.
+       </p><p>
+         <span class="application">Gnash</span> makes heavy use of smart 
pointers, so memory allocations
+         are freed up automatically by the interpreter. Both STL and
+         Boost smart pointers are used.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="libgnashgeo"></a>libgnashgeo</h4></div></div></div><p>
+         Libgnashgeo contains code for device independent graphics routines.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="libgnashgui"></a>libgnashgui</h4></div></div></div><p>
+         Libgnashgui contains code for a portable GUI class that
+         supports using GTK2, a framebuffer, SDL, or KDE, FLTK, or Aqua.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="libgnashserver"></a>libgnashserver</h4></div></div></div><p>
+         Libgnashserver is the guts of the interpreter itself. This is where
+         the main code for the interpreter lives. Includes in
+         libserver are the two support libraries for the parser and
+         the core of the virtual machine.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="libgnashasobjs"></a>libgnashasobjs</h4></div></div></div><p>
+         Libgnashasobjs contains all the ActionScript classes used by
+         the interpreter.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="libgnashamf"></a>libgnashamf</h4></div></div></div><p>
+         AMF is the data format used internally by SWF files. This is
+         Gnash's support library to handle AMF data. This is used by
+         the ActionScript classes SharedObject and
+         LocalConnection. This is also used by the NetStream class
+         when using thre RTMP streaming network protocol.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="libgnashbackend"></a>libgnashbackend</h4></div></div></div><p>
+         Libgnashbackend is a library containing the rendering
+         code that glues this display to the Gnash. Supported
+         rendering backends are OpenGL, Cairo, and AGG.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="libgnashpluin"></a>libgnashplugin</h4></div></div></div><p>
+         Libgnashplugin is the Mozilla/Firefox plugin.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="libklashpart"></a>libklashpart</h4></div></div></div><p>
+         Libklashpart is the Konqueror plugin.
+       </p></div></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="apps"></a>The 
Applications</h3></div></div></div><p>
+       There are currently a few standalone programs in Gnash,
+        which serve to either assist with Gnash development or play flash
+        movies.
+      </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="Gnash"></a>The Standalone 
Player</h4></div></div></div><p>
+         This is the standalone OpenGL back-end used to play
+         movies. There are several command-line options and keyboard
+         control keys used by Gnash.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="processor"></a>Gprocessor</h4></div></div></div><p>
+         Gprocessor is used to print out the actions (using the -va
+         option) or the parsing (using the -vp option) of a flash
+         movie. It is also used to produce the <span 
class="emphasis"><em>.gsc</em></span>
+         files that Gnash uses to cache data, thereby speeding up the
+         loading of files.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="soldumper"></a>SOLdumper</h4></div></div></div><p>
+         SOLDumper is a utility program used to find and dump the
+         content of <span class="emphasis"><em>Local Shared 
Objects</em></span>, also
+         called "Flash Cookies" by some.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="dumpshm"></a>Dumpshm</h4></div></div></div><p>
+         Dumpshm is a program used to find and dump the contents of
+         the <span class="emphasis"><em>LocalConnection</em></span> shared 
memory segment.
+       </p></div></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="plugin"></a>The 
Plugin</h3></div></div></div><p>
+       The plugin is designed to work within Mozilla or Firefox,
+       although there is Konqueror support as well. The plugin uses
+       the Mozilla NSAPI plugin API to be cross platform, and is
+       portable, as well as being well integrated into Mozilla based
+       browsers.
+      </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="pluginstatus"></a>Current 
Status</h4></div></div></div><p>
+         As of March 30, 2006, the plugin works! This works in a
+         fashion similar to MozPlugger in that the standalone player
+         is used instead of using a thread. This gets around the
+         issue of having to maintain a separate player to support the
+         plugin. It also gets around the other issues that Gnash
+         itself is not thread safe at this time.
+       </p><p>
+         As of Jan, 2007, streaming video, ala "YouTube"
+         works, along with other video sharing sites.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a name="gui"></a>GUI 
Support</h4></div></div></div><p>
+         Any plugin that wants to display in a browser window needs
+         to be tied into the windowing system of the platform being
+         used. On GNU/Linux systems, Firefox is a GTK2+ application.
+         There is also KDE support through the use of the Klash
+         plugin.
+       </p><p>
+         Gnash can use either several different GUI toolkits to create the 
window,
+         and to handle events for the standalone player.
+       </p><p>
+         The SDL version is more limited, but runs on all
+         platforms, including win32. It has no support for event
+         handling, which means mouse clicks, keyboard presses, and
+         window resizing doesn't work. I personally find the default
+         event handler slow and unresponsive. Gnash has support to
+         use fast events, (currently not enabled) which is an SDL
+         hack using a background thread to pump events into the SDL
+         event queue at a much higher rate.
+       </p><p>
+         There are a variety of development libraries that build a GUI
+         widget system on top of SDL and OpenGL. The use of these to
+         add menus and dialog boxes to the SDL version is being
+         considered. 
+       </p><p>
+         The GTK support is currently the most functional, and the
+         best integrated into Firefox. The performance of this
+         version is better than the SDL version because of the more
+         efficient event handling within GTK. For the best end user
+         experience, use the GTK enabled version.
+       </p><p>
+         GTK also allows Gnash to have menus and dialog
+         boxes. Currently this is only being utilized in a limited
+         fashion for now. There is a right mouse button menu that
+         allows the user to control the movie being player the same
+         way the existing keyboard commands do.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="mozplugger"></a>Mozplugger</h4></div></div></div><p>
+         <a class="ulink" href="http://mozplugger.mozdev.org/"; 
target="_top">Mozplugger</a> is a
+         <span class="emphasis"><em>Mozilla/Firefox</em></span> plugin that 
uses external
+         programs to play video, audio, and other multimedia content
+         in the browser. With some support added to the external
+         application, it's possible to force the external program to
+         use the internal window in the browser where this plugin is
+         supposed to display. This enables one to then run the
+         standalone player and display its output in the browser.
+       </p><p>
+         While this is not an optimal solution, it does enable one to
+         use Gnash as the flash player when browsing. The main issue
+         appears to be that the Flash movie being played doesn't get
+         any mouse or keyboard input. That may be a mozplugger
+         configuration issue, however.
+       </p><p>
+         Use of MozPlugger is obsolete now that the Gnash plugin
+         works. Still, this may be useful still on some platforms.
+       </p><p>
+         Add this to your <span 
class="emphasis"><em>$(HOME)/.mozilla/mozpluggerrc</em></span>
+         file to enable this:
+
+         </p><pre class="programlisting">
+           application/x-shockwave-flash:swf:Shockwave Gnash
+        nokill embed noisy ignore_errors hidden fill swallow(Gnash) loop: 
gnash -v "$file" -x $window
+        : gnash -v "$file" -x $window
+         </pre><p>
+       </p><p>
+         Once this is added, you must delete the
+         <span 
class="emphasis"><em>$(HOME)/.mozilla/firefox/pluginreg.dat</em></span> file to
+         force Firefox to register the plugins again. This is an
+         ASCII text file, so if the patch has been added correctly,
+         you'll see an entry for <span class="emphasis"><em>swf</em></span> 
files after it is
+         recreated. You will need to restart Firefox to recreate this
+         file.
+       </p><p>
+         This file is not recreated immediately when restarting
+         Firefox, but waits till the first time a plugin is used. You
+         can force creation of this file by typing
+         <span class="emphasis"><em>about:plugins</em></span> into the URL 
entry of the browser
+         window. The output will also contain information about the
+         mozplugger. You should see an entry for Gnash now.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="Klash"></a>Klash</h4></div></div></div><p>
+         Klash is MozPlugger type support for KDE's Konqueror web
+         browser. Klash makes Gnash a <span 
class="emphasis"><em>kpart</em></span>, so it's
+         integrated into KDE better than when using MozPlugger. Klash
+         uses the standalone player, utilizing Gnash's "-x" window
+         plugin command line option.
+       </p><p>
+         By default, Klash is not built. To enable building Klash,
+         use the <span class="emphasis"><em>--enable-klash</em></span> option 
when
+         configuring. Other than installing, there is nothing else
+         that needs to be done to install Klash.
+       </p></div></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="logging"></a>The Debug 
Logging System</h3></div></div></div><p>
+    Gnash supports a debug logging system which supports both C and C++
+    natively. This means you can use both <span 
class="emphasis"><em>printf()</em></span> style
+    debug messages and C++ <span class="emphasis"><em>iostreams</em></span> 
style, where you can
+    print C++ objects directly as you would when using
+    <span class="emphasis"><em>cout</em></span>.
+  </p><p>
+    In the beginning, Gnash only supported the C API for debug
+    logging, so it is the most heavily used in Gnash. This API was used in
+    the <span class="emphasis"><em>log_msg()</em></span> and <span 
class="emphasis"><em>log_error()</em></span> functions,
+    and used a callback to set them up.
+  </p><p>
+    If a filename is not specified at object construction time, a
+    default name of <span class="emphasis"><em>gnash-dbg.log</em></span> is 
used. If Gnash is
+    started from the command line, the debug log will be created in
+    the current directory. When executing Gnash from a launcher under
+    <span class="emphasis"><em>GNOME</em></span> or <span 
class="emphasis"><em>KDE</em></span> the debug file goes in your
+    home directory, since that's considered the current directory.
+  </p><p>
+    There is common functionality between using the C or C++
+    API. Optional output is based on flags that can be set or
+    unset. Multiple levels of verbosity are supported, so you can get
+    more output by supplying multiple <span 
class="emphasis"><em>-v</em></span> options on the
+    command line. You can also disable the creation of the debug log.
+  </p><p>
+    Currently the use of the C++ API for logging is discouraged, do to
+    performance issues.and the generic log_msg() has been replaced by
+    more spcific function calls to allow more control of what gets
+    displayed and logged.
+  </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="capi"></a>Logging System C API</h4></div></div></div><p>
+      These functions are clones of the originals as they were used
+      for Gnash. These function the same as always except output can
+      be logged to disk now as well. These currently print no
+      timestamp with the output, which is the older functionality. As
+      these functions are implemented on top of the C++ API now, they
+      can be used without corrupting the output buffers.
+    </p><div class="variablelist"><dl><dt><span class="term">log_error(const 
char* fmt, ...)</span></dt><dd><p>
+           Display an error message if verbose output is enabled. By
+           default the error messages are always written to the disk
+           file, but optionally displayed in the terminal.
+         </p></dd><dt><span class="term">void log_unimpl</span></dt><dd><p>
+           Displays a warning to the user about missing Gnash features.
+           We expect all calls to this function to disappear over time, as we
+           implement those features of Flash.
+         </p></dd><dt><span class="term">void log_trace</span></dt><dd><p>
+           Used only for explicit user traces
+         </p></dd><dt><span class="term">void log_debug</span></dt><dd><p>
+           Logs debug information.
+         </p></dd><dt><span class="term">void log_action</span></dt><dd><p>
+           Log action execution information. Wrap all calls to this
+           function (and other related statements) into an
+           IF_VERBOSE_ACTION macro, so to allow completely removing
+           all the overhead at compile time and reduce it at
+           runtime.
+         </p></dd><dt><span class="term">void log_parse</span></dt><dd><p>
+           Log SWF parsing  Wrap all calls to this function (and
+           other related statements) into an IF_VERBOSE_PARSE macro,
+           so to allow completely removing all the overhead at
+           compile time and reduce it at runtime.
+         </p></dd><dt><span class="term">void log_security</span></dt><dd><p>
+           Display a message with security related information.
+         </p></dd><dt><span class="term">void log_swferror</span></dt><dd><p>
+           This indicates an error in how the binary SWF file was
+           constructed, i.e.probably a bug in the tools used to build
+           the SWF file. Wrap all calls to this function (and other
+           related statements) into an IF_VERBOSE_MALFORMED_SWF
+           macro, so to allow completely removing all the overhead at
+           compile time and reduce it at runtime.
+         </p></dd><dt><span class="term">log_warning(const char* fmt, 
...)</span></dt><dd><p>
+           Display a warning message if verbose output is enabled. By
+           default the error messages are always written to the disk
+           file, but optionally displayed in the terminal.
+         </p></dd></dl></div></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a name="cppapi"></a>Logging 
System C++ API</h4></div></div></div><p>
+      This is the new C++ streams based API that can be used to print
+      C++ objects natively. All output lines are timestamped.       
+    </p><p>
+      There are two macros used for program tracing. these can be used
+      in both C or C++ code with one little difference. Since C
+      doesn't have destructors, you must call
+      <span class="emphasis"><em>GNASH_REPORT_RETURN</em></span> at the end of 
a function to
+      display the function returning message.
+    </p><div class="variablelist"><dl><dt><span 
class="term">GNASH_REPORT_FUNCTION;</span></dt><dd><p>
+           When this is included in a C++ method, a message is
+           printed when entering and exiting this method by hooking
+           into the constructor and destructor. These are always
+           written to the disk file, but optionally written to the
+           screen only at the highest levels of verbosity.
+         </p></dd><dt><span 
class="term">GNASH_REPORT_RETURN;</span></dt><dd><p>
+           This is used by C functions to print the returning from
+           function debug message. For C++, this macro is executed
+           automatically by the destructor.
+         </p></dd></dl></div><p>
+      This is the main API for the logging system. By default
+      everything is setup to write to the default
+      <span class="emphasis"><em>gnash-dbg.log</em></span> file whenever a 
verbose option is
+      supplied. Optionally it is possible to open a log file with a
+      specified name, allowing multiple output files.
+    </p><div class="variablelist"><dl><dt><span 
class="term">closeLog(void)</span></dt><dd><p>
+           Close a debug log. The disk file remains.
+         </p></dd><dt><span class="term">removeLog(void)</span></dt><dd><p>
+           Delete the debug log file from disk.
+         </p></dd><dt><span class="term">setVerbosity(void)</span></dt><dd><p>
+           Increment the verbosity level.
+         </p></dd><dt><span class="term">setVerbosity(int)</span></dt><dd><p>
+           Set the verbosity level.
+         </p></dd><dt><span class="term">setStamp(bool flag)</span></dt><dd><p>
+           If <span class="emphasis"><em>flag</em></span> is <span 
class="emphasis"><em>true</em></span>, then print a
+           timestamp prefixed to every output line. If
+           <span class="emphasis"><em>flag</em></span> is <span 
class="emphasis"><em>false</em></span>, then don't print
+           a timestamp.
+         </p></dd><dt><span class="term">setWriteDisk(bool 
flag)</span></dt><dd><p>
+           If <span class="emphasis"><em>flag</em></span> is <span 
class="emphasis"><em>true</em></span>, then create the
+           disk file. If <span class="emphasis"><em>flag</em></span> is <span 
class="emphasis"><em>false</em></span>,
+           then don't create the disk file.
+         </p></dd></dl></div></div></div></div><div class="sect1" 
lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: 
both"><a name="soundhandlers"></a>Sound handling in 
Gnash</h2></div></div></div><p>
+      When a SWF-file contains audio Gnash uses its sound handlers to play it.
+      At the moment there are two sound handlers, but it is likely that more 
+      will be made.
+    </p><p>
+      There are two different settings related to sound support:
+      <span class="emphasis"><em>pluginsound</em></span> and <span 
class="emphasis"><em>sound</em></span>. 
+      This was done in order to allow the plugin to be independently 
+      configured, for instance to block sound from advertisements.
+    </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="soundtypes"></a>Sound types</h3></div></div></div><p>
+        Sounds can be divided into two groups: event-sounds and soundstreams.
+       Event-sounds are contained in a single SWF frame, but the playtime can
+       span multiple frames. Soundstreams can be (and normally are) divided
+       between the SWF frames the soundstreams spans. This means that if a
+       gotoframe-action jumps to a frame which contains data for a soundstream,
+       playback of the stream can be picked up from there. 
+      </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="soundparsing"></a>Sound 
parsing</h3></div></div></div><p>
+        When Gnash parses a SWF-file, it creates a sound handler if possible
+       and hands over the sounds to it. Since the event-sounds are contained 
+       in one frame, the entire event-sound is retrieved at once, while a 
+       soundstream maybe not be completely retrieved before the entire 
+       SWF-file has been parsed. But since the entire soundstream doesn't need
+       to be present when playback starts, it is not necessary to wait. 
+      </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="soundplayback"></a>Sound 
playback</h3></div></div></div><p>
+       When a sound is about to be played Gnash calls the sound handler, which
+       then starts to play the sound and return. All the playing is done by
+       threads (in both SDL and Gstreamer), so once 
+       started the audio and graphics are not sync'ed with each other, which
+       means that we have to trust both the graphic backend and the audio
+       backend to play at correct speed. 
+      </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="sdlsound"></a>The SDL 
sound backend</h3></div></div></div><p>
+       The current SDL sound backend has replaced the original sound 
+       handler, based on SDL_mixer, which by design had some limitations, 
+       making it difficult to implement needed features such as support 
+       for soundstreams. 
+       The SDL sound backend supports both event-sounds and soundstreams,
+       using Gnash's internal ADPCM, and optionally MP3 support, using
+       either FFMPEG or LIBMAD.
+       When it receives sound data it is stored without being decoded, unless
+       it is ADPCM, which is decoded in the parser. When playing, backend
+       relies on a function callback for retrieving output sound, which is 
+       decoded and re-sampled if needed, and all sound output is mixed 
together.
+       The current SDL sound backend was made since Gnash needed a working
+       sound backend as soon as possible, and since the gstreamer backend at
+       the time suffered from bugs and/or lack of features in gstreamer. The
+       result was the most complete and best sound handler so far.
+       The advantages of the SDL sound handler is speed, and ease of use,
+       while its only real disadvantage is that it has to be compiled with
+       MP3 support, which some Linux distributions will probably not like...
+      </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="gstreamer"></a>The 
Gstreamer backend</h3></div></div></div><p>
+       The Gstreamer backend, though not complete, supports both soundstreams
+       and event-sounds. When receiving sound data it stores it compressed,
+       unless if it's ADPCM event-sounds, which it decodes by the parser.
+        When the playback starts, the backend sets up a
+       Gstreamer bin containing a decoder (and other things needed) and places
+       it in a Gstreamer pipeline, which plays the audio. All the sound data is
+       not passed at once, but in small chunks, and via callbacks the
+       pipeline gets fed. The advantages of the Gstreamer backend is that it
+        supports both kinds of sound, it avoids all the legal MP3-stuff, and it
+       should be relatively easy to add VORBIS support. The drawbacks are that
+       it has longer "reply delay" when starting the playback of a sound, and
+       it suffers under some bugs in Gstreamer that are yet to be fixed. 
+      </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="audio-future"></a>Future 
audio backends</h3></div></div></div><p>
+       It would probably be desirable to make more backends in the future,
+       either because other and better backend systems are brought to our
+       attention, or perhaps because an internal sound handling is better
+       suited for embedded platform with limited software installed. 
+      </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="gstreamer-details"></a>Detailed description of the Gstreamer 
backend</h3></div></div></div><p>
+       Gstreamer uses pipelines, bins and elements. Pipelines are the
+       main bin, where all other bins or elements are places. Visually the
+       audio pipeline in Gnash looks like this: 
+      </p><pre class="programlisting">
+        ___
+       |Bin|_
+       |___| \
+        ___   \ _____       ____________
+       |Bin|___|Adder|_____|Audio output|
+       |___|   |_____|     |____________|
+        ___   /
+       |Bin|_/
+       |___|
+
+      </pre><p>
+       There is one bin for each sound which is being played. If a sound is
+       played more the once at the same time, multiple bins will be made. The
+       bins contains: 
+      </p><pre class="programlisting">
+
+       
|source|---|capsfilter|---|decoder|---|aconverter|---|aresampler|---|volume|
+
+      </pre><p>
+       In the source element we place parts of the undecoded sound data, and
+       when playing the pipeline will pull the data from the element. Via
+       callbacks it is refilled if needed. In the capsfilter the data is
+       labeled with the format of the data. The decoder (surprise!) decodes
+       the data. The audioconverter converts the now raw sound data into a
+       format accepted by the adder, all input to the adder must in the same
+       format. The audio re-sampler re-samples the raw sound data into a sample
+       accepted by the adder, all input to the adder must in the same
+       sample rate. The volume element makes it possible to control the volume
+       of each sound. 
+      </p><p>
+       When a sound is done being played it emits a End-Of-Stream-signal
+       (EOS), which is caught by an event-handler-callback, which then makes
+       sure that the bin in question is removed from the pipeline. When a
+       sound is told by Gnash to stop playback before it has ended playback,
+       we do something (not yet finally implemented), which makes the bin emit
+       an EOS, and the event-handler-callback will remove the sound from the
+       pipeline. Unfortunately Gstreamer currently has a bug which causes the
+       entire pipeline to stop playing when unlinking an element from the
+       pipeline; so far no fix is known. 
+      </p><p>
+       Gstreamer also contains a bug concerning linking multiple elements to
+       the adder in rapid succession, which causes to adder to "die" and stop
+       the playback. 
+      </p></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="testing"></a>Testing </h2></div></div></div><p>
+       <a class="link" href="#runtests" title="Running the Tests">Instructions 
on running tests</a>
+       can be found in the section on building Gnash.
+     </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="testtools"></a>Testing Tools</h3></div></div></div><p>
+       Currently Gnash uses three other tools to help with
+       testing. Two of these are free compilers for the Flash
+       format. This lets us write simple test cases for Gnash to test
+       specific features, and to see how the features operate.
+      </p><p>
+       The primary compiler used at this time is <a class="ulink" 
href="http://ming.sf.net"; target="_top">Ming</a>. Since release 0.3,
+       <span class="emphasis"><em>Ming</em></span> includes a command-line 
compiler,
+       <span class="emphasis"><em>makeswf</em></span>. This allows test case 
development
+        to be done entirely with free tools.
+      </p><p>
+        The other tools are optional.  
+       <a class="ulink" href="http://www.gnu.org/software/dejagnu"; 
target="_top">DejaGnu</a>
+       is used to run multiple test cases in an automated
+       manner. <span class="emphasis"><em>DejaGnu</em></span> is used by many 
other <a class="ulink" href="http://www.gnu.org"; target="_top">GNU</a> projects 
like 
+       <a class="ulink" href="http://gcc.gnu.org"; target="_top">GCC</a> and 
+       <a class="ulink" href="http://www.samba.org"; target="_top">Samba</a>.
+      </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="testcases"></a>Test 
Cases</h3></div></div></div><p>
+       ActionScript test cases are located under testsuite/actionscript.all/;
+       these are organized in one file for the ActionScript class.
+       Other Ming-generated tests are under testsuite/ming-misc.all/;
+       these are typically used to test specific tag types.
+       Full movies are located in testsuite/movies.all/ and
+       sample movies are found in testsuite/samples/.
+       Other directories in testsuite/ are (or shall be) used for other
+       kind of tests.
+      </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="writeastests"></a>Writing ActionScript Tests</h3></div></div></div><p>
+       Writing ActionScript tests is very simple. The
+       <span class="emphasis"><em>makeswf</em></span> compiler makes use of 
the C preprocessor,
+       thus allowing the inclusion of definitions for macros and external 
+       files. We use these feature to provide common utilities
+       for test units.
+      </p><p>
+       Each test unit sets an <span class="emphasis"><em>rcsid</em></span> 
variable, includes the
+       <span class="emphasis"><em>check.as</em></span> file and performs some 
checks using
+       the provided macros. Here is an example:
+       
+       </p><pre class="programlisting">
+
+         // This variable will be used by check.as
+         // to show testcase info as part of the test runs.
+         rcsid="Name and version of this testcase, usually the RCS id";
+         
+         #include "check.as"
+         
+         // Test object creation
+         check(new Object() instanceOf Object);
+         
+         // Test parseInt
+         check(isNaN(parseInt('none')));
+
+         // Test assignment
+         var a = 1;
+         check_equals(a, 1);
+         
+         // .. your tests here ...
+       </pre><p>
+      </p><p>
+       The check(expr) macro will <span class="emphasis"><em>trace</em></span> 
PASSED or FAILED
+       together with the expression being evaluated and the line number
+       of the check. This is the format expected by DejaGnu.
+      </p><p>
+       The <span class="emphasis"><em>check_equals(obtained, 
expected)</em></span> macro uses equality operator
+       <span class="emphasis"><em>==</em></span> to check for equality. When 
possible, use of the
+       <span class="emphasis"><em>check_equals()</em></span> macro is 
preferred over <span class="emphasis"><em>check()</em></span>
+       because it shows what the actual result was in case of a failure. 
+      </p><p>
+       Additionally, the check.as file provides a transparent way to send
+       results to a TextField rather then using trace. This is very useful
+       when you use a flash player without tracing support.
+      </p><p>
+       Test units are built by running <span class="emphasis"><em>make 
TestName-v#.swf</em></span>.
+       This will use TestName.as as source and the value of # as target 
version.
+       Allowed target version are from 5 to 8 (inclusive).
+      </p><p>
+       Note that if you get a syntax error from the compiler, the line
+       number will refer to the pre-processed file. This file is called
+       <span class="emphasis"><em>TestName.as.pp</em></span> or <span 
class="emphasis"><em>TestName-v#.swf.frame#.pp</em></span>
+       (depending on Ming version) and it's not thrown away by
+       <span class="emphasis"><em>makeswf</em></span> to make debugging easier.
+      </p><p>
+       Sometimes an expression is only supported by a specific SWF
+       version, or it's evaluated differently by different SWF versions.
+       For this purpose the framework provides an OUTPUT_VERSION macro
+       that you can use to switch code based on output version. For example:
+
+       </p><pre class="programlisting">
+
+         #if OUTPUT_VERSION &gt;= 7
+         check(_root.getSWFVersion == OUTPUT_VERSION);
+         #endif
+         
+       </pre><p>
+      </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="writemingtests"></a>Writing Ming-based self-contained SWF 
tests</h3></div></div></div><p>
+       Ming-based test cases are located in testsuite/misc-ming.all
+       and contain a test generator and a test runner.
+       The test generator (usually a C program) is used to produce the SWF 
+        file, while the test runner (a C++ program) will run it using a 
+       MovieTester class.
+       Note that only the test generator needs Ming, not the test
+       runner, so if Ming isn't installed on the user's host,
+       the test cases can still be run as long as SWF has been distributed.
+      </p><p>
+       Producing tests using Ming has the advantage that you can easily see
+       and modify the full source code for the SWF movie, and you can use
+       some <a class="link" href="#ming_testgenerator_facilities" title="Using 
Ming-based test generators facilities">facilities</a>
+       provided by the Gnash testing framework to easily run tests.
+      </p><p>
+       For generic Ming API documentation, see <a class="ulink" 
href="http://www.libming.org/"; target="_top">http://www.libming.org</a>. 
+      </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="ming_testgenerator_facilities"></a>Using Ming-based test 
generators facilities</h4></div></div></div><p>
+       Ming-based test generator facilities, which might be moved into
+       a loadable SWF in the future, can be currently used by your test
+       generator by including the ming_utils.h file and calling the
+       appropriate functions.
+      </p><p>
+       The most useful facility provided for Ming-based SWF test generators
+       is a Dejagnu-like TestState ActionScript class.
+       In order to use this facility you must call 'add_dejagnu_functions()'
+       right after Movie creation.
+       The function takes an SWFMovie object and some parameters specifying
+       depth and location of the "visual" trace textfield; it instantiates
+       a global 'TestState' ActionScript object to keep track of test's state.
+      </p><p>
+        You will <span class="emphasis"><em>not</em></span> need to directly 
invoke the
+       TestState object created by the 'add_dejagnu_functions()' routine,
+       rather you will be using C macros hiding its complexity:
+       
+       </p><pre class="programlisting">
+
+       check(SWFMovie mo, const char* expr)
+
+               Evaluate an ActionScript expression.
+
+       xcheck(SWFMovie mo, const char* expr)
+
+               Evaluate an ActionScript expression.
+               A failure is expected
+               (for cases where the call exposes a known bug).
+
+       check_equals(SWFMovie mo, const char* obtained, const char* expected)
+
+               Evaluate an ActionScript expression against an expected output.
+
+       xcheck_equals(SWFMovie mo, const char* obtained, const char* expected)
+
+               Evaluate an ActionScript expression against an expected output.
+               A failure is expected (for cases where the call exposes a known 
bug).
+
+       print_tests_summary(SWFMovie mo)
+
+                This will print a summary of tests run, and should be
+               called as the last step in your SWF generator.
+       </pre><p>
+       
+      </p><p>
+       Test cases generated using Ming and the provided
+       <a class="link" href="#ming_testgenerator_facilities" title="Using 
Ming-based test generators facilities">facilities</a>
+       will be self-contained, which means they can be used as tests
+       by simply running them with whatever Player you might have.
+       Any 'check' or 'check_equals' result will be both traced and
+       printed in a textfield. You can use 'gprocessor -v' to have
+       Gnash use them as tests.
+      </p><p>
+       See section <a class="link" href="#writing_test_runners" title="Writing 
Test Runners">Writing Test Runners</a>
+       for information about writing SWF test runners.
+      </p></div></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="writing_dejagnu_so_tests"></a>Writing self-contained SWF tests with other 
compilers</h3></div></div></div><p>
+       If you want/need to use a different compiler for your test cases 
(there's
+       plenty of open source tools for generating SWF out there), you can still
+       make use of a loadable SWF utility provided as part of the Gnash 
testsuite
+       to let your test consistent with the rest of the suite.
+      </p><p>
+       The loadable module is called <span 
class="emphasis"><em>Dejagnu.swf</em></span> and is built during
+       <span class="emphasis"><em>make check</em></span> under 
testsuite/misc-ming.all. In order to use it
+       you will need to load it into your SWF. We currently load it with an 
IMPORT
+       tag for our ActionScript based test cases, but you can probably also use
+       loadMovie or whatever works in the target SWF you're generating. Just 
make
+       sure that the module is initialized before using it. You can check this 
by
+       inspecting the <span 
class="emphasis"><em>dejagnu_module_initialized</em></span> variable, which will
+       be set to 'true' when all initialization actions contained in the
+       <span class="emphasis"><em>Dejagnu.swf</em></span> file are executed. 
+      </p><p>
+       Once the module is loaded you will be able to invoke the following 
functions,
+       all registered against the <span class="emphasis"><em>_root</em></span> 
sprite (effects of <span class="emphasis"><em>_lockroot</em></span>
+       untested):
+       </p><pre class="programlisting">
+         
+         check(expression, [message]);
+         
+         Evaluate the expression.
+         Trace result (PASSED: expression / FAILED: expression).
+         If fails, *visually* trace the failure.
+         If second argument is given, it will be used instead of
+         'expression' for printing results.
+         
+         check_equals(obtained, expected)
+         
+         Evaluate an expression against an expected output.
+         Trace result (PASSED: obtained == expected / FAILED: expected X, 
obtained Y)
+         If fails, *visually* trace the failure.
+         
+         xcheck(expression, [message]);
+         
+         Evaluate the expression.
+         Trace result (XPASSED: expression / XFAILED: expression).
+         If fails, *visually* trace the failure.
+         If second argument is given, it will be used instead of
+         'expression' for printing results.
+         
+         xcheck_equals(obtained, expected)
+         
+         Evaluate an expression against an expected output.
+         Trace result (XPASSED: obtained == expected / XFAILED: expected X, 
obtained Y)
+         If fails, *visually* trace the failure.
+         
+         note(string)
+         
+         Print string, both as debugging and *visual* trace.
+         
+         totals()
+         
+         Print a summary of tests run, both as debugging and *visual* traces.
+         
+       </pre><p>
+      </p><p>
+       Visual traces are lines of text pushed to a textarea defined
+       by the <span class="emphasis"><em>Dejagnu.swf</em></span> module. The 
textarea is
+       initially placed at <span class="emphasis"><em>0, 50</em></span> and is
+       <span class="emphasis"><em>600x800</em></span> in size. You can 
resize/move the clip
+       after loading it. Also, you can completely make the clip
+       invisible if that bothers you. The important thing is the
+       <span class="emphasis"><em>debugging</em></span> trace (call to the 
trace
+       function). The latter will be used by the testing framework. 
+      </p><p>
+       See section <a class="link" href="#writing_test_runners" title="Writing 
Test Runners">Writing Test Runners</a>
+       for information about writing a test runners for your self-contained 
tests.
+      </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="writing_test_runners"></a>Writing Test Runners</h3></div></div></div><p>
+       Test runners are executables that run one or more tests,
+       writing results in Dejagnu form to standard output.
+      </p><p>
+       The Dejagnu form uses a standard set of labels when printing test 
+       results.  These are:
+       </p><div class="informaltable"><table border="1" 
width="75%"><colgroup><col><col></colgroup><thead><tr><th valign="top">
+                 <p>Label</p>
+               </th><th valign="top">
+                 <p>Meaning</p>
+               </th></tr></thead><tbody><tr><td align="left" valign="top">
+                 <p>PASSED</p>
+               </td><td align="left" valign="top">
+                 <p>The test succeeded.</p>
+               </td></tr><tr><td align="left" valign="top">
+                 <p>FAILED</p>
+               </td><td align="left" valign="top">
+                 <p>The test failed.</p>
+               </td></tr><tr><td align="left" valign="top">
+                 <p>XPASSED</p>
+               </td><td align="left" valign="top">
+                 <p>The test succeeded, but was expected to fail.</p>
+               </td></tr><tr><td align="left" valign="top">
+                 <p>XFAILED</p>
+               </td><td align="left" valign="top">
+                 <p>The test failed, and was expected to fail.</p>
+               </td></tr><tr><td align="left" valign="top">
+                 <p>UNRESOLVED</p>
+               </td><td align="left" valign="top">
+                 <p>The results of the test could not be automatically 
+                 parsed.</p>
+               </td></tr><tr><td align="left" valign="top">
+                 <p>UNTESTED</p>
+               </td><td align="left" valign="top">
+                 <p>This test case is not complete.</p>
+               </td></tr><tr><td align="left" valign="top">
+                 <p>UNSUPPORTED</p>
+               </td><td align="left" valign="top">
+                 <p>The test case relies on a conditional feature which 
+                 is not present in your environment.</p>
+               </td></tr></tbody></table></div><p>
+      </p><p>
+       The following labels may also appear:
+       </p><div class="informaltable"><table border="1" 
width="75%"><colgroup><col><col></colgroup><thead><tr><th valign="top">
+                 <p>Label</p>
+               </th><th valign="top">
+                 <p>Meaning</p>
+               </th></tr></thead><tbody><tr><td align="left" valign="top">
+                 <p>ERROR</p>
+               </td><td align="left" valign="top">
+                 <p>There was a serious error in running the test. </p>
+               </td></tr><tr><td align="left" valign="top">
+                 <p>WARNING</p>
+               </td><td align="left" valign="top">
+                 <p>There may have been a problem with running the
+                 test.</p>
+               </td></tr><tr><td align="left" valign="top">
+                 <p>NOTE</p>
+               </td><td align="left" valign="top">
+                 <p>There was some additional information given about
+                 the test.</p>
+               </td></tr></tbody></table></div><p>
+      </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="generic_test_runner"></a>Using the generic test runner 
for self-contained SWF tests</h4></div></div></div><p>
+         The simplest test runner is one that simply invokes Gnash
+         in verbose mode against a self-contained SWF test movie.
+         Self-contained SWF test movies are the ones that print
+         the PASSED/FAILED etc. lines using ActionScript (traces).
+         By invoking Gnash in verbose mode this movie will behave
+         as a compliant "Test Runner".
+       </p><p>
+         A generator for simple test runners can be found in
+         <span 
class="emphasis"><em>testsuite/generic-testrunner.sh</em></span>.
+         The script can be invoked by passing it <span 
class="emphasis"><em>$(top_builddir)</em></span>
+         as the first argument and the name of the SWF file (without the path)
+         as the second argument. This will create a specific runner for your
+         test in the current build directory.
+         A simple Makefile.am rule for doing this follows:
+         </p><pre class="programlisting">
+           MyTest-Runner: $(srcdir)/../generic-testrunner.sh MyTest.swf
+           sh $(srcdir)/../generic-testrunner.sh $(top_builddir) MyTest.swf 
&gt; $@
+           chmod +x $@
+         </pre><p>
+       </p><p>
+         By default, the generated test runner will play the movie up to the
+         last frame. If you want the movie to be played more then once (maybe
+         because you're exactly testing loop features) you can use the -r 
switch
+         to the generic-testrunner.sh call. The following will create a runner
+         playing the movie twice:
+         </p><pre class="programlisting">
+           MyTest-Runner: $(srcdir)/../generic-testrunner.sh MyTest.swf
+           sh $(srcdir)/../generic-testrunner.sh -r2 $(top_builddir) 
MyTest.swf &gt; $@
+           chmod +x $@
+         </pre><p>
+       </p><p>
+         In case your test movie stops before the last frame, or you want to 
control the
+         exact number of times to call the frame advancement routine, you can 
use the 
+         -f switch to control that.
+         </p><pre class="programlisting">
+           MyTest-Runner: $(srcdir)/../generic-testrunner.sh MyTest.swf
+           sh $(srcdir)/../generic-testrunner.sh -f10 $(top_builddir) 
MyTest.swf &gt; $@
+           chmod +x $@
+         </pre><p>
+         When both -f and -r are given, the first exit condition reached will 
take effect.
+       </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="writing_movie_testers"></a>Writing Movie testers</h4></div></div></div><p>
+         There are some parts of Gnash that can NOT be tested
+         by only using ActionScript tests. Examples include: frame
+         advancements, actual actions execution, gui events and so on.
+       </p><p>
+         In this case you might want to use the MovieTester class to
+         implement a C++ test runner. Be aware that you can <span 
class="emphasis"><em>mix</em></span> tests in
+         the MovieTester-based class with <span 
class="emphasis"><em>self-contained</em></span>
+         tests in the SWF file as long as you activate verbosity for
+         the debug logfile. This is done, for example, for the
+         DefineEditTextVariableNameTest.swf file. The corresponding
+         test runner (DefineEditTextVariableNameTest-Runner) is a C++
+         runner based on MovieTester class. If you run the runner you
+         see two kinds of test results: the ones coming from the ActionScript
+         engine, and the ones coming from the test runner. You can
+         distinguish between the two because the former contains an additional
+         timestamp and the latter does not. Also, you'll see two final
+         summaries for the two test sets. The 'make check' rule, which uses
+         the testsuite/simple.exp output parser as its work-horse, will
+         count test results from both test sets.
+       </p><p>
+         Movie testers are executables which load an SWF, generate events
+         (both user or system) on it, and check its state using
+         a standard interface.
+       </p><p>
+         To help this process a MovieTester class is defined in the
+         testsuite/MovieTester.{h,cpp} files; see Doxygen documentation
+         for more information.
+       </p><p>
+         Note that you do NOT need access to the SWF source code in order
+         to implement a Movie tester for it.  Some knowledge about the 
+         expected behavior suffices.
+       </p></div></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="newclass"></a>Chapter 4. 
Adding New ActionScript Class</h2></div></div></div><div 
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a 
href="#prototype">Prototype</a></span></dt><dt><span class="sect1"><a 
href="#declaration">Declaration</a></span></dt><dt><span class="sect1"><a 
href="#instantiation">Instantiation</a></span></dt><dt><span class="sect1"><a 
href="#methods">Methods</a></span></dt><dt><span class="sect1"><a 
href="#properties">Dynamic Properties</a></span></dt><dt><span class="sect1"><a 
href="#as_value">The <span class="emphasis"><em>as_value</em></span> Object 
Type</a></span></dt><dd><dl><dt><span class="sect2"><a href="#data_types">Data 
Types</a></span></dt><dt><span class="sect2"><a href="#is_methods">Determining 
the Type</a></span></dt><dt><span class="sect2"><a href="#to_methods">Fetching 
the Value</a></span></dt><dt><span class="sect2"><a href="#set_methods">Setting 
the Value and Type</a></span></dt><dt><span class="sect2"><a 
href="#further_as_value_reading">Further 
Reading</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#asobject">Object ActionScript Class</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#objectmethods">The Methods of the  
Class</a></span></dt><dt><span class="sect2"><a href="#objectprops">The 
Properties of the Object Class</a></span></dt><dt><span class="sect2"><a 
href="#objectconf">Object Class 
Conformance</a></span></dt></dl></dd></dl></div><p>
+    In this document, the term 'ActionScript class' refers to the
+    C++ class which is instantiated by Gnash when some ActionScript
+    code instantiates a corresponding class.  The C++ class
+    stores instance data and implements the methods which are 
+    called on the object in the ActionScript code.
+  </p><p>
+    Adding a new ActionScript class is relatively simple, but the
+    process is complicated by the fact that the interface has evolved
+    over time and the current code base represents several different
+    formats.  This document describes the current interface.  The
+    Boolean class should be considered the authoritative example of
+    a modern ActionScript class.
+  </p><p>
+    ActionScript classes contain a header file and a C++
+    implementation.  The name is usually the name of the
+    class as it is called in the ActionScript specifications;
+    for instance <span class="emphasis"><em>Boolean.cpp</em></span> for the 
Boolean class.
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a 
name="prototype"></a>Prototype</h2></div></div></div><p>
+      In ActionScript, a prototype is a base object which contains
+      all the methods that an instantiated object will contain.
+      In short, it contains every part of the class except for
+      the portions dealing with the storage of instance data.
+    </p><p>
+      In Gnash, the prototype of an ActionScript object is 
+      implemented as an <span class="emphasis"><em>as_object</em></span>.
+      At startup, the methods and properties of the ActionScript class
+      are attached to the <span class="emphasis"><em>as_object</em></span>.  
The
+      following example demonstrates how methods can be attached:
+      </p><pre class="programlisting">
+       static void
+       attachBooleanInterface(as_object&amp; o) {
+         o.init_member("toString", new builtin_function(boolean_tostring));
+         o.init_member("valueOf", new builtin_function(boolean_valueof));
+       }
+      </pre><p>
+    </p><p>
+      Static properties can also be added to the ActionScript prototype
+      (<a class="link" href="#properties" title="Dynamic Properties">dynamic 
properties</a> 
+      are addressed later).  They are attached in a similar way:
+      </p><pre class="programlisting">
+       o.init_member("myProperty", as_value("HelloWorld"));
+      </pre><p>
+    </p><p>
+      Properties which have been added in this manner can be
+      directly accessed in ActionScript code without a function
+      call, as this piece of ActionScript code compiled by Ming's
+      <span class="emphasis"><em>makeswf</em></span> compiler demonstrates:
+      </p><pre class="programlisting">
+       // Get the value of the myProperty property
+       if (node.myProperty == "HelloWorld") {
+         trace("MATCHED");
+       }
+      </pre><p>
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="declaration"></a>Declaration</h2></div></div></div><p>
+      A new class should derive from <span 
class="emphasis"><em>as_object</em></span>,
+      which is the base class of every ActionScript object in Gnash.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="instantiation"></a>Instantiation</h2></div></div></div><p>
+      When a new object is needed, instance data is added to
+      the methods and properties inherited from the prototype.
+    </p><p>
+      The init method should be called in the constructor in
+      <span class="emphasis"><em>Global.cpp</em></span>, where all other 
ActionScript
+      classes are similarly referenced. This method constructs a
+      prototype, which is implemented as an
+      <span class="emphasis"><em>as_object</em></span>.  In addition, the 
method 
+      registers the constructor to be used for future object creation,
+      and attaches methods and properties to the prototype.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="methods"></a>Methods</h2></div></div></div><p>
+      Every method you implement and 
+      <a class="link" href="#prototype" title="Prototype">attach</a> will 
receive an
+      <span class="emphasis"><em>fn_call</em></span> data structure as an 
argument when it is called.
+    </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="arguments"></a>Accessing 
Arguments</h4></div></div></div><p>
+       The arguments stored in <span class="emphasis"><em>fn_call</em></span>
+       should be accessed using <span class="emphasis"><em>arg()</em></span>.  
For
+       instance, the first element can be popped with
+       <span class="emphasis"><em>fn.arg(0)</em></span>.
+      </p><p>
+       The element popped off the stack is an 
+       <a class="link" href="#as_value" title="The as_value Object Type"><span 
class="emphasis"><em>as_value</em></span>
+       object</a>.
+      </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a name="return"></a>Returning a 
Value to ActionScript</h4></div></div></div><p>
+       The return value should be an
+       <a class="link" href="#as_value" title="The as_value Object Type"><span 
class="emphasis"><em>as_value</em></span> 
+       object</a>.  For example:
+       </p><pre class="programlisting">
+         return as_value('Goodbye, cruel world.');
+       </pre><p>
+      </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="additional_fn_call"></a>Additional <span 
class="emphasis"><em>fn_call</em></span> Members</h4></div></div></div><p>
+       There are two other useful members of the <span 
class="emphasis"><em>fn_call</em></span>
+       structure, namely <span class="emphasis"><em>this_ptr</em></span> and
+       <span class="emphasis"><em>nargs</em></span>.  The former points to the
+       class which is invoking this method, while the latter
+       is a count of the number of 
+       <a class="link" href="#arguments" title="Accessing Arguments">arguments 
in the stack</a>.
+      </p><p>
+       You may also see instances of the <span 
class="emphasis"><em>env</em></span>
+       pointer being used.   This is being deprecated.  Instances
+       which could be replaced with
+       <a class="link" href="#arguments" title="Accessing Arguments"><span 
class="emphasis"><em>arg()</em></span></a>
+       are already deprecated; other uses will be deprecated
+       in the near future.
+      </p><p>
+       Beyond the <span class="emphasis"><em><a class="link" href="#arguments" 
title="Accessing Arguments">arg()</a></em></span> method, there
+       is one method of note.  <span 
class="emphasis"><em>dump_args()</em></span>
+       can be used in debugging to output the entire argument
+       stack.
+      </p></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="properties"></a>Dynamic Properties</h2></div></div></div><p>
+      This section describes accessors to dynamic properties.
+      Read-only properties are described
+      in the <a class="link" href="#prototype" title="Prototype">prototype</a> 
section.
+    </p><p>
+      Accessors should be written as a single get/set method.
+      Previously this was done by overriding
+      <span class="emphasis"><em>get_member()</em></span> and 
+      <span class="emphasis"><em>set_member()</em></span>, but this practice
+      is deprecated.  
+    </p><p> 
+      The accessor is written so that it sets the property
+      if it is called with an argument, and puts the property in
+      the <a class="link" href="#methods" title="Methods"><span 
class="emphasis"><em>fn_call</em></span></a>
+      <a class="link" href="#return" title="Returning a Value to 
ActionScript">result pointer</a>.  For instance:
+      </p><pre class="programlisting">
+       void
+       MyClass::myProperty_getset(const fn_call&amp; fn) {     
+         boost::intrusive_ptr&lt;MyClass&gt; ptr = 
ensureType&lt;MyClass&gt;(fn.this_ptr);
+       
+         // setter
+         if ( fn.nargs &gt; 0 ) {
+           bool h = fn.arg(0).to_bool();
+           ptr-&gt;MyMethod(h);
+           return;
+          }
+       
+         // getter
+         bool h = ptr-&gt;MyMethod();
+         fn.result-&gt;set_bool(h);
+       }
+      </pre><p>
+    </p><p> 
+      It has not yet been decided whether properties should be set
+      in the <a class="link" href="#prototype" title="Prototype">exported 
interface</a> 
+      or attached to instances of the class.  A property is attached
+      in the following manner:
+      </p><pre class="programlisting">
+       boost::intrusive_ptr&lt;builtin_function&gt; gettersetter;
+       gettersetter = new builtin_function(&amp;MyClass::myProperty_getset, 
NULL);
+       o.init_property("myProperty", *gettersetter, *gettersetter);
+      </pre><p>
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="as_value"></a>The <span class="emphasis"><em>as_value</em></span> Object 
Type</h2></div></div></div><p>
+    The <span class="emphasis"><em>as_value</em></span> class is used 
throughout
+    the interpreter to create generic objects to hold data.
+  </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="data_types"></a>Data Types</h3></div></div></div><p>
+      The following data types are supported:
+      <span class="emphasis"><em>NULLTYPE</em></span>,
+      <span class="emphasis"><em>BOOLEAN</em></span>, <span 
class="emphasis"><em>STRING</em></span>,
+      <span class="emphasis"><em>NUMBER</em></span>, <span 
class="emphasis"><em>OBJECT</em></span>,
+      <span class="emphasis"><em>AS_FUNCTION</em></span>, and 
+      <span class="emphasis"><em>MOVIECLIP</em></span> (sprite).  
+      The type <span class="emphasis"><em>C_FUNCTION</em></span> is being 
deprecated.
+    </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="is_methods"></a>Determining the Type</h3></div></div></div><p>
+      Several methods allow you to determine if a value stored in
+      <span class="emphasis"><em>as_value</em></span> is of a specific type.  
These
+      follow the form of <span class="emphasis"><em>is_TYPE</em></span>, for 
example
+      <span class="emphasis"><em>is_as_function()</em></span> and 
+      <span class="emphasis"><em>is_number()</em></span>.  In general, the 
type names
+      match the <a class="link" href="#data_types" title="Data Types">data 
types</a> listed
+      above, with the exception of the type <span 
class="emphasis"><em>MOVIECLIP</em></span>
+      which has a method <span class="emphasis"><em>is_sprite()</em></span>.
+    </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="to_methods"></a>Fetching 
the Value</h3></div></div></div><p>
+      Another set of methods will return a representation of
+      the value as a particular type.  They follow the
+      <span class="emphasis"><em>to_TYPE</em></span> naming convention.  
Examples
+      are <span class="emphasis"><em>to_number()</em></span> and
+      <span class="emphasis"><em>to_bool()</em></span>.  The type names are as 
+      <a class="link" href="#data_types" title="Data Types">listed</a> 
earlier, except for
+      <span class="emphasis"><em>MOVIECLIP</em></span>, which uses 
+      <span class="emphasis"><em>to_sprite()</em></span>.
+    </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="set_methods"></a>Setting 
the Value and Type</h3></div></div></div><p>
+      Finally, there is the <span class="emphasis"><em>set_TYPE</em></span> 
series
+      of methods.  They change the type to the type specified in
+      the method name, and set the value to the one given as an
+      argument.  It is also possible to accomplish the same thing
+      with the <span class="emphasis"><em>=</em></span> operator.  Again, type 
names
+      match those <a class="link" href="#data_types" title="Data Types">named 
earlier</a>,
+      except in the case of <span class="emphasis"><em>MOVIECLASS</em></span>. 
 Its
+      method is called <span class="emphasis"><em>set_sprite()</em></span>.
+    </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="further_as_value_reading"></a>Further Reading</h3></div></div></div><p>
+      Please refer to <span class="emphasis"><em>as_value.h</em></span> or the
+      Doxygen documentation (see 'Processing The Documentation'
+      in the Gnash manual for instructions on generating
+      documents with Doxygen) for more information
+      about which methods are available for the
+      <span class="emphasis"><em>as_value</em></span> object.
+    </p></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="asobject"></a>Object ActionScript Class</h2></div></div></div><p>
+    This class implements an Object object.
+  </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="objectmethods"></a>The Methods of the  
Class</h3></div></div></div><p>
+      </p><div class="variablelist"><dl><dt><span 
class="term">addProperty()</span></dt><dd><p>
+           </p></dd><dt><span class="term">registerClass()</span></dt><dd><p>
+           </p></dd><dt><span class="term">toString()</span></dt><dd><p>
+           </p></dd><dt><span class="term">unwatch()</span></dt><dd><p>
+           </p></dd><dt><span class="term">valueOf()</span></dt><dd><p>
+           </p></dd><dt><span class="term">watch()</span></dt><dd><p>
+           </p></dd><dt><span class="term">Sharedclear()</span></dt><dd><p>
+           </p></dd><dt><span class="term">Sharedflush()</span></dt><dd><p>
+           </p></dd><dt><span class="term">SharedgetLocal()</span></dt><dd><p>
+           </p></dd><dt><span class="term">SharedgetSize()</span></dt><dd><p>
+           </p></dd></dl></div><p>
+    </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="objectprops"></a>The 
Properties of the Object Class</h3></div></div></div><p>
+      </p><div class="variablelist"><dl><dt><span 
class="term">constructor</span></dt><dd><p>
+           </p></dd><dt><span class="term">__proto__</span></dt><dd><p>
+           </p></dd><dt><span class="term">__resolve</span></dt><dd><p>
+           </p></dd><dt><span class="term">Shareddata</span></dt><dd><p>
+           </p></dd><dt><span class="term">SharedonStatus</span></dt><dd><p>
+           </p></dd></dl></div><p>
+    </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="objectconf"></a>Object 
Class Conformance</h3></div></div></div><p>
+      </p><div class="informaltable"><table border="1" 
width="75%"><colgroup><col><col></colgroup><thead><tr><th valign="top">
+               <p>Class Name</p>
+             </th><th valign="top">
+               <p>Conformance</p>
+             </th></tr></thead><tbody><tr><td align="left" valign="top">
+               <p>addProperty()</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This method has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>registerClass()</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This method has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>toString()</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This method has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>unwatch()</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This method has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>valueOf()</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This method has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>watch()</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This method has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>Sharedclear()</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This method has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>Sharedflush()</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This method has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>SharedgetLocal()</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This method has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>SharedgetSize()</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This method has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>constructor</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This property has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>__proto__</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This property has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>__resolve</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This property has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>Shareddata</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This property has an unknown status.
+               </p>
+             </td></tr><tr><td align="left" valign="top">
+               <p>SharedonStatus</p>
+             </td><td align="center" valign="top">
+               <p>
+                 This property has an unknown status.
+               </p>
+             </td></tr></tbody></table></div><p>
+    </p></div></div></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="bugreport"></a>Chapter 
5. Reporting Bugs</h2></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a href="#bugstep_package">Get a 
Fresh Binary Package</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_search">Determine if the bug was previously 
reported</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_guidelines">Review the bug writing 
guidelines</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_file">Filing a bug report</a></span></dt></dl></div><p>
+    The Gnash project relies on the community of Gnash users to test
+    the player, feedback is critical to any successful project.  Not
+    only does it let us know that people use Gnash, but it helps us  
+    understand the community's needs. Gnash uses a bug tracker on
+    <a class="ulink" href="http://savannah.gnu.org"; 
target="_top">http://savannah.gnu.org</a> to manage these reports.
+  </p><p>
+    When filing a report, please follow the guidelines below. The better
+    your bug report is, the easier it will be for the developers to
+    address the issue. Bug reports without enough information will
+    initially be asked to provide this information anyway. Adding
+    critical details, like the Operating System you are on, it's
+    version, and any relevant error messages from Gnash that you get.
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="bugstep_package"></a>Get a Fresh 
Binary Package</h2></div></div></div><p>
+      For starters, it's a good idea to obtain a copy of the latest
+      snapshot. Although Gnash is primarily released as source, the
+      Gnash build infrastructure allows the automated building of
+      binary packages. Often the version of Gnash as packaged by a
+      GNU/Linux or BSD distribution is based on the last official
+      release, which could be months out of date. It is helpful if
+      this is the case to try a newer packaged build of Gnash. 
+    </p><p>
+      You can get a fresh binary package of Gnash, as well as recent 
+      source packages from
+      <a class="ulink" href="http://www.getgnash.org/packages/"; target="_top">
+       http://www.getgnash.org/packages
+      </a>. 
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="bugstep_search"></a>Determine if the bug was previously 
reported</h2></div></div></div><p>
+      Search the <a class="ulink" 
href="https://savannah.gnu.org/bugs/?group=gnash"; target="_top">Gnash
+      bug tracker</a> to see if the bug has already been identified.
+    </p><p>
+      If the issue has already been reported, you should not file
+      a bug report.  However, you may add some additional information
+      to the ticket if you feel that it will be beneficial to the
+      developers.  For instance, if someone reported a memory issue
+      on Ubuntu GNU/Linux, and you noticed the same problem on OpenBSD,
+      your stacktrace would be useful.  Conversely, adding a "me too"
+      note to a feature request is not helpful.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="bugstep_guidelines"></a>Review the bug writing 
guidelines</h2></div></div></div><p>
+      A good bug report should be precise, explicit, and discrete.
+      This means that there should be just one bug per ticket, and
+      that a ticket should contain the following information:
+    </p><div class="itemizedlist"><ul type="opencircle"><li 
style="list-style-type: circle"><p>
+         An overview of the problem;
+       </p></li><li style="list-style-type: circle"><p>
+         Instructions on how to replicate the bug;
+       </p></li><li style="list-style-type: circle"><p>
+         A description of what happened when you performed the steps
+         to replicate the bug, and what you expected to happen;
+       </p></li><li style="list-style-type: circle"><p>
+         Your system information: operating system name and version, as
+         well as the versions of major development dependencies;
+       </p></li><li style="list-style-type: circle"><p>
+         The release number or checkout timestamp for the version of Gnash
+         where you observe the problem;
+       </p></li><li style="list-style-type: circle"><p>
+         The file <code class="filename">config.log</code>, which should be
+         attached as a file;
+       </p></li><li style="list-style-type: circle"><p>
+         A descriptive title.
+       </p></li></ul></div><p>
+      Include any additional information that you feel might be useful
+      to the developers.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="bugstep_file"></a>Filing a bug report</h2></div></div></div><p>
+      After following the steps described above, you can file a bug report at 
+      <a class="ulink" href="https://savannah.gnu.org/bugs/?group=gnash"; 
target="_top">https://savannah.gnu.org/bugs/?group=gnash</a>.
+    </p></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="extensions"></a>Chapter 
6. Gnash Extensions</h2></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a href="#newext">Creating A New 
Extension</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="#craftext">Crafting an Extension</a></span></dt></dl></dd><dt><span 
class="sect1"><a href="#debuext">Debugging An 
Extension</a></span></dt><dt><span class="sect1"><a href="#inclext">Included 
Extensions</a></span></dt></dl></div><p>
+    Gnash supports extending the Flash specification by creating
+    custom ActionScript classes that are compiled code, as opposed to
+    the existing method of defining custom classes as
+    ActionScript. Executing compiled code has many performance
+    benefits over having to interpret the byte stream of the
+    ActionScript opcodes.
+  </p><p>
+    I can already hear people complaining now about the concept of
+    extending Flash, so this in no way affects Gnash's ability to play
+    Flash movies when functioning as a browser plugin.
+    Gnash's goal is still to function in a way that is compatible
+    with the current proprietary Flash player.
+  </p><p>
+    But at the same time, we see Flash as the ideal scripting language
+    for a digital multi-media streaming environment. There are many
+    resources for Flash movie creators for widgets, higher level APIs,
+    all sorts of desirable things. But for those of use committed to
+    using free software tools for Flash, our options are very
+    limited. 
+  </p><p>
+    Rather than launching a multi-year project to duplicate all
+    classes in the commercial Flash IDE, it's much more efficient to
+    use existing development libraries much like Python or Perl
+    do. The extension mechanism in Gnash allows wrappers to be created
+    for any C or C++ development library. Unlike the proprietary Flash
+    IDE, which compiles all the extension libraries into byte codes
+    from ActionScript, the support is moved to the player side. Movies
+    with all of the goodies of the proprietary IDE in them play in
+    Gnash just fine, as it's all just byte codes by then.
+  </p><p>
+    This trick works because until Flash player version 9, all the
+    ActionScript class names and methods are passed as ASCII strings
+    into the Flash movie. So the Gnash Virtual Machine just loads the
+    extension file if that class name is invoked in the movie. All
+    extension files specify the class name and methods it implements
+    in an identical style as adding any new ActionScript class. The
+    advantage is the class itself is compiled code, and runs much
+    faster than the equivalent byte codes which all have to be
+    interpreted..
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="newext"></a>Creating A New 
Extension</h2></div></div></div><p>
+      Each new extension should live in it's own directory. The
+      extensions included in Gnash are all in the
+      <span class="emphasis"><em>gnash/extensions</em></span> directory. 
Creating an extension
+      requires a Makefile.am,
+    </p><p>
+      If you are adding this extension to the Gnash source tree
+      itself, then you need to make two changes to add the new
+      extension.
+    </p><p>
+      The first change is to add the directory to the list in
+      extensions/Makefile.am. This can be done either by adding the
+      new directory to the SUBDIRS setting, or by wrapping it in a
+      conditional test.
+    </p><p>
+      The other change is to add it to the AC_OUTPUT list in
+      <span class="emphasis"><em>configure.ac</em></span> so the new directory 
will be
+      configured along with the rest of Gnash.
+    </p><p>
+      Each extension should have an ActionScript source file included
+      that tests the new class, and this file should be referenced in
+      the new Makefile.am in the <span 
class="emphasis"><em>check_PROGRAMS</em></span>
+      variable so that "make check" works.
+    </p><p>
+      When creating an extension that is a wrapper for an existing
+      development library API, it's often better to make this a thin
+      layer, than to get carried away with creating beautiful
+      abstractions. Higher-level classes that offer a lot of new
+      functionality are fine, but is different than wrapping a library
+      so it can be used from within Gnash.
+    </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="craftext"></a>Crafting an 
Extension</h3></div></div></div><p>
+       All extensions have the same requirements, namely setting up a
+       few defined function callbacks, which the Gnash VM then uses
+       to do the right thing. The initial two function callbacks are
+       for handling the interface of the newly created object so that
+       Gnash can find and use it.
+      </p><p>
+       The first function is commonly called
+       <span class="emphasis"><em>attachInterface</em></span>, and this sets 
the other
+       function callbacks for all the methods this class
+       supports. The method callbacks are attached to the parent
+       class by using <span class="emphasis"><em>init_member()</em></span> to 
set a C
+       function pointer to the string value used in the Flash movie.
+      </p><pre class="programlisting">
+       // Attach DummyClass 'func1' and 'func2' methods to the given object
+       static void
+       attachInterface(as_object&amp; obj) {
+            obj.init_member("func1", &amp;ext_func1);
+            obj.init_member("func2", &amp;ext_func2);
+       }
+      </pre><p>
+       The second function is commonly called
+       <span class="emphasis"><em>getInterface()</em></span>, and this returns 
a
+       pointer to a static prototype of the class.
+        Gnash uses garbage collection for ActionScript objects
+        so you need to register the static with the VM to give it
+        a chance to be marked as reachable.
+      </p><pre class="programlisting">
+       static as_object*
+       getInterface()
+       {
+           static boost::intrusive_ptr&lt;as_object&gt; o;
+           if (o == NULL) {
+               o = new as_object();
+                VM::get().addStatic(o);
+                attachInterface(*o);
+           }
+           return o.get();
+       }
+      </pre><p>
+       This is the callback that gets executed when constructing a
+       new object for the VM. In this example we'll assume the new
+       ActionScript class is called <span 
class="emphasis"><em>DummyExt</em></span>,
+       and has two methods, <span class="emphasis"><em>func1</em></span> and
+       <span class="emphasis"><em>func2</em></span>.
+      </p><pre class="programlisting">
+       static as_value
+       dummyext_ctor(const fn_call&amp; fn)
+       {
+           DummyExt *obj = new DummyExt(); // will setup prototypes
+
+           return as_value(obj); 
+       }
+      </pre><p>
+       The trick for the above simple constructor to work is that
+        class appartenence is setup in the C++ DummyExt constructor
+        itself, which should derive from as_object and construct the
+        base passing it the interface (prototype) of it's class.
+      </p><pre class="programlisting">
+       class DummyExt : public as_object
+        {
+        public:
+           DummyExt()
+                :
+                as_object(getInterface()) // returns the static prototype
+            {}
+
+       };
+      </pre><p>
+       Initialize the extension. This is looked for by the extension
+       handling code in each extension, and is executed when the
+       extension is loaded. This is the main entry point into the
+       extension. This function can be found because the prefix of
+       <span class="emphasis"><em>dummyext</em></span>, which also matches the 
file
+       name of the extension. Gnash uses the name of the extension
+       file itself when looking for the init function.
+      </p><pre class="programlisting">
+        extern "C" {
+           void
+           dummyext_class_init(as_object &amp;obj)
+           {
+               static builtin_function* cl=NULL;
+               if (!cl)
+                {
+                    // Create a builtin function using the given constructor
+                    // to instanciate objects and exporting the given interface
+                   cl = new builtin_function(&amp;dummyext_ctor, 
getInterface());
+                   VM::get().addStatic(cl); // will forbid to collect the class
+               }
+       
+               obj.init_member("DummyExt", cl);
+           }
+        } // end of extern C
+      </pre><p>
+       The callbacks are all C functions. Like all the other code
+       that implements ActionScript, parameters to the function are
+       passed in using the <span class="emphasis"><em>fn_call</em></span> data
+       structure. The return code, if any, is also returned using
+       this data structure. <span class="emphasis"><em>this_ptr</em></span> is 
the
+       object that the method is a member of.
+      </p><pre class="programlisting">
+       // Creates a new button with the label as the text.
+       as_value func1(const fn_call&amp; fn) {
+            // Following line will ensure 'func1' is called for a DummyExt 
instance,
+            // or would throw an exception which should behave as if we 
returned the
+            // undefined value.
+            boost::intrusive_ptr&lt;DummyExt&gt; ptr = 
ensureType&lt;DummyExt&gt;(fn.this_ptr);
+       
+           if (fn.nargs &gt; 0) {
+               std::string label = fn.arg(0).to_string();
+               bool ret = ptr-&gt;dummy_text_label(label);
+               return as_value(ret);
+           }
+       }
+      </pre></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="debuext"></a>Debugging An Extension</h2></div></div></div><p>
+      As extensions are loaded dynamically at runtime, debugging one
+      can be difficult. You can use GDB, but you have the problem of
+      not being able to set a breakpoint in Gnash until
+      <span class="emphasis"><em>after</em></span> the extension has been 
loaded into
+      Gnash's VM. The easy solution is to use the Gnash debugger.
+    </p><p>
+      You can insert these few lines in any file that you wish to
+      manually start the debugger. Once at the console, you can attach
+      GDB to the process. Then you can set breakpoints, etc... and you
+      are at the point of execution where the console was started. To
+      then continue playing the movie, type the <span 
class="emphasis"><em>c</em></span>
+      (for continue) command to the Gnash console.
+    </p><pre class="programlisting">
+      // Get the debugger instance
+      static Debugger&amp; debugger = Debugger::getDefaultInstance();
+
+      // Enable the debugger
+      debugger.enabled(true);
+      // Stop and drop into a console
+      debugger.console();
+    </pre><p>
+      You can also resort to the time honored technique of creating a
+      loop before the point you want to set a breakpoint for. Gnash
+      will stop playing the movie at this point, and then you can
+      externally attach GDB to the running process, or type
+      <span class="emphasis"><em>^C</em></span> to drop into the GDB command 
console.
+    </p><pre class="programlisting">
+      bool stall = true;
+      while (stall) {
+          sleep 1;
+      }
+    </pre><p>
+      Once you have set the breakpoints you want, reset the value of
+      the <span class="emphasis"><em>stall</em></span> variable to break out 
of the
+      loop, and the Flash movie will then continue playing.
+    </p><pre class="programlisting">
+      (gdb) set variable stall = false;
+      continue
+    </pre></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="inclext"></a>Included Extensions</h2></div></div></div><p>
+      Gnash has some extensions included in the distribution. This is
+      mostly because they were written by the Gnash team. Extensions
+      can be external to gnash, Gnash needs no compiled in knowledge
+      to load an extension file.
+    </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="gtkext"></a>Gtk Extension</h4></div></div></div><p>
+    The GTK ActionScript class follows the same API as Gtk2, even down
+    to the same arguments to the same function names. This means
+    you're actually programming GTK,you're just using ActionScript
+    instead of python, perl, or C. This extension makes it possible to
+    write Flash movies that use the Gtk2 widgets for user interface
+    components.
+  </p><div class="variablelist"><dl><dt><span 
class="term">window_new</span></dt><dd><p>
+         Create a new window.
+       </p></dd><dt><span class="term">signal_connect</span></dt><dd><p>
+         Add an event handler to a widget.
+       </p></dd><dt><span 
class="term">container_set_border_width</span></dt><dd><p>
+         Set the width of the window border.
+       </p></dd><dt><span class="term">button_new_with_label</span></dt><dd><p>
+         Create a new button and give it the specified label.
+       </p></dd><dt><span 
class="term">signal_connect_swapped</span></dt><dd><p>
+         Swap signals. Commonly used for <span 
class="emphasis"><em>delete</em></span> event handling.
+       </p></dd><dt><span class="term">container_add</span></dt><dd><p>
+             Add one widget to another as a child.
+           </p></dd><dt><span class="term">widget_show</span></dt><dd><p>
+         Display the widget on the screen.
+       </p></dd><dt><span class="term">main</span></dt><dd><p>
+         Start the main GTK event loop. This function does not return.
+       </p></dd></dl></div></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a name="fileioext"></a>File I/O 
Extension</h4></div></div></div><p>
+    Flash movies are traditionally forbidden from accessing the
+    filesystem, but this may be necessary for some embedded
+    applications. Especially in the case of a user console, currently
+    there is no way to get input into a Flash movie but through a
+    TextField.
+  </p><div class="variablelist"><dl><dt><span 
class="term">fopen</span></dt><dd><p>
+         Open the file.
+       </p></dd><dt><span class="term">fread</span></dt><dd><p>
+         Read a series of bytes from the opened file.
+       </p></dd><dt><span class="term">fgetc</span></dt><dd><p>
+         Read a single byte from the opened file.
+       </p></dd><dt><span class="term">fgets</span></dt><dd><p>
+         Read a single line until a Carriage Return from the opened file.
+       </p></dd><dt><span class="term">gets</span></dt><dd><p>
+         Read a single line from the standard in.
+       </p></dd><dt><span class="term">getchar</span></dt><dd><p>
+         Read a single character from the standard in.
+       </p></dd><dt><span class="term">fwrite</span></dt><dd><p>
+       </p></dd><dt><span class="term">fputc</span></dt><dd><p>
+         Write a single character to the opened file.
+       </p></dd><dt><span class="term">fputs</span></dt><dd><p>
+         Write a single line to the opened file.
+       </p></dd><dt><span class="term">puts</span></dt><dd><p>
+         Write a single line to standard out..
+       </p></dd><dt><span class="term">putchar</span></dt><dd><p>
+         Write a single character to standard out..
+       </p></dd><dt><span class="term">fflush</span></dt><dd><p>
+         Flush the current opened file to disk.
+       </p></dd><dt><span class="term">fseek</span></dt><dd><p>
+         Seek to a location within the opened file.
+       </p></dd><dt><span class="term">ftell</span></dt><dd><p>
+         Report the current position within the opened file.
+       </p></dd><dt><span class="term">fclose</span></dt><dd><p>
+         Close the opened file.
+       </p></dd></dl></div></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a name="mysqlext"></a>MySQL 
Extension</h4></div></div></div><p>
+    The MySQL ActionScript class follows the same API as MySQL, even down
+    to the same arguments to the same function names. This enables a
+    Flash movie to have direct access to a MySQL
+    database. Traditionally Flash movies have had no database
+    support, they either had to use arrays, or use XML to communicate
+    to an application specific external database daemon.
+  </p><div class="variablelist"><dl><dt><span 
class="term">connect</span></dt><dd><p>
+         Connect to a MySQL database.
+       </p></dd><dt><span class="term">qetData</span></dt><dd><p>
+         Get data from the database.
+       </p></dd><dt><span class="term">disconnect</span></dt><dd><p>
+         Disconnect from a MySQL database.
+       </p></dd><dt><span class="term">query</span></dt><dd><p>
+         Execute an SQL query to the database.
+       </p></dd><dt><span class="term">fetch_row</span></dt><dd><p>
+         Fetch a row from the query results.
+       </p></dd><dt><span class="term">num_fields</span></dt><dd><p>
+       </p></dd><dt><span class="term">free_result</span></dt><dd><p>
+         Free the results of a query.
+       </p></dd><dt><span class="term">store_results</span></dt><dd><p>
+         Store the results of a query.
+       </p></dd></dl></div></div></div></div><div class="chapter" 
lang="en"><div class="titlepage"><div><div><h2 class="title"><a 
name="rtmp"></a>Chapter 7. RTMP Protocol</h2></div></div></div><div 
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a 
href="#amf">AMF Format</a></span></dt></dl></div><p>
+    This document is based mostly on my own reverse engineering of the
+    RTMP protocol and AMF format. <span 
class="emphasis"><em>tcpdump</em></span> and
+    <span class="emphasis"><em>ethereal</em></span> are your friend. Some 
additional info that got
+    me started was from the <a class="ulink" 
href="http://www.osflash.org/red5"; target="_top">Red5</a>
+    project. <span class="emphasis"><em>Red5</em></span> is the only other 
open source Flash
+    server. So some details are still vague, but as the implementation
+    appears to work, we'll figure out what they are later.
+  </p><p>
+    The Real Time Messaging Protocol was created by MacroMedia (now
+    Adobe) for delivering Flash objects and video over a network
+    connection. Currently the only servers which support this format
+    are the MacroMedia Media sever, and the Open Source Red5 project.
+  </p><p>
+    This is a simple protocol, optimized for poor bandwidth
+    connections. It can support up to 64 concurrent streams over the
+    same network connection. Part of each AMF packet header contains
+    the index number of the stream. A single RTMP message can contain
+    multiple AMF packets.
+  </p><p>
+    An RTMP connection uses Tcp/ip port 1935. It is also possible to
+    tunnel RTMP over an HTTP connection using port 80. Each AMF packet
+    is 128 bytes long except for streaming audio, which has 64 byte
+    packets.
+  </p><p>
+    The basics of the RTMP protocol are as follows. All communications
+    are initiated by the client.
+    </p><div class="mediaobject" align="center"><img src="images/rtmp.png" 
align="middle"></div><p>
+  </p><p>
+    The client starts the RTMP connection by sending a single byte
+    with a value of 0x3. This byte is followed by a data block of 1536
+    bytes. The format if this data block is unknown, but it appears to
+    not be actually used by the protocol except as a handshake.
+  </p><p>
+    The server receives this packet, stores the 1536 byte data block,
+    and then send a single byte with the value of 0x3, followed by two
+    1536 data blocks. The second data block is the full contents of
+    the original data block as sent by the client.
+  </p><p>
+    The client receives the 1536 byte data block, and if they match,
+    the connection is established. After the handshake process is
+    done, there are three other messages that the client sends to the
+    sever to start the data flowing.
+  </p><p>
+    The first AMF packet sent to the server contains the
+    <span class="emphasis"><em>connect</em></span> packet. This doesn't appear 
to do
+    much but notify the server the client is happy with the
+    handshake, and ready to start reading packets.
+  </p><p>
+    The second packet is the <span 
class="emphasis"><em>NetConnection</em></span> object from
+    the client. This ActionScript class is used by the Flash movie to
+    create the network connection to the server.
+  </p><p>
+    The third packet is the <span class="emphasis"><em>NetStream</em></span> 
object from the
+    client. This is the ActionScript class used to specify the file to
+    be streamed by the server.
+  </p><p>
+    The RTMP packet for our example looks like this:
+   
+    </p><pre class="programlisting">
+      030000190000c91400000000020007connect00?f0000000000000030003app0200#
+      software/gnash/tests/1153948634.flv0008flashVer02000cLNX 6,0,82,0 0006
+      swfUrl02001dfile:///file|%2Ftmp%2Fout.swfc30005tcUrl\002\0004
+      rtmp://localhost/software/gnash/tests/1153948634.flv\000\000\t
+      \002\000\005userx
+    </pre><p>
+    
+    We'll take this apart in a bit, but you can see how all three AMF
+    packets are in the same message. The message is received in
+    several 128 byte blocks, with the last one being less than
+    that. The total size of the RTMP message is in the header, so the
+    reader can tell if the entire message was read or not.
+  </p><p>
+    The RTMP header is first, followed by the connect message as an
+    ASCII string as the message body. The following AMF packet is the
+    <span class="emphasis"><em>NetConnection</em></span> one, which specifies 
that this is coming
+    from a Flash application. This also contains the file path the server
+    can use to find the file to stream. This is then followed by the
+    version number, which I assume is the version of the Flash player,
+    so the server knows what it is talking to.
+  </p><p>
+    The third packet is the one from <span 
class="emphasis"><em>NetStream</em></span>, which
+    specifies the URL used for the movie, followed by the user name
+    for a semblance of security.
+  </p><p>
+    For the next level of detail, we'll explain the format of AMF. AMF
+    is used by the RTMP protocol to transfer data. Each Flash object
+    is encapsulated in an AMF packet, including streaming audio or
+    video.
+  </p><p>
+    The first byte of the RTMP header determines two things about the
+    rest of the message. The first 2 bits of this byte signify the
+    total size of the RTMP header. The RTMP header is of a variable
+    size, so this is important.
+
+    </p><div class="variablelist"><dl><dt><span 
class="term">00</span></dt><dd><p>
+           This specifies the header contains 12 bytes, including
+           this one.
+         </p></dd><dt><span class="term">01</span></dt><dd><p>
+           This specifies the header contains 8 bytes, including this
+           one.
+         </p></dd><dt><span class="term">02</span></dt><dd><p>
+           This specifies the header contains 4 bytes, including this
+           one.
+         </p></dd><dt><span class="term">03</span></dt><dd><p>
+           This specifies the header contains 1 byte, so this is the
+           complete header.
+         </p></dd></dl></div><p>
+  </p><p>
+    The other 6 bits in this byte represent the AMF index. As a single
+    RTMP connection can support multiple data streams, this signifies
+    which stream this packet is for. Once an AMF object is fully
+    received by the client, the AMF index may be reused.
+  </p><p>
+    For messages with headers of at least 4 bytes, the next 3 bytes are
+    used by audio and video data packets, but at this time the meaning
+    of this field is unknown.
+  </p><p>
+    For messages with a 8 byte or larger header, the next 3 bytes
+    determine the size of the RTMP message being transmitted. Messages
+    with a 1 byte or 4 byte header use a standard size, 128 bytes for
+    video, and 64 bytes for audio.
+  </p><p>
+    For messages with an 8 byte or larger header, the next byte is the
+    type of the AMF object.
+    
+    </p><div class="variablelist"><dl><dt><span 
class="term">0x3</span></dt><dd><p>
+           This specifies the content type of the RTMP packet is the
+           number of bytes read. This is used to start the RTMP
+           connection.
+         </p></dd><dt><span class="term">0x4</span></dt><dd><p>
+           This specifies the content type of the RTMP message is a
+           <span class="emphasis"><em>ping</em></span> packet.
+         </p></dd><dt><span class="term">0x5</span></dt><dd><p>
+           This specifies the content type of the RTMP message is
+           server response of some type.
+         </p></dd><dt><span class="term">0x6</span></dt><dd><p>
+           This specifies the content type of the RTMP packet is
+           client request of some type.
+         </p></dd><dt><span class="term">0x8</span></dt><dd><p>
+           This specifies the content type of the RTMP packet is an
+           audio message.
+         </p></dd><dt><span class="term">0x9</span></dt><dd><p>
+           This specifies the content type of the RTMP message is a
+           video packet.
+         </p></dd><dt><span class="term">0x12</span></dt><dd><p>
+           This specifies the content type of the RTMP message is
+           notify. 
+         </p></dd><dt><span class="term">0x13</span></dt><dd><p>
+           This specifies the content type of the RTMP message is
+           shared object.
+         </p></dd><dt><span class="term">0x14</span></dt><dd><p>
+           This specifies the content type of the RTMP message is
+           remote procedure call. This invokes the method of a Flash
+           class remotely.
+         </p></dd></dl></div><p>     
+  
+  </p><p>
+    There are two sets of data types to consider. One set is used by
+    the to specify the content type of the AMF object, the other is an
+    ActionScript data type tag used to denote which type of object is
+    being transferred.
+  </p><p>
+    The values of the initial type byte are:
+    </p><div class="variablelist"><dl><dt><span 
class="term">0x0</span></dt><dd><p>
+           This specifies the data in the AMF packet is a numeric
+           value. All numeric values in Flash are 64 bit,
+           <span class="emphasis"><em>big-endian</em></span>.
+         </p></dd><dt><span class="term">0x1</span></dt><dd><p>
+           This specifies the data in the AMF packet is a boolean
+           value.
+         </p></dd><dt><span class="term">0x2</span></dt><dd><p>
+           This specifies the data in the AMF packet is an
+           <span class="emphasis"><em>ASCII</em></span> string. 
+         </p></dd><dt><span class="term">0x3</span></dt><dd><p>
+           This specifies the data in the AMF packet is a Flash
+           object. The Flash object data type field further along in
+           the message specifies which type of ActionScript object it
+           is.
+         </p></dd><dt><span class="term">0x4</span></dt><dd><p>
+           This specifies the data in the AMF packet is a Flash
+           movie, ie. another Flash movie.
+         </p></dd><dt><span class="term">0x5</span></dt><dd><p>
+           This specifies the data in the AMF packet is a NULL
+           value. NULL is often used as the return code from calling
+           Flash functions.
+         </p></dd><dt><span class="term">0x6</span></dt><dd><p>
+           This specifies the data in the AMF packet is a
+           undefined. This is also used as the return code from
+           calling Flash functions.
+         </p></dd><dt><span class="term">0x7</span></dt><dd><p>
+           This specifies the data in the AMF packet is a reference.
+         </p></dd><dt><span class="term">0x8</span></dt><dd><p>
+           This specifies the data in the AMF packet is a ECMA
+           array.
+         </p></dd><dt><span class="term">0x9</span></dt><dd><p>
+           This specifies the data in the AMF packet is the end of an
+           object definition. As an object is transmitted with
+           multiple AMF packets, this lets the server know when the
+           end of the object is reached.
+         </p></dd><dt><span class="term">0xa</span></dt><dd><p>
+           This specifies the data in the AMF packet is a Strict
+           array.
+         </p></dd><dt><span class="term">0xb</span></dt><dd><p>
+           This specifies the data in the AMF packet is a date.
+         </p></dd><dt><span class="term">0xc</span></dt><dd><p>
+           This specifies the data in the AMF packet is a multi-byte
+           string. Multi-byte strings are used for international
+           language support to represent non <span 
class="emphasis"><em>ASCII</em></span>
+           fonts.
+         </p></dd><dt><span class="term">0xd</span></dt><dd><p>
+           This specifies the data in the AMF packet is a an
+           unsupported feature.
+         </p></dd><dt><span class="term">0xe</span></dt><dd><p>
+           This specifies the data in the AMF packet is a record
+           set.
+         </p></dd><dt><span class="term">0xf</span></dt><dd><p>
+           This specifies the data in the AMF packet is a AML
+           object. XML objects are then parsed by the
+           <span class="emphasis"><em>XML</em></span> ActionScript class.
+         </p></dd><dt><span class="term">0x10</span></dt><dd><p>
+           This specifies the data in the AMF packet is a typed object.
+         </p></dd></dl></div><p>
+    
+  </p><p>
+    For messages with a 12 byte header, the last 4 bytes are the
+    routing of the message. If the destination is the server, this
+    value is the NetStream object source. If the destination is the
+    client, this is the NetStream object for this RTMP message. A
+    value of 0x00000000 appears to be reserved for the NetConnection
+    object. 
+  </p><p>
+    Multiple AMF streams can be contained in a single RTMP messages,
+    so it's important to check the index of each AMF packet.
+  </p><p>
+    An example RTMP header might look like this. (spaces added between
+    fields for clarity) All the numbers are in hex.
+
+    </p><pre class="screen">
+      03 000019 0000c9 14 000000000
+    </pre><p>
+    
+    </p><div class="variablelist"><dl><dt><span 
class="term">03</span></dt><dd><p>
+           The first two bits of this byte are the size of the
+           header, which in this example is 00, for a 12 byte
+           header. The next 6 bits is the AMF stream index number,
+           which in this example is 0x3.
+         </p></dd><dt><span class="term">000019</span></dt><dd><p>
+           These 3 bytes currently have an unknown purpose.
+         </p></dd><dt><span class="term">000c9</span></dt><dd><p>
+           Since this example has a 12 byte header, this is the size
+           of the RTMP message, in this case 201 bytes.
+         </p></dd><dt><span class="term">14</span></dt><dd><p>
+           This is the content type of the RTMP message, which in
+           this case is to invoke a remote function call. (which we
+           later see is the connect function).
+         </p></dd><dt><span class="term">00000000</span></dt><dd><p>
+           The source is the NetConnection object used to start this
+           connection.
+         </p></dd></dl></div><p>
+
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="amf"></a>AMF 
Format</h2></div></div></div><p>
+    The AMF format is used in the LocalConnection, SharedObject,
+    NetConnection, and NetStream ActionScript classes. This is a means
+    of binary data interchange between Flash movies, or between a
+    Flash player and a Flash server.
+  </p><p>
+    Like the RTMP messages, an AMF packet header can be of a variable
+    size. The size is either the same as the initial header of the
+    RTMP message, or a 1 byte header, which is commonly used for
+    streaming audio or video data.
+  </p><p>
+    The body of an AMF packet may look something like this
+    example. The spaces have been added for clarity.
+    
+    </p><pre class="screen">
+      02  0007 636f6e6e656374
+    </pre><p>
+
+    </p><div class="variablelist"><dl><dt><span 
class="term">02</span></dt><dd><p>
+           This is a single byte header. The value of the first 2
+           bits is 0x3, and the AMF index is also 0x3.
+         </p></dd><dt><span class="term">0007</span></dt><dd><p>
+           This is the length in bytes of the string.
+         </p></dd><dt><span class="term">63 6f 6e 6e 65 63 
74</span></dt><dd><p>
+           This is the string. Note that there is no null terminator
+           since the length is specified.
+         </p></dd></dl></div><p>
+
+  </p></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="nsapi"></a>Chapter 8. 
Mozilla/Firefox NPAPI Plugin</h2></div></div></div><div class="toc"><p><b>Table 
of Contents</b></p><dl><dt><span class="sect1"><a href="#plugincapi">Plugin C 
API</a></span></dt><dt><span class="sect1"><a href="#plugincppapi">Plugin C++ 
API</a></span></dt><dt><span class="sect1"><a href="#glthread">OpenGL and 
Threads</a></span></dt><dt><span class="sect1"><a href="#eventhandle">Plugin 
Event Handling</a></span></dt></dl></div><p>
+    The Mozilla SDK has two API layers for plugins. The older layer is
+    documented in the <a class="ulink" 
href="http://www.gnu.org/software/gnash/manual/plugin.pdf"; target="_top">
+    Geeko Plugin API Reference</a>, and the newer layer doesn't
+    appear to be documented. The new API is simpler, and is portable
+    across multiple versions of Mozilla or Firefox. The new API is
+    just a layer on top of the older one, so this manual still
+    applies.
+  </p><p>
+    Most of the programming of a plugin is filling in real emphasis for
+    the standard API functions and methods. Firefox uses these to
+    create the plugin, and to send it data.
+  </p><p>
+    When initializing or destroying a plugin, no matter how many
+    instances are being used, the C API is used. These functions are
+    typically called once for each plugin that is loaded.
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="plugincapi"></a>Plugin C 
API</h2></div></div></div><p>
+      The lower layer is a C based API which is used by Firefox to
+      initialize and destroy a plugin. This is so a plugin can be
+      portable across multiple systems, since C++ emphasis is not portable
+      between most C++ compilers. This is where most of the behind the
+      scenes work is done in a plugin. For Gnash, the sources this
+      lower layer are in <span 
class="emphasis"><em>plugin/mozilla-sdk</em></span>. They were
+      added to the Gnash source tree so it wouldn't be necessary to
+      have the Mozilla development packages installed to compile the
+      Gnash plugin.
+    </p><p>
+      This is also the older API used for plugins, so is usually the
+      one used if you dig around for plugin examples on the web. These
+      are the main functions which have to be implemented in a plugin
+      for it to be recognized by the browser, and to be initialized
+      and destroyed.
+    </p><div class="variablelist"><dl><dt><span 
class="term">NS_PluginInitialize</span></dt><dd><p>
+           This C function gets called once when the plugin is
+           loaded, regardless of how many instantiations there are
+           actually playing movies. So this is where all the one
+           time only initialization stuff goes that is shared by all
+           the threads.
+         </p></dd><dt><span 
class="term">NS_NewPluginInstance</span></dt><dd><p>
+           This instantiates a new object for the browser. Returning
+           a pointer to the C++ plugin object is what ties the C++
+           and C emphasis parts of the API together.
+         </p></dd><dt><span 
class="term">NS_DestroyPluginInstance</span></dt><dd><p>
+           This destroys our instantiated object when the browser is
+           done.
+         </p></dd><dt><span class="term">NS_PluginShutdown</span></dt><dd><p>
+           This is called when a plugin is shut down, so this is
+           where all the one time only shutdown stuff goes.
+         </p></dd><dt><span 
class="term">NPP_GetMIMEDescription</span></dt><dd><p>
+           This is called to get the MIME types the plugin supports.
+         </p></dd><dt><span class="term">NS_PluginGetValue</span></dt><dd><p>
+           This is used by Firefox to query information from the
+           plugin, like the supported MIME type, the version number,
+           and a description.
+         </p></dd></dl></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="plugincppapi"></a>Plugin C++ API</h2></div></div></div><p>
+      The higher level layer is the one we are most concerned
+      with. This is an instantiation of the
+      <span class="emphasis"><em>nsPluginInstanceBase</em></span> class, as 
defined by the
+      Mozilla SDK, for our plugin. With this API, a plugin is mostly
+      defining the standard entry points for Firefox, and the emphasis
+      that implements the glue between the Firefox and our plugin.
+    </p><p>
+      These are called for each instantiation of plugin. If there are
+      three Flash movies on a web page, then three instances are
+      created. Unfortunately for plugin programmers, these functions
+      may randomly be called more than once, so it's good to use
+      initialization flags for things that should only be done one per
+      thread. For instance, <span 
class="emphasis"><em>nsPluginInstance::init()</em></span> and
+      <span class="emphasis"><em>nsPluginInstance::SetWindow()</em></span> are 
called more than
+      once, so the plugin must protect against actions that could be
+      destructive.
+    </p><div class="variablelist"><dl><dt><span 
class="term">nsPluginInstance::nsPluginInstance</span></dt><dd><p>
+           Create a new plugin object.
+         </p></dd><dt><span 
class="term">nsPluginInstance::init</span></dt><dd><p>
+           This methods initializes the plugin object, and is
+           called for every movie which gets played. This is where
+           the thread-specific information goes.
+         </p></dd><dt><span 
class="term">nsPluginInstance::SetWindow</span></dt><dd><p>
+           This sets up the window the plugin is supposed to render
+           into. This calls passes in various information used by
+           the plugin to setup the window. This may get called
+           multiple times by each instantiated object, so it can't
+           do much but window specific setup here. This is where the
+           main emphasis is that sets up the window for the plugin.
+         </p></dd><dt><span 
class="term">nsPluginInstance::NewStream</span></dt><dd><p>
+           Opens a new incoming data stream, which is the flash
+           movie we want to play. A URL can be pretty ugly, like in
+           this example:
+           
http://www.sickwave.com/swf/navbar/navbar_sw.swf?atfilms=http%3a//www.atm.com/af/home/&amp;shickwave=http%3a//www.sickwave.com&amp;gblst=http%3a//gbst.sickwave.com/gb/gbHome.jsp&amp;known=0
 
../flash/gui.swf?ip_addr=foobar.com&amp;ip_port=3660&amp;show_cursor=true&amp;path_prefix=../flash/&amp;trapallkeys=true"
+           So this is where we parse the URL to get all the options
+           passed in when invoking the plugin.
+         </p></dd><dt><span 
class="term">nsPluginInstance::Write</span></dt><dd><p>
+           Read the data stream from Mozilla/Firefox.  For now we
+           read the bytes and write them to a disk file.
+         </p></dd><dt><span 
class="term">nsPluginInstance::WriteReady</span></dt><dd><p>
+           Return how many bytes we can read into the buffer.
+         </p></dd><dt><span 
class="term">nsPluginInstance::DestroyStream</span></dt><dd><p>
+           Destroy the data stream we've been reading. For Gnash,
+           when the stream is destroyed means we've grabbed the
+           entire movie. So we signal the thread to start reading and
+           playing the movie.
+         </p></dd><dt><span 
class="term">nsPluginInstance::shut</span></dt><dd><p>
+           This is where the movie playing specific shutdown emphasis goes.
+         </p></dd><dt><span 
class="term">nsPluginInstance::~nsPluginInstance</span></dt><dd><p>
+           This destroys our plugin object.
+         </p></dd><dt><span 
class="term">NS_PluginInitialize::initGL</span></dt><dd><p>
+           This is a Gnash internal function that sets up OpenGL.
+         </p></dd><dt><span 
class="term">NS_PluginInitialize::destroyContext</span></dt><dd><p>
+           This is a Gnash internal function that destroys a GLX
+           context. 
+         </p></dd><dt><span 
class="term">nsPluginInstance::getVersion</span></dt><dd><p>
+           This returns the version of Mozilla this plugin supports.
+         </p></dd><dt><span 
class="term">nsPluginInstance::GetValue</span></dt><dd><p>
+           This returns information to the browser about the plugin's
+           name and description.
+         </p></dd><dt><span 
class="term">nsPluginInstance::URLNotify</span></dt><dd><p>
+         </p></dd></dl></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="glthread"></a>OpenGL and Threads</h2></div></div></div><p>
+      Neither OpenGL nor X11 has any built-in support for threads. Most
+      actions aren't even atomic, so care has to be made to not corrupt
+      any internal data. While it is difficult to render OpenGL from
+      multiple threads, it can be done with the proper locking. The
+      downside is the locking adds a performance hit, since all the
+      threads will have to have the access synchronized by using
+      mutexes.
+    </p><p>
+      The X11 context is maintained one per instantiation of the
+      plugin. It is necessary to lock access to the X11 context when
+      using threads by using <span 
class="emphasis"><em>XLockDisplay()</em></span> and
+      <span class="emphasis"><em>XUnlockDisplay()</em></span>. A connection to 
the X11
+      server is opened for every instantiation of the plugin using
+      <span class="emphasis"><em>XOpenDisplay()</em></span>.
+    </p><p>
+      The <span class="emphasis"><em>GLX Context</em></span> is maintained one 
per
+      instantiation of the plugin for a web page. If there are more
+      than one Flash movie, there is more than one GLX Context. A GLX
+      context can be created by using <span 
class="emphasis"><em>glXCreateContext()</em></span>,
+      and then later destroyed by using <span 
class="emphasis"><em>glXDestroyContext()</em></span>.
+      When swapping threads, the context is changed using
+      <span class="emphasis"><em>glXMakeCurrent()</em></span>.
+    </p><p>
+      All the emphasis that directly accesses a GLX context or the X11
+      display must be wrapped with a mutex.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="eventhandle"></a>Plugin Event Handling</h2></div></div></div><p>
+      Firefox on most UNIX systems is a GTK+ application, so it is
+      possible to have the plugin hook into the X11 event handling via
+      GLX or GTK. Since Firefox uses GTK, so does Gnash. This also
+      allows the addition of a right-click mouse menu for controlling
+      the player. The GTK build of Gnash offers the best browsing
+      experience as it's more functional than the SDL version.
+    </p><p>
+      It is also possible to disable the <span 
class="emphasis"><em>GTK</em></span> support so
+      only the older <span class="emphasis"><em>SDL</em></span> support is 
used. In this case 
+      Gnash can't support event handling within the browser. This
+      means that when using the SDL of the plugin, mouse clicks and
+      keys pressed get ignored. Windows also can't be resized, and
+      sometimes they overrun their boundaries as well. To disable the
+      GTK support and force SDL to be used anyway, configure with
+      <span class="emphasis"><em>--disable-glext</em></span>
+    </p><p>
+      
+    </p></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="appendix"></a>Appendix</h2></div></div></div><div class="sect2" 
lang="en"><div class="titlepage"><div><div><h3 class="title"><a 
name="codestyle"></a>Code Style</h3></div></div></div><p>
+      I know any discussion of coding styles leads to strong opinions,
+      so I'll state simply I follow the <a class="ulink" 
href="http://www.gnu.org/prep/standards/standards.html"; target="_top">GNU
+      Coding Standards</a>. Where there is some flexibility as to
+      the location of braces, I prefer mine on the end of a line when
+      using an <span class="emphasis"><em>if</em></span>, <span 
class="emphasis"><em>while</em></span>, or <span 
class="emphasis"><em>do</em></span>
+      statement. I find this more compact style easier to read and
+      parse by eye. I'm also a big fan of always using
+      braces around <span class="emphasis"><em>if</em></span> statements, even 
if they're one
+      liners.
+    </p><p>
+      Here's my tweaked style settings for <span 
class="emphasis"><em>Emacs</em></span>, the one
+      true editor to rule them all.
+
+      </p><pre class="programlisting">
+      (defconst my-style
+          '((c-tab-always-indent   . t)
+           (c-auto-newline        . t)
+           (c-hanging-braces-alist . (
+                                  (brace-list-intro)
+                                  (namespace-open)
+                                  (inline-open)
+                                  (block-open)
+                                  (brace-list-open)
+                                  (brace-list-close)
+                                  (brace-entry-open)
+                                  (brace-else-brace)
+                                  (brace-elseif-brace)
+                                  (class-open after)
+                                  (class-close)
+                                  (defun-open after)
+                                  (defun-close)
+                                  (extern-lang-open)
+                                  (inexpr-class-open)
+                                  (statement-open)
+                                  (substatement-open)
+                                  (inexpr-class-close)))
+            (c-hanging-colons-alist . ((member-init-intro before)
+                                   (inher-intro)
+                                   (case-label after)
+                                   (label after)
+                                   (access-label after)))
+            (c-offsets-alist   . (
+                                  (innamespace . 0)
+                                   (case-label  . 2)
+                                  ))
+            (c-cleanup-list    . (
+                                  (scope-operator)
+                                  (empty-defun-braces)
+                                  (brace-else-brace)
+                                  (brace-elseif-brace)
+                                  (defun-close-semi)
+                                  (list-close-comma)
+                                  )
+                               )
+    ;; no automatic newlines after ';' if following line non-blank or inside
+    ;; one-line inline methods
+    (add-to-list 'c-hanging-semi&amp;comma-criteria
+                'c-semi&amp;comma-no-newlines-before-nonblanks)
+    (add-to-list 'c-hanging-semi&amp;comma-criteria
+                'c-semi&amp;comma-no-newlines-for-oneline-inliners)
+;    (knr-argdecl-intro . -)
+    (c-echo-syntactic-information-p . t)
+    )
+  "My GNU Programming Style")
+    </pre><p>
+
+    </p><p>
+      Another coding consideration: comments are good!  Over
+      commenting isn't good.  Here is an over commented example:
+
+      </p><pre class="programlisting">
+       counter++;              // increment counter
+      </pre><p>
+      
+      Gnash also uses <a class="ulink" href="http://www.doxygen.org"; 
target="_top">Doxygen</a> style
+      comments. These are processed by Doxygen when building a cross
+      reference of all the classes, and is a good way to help push
+      internals documentation from the depths of the code into
+      documentation where it can be seen by others.
+    </p><p>
+      <span class="emphasis"><em>Doxygen</em></span> style comments for <span 
class="emphasis"><em>C++</em></span> code involves
+      simply using three slashes <span class="emphasis"><em>///</em></span> 
instead of the
+      standard two slashes <span class="emphasis"><em>//</em></span> used for 
C++
+      comments. Here's a short comment block for the
+      <span class="emphasis"><em>XML::cloneNode()</em></span> method:
+
+      </p><pre class="programlisting">
+       /// \brief copy a node
+       ///
+       /// Method; constructs and returns a new XML node of the same type,
+       /// name, value, and attributes as the specified XML object. If deep
+       /// is set to true, all child nodes are recursively cloned, resulting
+       /// in an exact copy of the original object's document tree.
+       XMLNode &amp;
+       XML::cloneNode(XMLNode &amp;newnode, bool deep) {
+       ...
+       }
+      </pre><p> 
+    </p><p>
+      The <span class="emphasis"><em>\brief</em></span> keyword means that the 
+      text becomes associated
+      when listing all the classes on the generated web pages. The
+      text after the blank link becomes the detailed description which
+      appears on the generated web page for that class and method.
+    </p></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="authors"></a>Chapter 9. 
Authors</h2></div></div></div><p>
+        <span class="application">Gnash</span> is maintained by Rob Savoye. 
Other active developers
+       are: Sandro Santilli, Bastiaan Jacques, Udo Giacomozzi, Chad
+       Musick, Benjamin Wolsey, and Zou Lunkai. Please send all
+       comments and suggestions to <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden
+       </a>&gt;</code>. Past and sometimes current developers are Tomas
+       Groth and Markus Gothe.
+    </p><p>
+        <span class="application">Gnash</span> was initially derived from 
<span class="application">GameSWF</span>.
+        <span class="application">GameSWF</span> is maintained by
+        Thatcher Ulrich <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>.  The following
+        people contributed to <span class="application">GameSWF</span>:
+        Mike Shaver, Thierry Berger-Perrin,
+       Ignacio Castaño, Willem Kokke, Vitaly Alexeev, Alexander Streit, 
+        and Rob Savoye.
+    </p></div><div class="appendix" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="fdl"></a>Appendix A. GNU 
Free Documentation License</h2></div><div><p class="releaseinfo">
+      Version 1.1, March 2000
+    </p></div><div><p class="copyright">Copyright © 2000 Free Software 
Foundation, Inc.</p></div><div><div class="legalnotice"><a 
name="fdl-legalnotice"></a><p>
+       </p><div class="address"><p>Free Software Foundation, Inc. <span 
class="street">59 Temple Place, <br>
+        Suite 330</span>, <span class="city">Boston</span>, <span 
class="state">MA</span>  <br>
+        <span class="postcode">02111-1307</span>  <span 
class="country">USA</span></p></div><p> 
+       Everyone is permitted to copy and distribute verbatim copies of this 
+        license document, but changing it is not allowed.
+      </p></div></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a href="#fdl-preamble">0. 
PREAMBLE</a></span></dt><dt><span class="sect1"><a href="#fdl-section1">1. 
APPLICABILITY AND DEFINITIONS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section2">2. VERBATIM COPYING</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section3">3. COPYING IN 
QUANTITY</a></span></dt><dt><span class="sect1"><a href="#fdl-section4">4. 
MODIFICATIONS</a></span></dt><dt><span class="sect1"><a href="#fdl-section5">5. 
COMBINING DOCUMENTS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section6">6. COLLECTIONS OF DOCUMENTS</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section7">7. AGGREGATION WITH INDEPENDENT 
WORKS</a></span></dt><dt><span class="sect1"><a href="#fdl-section8">8. 
TRANSLATION</a></span></dt><dt><span class="sect1"><a href="#fdl-section9">9. 
TERMINATION</a></span></dt><dt><span class="sect1"><a href="#fdl-section10">10. 
FUTURE REVISIONS OF THIS LICENSE</a></span></dt><dt><span class="sect1"><a 
href="#fdl-using">Addendum</a></span></dt></dl></div><div class="sect1" 
lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: 
both"><a name="fdl-preamble"></a>0. PREAMBLE</h2></div></div></div><p>
+      The purpose of this License is to make a manual, textbook, or
+      other written document "free" in the sense of
+      freedom: to assure everyone the effective freedom to copy and
+      redistribute it, with or without modifying it, either
+      commercially or non-commercially. Secondarily, this License
+      preserves for the author and publisher a way to get credit for
+      their work, while not being considered responsible for
+      modifications made by others.
+    </p><p>
+      This License is a kind of "copyleft", which means
+      that derivative works of the document must themselves be free in
+      the same sense. It complements the GNU General Public License,
+      which is a copyleft license designed for free software.
+    </p><p>
+      We have designed this License in order to use it for manuals for
+      free software, because free software needs free documentation: a
+      free program should come with manuals providing the same
+      freedoms that the software does. But this License is not limited
+      to software manuals; it can be used for any textual work,
+      regardless of subject matter or whether it is published as a
+      printed book. We recommend this License principally for works
+      whose purpose is instruction or reference.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section1"></a>1. APPLICABILITY AND 
DEFINITIONS</h2></div></div></div><p><a name="fdl-document"></a>
+      This License applies to any manual or other work that contains a
+      notice placed by the copyright holder saying it can be
+      distributed under the terms of this License. The
+      "Document", below, refers to any such manual or
+      work. Any member of the public is a licensee, and is addressed
+      as "you".
+    </p><p><a name="fdl-modified"></a>
+      A "Modified Version" of the Document means any work
+      containing the Document or a portion of it, either copied
+      verbatim, or with modifications and/or translated into another
+      language.
+    </p><p><a name="fdl-secondary"></a>
+      A "Secondary Section" is a named appendix or a
+      front-matter section of the <a class="link" 
href="#fdl-document">Document</a> that deals exclusively
+      with the relationship of the publishers or authors of the
+      Document to the Document's overall subject (or to related
+      matters) and contains nothing that could fall directly within
+      that overall subject. (For example, if the Document is in part a
+      textbook of mathematics, a Secondary Section may not explain any
+      mathematics.)  The relationship could be a matter of historical
+      connection with the subject or with related matters, or of
+      legal, commercial, philosophical, ethical or political position
+      regarding them.
+    </p><p><a name="fdl-invariant"></a>
+      The "Invariant Sections" are certain <a class="link" 
href="#fdl-secondary"> Secondary Sections</a> whose titles
+      are designated, as being those of Invariant Sections, in the
+      notice that says that the <a class="link" 
href="#fdl-document">Document</a> is released under this
+      License.
+    </p><p><a name="fdl-cover-texts"></a>
+      The "Cover Texts" are certain short passages of
+      text that are listed, as Front-Cover Texts or Back-Cover Texts,
+      in the notice that says that the <a class="link" 
href="#fdl-document">Document</a> is released under this
+      License.
+    </p><p><a name="fdl-transparent"></a>
+      A "Transparent" copy of the <a class="link" href="#fdl-document"> 
Document</a> means a machine-readable
+      copy, represented in a format whose specification is available
+      to the general public, whose contents can be viewed and edited
+      directly and straightforwardly with generic text editors or (for
+      images composed of pixels) generic paint programs or (for
+      drawings) some widely available drawing editor, and that is
+      suitable for input to text formatters or for automatic
+      translation to a variety of formats suitable for input to text
+      formatters. A copy made in an otherwise Transparent file format
+      whose markup has been designed to thwart or discourage
+      subsequent modification by readers is not Transparent.  A copy
+      that is not "Transparent" is called "Opaque".
+    </p><p>
+      Examples of suitable formats for Transparent copies include
+      plain ASCII without markup, Texinfo input format, LaTeX input
+      format, SGML or XML using a publicly available DTD, and
+      standard-conforming simple HTML designed for human
+      modification. Opaque formats include PostScript, PDF,
+      proprietary formats that can be read and edited only by
+      proprietary word processors, SGML or XML for which the DTD
+      and/or processing tools are not generally available, and the
+      machine-generated HTML produced by some word processors for
+      output purposes only.
+    </p><p><a name="fdl-title-page"></a>
+      The "Title Page" means, for a printed book, the
+      title page itself, plus such following pages as are needed to
+      hold, legibly, the material this License requires to appear in
+      the title page. For works in formats which do not have any title
+      page as such, "Title Page" means the text near the
+      most prominent appearance of the work's title, preceding the
+      beginning of the body of the text.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section2"></a>2. VERBATIM COPYING</h2></div></div></div><p>
+      You may copy and distribute the <a class="link" 
href="#fdl-document">Document</a> in any medium, either
+      commercially or noncommercially, provided that this License, the
+      copyright notices, and the license notice saying this License
+      applies to the Document are reproduced in all copies, and that
+      you add no other conditions whatsoever to those of this
+      License. You may not use technical measures to obstruct or
+      control the reading or further copying of the copies you make or
+      distribute. However, you may accept compensation in exchange for
+      copies. If you distribute a large enough number of copies you
+      must also follow the conditions in <a class="link" href="#fdl-section3" 
title="3. COPYING IN QUANTITY">section 3</a>.
+    </p><p>
+      You may also lend copies, under the same conditions stated
+      above, and you may publicly display copies.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section3"></a>3. COPYING IN QUANTITY</h2></div></div></div><p>
+      If you publish printed copies of the <a class="link" 
href="#fdl-document">Document</a> numbering more than 100,
+      and the Document's license notice requires <a class="link" 
href="#fdl-cover-texts">Cover Texts</a>, you must enclose
+      the copies in covers that carry, clearly and legibly, all these
+      Cover Texts: Front-Cover Texts on the front cover, and
+      Back-Cover Texts on the back cover. Both covers must also
+      clearly and legibly identify you as the publisher of these
+      copies. The front cover must present the full title with all
+      words of the title equally prominent and visible. You may add
+      other material on the covers in addition. Copying with changes
+      limited to the covers, as long as they preserve the title of the
+      <a class="link" href="#fdl-document">Document</a> and satisfy these
+      conditions, can be treated as verbatim copying in other
+      respects.
+    </p><p>
+      If the required texts for either cover are too voluminous to fit
+      legibly, you should put the first ones listed (as many as fit
+      reasonably) on the actual cover, and continue the rest onto
+      adjacent pages.
+    </p><p>
+      If you publish or distribute <a class="link" 
href="#fdl-transparent">Opaque</a> copies of the <a class="link" 
href="#fdl-document">Document</a> numbering more than 100,
+      you must either include a machine-readable <a class="link" 
href="#fdl-transparent">Transparent</a> copy along with
+      each Opaque copy, or state in or with each Opaque copy a
+      publicly-accessible computer-network location containing a
+      complete Transparent copy of the Document, free of added
+      material, which the general network-using public has access to
+      download anonymously at no charge using public-standard network
+      protocols. If you use the latter option, you must take
+      reasonably prudent steps, when you begin distribution of Opaque
+      copies in quantity, to ensure that this Transparent copy will
+      remain thus accessible at the stated location until at least one
+      year after the last time you distribute an Opaque copy (directly
+      or through your agents or retailers) of that edition to the
+      public.
+    </p><p>
+      It is requested, but not required, that you contact the authors
+      of the <a class="link" href="#fdl-document">Document</a> well before
+      redistributing any large number of copies, to give them a chance
+      to provide you with an updated version of the Document.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section4"></a>4. MODIFICATIONS</h2></div></div></div><p>
+      You may copy and distribute a <a class="link" 
href="#fdl-modified">Modified Version</a> of the <a class="link" 
href="#fdl-document">Document</a> under the conditions of
+      sections <a class="link" href="#fdl-section2" title="2. VERBATIM 
COPYING">2</a> and <a class="link" href="#fdl-section3" title="3. COPYING IN 
QUANTITY">3</a> above, provided that you release
+      the Modified Version under precisely this License, with the
+      Modified Version filling the role of the Document, thus
+      licensing distribution and modification of the Modified Version
+      to whoever possesses a copy of it. In addition, you must do
+      these things in the Modified Version:
+    </p><div class="itemizedlist"><ul type="opencircle"><li 
style="list-style-type: circle"><p><b>A. </b>
+           Use in the <a class="link" href="#fdl-title-page">Title
+           Page</a> (and on the covers, if any) a title distinct
+           from that of the <a class="link" href="#fdl-document">Document</a>, 
and from those of
+           previous versions (which should, if there were any, be
+           listed in the History section of the Document). You may
+           use the same title as a previous version if the original
+           publisher of that version gives permission.
+         </p></li><li style="list-style-type: circle"><p><b>B. </b>
+           List on the <a class="link" href="#fdl-title-page">Title
+           Page</a>, as authors, one or more persons or entities
+           responsible for authorship of the modifications in the
+           <a class="link" href="#fdl-modified">Modified Version</a>,
+           together with at least five of the principal authors of
+           the <a class="link" href="#fdl-document">Document</a> (all of
+           its principal authors, if it has less than five).
+         </p></li><li style="list-style-type: circle"><p><b>C. </b>
+           State on the <a class="link" href="#fdl-title-page">Title
+           Page</a> the name of the publisher of the <a class="link" 
href="#fdl-modified">Modified Version</a>, as the
+           publisher.
+         </p></li><li style="list-style-type: circle"><p><b>D. </b>
+           Preserve all the copyright notices of the <a class="link" 
href="#fdl-document">Document</a>.
+         </p></li><li style="list-style-type: circle"><p><b>E. </b>
+           Add an appropriate copyright notice for your modifications
+           adjacent to the other copyright notices.
+         </p></li><li style="list-style-type: circle"><p><b>F. </b>
+           Include, immediately after the copyright notices, a
+           license notice giving the public permission to use the
+           <a class="link" href="#fdl-modified">Modified Version</a> under
+           the terms of this License, in the form shown in the
+           Addendum below.
+         </p></li><li style="list-style-type: circle"><p><b>G. </b>
+           Preserve in that license notice the full lists of <a class="link" 
href="#fdl-invariant"> Invariant Sections</a> and
+           required <a class="link" href="#fdl-cover-texts">Cover
+           Texts</a> given in the <a class="link" 
href="#fdl-document">Document's</a> license notice.
+         </p></li><li style="list-style-type: circle"><p><b>H. </b>
+           Include an unaltered copy of this License.
+         </p></li><li style="list-style-type: circle"><p><b>I. </b>
+           Preserve the section entitled "History", and
+           its title, and add to it an item stating at least the
+           title, year, new authors, and publisher of the <a class="link" 
href="#fdl-modified">Modified Version </a>as given on
+           the <a class="link" href="#fdl-title-page">Title Page</a>.  If
+           there is no section entitled "History" in the
+           <a class="link" href="#fdl-document">Document</a>, create one
+           stating the title, year, authors, and publisher of the
+           Document as given on its Title Page, then add an item
+           describing the Modified Version as stated in the previous
+           sentence.
+         </p></li><li style="list-style-type: circle"><p><b>J. </b>
+           Preserve the network location, if any, given in the <a class="link" 
href="#fdl-document">Document</a> for public access
+           to a <a class="link" href="#fdl-transparent">Transparent</a>
+           copy of the Document, and likewise the network locations
+           given in the Document for previous versions it was based
+           on. These may be placed in the "History"
+           section.  You may omit a network location for a work that
+           was published at least four years before the Document
+           itself, or if the original publisher of the version it
+           refers to gives permission.
+         </p></li><li style="list-style-type: circle"><p><b>K. </b>
+           In any section entitled "Acknowledgements" or
+           "Dedications", preserve the section's title,
+           and preserve in the section all the substance and tone of
+           each of the contributor acknowledgements and/or
+           dedications given therein.
+         </p></li><li style="list-style-type: circle"><p><b>L. </b>
+           Preserve all the <a class="link" href="#fdl-invariant">Invariant
+           Sections</a> of the <a class="link" 
href="#fdl-document">Document</a>, unaltered in their
+           text and in their titles.  Section numbers or the
+           equivalent are not considered part of the section titles.
+         </p></li><li style="list-style-type: circle"><p><b>M. </b>
+           Delete any section entitled
+           "Endorsements". Such a section may not be
+           included in the <a class="link" href="#fdl-modified">Modified
+           Version</a>.
+         </p></li><li style="list-style-type: circle"><p><b>N. </b>
+           Do not retitle any existing section as
+           "Endorsements" or to conflict in title with
+           any <a class="link" href="#fdl-invariant">Invariant
+           Section</a>.
+         </p></li></ul></div><p>
+      If the <a class="link" href="#fdl-modified">Modified Version</a>
+      includes new front-matter sections or appendices that qualify as
+      <a class="link" href="#fdl-secondary">Secondary Sections</a> and
+      contain no material copied from the Document, you may at your
+      option designate some or all of these sections as invariant. To
+      do this, add their titles to the list of <a class="link" 
href="#fdl-invariant">Invariant Sections</a> in the
+      Modified Version's license notice.  These titles must be
+      distinct from any other section titles.
+    </p><p>
+      You may add a section entitled "Endorsements",
+      provided it contains nothing but endorsements of your <a class="link" 
href="#fdl-modified">Modified Version</a> by various
+      parties--for example, statements of peer review or that the text
+      has been approved by an organization as the authoritative
+      definition of a standard.
+    </p><p>
+      You may add a passage of up to five words as a <a class="link" 
href="#fdl-cover-texts">Front-Cover Text</a>, and a passage
+      of up to 25 words as a <a class="link" 
href="#fdl-cover-texts">Back-Cover Text</a>, to the end of
+      the list of <a class="link" href="#fdl-cover-texts">Cover Texts</a>
+      in the <a class="link" href="#fdl-modified">Modified Version</a>.
+      Only one passage of Front-Cover Text and one of Back-Cover Text
+      may be added by (or through arrangements made by) any one
+      entity. If the <a class="link" href="#fdl-document">Document</a>
+      already includes a cover text for the same cover, previously
+      added by you or by arrangement made by the same entity you are
+      acting on behalf of, you may not add another; but you may
+      replace the old one, on explicit permission from the previous
+      publisher that added the old one.
+    </p><p>
+      The author(s) and publisher(s) of the <a class="link" 
href="#fdl-document">Document</a> do not by this License
+      give permission to use their names for publicity for or to
+      assert or imply endorsement of any <a class="link" 
href="#fdl-modified">Modified Version </a>.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section5"></a>5. COMBINING DOCUMENTS</h2></div></div></div><p>
+      You may combine the <a class="link" href="#fdl-document">Document</a>
+      with other documents released under this License, under the
+      terms defined in <a class="link" href="#fdl-section4" title="4. 
MODIFICATIONS">section 4</a>
+      above for modified versions, provided that you include in the
+      combination all of the <a class="link" href="#fdl-invariant">Invariant
+      Sections</a> of all of the original documents, unmodified,
+      and list them all as Invariant Sections of your combined work in
+      its license notice.
+    </p><p>
+      The combined work need only contain one copy of this License,
+      and multiple identical <a class="link" href="#fdl-invariant">Invariant
+      Sections</a> may be replaced with a single copy. If there are
+      multiple Invariant Sections with the same name but different
+      contents, make the title of each such section unique by adding
+      at the end of it, in parentheses, the name of the original
+      author or publisher of that section if known, or else a unique
+      number. Make the same adjustment to the section titles in the
+      list of Invariant Sections in the license notice of the combined
+      work.
+    </p><p>
+      In the combination, you must combine any sections entitled
+      "History" in the various original documents,
+      forming one section entitled "History"; likewise
+      combine any sections entitled "Acknowledgements",
+      and any sections entitled "Dedications".  You must
+      delete all sections entitled "Endorsements."
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section6"></a>6. COLLECTIONS OF DOCUMENTS</h2></div></div></div><p>
+      You may make a collection consisting of the <a class="link" 
href="#fdl-document">Document</a> and other documents
+      released under this License, and replace the individual copies
+      of this License in the various documents with a single copy that
+      is included in the collection, provided that you follow the
+      rules of this License for verbatim copying of each of the
+      documents in all other respects.
+    </p><p>
+      You may extract a single document from such a collection, and
+      distribute it individually under this License, provided you
+      insert a copy of this License into the extracted document, and
+      follow this License in all other respects regarding verbatim
+      copying of that document.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section7"></a>7. AGGREGATION WITH INDEPENDENT 
WORKS</h2></div></div></div><p>
+      A compilation of the <a class="link" href="#fdl-document">Document</a> 
or its derivatives with
+      other separate and independent documents or works, in or on a
+      volume of a storage or distribution medium, does not as a whole
+      count as a <a class="link" href="#fdl-modified">Modified Version</a>
+      of the Document, provided no compilation copyright is claimed
+      for the compilation.  Such a compilation is called an
+      "aggregate", and this License does not apply to the
+      other self-contained works thus compiled with the Document , on
+      account of their being thus compiled, if they are not themselves
+      derivative works of the Document.  If the <a class="link" 
href="#fdl-cover-texts">Cover Text</a> requirement of <a class="link" 
href="#fdl-section3" title="3. COPYING IN QUANTITY">section 3</a> is applicable 
to these
+      copies of the Document, then if the Document is less than one
+      quarter of the entire aggregate, the Document's Cover Texts may
+      be placed on covers that surround only the Document within the
+      aggregate. Otherwise they must appear on covers around the whole
+      aggregate.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section8"></a>8. TRANSLATION</h2></div></div></div><p>
+      Translation is considered a kind of modification, so you may
+      distribute translations of the <a class="link" 
href="#fdl-document">Document</a> under the terms of <a class="link" 
href="#fdl-section4" title="4. MODIFICATIONS">section 4</a>. Replacing <a 
class="link" href="#fdl-invariant"> Invariant Sections</a> with
+      translations requires special permission from their copyright
+      holders, but you may include translations of some or all
+      Invariant Sections in addition to the original versions of these
+      Invariant Sections. You may include a translation of this
+      License provided that you also include the original English
+      version of this License. In case of a disagreement between the
+      translation and the original English version of this License,
+      the original English version will prevail.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section9"></a>9. TERMINATION</h2></div></div></div><p>
+      You may not copy, modify, sublicense, or distribute the <a class="link" 
href="#fdl-document">Document</a> except as expressly
+      provided for under this License. Any other attempt to copy,
+      modify, sublicense or distribute the Document is void, and will
+      automatically terminate your rights under this License. However,
+      parties who have received copies, or rights, from you under this
+      License will not have their licenses terminated so long as such
+      parties remain in full compliance.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section10"></a>10. FUTURE REVISIONS OF THIS 
LICENSE</h2></div></div></div><p>
+      The <a class="ulink" href="http://www.gnu.org/fsf/fsf.html"; 
target="_top">Free Software
+      Foundation</a> may publish new, revised versions of the GNU
+      Free Documentation License from time to time. Such new versions
+      will be similar in spirit to the present version, but may differ
+      in detail to address new problems or concerns. See <a class="ulink" 
href="http://www.gnu.org/copyleft"; 
target="_top">http://www.gnu.org/copyleft/</a>.
+    </p><p>
+      Each version of the License is given a distinguishing version
+      number. If the <a class="link" href="#fdl-document">Document</a>
+      specifies that a particular numbered version of this License
+      "or any later version" applies to it, you have the
+      option of following the terms and conditions either of that
+      specified version or of any later version that has been
+      published (not as a draft) by the Free Software Foundation. If
+      the Document does not specify a version number of this License,
+      you may choose any version ever published (not as a draft) by
+      the Free Software Foundation.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-using"></a>Addendum</h2></div></div></div><p>
+      To use this License in a document you have written, include a copy of
+      the License in the document and put the following copyright and
+      license notices just after the title page:
+    </p><div class="blockquote"><blockquote class="blockquote"><p>
+       Copyright 2008, Free Software Foundation.
+      </p><p>
+       Permission is granted to copy, distribute and/or modify this
+       document under the terms of the GNU Free Documentation
+       License, Version 1.1 or any later version published by the
+       Free Software Foundation; with no<a class="link" 
href="#fdl-invariant">Invariant Sections</a>, with no <a class="link" 
href="#fdl-cover-texts">Front-Cover Texts</a>,
+       and with no <a class="link" href="#fdl-cover-texts">Back-Cover
+       Texts</a>. A copy of the license is included in
+       the section entitled "GNU Free Documentation License".
+      </p></blockquote></div><p>
+      If your document contains nontrivial examples of program code,
+      we recommend releasing these examples in parallel under your
+      choice of free software license, such as the <a class="ulink" 
href="http://www.gnu.org/copyleft/gpl.html"; target="_top"> GNU General Public
+      License</a>, to permit their use in free software.
+    </p></div></div></div></body></html>

Index: doc/C/preformatted/gnashuser.html.in
===================================================================
RCS file: doc/C/preformatted/gnashuser.html.in
diff -N doc/C/preformatted/gnashuser.html.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/preformatted/gnashuser.html.in        3 Mar 2008 23:46:45 -0000       
1.2.2.2
@@ -0,0 +1,1337 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=ISO-8859-1"><title>Gnash User Manual</title><meta name="generator" 
content="DocBook XSL Stylesheets V1.73.2"></head><body bgcolor="white" 
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" 
lang="en"><div class="titlepage"><div><div><h1 class="title"><a 
name="index"></a>Gnash User Manual</h1></div><div><p class="releaseinfo">
+        This manual describes version 0.8.2 of Gnash.
+    </p></div><div><p class="copyright">Copyright © 2005, 2006, 2007, 2008 
Free Software Foundation</p></div><div><div class="legalnotice"><a 
name="legalnotice"></a><p>
+    Permission is granted to copy, distribute and/or modify this document
+    under the terms of the <a class="link" href="#fdl" title="Appendix A. GNU 
Free Documentation License"><em class="citetitle">GNU
+    Free Documentation License</em></a>, Version 1.1 or any later
+    version published by the Free Software Foundation with no Invariant
+    Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find
+    a copy of the GFDL at this 
+    <a class="link" href="#fdl" title="Appendix A. GNU Free Documentation 
License">link</a> or in the file COPYING-DOCS
+    distributed with this manual.
+   </p></div></div><div><div class="revhistory"><table border="1" width="100%" 
summary="Revision history"><tr><th align="left" valign="top" 
colspan="2"><b>Revision History</b></th></tr><tr><td align="left">Revision 
Gnash User Manual version 0.1</td><td align="left">Feb 2008</td></tr><tr><td 
align="left" colspan="2"> 
+      <p class="author">Rob Savoye
+      <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>
+      The end user parts of the manual have been pulled out of
+      the original version of the manual, and rewritten.
+      </p>
+      
+      <p class="publisher">Open Media Now! Foundation</p>
+    </td></tr></table></div></div></div><hr></div><div class="toc"><p><b>Table 
of Contents</b></p><dl><dt><span class="chapter"><a href="#intro">1. 
Introduction</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="#audience">Audience</a></span></dt><dt><span class="sect1"><a 
href="#runs-on">What Is Supported ?</a></span></dt></dl></dd><dt><span 
class="chapter"><a href="#usage">2. Using <span 
class="application">Gnash</span></a></span></dt><dd><dl><dt><span 
class="sect1"><a href="#options"><span class="application">Gnash</span> Command 
Line Options</a></span></dt><dt><span class="sect1"><a href="#keys"><span 
class="application">Gnash</span> Interactive Control 
Keys</a></span></dt><dt><span class="sect1"><a href="#gnashrc">User 
Configuration File</a></span></dt></dl></dd><dt><span class="chapter"><a 
href="#build">3. Installing and Configuring 
Gnash</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="#requirements">Requirements</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#hardware">Hardware 
Requirements</a></span></dt><dt><span class="sect2"><a 
href="#software">Software Requirements</a></span></dt></dl></dd><dt><span 
class="sect1"><a href="#downloading">Downloading 
Gnash</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="#gettingsource">Getting the Source</a></span></dt><dt><span 
class="sect2"><a href="#getcodecs">Getting Codec 
Support</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a 
href="#bugreport">4. Reporting Bugs</a></span></dt><dd><dl><dt><span 
class="sect1"><a href="#bugstep_package">Get a Fresh Binary 
Package</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_search">Determine if the bug was previously 
reported</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_guidelines">Review the bug writing 
guidelines</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_file">Filing a bug report</a></span></dt></dl></dd><dt><span 
class="glossary"><a href="#glossary">Glossary</a></span></dt><dt><span 
class="chapter"><a href="#authors">5. Authors</a></span></dt><dt><span 
class="appendix"><a href="#fdl">A. GNU Free Documentation 
License</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="#fdl-preamble">0. PREAMBLE</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section1">1. APPLICABILITY AND DEFINITIONS</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section2">2. VERBATIM 
COPYING</a></span></dt><dt><span class="sect1"><a href="#fdl-section3">3. 
COPYING IN QUANTITY</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section4">4. MODIFICATIONS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section5">5. COMBINING DOCUMENTS</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section6">6. COLLECTIONS OF 
DOCUMENTS</a></span></dt><dt><span class="sect1"><a href="#fdl-section7">7. 
AGGREGATION WITH INDEPENDENT WORKS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section8">8. TRANSLATION</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section9">9. TERMINATION</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section10">10. FUTURE REVISIONS OF THIS 
LICENSE</a></span></dt><dt><span class="sect1"><a 
href="#fdl-using">Addendum</a></span></dt></dl></dd></dl></div><div 
class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>2.1. <a 
href="#tb-command-line-options">Gnash Command Line Options</a></dt><dt>2.2. <a 
href="#tb-control-keys">Gnash Interactive Control Keys</a></dt><dt>2.3. <a 
href="#tb-config-variables">User Configuration Variables</a></dt><dt>3.1. <a 
href="#tb-os-cpu">Build Matrix</a></dt></dl></div><div class="chapter" 
lang="en"><div class="titlepage"><div><div><h2 class="title"><a 
name="intro"></a>Chapter 1. Introduction</h2></div></div></div><div 
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a 
href="#audience">Audience</a></span></dt><dt><span class="sect1"><a 
href="#runs-on">What Is Supported ?</a></span></dt></dl></div><p>
+    <span class="application">Gnash</span> is a free SWF movie player.  It is 
available as a
+    stand-alone application or as a plugin for several popular
+    web browsers. It supports playing media from a disk or streaming
+    over a network connection. Some popular video sharing sites like
+    YouTube are supported from a wide vaariety of devices from
+    embedded ones to modern desktops.
+  </p><p>
+    <span class="application">Gnash</span> has a better focus on security, 
allowing the user tight
+    control of all network or disk based I/O. Gnash also supports
+    extending ActionScript by creating your own. You can write
+    wrappers for any development library, and import them into the
+    player much like perl or python does.
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a 
name="audience"></a>Audience</h2></div></div></div><p>
+      This manual is primarily focused on users interested in how to
+      get Gnash installed from a package, and basic usage as a web
+      browser plugin. For more technical details, please refer to the
+      Gnash Reference manual.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="runs-on"></a>What Is Supported ?</h2></div></div></div><p>
+      Gnash is known to compile for most any POSIX and ANSI C++
+      conforming system if you have all the dependent libraries
+      installed. Systems we test on, and which Gnash is know to
+      run on are Ubuntu, Fedora, Debian, OpenBSD, NetBSD, FreeBSD,
+      Win32, and Darwin (OSX) primarily. Occasionally other platforms
+      are built, primarily by those distribution maintainers. This
+      includes BeOS, Haiku, Syllable, OS/2, Solaris, Slackware, and
+      Gentoo.
+    </p><p>
+      Gnash is a capable of reading up to SWF v9 files and opcodes,
+      but primarily supports SWF v7, with better SWF v8 and v9
+      support under heavy developement. With the 0.8.2 release,
+      Gnash includes initial parser support for SWF v8 and v9.
+      Not all ActionScript 2 classes are implemented yet, but all of the
+      most heavily used ones are. Many ActionScript 2 classes are
+      partially implemented; there is support for all of the
+      commonly used methods of each class.
+    </p><p>
+      Gnash has implemented about 80% of ActionScript v. 2.0, and has
+      begun implementing ActionScript v. 3.0. Gnash supports the
+      majority of Flash opcodes up to SWF version 9, and a wide
+      sampling of ActionScript classes for SWF version 8.
+    </p><p>
+      As ActionsScript 3 is a more developed version of
+      ActionScript 2, many of the same classes work for
+      both. Support has been added to Gnash's ActionScript library
+      to support the new ActionScript 3 filters, which get applied
+      to every class. Implementing ActionScript clases is often the
+      easiest way for new Gnash developers to make a contribution
+      without a deep internal knpowledge of Gnash.
+    </p><p>
+      Gnash has included video support since early 2007, but this is
+      an every changing field of reverse engineering. Many of the
+      popular video sharing sites use SWF v8 or v9, which Gnash
+      still has imperfect support for. This is improving all the
+      time, so often builds from a development snapshot will work
+      when using the older release packaged in your distribution
+      doesn't. You can find daily snapshots of the latest CVS tree
+      at: <a class="ulink" href="http://www.gnashdev.org/dev_snapshots/"; 
target="_top">
+      http://www.gnashdev.org/dev_snapshots</a>.
+    </p><p>
+      Gnash uses ffmpeg for codecs, so any file supported by Mplayer
+      should work with Gnash. Gnash supports the loading of patent
+      free codecs like Ogg Vorbis or Theora from disk based files,
+      while work is being done to support these codecs when embedded
+      in a SWF file. Ffmpeg contains the codecs used by the current
+      SWF defintion, FLV, VP6 (ON2), H.263, H.264, and MP3.
+    </p></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="usage"></a>Chapter 2. 
Using <span class="application">Gnash</span></h2></div></div></div><div 
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a 
href="#options"><span class="application">Gnash</span> Command Line 
Options</a></span></dt><dt><span class="sect1"><a href="#keys"><span 
class="application">Gnash</span> Interactive Control 
Keys</a></span></dt><dt><span class="sect1"><a href="#gnashrc">User 
Configuration File</a></span></dt></dl></div><p>
+    When used as a standalone player, you can play any Flash file from
+    the command line by entering a command of the format: 
+    </p><pre class="programlisting">
+      gnash <em class="replaceable"><code>&lt;option&gt; 
&lt;flashfile.swf&gt;</code></em>
+    </pre><p>
+    The only required argument is the name (and location)of the file
+    to be played. 
+  </p><p>
+    The available options are listed in the following section, or you
+    may view them in the terminal window by executing the following at
+    the command line: 
+    </p><pre class="programlisting">
+      gnash --help |less
+    </pre><p>
+  </p><p>
+    The source code download of <span class="application">Gnash</span> 
includes several example .SWF
+    files.  They are located in the
+    <code class="filename">testsuite/samples/</code> directory of the <span 
class="application">Gnash</span>
+    source directory.  If you have installed <span 
class="application">Gnash</span> correctly, issuing
+    the a command similar to the following plays a short animation of
+    a car swerving and crashing: 
+    </p><pre class="programlisting">
+      gnash
+      /home/<em 
class="replaceable"><code>&lt;username&gt;</code></em>/gnash/testsuite/car_smash.swf
 
+    </pre><p>
+    </p><div class="mediaobject" align="center"><img 
src="images/car_crash.png" align="middle"></div><p>
+  </p><p>
+    The above is useful for playing Flash files downloaded to your
+    local system.  It is also possible to play Flash files directly
+    from the web.  To do so, use the <code class="option">-u</code> option 
along
+    with the URL of the desired file. 
+    </p><pre class="programlisting">
+      gnash -u http://example.domain.com/flashfile.swf
+    </pre><p>
+    Note that this will not work with every website; some embedded
+    Flash files are difficult to play. 
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="options"></a><span 
class="application">Gnash</span> Command Line Options</h2></div></div></div><p>
+      No options are required for  <span class="application">Gnash</span>'s 
default behavior.  However,
+      there are many options that can be used to that behavior. 
+    </p><p>
+      </p><pre class="programlisting">
+       gnash <em class="replaceable"><code>&lt;options&gt;</code></em>
+       <code class="filename">filename.swf</code> 
+      </pre><p>
+    </p><div class="table"><a name="tb-command-line-options"></a><p 
class="title"><b>Table 2.1. Gnash Command Line Options</b></p><div 
class="table-contents"><table summary="Gnash Command Line Options" 
border="1"><colgroup><col><col></colgroup><thead><tr><th 
align="left">Option</th><th 
align="left">Function</th></tr></thead><tbody><tr><td align="left"><code 
class="option">-h</code></td><td align="left">
+             Print usage information.
+           </td></tr><tr><td align="left">
+             <code class="option">-s factor</code>
+           </td><td align="left">
+             Scale the movie up/down by the specified factor.
+           </td></tr><tr><td align="left">
+             <code class="option">-c</code>
+           </td><td align="left">
+             Produce a core file instead of letting SDL trap it. By
+             default, SDL traps all signals, but sometimes a core file
+             is desired to assist with debugging.
+           </td></tr><tr><td align="left">
+             <code class="option">-d num</code>
+           </td><td align="left">
+             Number of milliseconds to delay in main loop. The main
+             loop polls continuously with a delay to adjust how long
+             <span class="emphasis"><em><span 
class="application">Gnash</span></em></span> sleeps between iterations of the
+             loop. The smaller the number, the higher the CPU load
+             gets, and of course, the more iterations of the main
+             command loop.
+           </td></tr><tr><td align="left">
+             <code class="option">-p</code>
+           </td><td align="left">
+             Run full speed (no sleep) and log frame rate.
+           </td></tr><tr><td align="left">
+             <code class="option">-a</code>
+           </td><td align="left">
+             Enable Actionscript debugging.
+           </td></tr><tr><td align="left">
+             <code class="option">-v</code>
+           </td><td align="left">
+             Be verbose; i.e. print debug messages to stdout.
+           </td></tr><tr><td align="left">
+             <code class="option">-va</code>
+           </td><td align="left">
+             Be verbose about movie Actions. 
+           </td></tr><tr><td align="left">
+             <code class="option">-vp</code>
+           </td><td align="left">
+             Be verbose about parsing the movie. Warning: this can
+             generate a lot of text, and can affect the performance of
+             the movie you are playing.
+           </td></tr><tr><td align="left">
+             <code class="option">-ml bias</code>
+           </td><td align="left">
+             Specify the texture LOD bias (float, default is -1) This
+             affects the fuzziness of small objects, especially small
+             text.
+           </td></tr><tr><td align="left">
+             <code class="option">-w</code>
+           </td><td align="left">
+             Write a debug log called gnash-dbg.log. This will 
+             record of all the debug messages whether they are printed
+             to the screen or not.
+           </td></tr><tr><td align="left">
+             <code class="option">-j</code>
+           </td><td align="left">
+             Specify the width of the window. This is mostly used
+             only by the plugin.
+           </td></tr><tr><td align="left">
+             <code class="option">-k</code>
+           </td><td align="left">
+             Specify the height of the window. This is mostly used
+             only by the plugin.
+           </td></tr><tr><td align="left">
+             <code class="option">-1</code>
+           </td><td align="left">
+             Play once; exit when/if movie reaches the last
+             frame. This is the default.
+           </td></tr><tr><td align="left">
+             <code class="option">-r [0|1|2|3]</code>
+           </td><td align="left">
+             <div class="itemizedlist"><ul type="disc"><li><p>
+                   0 disables rendering and sound (good for batch tests).
+                 </p></li><li><p>
+                   1 enables rendering and disables sound (default setting).
+                 </p></li><li><p>
+                   2 enables sound and disables rendering.
+                 </p></li><li><p>
+                   3 enables rendering and sound.
+                 </p></li></ul></div>
+           </td></tr><tr><td align="left">
+             <code class="option">-t sec</code>
+           </td><td align="left">
+             Timeout and exit after the specified number of
+             seconds. This is useful for movies which repeat
+             themselves.
+           </td></tr><tr><td align="left">
+             <code class="option">-g</code>
+           </td><td align="left">
+             Start <span class="application">Gnash</span> with a Flash 
debugger console so one can set
+             break points or watchpoints.
+           </td></tr><tr><td align="left">
+             <code class="option">-x id</code>
+           </td><td align="left">
+             This specifies the X11 window ID to display
+             in; this is mainly used by plugins.
+           </td></tr><tr><td align="left">
+             <code class="option">-b bits</code>
+           </td><td align="left">
+             Bit depth of output window (for example, 16 or 32). Appropriate
+             bit depths depend on the renderer and GUI library used.
+             
+           </td></tr><tr><td align="left">
+             <code class="option">-u url</code>
+           </td><td align="left">
+             Set the _url member of the root movie. This is useful 
+             when you download a movie and play it from a different 
+             location. See also the -U switch.
+           </td></tr><tr><td align="left">
+             <code class="option">-U baseurl</code>
+           </td><td align="left">
+             Set base URL for this run. URLs are resolved relative to 
+             this base. If omitted defaults to the _url member of the 
+             top-level movie (see the -u switch).
+           </td></tr><tr><td align="left">
+             <code class="option">-P entrymeter</code>
+           </td><td align="left">
+             Parameters are given in ParamName=Value syntax and are mostly 
+             useful to the plugin to honour EMBED tags attributes 
+             or explicit OBJECT PARAM tags. A common use for -P 
+             is to provide FlashVars 
+             (ie: -P "FlashVars=home=http://www.gnu.org";).
+           </td></tr><tr><td align="left">
+             <code class="option">-F filedescriptor</code>
+           </td><td align="left">
+             Use the given filedescriptor to send requests to the host
+             application. This is currently only used for GETURL requests.
+             The protocol is not documented yet, and also needs improvement.
+             Primary use for this switch is for the NPAPI plugin to properly
+             support javascript and target windows in geturl requests.
+           </td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="keys"></a><span class="application">Gnash</span> Interactive Control 
Keys</h2></div></div></div><p>
+      While a movie is playing, there are several control
+      keys. These can be used to step through frames, pause the
+      playing, and control other actions.
+    </p><div class="table"><a name="tb-control-keys"></a><p 
class="title"><b>Table 2.2. Gnash Interactive Control Keys</b></p><div 
class="table-contents"><table summary="Gnash Interactive Control Keys" 
border="1"><colgroup><col><col></colgroup><thead><tr><th align="left">Key 
Combination</th><th align="left">Function</th></tr></thead><tbody><tr><td 
align="left">
+             <code class="option">CTRL-Q</code>
+           </td><td align="left">
+             Quit/Exit.
+           </td></tr><tr><td align="left">
+             <code class="option">CTRL-W</code>
+           </td><td align="left">
+             Quit/Exit.
+           </td></tr><tr><td align="left">
+             <code class="option">ESC</code>
+           </td><td align="left">
+             Quit/Exit.
+           </td></tr><tr><td align="left">
+             <code class="option">CTRL-P</code>
+           </td><td align="left">
+             Toggle Pause.
+           </td></tr><tr><td align="left">
+             <code class="option">CTRL-R   </code>
+           </td><td align="left">
+             Restart the movie.
+           </td></tr><tr><td align="left">
+             <code class="option">CTRL-[ or kp-</code>
+           </td><td align="left">
+             Step back one frame.
+           </td></tr><tr><td align="left">
+             <code class="option">CTRL-] or kp+</code>
+           </td><td align="left">
+             Step forward one frame.
+           </td></tr><tr><td align="left">
+               <code class="option">CTRL-L</code>
+             </td><td align="left">
+               Force immediate redraw.
+             </td></tr><tr><td align="left">
+             <code class="option">CTRL-T</code>
+           </td><td align="left">
+             Debug.  Test the set_variable() function.
+           </td></tr><tr><td align="left">
+             <code class="option">CTRL-G</code>
+           </td><td align="left">
+             Debug.  Test the get_variable() function.
+           </td></tr><tr><td align="left">
+             <code class="option">CTRL-M</code>
+           </td><td align="left">
+             Debug.  Test the call_method() function.
+           </td></tr><tr><td align="left">
+             <code class="option">CTRL-B</code>
+           </td><td align="left">
+             Toggle the background color.
+           </td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="gnashrc"></a>User Configuration File</h2></div></div></div><p>
+    Individual user preferences may be set by editing variables with
+    the <code class="filename">.gnashrc</code> file: 
+    </p><pre class="programlisting">
+      ~/.gnashrc
+    </pre><p>
+  </p><p>
+    Each line must begin with an action: either
+    <span class="emphasis"><em>set</em></span> or, in the case of lists, also 
+    <span class="emphasis"><em>append</em></span>.
+  </p><p>
+    The values in this configuration file apply only to an individual
+    user, and become the default settings of the standalone player and
+    the plugin.  Note that any command line options take precedence
+    over <code class="filename">.gnashrc</code> settings. 
+  </p><p>
+    The variables in the <code class="filename">.gnashrc</code> file support
+    three types of arguments: on/off, numeric values, or in the case
+    of the whitelist and blacklist, a list of hostnames as ASCII text. 
+  </p><div class="table"><a name="tb-config-variables"></a><p 
class="title"><b>Table 2.3. User Configuration Variables</b></p><div 
class="table-contents"><table summary="User Configuration Variables" 
border="1"><colgroup><col><col><col></colgroup><thead><tr><th 
align="left">Variable</th><th align="left">Value</th><th 
align="left">Function</th></tr></thead><tbody><tr><td 
align="left">localdomain</td><td align="left">on/off</td><td align="left">This 
value can be set to either <span class="emphasis"><em>on</em></span> or
+         <span class="emphasis"><em>off</em></span>, and controls the loading 
of
+         external Flash movies over a network. This option
+         tells Gnash to only load Flash movies from the existing 
domain.</td></tr><tr><td align="left">localhost</td><td 
align="left">on/off</td><td align="left">This value can be set to either <span 
class="emphasis"><em>on</em></span> or
+         <span class="emphasis"><em>off</em></span>, and controls the loading 
of
+         external Flash movies over a network. This is a stricter
+         version of the <span class="emphasis"><em>localdomain</em></span> 
setting as
+         this allows the loading of Flash movies to the same host
+         that is running <span 
class="application">Gnash</span>.</td></tr><tr><td 
align="left">whitelist</td><td align="left">hostnames</td><td align="left">This 
is a list of hostnames separated by spaces, or <span 
class="emphasis"><em>off</em></span>
+         to disable the whitelist. The hostname must be given
+         without a protocol (http://, https://). If this list is populated,
+         <span class="application">Gnash</span> will only load external Flash 
movies from the specified hosts.  The
+         whitelist takes precedence over the blacklist. Because several files 
can
+         be parsed in succession, each file can override or add to
+         lists in other files. Use <span class="emphasis"><em>set</em></span> 
to override
+         all other lists or <span class="emphasis"><em>append</em></span> to 
add your blacklisted
+         hosts to lists in previously parsed files.</td></tr><tr><td 
align="left">blacklist</td><td align="left">hostnames</td><td align="left">This 
is a list of hostnames separated by spaces, or <span 
class="emphasis"><em>off</em></span>
+         to disable the blacklist. The hostname must be given
+         without a protocol (http://, https://).
+         External flash movies from these
+         domains are never allowed to load. If whitelist is present
+         and not empty, blacklist is not used. Because several files can
+         be parsed in succession, each file can override or add to
+         lists in other files. Use <span class="emphasis"><em>set</em></span> 
to override
+         all other lists or <span class="emphasis"><em>append</em></span> to 
add your blacklisted
+         hosts to lists in previously parsed files.</td></tr><tr><td 
align="left">localSandboxPath</td><td align="left">dirs</td><td 
align="left">This is a list of directories separated by spaces.
+         Only resources from these directories and from the directory
+         portion of movie filename (if loaded from filesystem) are allowed to 
load.
+         Because several files can be parsed in succession, each file can 
override
+         or add to lists in other files. Use <span 
class="emphasis"><em>set</em></span> to override
+         all other lists or <span class="emphasis"><em>append</em></span> to 
add new sandboxes.
+         Note that there's currently no way to *drop* the directory of base dir
+         from the list of allowed local sandboxes.
+         </td></tr><tr><td align="left">delay</td><td 
align="left">Number</td><td align="left"><span class="application">Gnash</span> 
uses a timer-based event mechanism to advance frames
+         at a steady rate. This option overrides the default
+         setting in Gnash to play a movie slower or faster.</td></tr><tr><td 
align="left">verbosity</td><td align="left">Number</td><td align="left">This is 
a numeric value which defines the default level of
+         verbosity from the player.</td></tr><tr><td 
align="left">MalformedSWFVerbosity</td><td align="left">on/off</td><td 
align="left">This value can be set to either <span 
class="emphasis"><em>on</em></span> or
+         <span class="emphasis"><em>off</em></span>, and controls whether 
malformed SWF errors should
+         be printed. If set to true, verbosity level is automatically 
incremented.
+         Set <code class="option">verbosity</code> to 0 afterwards to 
hush.</td></tr><tr><td align="left">ASCodingErrorsVerbosity</td><td 
align="left">on/off</td><td align="left">This value can be set to either <span 
class="emphasis"><em>on</em></span> or
+         <span class="emphasis"><em>off</em></span>, and controls whether 
ActionScript coding
+         errors should be printed. If set to true, verbosity level is
+         automatically incremented.  Set <code class="option">verbosity</code> 
to 0 afterwards to hush.</td></tr><tr><td align="left">debuglog</td><td 
align="left">Absolute path</td><td align="left">This is the full path and name 
of debug logfile as
+         produced by <span class="application">Gnash</span>. On systems with a 
UNIX-type shell,
+         a tilde prefix (~) will be expanded as by Posix shell requirements
+         (see 
http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_01).</td></tr><tr><td
 align="left">writelog</td><td align="left">on/off</td><td align="left">This 
value can be set to either <span class="emphasis"><em>on</em></span> or
+         <span class="emphasis"><em>off</em></span>, and controls whether a 
debug log
+         is always written by <span class="application">Gnash</span>, or not 
at all.</td></tr><tr><td align="left">sound</td><td align="left">on/off</td><td 
align="left">This value can be set to either <span 
class="emphasis"><em>on</em></span> or
+         <span class="emphasis"><em>off</em></span>, and controls the sound of 
the
+         standalone player. By default <span class="application">Gnash</span> 
enables playing the
+         sound in any Flash movie.</td></tr><tr><td 
align="left">pluginsound</td><td align="left">on/off</td><td align="left">This 
value can be set to either <span class="emphasis"><em>on</em></span> or
+         <span class="emphasis"><em>off</em></span>, and controls the sound of 
the
+         player when running as a browser plugin. By default, sound
+         is enabled when using <span class="application">Gnash</span> as a 
browser plugin.</td></tr><tr><td align="left">EnableExtensions</td><td 
align="left">on/off</td><td align="left">Set to <span 
class="emphasis"><em>on</em></span> to enable extensions. This option is <span 
class="emphasis"><em>off</em></span> by default</td></tr><tr><td 
align="left">StartStopped</td><td align="left">on/off</td><td align="left">Set 
to <span class="emphasis"><em>on</em></span> to have the GUI start in "stop" 
mode. This is useful in particular
+         for the plugin, so you have to explicitly start any movie on a 
webpage. This option is <span class="emphasis"><em>off</em></span> by default.
+         </td></tr><tr><td align="left">flashVersionString</td><td 
align="left">string</td><td align="left">Set the string returned by $version 
and System.capabilities.version.
+         Useful to get around some flash version detection movies.
+         Note that the version advertised by the plugin is NOT affected by 
this setting,
+         instead you need to set the GNASH_FLASH_VERSION environment variable 
for
+         the latter (which doesn't affect $version and 
System.capabilities.version).</td></tr><tr><td 
align="left">flashSystemOS</td><td align="left">string</td><td align="left">The 
string that Gnash should return for System.capabilities.OS</td></tr><tr><td 
align="left">flashSystemManufacturer</td><td align="left">string</td><td 
align="left">The string that Gnash should return for 
System.capabilities.manufacturer</td></tr><tr><td 
align="left">StreamsTimeout</td><td align="left">double</td><td align="left">
+           Set the number of seconds after which streams download time out. 
Note that timeouts only occurs after the given number of seconds
+           passed w/out anything was received.
+         </td></tr><tr><td align="left">insecureSSL</td><td 
align="left">on/off</td><td align="left">If set to <span 
class="emphasis"><em>on</em></span>, no verification of SSL connections
+         is performed. This means that, although the connection is encrypted, 
the server
+         certificate could be invalid, may not belong to the host, or both. 
Equivalent
+         to curl --insecure. By default, this option is <span 
class="emphasis"><em>off</em></span> and
+         connections will fail when a host cannot be 
verified.</td></tr><tr><td align="left">SOLsafedir</td><td 
align="left">Absolute path</td><td align="left">The full path to a directory 
where <span class="application">Gnash</span> should store Shared Object files 
("flash cookies") if
+         they are enabled.</td></tr><tr><td align="left">SOLreadonly</td><td 
align="left">on/off</td><td align="left">If set to <span 
class="emphasis"><em>on</em></span>, <span class="application">Gnash</span> 
will not write Shared Object files.</td></tr><tr><td 
align="left">URLOpenerFormat</td><td align="left">string</td><td align="left">
+           Set the format of an url opener command. The %u label would be 
substituted by the actual url to be opened.
+           Examples:
+           <pre class="programlisting">
+             set urlOpenerFormat firefox -remote 'openurl(%u)'
+             set urlOpenerFormat xdg-open %u
+             set urlOpenerFormat open %u
+             set urlOpenerFormat kfmclient exec %u
+           </pre>
+         </td></tr></tbody></table></div></div><br class="table-break"><p>
+    The following example <code class="filename">.gnashrc</code> file allows a 
user to only play Flash files saved locally to the machine on which <span 
class="application">Gnash</span> is running.  It also specifically forbids 
content from doubleclick.com and mochibot.com.  <span 
class="application">Gnash</span>'s error output is set to be fairly verbose, 
with the debug log placed in a location convenient for the user.  Finally, 
sound is turned on for both the standalone player and the plugin.
+  </p><pre class="programlisting">
+    
+    #
+    # Gnash client options
+    #
+    
+    # Only access remote content from our local domain
+    set localdomain on
+    
+    # Only access content from our local host
+    set localhost on
+    
+    # These sites are OK
+    # uncommenting the following line will allow load of external
+    # movies *only* from the specified hosts.
+    #set whitelist www.doonesbury.com www.cnn.com www.9news.com
+    
+    # Disable whitelists set in any other gnashrc files, because
+    # these could override our blacklist.
+    set whitelist off
+    
+    # Don't access content from these sites
+    set blacklist www.doubleclick.com mochibot.com
+    
+    # The delay between timer interrupts
+    set delay 50
+    
+    # The default verbosity level
+    set verbosity 1
+    
+    # Be verbose about malformed SWF
+    set MalformedSWFVerbosity true
+    
+    # Be verbose about AS coding errors
+    set ASCodingErrorsVerbosity true
+    
+    # The full path to the debug log
+    set debuglog ~/gnash-dbg.log
+    
+    # Write a debug log to disk
+    set writelog on
+    
+    # Enable or Disable sound for the standalone player
+    set sound on
+    
+    # Enable or Disable sound for the standalone player
+    set pluginsound on
+    
+    # Make sure SSL connections are always verified
+    set insecureSSL off
+    
+    # Use firefox to open urls
+    set urlOpenerFormat firefox -remote 'openurl(%u)'
+    
+  </pre></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="build"></a>Chapter 3. 
Installing and Configuring Gnash</h2></div></div></div><div 
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a 
href="#requirements">Requirements</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#hardware">Hardware 
Requirements</a></span></dt><dt><span class="sect2"><a 
href="#software">Software Requirements</a></span></dt></dl></dd><dt><span 
class="sect1"><a href="#downloading">Downloading 
Gnash</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="#gettingsource">Getting the Source</a></span></dt><dt><span 
class="sect2"><a href="#getcodecs">Getting Codec 
Support</a></span></dt></dl></dd></dl></div><p>
+    There are two ways of installing Gnash:
+
+    using a package manager, or <a class="link" href="#gettingsource" 
title="Getting the Source">installing from source</a>.
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a 
name="requirements"></a>Requirements</h2></div></div></div><p>
+      Before downloading and installing Gnash, check that your
+      hardware and software meet the following requirements.
+    </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="hardware"></a>Hardware 
Requirements</h3></div></div></div><p>
+       One of the goals of Gnash is to make it portable enough to
+       install on small devices.  As a result, the hardware
+       requirements are minimal. Gnash has even run on an ARM9 at 200
+       MHz with 32 MB of RAM! (It ran without video support in this
+       case.) While firm minimums have not been established, Gnash
+       has been shown to run successfully with the following:
+      </p><div class="itemizedlist"><ul type="disc"><li><p>
+           336 MHz processor
+         </p></li><li><p>
+           128 MB RAM
+         </p></li><li><p>
+           Gnash will run on anything from a raw frame
+           buffer up to an OpenGL-supporting graphics card.
+         </p></li></ul></div><p>
+       The following table provides a list of the Operating System/CPU
+       combinations on which Gnash has been shown to run. 
+      </p><div class="table"><a name="tb-os-cpu"></a><p class="title"><b>Table 
3.1. Build Matrix</b></p><div class="table-contents"><table summary="Build 
Matrix" border="1"><colgroup><col><col></colgroup><thead><tr><th 
align="left">Operating System</th><th 
align="left">Processor</th></tr></thead><tbody><tr><td align="left">OpenBSD, 
FreeBSD, NetBSD</td><td align="left">Alpha AXP, AMD64, i386, Itanium, PC-98, 
PowerPC, SPARC64 
+             </td></tr><tr><td align="left">Debian</td><td align="left">Alpha 
AXP, AMD64, ARM, hppa, i386, Itanium, MIPS,
+             PowerPC, IBM zSeries (s390), SPARC  
+             </td></tr><tr><td align="left">Fedora</td><td 
align="left">x86-32, x86-64, Geode GX, Geode LX
+             </td></tr><tr><td align="left">Gentoo</td><td align="left">AMD64, 
PowerPC, SPARC, x86 
+             </td></tr><tr><td align="left">Maemo 2.1</td><td 
align="left">i385, ARMv5t</td></tr><tr><td align="left">Scratchbox</td><td 
align="left">i386, ARMv5t</td></tr><tr><td align="left">Access Linux Platform
+             </td><td align="left">i386, ARMv5t</td></tr><tr><td 
align="left">Mandriva
+             </td><td align="left">i386, MIPS</td></tr><tr><td 
align="left">Open Embedded, OpenMoko, Poky
+             </td><td align="left">ARM
+             </td></tr><tr><td align="left">YellowDog Linux 6
+             </td><td align="left">PowerPC, PS3
+             </td></tr><tr><td align="left">OpenSuSE 10 
+             </td><td align="left">i586, x86-64 
+             </td></tr><tr><td align="left">Red Hat Enterprise, CentOS
+             </td><td align="left">x86-32, x86-64 
+             </td></tr><tr><td align="left">Ubuntu 
+             </td><td align="left">x86-64, x86-32, PowerPC, UltraSPARC 
+             </td></tr><tr><td align="left">Haiku</td><td 
align="left">i386</td></tr><tr><td align="left">Syllable</td><td 
align="left">i386</td></tr><tr><td align="left">Irix 6.5 
+             </td><td align="left">MIPS R10K 
+             </td></tr><tr><td align="left">Darwin (MacOS X)
+             </td><td align="left">PowerPC and x86-32 
+             </td></tr><tr><td align="left">Windows XP, Windows Vista</td><td 
align="left">x86-32</td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="software"></a>Software 
Requirements</h3></div></div></div><p>
+       The 0.8.2 release of Gnash has been designed to run on
+       UNIX/Linux variants, and has been run on most of the free ones.
+       However, Gnash has successfully run on Windows, Darwin (Mac OS X),
+       Irix, Solaris, BeOs, OS/2, and Haiku.  Gnash has also run on the
+       following 64-bit systems: PowerPC, Itanium, UltraSparc, and AMD64.
+       For now, it is important to be sure that the following code, testing,
+       and documentation dependencies are met before installing Gnash.  If
+       you will be downloading Gnash with a package manager, these
+       dependencies may be solved by the package manager.  Otherwise, you
+       must first verify that each of these dependencies are installed on the
+       target system.
+      </p></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="downloading"></a>Downloading Gnash</h2></div></div></div><p>
+       There are two ways to download Gnash: using a package manager or by
+       downloading the source code and building it on your system. If
+       possible, it is advisable to use a package manager to download Gnash,
+       as it will resolve dependencies for you.  However, if you want the
+       very latest features, or a Gnash package is not available for your
+       operating system, it is better to download the source code and build
+       Gnash locally. 
+      </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="gettingsource"></a>Getting the 
Source</h3></div></div></div><p>
+         Gnash is available as a <a class="link" href="#sourcereleases" 
title="Releases">release
+         tarball</a>, a <a class="link" href="#sourcerepo" 
title="Repository">development 
+         checkout</a>, or a <a class="link" href="#sourcesnapshot" 
title="Snapshot">development
+         snapshot</a>.
+       </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="sourcereleases"></a>Releases</h4></div></div></div><p>
+           The source can be acquired from a
+           <a class="ulink" href="http://www.gnu.org/prep/ftp.html"; 
target="_top">GNU FTP
+           Mirror</a>.  The release version is intended to be
+           stable, and is probably your best choice if the release took
+           place recently.  If you need features or fixes which were
+           introduced after the release, consider a 
+           <a class="link" href="#sourcerepo" title="Repository">CVS 
checkout</a> or the
+           <a class="link" href="#sourcesnapshot" title="Snapshot">daily 
snapshot</a>.
+         </p><p>
+           To download, select a mirror near you, then choose the
+           <code class="filename">gnash</code> directory.
+         </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="sourcesnapshot"></a>Snapshot</h4></div></div></div><p>
+           The daily development snapshot can be downloaded from
+           <a class="ulink" href="http://www.gnashdev.org/dev_snapshots/"; 
target="_top">http://www.gnashdev.org/dev_snapshots/</a>.
+           This is the best option if you need changes which were introduced
+           after the <a class="link" href="#sourcereleases" 
title="Releases">last release</a> of
+           Gnash, but are unable to <a class="link" href="#sourcerepo" 
title="Repository">download
+           directly from the repository.</a>
+         </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="sourcerepo"></a>Repository</h4></div></div></div><p>
+           The latest development sources are available via
+           anonymous CVS.  This is recommended
+           if you need features or bug fixes which were introduced after
+           the <a class="link" href="#sourcereleases" title="Releases">last 
release</a>.  Look at
+           the <a class="link" href="#sourcesnapshot" title="Snapshot">daily 
snapshot</a> if you
+           experience difficulty accessing the repository.
+         </p><p>
+           To download via anonymous CVS, first set the
+           environment variable <span 
class="command"><strong>CVS_RSH</strong></span> to
+           <span class="command"><strong>ssh</strong></span>, then check out 
the source code.
+           The example below uses the GNU Bourne-Again shell (bash): 
+         </p><pre class="screen">
+           export CVS_RSH="ssh"
+           cvs -z3 -d:pserver:address@hidden:/sources/gnash co gnash
+         </pre><p>
+           It is also possible to browse the repository
+           <a class="ulink" 
href="http://cvs.savannah.gnu.org/viewcvs/gnash/?root=gnash"; 
target="_top">http://cvs.savannah.gnu.org/viewcvs/gnash/?root=gnash</a> on the 
web.
+         </p></div></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="getcodecs"></a>Getting 
Codec Support</h3></div></div></div><p>
+         Gnash requires codec support to handle audio and video
+         correctly. Some platforms like Ubuntu or Fedora under the
+         GNOME desktop will automatically notify the user that the
+         proper codecs aren't installed, and pop up a dialog box to
+         let the user download the codecs Gnash needs to make site
+         like YouTube work correctly. If you have installed Gnash on
+         any other platform, and video doesn't work, it's highly
+         likely you need to install the proper codecs. For most
+         platforms, this is the Gstreamer-ffmpeg plugin, available
+         from your distributions repository.
+       </p></div></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="bugreport"></a>Chapter 
4. Reporting Bugs</h2></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a href="#bugstep_package">Get a 
Fresh Binary Package</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_search">Determine if the bug was previously 
reported</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_guidelines">Review the bug writing 
guidelines</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_file">Filing a bug report</a></span></dt></dl></div><p>
+    The Gnash project relies on the community of Gnash users to test
+    the player, feedback is critical to any successful project.  Not
+    only does it let us know that people use Gnash, but it helps us  
+    understand the community's needs. Gnash uses a bug tracker on
+    <a class="ulink" href="http://savannah.gnu.org"; 
target="_top">http://savannah.gnu.org</a> to manage these reports.
+  </p><p>
+    When filing a report, please follow the guidelines below. The better
+    your bug report is, the easier it will be for the developers to
+    address the issue. Bug reports without enough information will
+    initially be asked to provide this information anyway. Adding
+    critical details, like the Operating System you are on, it's
+    version, and any relevant error messages from Gnash that you get.
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="bugstep_package"></a>Get a Fresh 
Binary Package</h2></div></div></div><p>
+      For starters, it's a good idea to obtain a copy of the latest
+      snapshot. Although Gnash is primarily released as source, the
+      Gnash build infrastructure allows the automated building of
+      binary packages. Often the version of Gnash as packaged by a
+      GNU/Linux or BSD distribution is based on the last official
+      release, which could be months out of date. It is helpful if
+      this is the case to try a newer packaged build of Gnash. 
+    </p><p>
+      You can get a fresh binary package of Gnash, as well as recent 
+      source packages from
+      <a class="ulink" href="http://www.getgnash.org/packages/"; target="_top">
+       http://www.getgnash.org/packages
+      </a>. 
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="bugstep_search"></a>Determine if the bug was previously 
reported</h2></div></div></div><p>
+      Search the <a class="ulink" 
href="https://savannah.gnu.org/bugs/?group=gnash"; target="_top">Gnash
+      bug tracker</a> to see if the bug has already been identified.
+    </p><p>
+      If the issue has already been reported, you should not file
+      a bug report.  However, you may add some additional information
+      to the ticket if you feel that it will be beneficial to the
+      developers.  For instance, if someone reported a memory issue
+      on Ubuntu GNU/Linux, and you noticed the same problem on OpenBSD,
+      your stacktrace would be useful.  Conversely, adding a "me too"
+      note to a feature request is not helpful.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="bugstep_guidelines"></a>Review the bug writing 
guidelines</h2></div></div></div><p>
+      A good bug report should be precise, explicit, and discrete.
+      This means that there should be just one bug per ticket, and
+      that a ticket should contain the following information:
+    </p><div class="itemizedlist"><ul type="opencircle"><li 
style="list-style-type: circle"><p>
+         An overview of the problem;
+       </p></li><li style="list-style-type: circle"><p>
+         Instructions on how to replicate the bug;
+       </p></li><li style="list-style-type: circle"><p>
+         A description of what happened when you performed the steps
+         to replicate the bug, and what you expected to happen;
+       </p></li><li style="list-style-type: circle"><p>
+         Your system information: operating system name and version, as
+         well as the versions of major development dependencies;
+       </p></li><li style="list-style-type: circle"><p>
+         The release number or checkout timestamp for the version of Gnash
+         where you observe the problem;
+       </p></li><li style="list-style-type: circle"><p>
+         The file <code class="filename">config.log</code>, which should be
+         attached as a file;
+       </p></li><li style="list-style-type: circle"><p>
+         A descriptive title.
+       </p></li></ul></div><p>
+      Include any additional information that you feel might be useful
+      to the developers.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="bugstep_file"></a>Filing a bug report</h2></div></div></div><p>
+      After following the steps described above, you can file a bug report at 
+      <a class="ulink" href="https://savannah.gnu.org/bugs/?group=gnash"; 
target="_top">https://savannah.gnu.org/bugs/?group=gnash</a>.
+    </p></div></div><div class="glossary"><div class="titlepage"><div><div><h2 
class="title"><a name="glossary"></a>Glossary</h2></div></div></div><div 
class="glossdiv"><h3 class="title">A</h3><dl><dt>
+       ActionScript
+      </dt><dd><p>
+         <span class="emphasis"><em>ActionScript</em></span>, or "AS", is the 
scripting 
+         language for <span class="emphasis"><em>Flash</em></span>
+         applications. It is compiled to bytecode, which is a subset of
+         the <span class="emphasis"><em>SWF</em></span> format.
+       </p></dd><dt>
+       AGG
+      </dt><dd><p>
+         AGG is the AntiGrain 2D graphics library, which can be used
+         as a renderer in Gnash. It is faster than OpenGL on systems
+         without hardware graphics acceleration. As of Gnash version
+         0.8.1 it is the more feature complete renderer. 
+       </p></dd><dt>
+       AMF
+      </dt><dd><p>
+         <span class="emphasis"><em>AMF</em></span> 
+         is the object format used by <span 
class="emphasis"><em>Flash</em></span> 
+         for shared objects and streaming video.
+       </p></dd><dt>
+       as_environment
+      </dt><dd><p>
+         In Gnash terms, the as_environment, or ActionScript
+         execution environment, contains a stack of objects,
+         characters and values which are in the immediate environment
+         of the current fn_call. Please refer to the Gnash
+         ActionScript manual for more information. 
+        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">C</h3><dl><dt>
+       Cairo
+      </dt><dd><p>
+         Cairo is a 2D graphics library with support for multiple
+         output devices. Can be used as a renderer in Gnash. A useful
+         feature of Cairo is that it will automatically use graphic
+         card acceleration when available. Cairo has an experimental
+         OpenGL backend. 
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">D</h3><dl><dt>
+       DejaGNU
+      </dt><dd><p>
+         DejaGNU is a framework for testing software.
+       </p></dd><dt>
+       DocBook
+      </dt><dd><p>
+         <span class="emphasis"><em>DocBook</em></span>
+         is a markup language for presentation-neutral 
+         documentation, such as manuals.
+       </p></dd><dt>
+       Doxygen
+      </dt><dd><p>
+         <span class="emphasis"><em>Doxygen</em></span> 
+         is a documentation generator for for multiple languages 
+         which uses comments in the source code to create stand-alone
+         documentation. 
+       </p></dd><dt>
+       Drupal
+      </dt><dd><p>
+         Drupal is a CMS/blog system used for the main Gnash website.
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">E</h3><dl><dt>
+       extensions
+      </dt><dd><p>
+         A <span class="application">Gnash</span> <span 
class="emphasis"><em>extension</em></span> is a plugin (not a
+         browser plugin) which implements additional functionality
+         beyond what is covered by <span class="emphasis"><em>Flash</em></span>
+         specification. These are shared libraries which are loaded
+         at runtime. 
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">F</h3><dl><dt>
+       ffmpeg
+      </dt><dd><p>
+         ffmpeg is an audio and video decoding library which can be 
+         used by Gnash to decode mp3, FLV and other media types.  
+       </p></dd><dt>
+       Flash
+      </dt><dd><p>
+         The term <span class="emphasis"><em>Flash</em></span> is used to 
describe both the 
+         Adobe IDE for creating <span class="emphasis"><em>SWF</em></span>
+         files, and the technology itself. Flash is a trademarked
+         term of Adobe's, we prfer to use SWF to refer to the files
+         themselves, as well as the format, instead of flash(tm).
+       </p></dd><dt>
+       FLV
+      </dt><dd><p>
+         FLV is a proprietary file format used to deliver Flash
+         video. It is used by YouTube, among others.  
+       </p></dd><dt>
+       FLTK
+      </dt><dd><p>
+         FLTK, or the 'Fast Light ToolKit', is a portable GUI library
+         which is intended to replace the SDL GUI. Currently in Gnash,
+         FLTK may be used with the Cairo and AGG renderers. FLTK has an
+         experimental Cairo backend. 
+       </p></dd><dt>
+       FrameBuffer
+      </dt><dd><p>
+         In Gnash, this is a GUI library that outputs directly to the
+         Linux Frame Buffer and so does not need a window system to
+         run. This makes it particularly suitable for use on small
+         devices. 
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">G</h3><dl><dt>
+       Gnash
+      </dt><dd><p>
+         Gnash is the GNU Flash movie player.
+       </p></dd><dt>
+       Gstreamer
+      </dt><dd><p>
+         Gstreamer is a multimedia framework which Gnash can use for
+         decoding audio and video. Gstreamer itself cannot decode
+         anything, so it needs some appropriate decoding-plugins to do
+         the work for it. Remember to install them if you use Gnash
+         with Gstreamer enabled. To get the best out of Gnashs
+         gstreamer-parts, it is recommended to install the
+         gst-plugins-good, gst-plugins-good and gst-ffmpeg plugins
+         packages.  
+       </p></dd><dt>
+       GTK
+      </dt><dd><p>
+         GTK is the GIMP Toolkit GUI library. It is one of the GUI
+         options for Gnash. As of Gnash 0.7.2, this is the more
+         performant and feature-rich choice. GTK uses Cairo
+         internally. 
+       </p></dd><dt>
+      GUI
+    </dt><dd><p>
+       A <span class="emphasis"><em>GUI</em></span> is a 
+       "graphical user interface". In <span class="application">Gnash</span>, 
the GUI 
+       library provides a wrapper for mouse and keyboard events, 
+       menus, windowing (where available) and a drawing area. 
+       You must choose a GUI library during the
+       configuration stage of building Gnash.
+      </p></dd></dl></div><div class="glossdiv"><h3 
class="title">K</h3><dl><dt>
+       Klash
+      </dt><dd><p>
+         <span class="emphasis"><em>Klash</em></span> was the name given to 
the stand-alone 
+         instance of <span class="application">Gnash</span> which used the KDE 
GUI.  It has been replaced with 
+         an implementation using Qt.  Some documentation may incorrectly
+         refer to the Konqueror plugin as <span 
class="emphasis"><em>Klash</em></span>.
+         The plugin was renamed <span class="emphasis"><em>Kpart</em></span>.
+       </p></dd><dt>
+       Kpart
+      </dt><dd><p>
+         <span class="emphasis"><em>Kpart</em></span> is a plugin for 
Konqueror which is
+         enabled with the configuration option --enable-kparts.
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">L</h3><dl><dt>
+       libmad
+      </dt><dd><p>
+         libmad is a mp3-decoding library, which used to be an option for Gnash
+         handling of sound (dropped since 0.8.2).
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">M</h3><dl><dt>
+       Mesa
+      </dt><dd><p>
+         <span class="emphasis"><em>Mesa</em></span> is the free software 
OpenGL 
+         implementation.  <span class="application">Gnash</span> documentation 
will sometimes use the
+         glossterms 'OpenGL' and 'Mesa' interchangeably.
+       </p></dd><dt>
+       Ming
+      </dt><dd><p>
+         Ming is a C library for generating SWF ("Flash") format
+         movies, plus a set of wrappers for using the library. It is
+         used by the Gnash project for generating testcases.  
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">N</h3><dl><dt>
+       Nellymoser
+      </dt><dd><p>
+         Nellymoser is a proprietary audio codec introduced in the
+         Flash Player in version 6. For more information, please see
+         Wikipedia. 
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">O</h3><dl><dt>
+       OpenGL
+      </dt><dd><p>
+         OpenGL (Open Graphics Library) is a standard specification
+         defining a cross-language cross-platform API for writing
+         applications that produce 3D and 2D computer
+         graphics. Accelerated graphic cards usually provide OpenGL at
+         the hardware level. Please refer to Wikipedia for availability
+         of free software OpenGL hardware drivers. A free software
+         implementation of the API is available (Mesa). OpenGL can be
+         used as a renderer in Gnash. 
+       </p></dd><dt>
+       ORM
+      </dt><dd><p>
+         ORM is a system for ensuring the rights of the creator over a piece 
of digital content. It is more passive than DRM.
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">P</h3><dl><dt>
+       plugin
+      </dt><dd><p>
+         The glossterm <span class="emphasis"><em>plugin</em></span> is used 
in <span class="application">Gnash</span> to
+         refer to both any <span class="application">Gnash</span> browser 
plugin, as well as the Firefox
+         plugin specifically.  The Konqueror plugin is called
+         <span class="emphasis"><em>Kpart</em></span>.  Sometimes, the term is 
used in
+         an even more generic sense to refer to 
+         <span class="emphasis"><em>extensions</em></span>.
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">Q</h3><dl><dt>
+       Qt
+      </dt><dd><p>
+         Qt is a GUI library which is used by KDE. The plugin version
+         of Gnash using this GUI library is Kpart. The standalone
+         version is enabled with --enable-gui=kde. 
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">R</h3><dl><dt>
+       renderer
+      </dt><dd><p>
+         The <span class="emphasis"><em>renderer</em></span> is the subsystem 
of <span class="application">Gnash</span>
+         which renders content.  Only one renderer may be used; it is
+         selected at configuration time if building from source.
+       </p><p>
+         Available renderers are: AGG, OpenGL, and Cairo. In terms of 
+         feature completeness, AGG comes first; followed by OpenGL and 
+         then Cairo. In most cases, AGG is preferred for performance, 
+         except cases where it is beneficial to have hardware accelerated 
+         rendering (for example, when you have a very slow CPU but a very 
+         fast graphics card). In this case OpenGL should be used.
+       </p></dd><dt>
+       RTMP
+    </dt><dd><p>
+       RTMP is the Real Time Messaging Protocol primarily used with
+       to stream audio and video over the internet to the Flash
+       Player client. 
+      </p></dd><dt>
+       RTMPT
+      </dt><dd><p>
+         RTMPT is basically a HTTP wrapper around the RTMP protocol
+         that is sent using POST requests from the client to the
+         server. Because of the non-persistent nature of HTTP
+         connections, RTMPT requires the clients to poll for updates
+         periodically in order to get notified about events that are
+         generated by the server or other clients.  
+       </p></dd><dt>
+       RTMPTS
+      </dt><dd><p>
+         RTMPTS is the same as RTMPT, but instead of being a HTTP
+         wrapper, it is a HTTP SSL wrapper (HTTP secure connection). 
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">S</h3><dl><dt>
+       SDL
+      </dt><dd><p>
+         Simple DirectMedia Layer is a cross-platform multimedia free
+         software library that creates an abstraction over various
+         platforms' graphics, sound, and input APIs. Gnash can use it
+         as a GUI and/or as a sound handler. Note that the two usages
+         are independent of each other: you can use it for a task and
+         not for the other if you wish. At time or writing (2007-01-11)
+         the SDL GUI lacks menus and a performant input event
+         architecture; the SDL sound handler is the most feature rich,
+         supporting Video through ffmpeg. 
+       </p></dd><dt>
+       sound handler
+      </dt><dd><p>
+         The <span class="emphasis"><em>sound handler</em></span> is the part 
of <span class="application">Gnash</span>
+         which handles both event sounds and streaming sound.  Audio
+         from external sources are also handled through the sound handler
+         when SDL is used.  The sound handler must be selected during
+         configuration of Gnash when compiling.
+       </p><p>
+         There are currently two sound handlers available in <span 
class="application">Gnash</span>:
+         ffmpeg and Gstreamer.  The ffmpeg sound handler uses SDL for
+         mixing.
+         The Gstreamer-sound handler uses the available 
+         plugins to decode the audio, so it might not work if some 
+         important plugins are missing.  The GST sound handler is 
+         recommended (the default).
+       </p></dd><dt>
+       sprite
+      </dt><dd><p>
+         A sprite is an element of an Flash Movie. It's basically a
+         Movie inside another, having its own timeline. 
+       </p></dd><dt>
+       Stage
+      </dt><dd><p>
+         The visible area of a Flash movie. The name derives from a      
theater analogy. Graphical elements are referred to as
+         characters.  
+       </p></dd><dt>
+       SWF
+      </dt><dd><p>
+         <span class="emphasis"><em>SWF</em></span> is the file format for 
+         <span class="emphasis"><em>Flash</em></span> movies.
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">T</h3><dl><dt>
+       Tamarin
+      </dt><dd><p>
+         The Tamarin project seeks to create an open source
+         implementation of the ECMAScript 4th edition language
+         specification. The code is used by Adobe as part of the
+         ActionScript Virtual Machine within the Adobe Flash
+         Player. Gnash does not use Tamarin; it already has a working
+         virtual server and most ActionScript classes are implemented. 
+       </p></dd><dt>
+       timeline
+      </dt><dd><p>
+         In Flash technology, a timeline is a sequence of "frames". A
+         single Flash movie can contain multiple timelines, each
+         independently controlled (STOP or PLAY). At regular intervals
+         (FPS) the player advances all timelines in PLAY mode to the
+         next frame, looping back when last frame is reached. 
+       </p></dd></dl></div><div class="glossdiv"><h3 
class="title">X</h3><dl><dt>
+       X.org
+      </dt><dd><p>
+         X.org is the most commonly used X server; it was forked from
+         XFree86. 
+       </p></dd></dl></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="authors"></a>Chapter 5. 
Authors</h2></div></div></div><p>
+        <span class="application">Gnash</span> is maintained by Rob Savoye. 
Other active developers
+       are: Sandro Santilli, Bastiaan Jacques, Udo Giacomozzi, Chad
+       Musick, Benjamin Wolsey, and Zou Lunkai. Please send all
+       comments and suggestions to <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden
+       </a>&gt;</code>. Past and sometimes current developers are Tomas
+       Groth and Markus Gothe.
+    </p><p>
+        <span class="application">Gnash</span> was initially derived from 
<span class="application">GameSWF</span>.
+        <span class="application">GameSWF</span> is maintained by
+        Thatcher Ulrich <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>.  The following
+        people contributed to <span class="application">GameSWF</span>:
+        Mike Shaver, Thierry Berger-Perrin,
+       Ignacio Castaño, Willem Kokke, Vitaly Alexeev, Alexander Streit, 
+        and Rob Savoye.
+    </p></div><div class="appendix" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="fdl"></a>Appendix A. GNU 
Free Documentation License</h2></div><div><p class="releaseinfo">
+      Version 1.1, March 2000
+    </p></div><div><p class="copyright">Copyright © 2000 Free Software 
Foundation, Inc.</p></div><div><div class="legalnotice"><a 
name="fdl-legalnotice"></a><p>
+       </p><div class="address"><p>Free Software Foundation, Inc. <span 
class="street">59 Temple Place, <br>
+        Suite 330</span>, <span class="city">Boston</span>, <span 
class="state">MA</span>  <br>
+        <span class="postcode">02111-1307</span>  <span 
class="country">USA</span></p></div><p> 
+       Everyone is permitted to copy and distribute verbatim copies of this 
+        license document, but changing it is not allowed.
+      </p></div></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a href="#fdl-preamble">0. 
PREAMBLE</a></span></dt><dt><span class="sect1"><a href="#fdl-section1">1. 
APPLICABILITY AND DEFINITIONS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section2">2. VERBATIM COPYING</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section3">3. COPYING IN 
QUANTITY</a></span></dt><dt><span class="sect1"><a href="#fdl-section4">4. 
MODIFICATIONS</a></span></dt><dt><span class="sect1"><a href="#fdl-section5">5. 
COMBINING DOCUMENTS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section6">6. COLLECTIONS OF DOCUMENTS</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section7">7. AGGREGATION WITH INDEPENDENT 
WORKS</a></span></dt><dt><span class="sect1"><a href="#fdl-section8">8. 
TRANSLATION</a></span></dt><dt><span class="sect1"><a href="#fdl-section9">9. 
TERMINATION</a></span></dt><dt><span class="sect1"><a href="#fdl-section10">10. 
FUTURE REVISIONS OF THIS LICENSE</a></span></dt><dt><span class="sect1"><a 
href="#fdl-using">Addendum</a></span></dt></dl></div><div class="sect1" 
lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: 
both"><a name="fdl-preamble"></a>0. PREAMBLE</h2></div></div></div><p>
+      The purpose of this License is to make a manual, textbook, or
+      other written document "free" in the sense of
+      freedom: to assure everyone the effective freedom to copy and
+      redistribute it, with or without modifying it, either
+      commercially or non-commercially. Secondarily, this License
+      preserves for the author and publisher a way to get credit for
+      their work, while not being considered responsible for
+      modifications made by others.
+    </p><p>
+      This License is a kind of "copyleft", which means
+      that derivative works of the document must themselves be free in
+      the same sense. It complements the GNU General Public License,
+      which is a copyleft license designed for free software.
+    </p><p>
+      We have designed this License in order to use it for manuals for
+      free software, because free software needs free documentation: a
+      free program should come with manuals providing the same
+      freedoms that the software does. But this License is not limited
+      to software manuals; it can be used for any textual work,
+      regardless of subject matter or whether it is published as a
+      printed book. We recommend this License principally for works
+      whose purpose is instruction or reference.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section1"></a>1. APPLICABILITY AND 
DEFINITIONS</h2></div></div></div><p><a name="fdl-document"></a>
+      This License applies to any manual or other work that contains a
+      notice placed by the copyright holder saying it can be
+      distributed under the terms of this License. The
+      "Document", below, refers to any such manual or
+      work. Any member of the public is a licensee, and is addressed
+      as "you".
+    </p><p><a name="fdl-modified"></a>
+      A "Modified Version" of the Document means any work
+      containing the Document or a portion of it, either copied
+      verbatim, or with modifications and/or translated into another
+      language.
+    </p><p><a name="fdl-secondary"></a>
+      A "Secondary Section" is a named appendix or a
+      front-matter section of the <a class="link" 
href="#fdl-document">Document</a> that deals exclusively
+      with the relationship of the publishers or authors of the
+      Document to the Document's overall subject (or to related
+      matters) and contains nothing that could fall directly within
+      that overall subject. (For example, if the Document is in part a
+      textbook of mathematics, a Secondary Section may not explain any
+      mathematics.)  The relationship could be a matter of historical
+      connection with the subject or with related matters, or of
+      legal, commercial, philosophical, ethical or political position
+      regarding them.
+    </p><p><a name="fdl-invariant"></a>
+      The "Invariant Sections" are certain <a class="link" 
href="#fdl-secondary"> Secondary Sections</a> whose titles
+      are designated, as being those of Invariant Sections, in the
+      notice that says that the <a class="link" 
href="#fdl-document">Document</a> is released under this
+      License.
+    </p><p><a name="fdl-cover-texts"></a>
+      The "Cover Texts" are certain short passages of
+      text that are listed, as Front-Cover Texts or Back-Cover Texts,
+      in the notice that says that the <a class="link" 
href="#fdl-document">Document</a> is released under this
+      License.
+    </p><p><a name="fdl-transparent"></a>
+      A "Transparent" copy of the <a class="link" href="#fdl-document"> 
Document</a> means a machine-readable
+      copy, represented in a format whose specification is available
+      to the general public, whose contents can be viewed and edited
+      directly and straightforwardly with generic text editors or (for
+      images composed of pixels) generic paint programs or (for
+      drawings) some widely available drawing editor, and that is
+      suitable for input to text formatters or for automatic
+      translation to a variety of formats suitable for input to text
+      formatters. A copy made in an otherwise Transparent file format
+      whose markup has been designed to thwart or discourage
+      subsequent modification by readers is not Transparent.  A copy
+      that is not "Transparent" is called "Opaque".
+    </p><p>
+      Examples of suitable formats for Transparent copies include
+      plain ASCII without markup, Texinfo input format, LaTeX input
+      format, SGML or XML using a publicly available DTD, and
+      standard-conforming simple HTML designed for human
+      modification. Opaque formats include PostScript, PDF,
+      proprietary formats that can be read and edited only by
+      proprietary word processors, SGML or XML for which the DTD
+      and/or processing tools are not generally available, and the
+      machine-generated HTML produced by some word processors for
+      output purposes only.
+    </p><p><a name="fdl-title-page"></a>
+      The "Title Page" means, for a printed book, the
+      title page itself, plus such following pages as are needed to
+      hold, legibly, the material this License requires to appear in
+      the title page. For works in formats which do not have any title
+      page as such, "Title Page" means the text near the
+      most prominent appearance of the work's title, preceding the
+      beginning of the body of the text.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section2"></a>2. VERBATIM COPYING</h2></div></div></div><p>
+      You may copy and distribute the <a class="link" 
href="#fdl-document">Document</a> in any medium, either
+      commercially or noncommercially, provided that this License, the
+      copyright notices, and the license notice saying this License
+      applies to the Document are reproduced in all copies, and that
+      you add no other conditions whatsoever to those of this
+      License. You may not use technical measures to obstruct or
+      control the reading or further copying of the copies you make or
+      distribute. However, you may accept compensation in exchange for
+      copies. If you distribute a large enough number of copies you
+      must also follow the conditions in <a class="link" href="#fdl-section3" 
title="3. COPYING IN QUANTITY">section 3</a>.
+    </p><p>
+      You may also lend copies, under the same conditions stated
+      above, and you may publicly display copies.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section3"></a>3. COPYING IN QUANTITY</h2></div></div></div><p>
+      If you publish printed copies of the <a class="link" 
href="#fdl-document">Document</a> numbering more than 100,
+      and the Document's license notice requires <a class="link" 
href="#fdl-cover-texts">Cover Texts</a>, you must enclose
+      the copies in covers that carry, clearly and legibly, all these
+      Cover Texts: Front-Cover Texts on the front cover, and
+      Back-Cover Texts on the back cover. Both covers must also
+      clearly and legibly identify you as the publisher of these
+      copies. The front cover must present the full title with all
+      words of the title equally prominent and visible. You may add
+      other material on the covers in addition. Copying with changes
+      limited to the covers, as long as they preserve the title of the
+      <a class="link" href="#fdl-document">Document</a> and satisfy these
+      conditions, can be treated as verbatim copying in other
+      respects.
+    </p><p>
+      If the required texts for either cover are too voluminous to fit
+      legibly, you should put the first ones listed (as many as fit
+      reasonably) on the actual cover, and continue the rest onto
+      adjacent pages.
+    </p><p>
+      If you publish or distribute <a class="link" 
href="#fdl-transparent">Opaque</a> copies of the <a class="link" 
href="#fdl-document">Document</a> numbering more than 100,
+      you must either include a machine-readable <a class="link" 
href="#fdl-transparent">Transparent</a> copy along with
+      each Opaque copy, or state in or with each Opaque copy a
+      publicly-accessible computer-network location containing a
+      complete Transparent copy of the Document, free of added
+      material, which the general network-using public has access to
+      download anonymously at no charge using public-standard network
+      protocols. If you use the latter option, you must take
+      reasonably prudent steps, when you begin distribution of Opaque
+      copies in quantity, to ensure that this Transparent copy will
+      remain thus accessible at the stated location until at least one
+      year after the last time you distribute an Opaque copy (directly
+      or through your agents or retailers) of that edition to the
+      public.
+    </p><p>
+      It is requested, but not required, that you contact the authors
+      of the <a class="link" href="#fdl-document">Document</a> well before
+      redistributing any large number of copies, to give them a chance
+      to provide you with an updated version of the Document.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section4"></a>4. MODIFICATIONS</h2></div></div></div><p>
+      You may copy and distribute a <a class="link" 
href="#fdl-modified">Modified Version</a> of the <a class="link" 
href="#fdl-document">Document</a> under the conditions of
+      sections <a class="link" href="#fdl-section2" title="2. VERBATIM 
COPYING">2</a> and <a class="link" href="#fdl-section3" title="3. COPYING IN 
QUANTITY">3</a> above, provided that you release
+      the Modified Version under precisely this License, with the
+      Modified Version filling the role of the Document, thus
+      licensing distribution and modification of the Modified Version
+      to whoever possesses a copy of it. In addition, you must do
+      these things in the Modified Version:
+    </p><div class="itemizedlist"><ul type="opencircle"><li 
style="list-style-type: circle"><p><b>A. </b>
+           Use in the <a class="link" href="#fdl-title-page">Title
+           Page</a> (and on the covers, if any) a title distinct
+           from that of the <a class="link" href="#fdl-document">Document</a>, 
and from those of
+           previous versions (which should, if there were any, be
+           listed in the History section of the Document). You may
+           use the same title as a previous version if the original
+           publisher of that version gives permission.
+         </p></li><li style="list-style-type: circle"><p><b>B. </b>
+           List on the <a class="link" href="#fdl-title-page">Title
+           Page</a>, as authors, one or more persons or entities
+           responsible for authorship of the modifications in the
+           <a class="link" href="#fdl-modified">Modified Version</a>,
+           together with at least five of the principal authors of
+           the <a class="link" href="#fdl-document">Document</a> (all of
+           its principal authors, if it has less than five).
+         </p></li><li style="list-style-type: circle"><p><b>C. </b>
+           State on the <a class="link" href="#fdl-title-page">Title
+           Page</a> the name of the publisher of the <a class="link" 
href="#fdl-modified">Modified Version</a>, as the
+           publisher.
+         </p></li><li style="list-style-type: circle"><p><b>D. </b>
+           Preserve all the copyright notices of the <a class="link" 
href="#fdl-document">Document</a>.
+         </p></li><li style="list-style-type: circle"><p><b>E. </b>
+           Add an appropriate copyright notice for your modifications
+           adjacent to the other copyright notices.
+         </p></li><li style="list-style-type: circle"><p><b>F. </b>
+           Include, immediately after the copyright notices, a
+           license notice giving the public permission to use the
+           <a class="link" href="#fdl-modified">Modified Version</a> under
+           the terms of this License, in the form shown in the
+           Addendum below.
+         </p></li><li style="list-style-type: circle"><p><b>G. </b>
+           Preserve in that license notice the full lists of <a class="link" 
href="#fdl-invariant"> Invariant Sections</a> and
+           required <a class="link" href="#fdl-cover-texts">Cover
+           Texts</a> given in the <a class="link" 
href="#fdl-document">Document's</a> license notice.
+         </p></li><li style="list-style-type: circle"><p><b>H. </b>
+           Include an unaltered copy of this License.
+         </p></li><li style="list-style-type: circle"><p><b>I. </b>
+           Preserve the section entitled "History", and
+           its title, and add to it an item stating at least the
+           title, year, new authors, and publisher of the <a class="link" 
href="#fdl-modified">Modified Version </a>as given on
+           the <a class="link" href="#fdl-title-page">Title Page</a>.  If
+           there is no section entitled "History" in the
+           <a class="link" href="#fdl-document">Document</a>, create one
+           stating the title, year, authors, and publisher of the
+           Document as given on its Title Page, then add an item
+           describing the Modified Version as stated in the previous
+           sentence.
+         </p></li><li style="list-style-type: circle"><p><b>J. </b>
+           Preserve the network location, if any, given in the <a class="link" 
href="#fdl-document">Document</a> for public access
+           to a <a class="link" href="#fdl-transparent">Transparent</a>
+           copy of the Document, and likewise the network locations
+           given in the Document for previous versions it was based
+           on. These may be placed in the "History"
+           section.  You may omit a network location for a work that
+           was published at least four years before the Document
+           itself, or if the original publisher of the version it
+           refers to gives permission.
+         </p></li><li style="list-style-type: circle"><p><b>K. </b>
+           In any section entitled "Acknowledgements" or
+           "Dedications", preserve the section's title,
+           and preserve in the section all the substance and tone of
+           each of the contributor acknowledgements and/or
+           dedications given therein.
+         </p></li><li style="list-style-type: circle"><p><b>L. </b>
+           Preserve all the <a class="link" href="#fdl-invariant">Invariant
+           Sections</a> of the <a class="link" 
href="#fdl-document">Document</a>, unaltered in their
+           text and in their titles.  Section numbers or the
+           equivalent are not considered part of the section titles.
+         </p></li><li style="list-style-type: circle"><p><b>M. </b>
+           Delete any section entitled
+           "Endorsements". Such a section may not be
+           included in the <a class="link" href="#fdl-modified">Modified
+           Version</a>.
+         </p></li><li style="list-style-type: circle"><p><b>N. </b>
+           Do not retitle any existing section as
+           "Endorsements" or to conflict in title with
+           any <a class="link" href="#fdl-invariant">Invariant
+           Section</a>.
+         </p></li></ul></div><p>
+      If the <a class="link" href="#fdl-modified">Modified Version</a>
+      includes new front-matter sections or appendices that qualify as
+      <a class="link" href="#fdl-secondary">Secondary Sections</a> and
+      contain no material copied from the Document, you may at your
+      option designate some or all of these sections as invariant. To
+      do this, add their titles to the list of <a class="link" 
href="#fdl-invariant">Invariant Sections</a> in the
+      Modified Version's license notice.  These titles must be
+      distinct from any other section titles.
+    </p><p>
+      You may add a section entitled "Endorsements",
+      provided it contains nothing but endorsements of your <a class="link" 
href="#fdl-modified">Modified Version</a> by various
+      parties--for example, statements of peer review or that the text
+      has been approved by an organization as the authoritative
+      definition of a standard.
+    </p><p>
+      You may add a passage of up to five words as a <a class="link" 
href="#fdl-cover-texts">Front-Cover Text</a>, and a passage
+      of up to 25 words as a <a class="link" 
href="#fdl-cover-texts">Back-Cover Text</a>, to the end of
+      the list of <a class="link" href="#fdl-cover-texts">Cover Texts</a>
+      in the <a class="link" href="#fdl-modified">Modified Version</a>.
+      Only one passage of Front-Cover Text and one of Back-Cover Text
+      may be added by (or through arrangements made by) any one
+      entity. If the <a class="link" href="#fdl-document">Document</a>
+      already includes a cover text for the same cover, previously
+      added by you or by arrangement made by the same entity you are
+      acting on behalf of, you may not add another; but you may
+      replace the old one, on explicit permission from the previous
+      publisher that added the old one.
+    </p><p>
+      The author(s) and publisher(s) of the <a class="link" 
href="#fdl-document">Document</a> do not by this License
+      give permission to use their names for publicity for or to
+      assert or imply endorsement of any <a class="link" 
href="#fdl-modified">Modified Version </a>.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section5"></a>5. COMBINING DOCUMENTS</h2></div></div></div><p>
+      You may combine the <a class="link" href="#fdl-document">Document</a>
+      with other documents released under this License, under the
+      terms defined in <a class="link" href="#fdl-section4" title="4. 
MODIFICATIONS">section 4</a>
+      above for modified versions, provided that you include in the
+      combination all of the <a class="link" href="#fdl-invariant">Invariant
+      Sections</a> of all of the original documents, unmodified,
+      and list them all as Invariant Sections of your combined work in
+      its license notice.
+    </p><p>
+      The combined work need only contain one copy of this License,
+      and multiple identical <a class="link" href="#fdl-invariant">Invariant
+      Sections</a> may be replaced with a single copy. If there are
+      multiple Invariant Sections with the same name but different
+      contents, make the title of each such section unique by adding
+      at the end of it, in parentheses, the name of the original
+      author or publisher of that section if known, or else a unique
+      number. Make the same adjustment to the section titles in the
+      list of Invariant Sections in the license notice of the combined
+      work.
+    </p><p>
+      In the combination, you must combine any sections entitled
+      "History" in the various original documents,
+      forming one section entitled "History"; likewise
+      combine any sections entitled "Acknowledgements",
+      and any sections entitled "Dedications".  You must
+      delete all sections entitled "Endorsements."
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section6"></a>6. COLLECTIONS OF DOCUMENTS</h2></div></div></div><p>
+      You may make a collection consisting of the <a class="link" 
href="#fdl-document">Document</a> and other documents
+      released under this License, and replace the individual copies
+      of this License in the various documents with a single copy that
+      is included in the collection, provided that you follow the
+      rules of this License for verbatim copying of each of the
+      documents in all other respects.
+    </p><p>
+      You may extract a single document from such a collection, and
+      distribute it individually under this License, provided you
+      insert a copy of this License into the extracted document, and
+      follow this License in all other respects regarding verbatim
+      copying of that document.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section7"></a>7. AGGREGATION WITH INDEPENDENT 
WORKS</h2></div></div></div><p>
+      A compilation of the <a class="link" href="#fdl-document">Document</a> 
or its derivatives with
+      other separate and independent documents or works, in or on a
+      volume of a storage or distribution medium, does not as a whole
+      count as a <a class="link" href="#fdl-modified">Modified Version</a>
+      of the Document, provided no compilation copyright is claimed
+      for the compilation.  Such a compilation is called an
+      "aggregate", and this License does not apply to the
+      other self-contained works thus compiled with the Document , on
+      account of their being thus compiled, if they are not themselves
+      derivative works of the Document.  If the <a class="link" 
href="#fdl-cover-texts">Cover Text</a> requirement of <a class="link" 
href="#fdl-section3" title="3. COPYING IN QUANTITY">section 3</a> is applicable 
to these
+      copies of the Document, then if the Document is less than one
+      quarter of the entire aggregate, the Document's Cover Texts may
+      be placed on covers that surround only the Document within the
+      aggregate. Otherwise they must appear on covers around the whole
+      aggregate.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section8"></a>8. TRANSLATION</h2></div></div></div><p>
+      Translation is considered a kind of modification, so you may
+      distribute translations of the <a class="link" 
href="#fdl-document">Document</a> under the terms of <a class="link" 
href="#fdl-section4" title="4. MODIFICATIONS">section 4</a>. Replacing <a 
class="link" href="#fdl-invariant"> Invariant Sections</a> with
+      translations requires special permission from their copyright
+      holders, but you may include translations of some or all
+      Invariant Sections in addition to the original versions of these
+      Invariant Sections. You may include a translation of this
+      License provided that you also include the original English
+      version of this License. In case of a disagreement between the
+      translation and the original English version of this License,
+      the original English version will prevail.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section9"></a>9. TERMINATION</h2></div></div></div><p>
+      You may not copy, modify, sublicense, or distribute the <a class="link" 
href="#fdl-document">Document</a> except as expressly
+      provided for under this License. Any other attempt to copy,
+      modify, sublicense or distribute the Document is void, and will
+      automatically terminate your rights under this License. However,
+      parties who have received copies, or rights, from you under this
+      License will not have their licenses terminated so long as such
+      parties remain in full compliance.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section10"></a>10. FUTURE REVISIONS OF THIS 
LICENSE</h2></div></div></div><p>
+      The <a class="ulink" href="http://www.gnu.org/fsf/fsf.html"; 
target="_top">Free Software
+      Foundation</a> may publish new, revised versions of the GNU
+      Free Documentation License from time to time. Such new versions
+      will be similar in spirit to the present version, but may differ
+      in detail to address new problems or concerns. See <a class="ulink" 
href="http://www.gnu.org/copyleft"; 
target="_top">http://www.gnu.org/copyleft/</a>.
+    </p><p>
+      Each version of the License is given a distinguishing version
+      number. If the <a class="link" href="#fdl-document">Document</a>
+      specifies that a particular numbered version of this License
+      "or any later version" applies to it, you have the
+      option of following the terms and conditions either of that
+      specified version or of any later version that has been
+      published (not as a draft) by the Free Software Foundation. If
+      the Document does not specify a version number of this License,
+      you may choose any version ever published (not as a draft) by
+      the Free Software Foundation.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-using"></a>Addendum</h2></div></div></div><p>
+      To use this License in a document you have written, include a copy of
+      the License in the document and put the following copyright and
+      license notices just after the title page:
+    </p><div class="blockquote"><blockquote class="blockquote"><p>
+       Copyright 2008, Free Software Foundation.
+      </p><p>
+       Permission is granted to copy, distribute and/or modify this
+       document under the terms of the GNU Free Documentation
+       License, Version 1.1 or any later version published by the
+       Free Software Foundation; with no<a class="link" 
href="#fdl-invariant">Invariant Sections</a>, with no <a class="link" 
href="#fdl-cover-texts">Front-Cover Texts</a>,
+       and with no <a class="link" href="#fdl-cover-texts">Back-Cover
+       Texts</a>. A copy of the license is included in
+       the section entitled "GNU Free Documentation License".
+      </p></blockquote></div><p>
+      If your document contains nontrivial examples of program code,
+      we recommend releasing these examples in parallel under your
+      choice of free software license, such as the <a class="ulink" 
href="http://www.gnu.org/copyleft/gpl.html"; target="_top"> GNU General Public
+      License</a>, to permit their use in free software.
+    </p></div></div></div></body></html>

Index: doc/C/preformatted/gnashuser.ref.in
===================================================================
RCS file: doc/C/preformatted/gnashuser.ref.in
diff -N doc/C/preformatted/gnashuser.ref.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/preformatted/gnashuser.ref.in 3 Mar 2008 23:46:45 -0000       1.1.2.2
@@ -0,0 +1,4583 @@
+START-INFO-DIR-ENTRY
+This is gnash_ref.info, produced by makeinfo version 4.11 from gnash_ref.texi.
+
+* Gnash Reference Manual: (gnash_ref).   Gnash
+END-INFO-DIR-ENTRY
+
+
+File: gnash_ref.info,  Node: Top,  Next: Introduction,  Up: (dir)
+
+Gnash Reference Manual
+**********************
+
+* Menu:
+
+* Introduction::
+* Building from Source::
+* Software Internals::
+* Gnash Extensions::
+* RTMP Protocol::
+* Mozilla/Firefox NSAPI Plugin::
+* Appendix::
+* Authors::
+* GNU Free Documentation License::
+
+--- The Detailed Node Listing ---
+
+Introduction
+
+* Audience::
+* What Is Supported ?::
+
+Building from Source
+
+* Overview::
+* Getting The Source::
+* Code Dependencies::
+* Testing Dependencies::
+* Documentation Dependencies::
+* Configuring Gnash::
+* Compiling the Code::
+* Creating the Documentation::
+* Running the Tests::
+
+Software Internals
+
+* A Tour of Gnash::
+* Sound handling in Gnash::
+* Testing : Testing.
+* Adding New ActionScript Class::
+
+Gnash Extensions
+
+* Creating A New Extension::
+* Debugging An Extension::
+* Included Extensions::
+
+RTMP Protocol
+
+* AMF Format::
+
+Mozilla/Firefox NSAPI Plugin
+
+* Plugin C API::
+* Plugin C++ API::
+* OpenGL and Threads::
+* Plugin Event Handling::
+
+Appendix
+
+* Code Style::
+
+GNU Free Documentation License
+
+* 0. PREAMBLE: 0_ PREAMBLE.
+* 1. APPLICABILITY AND DEFINITIONS: 1_ APPLICABILITY AND DEFINITIONS.
+* 2. VERBATIM COPYING: 2_ VERBATIM COPYING.
+* 3. COPYING IN QUANTITY: 3_ COPYING IN QUANTITY.
+* 4. MODIFICATIONS: 4_ MODIFICATIONS.
+* 5. COMBINING DOCUMENTS: 5_ COMBINING DOCUMENTS.
+* 6. COLLECTIONS OF DOCUMENTS: 6_ COLLECTIONS OF DOCUMENTS.
+* 7. AGGREGATION WITH INDEPENDENT WORKS: 7_ AGGREGATION WITH INDEPENDENT WORKS.
+* 8. TRANSLATION: 8_ TRANSLATION.
+* 9. TERMINATION: 9_ TERMINATION.
+* 10. FUTURE REVISIONS OF THIS LICENSE: 10_ FUTURE REVISIONS OF THIS LICENSE.
+* Addendum::
+
+
+File: gnash_ref.info,  Node: Introduction,  Next: Building from Source,  Prev: 
Top,  Up: Top
+
+1 Introduction
+**************
+
+Gnash is a free SWF movie player.  It is available as a stand-alone
+application or as a plugin for several popular web browsers. It
+supports playing media from a disk or streaming over a network
+connection. Some popular video sharing sites like YouTube are supported
+from a wide vaariety of devices from embedded ones to modern desktops.
+
+   Gnash has a better focus on security, allowing the user tight
+control of all network or disk based I/O. Gnash also supports extending
+ActionScript by creating your own. You can write wrappers for any
+development library, and import them into the player much like perl or
+python does.
+
+* Menu:
+
+* Audience::
+* What Is Supported ?::
+
+
+File: gnash_ref.info,  Node: Audience,  Next: What Is Supported ?,  Up: 
Introduction
+
+1.1 Audience
+============
+
+This manual is primarily focused on users interested in how to get
+Gnash installed from a package, and basic usage as a web browser
+plugin. For more technical details, please refer to the Gnash Reference
+manual.
+
+
+File: gnash_ref.info,  Node: What Is Supported ?,  Prev: Audience,  Up: 
Introduction
+
+1.2 What Is Supported ?
+=======================
+
+Gnash is known to compile for most any POSIX and ANSI C++ conforming
+system if you have all the dependent libraries installed. Systems we
+test on, and which Gnash is know to run on are Ubuntu, Fedora, Debian,
+OpenBSD, NetBSD, FreeBSD, Win32, and Darwin (OSX) primarily.
+Occasionally other platforms are built, primarily by those distribution
+maintainers. This includes BeOS, Haiku, Syllable, OS/2, Solaris,
+Slackware, and Gentoo.
+
+   Gnash is a capable of reading up to SWF v9 files and opcodes, but
+primarily supports SWF v7, with better SWF v8 and v9 support under
+heavy developement. With the 0.8.2 release, Gnash includes initial
+parser support for SWF v8 and v9.  Not all ActionScript 2 classes are
+implemented yet, but all of the most heavily used ones are. Many
+ActionScript 2 classes are partially implemented; there is support for
+all of the commonly used methods of each class.
+
+   Gnash has implemented about 80% of ActionScript v. 2.0, and has
+begun implementing ActionScript v. 3.0. Gnash supports the majority of
+Flash opcodes up to SWF version 9, and a wide sampling of ActionScript
+classes for SWF version 8.
+
+   As ActionsScript 3 is a more developed version of ActionScript 2,
+many of the same classes work for both. Support has been added to
+Gnash's ActionScript library to support the new ActionScript 3 filters,
+which get applied to every class. Implementing ActionScript clases is
+often the easiest way for new Gnash developers to make a contribution
+without a deep internal knpowledge of Gnash.
+
+   Gnash has included video support since early 2007, but this is an
+every changing field of reverse engineering. Many of the popular video
+sharing sites use SWF v8 or v9, which Gnash still has imperfect support
+for. This is improving all the time, so often builds from a development
+snapshot will work when using the older release packaged in your
+distribution doesn't. You can find daily snapshots of the latest CVS
+tree at: http://www.gnashdev.org/dev_snapshots
+(http://www.gnashdev.org/dev_snapshots/).
+
+   Gnash uses ffmpeg for codecs, so any file supported by Mplayer
+should work with Gnash. Gnash supports the loading of patent free
+codecs like Ogg Vorbis or Theora from disk based files, while work is
+being done to support these codecs when embedded in a SWF file. Ffmpeg
+contains the codecs used by the current SWF defintion, FLV, VP6 (ON2),
+H.263, H.264, and MP3.
+
+
+File: gnash_ref.info,  Node: Building from Source,  Next: Software Internals,  
Prev: Introduction,  Up: Top
+
+2 Building from Source
+**********************
+
+* Menu:
+
+* Overview::
+* Getting The Source::
+* Code Dependencies::
+* Testing Dependencies::
+* Documentation Dependencies::
+* Configuring Gnash::
+* Compiling the Code::
+* Creating the Documentation::
+* Running the Tests::
+
+
+File: gnash_ref.info,  Node: Overview,  Next: Getting The Source,  Up: 
Building from Source
+
+2.1 Overview
+============
+
+The typical process of building from source will involve getting the
+source (*note Getting The Source::), build dependencies (*note Code
+Dependencies::), configuration (*note Configuring Gnash::), compilation
+(*note Compiling the Code::), testing (*note Running the Tests::), and
+installation (*note Installation::).  A simplified overview of the
+process would be:
+
+
+             ./autogen.sh
+             ./configure
+             make
+             make check
+             make install
+
+   If you are compiling with GCC you will probably need to use a machine
+with at least 128 megabytes of physical RAM; 64MB is not enough for a
+couple of the files, even with swap enabled and optimisation turned off.
+
+   At present the Gnash source is about 30 MB to extracted and
+configured and requires a total of about 125 megabytes to compile it.
+
+   Continue reading for detailed step-by-step instructions of the
+entire procedure.
+
+
+File: gnash_ref.info,  Node: Getting The Source,  Next: Code Dependencies,  
Prev: Overview,  Up: Building from Source
+
+2.2 Getting The Source
+======================
+
+* Menu:
+
+* Releases::
+* CVS Access::
+
+
+File: gnash_ref.info,  Node: Releases,  Next: CVS Access,  Up: Getting The 
Source
+
+2.2.1 Releases
+--------------
+
+Tarballs of official releases can be found in the download area of the
+project's GNU Savannah page at http://savannah.gnu.org/projects/gnash
+(http://savannah.gnu.org/projects/gnash) or under
+http://ftp.gnu.org/gnu/gnash (http://ftp.gnu.org/gnu/gnash)
+
+
+File: gnash_ref.info,  Node: CVS Access,  Prev: Releases,  Up: Getting The 
Source
+
+2.2.2 CVS Access
+----------------
+
+The latest Gnash development sources are available via anonymous CVS.
+Use the following commands to check them out (just hit return when you
+are prompted for the password):
+
+
+         export CVS_RSH=ssh
+         cvs -z3 -d:pserver:address@hidden:/sources/gnash co gnash
+
+you will then be able to update your copy from the repository using
+
+
+         cd gnash
+         cvs update -d
+
+   If you only have access to the internet via a web proxy, you will
+find daily source snapshots of the latest CVS tree in
+http://www.gnashdev.org/dev_snapshots
+(http://www.gnashdev.org/dev_snapshots/)
+
+
+File: gnash_ref.info,  Node: Code Dependencies,  Next: Testing Dependencies,  
Prev: Getting The Source,  Up: Building from Source
+
+2.3 Code Dependencies
+=====================
+
+Gnash has a number of dependencies on other packages.  If you install
+the dependencies using a package manager, be certain to install the
+development versions of the packages.  The normal versions are often
+missing the headers Gnash needs to compile.
+
+   Some dependencies have other dependencies, like GTk also needs
+glib2, atk, and pango to produce a fully linked executable. Different
+distributions also use differing dependencies, sometimes a package will
+depend on libxml2 on one system, but libexpat on another.
+
+*Code Dependency Table*
+
+Name       Level      Version    DescriptionExplanationapt-get    RPM/Yum
+                                                       package    packageBSD
+                                                                  package
+Boost      Required   1.32 or     Boost is  In Gnash,  `libboost-thread-dev,`
+                      higher     a library  Boost      
libboost-date-time-devlibboost-thread-devel,
+                                 of         libraries  
libboost-devlibboost-date-time-devel
+                                 portable   are used   '          '`
+                                 C++        extensively,           
boost-headers,
+                                 classes    primarily             boost-libs,
+                                 and        boost-gthread           or just
+                                 templates. and                   boost '
+                                            boost-date-time.           
+                                            Boost is              
+                                            used for              
+                                            thread                
+                                            and mutext            
+                                            handling.             
+libxml2    Required               Libxml2   This       
`libxml2-dev'`libxml2-devel'`libxml2'
+                                 is the     library               
+                                 GNOME XML  is used               
+                                 parser     to parse              
+                                 library    messages              
+                                 and is     for the               
+                                 available  XML                   
+                                 at         XMLNode,              
+                                 http://xmlsoft.orgor                    
+                                 (http://xmlsoft.org).XMLSocket             
+                                            ActionScript           
+                                            classes.              
+AGG        Possibly   2.4 or      AGG is    Gnash      
`libagg-dev'`agg-devel'`agg'
+           Required   higher     the        requires              
+                                 AntiGrain  the                   
+                                 low-level  installation           
+                                 2D         of at                 
+                                 graphics   least one             
+                                 library.   renderer.             
+                                            AGG is                
+                                            considered            
+                                            the _best             
+                                            supported_            
+                                            renderer              
+                                            for Gnash.            
+OpenGL     Possibly               OpenGL    Gnash      
`libgl1-mesa-dev'`libmesa-devel'`mesa'
+           Required              is a       requires              
+                                 standard   the                   
+                                 specificationinstallation           
+                                 defining a of at                 
+                                 cross-languageleast one             
+                                 cross-platformrenderer.             
+                                 API for    If you                
+                                 writing    don't                 
+                                 applicationshave a                
+                                 which      hardware              
+                                 produce    accelerated           
+                                 3D and 2D  driver,               
+                                 graphics.  you're                
+                                 It         better                
+                                 supports   off using             
+                                 hardware   AGG for               
+                                 acceleration.the                   
+                                 You can    renderer.             
+                                 download                         
+                                 a free                           
+                                 implementation                      
+                                 from                             
+                                 http://www.mesa3d.org                      
+                                 (http://www.mesa3d.org),                      
+                                 although                         
+                                 it                               
+                                 doesn't                          
+                                 support                          
+                                 hardware                         
+                                 acceleration.                      
+Cairo      Possibly               Cairo is  Gnash      
`libcairo2-dev'`cairo-devel'`cairo'
+           Required              a 2D       requires              
+                                 graphics   the                   
+                                 library    installation           
+                                 with       of at                 
+                                 support    least one             
+                                 for        renderer.             
+                                 multiple   Cairo is              
+                                 output     considered            
+                                 devices.   the                   
+                                 It will    _least                
+                                 automaticallysupported_            
+                                 use        renderer              
+                                 graphic    for Gnash.            
+                                 card                             
+                                 acceleration                      
+                                 when                             
+                                 available,                       
+                                 and has                          
+                                 an                               
+                                 experimental                      
+                                 OpenGL                           
+                                 backend.                         
+GTK        Possibly   2.2 or      GTK is    Gnash      
`libgtk2.0-dev'`gtk-devel'`gtk+2'
+           Required   higher     the GIMP   requires              
+                                 Toolkit    the                   
+                                 GUI        installation           
+                                 library    of at                 
+                                 used by    least one             
+                                 the GNOME  GUI                   
+                                 desktop.   library.              
+                                 It uses    GTK is                
+                                 Cairo      considered            
+                                 internally.to be the             
+                                 Gtk        _best                 
+                                 enables    supported_            
+                                 better     GUI                   
+                                 integrationlibrary               
+                                 with       option                
+                                 Firefox,   for Gnash.            
+                                 as well                          
+                                 as better                        
+                                 event                            
+                                 handling                         
+                                 and                              
+                                 higher                           
+                                 level GUI                        
+                                 constructs                       
+                                 like                             
+                                 menus and                        
+                                 dialog                           
+                                 boxes.                           
+GtkGlExt   Possibly               GtkGlExt  This       
`libgtkglext1-dev'`gtkglext-devel'`gtkglext'
+           Required              integrates library               
+                                 OpenGL     is                    
+                                 into GTK.  required              
+                                            in order              
+                                            to use                
+                                            the GTK               
+                                            GUI                   
+                                            library               
+                                            in                    
+                                            conjunction           
+                                            with the              
+                                            OpenGL                
+                                            renderer.             
+SDL        Possibly               The       Gnash      
`libsdl1.2-dev'`SDL-devel'`SDL-1.2'
+           Required              Simple     requires              
+                                 DirectMediathe                   
+                                 Layer is   installation           
+                                 a          of at                 
+                                 cross-platformleast one             
+                                 multimedia GUI                   
+                                 library    library.              
+                                 which      SDL may               
+                                 provides   also be               
+                                 abstractionused as a             
+                                 for        sound                 
+                                 audio,     handler               
+                                 graphics,  regardless            
+                                 sound and  of                    
+                                 input      whether               
+                                 APIs.      it is                 
+                                 SDL is     employed              
+                                 available  as a GUI              
+                                 from       library.              
+                                 http://www.libsdl.orgThe GUI               
+                                 (http://www.libsdl.org).library               
+                                            is                    
+                                            _poorly               
+                                            supported_            
+                                            in Gnash,             
+                                            but the               
+                                            sound                 
+                                            handler               
+                                            is the                
+                                            _best                 
+                                            supported_            
+                                            in Gnash.             
+FLTK       Possibly   2.0 or      The Fast  Gnash      No         No
+           Required   higher     Light      requires   distributiondistribution
+                                 ToolKit    the        packages   packages
+                                 is a       installationare        are
+                                 portable   of at      available. available.No
+                                 GUI        least one             distribution
+                                 library    GUI                   packages
+                                 which is   library.              are
+                                 intended   FLTK may              available.
+                                 as a       be used               
+                                 replacementin                    
+                                 for the    conjunction           
+                                 SDL GUI.   with the              
+                                            Cairo and             
+                                            AGG                   
+                                            renderers.            
+KDE        Possibly               Kdelibs   Gnash      
`kdelibs3-dev,`kdelibs-devel,
+           Required              is a       requires   
kdebase-dev'kdebase-devel'`kdelibs,
+                                 collection the                   kdebase'
+                                 of         installation           
+                                 libraries  of at                 
+                                 needed to  least one             
+                                 compile    GUI                   
+                                 KDE        library.              
+                                 applications.Kdelibs               
+                                            is also               
+                                            required              
+                                            for the               
+                                            Kpart                 
+                                            plugin                
+                                            for                   
+                                            Konqueror.            
+Gstreamer  Optional               Gstreamer If you     
`libgstreamer0.8-dev'`gstreamer-devel'`gstreamer-0.10'
+                                 is a       would                 
+                                 video      like                  
+                                 handler.   video                 
+                                            playback,             
+                                            you must              
+                                            install               
+                                            one of                
+                                            the video             
+                                            handlers.             
+gst-ffmpeg Possibly               gst-ffmpegThis       
`gstreamer0.8-ffmpeg-dev'`gstreamer-ffmpeg-devel'`gstreamer-ffmpeg'
+           Required              allows     package               
+                                 you to     is                    
+                                 use the    required              
+                                 FFMPEG     if you                
+                                 decoder    would                 
+                                 with       like to               
+                                 Gstreamer. use                   
+                                            Gstreamer             
+                                            as a                  
+                                            video                 
+                                            handler.              
+FFMPEG     Possibly               FFMPEG    If you     
`ffmpeg-dev'`ffmpeg-devel'`ffmpeg'
+           Required              is a       would                 
+                                 video      like                  
+                                 handler.   video                 
+                                            playback,             
+                                            you must              
+                                            install               
+                                            one of                
+                                            the video             
+                                            handlers.             
+                                            When                  
+                                            using the             
+                                            gstreamer-ffmpeg           
+                                            plugin,               
+                                            ffmpeg                
+                                            doesn't               
+                                            need to be            
+                                            installed,            
+                                            as it's               
+                                            part of               
+                                            the                   
+                                            plugin.               
+                                            For                   
+                                            systems               
+                                            without               
+                                            Gstreamer             
+                                            support,              
+                                            ffmpeg                
+                                            can be                
+                                            used                  
+                                            directly.             
+JPEG       Optional              JPEG       This       
`libjpeg62-dev'`libjpeg'`jpeg'
+                                 (http://www.ijg.org/)library               
+                                 is a       is used               
+                                 lossy      for                   
+                                 image      rendering             
+                                 format     JPEGs.                
+                                 which is                         
+                                 heavily                          
+                                 used for                         
+                                 images.                          
+PNG        Optional              PNG        This       
`libpng12-dev'`libpng'`png'
+                                 (http://www.libpng.org/pub/png/)library       
        
+                                 is a       is used               
+                                 patent-freefor                   
+                                 image      rendering             
+                                 format     PNGs.                 
+                                 which is                         
+                                 comparable                       
+                                 to _GIF_.                        
+libcurl    Optional               libcurl   This       
`libcurl4-gnutls'`libcurl'`curl'
+                                 is the     library               
+                                 multiprotocalis used               
+                                 file       for URL               
+                                 transfer   downloading.           
+                                 library.                         
+Glib2      Optional               Glib2 is  This       
`glib2-dev'`glib2-devel'`glib2'
+                                 a          library               
+                                 dependency is used               
+                                 of Gtk,    for                   
+                                 and is a   convenience.           
+                                 collection                       
+                                 of                               
+                                 commonly                         
+                                 used                             
+                                 functions.                       
+Atk        Optional               Atk is a  This       `atk-dev'  
`atk-devel'`atk'
+                                 dependency library               
+                                 of Gtk,    is used               
+                                 and is     for                   
+                                 used for   accessiblity..           
+                                 accessibility                      
+                                 support.                         
+Pango      Optional               Pango is  This       
`pango-dev'`pango-devel'`pango'
+                                 a          library               
+                                 dependency is used               
+                                 of Gtk,    for font              
+                                 and is     handling.             
+                                 used for                         
+                                 font                             
+                                 handling.                        
+automake   Possibly   1.6.0       Automake  This       `automake' 
`automake'`automake'
+           Required              is a tool  package               
+                                 for        is                    
+                                 generating required              
+                                 _Makefile.in_to run                
+                                 files.     _autogen.sh_,           
+                                            which is              
+                                            a                     
+                                            requirement           
+                                            if you                
+                                            are using             
+                                            the                   
+                                            development           
+                                            source                
+                                            from CVS.             
+autoconf   Possibly   2.59        Autoconf  This       `autoconf' 
`autoconf'`autoconf'
+           Required              is a       package               
+                                 package    is                    
+                                 for        required              
+                                 generating to run                
+                                 configure  _autogen.sh_,           
+                                 scripts.   which is              
+                                            a                     
+                                            requirement           
+                                            if you                
+                                            are using             
+                                            the                   
+                                            development           
+                                            source                
+                                            from CVS.             
+gettext    Possibly   0.14.6      Gettext   This       `gettext'  
`gettext'`gettext'
+           Required              is part    package               
+                                 of the     is                    
+                                 GNU        required              
+                                 Translationto run                
+                                 Project.   _autogen.sh_,           
+                                            which is              
+                                            a                     
+                                            requirement           
+                                            if you                
+                                            are using             
+                                            the                   
+                                            development           
+                                            source                
+                                            from CVS.             
+libtool    Possibly   1.5.22      This is   This       
`libltdl3-dev'`libtool'`libtool'
+           Required              a generic  package               
+                                 library    is                    
+                                 support    required              
+                                 script.    to run                
+                                            _autogen.sh_,           
+                                            which is              
+                                            a                     
+                                            requirement           
+                                            if you                
+                                            are using             
+                                            the                   
+                                            development           
+                                            source                
+                                            from CVS.             
+
+
+File: gnash_ref.info,  Node: Testing Dependencies,  Next: Documentation 
Dependencies,  Prev: Code Dependencies,  Up: Building from Source
+
+2.4 Testing Dependencies
+========================
+
+Gnash tries to run as many tests as possible, but will simply skip
+tests if the tools to run them are unavailable.
+
+*Testing Dependency Table*
+
+Name       Level      Version    DescriptionExplanationapt-get    RPM/Yum
+                                                       package    packageBSD
+                                                                  package
+Ming       Optional   0.4.0_beta4 Ming is   Ming is    No         No
+                      or higher  an         the        distributiondistribution
+                                 ActionScriptprimary    packages   packages
+                                 compiler.  compiler   are        are
+                                            for        available. available.No
+                                            ActionScript           distribution
+                                            testcases.            packages
+                                                                  are
+                                                                  available.
+Mtasc      Optional   1.12 or     Mtasc is  Mtasc is   `mtasc'    No
+                      higher     an         used in               distribution
+                                 ActionScriptsome                  packages
+                                 compiler.  tests.                are
+                                                                  available.No
+                                                                  distribution
+                                                                  packages
+                                                                  are
+                                                                  available.
+swfc       Optional   part of     Swfc a    Swfc is    No         No
+                      swftools   swf        used in    distributiondistribution
+                      0.8.1      decompiler.some       packages   packages
+                                            testcases. are        are
+                                                       available. available.No
+                                                                  distribution
+                                                                  packages
+                                                                  are
+                                                                  available.
+swfmill    Optional   0.2.12      Swfmill   Swfmill    No         No
+                                 is an      is used    distributiondistribution
+                                 XML-based  in some    packages   packages
+                                 SWF        testcases. are        are
+                                 (Shockwave            available. available.No
+                                 Flash)                           distribution
+                                 processing                       packages
+                                 tool.                            are
+                                                                  available.
+Python     Optional   2.4 or      Python    Python is  `python'   
`python'`python'
+                      higher     is a       used by               
+                                 scripting  part of               
+                                 language.  the                   
+                                            testing               
+                                            framework.            
+DejaGnu    Optional   1.4 or      DejaGnu   DejaGnu    `dejagnu'  
`dejagnu'`dejagnu'
+                      higher     is a       is used               
+                                 testing    to run                
+                                 framework. multiple              
+                                            tests in              
+                                            an                    
+                                            automated             
+                                            fashion.              
+
+
+File: gnash_ref.info,  Node: Documentation Dependencies,  Next: Configuring 
Gnash,  Prev: Testing Dependencies,  Up: Building from Source
+
+2.5 Documentation Dependencies
+==============================
+
+The following packages are used to build Gnash's documentation.
+
+*Documentation Dependency Table*
+
+Name       Level      Version    DescriptionExplanationapt-get    RPM/Yum
+                                                       package    packageBSD
+                                                                  package
+Docbook    Required              Docbook    Gnash      
`docbook-utils'`docbook-dtd41-sgml'
+                                 
(http://http://docbook.sourceforge.net/)documentationand        and
+                                 is is an   is         
`docbook-dsssl'`docbook-style-dsssl'docbook
+                                 industry-standardwritten               
+                                 XML        in                    
+                                 format     Docbook.              
+                                 for                              
+                                 technical                        
+                                 documentation.                      
+                                 You can                          
+                                 download                         
+                                 it from                          
+                                 
http://sourceforge.net/project/showfiles.php?group_id=21935#files               
       
+                                 
(http://sourceforge.net/project/showfiles.php?group_id=21935#files).            
          
+DocBook2X  Optional               This      DocBook2X  
`docbook2x'`docbook2x'`docbook2x'
+                                 software   is                    
+                                 package    required              
+                                 converts   to                    
+                                 Docbook    produce               
+                                 documents  HTML and              
+                                 to the     Texinfo               
+                                 traditionalformats.              
+                                 man page                         
+                                 format,                          
+                                 GNU                              
+                                 Texinfo                          
+                                 format,                          
+                                 and HTML                         
+                                 (via                             
+                                 Texinfo)                         
+                                 format.                          
+                                 It is                            
+                                 available                        
+                                 at                               
+                                 http://docbook2x.sourceforge.net/             
         
+                                 (http://docbook2x.sourceforge.net/).          
            
+DocBook-utilsOptional               This      
DocBook-utils`docbook-utils'`docbook-utils'`docbook-utils'
+                                 software   is                    
+                                 package    required              
+                                 converts   to                    
+                                 Docbook    produce               
+                                 documents  HTML and              
+                                 to the     Texinfo               
+                                 traditionalformats.              
+                                 man page                         
+                                 format,                          
+                                 GNU                              
+                                 Texinfo                          
+                                 format,                          
+                                 and HTML                         
+                                 (via                             
+                                 Texinfo)                         
+                                 format.                          
+Texinfo    Possibly               Texinfo   Texinfo    `texinfo'  
`texinfo'`texinfo'
+           Required              can be     is                    
+                                 used to    required              
+                                 convert    if you                
+                                 DocBook2X  wish to               
+                                 output     product               
+                                 into GNU   GNU info              
+                                 info       pages.                
+                                 pages.                           
+                                 You can                          
+                                 download                         
+                                 it from                          
+                                 http://ftp.gnu.org/gnu/texinfo/               
       
+                                 (http://ftp.gnu.org/gnu/texinfo/).            
          
+FOP        Optional   0.20.5      FormattingFOP is     `fop'      `fop'`fop'
+                                 Objects    required              
+                                 Processor  for PDF               
+                                 is a       output.               
+                                 print                            
+                                 formatter                        
+                                 driven by                        
+                                 XSL                              
+                                 formatting                       
+                                 objects.                         
+                                 It is a                          
+                                 Java                             
+                                 application                      
+                                 which can                        
+                                 output                           
+                                 PDF, PCL,                        
+                                 PS, SVG,                         
+                                 XML,                             
+                                 Print,                           
+                                 AWT, MIF,                        
+                                 and Text.                        
+                                 It is                            
+                                 available                        
+                                 at                               
+                                 http://xmlgraphics.apache.org/fop/            
          
+                                 (http://xmlgraphics.apache.org/fop/).         
             
+Java       Possibly               FOP       Sun's      Download   Download
+(j2re)     Required              requires   Java       the        the
+                                 Sun's      runtime    package    package
+                                 Java       (j2re) is  from Sun   from Sun
+                                 runtime    required   
(http://java.sun.com).(http://java.sun.com).
+                                 (GCJ does  to use                
+                                 not work   FOP.                  
+                                 with                             
+                                 FOP).                            
+                                 You can                          
+                                 download                         
+                                 it from                          
+                                 http://java.sun.com                      
+                                 (http://java.sun.com).                      
+JAI        Possibly               Sun's     JAI is     Download   Download
+           Required              Java       required   the        the
+                                 Advanced   if you     package    package
+                                 Imaging    wish to    from Sun   from Sun
+                                 API can    include    
(http://java.sun.com/products/java-media/jai/iio.html).(http://java.sun.com/products/java-media/jai/iio.html).
+                                 be         graphics              
+                                 downloaded in a PDF              
+                                 from       file being            
+                                 
http://java.sun.com/products/java-media/jai/iio.htmlgenerated             
+                                 
(http://java.sun.com/products/java-media/jai/iio.html).with FOP.             
+
+   If you install j2re, set the _JAVA_HOME_ environment variable to the
+top directory of the j2re installation.  If you encounter problems with
+the Java installation, you may also need to add this path to the
+_CLASSPATH_ environment variable.
+
+
+File: gnash_ref.info,  Node: Configuring Gnash,  Prev: Documentation 
Dependencies,  Up: Building from Source
+
+2.6 Configuring Gnash
+=====================
+
+Gnash, like most GNU projects, allows a user to select various options
+before compiling its source code. These options include selecting from
+the available features, specifying custom paths for installation, and
+cross compiling support uses GNU Autoconf
+(http://www.gnu.org/software/autoconf/) for configuration.
+
+   If you opted to download the [Cross reference to non-existant ID
+"sourcerepo"] of Gnash, the _configure_ script will not be included.
+It can be created by running _autogen.sh_ from the source root
+directory:
+
+
+           ./autogen.sh
+
+Note that there are some dependencies (*note Code Dependencies::) for
+autogen.
+
+   All the standard `configure' options are available.  In addition,
+Gnash has two types of options: those that [Cross reference to
+non-existant ID "features"], and those that specify custom paths for
+development packages (*note Specifying Custom Paths::) which are not
+found during the default search.  A complete list of _all_
+configuration options, including standard ones, can be seen by typing:
+
+
+           ./configure --help |less
+
+Read further for a more detailed explanation of Gnash-specific options.
+
+   The syntax for running _configure_ is as follows:
+
+
+           configure <options>
+
+The example below shows the `configure' options which create the
+smallest working standalone version of Gnash.  In this example,
+`configure' is being run from the source root directory:
+
+
+         ./configure --disable-debugger --disable-cygnal \
+         --disable-plugin --enable-media=ffmpeg --enable-gui=sdl
+
+   By default, you shouldn't need to supply any options to configure.
+The configure script will attempt to determine what to build based on
+the development libraries you have installed. The default configuration
+for Gnash is both GTK and KDE GUIs, the AGG renderer, and Gstreamer for
+mltimedia support, with no extensions built.
+
+   Being higher portable, Gnash has many configuration options
+available, and not all are supposed to work together. A common mistake
+when configuring Gnash is to supply too many options, overdriving
+Gnash's ability to do the right thing.
+
+* Menu:
+
+* Features::
+* Specifying Custom Paths::
+
+
+File: gnash_ref.info,  Node: Features,  Next: Specifying Custom Paths,  Up: 
Configuring Gnash
+
+2.6.1 Features
+--------------
+
+Some switches can be used during configuration to enable or disable
+features of Gnash. Some of the most important configuration options are:
+
+   * `--enable-gui' lets you specify your GUI of choice.  The default
+     option is GTK.
+
+   * `--enable-renderer' allows a renderer to be chosen.  The default
+     renderer is AGG.
+
+   * `--enable-media' permits a media handler to be selected.  The
+     default is Gstreamer.
+
+   A complete list of available features follows.
+
+*Configuration Options - Features*
+
+Option                               Function
+`--enable-debugger'                  Enable support for the Flash
+                                     debugger. The debugger is mainly of
+                                     interest to Flash developers, and
+                                     is still under development.
+`--enable-lirc'                       Enable support for the LIRC remote
+                                     control protocol.
+`--enable-cygnal'                     Build the Cygnal streaming media
+                                     server.
+`--disable-menus'                     Disable building all the menus for
+                                     the GUI. THis is used by mobile
+                                     devices without as much screen
+                                     space.
+`--enable-docbook'                   Enable the generation of HTML,
+                                     INFO, and MAN versions of the
+                                     documentation from the Docbook XML.
+                                     You will then be able to use `make
+                                     html', `make info', and `make man'
+                                     commands. By default, man,info and
+                                     html pages are generated.
+`--enable-gui=gtk|sdl|kde|fltk|fb|hildon|alp'Select the Graphic User Interface
+                                     to use (choose one).?
+                                     [undisplayable block object]
+`--enable-i810-lod-bias'             Enable fix for Intel 810 LOD bias
+                                     problem. Older versions of libMesa
+                                     on the Intel i810 or i815 graphics
+                                     processor need this flag or Gnash
+                                     will core dump. This has been fixed
+                                     in newer versions (summer 2005) of
+                                     libMesa.
+`--enable-media=ffmpeg|gst|none'      Select the specified media decoder
+                                     and sound engine.  FFMPEG uses the
+                                     SDL sound engine; GST uses its own.
+                                     `GST' is the default decoder.  ?
+                                     [undisplayable block object] You
+                                     should only select one media
+                                     decoder.
+`--disable-nsapi'`--enable-nsapi'    Force disable/enable building the
+                                     NPAPI plugin.  By default the
+                                     Mozilla plugin is built if the GTK
+                                     gui is selected.  Specify the
+                                     `--with-npapi-plugindir=' option to
+                                     specify where the plugin should be
+                                     installed.
+`--disable-kparts'`--enable-kparts'  Force disable/enable building the
+                                     KPARTS plugin. By default the KDE
+                                     plugin is built if the kde gui is
+                                     selected.  Specify the
+                                     `--with-kde-plugindir=' and
+                                     `--with-kde-servicesdir=' options
+                                     (or more generally the
+                                     `--with-kde-pluginprefix=' one) to
+                                     specify where the plugin should be
+                                     installed. The default installation
+                                     dir is extracted from kde-config.
+`--disable-plugins'                  Disable build of both kparts and
+                                     npapi plugins
+`--enable-renderer=opengl|cairo|agg' Enable support for the a graphics
+                                     backend. Currently only `opengl' and
+                                     `agg' work sufficiently. OpenGL is
+                                     used when you have hardware
+                                     accelerated graphics. AGG i used
+                                     when you do not have hardware
+                                     accelerated graphics. Typically
+                                     most desktop machines have OpenGL
+                                     support, and most embedded systems
+                                     do not. OpenGl is the default when
+                                     building Gnash, although the
+                                     quality of AGG's rendering is
+                                     currently superior to OpenGL.
+`--enable-sdk-install'               Enable installing the libraries and
+                                     headers as an SDK.
+`--disable-shared'                   Enable installing the shared
+                                     libraries and headers.  Note that
+                                     the extensions mechanism may not
+                                     work if shared libraries are
+                                     disabled.
+`--enable-strict'                    Turn verbose GCC compiler warnings.
+                                     By default only `-Wall' is used
+                                     with GCC.
+`--enable-fps-debug'                 Enable FPS debugging code. When
+                                     this feature is compiled in you can
+                                     use the -f switch of Gnash to have
+                                     FPS printed at regular intervals.
+`--enable-write'                     Makes the Mozilla plugin write the
+                                     currently playing SWF movie to
+                                     `/tmp'.
+`--disable-mit-shm'                  Disable support for the MIT-SHM X
+                                     extensions.  Currently support is
+                                     only available using GTK gui and
+                                     AGG renderer.  Keeping it enabled
+                                     is not a problem as it will not be
+                                     used if not available in the
+                                     current X session.
+
+
+File: gnash_ref.info,  Node: Specifying Custom Paths,  Prev: Features,  Up: 
Configuring Gnash
+
+2.6.2 Specifying Custom Paths
+-----------------------------
+
+By default, none of these options should be required unless you want
+Gnash to use a specific version of a development package, or if the
+configure test fails to find a component.  Please [Cross reference to
+non-existant ID "bugreport"] if a configure test fails.
+
+   The following custom path options are available:
+
+*Custom Path Options*
+
+Option                               Function
+`--x-includes=DIR'                    X include files are in DIR.
+`--x-libraries=DIR'                   X library files are in DIR.
+`--with-libxml=PFX'                   Prefix to where libxml is
+                                     installed.
+`--with-libxml-libraries=DIR'         Directory where libxml library is
+                                     installed.
+`--with-libxml-includes=DIR'          Directory where libxml header
+                                     files are installed.
+`--with-docbook=DIR'                  Directory where the DocBook
+                                     style-sheets are installed.
+`--with-sdl-prefix=PFX'               Prefix where SDL is installed.
+`--with-zlib-incl'                    Directory where zlib header is
+                                     installed.
+`--with-zlib-lib'                     Directory where zlib library is
+                                     installed.
+`--with-jpeg-incl'                    Directory where jpeg header is
+                                     installed.
+`--with-jpeg-lib'                     Directory where jpeg library is
+                                     installed.
+`--with-png-incl'                     Directory where png header is
+                                     installed.
+`--with-png-lib'                      Directory where png library is
+                                     installed.
+`--with-qt-dir'                       Directory where QT is installed.
+                                     This is only used by the Klash
+                                     plugin.
+`--with-qt-includes'                  Directory where the QT header
+                                     files are installed. This is only
+                                     used by the Klash plugin.
+`--with-qt-libraries'                 Directory where the QT libraries
+                                     are installed. This is only used by
+                                     the Klash plugin.
+`--with-npapi-plugindir'              This is the directory to install
+                                     the NPAPI (Mozilla) plugin in.  By
+                                     default it goes to
+                                     ~/.mozilla/plugins.
+`--with-kde-pluginprefix'             This option sets the default
+                                     install dir for all KPARTS (kde)
+                                     files.  The plugin will be
+                                     installed in PREFIX/lib/kde3, use
+                                     `-with-kde-plugindir' to override.
+                                     The service file in
+                                     PREFIX/share/services, use
+                                     `--with-kde-servicesdir' to
+                                     override. The config file in
+                                     PREFIX/share/config, use
+                                     `--with-kde-configdir' to override.
+                                     The appdata file in
+                                     PREFIX/share/apps/klash, use
+                                     `--with-kde-appsdatadir' to
+                                     override.
+`--with-kde-plugindir'                This is the directory to install
+                                     the KPARTS (kde) plugin in.  By
+                                     default it is what's set by
+                                     -with-kde-pluginprefix or what's
+                                     returned by kde-config -install
+                                     module -expandvars, or
+                                     $(prefix)/share/services if
+                                     kde-config is not found.
+`--with-kde-servicesdir'              This is the directory to install
+                                     the KPARTS (kde) service in.  By
+                                     default it is what's set by
+                                     -with-kde-pluginprefix or what's
+                                     returned by kde-config -install
+                                     services -expandvars, or
+                                     $(libdir)/kde3 if kde-config is not
+                                     found.
+`--with-kde-configdir'                This is the directory to install
+                                     the KPARTS (kde) config files in.
+                                     By default it is what's set by
+                                     -with-kde-pluginprefix or what's
+                                     returned by kde-config -install
+                                     config -expandvars, or
+                                     $(prefix)/share/config if
+                                     kde-config is not found.
+`--with-kde-appsdatadir'              This is the directory to install
+                                     the KPARTS (kde) application data
+                                     files in.  By default it is what's
+                                     set by -with-kde-pluginprefix or
+                                     what's returned by kde-config
+                                     -install data -expandvars, or
+                                     $(prefix)/share/apps if kde-config
+                                     is not found.
+`--with-ming'                         Ming is used to build test cases,
+                                     but not by the Gnash player itself.
+`--with-ogg_incl'                     Directory where the libogg headers
+                                     are installed.
+`--with-ogg_lib'                      Directory where the libogg library
+                                     is installed.
+`--with-gstreamer-incl'               Directory where the Gstreamer
+                                     headers are installed. Gstreamer
+                                     version 0.10 or greater must be
+                                     used.
+`--with-gstreamer-lib'                Directory where the Gstreamer
+                                     library is installed. Gstreamer
+                                     version 0.10 or greater must be
+                                     used.
+`--with-opengl-includes'              Directory where OpenGL (libMesa)
+                                     headers are installed.
+`--with-opengl-lib'                   Directory where the OpenGL
+                                     (libMesa) library is installed.
+`--with-glext-incl'                   Directory where GtkGlExt headers
+                                     are installed.
+`--with-glext-lib'                    Directory where the GtkGlExt
+                                     library is installed.
+`--with-gtk2-incl'                    Directory where the Gtk2 headers
+                                     are installed.
+`--with-gtk2-lib'                     Directory where the Gtk2 library
+                                     is installed.
+`--with-cairo_incl'                   Directory where the Cairo headers
+                                     are installed.
+`--with-cairo-lib'                    Directory where the Cairo library
+                                     is installed.
+`--with-glib-incl'                    Directory where the Glib headers
+                                     are installed.
+`--with-glib-lib'                     Directory where the Glib library
+                                     is installed.
+`--with-pango-incl'                   Directory where the Pango headers
+                                     are installed.
+`--with-pango-lib'                    Directory where the Pango library
+                                     is installed.
+`--with-atk-incl'                     Directory where the ATK headers
+                                     are installed.
+`--with-atk-lib'                      Directory where the ATK library is
+                                     installed.
+`--with-pthread-incl'                 Directory where the Pthread
+                                     headers are installed.
+`--with-pthread-lib'                  Directory where the Pthread
+                                     library is installed.
+`--with-agg-incl'                     Directory where the AGG
+                                     (Antigrain) headers are installed.
+`--with-agg-lib'                      Directory where the AGG
+                                     (Antigrain) library is installed.
+`--with-ffmpeg-incl'                  Directory where the FFMPEG headers
+                                     are installed.
+`--with-ffmpeg-lib'                   Directory where the FFMPEG library
+                                     is installed.
+`--with-boost-incl'                   Directory where the Boost headers
+                                     are installed.
+`--with-boost-lib'                    Directory where the Boost library
+                                     is installed.
+`--with-curl-incl'                    Directory where the libCurl
+                                     headers are installed.
+`--with-curl-lib'                     Directory where the libCurl
+                                     library is installed.
+
+   Once you have [Cross reference to non-existant ID
+"pre-configuration"] Gnash, you are ready to build the code.  Gnash is
+built using _GNU make_.
+
+* Menu:
+
+* Overview::
+* Getting The Source::
+* Code Dependencies::
+* Testing Dependencies::
+* Documentation Dependencies::
+* Configuring Gnash::
+* Compiling the Code::
+* Creating the Documentation::
+* Running the Tests::
+
+
+File: gnash_ref.info,  Node: Compiling the Code,  Next: Creating the 
Documentation,  Up: Building from Source
+
+2.7 Compiling the Code
+======================
+
+The most basic way to compile code is simply:
+
+
+       make
+
+If the compilation ends with an error, check the output of _configure_
+and ensure that you are not missing any required prerequisites.  The
+output of `make' can be verbose; you may wish to pipe the output to a
+file.
+
+   The variables used by _make_ can be redefined when the program is
+invoked, if you desire it.   The most interesting flags are _CFLAGS_
+and _CXXFLAGS_, which are often used to enable debugging or turn of
+optimization.  The default value for both of these variables is _-O2
+-g_.  A list of influential environment variables can be seen in the
+configuration help:
+
+     ./configure --help
+
+   In the following example, debugging is enabled and optimization is
+disabled:
+
+     make CFLAGS=-g CXXFLAGS=-g
+
+
+File: gnash_ref.info,  Node: Creating the Documentation,  Next: Running the 
Tests,  Prev: Compiling the Code,  Up: Building from Source
+
+2.8 Creating the Documentation
+==============================
+
+By default, documentation is not built when you install (*note
+Installation::) Gnash.  This is because there are a number of [Cross
+reference to non-existant ID "docdepend"].  Documentation is built when
+it is specified with a specific target in the generated `Makefile' in
+the `doc/C' sub-directory.  If you type `make install' in this
+directory, all documents will be built.
+
+   You must specify a target output format when you wish to create
+documentation.  The available output formats are: `html', `pdf', `info',
+`man', and `alldocs'.  It is also possible to output `GNOME help' if
+the [Cross reference to non-existant ID "features"] `--enable-ghelp'
+was used.  The `alldocs' target will build all output formats except
+_GNOME help_.  For example, to create HTML output, type:
+
+
+       make html
+
+   Gnash also uses Doxygen
+(http://www.stack.nl/~dimitri/doxygen/index.html) to produce _HTML_
+documentation of Gnash internals.  You must have Doxygen installed to
+produce this documentation, which is built from the `doc' directory
+with the command (documents will be placed in the subdirectory
+`apidoc/html'):
+
+
+       make apidoc
+
+
+File: gnash_ref.info,  Node: Running the Tests,  Prev: Creating the 
Documentation,  Up: Building from Source
+
+2.9 Running the Tests
+=====================
+
+Before beginning the potentially lengthy install, it is wise to test
+the installation.  If a test fails, please report it by following the
+[Cross reference to non-existant ID "bugreport"].
+
+* Menu:
+
+* Using DejaGnu::
+* Running The Tests Manually::
+* Installation::
+* Cross Configuring::
+
+
+File: gnash_ref.info,  Node: Using DejaGnu,  Next: Running The Tests Manually, 
 Up: Running the Tests
+
+2.9.1 Using DejaGnu
+-------------------
+
+The easiest way to run Gnash's test suite is to install _DejaGnu
+(http://www.gnu.org/software/dejagnu)_.  After installing DejaGnu, run:
+
+
+         make check
+
+* Menu:
+
+* Increasing Verbosity::
+* Running Some Tests::
+
+
+File: gnash_ref.info,  Node: Increasing Verbosity,  Next: Running Some Tests,  
Up: Using DejaGnu
+
+2.9.1.1 Increasing Verbosity
+............................
+
+If you encounter a problem with a test, increasing the verbosity may
+make the issue easier to spot.  Additional details are visible when
+_RUNTESTFLAGS_ are used to add the _verbose_ and _all_ options.  The
+`verbose' option prints more information about the testing process,
+while the `all' option includes details on passing tests.
+
+
+           make check RUNTESTFLAGS="-v -a"
+
+
+File: gnash_ref.info,  Node: Running Some Tests,  Prev: Increasing Verbosity,  
Up: Using DejaGnu
+
+2.9.1.2 Running Some Tests
+..........................
+
+It is possible to run just a single test, or a subdirectory of tests,
+by specifying the directory or compiled test file.
+
+   Some tests rely on _testsuite/Dejagnu.swf_, which in turn relies on
+_Ming_.  This file is created when you run `make check' for the entire
+testsuite, and can also be created on demand:
+
+
+           make -C testsuite Dejagnu.swf
+
+   In this example, the `clip_as_button2' test is compiled and run:
+
+
+           make -C testsuite/samples clip_as_button2-TestRunner
+           cd testsuite/samples && ./clip_as_button2-TestRunner
+
+This creates and runs all the tests in the directory `movies.all':
+
+
+           make -C testsuite/movies.all check
+
+
+File: gnash_ref.info,  Node: Running The Tests Manually,  Next: Installation,  
Prev: Using DejaGnu,  Up: Running the Tests
+
+2.9.2 Running The Tests Manually
+--------------------------------
+
+You may also run test cases by hand, which can be useful if you want to
+see all the debugging output from the test case.  Often the messages
+which come from deep within Gnash are most useful for development.
+
+   The first step is to compile the test case, which can be done with
+`make XML-v#.swf' where the '#' is replaced with the _target_ SWF
+version or versions.  For example:
+
+
+         make XML-v{5,6,7,8}.swf
+
+* Menu:
+
+* Movie tests::
+* ActionScript Unit Tests::
+
+
+File: gnash_ref.info,  Node: Movie tests,  Next: ActionScript Unit Tests,  Up: 
Running The Tests Manually
+
+2.9.2.1 Movie tests
+...................
+
+This creates a Flash movie version of the test case, which can be run
+with a standalone Flash player.  For instance, the target for SWF
+version 6 could be run with Gnash:
+
+
+           gnash -v XML-v6.swf
+
+
+File: gnash_ref.info,  Node: ActionScript Unit Tests,  Prev: Movie tests,  Up: 
Running The Tests Manually
+
+2.9.2.2 ActionScript Unit Tests
+...............................
+
+Unit tests for ActionScript classes in `testsuite/actionscript.all' are
+run without a graphical display:
+
+
+           gprocessor -v XML-v6.swf
+
+
+File: gnash_ref.info,  Node: Installation,  Next: Cross Configuring,  Prev: 
Running The Tests Manually,  Up: Running the Tests
+
+2.9.3 Installation
+------------------
+
+Now that Gnash has been compiled and tested, use the following command
+to install it:
+
+
+           make install
+
+The above command installs the standalone player.  If the correct files
+were found by `configure' and if the `--disable-plugin' option was not
+specified, the Gnash browser plugin is also installed.
+
+   Gnash installs a number of libraries (*note Libraries::), namely:
+_libbase_, _libgeometry_, _libbackend_, _libserver_, and _libmozsdk_.
+Executables (*note Executables::) consist of the (optional) plugin,
+`gprocessor', `cygnal',  and `gnash'.  Documentation (*note
+Documentation::) may also be installed.  The installation location is
+controlled with the _-prefix_ configure option (*note Specifying Custom
+Paths::), except for plugins, which are explicitly set with
+_-plugin-dir_.
+
+   Note that if you are using a single file-system _NFS_ mounted to
+multiple platforms, the configuration option (*note Specifying Custom
+Paths::) _-exec-prefix_ may be used to specify where platform-dependent
+executables and libraries are installed.
+
+* Menu:
+
+* Libraries::
+* Executables::
+* Documentation::
+
+
+File: gnash_ref.info,  Node: Libraries,  Next: Executables,  Up: Installation
+
+2.9.3.1 Libraries
+.................
+
+Installed libraries are located in `/usr/local/lib' by default.  If the
+_-prefix_ option was used in [Cross reference to non-existant ID
+"pre-configuration"], the libraries will be installed in the directory
+`lib' inside the path you specified.  If the libraries are stored in a
+non-standard location, you must identify the path in one of two ways.
+
+   The traditional way to do this on UNIX platforms is to set the
+_LD_LIBRARY_PATH_ variable to the path plus `/lib'.  For example, if you
+installed in `/home/gnash', the _LD_LIBRARY_PATH_ path would be
+`/home/gnash/lib'.  Multiple paths are delimited with a colon (':').
+
+   GNU/Linux allows the custom path to be added to `/etc/ld.so.conf'.
+After adding the path, run _ldconfig_ as root to update the runtime
+cache.
+
+
+File: gnash_ref.info,  Node: Executables,  Next: Documentation,  Prev: 
Libraries,  Up: Installation
+
+2.9.3.2 Executables
+...................
+
+The Mozilla plugin is built from headers (the Mozilla SDK) provided
+with Gnash and does not need extra development packages to be
+installed. By default, the plugin is installed to
+`~/.mozilla/plugins/'. To enable the plugin for other users, copy the
+file `libgnashplugin.so' to `.mozilla/plugins/' in their home directory.
+You may also specify the plugin installation directory by using the
+`--with-plugindir' option at configuration time (*note Specifying
+Custom Paths::).
+
+   These defaults are likely to change in future versions of Gnash.
+
+   The remaining executables are installed in the `bin' subdirectory of
+the directory specified by during configuration.  If no path was
+specified, the default is `/usr/local/bin'.
+
+
+File: gnash_ref.info,  Node: Documentation,  Prev: Executables,  Up: 
Installation
+
+2.9.3.3 Documentation
+.....................
+
+Documentation is not built by default; please refer to the section on
+documentation (*note Creating the Documentation::) for more information
+on building documentation.
+
+   `man' and `info' are installed in `/usr/local/share/man' and
+`/usr/local/share/info' respectively, unless the `--mandir' or
+`--infodir' configuration options (*note Specifying Custom Paths::) are
+used.
+
+   _GNOME help_ documentation uses the directory
+`/usr/local/share/gnash/doc/gnash/C/' by default.  A configuration file
+in the Gnash source tree, `doc/C/gnash.omf' is used to specify under
+which menu item Gnash appears in the _GNOME help_ system.
+
+
+File: gnash_ref.info,  Node: Cross Configuring,  Prev: Installation,  Up: 
Running the Tests
+
+2.9.4 Cross Configuring
+-----------------------
+
+To cross configure and compile Gnash, begin by building a target system
+on your workstation.  This includes cross compilers for the target
+architecture, and some system headers.  You will also need to cross
+compile all the [Cross reference to non-existant ID "docdepend"]
+normally needed to build Gnash. This can on occasion be a daunting
+process, as not libraries will cross configure and cross compile. There
+is more information about cross compiling all the dependant packages on
+the http://www.gnashdev.org (http://www.gnashdev.org) web site.
+
+   If you need to build your own tool chain, that is beyond the scope
+of this manual. There are various resources on the web for howto's on
+building GCC based cross toolchains. Two popular sites are
+http://frank.harvard.edu/~coldwell/toolchain/
+(http://frank.harvard.edu/~coldwell/toolchain/) and
+http://www.kegel.com/crosstool/ (http://www.kegel.com/crosstool/). This
+can also be a very time consuming and frustrating process, even for
+experienced developers.
+
+   Because the process of building your own cross tool chain can be
+harder than one may wish, there are several other cross development
+environments that simulate a native environment to make it easier to
+develop. These also let you develop for both native and cross builds.
+Several popular ones are Access Linux Platform
+(http://www.access-company.com/products/linux/alp.html), Scratchbox
+(http://www.scratchbox.org/), Open Embedded
+(http://www.openembedded.org/), Maemo (http://maemo.org/).
+
+   To build for an ARM based system on an x86 based systems, configure
+like this using the traditional style cross toolchain, configure like
+this:
+
+
+         ../../gnash/configure --build=i686-pc-linux-gnu
+         --host=arm-linux --prefix=/usr/local/arm/oe --disable-nsapi
+         --disable-kparts --enable-gui=fb --enable-renderer=agg
+         --disable-shared --disable-menus
+
+   The important configuration options are the ones which specify the
+architecture for the build:
+
+-target
+     The target architecture, where the final executables are expected
+     to run.
+
+-host
+     The host architecture, where the executables are expected to run.
+     Usually this is the same as the _-target_, except when building a
+     compiler as a Canadian Cross.  In this case, you might build a
+     cross compiler on a UNIX system which runs on a win32 machine,
+     producing code for a third architecture, such as ARM.  In this
+     example, _-target_ would be 'arm-unknown-linux-gnu', while _-host_
+     would be 'win32'.
+
+-build
+     This is the system the build is running on.
+
+   The following example of _configure_ builds for an ARM system on an
+x86 system.  It was run after an ARM system was built in `/usr/arm' and
+other required libraries were cross compiled.
+
+
+           ./configure -target=arm-unknown-linux-gnu --prefix=/usr/arm \
+           --host=arm-unknown-linux-gnu --build=i686-pc-linux-gnu 
--disable-plugin
+
+
+File: gnash_ref.info,  Node: Software Internals,  Next: Gnash Extensions,  
Prev: Building from Source,  Up: Top
+
+3 Software Internals
+********************
+
+* Menu:
+
+* A Tour of Gnash::
+* Sound handling in Gnash::
+* Testing : Testing.
+* Adding New ActionScript Class::
+
+
+File: gnash_ref.info,  Node: A Tour of Gnash,  Next: Sound handling in Gnash,  
Up: Software Internals
+
+3.1 A Tour of Gnash
+===================
+
+The top level of Gnash has several libraries, _libgnashbase_,
+_libgnashgeo_, _libgnashserver_, _libgnashasobjs_ and
+_libgnashbackend_. There are several utility programs included for
+debug parsing and processing of Flash movie files, and other useful
+utilitis for examining local Shared Objects and sniffingh
+LocalConnections.
+
+* Menu:
+
+* The Libraries::
+* The Applications::
+* The Plugin::
+* The Debug Logging System::
+
+
+File: gnash_ref.info,  Node: The Libraries,  Next: The Applications,  Up: A 
Tour of Gnash
+
+3.1.1 The Libraries
+-------------------
+
+* Menu:
+
+* libgnashbase::
+* libgnashgeo::
+* libgnashgui::
+* libgnashserver::
+* libgnashasobjs::
+* libgnashamf::
+* libgnashbackend::
+* libgnashplugin::
+* libklashpart::
+
+
+File: gnash_ref.info,  Node: libgnashbase,  Next: libgnashgeo,  Up: The 
Libraries
+
+3.1.1.1 libgnashbase
+....................
+
+Libgnashbase contains support classes used by the rest of the code.This
+library has no dependencies on any of the other Gnash libraries.
+
+   Gnash makes heavy use of smart pointers, so memory allocations are
+freed up automatically by the interpreter. Both STL and Boost smart
+pointers are used.
+
+
+File: gnash_ref.info,  Node: libgnashgeo,  Next: libgnashgui,  Prev: 
libgnashbase,  Up: The Libraries
+
+3.1.1.2 libgnashgeo
+...................
+
+Libgnashgeo contains code for device independent graphics routines.
+
+
+File: gnash_ref.info,  Node: libgnashgui,  Next: libgnashserver,  Prev: 
libgnashgeo,  Up: The Libraries
+
+3.1.1.3 libgnashgui
+...................
+
+Libgnashgui contains code for a portable GUI class that supports using
+GTK2, a framebuffer, SDL, or KDE, FLTK, or Aqua.
+
+
+File: gnash_ref.info,  Node: libgnashserver,  Next: libgnashasobjs,  Prev: 
libgnashgui,  Up: The Libraries
+
+3.1.1.4 libgnashserver
+......................
+
+Libgnashserver is the guts of the interpreter itself. This is where the
+main code for the interpreter lives. Includes in libserver are the two
+support libraries for the parser and the core of the virtual machine.
+
+
+File: gnash_ref.info,  Node: libgnashasobjs,  Next: libgnashamf,  Prev: 
libgnashserver,  Up: The Libraries
+
+3.1.1.5 libgnashasobjs
+......................
+
+Libgnashasobjs contains all the ActionScript classes used by the
+interpreter.
+
+
+File: gnash_ref.info,  Node: libgnashamf,  Next: libgnashbackend,  Prev: 
libgnashasobjs,  Up: The Libraries
+
+3.1.1.6 libgnashamf
+...................
+
+AMF is the data format used internally by SWF files. This is Gnash's
+support library to handle AMF data. This is used by the ActionScript
+classes SharedObject and LocalConnection. This is also used by the
+NetStream class when using thre RTMP streaming network protocol.
+
+
+File: gnash_ref.info,  Node: libgnashbackend,  Next: libgnashplugin,  Prev: 
libgnashamf,  Up: The Libraries
+
+3.1.1.7 libgnashbackend
+.......................
+
+Libgnashbackend is a library containing the rendering code that glues
+this display to the Gnash. Supported rendering backends are OpenGL,
+Cairo, and AGG.
+
+
+File: gnash_ref.info,  Node: libgnashplugin,  Next: libklashpart,  Prev: 
libgnashbackend,  Up: The Libraries
+
+3.1.1.8 libgnashplugin
+......................
+
+Libgnashplugin is the Mozilla/Firefox plugin.
+
+
+File: gnash_ref.info,  Node: libklashpart,  Prev: libgnashplugin,  Up: The 
Libraries
+
+3.1.1.9 libklashpart
+....................
+
+Libklashpart is the Konqueror plugin.
+
+
+File: gnash_ref.info,  Node: The Applications,  Next: The Plugin,  Prev: The 
Libraries,  Up: A Tour of Gnash
+
+3.1.2 The Applications
+----------------------
+
+There are currently a few standalone programs in Gnash, which serve to
+either assist with Gnash development or play flash movies.
+
+* Menu:
+
+* The Standalone Player::
+* Gprocesser::
+* SOLdumper::
+* Dumpshm::
+
+
+File: gnash_ref.info,  Node: The Standalone Player,  Next: Gprocesser,  Up: 
The Applications
+
+3.1.2.1 The Standalone Player
+.............................
+
+This is the standalone OpenGL back-end used to play movies. There are
+several command-line options and keyboard control keys used by Gnash.
+
+
+File: gnash_ref.info,  Node: Gprocesser,  Next: SOLdumper,  Prev: The 
Standalone Player,  Up: The Applications
+
+3.1.2.2 Gprocesser
+..................
+
+Gprocesser is used to print out the actions (using the -va option) or
+the parsing (using the -vp option) of a flash movie. It is also used to
+produce the _.gsc_ files that Gnash uses to cache data, thereby
+speeding up the loading of files.
+
+
+File: gnash_ref.info,  Node: SOLdumper,  Next: Dumpshm,  Prev: Gprocesser,  
Up: The Applications
+
+3.1.2.3 SOLdumper
+.................
+
+SOLDumper is a utility program used to find and dump the content of
+_Local Shared Objects_, also called "Flash Cookies" by some.
+
+
+File: gnash_ref.info,  Node: Dumpshm,  Prev: SOLdumper,  Up: The Applications
+
+3.1.2.4 Dumpshm
+...............
+
+Dumpshm is a program used to find and dump the contents of the
+_LocalConnection_ shared memory segment.
+
+
+File: gnash_ref.info,  Node: The Plugin,  Next: The Debug Logging System,  
Prev: The Applications,  Up: A Tour of Gnash
+
+3.1.3 The Plugin
+----------------
+
+The plugin is designed to work within Mozilla or Firefox, although
+there is Konqueror support as well. The plugin uses the Mozilla NSAPI
+plugin API to be cross platform, and is portable, as well as being well
+integrated into Mozilla based browsers.
+
+* Menu:
+
+* Current Status::
+* GUI Support::
+* Mozplugger::
+* Klash::
+
+
+File: gnash_ref.info,  Node: Current Status,  Next: GUI Support,  Up: The 
Plugin
+
+3.1.3.1 Current Status
+......................
+
+As of March 30, 2006, the plugin works! This works in a fashion similar
+to MozPlugger in that the standalone player is used instead of using a
+thread. This gets around the issue of having to maintain a separate
+player to support the plugin. It also gets around the other issues that
+Gnash itself is not thread safe at this time.
+
+   As of Jan, 2007, streaming video, ala "YouTube" works, along with
+other video sharing sites.
+
+
+File: gnash_ref.info,  Node: GUI Support,  Next: Mozplugger,  Prev: Current 
Status,  Up: The Plugin
+
+3.1.3.2 GUI Support
+...................
+
+Any plugin that wants to display in a browser window needs to be tied
+into the windowing system of the platform being used. On GNU/Linux
+systems, Firefox is a GTK2+ application.  There is also KDE support
+through the use of the Klash plugin.
+
+   Gnash can use either several different GUI toolkits to create the
+window, and to handle events for the standalone player.
+
+   The SDL version is more limited, but runs on all platforms,
+including win32. It has no support for event handling, which means
+mouse clicks, keyboard presses, and window resizing doesn't work. I
+personally find the default event handler slow and unresponsive. Gnash
+has support to use fast events, (currently not enabled) which is an SDL
+hack using a background thread to pump events into the SDL event queue
+at a much higher rate.
+
+   There are a variety of development libraries that build a GUI widget
+system on top of SDL and OpenGL. The use of these to add menus and
+dialog boxes to the SDL version is being considered.
+
+   The GTK support is currently the most functional, and the best
+integrated into Firefox. The performance of this version is better than
+the SDL version because of the more efficient event handling within
+GTK. For the best end user experience, use the GTK enabled version.
+
+   GTK also allows Gnash to have menus and dialog boxes. Currently this
+is only being utilized in a limited fashion for now. There is a right
+mouse button menu that allows the user to control the movie being
+player the same way the existing keyboard commands do.
+
+
+File: gnash_ref.info,  Node: Mozplugger,  Next: Klash,  Prev: GUI Support,  
Up: The Plugin
+
+3.1.3.3 Mozplugger
+..................
+
+Mozplugger (http://mozplugger.mozdev.org/) is a _Mozilla/Firefox_
+plugin that uses external programs to play video, audio, and other
+multimedia content in the browser. With some support added to the
+external application, it's possible to force the external program to
+use the internal window in the browser where this plugin is supposed to
+display. This enables one to then run the standalone player and display
+its output in the browser.
+
+   While this is not an optimal solution, it does enable one to use
+Gnash as the flash player when browsing. The main issue appears to be
+that the Flash movie being played doesn't get any mouse or keyboard
+input. That may be a mozplugger configuration issue, however.
+
+   Use of MozPlugger is obsolete now that the Gnash plugin works.
+Still, this may be useful still on some platforms.
+
+   Add this to your _$(HOME)/.mozilla/mozpluggerrc_ file to enable this:
+
+
+           application/x-shockwave-flash:swf:Shockwave Gnash
+             nokill embed noisy ignore_errors hidden fill swallow(Gnash) loop: 
gnash -v "$file" -x $window
+             : gnash -v "$file" -x $window
+
+   Once this is added, you must delete the
+_$(HOME)/.mozilla/firefox/pluginreg.dat_ file to force Firefox to
+register the plugins again. This is an ASCII text file, so if the patch
+has been added correctly, you'll see an entry for _swf_ files after it
+is recreated. You will need to restart Firefox to recreate this file.
+
+   This file is not recreated immediately when restarting Firefox, but
+waits till the first time a plugin is used. You can force creation of
+this file by typing _about:plugins_ into the URL entry of the browser
+window. The output will also contain information about the mozplugger.
+You should see an entry for Gnash now.
+
+
+File: gnash_ref.info,  Node: Klash,  Prev: Mozplugger,  Up: The Plugin
+
+3.1.3.4 Klash
+.............
+
+Klash is MozPlugger type support for KDE's Konqueror web browser. Klash
+makes Gnash a _kpart_, so it's integrated into KDE better than when
+using MozPlugger. Klash uses the standalone player, utilizing Gnash's
+"-x" window plugin command line option.
+
+   By default, Klash is not built. To enable building Klash, use the
+_-enable-klash_ option when configuring. Other than installing, there
+is nothing else that needs to be done to install Klash.
+
+
+File: gnash_ref.info,  Node: The Debug Logging System,  Prev: The Plugin,  Up: 
A Tour of Gnash
+
+3.1.4 The Debug Logging System
+------------------------------
+
+Gnash supports a debug logging system which supports both C and C++
+natively. This means you can use both _printf()_ style debug messages
+and C++ _iostreams_ style, where you can print C++ objects directly as
+you would when using _cout_.
+
+   In the beginning, Gnash only supported the C API for debug logging,
+so it is the most heavily used in Gnash. This API was used in the
+_log_msg()_ and _log_error()_ functions, and used a callback to set
+them up.
+
+   If a filename is not specified at object construction time, a
+default name of _gnash-dbg.log_ is used. If Gnash is started from the
+command line, the debug log will be created in the current directory.
+When executing Gnash from a launcher under _GNOME_ or _KDE_ the debug
+file goes in your home directory, since that's considered the current
+directory.
+
+   There is common functionality between using the C or C++ API.
+Optional output is based on flags that can be set or unset. Multiple
+levels of verbosity are supported, so you can get more output by
+supplying multiple _-v_ options on the command line. You can also
+disable the creation of the debug log.
+
+   Currently the use of the C++ API for logging is discouraged, do to
+performance issues.and the generic log_msg() has been replaced by more
+spcific function calls to allow more control of what gets displayed and
+logged.
+
+* Menu:
+
+* Logging System C API::
+* Logging System C++ API::
+
+
+File: gnash_ref.info,  Node: Logging System C API,  Next: Logging System C++ 
API,  Up: The Debug Logging System
+
+3.1.4.1 Logging System C API
+............................
+
+These functions are clones of the originals as they were used for
+Gnash. These function the same as always except output can be logged to
+disk now as well. These currently print no timestamp with the output,
+which is the older functionality. As these functions are implemented on
+top of the C++ API now, they can be used without corrupting the output
+buffers.
+
+log_error(const char* fmt, ...)
+     Display an error message if verbose output is enabled. By default
+     the error messages are always written to the disk file, but
+     optionally displayed in the terminal.
+
+void log_unimpl
+     Displays a warning to the user about missing Gnash features.  We
+     expect all calls to this function to disappear over time, as we
+     implement those features of Flash.
+
+void log_trace
+     Used only for explicit user traces
+
+void log_debug
+     Logs debug information.
+
+void log_action
+     Log action execution information. Wrap all calls to this function
+     (and other related statements) into an IF_VERBOSE_ACTION macro, so
+     to allow completely removing all the overhead at compile time and
+     reduce it at runtime.
+
+void log_parse
+     Log SWF parsing  Wrap all calls to this function (and other
+     related statements) into an IF_VERBOSE_PARSE macro, so to allow
+     completely removing all the overhead at compile time and reduce it
+     at runtime.
+
+void log_security
+     Display a message with security related information.
+
+void log_swferror
+     This indicates an error in how the binary SWF file was
+     constructed, i.e.probably a bug in the tools used to build the SWF
+     file. Wrap all calls to this function (and other related
+     statements) into an IF_VERBOSE_MALFORMED_SWF macro, so to allow
+     completely removing all the overhead at compile time and reduce it
+     at runtime.
+
+log_warning(const char* fmt, ...)
+     Display a warning message if verbose output is enabled. By default
+     the error messages are always written to the disk file, but
+     optionally displayed in the terminal.
+
+
+File: gnash_ref.info,  Node: Logging System C++ API,  Prev: Logging System C 
API,  Up: The Debug Logging System
+
+3.1.4.2 Logging System C++ API
+..............................
+
+This is the new C++ streams based API that can be used to print C++
+objects natively. All output lines are timestamped.
+
+   There are two macros used for program tracing. these can be used in
+both C or C++ code with one little difference. Since C doesn't have
+destructors, you must call _GNASH_REPORT_RETURN_ at the end of a
+function to display the function returning message.
+
+GNASH_REPORT_FUNCTION;
+     When this is included in a C++ method, a message is printed when
+     entering and exiting this method by hooking into the constructor
+     and destructor. These are always written to the disk file, but
+     optionally written to the screen only at the highest levels of
+     verbosity.
+
+GNASH_REPORT_RETURN;
+     This is used by C functions to print the returning from function
+     debug message. For C++, this macro is executed automatically by
+     the destructor.
+
+   This is the main API for the logging system. By default everything
+is setup to write to the default _gnash-dbg.log_ file whenever a
+verbose option is supplied. Optionally it is possible to open a log
+file with a specified name, allowing multiple output files.
+
+closeLog(void)
+     Close a debug log. The disk file remains.
+
+removeLog(void)
+     Delete the debug log file from disk.
+
+setVerbosity(void)
+     Increment the verbosity level.
+
+setVerbosity(int)
+     Set the verbosity level.
+
+setStamp(bool flag)
+     If _flag_ is _true_, then print a timestamp prefixed to every
+     output line. If _flag_ is _false_, then don't print a timestamp.
+
+setWriteDisk(bool flag)
+     If _flag_ is _true_, then create the disk file. If _flag_ is
+     _false_, then don't create the disk file.
+
+
+File: gnash_ref.info,  Node: Sound handling in Gnash,  Next: Testing,  Prev: A 
Tour of Gnash,  Up: Software Internals
+
+3.2 Sound handling in Gnash
+===========================
+
+When a SWF-file contains audio Gnash uses its sound handlers to play it.
+At the moment there are two sound handlers, but it is likely that more
+will be made.
+
+   There are two different settings related to sound support: _[Cross
+reference to non-existant ID "pluginsound"]_ and _[Cross reference to
+non-existant ID "standalonesound"]_.  This was done in order to allow
+the plugin to be independently configured, for instance to block sound
+from advertisements.
+
+* Menu:
+
+* Sound types::
+* Sound parsing::
+* Sound playback::
+* The SDL sound backend::
+* The Gstreamer backend::
+* Future audio backends::
+* Detailed description of the Gstreamer backend::
+
+
+File: gnash_ref.info,  Node: Sound types,  Next: Sound parsing,  Up: Sound 
handling in Gnash
+
+3.2.1 Sound types
+-----------------
+
+Sounds can be divided into two groups: event-sounds and soundstreams.
+Event-sounds are contained in a single SWF frame, but the playtime can
+span multiple frames. Soundstreams can be (and normally are) divided
+between the SWF frames the soundstreams spans. This means that if a
+gotoframe-action jumps to a frame which contains data for a soundstream,
+playback of the stream can be picked up from there.
+
+
+File: gnash_ref.info,  Node: Sound parsing,  Next: Sound playback,  Prev: 
Sound types,  Up: Sound handling in Gnash
+
+3.2.2 Sound parsing
+-------------------
+
+When Gnash parses a SWF-file, it creates a sound handler if possible
+and hands over the sounds to it. Since the event-sounds are contained
+in one frame, the entire event-sound is retrieved at once, while a
+soundstream maybe not be completely retrieved before the entire
+SWF-file has been parsed. But since the entire soundstream doesn't need
+to be present when playback starts, it is not necessary to wait.
+
+
+File: gnash_ref.info,  Node: Sound playback,  Next: The SDL sound backend,  
Prev: Sound parsing,  Up: Sound handling in Gnash
+
+3.2.3 Sound playback
+--------------------
+
+When a sound is about to be played Gnash calls the sound handler, which
+then starts to play the sound and return. All the playing is done by
+threads (in both SDL and Gstreamer), so once started the audio and
+graphics are not sync'ed with each other, which means that we have to
+trust both the graphic backend and the audio backend to play at correct
+speed.
+
+
+File: gnash_ref.info,  Node: The SDL sound backend,  Next: The Gstreamer 
backend,  Prev: Sound playback,  Up: Sound handling in Gnash
+
+3.2.4 The SDL sound backend
+---------------------------
+
+The current SDL sound backend has replaced the original sound handler,
+based on SDL_mixer, which by design had some limitations, making it
+difficult to implement needed features such as support for soundstreams.
+The SDL sound backend supports both event-sounds and soundstreams,
+using Gnash's internal ADPCM, and optionally MP3 support, using either
+FFMPEG or LIBMAD.  When it receives sound data it is stored without
+being decoded, unless it is ADPCM, which is decoded in the parser. When
+playing, backend relies on a function callback for retrieving output
+sound, which is decoded and re-sampled if needed, and all sound output
+is mixed together.  The current SDL sound backend was made since Gnash
+needed a working sound backend as soon as possible, and since the
+gstreamer backend at the time suffered from bugs and/or lack of
+features in gstreamer. The result was the most complete and best sound
+handler so far.  The advantages of the SDL sound handler is speed, and
+ease of use, while its only real disadvantage is that it has to be
+compiled with MP3 support, which some Linux distributions will probably
+not like...
+
+
+File: gnash_ref.info,  Node: The Gstreamer backend,  Next: Future audio 
backends,  Prev: The SDL sound backend,  Up: Sound handling in Gnash
+
+3.2.5 The Gstreamer backend
+---------------------------
+
+The Gstreamer backend, though not complete, supports both soundstreams
+and event-sounds. When receiving sound data it stores it compressed,
+unless if it's ADPCM event-sounds, which it decodes by the parser.
+When the playback starts, the backend sets up a Gstreamer bin
+containing a decoder (and other things needed) and places it in a
+Gstreamer pipeline, which plays the audio. All the sound data is not
+passed at once, but in small chunks, and via callbacks the pipeline
+gets fed. The advantages of the Gstreamer backend is that it supports
+both kinds of sound, it avoids all the legal MP3-stuff, and it should
+be relatively easy to add VORBIS support. The drawbacks are that it has
+longer "reply delay" when starting the playback of a sound, and it
+suffers under some bugs in Gstreamer that are yet to be fixed.
+
+
+File: gnash_ref.info,  Node: Future audio backends,  Next: Detailed 
description of the Gstreamer backend,  Prev: The Gstreamer backend,  Up: Sound 
handling in Gnash
+
+3.2.6 Future audio backends
+---------------------------
+
+It would probably be desirable to make more backends in the future,
+either because other and better backend systems are brought to our
+attention, or perhaps because an internal sound handling is better
+suited for embedded platform with limited software installed.
+
+
+File: gnash_ref.info,  Node: Detailed description of the Gstreamer backend,  
Prev: Future audio backends,  Up: Sound handling in Gnash
+
+3.2.7 Detailed description of the Gstreamer backend
+---------------------------------------------------
+
+Gstreamer uses pipelines, bins and elements. Pipelines are the main
+bin, where all other bins or elements are places. Visually the audio
+pipeline in Gnash looks like this:
+
+
+        ___
+       |Bin|_
+       |___| \
+        ___   \ _____       ____________
+       |Bin|___|Adder|_____|Audio output|
+       |___|   |_____|     |____________|
+        ___   /
+       |Bin|_/
+       |___|
+
+   There is one bin for each sound which is being played. If a sound is
+played more the once at the same time, multiple bins will be made. The
+bins contains:
+
+
+
+       
|source|---|capsfilter|---|decoder|---|aconverter|---|aresampler|---|volume|
+
+   In the source element we place parts of the undecoded sound data, and
+when playing the pipeline will pull the data from the element. Via
+callbacks it is refilled if needed. In the capsfilter the data is
+labeled with the format of the data. The decoder (surprise!) decodes
+the data. The audioconverter converts the now raw sound data into a
+format accepted by the adder, all input to the adder must in the same
+format. The audio re-sampler re-samples the raw sound data into a sample
+accepted by the adder, all input to the adder must in the same sample
+rate. The volume element makes it possible to control the volume of
+each sound.
+
+   When a sound is done being played it emits a End-Of-Stream-signal
+(EOS), which is caught by an event-handler-callback, which then makes
+sure that the bin in question is removed from the pipeline. When a
+sound is told by Gnash to stop playback before it has ended playback,
+we do something (not yet finally implemented), which makes the bin emit
+an EOS, and the event-handler-callback will remove the sound from the
+pipeline. Unfortunately Gstreamer currently has a bug which causes the
+entire pipeline to stop playing when unlinking an element from the
+pipeline; so far no fix is known.
+
+   Gstreamer also contains a bug concerning linking multiple elements to
+the adder in rapid succession, which causes to adder to "die" and stop
+the playback.
+
+
+File: gnash_ref.info,  Node: Testing,  Next: Adding New ActionScript Class,  
Prev: Sound handling in Gnash,  Up: Software Internals
+
+3.3 Testing
+===========
+
+Instructions on running tests (*note Running the Tests::) can be found
+in the section on building Gnash.
+
+* Menu:
+
+* Testing Tools::
+* Test Cases::
+* Writing ActionScript Tests::
+* Writing Ming-based self-contained SWF tests::
+* Writing self-contained SWF tests with other compilers::
+* Writing Test Runners::
+
+
+File: gnash_ref.info,  Node: Testing Tools,  Next: Test Cases,  Up: Testing
+
+3.3.1 Testing Tools
+-------------------
+
+Currently Gnash uses three other tools to help with testing. Two of
+these are free compilers for the Flash format. This lets us write
+simple test cases for Gnash to test specific features, and to see how
+the features operate.
+
+   The primary compiler used at this time is Ming (http://ming.sf.net).
+Since release 0.3, _Ming_ includes a command-line compiler, _makeswf_.
+This allows test case development to be done entirely with free tools.
+
+   The other tools are optional.  DejaGnu
+(http://www.gnu.org/software/dejagnu) is used to run multiple test
+cases in an automated manner. _DejaGnu_ is used by many other GNU
+(http://www.gnu.org) projects like GCC (http://gcc.gnu.org) and Samba
+(http://www.samba.org).
+
+
+File: gnash_ref.info,  Node: Test Cases,  Next: Writing ActionScript Tests,  
Prev: Testing Tools,  Up: Testing
+
+3.3.2 Test Cases
+----------------
+
+ActionScript test cases are located under testsuite/actionscript.all/;
+these are organized in one file for the ActionScript class.  Other
+Ming-generated tests are under testsuite/ming-misc.all/; these are
+typically used to test specific tag types.  Full movies are located in
+testsuite/movies.all/ and sample movies are found in testsuite/samples/.
+Other directories in testsuite/ are (or shall be) used for other kind
+of tests.
+
+
+File: gnash_ref.info,  Node: Writing ActionScript Tests,  Next: Writing 
Ming-based self-contained SWF tests,  Prev: Test Cases,  Up: Testing
+
+3.3.3 Writing ActionScript Tests
+--------------------------------
+
+Writing ActionScript tests is very simple. The _makeswf_ compiler makes
+use of the C preprocessor, thus allowing the inclusion of definitions
+for macros and external files. We use these feature to provide common
+utilities for test units.
+
+   Each test unit sets an _rcsid_ variable, includes the _check.as_
+file and performs some checks using the provided macros. Here is an
+example:
+
+
+
+         // This variable will be used by check.as
+         // to show testcase info as part of the test runs.
+         rcsid="Name and version of this testcase, usually the RCS id";
+
+         #include "check.as"
+
+         // Test object creation
+         check(new Object() instanceOf Object);
+
+         // Test parseInt
+         check(isNaN(parseInt('none')));
+
+         // Test assignment
+         var a = 1;
+         check_equals(a, 1);
+
+         // .. your tests here ...
+
+   The check(expr) macro will _trace_ PASSED or FAILED together with
+the expression being evaluated and the line number of the check. This
+is the format expected by DejaGnu.
+
+   The _check_equals(obtained, expected)_ macro uses equality operator
+_==_ to check for equality. When possible, use of the _check_equals()_
+macro is preferred over _check()_ because it shows what the actual
+result was in case of a failure.
+
+   Additionally, the check.as file provides a transparent way to send
+results to a TextField rather then using trace. This is very useful
+when you use a flash player without tracing support.
+
+   Test units are built by running _make TestName-v#.swf_.  This will
+use TestName.as as source and the value of # as target version.
+Allowed target version are from 5 to 8 (inclusive).
+
+   Note that if you get a syntax error from the compiler, the line
+number will refer to the pre-processed file. This file is called
+_TestName.as.pp_ or _TestName-v#.swf.frame#.pp_ (depending on Ming
+version) and it's not thrown away by _makeswf_ to make debugging easier.
+
+   Sometimes an expression is only supported by a specific SWF version,
+or it's evaluated differently by different SWF versions.  For this
+purpose the framework provides an OUTPUT_VERSION macro that you can use
+to switch code based on output version. For example:
+
+
+
+         #if OUTPUT_VERSION >= 7
+         check(_root.getSWFVersion == OUTPUT_VERSION);
+         #endif
+
+
+File: gnash_ref.info,  Node: Writing Ming-based self-contained SWF tests,  
Next: Writing self-contained SWF tests with other compilers,  Prev: Writing 
ActionScript Tests,  Up: Testing
+
+3.3.4 Writing Ming-based self-contained SWF tests
+-------------------------------------------------
+
+Ming-based test cases are located in testsuite/misc-ming.all and
+contain a test generator and a test runner.  The test generator
+(usually a C program) is used to produce the SWF file, while the test
+runner (a C++ program) will run it using a MovieTester class.  Note
+that only the test generator needs Ming, not the test runner, so if
+Ming isn't installed on the user's host, the test cases can still be
+run as long as SWF has been distributed.
+
+   Producing tests using Ming has the advantage that you can easily see
+and modify the full source code for the SWF movie, and you can use some
+facilities (*note Using Ming-based test generators facilities::)
+provided by the Gnash testing framework to easily run tests.
+
+   For generic Ming API documentation, see http://www.libming.org
+(http://www.libming.org/).
+
+* Menu:
+
+* Using Ming-based test generators facilities::
+
+
+File: gnash_ref.info,  Node: Using Ming-based test generators facilities,  Up: 
Writing Ming-based self-contained SWF tests
+
+3.3.4.1 Using Ming-based test generators facilities
+...................................................
+
+Ming-based test generator facilities, which might be moved into a
+loadable SWF in the future, can be currently used by your test
+generator by including the ming_utils.h file and calling the
+appropriate functions.
+
+   The most useful facility provided for Ming-based SWF test generators
+is a Dejagnu-like TestState ActionScript class.  In order to use this
+facility you must call 'add_dejagnu_functions()' right after Movie
+creation.  The function takes an SWFMovie object and some parameters
+specifying depth and location of the "visual" trace textfield; it
+instantiates a global 'TestState' ActionScript object to keep track of
+test's state.
+
+   You will _not_ need to directly invoke the TestState object created
+by the 'add_dejagnu_functions()' routine, rather you will be using C
+macros hiding its complexity:
+
+
+
+       check(SWFMovie mo, const char* expr)
+
+               Evaluate an ActionScript expression.
+
+       xcheck(SWFMovie mo, const char* expr)
+
+               Evaluate an ActionScript expression.
+               A failure is expected
+               (for cases where the call exposes a known bug).
+
+       check_equals(SWFMovie mo, const char* obtained, const char* expected)
+
+               Evaluate an ActionScript expression against an expected output.
+
+       xcheck_equals(SWFMovie mo, const char* obtained, const char* expected)
+
+               Evaluate an ActionScript expression against an expected output.
+               A failure is expected (for cases where the call exposes a known 
bug).
+
+       print_tests_summary(SWFMovie mo)
+
+                     This will print a summary of tests run, and should be
+               called as the last step in your SWF generator.
+
+   Test cases generated using Ming and the provided facilities (*note
+Using Ming-based test generators facilities::) will be self-contained,
+which means they can be used as tests by simply running them with
+whatever Player you might have.  Any 'check' or 'check_equals' result
+will be both traced and printed in a textfield. You can use 'gprocessor
+-v' to have Gnash use them as tests.
+
+   See section Writing Test Runners (*note Writing Test Runners::) for
+information about writing SWF test runners.
+
+
+File: gnash_ref.info,  Node: Writing self-contained SWF tests with other 
compilers,  Next: Writing Test Runners,  Prev: Writing Ming-based 
self-contained SWF tests,  Up: Testing
+
+3.3.5 Writing self-contained SWF tests with other compilers
+-----------------------------------------------------------
+
+If you want/need to use a different compiler for your test cases
+(there's plenty of open source tools for generating SWF out there), you
+can still make use of a loadable SWF utility provided as part of the
+Gnash testsuite to let your test consistent with the rest of the suite.
+
+   The loadable module is called Dejagnu.swf and is built during make
+check under testsuite/misc-ming.all. In order to use it you will need
+to load it into your SWF. We currently load it with an IMPORT tag for
+our ActionScript based test cases, but you can probably also use
+loadMovie or whatever works in the target SWF you're generating. Just
+make sure that the module is initialized before using it. You can check
+this by inspecting the dejagnu_module_initialized variable, which will
+be set to 'true' when all initialization actions contained in the
+Dejagnu.swf file are executed.
+
+   Once the module is loaded you will be able to invoke the following
+functions, all registered against the _root sprite (effects of _lockroot
+untested):
+
+
+
+       check(expression, [message]);
+
+               Evaluate the expression.
+               Trace result (PASSED: expression / FAILED: expression).
+               If fails, *visually* trace the failure.
+               If second argument is given, it will be used instead of
+               'expression' for printing results.
+
+       check_equals(obtained, expected)
+
+               Evaluate an expression against an expected output.
+               Trace result (PASSED: obtained == expected / FAILED: expected 
X, obtained Y)
+               If fails, *visually* trace the failure.
+
+       xcheck(expression, [message]);
+
+               Evaluate the expression.
+               Trace result (XPASSED: expression / XFAILED: expression).
+               If fails, *visually* trace the failure.
+               If second argument is given, it will be used instead of
+               'expression' for printing results.
+
+       xcheck_equals(obtained, expected)
+
+               Evaluate an expression against an expected output.
+               Trace result (XPASSED: obtained == expected / XFAILED: expected 
X, obtained Y)
+               If fails, *visually* trace the failure.
+
+       note(string)
+
+               Print string, both as debugging and *visual* trace.
+
+       totals()
+
+                     Print a summary of tests run, both as debugging and 
*visual* traces.
+
+   Visual traces are lines of text pushed to a textarea defined by the
+Dejagnu.swf module.  The textarea is initially placed at 0, 50 and is
+600x800 in size.  You can resize/move the clip after loading it.  Also,
+you can completely make the clip invisible if that bothers you. The
+important thing is the *debuggin* trace (call to the trace function).
+The latter will be used by the testing framework.
+
+   See section Writing Test Runners (*note Writing Test Runners::) for
+information about writing a test runners for your self-contained tests.
+
+
+File: gnash_ref.info,  Node: Writing Test Runners,  Prev: Writing 
self-contained SWF tests with other compilers,  Up: Testing
+
+3.3.6 Writing Test Runners
+--------------------------
+
+Test runners are executables that run one or more tests, writing
+results in Dejagnu form to standard output.
+
+   The Dejagnu form uses a standard set of labels when printing test
+results.  These are:
+
+Label                                Meaning
+PASSED                               The test succeeded.
+FAILED                               The test failed.
+XPASSED                              The test succeeded, but was
+                                     expected to fail.
+XFAILED                              The test failed, and was expected
+                                     to fail.
+UNRESOLVED                           The results of the test could not
+                                     be automatically parsed.
+UNTESTED                             This test case is not complete.
+UNSUPPORTED                          The test case relies on a
+                                     conditional feature which is not
+                                     present in your environment.
+
+   The following labels may also appear:
+
+Label                                Meaning
+ERROR                                There was a serious error in
+                                     running the test.
+WARNING                              There may have been a problem with
+                                     running the test.
+NOTE                                 There was some additional
+                                     information given about the test.
+
+* Menu:
+
+* Using the generic test runner for self-contained SWF tests::
+* Writing Movie testers::
+
+
+File: gnash_ref.info,  Node: Using the generic test runner for self-contained 
SWF tests,  Next: Writing Movie testers,  Up: Writing Test Runners
+
+3.3.6.1 Using the generic test runner for self-contained SWF tests
+..................................................................
+
+The simplest test runner is one that simply invokes Gnash in verbose
+mode against a self-contained SWF test movie.  Self-contained SWF test
+movies are the ones that print the PASSED/FAILED etc. lines using
+ActionScript (traces).  By invoking Gnash in verbose mode this movie
+will behave as a compliant "Test Runner".
+
+   A generator for simple test runners can be found in
+testsuite/generic-testrunner.sh.  The script can be invoked by passing
+it $(top_builddir) as the first argument and the name of the SWF file
+(without the path) as the second argument. This will create a specific
+runner for your test in the current build directory.  A simple
+Makefile.am rule for doing this follows:
+
+
+     MyTest-Runner: $(srcdir)/../generic-testrunner.sh MyTest.swf
+             sh $(srcdir)/../generic-testrunner.sh $(top_builddir) MyTest.swf 
> $@
+             chmod +x $@
+
+   By default, the generated test runner will play the movie up to the
+last frame. If you want the movie to be played more then once (maybe
+because you're exactly testing loop features) you can use the -r switch
+to the generic-testrunner.sh call. The following will create a runner
+playing the movie twice:
+
+
+     MyTest-Runner: $(srcdir)/../generic-testrunner.sh MyTest.swf
+             sh $(srcdir)/../generic-testrunner.sh -r2 $(top_builddir) 
MyTest.swf > $@
+             chmod +x $@
+
+   In case your test movie stops before the last frame, or you want to
+control the exact number of times to call the frame advancement
+routine, you can use the -f switch to control that.
+
+
+     MyTest-Runner: $(srcdir)/../generic-testrunner.sh MyTest.swf
+             sh $(srcdir)/../generic-testrunner.sh -f10 $(top_builddir) 
MyTest.swf > $@
+             chmod +x $@
+
+When both -f and -r are given, the first exit condition reached will
+take effect.
+
+
+File: gnash_ref.info,  Node: Writing Movie testers,  Prev: Using the generic 
test runner for self-contained SWF tests,  Up: Writing Test Runners
+
+3.3.6.2 Writing Movie testers
+.............................
+
+There are some parts of Gnash that can NOT be tested by only using
+ActionScript tests. Examples include: frame advancements, actual
+actions execution, gui events and so on.
+
+   In this case you might want to use the MovieTester class to
+implement a C++ test runner. Be aware that you can *mix* tests in the
+MovieTester-based class with *self-contained* tests in the SWF file as
+long as you activate verbosity for the debug logfile. This is done, for
+example, for the DefineEditTextVariableNameTest.swf file. The
+corresponding test runner (DefineEditTextVariableNameTest-Runner) is a
+C++ runner based on MovieTester class. If you run the runner you see
+two kinds of test results: the ones coming from the ActionScript
+engine, and the ones coming from the test runner. You can distinguish
+between the two because the former contains an additional timestamp and
+the latter does not. Also, you'll see two final summaries for the two
+test sets. The 'make check' rule, which uses the testsuite/simple.exp
+output parser as its work-horse, will count test results from both test
+sets.
+
+   Movie testers are executables which load an SWF, generate events
+(both user or system) on it, and check its state using a standard
+interface.
+
+   To help this process a MovieTester class is defined in the
+testsuite/MovieTester.{h,cpp} files; see Doxygen documentation for more
+information.
+
+   Note that you do NOT need access to the SWF source code in order to
+implement a Movie tester for it.  Some knowledge about the expected
+behavior suffices.
+
+
+File: gnash_ref.info,  Node: Adding New ActionScript Class,  Prev: Testing,  
Up: Software Internals
+
+3.4 Adding New ActionScript Class
+=================================
+
+In this document, the term 'ActionScript class' refers to the C++ class
+which is instantiated by Gnash when some ActionScript code instantiates
+a corresponding class.  The C++ class stores instance data and
+implements the methods which are called on the object in the
+ActionScript code.
+
+   Adding a new ActionScript class is relatively simple, but the
+process is complicated by the fact that the interface has evolved over
+time and the current code base represents several different formats.
+This document describes the current interface.  The Boolean class
+should be considered the authoritative example of a modern ActionScript
+class.
+
+   ActionScript classes contain a header file and a C++ implementation.
+The name is usually the name of the class as it is called in the
+ActionScript specifications; for instance _Boolean.cpp_ for the Boolean
+class.
+
+* Menu:
+
+* Prototype::
+* Declaration::
+* Instantiation::
+* Methods::
+* Dynamic Properties::
+* The as_value Object Type::
+* Object ActionScript Class::
+
+
+File: gnash_ref.info,  Node: Prototype,  Next: Declaration,  Up: Adding New 
ActionScript Class
+
+3.4.1 Prototype
+---------------
+
+In ActionScript, a prototype is a base object which contains all the
+methods that an instantiated object will contain.  In short, it
+contains every part of the class except for the portions dealing with
+the storage of instance data.
+
+   In Gnash, the prototype of an ActionScript object is implemented as
+an _as_object_.  At startup, the methods and properties of the
+ActionScript class are attached to the _as_object_.  The following
+example demonstrates how methods can be attached:
+
+
+       static void
+       attachBooleanInterface(as_object& o) {
+         o.init_member("toString", new builtin_function(boolean_tostring));
+         o.init_member("valueOf", new builtin_function(boolean_valueof));
+       }
+
+   Static properties can also be added to the ActionScript prototype
+(dynamic properties (*note Dynamic Properties::) are addressed later).
+They are attached in a similar way:
+
+
+       o.init_member("myProperty", as_value("HelloWorld"));
+
+   Properties which have been added in this manner can be directly
+accessed in ActionScript code without a function call, as this piece of
+ActionScript code compiled by Ming's _makeswf_ compiler demonstrates:
+
+
+       // Get the value of the myProperty property
+       if (node.myProperty == "HelloWorld") {
+         trace("MATCHED");
+       }
+
+
+File: gnash_ref.info,  Node: Declaration,  Next: Instantiation,  Prev: 
Prototype,  Up: Adding New ActionScript Class
+
+3.4.2 Declaration
+-----------------
+
+A new class should derive from _as_object_, which is the base class of
+every ActionScript object in Gnash.
+
+
+File: gnash_ref.info,  Node: Instantiation,  Next: Methods,  Prev: 
Declaration,  Up: Adding New ActionScript Class
+
+3.4.3 Instantiation
+-------------------
+
+When a new object is needed, instance data is added to the methods and
+properties inherited from the prototype.
+
+   The init method should be called in the constructor in _Global.cpp_,
+where all other ActionScript classes are similarly referenced. This
+method constructs a prototype, which is implemented as an _as_object_.
+In addition, the method registers the constructor to be used for future
+object creation, and attaches methods and properties to the prototype.
+
+
+File: gnash_ref.info,  Node: Methods,  Next: Dynamic Properties,  Prev: 
Instantiation,  Up: Adding New ActionScript Class
+
+3.4.4 Methods
+-------------
+
+Every method you implement and attach (*note Prototype::) will receive
+an _fn_call_ data structure as an argument when it is called.
+
+* Menu:
+
+* Accessing Arguments::
+* Returning a Value to ActionScript::
+* Additional fn_call Members::
+
+
+File: gnash_ref.info,  Node: Accessing Arguments,  Next: Returning a Value to 
ActionScript,  Up: Methods
+
+3.4.4.1 Accessing Arguments
+...........................
+
+The arguments stored in _fn_call_ should be accessed using _arg()_.  For
+instance, the first element can be popped with _fn.arg(0)_.
+
+   The element popped off the stack is an _as_value_ object (*note The
+as_value Object Type::).
+
+
+File: gnash_ref.info,  Node: Returning a Value to ActionScript,  Next: 
Additional fn_call Members,  Prev: Accessing Arguments,  Up: Methods
+
+3.4.4.2 Returning a Value to ActionScript
+.........................................
+
+The return value should be an _as_value_ object (*note The as_value
+Object Type::).  For example:
+
+
+         return as_value('Goodbye, cruel world.');
+
+
+File: gnash_ref.info,  Node: Additional fn_call Members,  Prev: Returning a 
Value to ActionScript,  Up: Methods
+
+3.4.4.3 Additional fn_call Members
+..................................
+
+There are two other useful members of the _fn_call_ structure, namely
+_this_ptr_ and _nargs_.  The former points to the class which is
+invoking this method, while the latter is a count of the number of
+arguments in the stack (*note Accessing Arguments::).
+
+   You may also see instances of the _env_ pointer being used.   This
+is being deprecated.  Instances which could be replaced with _arg()_
+(*note Accessing Arguments::) are already deprecated; other uses will
+be deprecated in the near future.
+
+   Beyond the _arg() (*note Accessing Arguments::)_ method, there is
+one method of note.  _dump_args()_ can be used in debugging to output
+the entire argument stack.
+
+
+File: gnash_ref.info,  Node: Dynamic Properties,  Next: The as_value Object 
Type,  Prev: Methods,  Up: Adding New ActionScript Class
+
+3.4.5 Dynamic Properties
+------------------------
+
+This section describes accessors to dynamic properties.  Read-only
+properties are described in the prototype (*note Prototype::) section.
+
+   Accessors should be written as a single get/set method.  Previously
+this was done by overriding _get_member()_ and _set_member()_, but this
+practice is deprecated.
+
+   The accessor is written so that it sets the property if it is called
+with an argument, and puts the property in the _fn_call_ (*note
+Methods::) result pointer (*note Returning a Value to ActionScript::).
+For instance:
+
+
+       void
+       MyClass::myProperty_getset(const fn_call& fn) {
+         boost::intrusive_ptr<MyClass> ptr = ensureType<MyClass>(fn.this_ptr);
+
+         // setter
+         if ( fn.nargs > 0 ) {
+           bool h = fn.arg(0).to_bool();
+           ptr->MyMethod(h);
+           return;
+          }
+
+         // getter
+         bool h = ptr->MyMethod();
+         fn.result->set_bool(h);
+       }
+
+   It has not yet been decided whether properties should be set in the
+exported interface (*note Prototype::) or attached to instances of the
+class.  A property is attached in the following manner:
+
+
+       boost::intrusive_ptr<builtin_function> gettersetter;
+       gettersetter = new builtin_function(&MyClass::myProperty_getset, NULL);
+       o.init_property("myProperty", *gettersetter, *gettersetter);
+
+
+File: gnash_ref.info,  Node: The as_value Object Type,  Next: Object 
ActionScript Class,  Prev: Dynamic Properties,  Up: Adding New ActionScript 
Class
+
+3.4.6 The as_value Object Type
+------------------------------
+
+The _as_value_ class is used throughout the interpreter to create
+generic objects to hold data.
+
+* Menu:
+
+* Data Types::
+* Determining the Type::
+* Fetching the Value::
+* Setting the Value and Type::
+* Further Reading::
+
+
+File: gnash_ref.info,  Node: Data Types,  Next: Determining the Type,  Up: The 
as_value Object Type
+
+3.4.6.1 Data Types
+..................
+
+The following data types are supported: _NULLTYPE_, _BOOLEAN_, _STRING_,
+_NUMBER_, _OBJECT_, _AS_FUNCTION_, and _MOVIECLIP_ (sprite).  The type
+_C_FUNCTION_ is being deprecated.
+
+
+File: gnash_ref.info,  Node: Determining the Type,  Next: Fetching the Value,  
Prev: Data Types,  Up: The as_value Object Type
+
+3.4.6.2 Determining the Type
+............................
+
+Several methods allow you to determine if a value stored in _as_value_
+is of a specific type.  These follow the form of _is_TYPE_, for example
+_is_as_function()_ and _is_number()_.  In general, the type names match
+the data types (*note Data Types::) listed above, with the exception of
+the type _MOVIECLIP_ which has a method _is_sprite()_.
+
+
+File: gnash_ref.info,  Node: Fetching the Value,  Next: Setting the Value and 
Type,  Prev: Determining the Type,  Up: The as_value Object Type
+
+3.4.6.3 Fetching the Value
+..........................
+
+Another set of methods will return a representation of the value as a
+particular type.  They follow the _to_TYPE_ naming convention.  Examples
+are _to_number()_ and _to_bool()_.  The type names are as listed (*note
+Data Types::) earlier, except for _MOVIECLIP_, which uses _to_sprite()_.
+
+
+File: gnash_ref.info,  Node: Setting the Value and Type,  Next: Further 
Reading,  Prev: Fetching the Value,  Up: The as_value Object Type
+
+3.4.6.4 Setting the Value and Type
+..................................
+
+Finally, there is the _set_TYPE_ series of methods.  They change the
+type to the type specified in the method name, and set the value to the
+one given as an argument.  It is also possible to accomplish the same
+thing with the _=_ operator.  Again, type names match those named
+earlier (*note Data Types::), except in the case of _MOVIECLASS_.  Its
+method is called _set_sprite()_.
+
+
+File: gnash_ref.info,  Node: Further Reading,  Prev: Setting the Value and 
Type,  Up: The as_value Object Type
+
+3.4.6.5 Further Reading
+.......................
+
+Please refer to _as_value.h_ or the Doxygen documentation (see
+'Processing The Documentation' in the Gnash manual for instructions on
+generating documents with Doxygen) for more information about which
+methods are available for the _as_value_ object.
+
+
+File: gnash_ref.info,  Node: Object ActionScript Class,  Prev: The as_value 
Object Type,  Up: Adding New ActionScript Class
+
+3.4.7 Object ActionScript Class
+-------------------------------
+
+This class implements an Object object.
+
+* Menu:
+
+* The Methods of the Class::
+* The Properties of the Object Class::
+* Object Class Conformance::
+
+
+File: gnash_ref.info,  Node: The Methods of the Class,  Next: The Properties 
of the Object Class,  Up: Object ActionScript Class
+
+3.4.7.1 The Methods of the Class
+................................
+
+addProperty()
+
+registerClass()
+
+toString()
+
+unwatch()
+
+valueOf()
+
+watch()
+
+Sharedclear()
+
+Sharedflush()
+
+SharedgetLocal()
+
+SharedgetSize()
+
+
+File: gnash_ref.info,  Node: The Properties of the Object Class,  Next: Object 
Class Conformance,  Prev: The Methods of the Class,  Up: Object ActionScript 
Class
+
+3.4.7.2 The Properties of the Object Class
+..........................................
+
+constructor
+
+__proto__
+
+__resolve
+
+Shareddata
+
+SharedonStatus
+
+
+File: gnash_ref.info,  Node: Object Class Conformance,  Prev: The Properties 
of the Object Class,  Up: Object ActionScript Class
+
+3.4.7.3 Object Class Conformance
+................................
+
+Class Name                           Conformance
+addProperty()                         This method has an unknown status.
+registerClass()                       This method has an unknown status.
+toString()                            This method has an unknown status.
+unwatch()                             This method has an unknown status.
+valueOf()                             This method has an unknown status.
+watch()                               This method has an unknown status.
+Sharedclear()                         This method has an unknown status.
+Sharedflush()                         This method has an unknown status.
+SharedgetLocal()                      This method has an unknown status.
+SharedgetSize()                       This method has an unknown status.
+constructor                           This property has an unknown
+                                     status.
+__proto__                             This property has an unknown
+                                     status.
+__resolve                             This property has an unknown
+                                     status.
+Shareddata                            This property has an unknown
+                                     status.
+SharedonStatus                        This property has an unknown
+                                     status.
+
+
+File: gnash_ref.info,  Node: Gnash Extensions,  Next: RTMP Protocol,  Prev: 
Software Internals,  Up: Top
+
+4 Gnash Extensions
+******************
+
+Gnash supports extending the Flash specification by creating custom
+ActionScript classes that are compiled code, as opposed to the existing
+method of defining custom classes as ActionScript. Executing compiled
+code has many performance benefits over having to interpret the byte
+stream of the ActionScript opcodes.
+
+   I can already hear people complaining now about the concept of
+extending Flash, so this in no way affects Gnash's ability to play
+Flash movies when functioning as a browser plugin.  Gnash's goal is
+still to function in a way that is compatible with the current
+proprietary Flash player.
+
+   But at the same time, we see Flash as the ideal scripting language
+for a digital multi-media streaming environment. There are many
+resources for Flash movie creators for widgets, higher level APIs, all
+sorts of desirable things. But for those of use committed to using free
+software tools for Flash, our options are very limited.
+
+   Rather than launching a multi-year project to duplicate all classes
+in the commercial Flash IDE, it's much more efficient to use existing
+development libraries much like Python or Perl do. The extension
+mechanism in Gnash allows wrappers to be created for any C or C++
+development library. Unlike the proprietary Flash IDE, which compiles
+all the extension libraries into byte codes from ActionScript, the
+support is moved to the player side. Movies with all of the goodies of
+the proprietary IDE in them play in Gnash just fine, as it's all just
+byte codes by then.
+
+   This trick works because until Flash player version 9, all the
+ActionScript class names and methods are passed as ASCII strings into
+the Flash movie. So the Gnash Virtual Machine just loads the extension
+file if that class name is invoked in the movie. All extension files
+specify the class name and methods it implements in an identical style
+as adding any new ActionScript class. The advantage is the class itself
+is compiled code, and runs much faster than the equivalent byte codes
+which all have to be interpreted..
+
+* Menu:
+
+* Creating A New Extension::
+* Debugging An Extension::
+* Included Extensions::
+
+
+File: gnash_ref.info,  Node: Creating A New Extension,  Next: Debugging An 
Extension,  Up: Gnash Extensions
+
+4.1 Creating A New Extension
+============================
+
+Each new extension should live in it's own directory. The extensions
+included in Gnash are all in the gnash/extensions directory. Creating
+an extension requires a Makefile.am,
+
+   If you are adding this extension to the Gnash source tree itself,
+then you need to make two changes to add the new extension.
+
+   The first change is to add the directory to the list in
+extensions/Makefile.am. This can be done either by adding the new
+directory to the SUBDIRS setting, or by wrapping it in a conditional
+test.
+
+   The other change is to add it to the AC_OUTPUT list in
+_configure.ac_ so the new directory will be configured along with the
+rest of Gnash.
+
+   Each extension should have an ActionScript source file included that
+tests the new class, and this file should be referenced in the new
+Makefile.am in the _check_PROGRAMS_ variable so that "make check" works.
+
+   When creating an extension that is a wrapper for an existing
+development library API, it's often better to make this a thin layer,
+than to get carried away with creating beautiful abstractions.
+Higher-level classes that offer a lot of new functionality are fine,
+but is different than wrapping a library so it can be used from within
+Gnash.
+
+* Menu:
+
+* Crafting an Extension::
+
+
+File: gnash_ref.info,  Node: Crafting an Extension,  Up: Creating A New 
Extension
+
+4.1.1 Crafting an Extension
+---------------------------
+
+All extensions have the same requirements, namely setting up a few
+defined function callbacks, which the Gnash VM then uses to do the
+right thing. The initial two function callbacks are for handling the
+interface of the newly created object so that Gnash can find and use it.
+
+   The first function is commonly called _attachInterface_, and this
+sets the other function callbacks for all the methods this class
+supports. The method callbacks are attached to the parent class by
+using _init_member()_ to set a C function pointer to the string value
+used in the Flash movie.
+
+
+       // Attach DummyClass 'func1' and 'func2' methods to the given object
+       static void
+       attachInterface(as_object& obj) {
+                 obj.init_member("func1", &ext_func1);
+                 obj.init_member("func2", &ext_func2);
+       }
+
+   The second function is commonly called _getInterface()_, and this
+returns a pointer to a static prototype of the class.  Gnash uses
+garbage collection for ActionScript objects so you need to register the
+static with the VM to give it a chance to be marked as reachable.
+
+
+       static as_object*
+       getInterface()
+       {
+           static boost::intrusive_ptr<as_object> o;
+           if (o == NULL) {
+               o = new as_object();
+                     VM::get().addStatic(o);
+                     attachInterface(*o);
+           }
+           return o.get();
+       }
+
+   This is the callback that gets executed when constructing a new
+object for the VM. In this example we'll assume the new ActionScript
+class is called _DummyExt_, and has two methods, _func1_ and _func2_.
+
+
+       static as_value
+       dummyext_ctor(const fn_call& fn)
+       {
+           DummyExt *obj = new DummyExt(); // will setup prototypes
+
+           return as_value(obj);
+       }
+
+   The trick for the above simple constructor to work is that class
+appartenence is setup in the C++ DummyExt constructor itself, which
+should derive from as_object and construct the base passing it the
+interface (prototype) of it's class.
+
+
+       class DummyExt : public as_object
+             {
+             public:
+           DummyExt()
+                     :
+                     as_object(getInterface()) // returns the static prototype
+                 {}
+
+       };
+
+   Initialize the extension. This is looked for by the extension
+handling code in each extension, and is executed when the extension is
+loaded. This is the main entry point into the extension. This function
+can be found because the prefix of _dummyext_, which also matches the
+file name of the extension. Gnash uses the name of the extension file
+itself when looking for the init function.
+
+
+             extern "C" {
+           void
+           dummyext_class_init(as_object &obj)
+           {
+               static builtin_function* cl=NULL;
+               if (!cl)
+                     {
+                         // Create a builtin function using the given 
constructor
+                         // to instanciate objects and exporting the given 
interface
+                   cl = new builtin_function(&dummyext_ctor, getInterface());
+                   VM::get().addStatic(cl); // will forbid to collect the class
+               }
+
+               obj.init_member("DummyExt", cl);
+           }
+             } // end of extern C
+
+   The callbacks are all C functions. Like all the other code that
+implements ActionScript, parameters to the function are passed in using
+the _fn_call_ data structure. The return code, if any, is also returned
+using this data structure. _this_ptr_ is the object that the method is
+a member of.
+
+
+       // Creates a new button with the label as the text.
+       as_value func1(const fn_call& fn) {
+                 // Following line will ensure 'func1' is called for a 
DummyExt instance,
+                 // or would throw an exception which should behave as if we 
returned the
+                 // undefined value.
+                 boost::intrusive_ptr<DummyExt> ptr = 
ensureType<DummyExt>(fn.this_ptr);
+
+           if (fn.nargs > 0) {
+               std::string label = fn.arg(0).to_string();
+               bool ret = ptr->dummy_text_label(label);
+               return as_value(ret);
+           }
+       }
+
+
+File: gnash_ref.info,  Node: Debugging An Extension,  Next: Included 
Extensions,  Prev: Creating A New Extension,  Up: Gnash Extensions
+
+4.2 Debugging An Extension
+==========================
+
+As extensions are loaded dynamically at runtime, debugging one can be
+difficult. You can use GDB, but you have the problem of not being able
+to set a breakpoint in Gnash until _after_ the extension has been
+loaded into Gnash's VM. The easy solution is to use the Gnash debugger.
+
+   You can insert these few lines in any file that you wish to manually
+start the debugger. Once at the console, you can attach GDB to the
+process. Then you can set breakpoints, etc... and you are at the point
+of execution where the console was started. To then continue playing
+the movie, type the _c_ (for continue) command to the Gnash console.
+
+
+           // Get the debugger instance
+           static Debugger& debugger = Debugger::getDefaultInstance();
+
+           // Enable the debugger
+           debugger.enabled(true);
+           // Stop and drop into a console
+           debugger.console();
+
+   You can also resort to the time honored technique of creating a loop
+before the point you want to set a breakpoint for. Gnash will stop
+playing the movie at this point, and then you can externally attach GDB
+to the running process, or type _^C_ to drop into the GDB command
+console.
+
+
+           bool stall = true;
+           while (stall) {
+               sleep 1;
+           }
+
+   Once you have set the breakpoints you want, reset the value of the
+_stall_ variable to break out of the loop, and the Flash movie will
+then continue playing.
+
+
+           (gdb) set variable stall = false;
+           continue
+
+
+File: gnash_ref.info,  Node: Included Extensions,  Prev: Debugging An 
Extension,  Up: Gnash Extensions
+
+4.3 Included Extensions
+=======================
+
+Gnash has some extensions included in the distribution. This is mostly
+because they were written by the Gnash team. Extensions can be external
+to gnash, Gnash needs no compiled in knowledge to load an extension
+file.
+
+* Menu:
+
+* Gtk Extension::
+* File I/O Extension::
+* MySQL Extension::
+
+
+File: gnash_ref.info,  Node: Gtk Extension,  Next: File I/O Extension,  Up: 
Included Extensions
+
+4.3.1 Gtk Extension
+-------------------
+
+The GTK ActionScript class follows the same API as Gtk2, even down to
+the same arguments to the same function names. This means you're
+actually programming GTK,you're just using ActionScript instead of
+python, perl, or C. This extension makes it possible to write Flash
+movies that use the Gtk2 widgets for user interface components.
+
+window_new
+     Create a new window.
+
+signal_connect
+     Add an event handler to a widget.
+
+container_set_border_width
+     Set the width of the window border.
+
+button_new_with_label
+     Create a new button and give it the specified label.
+
+signal_connect_swapped
+     Swap signals. Commonly used for _delete_ event handling.
+
+container_add
+     Add one widget to another as a child.
+
+widget_show
+     Display the widget on the screen.
+
+main
+     Start the main GTK event loop. This function does not return.
+
+
+File: gnash_ref.info,  Node: File I/O Extension,  Next: MySQL Extension,  
Prev: Gtk Extension,  Up: Included Extensions
+
+4.3.2 File I/O Extension
+------------------------
+
+Flash movies are traditionally forbidden from accessing the filesystem,
+but this may be necessary for some embedded applications. Especially in
+the case of a user console, currently there is no way to get input into
+a Flash movie but through a TextField.
+
+fopen
+     Open the file.
+
+fread
+     Read a series of bytes from the opened file.
+
+fgetc
+     Read a single byte from the opened file.
+
+fgets
+     Read a single line until a Carriage Return from the opened file.
+
+gets
+     Read a single line from the standard in.
+
+getchar
+     Read a single character from the standard in.
+
+fwrite
+
+fputc
+     Write a single character to the opened file.
+
+fputs
+     Write a single line to the opened file.
+
+puts
+     Write a single line to standard out..
+
+putchar
+     Write a single character to standard out..
+
+fflush
+     Flush the current opened file to disk.
+
+fseek
+     Seek to a location within the opened file.
+
+ftell
+     Report the current position within the opened file.
+
+fclose
+     Close the opened file.
+
+
+File: gnash_ref.info,  Node: MySQL Extension,  Prev: File I/O Extension,  Up: 
Included Extensions
+
+4.3.3 MySQL Extension
+---------------------
+
+The MySQL ActionScript class follows the same API as MySQL, even down
+to the same arguments to the same function names. This enables a Flash
+movie to have direct access to a MySQL database. Traditionally Flash
+movies have had no database support, they either had to use arrays, or
+use XML to communicate to an application specific external database
+daemon.
+
+connect
+     Connect to a MySQL database.
+
+qetData
+     Get data from the database.
+
+disconnect
+     Disconnect from a MySQL database.
+
+query
+     Execute an SQL query to the database.
+
+fetch_row
+     Fetch a row from the query results.
+
+num_fields
+
+free_result
+     Free the results of a query.
+
+store_results
+     Store the results of a query.
+
+
+File: gnash_ref.info,  Node: RTMP Protocol,  Next: Mozilla/Firefox NSAPI 
Plugin,  Prev: Gnash Extensions,  Up: Top
+
+5 RTMP Protocol
+***************
+
+This document is based mostly on my own reverse engineering of the RTMP
+protocol and AMF format. _tcpdump_ and _ethereal_ are your friend. Some
+additional info that got me started was from the Red5
+(http://www.osflash.org/red5) project. _Red5_ is the only other open
+source Flash server. So some details are still vague, but as the
+implementation appears to work, we'll figure out what they are later.
+
+   The Real Time Messaging Protocol was created by MacroMedia (now
+Adobe) for delivering Flash objects and video over a network
+connection. Currently the only servers which support this format are
+the MacroMedia Media sever, and the Open Source Red5 project.
+
+   This is a simple protocol, optimized for poor bandwidth connections.
+It can support up to 64 concurrent streams over the same network
+connection. Part of each AMF packet header contains the index number of
+the stream. A single RTMP message can contain multiple AMF packets.
+
+   An RTMP connection uses Tcp/ip port 1935. It is also possible to
+tunnel RTMP over an HTTP connection using port 80. Each AMF packet is
+128 bytes long except for streaming audio, which has 64 byte packets.
+
+   The basics of the RTMP protocol are as follows. All communications
+are initiated by the client.
+
+Image of the RTMP protocol.
+
+   The client starts the RTMP connection by sending a single byte with
+a value of 0x3. This byte is followed by a data block of 1536 bytes.
+The format if this data block is unknown, but it appears to not be
+actually used by the protocol except as a handshake.
+
+   The server receives this packet, stores the 1536 byte data block,
+and then send a single byte with the value of 0x3, followed by two 1536
+data blocks. The second data block is the full contents of the original
+data block as sent by the client.
+
+   The client receives the 1536 byte data block, and if they match, the
+connection is established. After the handshake process is done, there
+are three other messages that the client sends to the sever to start
+the data flowing.
+
+   The first AMF packet sent to the server contains the _connect_
+packet. This doesn't appear to do much but notify the server the client
+is happy with the handshake, and ready to start reading packets.
+
+   The second packet is the _NetConnection_ object from the client.
+This ActionScript class is used by the Flash movie to create the
+network connection to the server.
+
+   The third packet is the _NetStream_ object from the client. This is
+the ActionScript class used to specify the file to be streamed by the
+server.
+
+   The RTMP packet for our example looks like this:
+
+
+           030000190000c91400000000020007connect00?f0000000000000030003app0200#
+           software/gnash/tests/1153948634.flv0008flashVer02000cLNX 6,0,82,0 
0006
+           swfUrl02001dfile:///file|%2Ftmp%2Fout.swfc30005tcUrl\002\0004
+           rtmp://localhost/software/gnash/tests/1153948634.flv\000\000\t
+           \002\000\005userx
+
+We'll take this apart in a bit, but you can see how all three AMF
+packets are in the same message. The message is received in several 128
+byte blocks, with the last one being less than that. The total size of
+the RTMP message is in the header, so the reader can tell if the entire
+message was read or not.
+
+   The RTMP header is first, followed by the connect message as an
+ASCII string as the message body. The following AMF packet is the
+_NetConnection_ one, which specifies that this is coming from a Flash
+application. This also contains the file path the server can use to
+find the file to stream. This is then followed by the version number,
+which I assume is the version of the Flash player, so the server knows
+what it is talking to.
+
+   The third packet is the one from _NetStream_, which specifies the
+URL used for the movie, followed by the user name for a semblance of
+security.
+
+   For the next level of detail, we'll explain the format of AMF. AMF
+is used by the RTMP protocol to transfer data. Each Flash object is
+encapsulated in an AMF packet, including streaming audio or video.
+
+   The first byte of the RTMP header determines two things about the
+rest of the message. The first 2 bits of this byte signify the total
+size of the RTMP header. The RTMP header is of a variable size, so this
+is important.
+
+00
+     This specifies the header contains 12 bytes, including this one.
+
+01
+     This specifies the header contains 8 bytes, including this one.
+
+02
+     This specifies the header contains 4 bytes, including this one.
+
+03
+     This specifies the header contains 1 byte, so this is the complete
+     header.
+
+   The other 6 bits in this byte represent the AMF index. As a single
+RTMP connection can support multiple data streams, this signifies which
+stream this packet is for. Once an AMF object is fully received by the
+client, the AMF index may be reused.
+
+   For messages with headers of at least 4 bytes, the next 3 bytes are
+used by audio and video data packets, but at this time the meaning of
+this field is unknown.
+
+   For messages with a 8 byte or larger header, the next 3 bytes
+determine the size of the RTMP message being transmitted. Messages with
+a 1 byte or 4 byte header use a standard size, 128 bytes for video, and
+64 bytes for audio.
+
+   For messages with an 8 byte or larger header, the next byte is the
+type of the AMF object.
+
+0x3
+     This specifies the content type of the RTMP packet is the number
+     of bytes read. This is used to start the RTMP connection.
+
+0x4
+     This specifies the content type of the RTMP message is a _ping_
+     packet.
+
+0x5
+     This specifies the content type of the RTMP message is server
+     response of some type.
+
+0x6
+     This specifies the content type of the RTMP packet is client
+     request of some type.
+
+0x8
+     This specifies the content type of the RTMP packet is an audio
+     message.
+
+0x9
+     This specifies the content type of the RTMP message is a video
+     packet.
+
+0x12
+     This specifies the content type of the RTMP message is notify.
+
+0x13
+     This specifies the content type of the RTMP message is shared
+     object.
+
+0x14
+     This specifies the content type of the RTMP message is remote
+     procedure call. This invokes the method of a Flash class remotely.
+
+   There are two sets of data types to consider. One set is used by the
+to specify the content type of the AMF object, the other is an
+ActionScript data type tag used to denote which type of object is being
+transferred.
+
+   The values of the initial type byte are:
+
+0x0
+     This specifies the data in the AMF packet is a numeric value. All
+     numeric values in Flash are 64 bit, _big-endian_.
+
+0x1
+     This specifies the data in the AMF packet is a boolean value.
+
+0x2
+     This specifies the data in the AMF packet is an _ASCII_ string.
+
+0x3
+     This specifies the data in the AMF packet is a Flash object. The
+     Flash object data type field further along in the message
+     specifies which type of ActionScript object it is.
+
+0x4
+     This specifies the data in the AMF packet is a Flash movie, ie.
+     another Flash movie.
+
+0x5
+     This specifies the data in the AMF packet is a NULL value. NULL is
+     often used as the return code from calling Flash functions.
+
+0x6
+     This specifies the data in the AMF packet is a undefined. This is
+     also used as the return code from calling Flash functions.
+
+0x7
+     This specifies the data in the AMF packet is a reference.
+
+0x8
+     This specifies the data in the AMF packet is a ECMA array.
+
+0x9
+     This specifies the data in the AMF packet is the end of an object
+     definition. As an object is transmitted with multiple AMF packets,
+     this lets the server know when the end of the object is reached.
+
+0xa
+     This specifies the data in the AMF packet is a Strict array.
+
+0xb
+     This specifies the data in the AMF packet is a date.
+
+0xc
+     This specifies the data in the AMF packet is a multi-byte string.
+     Multi-byte strings are used for international language support to
+     represent non _ASCII_ fonts.
+
+0xd
+     This specifies the data in the AMF packet is a an unsupported
+     feature.
+
+0xe
+     This specifies the data in the AMF packet is a record set.
+
+0xf
+     This specifies the data in the AMF packet is a AML object. XML
+     objects are then parsed by the _XML_ ActionScript class.
+
+0x10
+     This specifies the data in the AMF packet is a typed object.
+
+   For messages with a 12 byte header, the last 4 bytes are the routing
+of the message. If the destination is the server, this value is the
+NetStream object source. If the destination is the client, this is the
+NetStream object for this RTMP message. A value of 0x00000000 appears
+to be reserved for the NetConnection object.
+
+   Multiple AMF streams can be contained in a single RTMP messages, so
+it's important to check the index of each AMF packet.
+
+   An example RTMP header might look like this. (spaces added between
+fields for clarity) All the numbers are in hex.
+
+
+           03 000019 0000c9 14 000000000
+
+03
+     The first two bits of this byte are the size of the header, which
+     in this example is 00, for a 12 byte header. The next 6 bits is
+     the AMF stream index number, which in this example is 0x3.
+
+000019
+     These 3 bytes currently have an unknown purpose.
+
+000c9
+     Since this example has a 12 byte header, this is the size of the
+     RTMP message, in this case 201 bytes.
+
+14
+     This is the content type of the RTMP message, which in this case
+     is to invoke a remote function call. (which we later see is the
+     connect function).
+
+00000000
+     The source is the NetConnection object used to start this
+     connection.
+
+* Menu:
+
+* AMF Format::
+
+
+File: gnash_ref.info,  Node: AMF Format,  Up: RTMP Protocol
+
+5.1 AMF Format
+==============
+
+The AMF format is used in the LocalConnection, SharedObject,
+NetConnection, and NetStream ActionScript classes. This is a means of
+binary data interchange between Flash movies, or between a Flash player
+and a Flash server.
+
+   Like the RTMP messages, an AMF packet header can be of a variable
+size. The size is either the same as the initial header of the RTMP
+message, or a 1 byte header, which is commonly used for streaming audio
+or video data.
+
+   The body of an AMF packet may look something like this example. The
+spaces have been added for clarity.
+
+
+           02  0007 636f6e6e656374
+
+02
+     This is a single byte header. The value of the first 2 bits is
+     0x3, and the AMF index is also 0x3.
+
+0007
+     This is the length in bytes of the string.
+
+63 6f 6e 6e 65 63 74
+     This is the string. Note that there is no null terminator since
+     the length is specified.
+
+
+File: gnash_ref.info,  Node: Mozilla/Firefox NSAPI Plugin,  Next: Appendix,  
Prev: RTMP Protocol,  Up: Top
+
+6 Mozilla/Firefox NSAPI Plugin
+******************************
+
+The Mozilla SDK has two API layers for plugins. The older layer is
+documented in the Geeko Plugin API Reference
+(http://www.gnu.org/software/gnash/manual/plugin.pdf), and the newer
+layer doesn't appear to be documented. The new API is simpler, and is
+portable across multiple versions of Mozilla or Firefox. The new API is
+just a layer on top of the older one, so this manual still applies.
+
+   Most of the programming of a plugin is filling in real emphasis for
+the standard API functions and methods. Firefox uses these to create
+the plugin, and to send it data.
+
+   When initializing or destroying a plugin, no matter how many
+instances are being used, the C API is used. These functions are
+typically called once for each plugin that is loaded.
+
+* Menu:
+
+* Plugin C API::
+* Plugin C++ API::
+* OpenGL and Threads::
+* Plugin Event Handling::
+
+
+File: gnash_ref.info,  Node: Plugin C API,  Next: Plugin C++ API,  Up: 
Mozilla/Firefox NSAPI Plugin
+
+6.1 Plugin C API
+================
+
+The lower layer is a C based API which is used by Firefox to initialize
+and destroy a plugin. This is so a plugin can be portable across
+multiple systems, since C++ emphasis is not portable between most C++
+compilers. This is where most of the behind the scenes work is done in
+a plugin. For Gnash, the sources this lower layer are in
+_plugin/mozilla-sdk_. They were added to the Gnash source tree so it
+wouldn't be necessary to have the Mozilla development packages
+installed to compile the Gnash plugin.
+
+   This is also the older API used for plugins, so is usually the one
+used if you dig around for plugin examples on the web. These are the
+main functions which have to be implemented in a plugin for it to be
+recognized by the browser, and to be initialized and destroyed.
+
+NS_PluginInitialize
+     This C function gets called once when the plugin is loaded,
+     regardless of how many instantiations there are actually playing
+     movies. So this is where all the one time only initialization
+     stuff goes that is shared by all the threads.
+
+NS_NewPluginInstance
+     This instantiates a new object for the browser. Returning a
+     pointer to the C++ plugin object is what ties the C++ and C
+     emphasis parts of the API together.
+
+NS_DestroyPluginInstance
+     This destroys our instantiated object when the browser is done.
+
+NS_PluginShutdown
+     This is called when a plugin is shut down, so this is where all
+     the one time only shutdown stuff goes.
+
+NPP_GetMIMEDescription
+     This is called to get the MIME types the plugin supports.
+
+NS_PluginGetValue
+     This is used by Firefox to query information from the plugin, like
+     the supported MIME type, the version number, and a description.
+
+
+File: gnash_ref.info,  Node: Plugin C++ API,  Next: OpenGL and Threads,  Prev: 
Plugin C API,  Up: Mozilla/Firefox NSAPI Plugin
+
+6.2 Plugin C++ API
+==================
+
+The higher level layer is the one we are most concerned with. This is
+an instantiation of the _nsPluginInstanceBase_ class, as defined by the
+Mozilla SDK, for our plugin. With this API, a plugin is mostly defining
+the standard entry points for Firefox, and the emphasis that implements
+the glue between the Firefox and our plugin.
+
+   These are called for each instantiation of plugin. If there are
+three Flash movies on a web page, then three instances are created.
+Unfortunately for plugin programmers, these functions may randomly be
+called more than once, so it's good to use initialization flags for
+things that should only be done one per thread. For instance,
+_nsPluginInstance::init()_ and _nsPluginInstance::SetWindow()_ are
+called more than once, so the plugin must protect against actions that
+could be destructive.
+
+nsPluginInstance::nsPluginInstance
+     Create a new plugin object.
+
+nsPluginInstance::init
+     This methods initializes the plugin object, and is called for
+     every movie which gets played. This is where the thread-specific
+     information goes.
+
+nsPluginInstance::SetWindow
+     This sets up the window the plugin is supposed to render into.
+     This calls passes in various information used by the plugin to
+     setup the window. This may get called multiple times by each
+     instantiated object, so it can't do much but window specific setup
+     here. This is where the main emphasis is that sets up the window
+     for the plugin.
+
+nsPluginInstance::NewStream
+     Opens a new incoming data stream, which is the flash movie we want
+     to play. A URL can be pretty ugly, like in this example:
+     
http://www.sickwave.com/swf/navbar/navbar_sw.swf?atfilms=http%3a//www.atm.com/af/home/&shickwave=http%3a//www.sickwave.com&gblst=http%3a//gbst.sickwave.com/gb/gbHome.jsp&known=0
+     
../flash/gui.swf?ip_addr=foobar.com&ip_port=3660&show_cursor=true&path_prefix=../flash/&trapallkeys=true"
+     So this is where we parse the URL to get all the options passed in
+     when invoking the plugin.
+
+nsPluginInstance::Write
+     Read the data stream from Mozilla/Firefox.  For now we read the
+     bytes and write them to a disk file.
+
+nsPluginInstance::WriteReady
+     Return how many bytes we can read into the buffer.
+
+nsPluginInstance::DestroyStream
+     Destroy the data stream we've been reading. For Gnash, when the
+     stream is destroyed means we've grabbed the entire movie. So we
+     signal the thread to start reading and playing the movie.
+
+nsPluginInstance::shut
+     This is where the movie playing specific shutdown emphasis goes.
+
+nsPluginInstance::~nsPluginInstance
+     This destroys our plugin object.
+
+NS_PluginInitialize::initGL
+     This is a Gnash internal function that sets up OpenGL.
+
+NS_PluginInitialize::destroyContext
+     This is a Gnash internal function that destroys a GLX context.
+
+nsPluginInstance::getVersion
+     This returns the version of Mozilla this plugin supports.
+
+nsPluginInstance::GetValue
+     This returns information to the browser about the plugin's name
+     and description.
+
+nsPluginInstance::URLNotify
+
+
+File: gnash_ref.info,  Node: OpenGL and Threads,  Next: Plugin Event Handling, 
 Prev: Plugin C++ API,  Up: Mozilla/Firefox NSAPI Plugin
+
+6.3 OpenGL and Threads
+======================
+
+Neither OpenGL nor X11 has any built-in support for threads. Most
+actions aren't even atomic, so care has to be made to not corrupt any
+internal data. While it is difficult to render OpenGL from multiple
+threads, it can be done with the proper locking. The downside is the
+locking adds a performance hit, since all the threads will have to have
+the access synchronized by using mutexes.
+
+   The X11 context is maintained one per instantiation of the plugin.
+It is necessary to lock access to the X11 context when using threads by
+using _XLockDisplay()_ and _XUnlockDisplay()_. A connection to the X11
+server is opened for every instantiation of the plugin using
+_XOpenDisplay()_.
+
+   The _GLX Context_ is maintained one per instantiation of the plugin
+for a web page. If there are more than one Flash movie, there is more
+than one GLX Context. A GLX context can be created by using
+_glXCreateContext()_, and then later destroyed by using
+_glXDestroyContext()_.  When swapping threads, the context is changed
+using _glXMakeCurrent()_.
+
+   All the emphasis that directly accesses a GLX context or the X11
+display must be wrapped with a mutex.
+
+
+File: gnash_ref.info,  Node: Plugin Event Handling,  Prev: OpenGL and Threads, 
 Up: Mozilla/Firefox NSAPI Plugin
+
+6.4 Plugin Event Handling
+=========================
+
+Firefox on most UNIX systems is a GTK+ application, so it is possible
+to have the plugin hook into the X11 event handling via GLX or GTK.
+Since Firefox uses GTK, so does Gnash. This also allows the addition of
+a right-click mouse menu for controlling the player. The GTK build of
+Gnash offers the best browsing experience as it's more functional than
+the SDL version.
+
+   It is also possible to disable the _GTK_ support so only the older
+_SDL_ support is used. In this case Gnash can't support event handling
+within the browser. This means that when using the SDL of the plugin,
+mouse clicks and keys pressed get ignored. Windows also can't be
+resized, and sometimes they overrun their boundaries as well. To
+disable the GTK support and force SDL to be used anyway, configure with
+_-disable-glext_
+
+
+File: gnash_ref.info,  Node: Appendix,  Next: Authors,  Prev: Mozilla/Firefox 
NSAPI Plugin,  Up: Top
+
+7 Appendix
+**********
+
+* Menu:
+
+* Code Style::
+
+
+File: gnash_ref.info,  Node: Code Style,  Up: Appendix
+
+7.1 Code Style
+==============
+
+I know any discussion of coding styles leads to strong opinions, so
+I'll state simply I follow the GNU Coding Standards
+(http://www.gnu.org/prep/standards/standards.html). Where there is some
+flexibility as to the location of braces, I prefer mine on the end of a
+line when using an _if_, _while_, or _do_ statement. I find this more
+compact style easier to read and parse by eye. I'm also a big fan of
+always using braces around _if_ statements, even if they're one liners.
+
+   Here's my tweaked style settings for _Emacs_, the one true editor to
+rule them all.
+
+
+           (defconst my-style
+               '((c-tab-always-indent   . t)
+                (c-auto-newline           . t)
+                (c-hanging-braces-alist . (
+                                  (brace-list-intro)
+                                  (namespace-open)
+                                  (inline-open)
+                                  (block-open)
+                                  (brace-list-open)
+                                  (brace-list-close)
+                                  (brace-entry-open)
+                                  (brace-else-brace)
+                                  (brace-elseif-brace)
+                                  (class-open after)
+                                  (class-close)
+                                  (defun-open after)
+                                  (defun-close)
+                                  (extern-lang-open)
+                                  (inexpr-class-open)
+                                  (statement-open)
+                                  (substatement-open)
+                                  (inexpr-class-close)))
+                 (c-hanging-colons-alist . ((member-init-intro before)
+                                        (inher-intro)
+                                        (case-label after)
+                                        (label after)
+                                        (access-label after)))
+                 (c-offsets-alist      . (
+                                  (innamespace . 0)
+                                        (case-label  . 2)
+                                  ))
+                 (c-cleanup-list       . (
+                                  (scope-operator)
+                                  (empty-defun-braces)
+                                  (brace-else-brace)
+                                  (brace-elseif-brace)
+                                  (defun-close-semi)
+                                  (list-close-comma)
+                                  )
+                               )
+         ;; no automatic newlines after ';' if following line non-blank or 
inside
+         ;; one-line inline methods
+         (add-to-list 'c-hanging-semi&comma-criteria
+                'c-semi&comma-no-newlines-before-nonblanks)
+         (add-to-list 'c-hanging-semi&comma-criteria
+                'c-semi&comma-no-newlines-for-oneline-inliners)
+     ;    (knr-argdecl-intro . -)
+         (c-echo-syntactic-information-p . t)
+         )
+       "My GNU Programming Style")
+
+   Another coding consideration: comments are good!  Over commenting
+isn't good.  Here is an over commented example:
+
+
+       counter++;              // increment counter
+
+Gnash also uses Doxygen (http://www.doxygen.org) style comments. These
+are processed by Doxygen when building a cross reference of all the
+classes, and is a good way to help push internals documentation from
+the depths of the code into documentation where it can be seen by
+others.
+
+   _Doxygen_ style comments for _C++_ code involves simply using three
+slashes _///_ instead of the standard two slashes _//_ used for C++
+comments. Here's a short comment block for the _XML::cloneNode()_
+method:
+
+
+       /// \brief copy a node
+       ///
+       /// Method; constructs and returns a new XML node of the same type,
+       /// name, value, and attributes as the specified XML object. If deep
+       /// is set to true, all child nodes are recursively cloned, resulting
+       /// in an exact copy of the original object's document tree.
+       XMLNode &
+       XML::cloneNode(XMLNode &newnode, bool deep) {
+       ...
+       }
+
+   The _\brief_ keyword means that the text becomes associated when
+listing all the classes on the generated web pages. The text after the
+blank link becomes the detailed description which appears on the
+generated web page for that class and method.
+
+
+File: gnash_ref.info,  Node: Authors,  Next: GNU Free Documentation License,  
Prev: Appendix,  Up: Top
+
+8 Authors
+*********
+
+Gnash is maintained by Rob Savoye. Other active developers are: Sandro
+Santilli, Bastiaan Jacques, Udo Giacomozzi, Chad Musick, Benjamin
+Wolsey, and Zou Lunkai. Please send all comments and suggestions to
+<address@hidden>. Past and sometimes current developers are Tomas
+Groth and Markus Gothe.
+
+   Gnash was initially derived from GameSWF.  GameSWF is maintained by
+Thatcher Ulrich <address@hidden>.  The following people contributed to
+GameSWF: Mike Shaver, Thierry Berger-Perrin, Ignacio Castan~o, Willem
+Kokke, Vitaly Alexeev, Alexander Streit, and Rob Savoye.
+
+
+File: gnash_ref.info,  Node: GNU Free Documentation License,  Prev: Authors,  
Up: Top
+
+Appendix A GNU Free Documentation License
+*****************************************
+
+* Menu:
+
+* 0. PREAMBLE: 0_ PREAMBLE.
+* 1. APPLICABILITY AND DEFINITIONS: 1_ APPLICABILITY AND DEFINITIONS.
+* 2. VERBATIM COPYING: 2_ VERBATIM COPYING.
+* 3. COPYING IN QUANTITY: 3_ COPYING IN QUANTITY.
+* 4. MODIFICATIONS: 4_ MODIFICATIONS.
+* 5. COMBINING DOCUMENTS: 5_ COMBINING DOCUMENTS.
+* 6. COLLECTIONS OF DOCUMENTS: 6_ COLLECTIONS OF DOCUMENTS.
+* 7. AGGREGATION WITH INDEPENDENT WORKS: 7_ AGGREGATION WITH INDEPENDENT WORKS.
+* 8. TRANSLATION: 8_ TRANSLATION.
+* 9. TERMINATION: 9_ TERMINATION.
+* 10. FUTURE REVISIONS OF THIS LICENSE: 10_ FUTURE REVISIONS OF THIS LICENSE.
+* Addendum::
+
+
+File: gnash_ref.info,  Node: 0_ PREAMBLE,  Next: 1_ APPLICABILITY AND 
DEFINITIONS,  Up: GNU Free Documentation License
+
+A.1 0. PREAMBLE
+===============
+
+The purpose of this License is to make a manual, textbook, or other
+written document "free" in the sense of freedom: to assure everyone the
+effective freedom to copy and redistribute it, with or without
+modifying it, either commercially or non-commercially. Secondarily,
+this License preserves for the author and publisher a way to get credit
+for their work, while not being considered responsible for
+modifications made by others.
+
+   This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense. It
+complements the GNU General Public License, which is a copyleft license
+designed for free software.
+
+   We have designed this License in order to use it for manuals for
+free software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does. But this License is not limited to software manuals; it
+can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book. We recommend this License
+principally for works whose purpose is instruction or reference.
+
+
+File: gnash_ref.info,  Node: 1_ APPLICABILITY AND DEFINITIONS,  Next: 2_ 
VERBATIM COPYING,  Prev: 0_ PREAMBLE,  Up: GNU Free Documentation License
+
+A.2 1. APPLICABILITY AND DEFINITIONS
+====================================
+
+This License applies to any manual or other work that contains a notice
+placed by the copyright holder saying it can be distributed under the
+terms of this License. The "Document", below, refers to any such manual
+or work. Any member of the public is a licensee, and is addressed as
+"you".
+
+   A "Modified Version" of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+   A "Secondary Section" is a named appendix or a front-matter section
+of the Document (*note fdl-document::) that deals exclusively with the
+relationship of the publishers or authors of the Document to the
+Document's overall subject (or to related matters) and contains nothing
+that could fall directly within that overall subject. (For example, if
+the Document is in part a textbook of mathematics, a Secondary Section
+may not explain any mathematics.)  The relationship could be a matter
+of historical connection with the subject or with related matters, or of
+legal, commercial, philosophical, ethical or political position
+regarding them.
+
+   The "Invariant Sections" are certain  Secondary Sections (*note
+fdl-secondary::) whose titles are designated, as being those of
+Invariant Sections, in the notice that says that the Document (*note
+fdl-document::) is released under this License.
+
+   The "Cover Texts" are certain short passages of text that are
+listed, as Front-Cover Texts or Back-Cover Texts, in the notice that
+says that the Document (*note fdl-document::) is released under this
+License.
+
+   A "Transparent" copy of the  Document (*note fdl-document::) means a
+machine-readable copy, represented in a format whose specification is
+available to the general public, whose contents can be viewed and edited
+directly and straightforwardly with generic text editors or (for images
+composed of pixels) generic paint programs or (for drawings) some
+widely available drawing editor, and that is suitable for input to text
+formatters or for automatic translation to a variety of formats
+suitable for input to text formatters. A copy made in an otherwise
+Transparent file format whose markup has been designed to thwart or
+discourage subsequent modification by readers is not Transparent.  A
+copy that is not "Transparent" is called "Opaque".
+
+   Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input format, SGML or
+XML using a publicly available DTD, and standard-conforming simple HTML
+designed for human modification. Opaque formats include PostScript, PDF,
+proprietary formats that can be read and edited only by proprietary
+word processors, SGML or XML for which the DTD and/or processing tools
+are not generally available, and the machine-generated HTML produced by
+some word processors for output purposes only.
+
+   The "Title Page" means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page. For works in formats
+which do not have any title page as such, "Title Page" means the text
+near the most prominent appearance of the work's title, preceding the
+beginning of the body of the text.
+
+
+File: gnash_ref.info,  Node: 2_ VERBATIM COPYING,  Next: 3_ COPYING IN 
QUANTITY,  Prev: 1_ APPLICABILITY AND DEFINITIONS,  Up: GNU Free Documentation 
License
+
+A.3 2. VERBATIM COPYING
+=======================
+
+You may copy and distribute the Document (*note fdl-document::) in any
+medium, either commercially or noncommercially, provided that this
+License, the copyright notices, and the license notice saying this
+License applies to the Document are reproduced in all copies, and that
+you add no other conditions whatsoever to those of this License. You
+may not use technical measures to obstruct or control the reading or
+further copying of the copies you make or distribute. However, you may
+accept compensation in exchange for copies. If you distribute a large
+enough number of copies you must also follow the conditions in section
+3 (*note 3_ COPYING IN QUANTITY::).
+
+   You may also lend copies, under the same conditions stated above,
+and you may publicly display copies.
+
+
+File: gnash_ref.info,  Node: 3_ COPYING IN QUANTITY,  Next: 4_ MODIFICATIONS,  
Prev: 2_ VERBATIM COPYING,  Up: GNU Free Documentation License
+
+A.4 3. COPYING IN QUANTITY
+==========================
+
+If you publish printed copies of the Document (*note fdl-document::)
+numbering more than 100, and the Document's license notice requires
+Cover Texts (*note fdl-cover-texts::), you must enclose the copies in
+covers that carry, clearly and legibly, all these Cover Texts:
+Front-Cover Texts on the front cover, and Back-Cover Texts on the back
+cover. Both covers must also clearly and legibly identify you as the
+publisher of these copies. The front cover must present the full title
+with all words of the title equally prominent and visible. You may add
+other material on the covers in addition. Copying with changes limited
+to the covers, as long as they preserve the title of the Document
+(*note fdl-document::) and satisfy these conditions, can be treated as
+verbatim copying in other respects.
+
+   If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+   If you publish or distribute Opaque (*note fdl-transparent::) copies
+of the Document (*note fdl-document::) numbering more than 100, you
+must either include a machine-readable Transparent (*note
+fdl-transparent::) copy along with each Opaque copy, or state in or
+with each Opaque copy a publicly-accessible computer-network location
+containing a complete Transparent copy of the Document, free of added
+material, which the general network-using public has access to download
+anonymously at no charge using public-standard network protocols. If
+you use the latter option, you must take reasonably prudent steps, when
+you begin distribution of Opaque copies in quantity, to ensure that
+this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+   It is requested, but not required, that you contact the authors of
+the Document (*note fdl-document::) well before redistributing any
+large number of copies, to give them a chance to provide you with an
+updated version of the Document.
+
+
+File: gnash_ref.info,  Node: 4_ MODIFICATIONS,  Next: 5_ COMBINING DOCUMENTS,  
Prev: 3_ COPYING IN QUANTITY,  Up: GNU Free Documentation License
+
+A.5 4. MODIFICATIONS
+====================
+
+You may copy and distribute a Modified Version (*note fdl-modified::)
+of the Document (*note fdl-document::) under the conditions of sections
+2 (*note 2_ VERBATIM COPYING::) and 3 (*note 3_ COPYING IN QUANTITY::)
+above, provided that you release the Modified Version under precisely
+this License, with the Modified Version filling the role of the
+Document, thus licensing distribution and modification of the Modified
+Version to whoever possesses a copy of it. In addition, you must do
+these things in the Modified Version:
+
+   * *A. * Use in the Title Page (*note fdl-title-page::) (and on the
+     covers, if any) a title distinct from that of the Document (*note
+     fdl-document::), and from those of previous versions (which
+     should, if there were any, be listed in the History section of the
+     Document). You may use the same title as a previous version if the
+     original publisher of that version gives permission.
+
+   * *B. * List on the Title Page (*note fdl-title-page::), as authors,
+     one or more persons or entities responsible for authorship of the
+     modifications in the Modified Version (*note fdl-modified::),
+     together with at least five of the principal authors of the
+     Document (*note fdl-document::) (all of its principal authors, if
+     it has less than five).
+
+   * *C. * State on the Title Page (*note fdl-title-page::) the name of
+     the publisher of the Modified Version (*note fdl-modified::), as
+     the publisher.
+
+   * *D. * Preserve all the copyright notices of the Document (*note
+     fdl-document::).
+
+   * *E. * Add an appropriate copyright notice for your modifications
+     adjacent to the other copyright notices.
+
+   * *F. * Include, immediately after the copyright notices, a license
+     notice giving the public permission to use the Modified Version
+     (*note fdl-modified::) under the terms of this License, in the
+     form shown in the Addendum below.
+
+   * *G. * Preserve in that license notice the full lists of  Invariant
+     Sections (*note fdl-invariant::) and required Cover Texts (*note
+     fdl-cover-texts::) given in the Document's (*note fdl-document::)
+     license notice.
+
+   * *H. * Include an unaltered copy of this License.
+
+   * *I. * Preserve the section entitled "History", and its title, and
+     add to it an item stating at least the title, year, new authors,
+     and publisher of the Modified Version  (*note fdl-modified::)as
+     given on the Title Page (*note fdl-title-page::).  If there is no
+     section entitled "History" in the Document (*note fdl-document::),
+     create one stating the title, year, authors, and publisher of the
+     Document as given on its Title Page, then add an item describing
+     the Modified Version as stated in the previous sentence.
+
+   * *J. * Preserve the network location, if any, given in the Document
+     (*note fdl-document::) for public access to a Transparent (*note
+     fdl-transparent::) copy of the Document, and likewise the network
+     locations given in the Document for previous versions it was based
+     on. These may be placed in the "History" section.  You may omit a
+     network location for a work that was published at least four years
+     before the Document itself, or if the original publisher of the
+     version it refers to gives permission.
+
+   * *K. * In any section entitled "Acknowledgements" or "Dedications",
+     preserve the section's title, and preserve in the section all the
+     substance and tone of each of the contributor acknowledgements
+     and/or dedications given therein.
+
+   * *L. * Preserve all the Invariant Sections (*note fdl-invariant::)
+     of the Document (*note fdl-document::), unaltered in their text
+     and in their titles.  Section numbers or the equivalent are not
+     considered part of the section titles.
+
+   * *M. * Delete any section entitled "Endorsements". Such a section
+     may not be included in the Modified Version (*note fdl-modified::).
+
+   * *N. * Do not retitle any existing section as "Endorsements" or to
+     conflict in title with any Invariant Section (*note
+     fdl-invariant::).
+
+   If the Modified Version (*note fdl-modified::) includes new
+front-matter sections or appendices that qualify as Secondary Sections
+(*note fdl-secondary::) and contain no material copied from the
+Document, you may at your option designate some or all of these
+sections as invariant. To do this, add their titles to the list of
+Invariant Sections (*note fdl-invariant::) in the Modified Version's
+license notice.  These titles must be distinct from any other section
+titles.
+
+   You may add a section entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version (*note
+fdl-modified::) by various parties-for example, statements of peer
+review or that the text has been approved by an organization as the
+authoritative definition of a standard.
+
+   You may add a passage of up to five words as a Front-Cover Text
+(*note fdl-cover-texts::), and a passage of up to 25 words as a
+Back-Cover Text (*note fdl-cover-texts::), to the end of the list of
+Cover Texts (*note fdl-cover-texts::) in the Modified Version (*note
+fdl-modified::).  Only one passage of Front-Cover Text and one of
+Back-Cover Text may be added by (or through arrangements made by) any
+one entity. If the Document (*note fdl-document::) already includes a
+cover text for the same cover, previously added by you or by
+arrangement made by the same entity you are acting on behalf of, you
+may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+   The author(s) and publisher(s) of the Document (*note
+fdl-document::) do not by this License give permission to use their
+names for publicity for or to assert or imply endorsement of any
+Modified Version  (*note fdl-modified::).
+
+
+File: gnash_ref.info,  Node: 5_ COMBINING DOCUMENTS,  Next: 6_ COLLECTIONS OF 
DOCUMENTS,  Prev: 4_ MODIFICATIONS,  Up: GNU Free Documentation License
+
+A.6 5. COMBINING DOCUMENTS
+==========================
+
+You may combine the Document (*note fdl-document::) with other
+documents released under this License, under the terms defined in
+section 4 (*note 4_ MODIFICATIONS::) above for modified versions,
+provided that you include in the combination all of the Invariant
+Sections (*note fdl-invariant::) of all of the original documents,
+unmodified, and list them all as Invariant Sections of your combined
+work in its license notice.
+
+   The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections (*note fdl-invariant::) may be
+replaced with a single copy. If there are multiple Invariant Sections
+with the same name but different contents, make the title of each such
+section unique by adding at the end of it, in parentheses, the name of
+the original author or publisher of that section if known, or else a
+unique number. Make the same adjustment to the section titles in the
+list of Invariant Sections in the license notice of the combined work.
+
+   In the combination, you must combine any sections entitled "History"
+in the various original documents, forming one section entitled
+"History"; likewise combine any sections entitled "Acknowledgements",
+and any sections entitled "Dedications".  You must delete all sections
+entitled "Endorsements."
+
+
+File: gnash_ref.info,  Node: 6_ COLLECTIONS OF DOCUMENTS,  Next: 7_ 
AGGREGATION WITH INDEPENDENT WORKS,  Prev: 5_ COMBINING DOCUMENTS,  Up: GNU 
Free Documentation License
+
+A.7 6. COLLECTIONS OF DOCUMENTS
+===============================
+
+You may make a collection consisting of the Document (*note
+fdl-document::) and other documents released under this License, and
+replace the individual copies of this License in the various documents
+with a single copy that is included in the collection, provided that
+you follow the rules of this License for verbatim copying of each of the
+documents in all other respects.
+
+   You may extract a single document from such a collection, and
+distribute it individually under this License, provided you insert a
+copy of this License into the extracted document, and follow this
+License in all other respects regarding verbatim copying of that
+document.
+
+
+File: gnash_ref.info,  Node: 7_ AGGREGATION WITH INDEPENDENT WORKS,  Next: 8_ 
TRANSLATION,  Prev: 6_ COLLECTIONS OF DOCUMENTS,  Up: GNU Free Documentation 
License
+
+A.8 7. AGGREGATION WITH INDEPENDENT WORKS
+=========================================
+
+A compilation of the Document (*note fdl-document::) or its derivatives
+with other separate and independent documents or works, in or on a
+volume of a storage or distribution medium, does not as a whole count
+as a Modified Version (*note fdl-modified::) of the Document, provided
+no compilation copyright is claimed for the compilation.  Such a
+compilation is called an "aggregate", and this License does not apply
+to the other self-contained works thus compiled with the Document , on
+account of their being thus compiled, if they are not themselves
+derivative works of the Document.  If the Cover Text (*note
+fdl-cover-texts::) requirement of section 3 (*note 3_ COPYING IN
+QUANTITY::) is applicable to these copies of the Document, then if the
+Document is less than one quarter of the entire aggregate, the
+Document's Cover Texts may be placed on covers that surround only the
+Document within the aggregate. Otherwise they must appear on covers
+around the whole aggregate.
+
+
+File: gnash_ref.info,  Node: 8_ TRANSLATION,  Next: 9_ TERMINATION,  Prev: 7_ 
AGGREGATION WITH INDEPENDENT WORKS,  Up: GNU Free Documentation License
+
+A.9 8. TRANSLATION
+==================
+
+Translation is considered a kind of modification, so you may distribute
+translations of the Document (*note fdl-document::) under the terms of
+section 4 (*note 4_ MODIFICATIONS::). Replacing  Invariant Sections
+(*note fdl-invariant::) with translations requires special permission
+from their copyright holders, but you may include translations of some
+or all Invariant Sections in addition to the original versions of these
+Invariant Sections. You may include a translation of this License
+provided that you also include the original English version of this
+License. In case of a disagreement between the translation and the
+original English version of this License, the original English version
+will prevail.
+
+
+File: gnash_ref.info,  Node: 9_ TERMINATION,  Next: 10_ FUTURE REVISIONS OF 
THIS LICENSE,  Prev: 8_ TRANSLATION,  Up: GNU Free Documentation License
+
+A.10 9. TERMINATION
+===================
+
+You may not copy, modify, sublicense, or distribute the Document (*note
+fdl-document::) except as expressly provided for under this License.
+Any other attempt to copy, modify, sublicense or distribute the
+Document is void, and will automatically terminate your rights under
+this License. However, parties who have received copies, or rights,
+from you under this License will not have their licenses terminated so
+long as such parties remain in full compliance.
+
+
+File: gnash_ref.info,  Node: 10_ FUTURE REVISIONS OF THIS LICENSE,  Next: 
Addendum,  Prev: 9_ TERMINATION,  Up: GNU Free Documentation License
+
+A.11 10. FUTURE REVISIONS OF THIS LICENSE
+=========================================
+
+The Free Software Foundation (http://www.gnu.org/fsf/fsf.html) may
+publish new, revised versions of the GNU Free Documentation License
+from time to time. Such new versions will be similar in spirit to the
+present version, but may differ in detail to address new problems or
+concerns. See http://www.gnu.org/copyleft/
+(http://www.gnu.org/copyleft).
+
+   Each version of the License is given a distinguishing version
+number. If the Document (*note fdl-document::) specifies that a
+particular numbered version of this License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that specified version or of any later version
+that has been published (not as a draft) by the Free Software
+Foundation. If the Document does not specify a version number of this
+License, you may choose any version ever published (not as a draft) by
+the Free Software Foundation.
+
+
+File: gnash_ref.info,  Node: Addendum,  Prev: 10_ FUTURE REVISIONS OF THIS 
LICENSE,  Up: GNU Free Documentation License
+
+A.12 Addendum
+=============
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and license
+notices just after the title page:
+
+     Copyright 2008, Free Software Foundation.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.1 or any later version published by the Free Software
+     Foundation; with noInvariant Sections (*note fdl-invariant::),
+     with no Front-Cover Texts (*note fdl-cover-texts::), and with no
+     Back-Cover Texts (*note fdl-cover-texts::). A copy of the license
+     is included in the section entitled "GNU Free Documentation
+     License".
+
+   If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License
+(http://www.gnu.org/copyleft/gpl.html), to permit their use in free
+software.
+
+
+
+Tag Table:
+Node: Top168
+Node: Introduction1821
+Node: Audience2622
+Node: What Is Supported ?2950
+Node: Building from Source5482
+Node: Overview5862
+Node: Getting The Source6907
+Node: Releases7113
+Node: CVS Access7481
+Node: Code Dependencies8193
+Ref: Code Dependency Table8890
+Node: Testing Dependencies34405
+Ref: Testing Dependency Table34713
+Node: Documentation Dependencies38637
+Ref: Documentation Dependency Table38906
+Node: Configuring Gnash47974
+Node: Features50296
+Ref: Configuration Options - Features50896
+Node: Specifying Custom Paths57226
+Ref: Custom Path Options57701
+Node: Compiling the Code67371
+Node: Creating the Documentation68312
+Node: Running the Tests69648
+Node: Using DejaGnu70093
+Node: Increasing Verbosity70456
+Node: Running Some Tests70992
+Node: Running The Tests Manually71812
+Node: Movie tests72474
+Node: ActionScript Unit Tests72828
+Node: Installation73145
+Node: Libraries74421
+Node: Executables75308
+Node: Documentation76178
+Node: Cross Configuring76933
+Node: Software Internals80008
+Node: A Tour of Gnash80279
+Node: The Libraries80846
+Node: libgnashbase81149
+Node: libgnashgeo81573
+Node: libgnashgui81788
+Node: libgnashserver82057
+Node: libgnashasobjs82428
+Node: libgnashamf82664
+Node: libgnashbackend83087
+Node: libgnashplugin83402
+Node: libklashpart83608
+Node: The Applications83778
+Node: The Standalone Player84145
+Node: Gprocesser84443
+Node: SOLdumper84837
+Node: Dumpshm85104
+Node: The Plugin85323
+Node: Current Status85801
+Node: GUI Support86359
+Node: Mozplugger88040
+Node: Klash89931
+Node: The Debug Logging System90481
+Node: Logging System C API92042
+Node: Logging System C++ API94246
+Node: Sound handling in Gnash96087
+Node: Sound types96918
+Node: Sound parsing97455
+Node: Sound playback98023
+Node: The SDL sound backend98553
+Node: The Gstreamer backend99872
+Node: Future audio backends100888
+Node: Detailed description of the Gstreamer backend101378
+Node: Testing103629
+Node: Testing Tools104100
+Node: Test Cases104932
+Node: Writing ActionScript Tests105511
+Node: Writing Ming-based self-contained SWF tests108014
+Node: Using Ming-based test generators facilities109171
+Node: Writing self-contained SWF tests with other compilers111531
+Node: Writing Test Runners114624
+Node: Using the generic test runner for self-contained SWF tests116373
+Node: Writing Movie testers118462
+Node: Adding New ActionScript Class120202
+Node: Prototype121382
+Node: Declaration122799
+Node: Instantiation123064
+Node: Methods123691
+Node: Accessing Arguments124082
+Node: Returning a Value to ActionScript124478
+Node: Additional fn_call Members124857
+Node: Dynamic Properties125711
+Node: The as_value Object Type127216
+Node: Data Types127654
+Node: Determining the Type127975
+Node: Fetching the Value128507
+Node: Setting the Value and Type128997
+Node: Further Reading129591
+Node: Object ActionScript Class130006
+Node: The Methods of the Class130346
+Node: The Properties of the Object Class130685
+Node: Object Class Conformance131000
+Node: Gnash Extensions132539
+Node: Creating A New Extension134813
+Node: Crafting an Extension136229
+Node: Debugging An Extension140533
+Node: Included Extensions142225
+Node: Gtk Extension142669
+Node: File I/O Extension143656
+Node: MySQL Extension144842
+Node: RTMP Protocol145693
+Node: AMF Format155489
+Node: Mozilla/Firefox NSAPI Plugin156465
+Node: Plugin C API157483
+Node: Plugin C++ API159342
+Node: OpenGL and Threads162606
+Node: Plugin Event Handling163934
+Node: Appendix164903
+Node: Code Style165055
+Node: Authors168885
+Node: GNU Free Documentation License169581
+Node: 0_ PREAMBLE170344
+Node: 1_ APPLICABILITY AND DEFINITIONS171650
+Ref: fdl-document171875
+Ref: fdl-modified172166
+Ref: fdl-secondary172353
+Ref: fdl-invariant172998
+Ref: fdl-cover-texts173247
+Ref: fdl-transparent173460
+Ref: fdl-title-page174750
+Node: 2_ VERBATIM COPYING175139
+Node: 3_ COPYING IN QUANTITY176119
+Node: 4_ MODIFICATIONS178476
+Node: 5_ COMBINING DOCUMENTS184536
+Node: 6_ COLLECTIONS OF DOCUMENTS186033
+Node: 7_ AGGREGATION WITH INDEPENDENT WORKS186924
+Node: 8_ TRANSLATION188152
+Node: 9_ TERMINATION189055
+Node: 10_ FUTURE REVISIONS OF THIS LICENSE189710
+Node: Addendum190850
+
+End Tag Table
+
+
+Local Variables:
+coding: US-ASCII
+End:

Index: doc/C/preformatted/gprocessor.1.in
===================================================================
RCS file: doc/C/preformatted/gprocessor.1.in
diff -N doc/C/preformatted/gprocessor.1.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/preformatted/gprocessor.1.in  3 Mar 2008 23:46:45 -0000       1.1.2.2
@@ -0,0 +1,47 @@
+.\" -*- coding: us-ascii -*-
+.if \n(.g .ds T< \\FC
+.if \n(.g .ds T> \\F[\n[.fam]]
+.de URL
+\\$2 \(la\\$1\(ra\\$3
+..
+.if \n(.g .mso www.tmac
+.TH gprocessor 1 "13 February 2008"  
+.SH NAME
+gprocessor \- Gnash SWF Processor
+.SH Synopsis
+.nf
+
+gprocessor (options)... (file)...
+.fi
+.SH DESCRIPTION
+Gprocessor is an debugging tool for SWF files, that is a companion to
+Gnash. This is most often used for debugging and running testcases,
+as this tool is equivalant to running Gnash with no graphic
+output. This tool is primarily used by Gnash developers, or anyone
+that wishes to run the Gnash test cases.
+.TP 
+-h
+Print usage info.
+.TP 
+-w
+Write a .gsc file with preprocessed info, for each input file.
+.TP 
+-vp
+Be verbose about movie parsing.
+.TP 
+-va
+Be verbose about ActionScript.
+.TP 
+-d [ms]
+Milliseconds delay between advances (0 by default). If '-1'
+the delay will be computed from the FPS.
+.TP 
+-f [frames]
+Allow the given number of frame advancements. Keep advancing
+untill any other stop condition is encountered if set to 0
+(default).
+.TP 
+-r [times]
+Allow the given number of complete runs. Keep looping
+undefinitely if set to 0. Default is 1 (end as soon as the
+last frame is reached).

Index: doc/C/preformatted/soldumper.1.in
===================================================================
RCS file: doc/C/preformatted/soldumper.1.in
diff -N doc/C/preformatted/soldumper.1.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/preformatted/soldumper.1.in   3 Mar 2008 23:46:46 -0000       1.1.2.2
@@ -0,0 +1,31 @@
+.\" -*- coding: us-ascii -*-
+.if \n(.g .ds T< \\FC
+.if \n(.g .ds T> \\F[\n[.fam]]
+.de URL
+\\$2 \(la\\$1\(ra\\$3
+..
+.if \n(.g .mso www.tmac
+.TH soldumper 1 "13 February 2008"  
+.SH NAME
+soldumper \- Gnash Local Shared Object file Dumper
+.SH Synopsis
+.nf
+
+soldumper (options)... (file)...
+.fi
+.SH DESCRIPTION
+Dump information about the .sol files used by the SharedObject
+ActionScript class. These files are comprised of a header, and a
+collection of SWF AMF Objects, normally not viewable by the user.
+.TP 
+-h
+Print usage info.
+.TP 
+-l
+List all the .sol files in the default path.
+.TP 
+-f
+Ignore the global setting, use the current directory for files.
+.TP 
+-v
+Verbose output.

Index: doc/C/refmanual/amf.xml
===================================================================
RCS file: doc/C/refmanual/amf.xml
diff -N doc/C/refmanual/amf.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/amf.xml     3 Mar 2008 23:46:46 -0000       1.1.2.2
@@ -0,0 +1,132 @@
+<sect1 id="amf">
+  <title>AMF Format</title>
+  
+  <para>
+    The AMF format is used in the LocalConnection, SharedObject,
+    NetConnection, and NetStream ActionScript classes. This is a means
+    of binary data interchange between Flash movies, or between a
+    Flash player and a Flash server.
+  </para>
+  
+  <para>
+    Like the RTMP messages, an AMF packet header can be of a variable
+    size. The size is either the same as the initial header of the
+    RTMP message, or a 1 byte header, which is commonly used for
+    streaming audio or video data.
+  </para>
+
+  <para>
+    The body of an AMF packet may look something like this
+    example. The spaces have been added for clarity.
+    
+    <screen>
+      02  0007 636f6e6e656374
+    </screen>
+
+    <variablelist>
+      <varlistentry>
+       <term>02</term>
+       <listitem>
+         <para>
+           This is a single byte header. The value of the first 2
+           bits is 0x3, and the AMF index is also 0x3.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>0007</term>
+       <listitem>
+         <para>
+           This is the length in bytes of the string.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>63 6f 6e 6e 65 63 74</term>
+       <listitem>
+         <para>
+           This is the string. Note that there is no null terminator
+           since the length is specified.
+         </para>
+       </listitem>
+      </varlistentry>
+
+    </variablelist>
+
+  </para>
+
+<!--
+  <para>
+    These data types are used to exchange data between Flash
+    movies. The data part of a message is one of the ActionScript data
+    types.
+
+    <variablelist>
+      <varlistentry>
+       <term>Byte</term>
+       <listitem>
+         <para>
+           A single byte.
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>Int</term>
+       <listitem>
+         <para>
+           Two bytes (a short).
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>MediumInt</term>
+       <listitem>
+         <para>
+           Three bytes.
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>Long</term>
+       <listitem>
+         <para>
+           Four bytes (an int).
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>Double</term>
+       <listitem>
+         <para>
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>UTF8</term>
+       <listitem>
+         <para>
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term></term>
+       <listitem>
+         <para>
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>LongUTF8</term>
+       <listitem>
+         <para>
+         </para>
+       </listitem>
+      </varlistentry>
+    </variablelist>    
+  </para>
+-->
+
+</sect1>
+  

Index: doc/C/refmanual/as_value.xml
===================================================================
RCS file: doc/C/refmanual/as_value.xml
diff -N doc/C/refmanual/as_value.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/as_value.xml        3 Mar 2008 23:46:46 -0000       1.2.2.2
@@ -0,0 +1,75 @@
+<sect1 id="as_value">
+  <title>The <emphasis>as_value</emphasis> Object Type</title>
+  <para>
+    The <emphasis>as_value</emphasis> class is used throughout
+    the interpreter to create generic objects to hold data.
+  </para>
+  
+  <sect2 id="data_types">
+    <title>Data Types</title>
+    <para>
+      The following data types are supported:
+      <emphasis>NULLTYPE</emphasis>,
+      <emphasis>BOOLEAN</emphasis>, <emphasis>STRING</emphasis>,
+      <emphasis>NUMBER</emphasis>, <emphasis>OBJECT</emphasis>,
+      <emphasis>AS_FUNCTION</emphasis>, and 
+      <emphasis>MOVIECLIP</emphasis> (sprite).  
+      The type <emphasis>C_FUNCTION</emphasis> is being deprecated.
+    </para>
+  </sect2>
+  
+  <sect2 id="is_methods">
+    <title>Determining the Type</title>
+    <para>
+      Several methods allow you to determine if a value stored in
+      <emphasis>as_value</emphasis> is of a specific type.  These
+      follow the form of <emphasis>is_TYPE</emphasis>, for example
+      <emphasis>is_as_function()</emphasis> and 
+      <emphasis>is_number()</emphasis>.  In general, the type names
+      match the <link linkend="data_types">data types</link> listed
+      above, with the exception of the type <emphasis>MOVIECLIP</emphasis>
+      which has a method <emphasis>is_sprite()</emphasis>.
+    </para>
+  </sect2>
+  
+  <sect2 id="to_methods">
+    <title>Fetching the Value</title>
+    <para>
+      Another set of methods will return a representation of
+      the value as a particular type.  They follow the
+      <emphasis>to_TYPE</emphasis> naming convention.  Examples
+      are <emphasis>to_number()</emphasis> and
+      <emphasis>to_bool()</emphasis>.  The type names are as 
+      <link linkend="data_types">listed</link> earlier, except for
+      <emphasis>MOVIECLIP</emphasis>, which uses 
+      <emphasis>to_sprite()</emphasis>.
+    </para>
+  </sect2>
+  
+  <sect2 id="set_methods">
+    <title>Setting the Value and Type</title>
+    <para>
+      Finally, there is the <emphasis>set_TYPE</emphasis> series
+      of methods.  They change the type to the type specified in
+      the method name, and set the value to the one given as an
+      argument.  It is also possible to accomplish the same thing
+      with the <emphasis>=</emphasis> operator.  Again, type names
+      match those <link linkend="data_types">named earlier</link>,
+      except in the case of <emphasis>MOVIECLASS</emphasis>.  Its
+      method is called <emphasis>set_sprite()</emphasis>.
+    </para>
+  </sect2>
+  
+  <sect2 id="further_as_value_reading">
+    <title>Further Reading</title>
+    <para>
+      Please refer to <emphasis>as_value.h</emphasis> or the
+      Doxygen documentation (see 'Processing The Documentation'
+      in the &appname; manual for instructions on generating
+      documents with Doxygen) for more information
+      about which methods are available for the
+      <emphasis>as_value</emphasis> object.
+    </para>
+  </sect2>
+  
+</sect1>

Index: doc/C/refmanual/building.xml
===================================================================
RCS file: doc/C/refmanual/building.xml
diff -N doc/C/refmanual/building.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/building.xml        3 Mar 2008 23:46:46 -0000       1.4.2.2
@@ -0,0 +1,294 @@
+<chapter id="build">
+  <title>Building from Source</title>
+
+  <sect1 id="building_overview">
+    <title>Overview</title>
+    <para>
+      The typical process of building from source will involve 
+      <link linkend="gettingsource">getting the source</link>,
+      <link linkend="dependencies">build dependencies</link>,
+      <link linkend="configure">configuration</link>, 
+      <link linkend="compile">compilation</link>,
+      <link linkend="runtests">testing</link>, and
+      <link linkend="install">installation</link>.
+      A simplified overview of the process would be:
+      <programlisting>
+        ./autogen.sh
+        ./configure 
+        make
+        make check
+        make install
+      </programlisting>
+    </para>
+
+    <para>
+      If you are compiling with GCC you will probably need to use a machine
+      with at least 128 megabytes of physical RAM; 64MB is not enough for a
+      couple of the files, even with swap enabled and optimisation turned off.
+    </para>
+    <para>
+      At present the Gnash source is about 30 MB extracted and configured
+      and requires a total of about 125 megabytes to compile it.
+    </para>
+    <para>
+      Continue reading for detailed step-by-step instructions 
+      of the entire procedure.
+    </para>  
+
+  </sect1>
+
+  <sect1 id="gettingsource">
+    <title>Getting The Source</title>
+
+    <sect2 id="sourcereleases">
+      <title>Releases</title>
+      <para>
+       Tarballs of official releases can be found in the download area
+       of the project's GNU Savannah page at
+       <ulink type="http"
+              url="http://savannah.gnu.org/projects/gnash";>
+                   http://savannah.gnu.org/projects/gnash
+       </ulink> 
+       or under
+       <ulink type="http"
+              url="http://ftp.gnu.org/gnu/gnash";>
+                   http://ftp.gnu.org/gnu/gnash
+       </ulink> 
+      </para>
+    </sect2>
+
+    <sect2 id="sourcecvs">
+      <title>CVS Access</title>
+      <para>
+       The latest Gnash development sources are available via anonymous CVS.
+       Use the following commands to check them out
+       (just hit return when you are prompted for the password):
+       <programlisting>
+         export CVS_RSH=ssh
+         cvs -z3 -d:pserver:address@hidden:/sources/gnash co gnash
+       </programlisting>
+       You will then be able to update your copy from the repository using
+       <programlisting>
+         cd gnash
+         cvs update -d
+       </programlisting>
+      </para>
+      <para>
+       If you only have access to the internet via a web proxy,
+       you will find daily source snapshots of the latest CVS tree in
+       <ulink type="http"
+              url="http://www.gnashdev.org/dev_snapshots/";>
+                   http://www.gnashdev.org/dev_snapshots
+       </ulink> 
+      </para>
+    </sect2>
+  </sect1>
+
+  &codedependencies;
+  &testdependencies;
+  &docdependencies;
+
+  &configuration;
+
+  <para>
+    Once you have &app; configured, you are ready to build the code.  &app; is 
built using
+    <emphasis>GNU make</emphasis>.
+  </para>
+  
+  <sect1 id="compile">
+    <title>Compiling the Code</title>
+    
+    <para>
+      The most basic way to compile code is simply:
+      <programlisting>
+       make
+      </programlisting>
+      If the compilation ends with an error, check the output of 
+      <emphasis>configure</emphasis> and ensure that you are not missing 
+      any required prerequisites.  The output of <command>make</command> can 
be verbose; you may wish to pipe the output to a file.
+    </para>
+    
+    <para>
+      The variables used by <command>make</command> can be redefined when
+      the program is invoked, if you desire it.   The most interesting flags
+      are <emphasis>CFLAGS</emphasis> and <emphasis>CXXFLAGS</emphasis>,
+      which are often used to enable debugging or turn of optimization.
+      The default value for both of these variables is
+      <emphasis>-O2 -g</emphasis>.  A list of influential 
+      environment variables can be seen in the configuration help:
+    </para>
+    <programlisting>./configure --help</programlisting>
+    <para>
+      In the following example, debugging is enabled and optimization is
+      disabled:
+    </para>
+    <programlisting>make CFLAGS=-g CXXFLAGS=-g</programlisting>
+  </sect1>
+  
+  <sect1 id="processdoc">
+    <title>Creating the Documentation</title>
+    
+    <para>
+      By default, documentation is not built when you
+      <link linkend="install">install</link> &app;.  This is because
+      there are a number of <link linkend="docdepend">dependencies 
+      for the documentation</link>.  Documentation is built when it
+      is specified with a specific target in the generated 
+      <command>Makefile</command> in the <filename>doc/C</filename>
+      sub-directory.  If you type <command>make install</command> in
+      this directory, all documents will be built.
+    </para>
+    
+    <para>
+      You must specify a target output format when you wish to create
+      documentation.  The available output formats are: 
<command>html</command>,
+      <command>pdf</command>, <command>info</command>, 
+      <command>man</command>, and <command>alldocs</command>.  
+      It is also possible to output <command>GNOME help</command> if
+      the <link linkend="configfeatures">configure option</link>
+      <option>--enable-ghelp</option> was used.  
+      The <command>alldocs</command> target will build all output formats
+      except <emphasis>GNOME help</emphasis>.
+      For example, to create HTML output, type:
+      <programlisting>
+       make html
+      </programlisting>
+    </para>
+    
+    <para>
+      &app; also uses <ulink 
url="http://www.stack.nl/~dimitri/doxygen/index.html";
+      type="http">Doxygen</ulink> to produce <emphasis>HTML</emphasis>
+      documentation of &app; internals.  You must have Doxygen installed
+      to produce this documentation, which is built from the
+      <filename>doc</filename> directory with the command (documents
+      will be placed in the subdirectory <filename>apidoc/html</filename>):
+      <programlisting>
+       make apidoc
+      </programlisting>
+    </para>
+  </sect1>
+  
+  <sect1 id="runtests">
+    <title>Running the Tests</title>
+    
+    <para>
+      Before beginning the potentially lengthy install, it is wise to
+      test the installation.  If a test fails, please report it by
+      following the <link linkend="bugreport">instructions for
+      reporting a bug</link>. 
+    </para>
+    
+    <sect2 id="dejagnu">
+      <title>Using DejaGnu</title>
+      
+      <para>
+       <!--
+           TODO: Add a section on running tests without DejaGnu.
+       -->
+       The easiest way to run &app;'s test suite is to install
+       <emphasis><ulink type="http" 
+                        
url="http://www.gnu.org/software/dejagnu";>DejaGnu</ulink></emphasis>.
+       After installing DejaGnu, run:
+       <programlisting>
+         make check
+       </programlisting>
+      </para>
+      
+      <sect4 id="testing_verbosity">
+       <title>Increasing Verbosity</title>
+       <para>
+         If you encounter a problem with a test, increasing the
+         verbosity may make the issue easier to spot.
+         Additional details are visible when 
+         <emphasis>RUNTESTFLAGS</emphasis> are used to add the 
+         <emphasis>verbose</emphasis> and <emphasis>all</emphasis> options.
+         The <option>verbose</option> option prints more information about the 
testing process, while
+         the <option>all</option> option includes details on passing tests.  
+         <programlisting>
+           make check RUNTESTFLAGS="-v -a"
+         </programlisting>
+       </para> 
+      </sect4>
+      
+      <sect4 id="running_some_tests">
+       <title>Running Some Tests</title>
+       <para>
+         It is possible to run just a single test, or 
+         a subdirectory of tests, by specifying the directory or 
+         compiled test file.
+       </para>
+       <para>
+         Some tests rely on <emphasis>testsuite/Dejagnu.swf</emphasis>,
+         which in turn relies on <emphasis>Ming</emphasis>.
+         This file is created when you run <command>make check</command> for 
the entire
+         testsuite, and can also be created on demand:
+         <programlisting>
+           make -C testsuite Dejagnu.swf 
+         </programlisting>
+       </para>
+       <para>
+         In this example, the <command>clip_as_button2</command> test is 
compiled and
+         run:
+         <programlisting>
+           make -C testsuite/samples clip_as_button2-TestRunner 
+           cd testsuite/samples &amp;&amp; ./clip_as_button2-TestRunner
+         </programlisting>
+         This creates and runs all the tests in the directory
+         <filename>movies.all</filename>:
+         <programlisting>
+           make -C testsuite/movies.all check
+         </programlisting>
+       </para>
+      </sect4>
+      
+    </sect2>
+    <sect2 id="manually">
+      <title>Running The Tests Manually</title>
+      
+      <para>
+       You may also run test cases by hand, which can be useful if you
+       want to see all the debugging output from the test case.  Often
+       the messages which come from deep within &app; are most useful for
+       development.
+      </para>  
+      
+      <para>
+       The first step is to compile the test case, which can be done
+       with <filename>make XML-v#.swf</filename> where the '#' is replaced
+       with the <emphasis>target</emphasis> SWF version or versions.  
+       For example:
+       <programlisting>
+         make XML-v{5,6,7,8}.swf
+       </programlisting>
+      </para>
+      
+      <sect4 id="manual_compiled_tests">
+       <title>Movie tests</title>
+       <para>
+         This creates a Flash movie version of the test case, which
+         can be run with a standalone Flash player.  For instance,
+         the target for SWF version 6 could be run with &app;:
+         <programlisting>
+           gnash -v XML-v6.swf
+         </programlisting>
+       </para>
+      </sect4>
+      
+      <sect4 id="manual_actionscript_tests">
+       <title>ActionScript Unit Tests</title>
+       <para>
+         Unit tests for ActionScript classes in 
<command>testsuite/actionscript.all</command>
+         are run without a graphical display:
+         <programlisting>
+           gprocessor -v XML-v6.swf
+         </programlisting>
+       </para>
+      </sect4>
+    </sect2>
+
+    &install;
+
+    &crosscompiling;
+    
+  </sect1>
+</chapter>

Index: doc/C/refmanual/code_dependencies.xml
===================================================================
RCS file: doc/C/refmanual/code_dependencies.xml
diff -N doc/C/refmanual/code_dependencies.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/code_dependencies.xml       3 Mar 2008 23:46:47 -0000       
1.4.2.2
@@ -0,0 +1,468 @@
+<sect1 id="dependencies">
+  <title>Code Dependencies</title>
+
+  <para>
+    &app; has a number of dependencies on other packages.
+    If you install the dependencies using a package
+    manager, be certain to install the development versions
+    of the packages.  The normal versions are often missing
+    the headers &app; needs to compile.
+  </para>
+
+  <para>
+    Some dependencies have other dependencies, like GTk also needs
+    glib2, atk, and pango to produce a fully linked
+    executable. Different distributions also use differing
+    dependencies, sometimes a package will depend on libxml2 on one
+    system, but libexpat on another.
+  </para>
+  
+  <table frame='all' id="codedeps">
+    <title>Code Dependency Table</title>
+    <tgroup cols='7' align='left' colsep='1' rowsep='1'>
+      <thead>
+       <row>
+         <entry>Name</entry>
+         <entry>Level</entry>
+         <entry>Version</entry>
+         <entry>Description</entry>
+         <entry>Explanation</entry>
+         <entry>apt-get package</entry>
+         <entry>RPM/Yum package</entry>
+         <entry>BSD package</entry>
+       </row>
+      </thead>
+      
+      <tbody>
+       <row>
+         <entry>Boost</entry>
+         <entry>Required</entry>
+         <entry>1.32 or higher</entry>
+         <entry>
+           Boost is a library of portable C++ classes and
+           templates.
+         </entry>
+         <entry>
+           In &app;, Boost libraries are used extensively, primarily
+           boost-gthread and boost-date-time. Boost is used for thread and 
mutext 
+           handling. 
+         </entry>
+         <entry>
+           <filename>libboost-thread-dev, libboost-date-time-dev libboost-dev
+           </filename>
+         </entry>
+         <entry>
+           <filename>
+             libboost-thread-devel, libboost-date-time-devel
+         </filename>
+         </entry>
+         <entry>
+           <filename>
+             boost-headers, boost-libs, or just boost
+         </filename></entry>
+       </row>
+       
+       <row>
+         <entry>libxml2</entry>
+         <entry>Required</entry>
+         <entry></entry>
+         <entry>
+           Libxml2 is the GNOME XML parser library and
+           is available at <ulink type="http"
+           url="http://xmlsoft.org";>http://xmlsoft.org</ulink>.
+         </entry>
+         <entry>
+           This library is used to parse messages for the
+           XML XMLNode, or XMLSocket ActionScript classes.
+         </entry>
+         <entry><filename>libxml2-dev</filename></entry>
+         <entry><filename>libxml2-devel</filename></entry>
+         <entry><filename>libxml2</filename></entry>
+       </row>
+       
+       <row>
+         <entry>AGG</entry>
+         <entry>Possibly Required</entry>
+         <entry>2.4 or higher</entry>
+         <entry>
+           AGG is the AntiGrain low-level 2D graphics
+           library.  
+         </entry>
+         <entry>
+           &app; requires the installation of at least one
+           renderer.  AGG is considered the <emphasis>best
+           supported</emphasis> renderer for &app;.
+         </entry>
+         <entry><filename>libagg-dev</filename></entry>
+         <entry><filename>agg-devel</filename></entry>
+         <entry><filename>agg</filename></entry>
+       </row>
+       
+       <row>
+         <entry>OpenGL</entry>
+         <entry>Possibly Required</entry>
+         <entry></entry>
+         <entry>
+           OpenGL is a standard specification defining a
+           cross-language cross-platform API for writing
+           applications which produce 3D and 2D graphics.
+           It supports hardware acceleration.
+           You can download a free implementation from
+           <ulink type="http"
+                  url="http://www.mesa3d.org";>http://www.mesa3d.org</ulink>,
+           although it doesn't support hardware acceleration.
+         </entry>
+         <entry>
+           &app; requires the installation of at least one
+           renderer. If you don't have a hardware accelerated driver,
+           you're better off using AGG for the renderer.
+         </entry>
+         <entry><filename>libgl1-mesa-dev</filename></entry>
+         <entry><filename>libmesa-devel</filename></entry>
+         <entry><filename>mesa</filename></entry>
+       </row>
+       
+       <row>
+         <entry>Cairo</entry>
+         <entry>Possibly Required</entry>
+         <entry />
+         <entry>
+           Cairo is a 2D graphics library with support for
+           multiple output devices.  It will automatically use
+           graphic card acceleration when available, and has
+           an experimental OpenGL backend.  
+         </entry>
+         <entry>
+           &app; requires the installation of at least one
+           renderer.  Cairo is considered
+           the <emphasis>least supported</emphasis> renderer
+           for &app;.
+         </entry>
+         <entry><filename>libcairo2-dev</filename></entry>
+         <entry><filename>cairo-devel</filename></entry>
+         <entry><filename>cairo</filename></entry>
+       </row>
+       
+       <row>
+         <entry>GTK</entry>
+         <entry>Possibly Required</entry>
+         <entry>2.2 or higher</entry>
+         <entry>
+           GTK is the GIMP Toolkit GUI library used by the GNOME
+           desktop. It uses Cairo internally. Gtk enables better
+           integration with Firefox, as well as better event handling
+           and higher level GUI constructs like menus and dialog
+           boxes.
+         </entry>
+         <entry>
+           &app; requires the installation of at least one
+           GUI library.  GTK is considered to be the
+           <emphasis>best supported</emphasis> GUI library
+           option for &app;.
+         </entry>
+         <entry><filename>libgtk2.0-dev</filename></entry>
+         <entry><filename>gtk-devel</filename></entry>
+         <entry><filename>gtk+2</filename></entry>
+       </row>
+       
+       <row>
+         <entry>GtkGlExt</entry>
+         <entry>Possibly Required</entry>
+         <entry></entry>
+         <entry>
+           GtkGlExt integrates OpenGL into GTK.
+         </entry>
+         <entry>
+           This library is required in order to use
+           the GTK GUI library in conjunction with the
+           OpenGL renderer.
+         </entry>
+         <entry><filename>libgtkglext1-dev</filename></entry>
+         <entry><filename>gtkglext-devel</filename></entry>
+         <entry><filename>gtkglext</filename></entry>
+       </row>
+       
+       <row>
+         <entry>SDL</entry>
+         <entry>Possibly Required</entry>
+         <entry />
+         <entry>
+           The Simple DirectMedia Layer is a cross-platform
+           multimedia library which provides abstraction for
+           audio, graphics, sound and input APIs.  
+           SDL is available from
+           <ulink type="http" url="http://www.libsdl.org";>
+             http://www.libsdl.org</ulink>.  
+         </entry>
+         <entry>
+           &app; requires the installation of at least one
+           GUI library.  SDL may also be used as a sound
+           handler regardless of whether it is employed as
+           a GUI library.  The GUI
+           library is <emphasis>poorly supported</emphasis>
+           in &app;, but the sound handler is the
+           <emphasis>best supported</emphasis> in &app;.
+         </entry>
+         <entry><filename>libsdl1.2-dev</filename></entry>
+         <entry><filename>SDL-devel</filename></entry>
+         <entry><filename>SDL-1.2</filename></entry>
+       </row>
+       
+       <row>
+         <entry>FLTK</entry>
+         <entry>Possibly Required</entry>
+         <entry>2.0 or higher</entry>
+         <entry>
+           The Fast Light ToolKit is a portable GUI library
+           which is intended as a replacement for the SDL GUI.
+         </entry>
+         <entry>
+           &app; requires the installation of at least one
+           GUI library.  FLTK may be used in conjunction with
+           the Cairo and AGG renderers.
+         </entry>
+         <entry>No distribution packages are available.</entry>
+         <entry>No distribution packages are available.</entry>
+         <entry>No distribution packages are available.</entry>
+       </row>
+       
+       <row>
+         <entry>KDE</entry>
+         <entry>Possibly Required</entry>
+         <entry />
+         <entry>
+           Kdelibs is a collection of libraries needed to
+           compile KDE applications.
+         </entry>
+         <entry>
+           &app; requires the installation of at least one
+           GUI library.  Kdelibs is also required for the
+           Kpart plugin for Konqueror.
+         </entry>
+         <entry><filename>kdelibs3-dev, kdebase-dev</filename></entry>
+         <entry><filename>kdelibs-devel, kdebase-devel</filename></entry>
+         <entry><filename>kdelibs, kdebase</filename></entry>
+       </row>
+       
+       <row>
+         <entry>Gstreamer</entry>
+         <entry>Optional</entry>
+         <entry></entry>
+         <entry>
+           Gstreamer is a video handler.
+         </entry>
+         <entry>
+           If you would like video playback, you must
+           install one of the video handlers.
+         </entry>
+         <entry><filename>libgstreamer0.8-dev</filename></entry>
+         <entry><filename>gstreamer-devel</filename></entry>
+         <entry><filename>gstreamer-0.10</filename></entry>
+       </row>
+       
+       <row>
+         <entry>gst-ffmpeg</entry>
+         <entry>Possibly Required</entry>
+         <entry></entry>
+         <entry>
+           gst-ffmpeg allows you to use the FFMPEG decoder
+           with Gstreamer.
+         </entry>
+         <entry>
+           This package is required if you would like to
+           use Gstreamer as a video handler.
+         </entry>
+         <entry><filename>gstreamer0.8-ffmpeg-dev</filename></entry>
+         <entry><filename>gstreamer-ffmpeg-devel</filename></entry>
+         <entry><filename>gstreamer-ffmpeg</filename></entry>
+       </row>
+       
+       <row>
+         <entry>FFMPEG</entry>
+         <entry>Possibly Required</entry>
+         <entry></entry>
+         <entry>
+           FFMPEG is a video handler.
+         </entry>
+         <entry>
+           If you would like video playback, you must
+           install one of the video handlers. When using the
+           gstreamer-ffmpeg plugin, ffmpeg doesn't need to be
+           installed, as it's part of the plugin. For systems
+           without Gstreamer support, ffmpeg can be used directly.
+         </entry>
+         <entry><filename>ffmpeg-dev</filename></entry>
+         <entry><filename>ffmpeg-devel</filename></entry>
+         <entry><filename>ffmpeg</filename></entry>
+       </row>
+       
+       <row>
+         <entry>JPEG</entry>
+         <entry>Optional</entry>
+         <entry></entry>
+         <entry>
+           <ulink type="http" url="http://www.ijg.org/";>JPEG</ulink>
+           is a lossy image format which is heavily used for images.
+         </entry>
+         <entry>
+           This library is used for rendering JPEGs.
+         </entry>
+         <entry><filename>libjpeg62-dev</filename></entry>
+         <entry><filename>libjpeg</filename></entry>
+         <entry><filename>jpeg</filename></entry>
+       </row>
+       
+       <row>
+         <entry>PNG</entry>
+         <entry>Optional</entry>
+         <entry></entry>
+         <entry>
+           <ulink type="http" 
+                  url="http://www.libpng.org/pub/png/";>PNG</ulink> is
+           a patent-free image format which is comparable to
+           <emphasis>GIF</emphasis>.
+         </entry>
+         <entry>
+           This library is used for rendering PNGs.
+         </entry>
+         <entry><filename>libpng12-dev</filename></entry>
+         <entry><filename>libpng</filename></entry>
+         <entry><filename>png</filename></entry>
+       </row>
+       
+       <row>
+         <entry>libcurl</entry>
+         <entry>Optional</entry>
+         <entry></entry>
+         <entry>
+           libcurl is the multiprotocal file transfer library.
+         </entry>
+         <entry>
+           This library is used for URL downloading.
+         </entry>
+         <entry><filename>libcurl4-gnutls</filename></entry>
+         <entry><filename>libcurl</filename></entry>
+         <entry><filename>curl</filename></entry>        
+       </row>  
+       
+       <row>
+         <entry>Glib2</entry>
+         <entry>Optional</entry>
+         <entry></entry>
+         <entry>
+           Glib2 is a dependency of Gtk, and is a collection of
+           commonly used functions.
+         </entry>
+         <entry>
+           This library is used for convenience.
+         </entry>
+         <entry><filename>glib2-dev</filename></entry>
+         <entry><filename>glib2-devel</filename></entry>
+         <entry><filename>glib2</filename></entry>       
+       </row>
+       
+       <row>
+         <entry>Atk</entry>
+         <entry>Optional</entry>
+         <entry></entry>
+         <entry>
+           Atk is a dependency of Gtk, and is used for accessibility
+           support.
+         </entry>
+         <entry>
+           This library is used for accessiblity..
+         </entry>
+         <entry><filename>atk-dev</filename></entry>
+         <entry><filename>atk-devel</filename></entry>
+         <entry><filename>atk</filename></entry>         
+       </row>
+
+       <row>
+         <entry>Pango</entry>
+         <entry>Optional</entry>
+         <entry></entry>
+         <entry>
+           Pango is a dependency of Gtk, and is used for font handling.
+         </entry>
+         <entry>
+           This library is used for font handling.
+         </entry>
+         <entry><filename>pango-dev</filename></entry>
+         <entry><filename>pango-devel</filename></entry>
+         <entry><filename>pango</filename></entry>       
+       </row>
+
+       <row>
+         <entry>automake</entry>
+         <entry>Possibly Required</entry>
+         <entry>1.6.0</entry>
+         <entry>
+           Automake is a tool for generating
+           <emphasis>Makefile.in</emphasis> files.
+         </entry>
+         <entry>
+           This package is required to run
+           <emphasis>autogen.sh</emphasis>, which is a requirement
+           if you are using the development source from CVS.
+         </entry>
+         <entry><filename>automake</filename></entry>
+         <entry><filename>automake</filename></entry>
+         <entry><filename>automake</filename></entry>
+       </row>
+       
+       <row>
+         <entry>autoconf</entry>
+         <entry>Possibly Required</entry>
+         <entry>2.59</entry>
+         <entry>
+           Autoconf is a package for generating configure
+           scripts.
+         </entry>
+         <entry>
+           This package is required to run
+           <emphasis>autogen.sh</emphasis>, which is a requirement
+           if you are using the development source from CVS.
+         </entry>
+         <entry><filename>autoconf</filename></entry>
+         <entry><filename>autoconf</filename></entry>
+         <entry><filename>autoconf</filename></entry>
+       </row>
+       
+       <row>
+         <entry>gettext</entry>
+         <entry>Possibly Required</entry>
+         <entry>0.14.6</entry>
+         <entry>
+           Gettext is part of the GNU Translation Project.
+         </entry>
+         <entry>
+           This package is required to run
+           <emphasis>autogen.sh</emphasis>, which is a requirement
+           if you are using the development source from CVS.
+         </entry>
+         <entry><filename>gettext</filename></entry>
+         <entry><filename>gettext</filename></entry>
+         <entry><filename>gettext</filename></entry>
+       </row>
+       
+       <row>
+         <entry>libtool</entry>
+         <entry>Possibly Required</entry>
+         <entry>1.5.22</entry>
+         <entry>
+           This is a generic library support script.
+         </entry>
+         <entry>
+           This package is required to run
+           <emphasis>autogen.sh</emphasis>, which is a requirement
+           if you are using the development source from CVS.
+         </entry>
+         <entry><filename>libltdl3-dev</filename></entry>
+         <entry><filename>libtool</filename></entry>
+         <entry><filename>libtool</filename></entry>
+       </row>
+       
+      </tbody>
+    </tgroup>
+  </table>
+</sect1>

Index: doc/C/refmanual/codestyle.xml
===================================================================
RCS file: doc/C/refmanual/codestyle.xml
diff -N doc/C/refmanual/codestyle.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/codestyle.xml       3 Mar 2008 23:46:47 -0000       1.2.2.2
@@ -0,0 +1,127 @@
+<sect1 id="appendix">
+  <title>Appendix</title>
+  
+  <sect2 id="codestyle">
+    <title>Code Style</title>
+
+    <para>
+      I know any discussion of coding styles leads to strong opinions,
+      so I'll state simply I follow the <ulink type="http"
+      url="http://www.gnu.org/prep/standards/standards.html";>GNU
+      Coding Standards</ulink>. Where there is some flexibility as to
+      the location of braces, I prefer mine on the end of a line when
+      using an <emphasis>if</emphasis>, <emphasis>while</emphasis>, or 
<emphasis>do</emphasis>
+      statement. I find this more compact style easier to read and
+      parse by eye. I'm also a big fan of always using
+      braces around <emphasis>if</emphasis> statements, even if they're one
+      liners.
+    </para>
+
+    <para>
+      Here's my tweaked style settings for <emphasis>Emacs</emphasis>, the one
+      true editor to rule them all.
+
+      <programlisting>
+      (defconst my-style
+          '((c-tab-always-indent   . t)
+           (c-auto-newline        . t)
+           (c-hanging-braces-alist . (
+                                  (brace-list-intro)
+                                  (namespace-open)
+                                  (inline-open)
+                                  (block-open)
+                                  (brace-list-open)
+                                  (brace-list-close)
+                                  (brace-entry-open)
+                                  (brace-else-brace)
+                                  (brace-elseif-brace)
+                                  (class-open after)
+                                  (class-close)
+                                  (defun-open after)
+                                  (defun-close)
+                                  (extern-lang-open)
+                                  (inexpr-class-open)
+                                  (statement-open)
+                                  (substatement-open)
+                                  (inexpr-class-close)))
+            (c-hanging-colons-alist . ((member-init-intro before)
+                                   (inher-intro)
+                                   (case-label after)
+                                   (label after)
+                                   (access-label after)))
+            (c-offsets-alist   . (
+                                  (innamespace . 0)
+                                   (case-label  . 2)
+                                  ))
+            (c-cleanup-list    . (
+                                  (scope-operator)
+                                  (empty-defun-braces)
+                                  (brace-else-brace)
+                                  (brace-elseif-brace)
+                                  (defun-close-semi)
+                                  (list-close-comma)
+                                  )
+                               )
+    ;; no automatic newlines after ';' if following line non-blank or inside
+    ;; one-line inline methods
+    (add-to-list 'c-hanging-semi&amp;comma-criteria
+                'c-semi&amp;comma-no-newlines-before-nonblanks)
+    (add-to-list 'c-hanging-semi&amp;comma-criteria
+                'c-semi&amp;comma-no-newlines-for-oneline-inliners)
+;    (knr-argdecl-intro . -)
+    (c-echo-syntactic-information-p . t)
+    )
+  "My GNU Programming Style")
+    </programlisting>
+
+    </para>
+    
+    <para>
+      Another coding consideration: comments are good!  Over
+      commenting isn't good.  Here is an over commented example:
+
+      <programlisting>
+       counter++;              // increment counter
+      </programlisting>
+      
+      Gnash also uses <ulink type="http"
+      url="http://www.doxygen.org";>Doxygen</ulink> style
+      comments. These are processed by Doxygen when building a cross
+      reference of all the classes, and is a good way to help push
+      internals documentation from the depths of the code into
+      documentation where it can be seen by others.
+    </para>
+
+    <para>
+      <emphasis>Doxygen</emphasis> style comments for <emphasis>C++</emphasis> 
code involves
+      simply using three slashes <emphasis>///</emphasis> instead of the
+      standard two slashes <emphasis>//</emphasis> used for C++
+      comments. Here's a short comment block for the
+      <emphasis>XML::cloneNode()</emphasis> method:
+
+      <programlisting>
+       /// \brief copy a node
+       ///
+       /// Method; constructs and returns a new XML node of the same type,
+       /// name, value, and attributes as the specified XML object. If deep
+       /// is set to true, all child nodes are recursively cloned, resulting
+       /// in an exact copy of the original object's document tree.
+       XMLNode &amp;
+       XML::cloneNode(XMLNode &amp;newnode, bool deep) {
+       ...
+       }
+      </programlisting> 
+    </para>
+    
+    <para>
+      The <emphasis>\brief</emphasis> keyword means that the 
+      text becomes associated
+      when listing all the classes on the generated web pages. The
+      text after the blank link becomes the detailed description which
+      appears on the generated web page for that class and method.
+    </para>
+  </sect2>
+
+</sect1>
+
+

Index: doc/C/refmanual/configuration.xml
===================================================================
RCS file: doc/C/refmanual/configuration.xml
diff -N doc/C/refmanual/configuration.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/configuration.xml   3 Mar 2008 23:46:47 -0000       1.5.2.2
@@ -0,0 +1,76 @@
+<sect1 id="configure">
+  <title>Configuring Gnash</title>
+
+  <para>
+    &app;, like most GNU projects, allows a user to select various
+    options before compiling its source code. These options include
+    selecting from the available features, specifying custom paths for
+    installation, and cross compiling support uses <ulink type="http"  
+    url="http://www.gnu.org/software/autoconf/";>GNU Autoconf</ulink>
+    for configuration.
+  </para>
+  <para>
+    If you opted to download the development snapshot
+    of &app;, the <emphasis>configure</emphasis> script will
+    not be included.  It can be created by running 
+    <emphasis>autogen.sh</emphasis> from the source root directory:
+    <programlisting>
+      ./autogen.sh
+    </programlisting>
+    Note that there are some 
+    <link linkend="dependencies">dependencies</link> for
+    autogen.
+  </para>
+  <para>
+    All the standard <command>configure</command> options
+    are available.  In addition, &app; has two types of
+    options: those that <link linkend="configfeatures">enable or disable 
+    features</link>, and
+    those that <link linkend="custompath">specify custom paths for 
+    development packages</link>
+    which are not found during the default search.  A complete
+    list of <emphasis>all</emphasis> configuration options, including
+    standard ones, can be seen by typing:
+    <programlisting>
+      ./configure --help | less
+    </programlisting>
+    Read further for a more detailed explanation of &app;-specific
+    options.
+  </para>
+  <para>
+    The syntax for running <emphasis>configure</emphasis> is as follows:
+    <programlisting>
+      configure <replaceable>&lt;options&gt;</replaceable>
+    </programlisting>
+    The example below shows the <command>configure</command> options
+    which create the smallest working standalone version of &app;.  In
+    this example, <command>configure</command> is being run from the
+    source root directory:
+  </para>
+  
+  <programlisting>
+    ./configure --disable-debugger --disable-cygnal \
+    --disable-plugin --enable-media=ffmpeg --enable-gui=sdl
+  </programlisting>
+ 
+  <para>
+    By default, you shouldn't need to supply any options to
+    configure. The configure script will attempt to determine what to
+    build based on the development libraries you have installed. The
+    default configuration for Gnash is both GTK and KDE GUIs, the AGG
+    renderer, and Gstreamer for multimedia support, with no extensions
+    built.
+  </para>
+
+  <para>
+    Being highly portable, &app; has many configuration options
+    available, and not all are supposed to work together. A common
+    mistake when configuring &app; is to supply too many options,
+    overdriving &app;'s ability to do the right thing.
+  </para>
+
+  &featureoptions;
+  
+  &custompath;
+  
+</sect1>

Index: doc/C/refmanual/cross_compiling.xml
===================================================================
RCS file: doc/C/refmanual/cross_compiling.xml
diff -N doc/C/refmanual/cross_compiling.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/cross_compiling.xml 3 Mar 2008 23:46:47 -0000       1.3.2.2
@@ -0,0 +1,113 @@
+<sect1 id="cross">
+  <title>Cross Configuring</title>
+  
+  <para>
+    To cross configure and compile &app;, begin by building a target system
+    on your workstation.  This includes cross compilers for the target
+    architecture, and some system headers. 
+    You will also need to cross compile all the <link 
linkend="docdepend">dependencies  
+    </link> normally needed to build Gnash. This can on occasion be a
+    daunting process, as not all libraries will cross configure and cross
+    compile. There is more information about cross compiling all the
+    dependant packages on the <ulink type="http"
+    url="http://www.gnashdev.org";>http://www.gnashdev.org</ulink> web
+    site.
+  </para>
+
+  <para>
+    If you need to build your own tool chain, that is beyond the scope
+    of this manual. There are various resources on the web for howto's
+    on building GCC based cross toolchains. Two popular sites are
+    <ulink url="http://frank.harvard.edu/~coldwell/toolchain/";
+          type="http">http://frank.harvard.edu/~coldwell/toolchain/</ulink>
+    and <ulink url="http://www.kegel.com/crosstool/"; 
+          type="http">http://www.kegel.com/crosstool/</ulink>. This
+    can also be a very time consuming and frustrating process, even
+    for experienced developers.
+  </para>
+  
+  <para>
+    Because the process of building your own cross tool chain can be
+    harder than one may wish, there are several other cross
+    development environments that simulate a native environment to
+    make it easier to develop. These also let you develop for both
+    native and cross builds. Several popular ones are 
+    <ulink url="http://www.access-company.com/products/linux/alp.html"; 
type="http">
+    Access Linux Platform</ulink>, 
+    <ulink url="http://www.scratchbox.org/"; type="http">
+    Scratchbox</ulink>, 
+    <ulink url="http://www.openembedded.org/"; type="http">
+    Open Embedded</ulink>, 
+    <ulink url="http://maemo.org/"; type="http">
+    Maemo</ulink>.
+  </para>
+  
+  <para>
+    To build for an ARM based system on an x86 based systems,
+    configure like this using the traditional style cross toolchain,
+    configure like this:
+  </para>
+  
+  <programlisting>
+    ../../gnash/configure --build=i686-pc-linux-gnu
+    --host=arm-linux --prefix=/usr/local/arm/oe --disable-nsapi
+    --disable-kparts --enable-gui=fb --enable-renderer=agg
+    --disable-shared --disable-menus
+    
+  </programlisting>
+  
+  <para>
+    The important configuration options are the ones which specify the
+    architecture for the build:
+  </para>
+  
+  <variablelist>
+    
+    <varlistentry>
+      <term>--target</term>
+      <listitem>
+       <para>
+         The target architecture, where the final executables are expected
+         to run.
+       </para>
+      </listitem>
+    </varlistentry>
+    
+    <varlistentry>
+      <term>--host</term>
+      <listitem>
+       <para>
+         The host architecture, where the executables are expected
+         to run.  Usually this is the same as the 
<emphasis>--target</emphasis>,
+         except when building a compiler as a Canadian Cross.  In this
+         case, you might build a cross compiler on a UNIX system which
+         runs on a win32 machine, producing code for a third architecture,
+         such as ARM.  In this example, <emphasis>--target</emphasis> would
+         be 'arm-unknown-linux-gnu', while <emphasis>--host</emphasis> would 
+         be 'win32'.
+       </para>
+      </listitem>
+    </varlistentry>
+    
+    <varlistentry>
+      <term>--build</term>
+      <listitem>
+       <para>
+         This is the system the build is running on.
+       </para>
+      </listitem>
+    </varlistentry>
+    
+  </variablelist>
+  
+  <para>
+    The following example of <emphasis>configure</emphasis> builds for an
+    ARM system on an x86 system.  It was run after an ARM system was built
+    in <filename>/usr/arm</filename> and other required libraries were 
+    cross compiled.
+    <programlisting>
+      ./configure -target=arm-unknown-linux-gnu --prefix=/usr/arm \
+      --host=arm-unknown-linux-gnu --build=i686-pc-linux-gnu --disable-plugin
+    </programlisting>
+  </para>
+</sect1>

Index: doc/C/refmanual/custompath_configuration.xml
===================================================================
RCS file: doc/C/refmanual/custompath_configuration.xml
diff -N doc/C/refmanual/custompath_configuration.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/custompath_configuration.xml        3 Mar 2008 23:46:48 
-0000       1.3.2.2
@@ -0,0 +1,460 @@
+<sect1 id="custompath">
+  <title>Specifying Custom Paths</title>
+
+  <para>
+    By default, none of these options should be required
+    unless you want &app; to use a specific version of a
+    development package, or if the configure test fails to
+    find a component.  Please <link
+    linkend="bugreport">report the problem</link> if a
+    configure test fails.
+  </para>
+  <para>
+    The following custom path options are available:
+  </para>
+  
+  
+  <table id="tb-configure-paths">
+    <title>Custom Path Options</title>
+    <tgroup cols='2' align='left' colsep='1' rowsep='1'>
+      <thead>
+       <row>
+         <entry>Option</entry>
+         <entry>Function</entry>
+       </row>
+      </thead>
+      <tbody>
+       <row>
+         <entry>
+           <option>--x-includes=DIR</option>
+         </entry>
+         <entry>
+           X include files are in DIR.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--x-libraries=DIR</option>
+         </entry>
+         <entry>
+           X library files are in DIR.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-libxml=PFX</option>
+         </entry>
+         <entry>
+           Prefix to where libxml is installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-libxml-libraries=DIR</option>
+         </entry>
+         <entry>
+           Directory where libxml library is installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-libxml-includes=DIR</option>
+         </entry>
+         <entry>
+           Directory where libxml header files are installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-docbook=DIR</option>
+         </entry>
+         <entry>
+           Directory where the DocBook style-sheets are installed.        
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-sdl-prefix=PFX</option>
+         </entry>
+         <entry>
+           Prefix where SDL is installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-zlib-incl</option>
+         </entry>
+         <entry>
+           Directory where zlib header is installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-zlib-lib</option>
+         </entry>
+         <entry>
+           Directory where zlib library is installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-jpeg-incl</option>
+         </entry>
+         <entry>
+           Directory where jpeg header is installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-jpeg-lib</option>
+         </entry>
+         <entry>
+           Directory where jpeg library is installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-png-incl</option>
+         </entry>
+         <entry>
+           Directory where png header is installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-png-lib</option>
+         </entry>
+         <entry>
+           Directory where png library is installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-qt-dir</option>
+         </entry>
+         <entry>
+           Directory where QT is installed. This is only used by
+           the Klash plugin.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-qt-includes</option>
+         </entry>
+         <entry>
+           Directory where the QT header files are installed. This
+           is only used by the Klash plugin.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-qt-libraries</option>
+         </entry>
+         <entry>
+           Directory where the QT libraries are installed. This is
+           only used by the Klash plugin.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-npapi-plugindir</option>
+         </entry>
+         <entry>
+           This is the directory to install the NPAPI (Mozilla) plugin in.
+           By default it goes to ~/.mozilla/plugins.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-kde-pluginprefix</option>
+         </entry>
+         <entry>
+           This option sets the default install dir for all KPARTS (kde) files.
+           The plugin will be installed in PREFIX/lib/kde3, use
+           <option>-with-kde-plugindir</option> to override. The service file 
in 
+           PREFIX/share/services, use <option>--with-kde-servicesdir</option> 
to
+           override. The config file in PREFIX/share/config, use
+           <option>--with-kde-configdir</option> to override. The
+           appdata file in PREFIX/share/apps/klash, use
+           <option>--with-kde-appsdatadir</option> to override. 
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-kde-plugindir</option>
+         </entry>
+         <entry>
+           This is the directory to install the KPARTS (kde) plugin in.
+           By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install module --expandvars,
+           or $(prefix)/share/services if kde-config is not found.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-kde-servicesdir</option>
+         </entry>
+         <entry>
+           This is the directory to install the KPARTS (kde) service in.
+           By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install services --expandvars,
+           or $(libdir)/kde3 if kde-config is not found.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-kde-configdir</option>
+         </entry>
+         <entry>
+           This is the directory to install the KPARTS (kde) config files in.
+           By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install config --expandvars,
+           or $(prefix)/share/config if kde-config is not found.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-kde-appsdatadir</option>
+         </entry>
+         <entry>
+           This is the directory to install the KPARTS (kde) application data 
files in.
+           By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install data --expandvars,
+           or $(prefix)/share/apps if kde-config is not found.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-ming</option>
+         </entry>
+         <entry>
+           Ming is used to build test cases, but not by the Gnash
+           player itself.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-ogg_incl</option>
+         </entry>
+         <entry>
+           Directory where the libogg headers are installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-ogg_lib</option>
+         </entry>
+         <entry>
+           Directory where the libogg library is installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-gstreamer-incl</option>
+         </entry>
+         <entry>
+           Directory where the Gstreamer headers are
+           installed. Gstreamer version 0.10 or greater must be used.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-gstreamer-lib</option>
+         </entry>
+         <entry>
+           Directory where the Gstreamer library is
+           installed. Gstreamer version 0.10 or greater must be used.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-opengl-includes</option>
+         </entry>
+         <entry>
+           Directory where OpenGL (libMesa) headers are installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-opengl-lib</option>
+         </entry>
+         <entry>
+           Directory where the OpenGL (libMesa) library is installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-glext-incl</option>
+         </entry>
+         <entry>
+           Directory where GtkGlExt headers are installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-glext-lib</option>
+         </entry>
+         <entry>
+           Directory where the GtkGlExt library is installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-gtk2-incl</option>
+         </entry>
+         <entry>
+           Directory where the Gtk2 headers are installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-gtk2-lib</option>
+         </entry>
+         <entry>
+           Directory where the Gtk2 library is installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-cairo_incl</option>
+         </entry>
+         <entry>
+           Directory where the Cairo headers are installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-cairo-lib</option>
+         </entry>
+         <entry>
+           Directory where the Cairo library is installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-glib-incl</option>
+         </entry>
+         <entry>
+           Directory where the Glib headers are installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-glib-lib</option>
+         </entry>
+         <entry>
+           Directory where the Glib library is installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-pango-incl</option>
+         </entry>
+         <entry>
+           Directory where the Pango headers are installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-pango-lib</option>
+         </entry>
+         <entry>
+           Directory where the Pango library is installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-atk-incl</option>
+         </entry>
+         <entry>
+           Directory where the ATK headers are installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-atk-lib</option>
+         </entry>
+         <entry>
+           Directory where the ATK library is installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-pthread-incl</option>
+         </entry>
+         <entry>
+           Directory where the Pthread headers are installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-pthread-lib</option>
+         </entry>
+         <entry>
+           Directory where the Pthread library is installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-agg-incl</option>
+         </entry>
+         <entry>
+           Directory where the AGG (Antigrain) headers are installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-agg-lib</option>
+         </entry>
+         <entry>
+           Directory where the AGG (Antigrain) library is installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-ffmpeg-incl</option>
+         </entry>
+         <entry>
+           Directory where the FFMPEG headers are installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-ffmpeg-lib</option>
+         </entry>
+         <entry>
+           Directory where the FFMPEG library is installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-boost-incl</option>
+         </entry>
+         <entry>
+           Directory where the Boost headers are installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-boost-lib</option>
+         </entry>
+         <entry>
+           Directory where the Boost library is installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-curl-incl</option>
+         </entry>
+         <entry>
+           Directory where the libCurl headers are installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--with-curl-lib</option>
+         </entry>
+         <entry>
+           Directory where the libCurl library is installed.
+         </entry>
+       </row>
+      </tbody>
+    </tgroup>
+  </table>
+</sect1>

Index: doc/C/refmanual/documentation_dependencies.xml
===================================================================
RCS file: doc/C/refmanual/documentation_dependencies.xml
diff -N doc/C/refmanual/documentation_dependencies.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/documentation_dependencies.xml      3 Mar 2008 23:46:48 
-0000       1.3.2.2
@@ -0,0 +1,186 @@
+<sect1 id="docdepend">
+  <title>Documentation Dependencies</title>
+  
+  <para>
+    The following packages are used to build &app;'s documentation.
+  </para>
+  
+  <table frame='all' id="docdeps">
+    <title>Documentation Dependency Table</title>
+    <tgroup cols='7' align='left' colsep='1' rowsep='1'>
+      <thead>
+       <row>
+         <entry>Name</entry>
+         <entry>Level</entry>
+         <entry>Version</entry>
+         <entry>Description</entry>
+         <entry>Explanation</entry>
+         <entry>apt-get package</entry>
+         <entry>RPM/Yum package</entry>
+         <entry>BSD package</entry>
+       </row>
+      </thead>
+      
+      <tbody>
+       <row>
+         <entry>Docbook</entry>
+         <entry>Required</entry>
+         <entry></entry>
+         <entry>
+           <ulink type="http"
+                  url="http://http://docbook.sourceforge.net/";>Docbook</ulink> 
is
+           is an industry-standard XML format for technical
+           documentation.  You can download it from
+           <ulink type="http"
+                  
url="http://sourceforge.net/project/showfiles.php?group_id=21935#files";>http://sourceforge.net/project/showfiles.php?group_id=21935#files</ulink>.
+         </entry>
+         <entry>
+           &app; documentation is written in Docbook.
+         </entry>
+         <entry>
+           <filename>docbook-utils</filename> and 
<filename>docbook-dsssl</filename>
+         </entry>
+         <entry>
+           <filename>docbook-dtd41-sgml</filename> and 
<filename>docbook-style-dsssl</filename>
+         </entry>
+         <entry>docbook</entry>
+       </row>
+       
+       <row>
+         <entry>DocBook2X</entry>
+         <entry>Optional</entry>
+         <entry></entry>
+         <entry>
+           This software package converts Docbook documents to
+           the traditional man page format, GNU Texinfo
+           format, and HTML (via Texinfo) format.  
+           It is available at <ulink type="http" 
+           
url="http://docbook2x.sourceforge.net/";>http://docbook2x.sourceforge.net/</ulink>.
+         </entry>
+         <entry>
+           DocBook2X is required to produce HTML and Texinfo
+           formats.
+         </entry>
+         <entry><filename>docbook2x</filename></entry>
+         <entry><filename>docbook2x</filename></entry>
+         <entry><filename>docbook2x</filename></entry>
+       </row>
+       
+       <row>
+         <entry>DocBook-utils</entry>
+         <entry>Optional</entry>
+         <entry></entry>
+         <entry>
+           This software package converts Docbook documents to
+           the traditional man page format, GNU Texinfo
+           format, and HTML (via Texinfo) format.  
+         </entry>
+         <entry>
+           DocBook-utils is required to produce HTML and Texinfo
+           formats.
+         </entry>
+         <entry><filename>docbook-utils</filename></entry>
+         <entry><filename>docbook-utils</filename></entry>
+         <entry><filename>docbook-utils</filename></entry>
+       </row>
+       
+       <row>
+         <entry>Texinfo</entry>
+         <entry>Possibly Required</entry>
+         <entry></entry>
+         <entry>
+           Texinfo can be used to convert DocBook2X output
+           into GNU info pages.  You can download it from
+           <ulink type="http"
+                  
url="http://ftp.gnu.org/gnu/texinfo/";>http://ftp.gnu.org/gnu/texinfo/</ulink>.
+         </entry>
+         <entry>
+           Texinfo is required if you wish to product GNU info
+           pages.
+         </entry>
+         <entry><filename>texinfo</filename></entry>
+         <entry><filename>texinfo</filename></entry>
+         <entry><filename>texinfo</filename></entry>
+       </row>
+       
+       <row>
+         <entry>FOP</entry>
+         <entry>Optional</entry>
+         <entry>0.20.5</entry>
+         <entry>
+           Formatting Objects Processor is a print formatter
+           driven by XSL formatting objects.  It is a Java
+           application which can output PDF, PCL, PS, SVG, XML,
+           Print, AWT, MIF, and Text.  It is available at
+           <ulink url="http://xmlgraphics.apache.org/fop/";
+                  type="http">http://xmlgraphics.apache.org/fop/</ulink>.
+         </entry>
+         <entry>
+           FOP is required for PDF output.
+         </entry>
+         <entry><filename>fop</filename></entry>
+         <entry><filename>fop</filename></entry>
+         <entry><filename>fop</filename></entry>
+       </row>
+       
+       <row>
+         <entry>Java (j2re)</entry>
+         <entry>Possibly Required</entry>
+         <entry></entry>
+         <entry>
+           FOP requires Sun's Java runtime (GCJ does not work with
+           FOP).  You can download it from
+           <ulink url="http://java.sun.com"; 
type="http">http://java.sun.com</ulink>.
+         </entry>
+         <entry>
+           Sun's Java runtime (j2re) is required to use FOP.  
+         </entry>
+         <entry>
+           Download the package from <ulink type="http"
+           url="http://java.sun.com";>Sun</ulink>.
+         </entry>
+         <entry>
+           Download the package from <ulink type="http"
+           url="http://java.sun.com";>Sun</ulink>.
+         </entry>
+         <entry></entry>
+       </row>
+       
+       <row>
+         <entry>JAI</entry>
+         <entry>Possibly Required</entry>
+         <entry></entry>
+         <entry>
+           Sun's Java Advanced Imaging API can be downloaded from
+           <ulink type="http" 
url="http://java.sun.com/products/java-media/jai/iio.html";>http://java.sun.com/products/java-media/jai/iio.html</ulink>.
+         </entry>
+         <entry>
+           JAI is required
+           if you wish to include graphics in a PDF file being
+           generated with FOP.
+         </entry>
+         <entry>
+           Download the package from <ulink
+           url="http://java.sun.com/products/java-media/jai/iio.html";
+           type="http">Sun</ulink>.
+         </entry>
+         <entry>
+           Download the package from <ulink
+           url="http://java.sun.com/products/java-media/jai/iio.html";
+           type="http">Sun</ulink>.
+         </entry>
+         <entry></entry>
+       </row>
+       
+      </tbody>
+    </tgroup>
+  </table>
+  
+  <para>
+    If you install j2re, set the <emphasis>JAVA_HOME</emphasis>
+    environment variable to the top directory of the j2re
+    installation.  If you encounter problems with the Java
+    installation, you may also need to add this path to the
+    <emphasis>CLASSPATH</emphasis> environment variable.
+  </para>
+</sect1>

Index: doc/C/refmanual/feature_configuration.xml
===================================================================
RCS file: doc/C/refmanual/feature_configuration.xml
diff -N doc/C/refmanual/feature_configuration.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/feature_configuration.xml   3 Mar 2008 23:46:48 -0000       
1.3.2.2
@@ -0,0 +1,262 @@
+<sect1 id="configfeatures">
+  <title>Features</title>
+  
+  <para>
+    Some switches can be used during configuration to enable or disable
+    features of &app;. Some of the most important configuration options
+    are:
+  </para>
+  
+  <itemizedlist mark="opencircle">
+    <listitem>
+      <para>
+       <option>--enable-gui</option> lets you specify your GUI of choice.
+       The default option is GTK.
+      </para>
+    </listitem>
+    <listitem>
+      <para>
+       <option>--enable-renderer</option> allows a renderer to be
+       chosen.  The default renderer is AGG.
+      </para>
+    </listitem>
+    <listitem>
+      <para>
+       <option>--enable-media</option> permits a media handler to be
+       selected.  The default is Gstreamer. 
+      </para>
+    </listitem>
+  </itemizedlist>
+  <para>
+    A complete list of available features follows.
+  </para>
+  
+  <table id="tb-config-features">
+    <title>Configuration Options - Features</title>
+    <tgroup cols='2' align='left' colsep='1' rowsep='1'>
+      <thead>
+       <row>
+         <entry>Option</entry>
+         <entry>Function</entry>
+       </row>
+      </thead>
+      <tbody>
+       <row>
+         <entry><option>--enable-debugger</option></entry>
+         <entry>Enable support for the Flash debugger. The debugger is
+         mainly of interest to Flash developers, and is still under 
development.</entry>
+       </row>
+       <row>
+         <entry><option>--enable-lirc</option></entry>
+         <entry>
+           Enable support for the LIRC remote control protocol.
+         </entry>
+       </row>
+
+       <row>
+         <entry><option>--enable-cygnal</option></entry>
+         <entry>
+           Build the Cygnal streaming media server.
+         </entry>
+       </row>
+
+       <row>
+         <entry><option>--disable-menus</option></entry>
+         <entry>
+           Disable building all the menus for the GUI. THis is used
+           by mobile devices without as much screen space.
+         </entry>
+       </row>
+
+       <row>
+         <entry> <option>--enable-docbook</option></entry>
+         <entry>  Enable the generation of HTML, INFO, and MAN
+         versions of the documentation from the Docbook XML. You will
+         then be able to use <command>make html</command>,
+         <command>make info</command>, and <command>make
+         man</command> commands. By default, man,info and html pages
+         are generated.</entry>
+       </row>
+
+       <row>
+         
<entry><option>--enable-gui=gtk|sdl|kde|fltk|fb|hildon|alp</option></entry>
+         <entry><para>Select the Graphic User Interface to use (choose 
one).</para>
+         <variablelist>
+           <varlistentry>
+             <term>GTK</term>
+             <listitem>
+               <para>
+                 The GTK+ toolkit, which is the default GUI.
+                 Said to interwork particularly well with firefox.
+               </para>
+             </listitem>
+           </varlistentry>
+           <varlistentry>
+             <term>Hildon</term>
+             <listitem>
+               <para>
+                 The Hildon toolkist is based on GTK+, and is use by
+                 some mobile devices.
+               </para>
+             </listitem>
+           </varlistentry>
+           <varlistentry>
+             <term>ALP</term>
+             <listitem>
+               <para>
+                 The ALP "Hiker" GUI is used for the Access Linux platform.
+               </para>
+             </listitem>
+           </varlistentry>
+           <varlistentry>
+             <term>SDL</term>
+             <listitem>
+               <para>
+                 Simple DirectMedia Layer, a simple and portable GUI.
+                 Its sound facilities are used when --enable-media=ffmpeg
+                 regardless of whether it is also in charge of the GUI.
+               </para>
+             </listitem>
+           </varlistentry>
+           <varlistentry>
+             <term>KDE</term>
+             <listitem>
+               <para>
+                 An interface adapted to the KDE Desktop Environment.
+                 This must be selected when building the Konqueror plugin
+                 "klash". Furthermore, the only renderer that currently
+                 works with KDE is opengl.
+               </para>
+             </listitem>
+           </varlistentry>
+           <varlistentry>
+             <term>FLTK</term>
+             <listitem>
+               <para>
+                 Fast Light ToolKit, low on resource usage.
+                 Since all build using fltk are now broken, we declare it
+                 "for developers".
+               </para>
+             </listitem>
+           </varlistentry>
+           <varlistentry>
+             <term>FB</term>
+             <listitem>
+               <para>
+                 The Linux Frame Buffer, also known as /dev/fb0.
+                 AGG is the only renderer that can currently be used
+                 with the framebuffer GUI.
+               </para>
+             </listitem>
+           </varlistentry>
+         </variablelist>
+         </entry>
+       </row>
+       <row>
+         <entry><option>--enable-i810-lod-bias</option>
+         </entry>
+         <entry>Enable fix for Intel 810 LOD bias problem. Older versions
+         of libMesa on the Intel i810 or i815 graphics processor
+         need this flag or Gnash will core dump. This has been
+         fixed in newer versions (summer 2005) of libMesa.</entry>
+       </row>
+       <row>
+         <entry><option>--enable-media=ffmpeg|gst|none</option>
+         </entry>
+         <entry>  <para>
+           Select the specified media decoder and sound engine.
+           FFMPEG uses the SDL sound engine; GST uses its own.
+           <option>GST</option> is the default decoder.
+         </para>
+         <para>
+           You should only select one media decoder.
+         </para></entry>
+       </row>
+       <row>
+         <entry>
+           <option>--disable-nsapi</option>
+           <option>--enable-nsapi</option>
+         </entry>
+         <entry>Force disable/enable building the NPAPI plugin.
+         By default the Mozilla plugin is built if the GTK gui 
+         is selected.  Specify the 
+         <option>--with-npapi-plugindir=</option> option to specify where the
+         plugin should be installed.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--disable-kparts</option>
+           <option>--enable-kparts</option>
+         </entry>
+         <entry>Force disable/enable building the KPARTS plugin. By default the
+         KDE plugin is built if the kde gui is selected. 
+         Specify the <option>--with-kde-plugindir=</option> and
+         <option>--with-kde-servicesdir=</option> options (or more generally
+         the <option>--with-kde-pluginprefix=</option> one) to specify where 
the
+         plugin should be installed. The default installation dir is extracted
+         from kde-config.
+         </entry>
+       </row>
+       <row>
+         <entry>
+           <option>--disable-plugins</option>
+         </entry>
+         <entry>Disable build of both kparts and npapi plugins</entry>
+       </row>
+       <row>
+         <entry><option>--enable-renderer=opengl|cairo|agg</option>
+         </entry>
+         <entry>Enable support for the a graphics backend. Currently
+         only <option>opengl</option> and
+         <option>agg</option> work sufficiently. OpenGL is
+         used when you have hardware accelerated graphics. AGG i
+         used when you do not have hardware accelerated
+         graphics. Typically most desktop machines have OpenGL
+         support, and most embedded systems do not. OpenGl is the
+         default when building Gnash, although the quality of AGG's
+         rendering is currently superior to OpenGL.</entry>
+       </row>
+       <row>
+         <entry><option>--enable-sdk-install</option>
+         </entry>
+         <entry>Enable installing the libraries and headers as an SDK.
+         </entry>
+       </row>
+       <row>
+         <entry><option>--disable-shared</option>
+         </entry>
+         <entry>Enable installing the shared libraries and headers.
+         Note that the extensions mechanism may not work if shared
+         libraries are disabled.</entry>
+       </row>
+       <row>
+         <entry><option>--enable-strict</option>
+         </entry>
+         <entry>Turn verbose GCC compiler warnings. By default only
+         <option>-Wall</option> is used with GCC.</entry>
+       </row>
+       <row>
+         <entry><option>--enable-fps-debug</option>
+         </entry>
+         <entry>Enable FPS debugging code. When this feature is compiled in 
you can use the -f switch of &app;
+         to have FPS printed at regular intervals.</entry>
+       </row>
+       <row>
+         <entry><option>--enable-write</option></entry>
+         <entry>Makes the Mozilla plugin write the currently playing SWF movie 
to <filename>/tmp</filename>.
+         </entry>
+       </row>
+       <row>
+         <entry><option>--disable-mit-shm</option>
+         </entry>
+         <entry>Disable support for the MIT-SHM X extensions.
+         Currently support is only available using GTK gui and AGG renderer.
+         Keeping it enabled is not a problem as it will not be used if not
+         available in the current X session.
+         </entry>
+       </row>
+      </tbody>
+    </tgroup>
+  </table>
+</sect1>

Index: doc/C/refmanual/install.xml
===================================================================
RCS file: doc/C/refmanual/install.xml
diff -N doc/C/refmanual/install.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/install.xml 3 Mar 2008 23:46:48 -0000       1.4.2.2
@@ -0,0 +1,120 @@
+<sect1 id="install">
+  <title>Installation</title>
+  
+  <para>
+    Now that &app; has been compiled and tested, use the following command to 
install it:
+    <programlisting>
+      make install
+    </programlisting>
+    The above command installs the standalone player.  If the correct
+    files were found by <command>configure</command> and if the
+    <option>--disable-plugin</option> option was not specified, the
+    &app; browser plugin is also installed. 
+  </para>
+  
+  <para>
+    &app; installs a number of <link linkend="libinstall">libraries</link>,
+    namely: <emphasis>libgnashbase</emphasis>,
+    <emphasis>libgnashamf</emphasis>, <emphasis>libgnashmedia</emphasis>,
+    <emphasis>libserver</emphasis>, and <emphasis>libgnashplugin</emphasis>.
+    <link linkend="appinstall">Executables</link>
+    consist of the (optional) plugin, <filename>gprocessor</filename>,
+    <filename>cygnal</filename>,  <filename>dumpshm</filename>,
+    <filename>soldumper</filename>, and <filename>gnash</filename>.
+    <link linkend="docinstall">Documentation</link> may also be installed.
+    The installation location is controlled with the
+    <emphasis>--prefix</emphasis> <link linkend="custompath">configure
+    option</link>, except for plugins, which are explicitly set with
+    <emphasis>--plugin-dir</emphasis>.
+  </para>
+  
+  <para>
+    Note that if you are using a single file-system <emphasis>NFS</emphasis>
+    mounted to multiple platforms, the 
+    <link linkend="custompath">configuration option</link> 
+    <emphasis>--exec-prefix</emphasis> may be used to specify where
+    platform-dependent executables and libraries are installed.
+  </para>
+  
+  <sect2 id="libinstall">
+    <title>Libraries</title>
+    
+    <para>
+      Installed libraries are located in 
+      <filename>/usr/local/lib</filename> by default.
+      If the <emphasis>--prefix</emphasis> option was used during the
+      configuration step, the libraries will
+      be installed in the directory <filename>lib</filename> inside the
+      path you specified.  If the libraries are stored in a non-standard
+      location, you must identify the path in one of two ways.
+    </para>
+    
+    <para>
+      The traditional way to do this on UNIX
+      platforms is to set the <emphasis>LD_LIBRARY_PATH</emphasis> variable
+      to the path plus <filename>/lib</filename>.  For example, if you
+      installed in <filename>/home/gnash</filename>, the 
+      <emphasis>LD_LIBRARY_PATH</emphasis> path would be
+      <filename>/home/gnash/lib</filename>.  Multiple paths are delimited
+      with a colon (':').
+    </para>
+    
+    <para>
+      GNU/Linux allows the custom path to be added to
+      <filename>/etc/ld.so.conf</filename>.  After adding the path,
+      run <emphasis>ldconfig</emphasis> as root to update the runtime
+      cache.
+    </para>
+  </sect2>
+  
+  <sect2 id="appinstall">
+    <title>Executables</title>
+    
+    <para>
+      The Mozilla plugin is built from headers (the Mozilla SDK) provided with 
Gnash and
+      does not need extra development packages to be installed. By default, the
+      plugin is installed to <filename>~/.mozilla/plugins/</filename>. To 
enable
+      the plugin for other users, copy the file 
<filename>libgnashplugin.so</filename>
+      to <filename>.mozilla/plugins/</filename> in their home directory.
+      You may also specify the plugin installation directory by using the 
+      <option>--with-plugindir</option> <link linkend="custompath">option 
+      at configuration time</link>.
+    </para>
+    <para>
+      These defaults are likely to change in future versions of Gnash.
+    </para> 
+    <para>
+      The remaining executables are installed in the <filename>bin</filename>
+      subdirectory of the directory specified by during configuration.
+      If no path was specified, the default is 
+      <filename>/usr/local/bin</filename>.
+    </para>
+  </sect2>
+  
+  <sect2 id="docinstall">
+    <title>Documentation</title>
+    
+    <para>
+      Documentation is not built by default; please refer to the 
+      <link linkend="processdoc">section on documentation</link> for
+      more information on building documentation.
+    </para>
+    
+    <para>
+      <command>man</command> and <command>info</command> 
+      are installed in <filename>/usr/local/share/man</filename>
+      and <filename>/usr/local/share/info</filename> respectively, unless
+      the <option>--mandir</option> or <option>--infodir</option>
+      <link linkend="custompath">configuration options</link> are used.
+    </para>
+    
+    <para>
+      <emphasis>GNOME help</emphasis> documentation uses the directory
+      <filename>/usr/local/share/gnash/doc/gnash/C/</filename> by default.
+      A configuration file in the &app; source tree,
+      <filename>doc/C/gnash.omf</filename> is used to specify under
+      which menu item &app; appears in the <emphasis>GNOME help</emphasis>
+      system.
+    </para>
+  </sect2>
+</sect1>

Index: doc/C/refmanual/internals.xml
===================================================================
RCS file: doc/C/refmanual/internals.xml
diff -N doc/C/refmanual/internals.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/internals.xml       3 Mar 2008 23:46:48 -0000       1.6.2.2
@@ -0,0 +1,1055 @@
+<chapter id="internals">
+  <title>Software Internals</title>
+  
+  <sect1 id="tour">
+    <title>A Tour of Gnash</title>
+    
+    <para>
+      The top level of Gnash has several libraries, 
<emphasis>libgnashbase</emphasis>,
+      <emphasis>libgnashserver</emphasis>,
+      <emphasis>libgnashasobjs</emphasis> and
+      <emphasis>libgnashbackend</emphasis>. There are several utility programs 
+      included for debug parsing and processing of Flash movie files,
+      and other useful utilities for examining local Shared Objects and
+      sniffing LocalConnections.
+    </para>
+    
+    <sect2 id="The Libraries">
+      <title>The Libraries</title>
+      
+      <sect3 id="libbase">
+       <title>libgnashbase</title>
+       
+       <para>
+         Libgnashbase contains support classes used by the rest of the
+         code.This library has no dependencies on any of the other
+         &app; libraries.
+       </para>
+
+       <para>
+         &app; makes heavy use of smart pointers, so memory allocations
+         are freed up automatically by the interpreter. Both STL and
+         Boost smart pointers are used.
+       </para> 
+      </sect3>
+      
+      <sect3 id="libgnashgui">
+       <title>libgnashgui</title>
+       
+       <para>
+         Libgnashgui contains code for a portable GUI class that
+         supports using GTK2, a framebuffer, SDL, or KDE, FLTK, or Aqua.
+       </para>
+      </sect3>
+
+      <sect3 id="libgnashserver">
+       <title>libgnashserver</title>
+       <para>
+         Libgnashserver is the guts of the interpreter itself. This is where
+         the main code for the interpreter lives. Includes in
+         libserver are the two support libraries for the parser and
+         the core of the virtual machine.
+       </para>
+      </sect3>
+
+      <sect3 id="libgnashasobjs">
+       <title>libgnashasobjs</title>
+       <para>
+         Libgnashasobjs contains all the ActionScript classes used by
+         the interpreter.
+       </para>
+      </sect3>
+
+      <sect3 id="libgnashamf">
+       <title>libgnashamf</title>
+       <para>
+         AMF is the data format used internally by SWF files. This is
+         Gnash's support library to handle AMF data. This is used by
+         the ActionScript classes SharedObject and
+         LocalConnection. This is also used by the NetStream class
+         when using thre RTMP streaming network protocol.
+       </para>
+      </sect3>
+      
+      <sect3 id="libgnashbackend">
+       <title>libgnashbackend</title>
+       
+       <para>
+         Libgnashbackend is a library containing the rendering
+         code that glues this display to the Gnash. Supported
+         rendering backends are OpenGL, Cairo, and AGG.
+       </para>
+      </sect3>
+
+      <sect3 id="libgnashpluin">
+       <title>libgnashplugin</title>
+       
+       <para>
+         Libgnashplugin is the Mozilla/Firefox plugin.
+       </para> 
+      </sect3>
+
+      <sect3 id="libklashpart">
+       <title>libklashpart</title>
+       
+       <para>
+         Libklashpart is the Konqueror plugin.
+       </para> 
+      </sect3>
+    </sect2>
+
+
+    <sect2 id="apps">
+      <title>The Applications</title>
+      
+      <para>
+           There are currently a few standalone programs in Gnash,
+        which serve either to assist with Gnash development or to play flash
+        movies.
+      </para>
+
+      <sect3 id="Gnash">
+       <title>The Standalone Player</title>
+       
+       <para>
+         This is the standalone OpenGL backend used to play
+         movies. There are several command line options and keyboard
+         control keys used by Gnash.
+       </para>
+
+      </sect3>
+
+      <sect3 id="processor">
+       <title>Gprocessor</title>
+       
+       <para>
+         Gprocessor is used to print out the actions (using the -va
+         option) or the parsing (using the -vp option) of a flash
+         movie. It is also used to produce the <emphasis>.gsc</emphasis>
+         files that Gnash uses to cache data, thereby speeding up the
+         loading of files.
+       </para>
+
+      </sect3>
+      <sect3 id="soldumper">
+       <title>SOLdumper</title>
+       
+       <para>
+         SOLDumper is a utility program used to find and dump the
+         content of <emphasis>Local Shared Objects</emphasis>, also
+         called &quot;Flash Cookies&quot; by some.
+       </para>
+
+      </sect3>
+      <sect3 id="dumpshm">
+       <title>Dumpshm</title>
+       
+       <para>
+         Dumpshm is a program used to find and dump the contents of
+         the <emphasis>LocalConnection</emphasis> shared memory segment.
+       </para>
+
+      </sect3>
+    </sect2>
+    
+    <sect2 id="plugin">
+      <title>The Plugin</title>
+
+      <para>
+       The plugin is designed to work within Mozilla or Firefox,
+       although there is Konqueror support as well. The plugin uses
+       the Mozilla NPAPI plugin API to be cross platform, and is
+       portable, as well as being well integrated into Mozilla based
+       browsers.
+      </para>
+
+      <sect3 id="pluginstatus">
+       <title>Current Status</title>
+       <para>
+         As of March 30, 2006, the plugin works! This works in a
+         fashion similar to MozPlugger in that the standalone player
+         is used instead of using a thread. This gets around the
+         issue of having to maintain a separate player to support the
+         plugin. It also gets around the other issues that Gnash
+         itself is not thread safe at this time.
+       </para>
+       <para>
+         As of Jan, 2007, streaming video, ala &quot;YouTube&quot;
+         works, along with other video sharing sites.
+       </para>
+      </sect3>
+
+      <sect3 id="gui">
+       <title>GUI Support</title>
+
+       <para>
+         Any plugin that wants to display in a browser window needs
+         to be tied into the windowing system of the platform being
+         used. On GNU/Linux systems, Firefox is a GTK2+ application.
+         There is also KDE support through the use of the Klash
+         plugin.
+       </para>
+
+       <para>
+         Gnash can use either several different GUI toolkits to create the 
window,
+         and to handle events for the standalone player.
+       </para>
+       
+       <para>
+         The SDL version is more limited, but runs on all
+         platforms, including win32. It has no support for event
+         handling, which means mouse clicks, keyboard presses, and
+         window resizing doesn't work. I personally find the default
+         event handler slow and unresponsive. Gnash has support to
+         use fast events, (currently not enabled) which is an SDL
+         hack using a background thread to pump events into the SDL
+         event queue at a much higher rate.
+       </para>
+
+       <para>
+         There are a variety of development libraries that build a GUI
+         widget system on top of SDL and OpenGL. The use of these to
+         add menus and dialog boxes to the SDL version is being
+         considered. 
+       </para>
+
+       <para>
+         The GTK support is currently the most functional, and the
+         best integrated into Firefox. The performance of this
+         version is better than the SDL version because of the more
+         efficient event handling within GTK. For the best end user
+         experience, use the GTK enabled version.
+       </para>
+
+       <para>
+         GTK also allows Gnash to have menus and dialog
+         boxes. Currently this is only being utilized in a limited
+         fashion for now. There is a right mouse button menu that
+         allows the user to control the movie being player the same
+         way the existing keyboard commands do.
+       </para>
+
+      </sect3>
+      
+      <sect3 id="mozplugger">
+       <title>Mozplugger</title>
+
+       <para>
+         <ulink type="http"
+        url="http://mozplugger.mozdev.org/";>Mozplugger</ulink> is a
+         <emphasis>Mozilla/Firefox</emphasis> plugin that uses external
+         programs to play video, audio, and other multimedia content
+         in the browser. With some support added to the external
+         application, it's possible to force the external program to
+         use the internal window in the browser where this plugin is
+         supposed to display. This enables one to then run the
+         standalone player and display its output in the browser.
+       </para>
+
+       <para>
+         While this is not an optimal solution, it does enable one to
+         use Gnash as the flash player when browsing. The main issue
+         appears to be that the Flash movie being played doesn't get
+         any mouse or keyboard input. That may be a mozplugger
+         configuration issue, however.
+       </para>
+
+       <para>
+         Use of MozPlugger is obsolete now that the Gnash plugin
+         works. Still, this may be useful still on some platforms.
+       </para>
+
+       <para>
+         Add this to your <emphasis>$(HOME)/.mozilla/mozpluggerrc</emphasis>
+         file to enable this:
+
+         <programlisting>
+           application/x-shockwave-flash:swf:Shockwave Gnash
+        nokill embed noisy ignore_errors hidden fill swallow(Gnash) loop: 
gnash -v "$file" -x $window
+        : gnash -v "$file" -x $window
+         </programlisting>
+       </para>
+
+       <para>
+         Once this is added, you must delete the
+         <emphasis>$(HOME)/.mozilla/firefox/pluginreg.dat</emphasis> file to
+         force Firefox to register the plugins again. This is an
+         ASCII text file, so if the patch has been added correctly,
+         you'll see an entry for <emphasis>swf</emphasis> files after it is
+         recreated. You will need to restart Firefox to recreate this
+         file.
+       </para>
+
+       <para>
+         This file is not recreated immediately when restarting
+         Firefox, but waits till the first time a plugin is used. You
+         can force creation of this file by typing
+         <emphasis>about:plugins</emphasis> into the URL entry of the browser
+         window. The output will also contain information about the
+         mozplugger. You should see an entry for Gnash now.
+       </para>
+       
+      </sect3>
+
+      <sect3 id="Klash">
+       <title>Klash</title>
+       <para>
+         Klash is MozPlugger type support for KDE's Konqueror web
+         browser. Klash makes Gnash a <emphasis>kpart</emphasis>, so it's
+         integrated into KDE better than when using MozPlugger. Klash
+         uses the standalone player, utilizing Gnash's "-x" window
+         plugin command line option.
+       </para>
+
+       <para>
+         By default, Klash is not built. To enable building Klash,
+         use the <emphasis>--enable-klash</emphasis> option when
+         configuring. Other than installing, there is nothing else
+         that needs to be done to install Klash.
+       </para>
+      </sect3>
+
+    </sect2>
+
+    &logging;
+
+  </sect1>
+
+  <sect1 id="soundhandlers">
+    <title>Sound handling in Gnash</title>
+
+    <para>
+      When a SWF-file contains audio Gnash uses its sound handlers to play it.
+      At the moment there are two sound handlers, but it is likely that more 
+      will be made.
+    </para>
+
+    <para>
+      There are two different settings related to sound support:
+      <emphasis>pluginsound</emphasis> and <emphasis>sound</emphasis>. 
+      This was done in order to allow the plugin to be independently 
+      configured, for instance to block sound from advertisements.
+    </para>
+
+    <sect2 id="soundtypes">
+      <title>Sound types</title>
+      <para>
+        Sounds can be divided into two groups: event-sounds and soundstreams.
+       Event-sounds are contained in a single SWF frame, but the playtime can
+       span multiple frames. Soundstreams can be (and normally are) divided
+       between the SWF frames the soundstreams spans. This means that if a
+       gotoframe-action jumps to a frame which contains data for a soundstream,
+       playback of the stream can be picked up from there. 
+      </para>
+    </sect2>
+
+     <sect2 id="soundparsing">
+      <title>Sound parsing</title>
+      <para>
+        When Gnash parses a SWF-file, it creates a sound handler if possible
+       and hands over the sounds to it. Since the event-sounds are contained 
+       in one frame, the entire event-sound is retrieved at once, while a 
+       soundstream maybe not be completely retrieved before the entire 
+       SWF-file has been parsed. But since the entire soundstream doesn't need
+       to be present when playback starts, it is not necessary to wait. 
+      </para>
+    </sect2>
+
+    <sect2 id="soundplayback">
+      <title>Sound playback</title>
+      <para>
+       When a sound is about to be played Gnash calls the sound handler, which
+       then starts to play the sound and return. All the playing is done by
+       threads (in both SDL and Gstreamer), so once 
+       started the audio and graphics are not sync'ed with each other, which
+       means that we have to trust both the graphic backend and the audio
+       backend to play at correct speed. 
+      </para>
+    </sect2>
+
+    <sect2 id="sdlsound">
+      <title>The SDL sound backend</title>
+      <para>
+       The current SDL sound backend has replaced the original sound 
+       handler, based on SDL_mixer, which by design had some limitations, 
+       making it difficult to implement needed features such as support 
+       for soundstreams. 
+       The SDL sound backend supports both event-sounds and soundstreams,
+       using Gnash's internal ADPCM, and optionally MP3 support, using
+       either FFMPEG or LIBMAD.
+       When it receives sound data it is stored without being decoded, unless
+       it is ADPCM, which is decoded in the parser. When playing, backend
+       relies on a function callback for retrieving output sound, which is 
+       decoded and re-sampled if needed, and all sound output is mixed 
together.
+       The current SDL sound backend was made since Gnash needed a working
+       sound backend as soon as possible, and since the gstreamer backend at
+       the time suffered from bugs and/or lack of features in gstreamer. The
+       result was the most complete and best sound handler so far.
+       The advantages of the SDL sound handler is speed, and ease of use,
+       while its only real disadvantage is that it has to be compiled with
+       MP3 support, which some Linux distributions will probably not like...
+      </para>
+    </sect2>
+ 
+   <sect2 id="gstreamer">
+      <title>The Gstreamer backend</title>
+      <para>
+       The Gstreamer backend, though not complete, supports both soundstreams
+       and event-sounds. When receiving sound data it stores it compressed,
+       unless if it's ADPCM event-sounds, which it decodes by the parser.
+        When the playback starts, the backend sets up a
+       Gstreamer bin containing a decoder (and other things needed) and places
+       it in a Gstreamer pipeline, which plays the audio. All the sound data is
+       not passed at once, but in small chunks, and via callbacks the
+       pipeline gets fed. The advantages of the Gstreamer backend is that it
+        supports both kinds of sound, it avoids all the legal MP3-stuff, and it
+       should be relatively easy to add VORBIS support. The drawbacks are that
+       it has longer "reply delay" when starting the playback of a sound, and
+       it suffers under some bugs in Gstreamer that are yet to be fixed. 
+      </para>
+    </sect2>
+
+    <sect2 id="audio-future">
+      <title>Future audio backends</title>
+      <para>
+       It would probably be desirable to make more backends in the future,
+       either because other and better backend systems are brought to our
+       attention, or perhaps because an internal sound handling is better
+       suited for embedded platform with limited software installed. 
+      </para>
+    </sect2>
+
+    <sect2 id="gstreamer-details">
+      <title>Detailed description of the Gstreamer backend</title>
+      <para>
+       Gstreamer uses pipelines, bins and elements. Pipelines are the
+       main bin, where all other bins or elements are places. Visually the
+       audio pipeline in Gnash looks like this: 
+      </para>
+
+      <programlisting>
+        ___
+       |Bin|_
+       |___| \
+        ___   \ _____       ____________
+       |Bin|___|Adder|_____|Audio output|
+       |___|   |_____|     |____________|
+        ___   /
+       |Bin|_/
+       |___|
+
+      </programlisting>
+
+      <para>
+       There is one bin for each sound which is being played. If a sound is
+       played more the once at the same time, multiple bins will be made. The
+       bins contains: 
+      </para>
+
+      <programlisting>
+
+       
|source|---|capsfilter|---|decoder|---|aconverter|---|aresampler|---|volume|
+
+      </programlisting>
+
+      <para>
+       In the source element we place parts of the undecoded sound data, and
+       when playing the pipeline will pull the data from the element. Via
+       callbacks it is refilled if needed. In the capsfilter the data is
+       labeled with the format of the data. The decoder (surprise!) decodes
+       the data. The audioconverter converts the now raw sound data into a
+       format accepted by the adder, all input to the adder must in the same
+       format. The audio re-sampler re-samples the raw sound data into a sample
+       accepted by the adder, all input to the adder must in the same
+       sample rate. The volume element makes it possible to control the volume
+       of each sound. 
+      </para>
+
+      <para>
+       When a sound is done being played it emits a End-Of-Stream-signal
+       (EOS), which is caught by an event-handler-callback, which then makes
+       sure that the bin in question is removed from the pipeline. When a
+       sound is told by Gnash to stop playback before it has ended playback,
+       we do something (not yet finally implemented), which makes the bin emit
+       an EOS, and the event-handler-callback will remove the sound from the
+       pipeline. Unfortunately Gstreamer currently has a bug which causes the
+       entire pipeline to stop playing when unlinking an element from the
+       pipeline; so far no fix is known. 
+      </para>
+
+      <para>
+       Gstreamer also contains a bug concerning linking multiple elements to
+       the adder in rapid succession, which causes to adder to "die" and stop
+       the playback. 
+      </para>
+    </sect2>
+
+
+  </sect1>
+
+  <sect1 id="testing">
+    <title>Testing </title>
+
+     <para>
+       <link linkend="runtests">Instructions on running tests</link>
+       can be found in the section on building Gnash.
+     </para>
+
+    <sect2 id="testtools">
+      <title>Testing Tools</title>
+
+      <para>
+       Currently Gnash uses three other tools to help with
+       testing. Two of these are free compilers for the Flash
+       format. This lets us write simple test cases for Gnash to test
+       specific features, and to see how the features operate.
+      </para>
+
+      <para>
+       The primary compiler used at this time is <ulink type="http"
+       url="http://ming.sf.net";>Ming</ulink>. Since release 0.3,
+       <emphasis>Ming</emphasis> includes a command-line compiler,
+       <emphasis>makeswf</emphasis>. This allows test case development
+        to be done entirely with free tools.
+      </para>
+      
+      <para>
+        The other tools are optional.  
+       <ulink type="http"
+              url="http://www.gnu.org/software/dejagnu";>DejaGnu</ulink>
+       is used to run multiple test cases in an automated
+       manner. <emphasis>DejaGnu</emphasis> is used by many other <ulink
+       type="http" url="http://www.gnu.org";>GNU</ulink> projects like 
+       <ulink type="http" url="http://gcc.gnu.org";>GCC</ulink> and 
+       <ulink type="http" url="http://www.samba.org";>Samba</ulink>.
+      </para>
+      
+    </sect2>
+
+    <sect2 id="testcases">
+      <title>Test Cases</title>
+      
+      <para>
+       ActionScript test cases are located under testsuite/actionscript.all/;
+       these are organized in one file for the ActionScript class.
+       Other Ming-generated tests are under testsuite/ming-misc.all/;
+       these are typically used to test specific tag types.
+       Full movies are located in testsuite/movies.all/ and
+       sample movies are found in testsuite/samples/.
+       Other directories in testsuite/ are (or shall be) used for other
+       kind of tests.
+      </para>
+      
+    </sect2>
+
+    <sect2 id="writeastests">
+      <title>Writing ActionScript Tests</title>
+
+      <para>
+       Writing ActionScript tests is very simple. The
+       <emphasis>makeswf</emphasis> compiler makes use of the C preprocessor,
+       thus allowing the inclusion of definitions for macros and external 
+       files. We use these feature to provide common utilities
+       for test units.
+      </para>
+      
+      <para>
+       Each test unit sets an <emphasis>rcsid</emphasis> variable, includes the
+       <emphasis>check.as</emphasis> file and performs some checks using
+       the provided macros. Here is an example:
+       
+       <programlisting>
+
+         // This variable will be used by check.as
+         // to show testcase info as part of the test runs.
+         rcsid="Name and version of this testcase, usually the RCS id";
+         
+         #include "check.as"
+         
+         // Test object creation
+         check(new Object() instanceOf Object);
+         
+         // Test parseInt
+         check(isNaN(parseInt('none')));
+
+         // Test assignment
+         var a = 1;
+         check_equals(a, 1);
+         
+         // .. your tests here ...
+       </programlisting>
+      </para>
+      
+      <para>
+       The check(expr) macro will <emphasis>trace</emphasis> PASSED or FAILED
+       together with the expression being evaluated and the line number
+       of the check. This is the format expected by DejaGnu.
+      </para>
+
+      <para>
+       The <emphasis>check_equals(obtained, expected)</emphasis> macro uses 
equality operator
+       <emphasis>==</emphasis> to check for equality. When possible, use of the
+       <emphasis>check_equals()</emphasis> macro is preferred over 
<emphasis>check()</emphasis>
+       because it shows what the actual result was in case of a failure. 
+      </para>
+      
+      <para>
+       Additionally, the check.as file provides a transparent way to send
+       results to a TextField rather then using trace. This is very useful
+       when you use a flash player without tracing support.
+      </para>
+      
+      <para>
+       Test units are built by running <emphasis>make 
TestName-v#.swf</emphasis>.
+       This will use TestName.as as source and the value of # as target 
version.
+       Allowed target version are from 5 to 8 (inclusive).
+      </para>
+      
+      <para>
+       Note that if you get a syntax error from the compiler, the line
+       number will refer to the pre-processed file. This file is called
+       <emphasis>TestName.as.pp</emphasis> or 
<emphasis>TestName-v#.swf.frame#.pp</emphasis>
+       (depending on Ming version) and it's not thrown away by
+       <emphasis>makeswf</emphasis> to make debugging easier.
+      </para>
+
+      <para>
+       Sometimes an expression is only supported by a specific SWF
+       version, or it's evaluated differently by different SWF versions.
+       For this purpose the framework provides an OUTPUT_VERSION macro
+       that you can use to switch code based on output version. For example:
+
+       <programlisting>
+
+         #if OUTPUT_VERSION &gt;= 7
+         check(_root.getSWFVersion == OUTPUT_VERSION);
+         #endif
+         
+       </programlisting>
+      </para>
+    </sect2>
+
+    <sect2 id="writemingtests">
+      <title>Writing Ming-based self-contained SWF tests</title>
+
+      <para>
+       Ming-based test cases are located in testsuite/misc-ming.all
+       and contain a test generator and a test runner.
+       The test generator (usually a C program) is used to produce the SWF 
+        file, while the test runner (a C++ program) will run it using a 
+       MovieTester class.
+       Note that only the test generator needs Ming, not the test
+       runner, so if Ming isn't installed on the user's host,
+       the test cases can still be run as long as SWF has been distributed.
+      </para>
+      
+      <para>
+       Producing tests using Ming has the advantage that you can easily see
+       and modify the full source code for the SWF movie, and you can use
+       some <link linkend="ming_testgenerator_facilities">facilities</link>
+       provided by the Gnash testing framework to easily run tests.
+      </para>
+
+      <para>
+       For generic Ming API documentation, see <ulink type="http"
+       url="http://www.libming.org/";>http://www.libming.org</ulink>. 
+      </para>
+
+      <sect3 id="ming_testgenerator_facilities">
+      <title>Using Ming-based test generators facilities</title>
+
+      <para>
+       Ming-based test generator facilities, which might be moved into
+       a loadable SWF in the future, can be currently used by your test
+       generator by including the ming_utils.h file and calling the
+       appropriate functions.
+      </para>
+
+      <para>
+       The most useful facility provided for Ming-based SWF test generators
+       is a Dejagnu-like TestState ActionScript class.
+       In order to use this facility you must call 'add_dejagnu_functions()'
+       right after Movie creation.
+       The function takes an SWFMovie object and some parameters specifying
+       depth and location of the "visual" trace textfield; it instantiates
+       a global 'TestState' ActionScript object to keep track of test's state.
+      </para>
+
+      <para>
+        You will <emphasis>not</emphasis> need to directly invoke the
+       TestState object created by the 'add_dejagnu_functions()' routine,
+       rather you will be using C macros hiding its complexity:
+       
+       <programlisting>
+
+       check(SWFMovie mo, const char* expr)
+
+               Evaluate an ActionScript expression.
+
+       xcheck(SWFMovie mo, const char* expr)
+
+               Evaluate an ActionScript expression.
+               A failure is expected
+               (for cases where the call exposes a known bug).
+
+       check_equals(SWFMovie mo, const char* obtained, const char* expected)
+
+               Evaluate an ActionScript expression against an expected output.
+
+       xcheck_equals(SWFMovie mo, const char* obtained, const char* expected)
+
+               Evaluate an ActionScript expression against an expected output.
+               A failure is expected (for cases where the call exposes a known 
bug).
+
+       print_tests_summary(SWFMovie mo)
+
+                This will print a summary of tests run, and should be
+               called as the last step in your SWF generator.
+       </programlisting>
+       
+      </para>
+      
+      <para>
+       Test cases generated using Ming and the provided
+       <link linkend="ming_testgenerator_facilities">facilities</link>
+       will be self-contained, which means they can be used as tests
+       by simply running them with whatever Player you might have.
+       Any 'check' or 'check_equals' result will be both traced and
+       printed in a textfield. You can use 'gprocessor -v' to have
+       Gnash use them as tests.
+      </para>
+      
+      <para>
+       See section <link linkend="writing_test_runners">Writing Test 
Runners</link>
+       for information about writing SWF test runners.
+      </para>
+      </sect3>
+    </sect2>
+    
+    <sect2 id="writing_dejagnu_so_tests">
+      <title>Writing self-contained SWF tests with other compilers</title>
+      
+      <para>
+       If you want/need to use a different compiler for your test cases 
(there's
+       plenty of open source tools for generating SWF out there), you can still
+       make use of a loadable SWF utility provided as part of the Gnash 
testsuite
+       to let your test consistent with the rest of the suite.
+      </para>
+      
+      <para>
+       The loadable module is called <emphasis>Dejagnu.swf</emphasis> and is 
built during
+       <emphasis>make check</emphasis> under testsuite/misc-ming.all. In order 
to use it
+       you will need to load it into your SWF. We currently load it with an 
IMPORT
+       tag for our ActionScript based test cases, but you can probably also use
+       loadMovie or whatever works in the target SWF you're generating. Just 
make
+       sure that the module is initialized before using it. You can check this 
by
+       inspecting the <emphasis>dejagnu_module_initialized</emphasis> 
variable, which will
+       be set to 'true' when all initialization actions contained in the
+       <emphasis>Dejagnu.swf</emphasis> file are executed. 
+      </para>
+      
+      <para>
+       Once the module is loaded you will be able to invoke the following 
functions,
+       all registered against the <emphasis>_root</emphasis> sprite (effects 
of <emphasis>_lockroot</emphasis>
+       untested):
+       <programlisting>
+         
+         check(expression, [message]);
+         
+         Evaluate the expression.
+         Trace result (PASSED: expression / FAILED: expression).
+         If fails, *visually* trace the failure.
+         If second argument is given, it will be used instead of
+         'expression' for printing results.
+         
+         check_equals(obtained, expected)
+         
+         Evaluate an expression against an expected output.
+         Trace result (PASSED: obtained == expected / FAILED: expected X, 
obtained Y)
+         If fails, *visually* trace the failure.
+         
+         xcheck(expression, [message]);
+         
+         Evaluate the expression.
+         Trace result (XPASSED: expression / XFAILED: expression).
+         If fails, *visually* trace the failure.
+         If second argument is given, it will be used instead of
+         'expression' for printing results.
+         
+         xcheck_equals(obtained, expected)
+         
+         Evaluate an expression against an expected output.
+         Trace result (XPASSED: obtained == expected / XFAILED: expected X, 
obtained Y)
+         If fails, *visually* trace the failure.
+         
+         note(string)
+         
+         Print string, both as debugging and *visual* trace.
+         
+         totals()
+         
+         Print a summary of tests run, both as debugging and *visual* traces.
+         
+       </programlisting>
+      </para>
+      
+      <para>
+       Visual traces are lines of text pushed to a textarea defined
+       by the <emphasis>Dejagnu.swf</emphasis> module. The textarea is
+       initially placed at <emphasis>0, 50</emphasis> and is
+       <emphasis>600x800</emphasis> in size. You can resize/move the clip
+       after loading it. Also, you can completely make the clip
+       invisible if that bothers you. The important thing is the
+       <emphasis>debugging</emphasis> trace (call to the trace
+       function). The latter will be used by the testing framework. 
+      </para>
+      
+      <para>
+       See section <link linkend="writing_test_runners">Writing Test 
Runners</link>
+       for information about writing a test runners for your self-contained 
tests.
+      </para>
+      
+    </sect2>
+    
+    <sect2 id="writing_test_runners">
+      <title>Writing Test Runners</title>
+      
+      <para>
+       Test runners are executables that run one or more tests,
+       writing results in Dejagnu form to standard output.
+      </para>
+      
+      <para>
+       The Dejagnu form uses a standard set of labels when printing test 
+       results.  These are:
+       <informaltable frame="all">
+         <?dbhtml table-width="75%" ?>
+         <tgroup cols="2">
+           <thead>
+             <row>
+               <entry valign="top">
+                 <para>Label</para>
+               </entry>
+               <entry valign="top">
+                 <para>Meaning</para>
+               </entry>
+             </row>
+           </thead>
+           <tbody>
+             <row>
+               <entry valign="top" align="left">
+                 <para>PASSED</para>
+               </entry>
+               <entry valign="top" align="left">
+                 <para>The test succeeded.</para>
+               </entry>
+             </row>
+             <row>
+               <entry valign="top" align="left">
+                 <para>FAILED</para>
+               </entry>
+               <entry valign="top" align="left">
+                 <para>The test failed.</para>
+               </entry>
+             </row>
+             <row>
+               <entry valign="top" align="left">
+                 <para>XPASSED</para>
+               </entry>
+               <entry valign="top" align="left">
+                 <para>The test succeeded, but was expected to fail.</para>
+               </entry>
+             </row>
+             <row>
+               <entry valign="top" align="left">
+                 <para>XFAILED</para>
+               </entry>
+               <entry valign="top" align="left">
+                 <para>The test failed, and was expected to fail.</para>
+               </entry>
+             </row>
+             <row>
+               <entry valign="top" align="left">
+                 <para>UNRESOLVED</para>
+               </entry>
+               <entry valign="top" align="left">
+                 <para>The results of the test could not be automatically 
+                 parsed.</para>
+               </entry>
+             </row>
+             <row>
+               <entry valign="top" align="left">
+                 <para>UNTESTED</para>
+               </entry>
+               <entry valign="top" align="left">
+                 <para>This test case is not complete.</para>
+               </entry>
+             </row>
+             <row>
+               <entry valign="top" align="left">
+                 <para>UNSUPPORTED</para>
+               </entry>
+               <entry valign="top" align="left">
+                 <para>The test case relies on a conditional feature which 
+                 is not present in your environment.</para>
+               </entry>
+             </row>
+           </tbody>
+         </tgroup>
+       </informaltable>
+      </para>
+      
+      <para>
+       The following labels may also appear:
+       <informaltable frame="all">
+         <?dbhtml table-width="75%" ?>
+         <tgroup cols="2">
+           <thead>
+             <row>
+               <entry valign="top">
+                 <para>Label</para>
+               </entry>
+               <entry valign="top">
+                 <para>Meaning</para>
+               </entry>
+             </row>
+           </thead>
+           <tbody>
+             <row>
+               <entry valign="top" align="left">
+                 <para>ERROR</para>
+               </entry>
+               <entry valign="top" align="left">
+                 <para>There was a serious error in running the test. </para>
+               </entry>
+             </row>
+             <row>
+               <entry valign="top" align="left">
+                 <para>WARNING</para>
+               </entry>
+               <entry valign="top" align="left">
+                 <para>There may have been a problem with running the
+                 test.</para>
+               </entry>
+             </row>
+             <row>
+               <entry valign="top" align="left">
+                 <para>NOTE</para>
+               </entry>
+               <entry valign="top" align="left">
+                 <para>There was some additional information given about
+                 the test.</para>
+               </entry>
+             </row>
+           </tbody>
+         </tgroup>
+       </informaltable>
+      </para>
+      
+      <sect3 id="generic_test_runner">
+       <title>Using the generic test runner for self-contained SWF 
tests</title>
+       
+       <para>
+         The simplest test runner is one that simply invokes Gnash
+         in verbose mode against a self-contained SWF test movie.
+         Self-contained SWF test movies are the ones that print
+         the PASSED/FAILED etc. lines using ActionScript (traces).
+         By invoking Gnash in verbose mode this movie will behave
+         as a compliant "Test Runner".
+       </para>
+       
+       <para>
+         A generator for simple test runners can be found in
+         <emphasis>testsuite/generic-testrunner.sh</emphasis>.
+         The script can be invoked by passing it 
<emphasis>$(top_builddir)</emphasis>
+         as the first argument and the name of the SWF file (without the path)
+         as the second argument. This will create a specific runner for your
+         test in the current build directory.
+         A simple Makefile.am rule for doing this follows:
+         <programlisting>
+           MyTest-Runner: $(srcdir)/../generic-testrunner.sh MyTest.swf
+           sh $(srcdir)/../generic-testrunner.sh $(top_builddir) MyTest.swf > 
$@
+           chmod +x $@
+         </programlisting>
+       </para>
+       
+       <para>
+         By default, the generated test runner will play the movie up to the
+         last frame. If you want the movie to be played more then once (maybe
+         because you're exactly testing loop features) you can use the -r 
switch
+         to the generic-testrunner.sh call. The following will create a runner
+         playing the movie twice:
+         <programlisting>
+           MyTest-Runner: $(srcdir)/../generic-testrunner.sh MyTest.swf
+           sh $(srcdir)/../generic-testrunner.sh -r2 $(top_builddir) 
MyTest.swf > $@
+           chmod +x $@
+         </programlisting>
+       </para>
+       
+       <para>
+         In case your test movie stops before the last frame, or you want to 
control the
+         exact number of times to call the frame advancement routine, you can 
use the 
+         -f switch to control that.
+         <programlisting>
+           MyTest-Runner: $(srcdir)/../generic-testrunner.sh MyTest.swf
+           sh $(srcdir)/../generic-testrunner.sh -f10 $(top_builddir) 
MyTest.swf > $@
+           chmod +x $@
+         </programlisting>
+         When both -f and -r are given, the first exit condition reached will 
take effect.
+       </para>
+       
+      </sect3>
+      
+      <sect3 id="writing_movie_testers">
+       <title>Writing Movie testers</title>
+       
+       <para>
+         There are some parts of Gnash that can NOT be tested
+         by only using ActionScript tests. Examples include: frame
+         advancements, actual actions execution, gui events and so on.
+       </para>
+       
+       <para>
+         In this case you might want to use the MovieTester class to
+         implement a C++ test runner. Be aware that you can 
<emphasis>mix</emphasis> tests in
+         the MovieTester-based class with <emphasis>self-contained</emphasis>
+         tests in the SWF file as long as you activate verbosity for
+         the debug logfile. This is done, for example, for the
+         DefineEditTextVariableNameTest.swf file. The corresponding
+         test runner (DefineEditTextVariableNameTest-Runner) is a C++
+         runner based on MovieTester class. If you run the runner you
+         see two kinds of test results: the ones coming from the ActionScript
+         engine, and the ones coming from the test runner. You can
+         distinguish between the two because the former contains an additional
+         timestamp and the latter does not. Also, you'll see two final
+         summaries for the two test sets. The 'make check' rule, which uses
+         the testsuite/simple.exp output parser as its work-horse, will
+         count test results from both test sets.
+       </para>
+       
+       
+       <para>
+         Movie testers are executables which load an SWF, generate events
+         (both user or system) on it, and check its state using
+         a standard interface.
+       </para>
+       
+       <para>
+         To help this process a MovieTester class is defined in the
+         testsuite/MovieTester.{h,cpp} files; see Doxygen documentation
+         for more information.
+       </para>
+       
+       <para>
+         Note that you do NOT need access to the SWF source code in order
+         to implement a Movie tester for it.  Some knowledge about the 
+         expected behavior suffices.
+       </para>
+      </sect3>
+    </sect2>
+  </sect1>
+  
+  &newasclass;
+    
+</chapter>
+

Index: doc/C/refmanual/logging.xml
===================================================================
RCS file: doc/C/refmanual/logging.xml
diff -N doc/C/refmanual/logging.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/logging.xml 3 Mar 2008 23:46:49 -0000       1.2.2.2
@@ -0,0 +1,259 @@
+<sect2 id="logging">
+  <title>The Debug Logging System</title>
+
+  <para>
+    Gnash supports a debug logging system which supports both C and C++
+    natively. This means you can use both <emphasis>printf()</emphasis> style
+    debug messages and C++ <emphasis>iostreams</emphasis> style, where you can
+    print C++ objects directly as you would when using
+    <emphasis>cout</emphasis>.
+  </para>
+  
+  <para>
+    In the beginning, Gnash only supported the C API for debug
+    logging, so it is the most heavily used in Gnash. This API was used in
+    the <emphasis>log_msg()</emphasis> and <emphasis>log_error()</emphasis> 
functions,
+    and used a callback to set them up.
+  </para>
+    
+  <para>
+    If a filename is not specified at object construction time, a
+    default name of <emphasis>gnash-dbg.log</emphasis> is used. If Gnash is
+    started from the command line, the debug log will be created in
+    the current directory. When executing Gnash from a launcher under
+    <emphasis>GNOME</emphasis> or <emphasis>KDE</emphasis> the debug file goes 
in your
+    home directory, since that's considered the current directory.
+  </para>
+
+  <para>
+    There is common functionality between using the C or C++
+    API. Optional output is based on flags that can be set or
+    unset. Multiple levels of verbosity are supported, so you can get
+    more output by supplying multiple <emphasis>-v</emphasis> options on the
+    command line. You can also disable the creation of the debug log.
+  </para>
+
+  <para>
+    Currently the use of the C++ API for logging is discouraged, do to
+    performance issues.and the generic log_msg() has been replaced by
+    more spcific function calls to allow more control of what gets
+    displayed and logged.
+  </para>
+
+  <sect3 id="capi">
+    <title>Logging System C API</title>
+
+    <para>
+      These functions are clones of the originals as they were used
+      for Gnash. These function the same as always except output can
+      be logged to disk now as well. These currently print no
+      timestamp with the output, which is the older functionality. As
+      these functions are implemented on top of the C++ API now, they
+      can be used without corrupting the output buffers.
+    </para>
+
+    <variablelist>
+      <varlistentry>
+       <term>log_error(const char* fmt, ...)</term>
+       <listitem>
+         <para>
+           Display an error message if verbose output is enabled. By
+           default the error messages are always written to the disk
+           file, but optionally displayed in the terminal.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>void log_unimpl</term>
+       <listitem>
+         <para>
+           Displays a warning to the user about missing Gnash features.
+           We expect all calls to this function to disappear over time, as we
+           implement those features of Flash.
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>void log_trace</term>
+       <listitem>
+         <para>
+           Used only for explicit user traces
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>void log_debug</term>
+       <listitem>
+         <para>
+           Logs debug information.
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>void log_action</term>
+       <listitem>
+         <para>
+           Log action execution information. Wrap all calls to this
+           function (and other related statements) into an
+           IF_VERBOSE_ACTION macro, so to allow completely removing
+           all the overhead at compile time and reduce it at
+           runtime.
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>void log_parse</term>
+       <listitem>
+         <para>
+           Log SWF parsing  Wrap all calls to this function (and
+           other related statements) into an IF_VERBOSE_PARSE macro,
+           so to allow completely removing all the overhead at
+           compile time and reduce it at runtime.
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>void log_security</term>
+       <listitem>
+         <para>
+           Display a message with security related information.
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>void log_swferror</term>
+       <listitem>
+         <para>
+           This indicates an error in how the binary SWF file was
+           constructed, i.e.probably a bug in the tools used to build
+           the SWF file. Wrap all calls to this function (and other
+           related statements) into an IF_VERBOSE_MALFORMED_SWF
+           macro, so to allow completely removing all the overhead at
+           compile time and reduce it at runtime.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>log_warning(const char* fmt, ...)</term>
+       <listitem>
+         <para>
+           Display a warning message if verbose output is enabled. By
+           default the error messages are always written to the disk
+           file, but optionally displayed in the terminal.
+         </para>
+       </listitem>
+      </varlistentry>
+    </variablelist>
+      
+  </sect3>
+
+  <sect3 id="cppapi">
+    <title>Logging System C++ API</title>
+
+    <para>
+      This is the new C++ streams based API that can be used to print
+      C++ objects natively. All output lines are timestamped.       
+    </para>
+
+    <para>
+      There are two macros used for program tracing. these can be used
+      in both C or C++ code with one little difference. Since C
+      doesn't have destructors, you must call
+      <emphasis>GNASH_REPORT_RETURN</emphasis> at the end of a function to
+      display the function returning message.
+    </para>
+
+    <variablelist>
+      <varlistentry>
+       <term>GNASH_REPORT_FUNCTION;</term>
+       <listitem>
+         <para>
+           When this is included in a C++ method, a message is
+           printed when entering and exiting this method by hooking
+           into the constructor and destructor. These are always
+           written to the disk file, but optionally written to the
+           screen only at the highest levels of verbosity.
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>GNASH_REPORT_RETURN;</term>
+       <listitem>
+         <para>
+           This is used by C functions to print the returning from
+           function debug message. For C++, this macro is executed
+           automatically by the destructor.
+         </para>
+       </listitem>
+      </varlistentry>
+    </variablelist>
+
+    <para>
+      This is the main API for the logging system. By default
+      everything is setup to write to the default
+      <emphasis>gnash-dbg.log</emphasis> file whenever a verbose option is
+      supplied. Optionally it is possible to open a log file with a
+      specified name, allowing multiple output files.
+    </para>
+    
+    <variablelist>
+      <varlistentry>
+       <term>closeLog(void)</term>
+       <listitem>
+         <para>
+           Close a debug log. The disk file remains.
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>removeLog(void)</term>
+       <listitem>
+         <para>
+           Delete the debug log file from disk.
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>setVerbosity(void)</term>
+       <listitem>
+         <para>
+           Increment the verbosity level.
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>setVerbosity(int)</term>
+       <listitem>
+         <para>
+           Set the verbosity level.
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>setStamp(bool flag)</term>
+       <listitem>
+         <para>
+           If <emphasis>flag</emphasis> is <emphasis>true</emphasis>, then 
print a
+           timestamp prefixed to every output line. If
+           <emphasis>flag</emphasis> is <emphasis>false</emphasis>, then don't 
print
+           a timestamp.
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>setWriteDisk(bool flag)</term>
+       <listitem>
+         <para>
+           If <emphasis>flag</emphasis> is <emphasis>true</emphasis>, then 
create the
+           disk file. If <emphasis>flag</emphasis> is 
<emphasis>false</emphasis>,
+           then don't create the disk file.
+         </para>
+       </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </sect3>
+
+</sect2>

Index: doc/C/refmanual/memory.xml
===================================================================
RCS file: doc/C/refmanual/memory.xml
diff -N doc/C/refmanual/memory.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/memory.xml  3 Mar 2008 23:46:49 -0000       1.2.2.2
@@ -0,0 +1,50 @@
+<sect1 id="spec-memory">
+  <title>Memory Management</title>
+  
+  <para>
+    One of the new features of &app; &appversion; is the garbage
+    collector.  The garbage collector manages complex &AS; variables,
+    which are the only ones that are shared by references.  In &app;,
+    these are <command>as_object</command> class instances created by &AS;
+    (i.e. not those created by playhead control:
+    <command>placeobject</command>/<command>removeobject</command>). 
+  </para>
+  
+  <para>
+    Collected objects are those allocated due to &AS; explicit or implicit
+    calls.  Explicit all are any user-defined statements that allocate new
+    objects, such as arrays, Objects, or script-created movieclips.
+    Implicit calls are the built-in functions that can be deleted by
+    arbitrary user calls. 
+  </para>
+  
+  <para>
+    Any object that is a candidate for garbage collecting is stored in a
+    list owned by the collector.  This list is filled by an executing
+    action context whenever a collectible object is allocated on the
+    heap. 
+  </para>
+  
+  <para>
+    The garbage collector starts at the very end of an execution context,
+    rather than using a threshold to trigger it.  At this point, the
+    virtual machine is in a "stable" state; any still-reachable object has
+    its roots in one of the currently live character instances (stage
+    characters). 
+  </para>
+  
+  <para>
+    The collector is a conservative collector.  Any object on the
+    collectibles list is marked as <guilabel>UNREACHABLE</guilabel>, an
+    iterative scan starting from the roots marks any still-reachable
+    object, and a final purge releases all
+    still-<guilabel>UNREACHABLE</guilabel> resources. 
+  </para>
+  
+  <para>
+    This garbage collector has reduced the memory footprint of &app;.
+    However, the most current, available test data indicated the following
+    runtime memory footprint: 
+  </para>
+  
+</sect1>

Index: doc/C/refmanual/new_as_class.xml
===================================================================
RCS file: doc/C/refmanual/new_as_class.xml
diff -N doc/C/refmanual/new_as_class.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/new_as_class.xml    3 Mar 2008 23:46:49 -0000       1.3.2.2
@@ -0,0 +1,218 @@
+<chapter id="newclass">
+  <title>Adding New ActionScript Class</title>
+  
+  <para>
+    In this document, the term 'ActionScript class' refers to the
+    C++ class which is instantiated by Gnash when some ActionScript
+    code instantiates a corresponding class.  The C++ class
+    stores instance data and implements the methods which are 
+    called on the object in the ActionScript code.
+  </para>
+
+  <para>
+    Adding a new ActionScript class is relatively simple, but the
+    process is complicated by the fact that the interface has evolved
+    over time and the current code base represents several different
+    formats.  This document describes the current interface.  The
+    Boolean class should be considered the authoritative example of
+    a modern ActionScript class.
+  </para>
+  
+  <para>
+    ActionScript classes contain a header file and a C++
+    implementation.  The name is usually the name of the
+    class as it is called in the ActionScript specifications;
+    for instance <emphasis>Boolean.cpp</emphasis> for the Boolean class.
+  </para>
+  
+  <sect1 id="prototype">
+    <title>Prototype</title>
+    
+    <para>
+      In ActionScript, a prototype is a base object which contains
+      all the methods that an instantiated object will contain.
+      In short, it contains every part of the class except for
+      the portions dealing with the storage of instance data.
+    </para>
+    <para>
+      In Gnash, the prototype of an ActionScript object is 
+      implemented as an <emphasis>as_object</emphasis>.
+      At startup, the methods and properties of the ActionScript class
+      are attached to the <emphasis>as_object</emphasis>.  The
+      following example demonstrates how methods can be attached:
+      <programlisting>
+       static void
+       attachBooleanInterface(as_object&amp; o) {
+         o.init_member("toString", new builtin_function(boolean_tostring));
+         o.init_member("valueOf", new builtin_function(boolean_valueof));
+       }
+      </programlisting>
+    </para>
+    <para>
+      Static properties can also be added to the ActionScript prototype
+      (<link linkend="properties">dynamic properties</link> 
+      are addressed later).  They are attached in a similar way:
+      <programlisting>
+       o.init_member("myProperty", as_value("HelloWorld"));
+      </programlisting>
+    </para>
+    <para>
+      Properties which have been added in this manner can be
+      directly accessed in ActionScript code without a function
+      call, as this piece of ActionScript code compiled by Ming's
+      <emphasis>makeswf</emphasis> compiler demonstrates:
+      <programlisting>
+       // Get the value of the myProperty property
+       if (node.myProperty == "HelloWorld") {
+         trace("MATCHED");
+       }
+      </programlisting>
+    </para>
+  </sect1>
+  
+  <sect1 id="declaration">
+    <title>Declaration</title>
+    
+    <para>
+      A new class should derive from <emphasis>as_object</emphasis>,
+      which is the base class of every ActionScript object in Gnash.
+    </para>
+  </sect1>
+  
+  <sect1 id="instantiation">
+    <title>Instantiation</title>
+    
+    <para>
+      When a new object is needed, instance data is added to
+      the methods and properties inherited from the prototype.
+    </para>
+    <para>
+      The init method should be called in the constructor in
+      <emphasis>Global.cpp</emphasis>, where all other ActionScript
+      classes are similarly referenced. This method constructs a
+      prototype, which is implemented as an
+      <emphasis>as_object</emphasis>.  In addition, the method 
+      registers the constructor to be used for future object creation,
+      and attaches methods and properties to the prototype.
+    </para>
+  </sect1>
+  
+  <sect1 id="methods">
+    <title>Methods</title>
+    
+    <para>
+      Every method you implement and 
+      <link linkend="prototype">attach</link> will receive an
+      &fn_call; data structure as an argument when it is called.
+    </para>
+    
+    <sect3 id="arguments">
+      <title>Accessing Arguments</title>
+      <para>
+       The arguments stored in &fn_call;
+       should be accessed using <emphasis>arg()</emphasis>.  For
+       instance, the first element can be popped with
+       <emphasis>fn.arg(0)</emphasis>.
+      </para>
+      <para>
+       The element popped off the stack is an 
+       <link linkend="as_value"><emphasis>as_value</emphasis>
+       object</link>.
+      </para>
+    </sect3>
+    
+    <sect3 id="return">
+      <title>Returning a Value to ActionScript</title>
+      <para>
+       The return value should be an
+       <link linkend="as_value"><emphasis>as_value</emphasis> 
+       object</link>.  For example:
+       <programlisting>
+         return as_value('Goodbye, cruel world.');
+       </programlisting>
+      </para>
+    </sect3>
+    
+    <sect3 id="additional_fn_call">
+      <title>Additional &fn_call; Members</title>
+      <para>
+       There are two other useful members of the &fn_call;
+       structure, namely <emphasis>this_ptr</emphasis> and
+       <emphasis>nargs</emphasis>.  The former points to the
+       class which is invoking this method, while the latter
+       is a count of the number of 
+       <link linkend="arguments">arguments in the stack</link>.
+      </para>
+      <para>
+       You may also see instances of the <emphasis>env</emphasis>
+       pointer being used.   This is being deprecated.  Instances
+       which could be replaced with
+       <link linkend="arguments"><emphasis>arg()</emphasis></link>
+       are already deprecated; other uses will be deprecated
+       in the near future.
+      </para>
+      <para>
+       Beyond the <emphasis><link 
+       linkend="arguments">arg()</link></emphasis> method, there
+       is one method of note.  <emphasis>dump_args()</emphasis>
+       can be used in debugging to output the entire argument
+       stack.
+      </para>
+    </sect3>
+  </sect1>
+  
+  <sect1 id="properties">
+    <title>Dynamic Properties</title>
+    <para>
+      This section describes accessors to dynamic properties.
+      Read-only properties are described
+      in the <link linkend="prototype">prototype</link> section.
+    </para>
+    <para>
+      Accessors should be written as a single get/set method.
+      Previously this was done by overriding
+      <emphasis>get_member()</emphasis> and 
+      <emphasis>set_member()</emphasis>, but this practice
+      is deprecated.  
+    </para>
+    <para> 
+      The accessor is written so that it sets the property
+      if it is called with an argument, and puts the property in
+      the <link linkend="methods">&fn_call;</link>
+      <link linkend="return">result pointer</link>.  For instance:
+      <programlisting>
+       void
+       MyClass::myProperty_getset(const fn_call&amp; fn) {     
+         boost::intrusive_ptr&lt;MyClass&gt; ptr = 
ensureType&lt;MyClass&gt;(fn.this_ptr);
+       
+         // setter
+         if ( fn.nargs > 0 ) {
+           bool h = fn.arg(0).to_bool();
+           ptr->MyMethod(h);
+           return;
+          }
+       
+         // getter
+         bool h = ptr->MyMethod();
+         fn.result->set_bool(h);
+       }
+      </programlisting>
+    </para>
+    <para> 
+      It has not yet been decided whether properties should be set
+      in the <link linkend="prototype">exported interface</link> 
+      or attached to instances of the class.  A property is attached
+      in the following manner:
+      <programlisting>
+       boost::intrusive_ptr&lt;builtin_function&gt; gettersetter;
+       gettersetter = new builtin_function(&amp;MyClass::myProperty_getset, 
NULL);
+       o.init_property("myProperty", *gettersetter, *gettersetter);
+      </programlisting>
+    </para>
+  </sect1>
+
+  &asvalue;
+  &object;
+  
+</chapter>
+

Index: doc/C/refmanual/object.xml
===================================================================
RCS file: doc/C/refmanual/object.xml
diff -N doc/C/refmanual/object.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/object.xml  3 Mar 2008 23:46:50 -0000       1.2.2.2
@@ -0,0 +1,318 @@
+<sect1 id="asobject">
+  <title>Object ActionScript Class</title>
+
+  <para>
+    This class implements an Object object.
+  </para>
+
+  <sect2 id="objectmethods">
+    <title>The Methods of the  Class</title>
+    <para>
+      <variablelist>
+
+       <varlistentry>
+         <term>addProperty()</term>
+         <listitem>
+           <para>
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>registerClass()</term>
+         <listitem>
+           <para>
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>toString()</term>
+         <listitem>
+           <para>
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>unwatch()</term>
+         <listitem>
+           <para>
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>valueOf()</term>
+         <listitem>
+           <para>
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>watch()</term>
+         <listitem>
+           <para>
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>Sharedclear()</term>
+         <listitem>
+           <para>
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>Sharedflush()</term>
+         <listitem>
+           <para>
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>SharedgetLocal()</term>
+         <listitem>
+           <para>
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>SharedgetSize()</term>
+         <listitem>
+           <para>
+           </para>
+         </listitem>
+       </varlistentry>
+      </variablelist>
+    </para>
+  </sect2>
+  <sect2 id="objectprops">
+    <title>The Properties of the Object Class</title>
+    
+    <para>
+      <variablelist>
+
+       <varlistentry>
+         <term>constructor</term>
+         <listitem>
+           <para>
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>__proto__</term>
+         <listitem>
+           <para>
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>__resolve</term>
+         <listitem>
+           <para>
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>Shareddata</term>
+         <listitem>
+           <para>
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>SharedonStatus</term>
+         <listitem>
+           <para>
+           </para>
+         </listitem>
+       </varlistentry>
+
+      </variablelist>
+    </para>
+  </sect2>
+
+  <sect2 id="objectconf">
+    <title>Object Class Conformance</title>
+    
+    <para>
+      <informaltable frame="all">
+       <?dbhtml table-width="75%" ?>
+       <tgroup cols="2">
+         <thead>
+           <row>
+             <entry valign="top">
+               <para>Class Name</para>
+             </entry>
+             <entry valign="top">
+               <para>Conformance</para>
+             </entry>
+           </row>
+         </thead>
+         <tbody>
+           <row>
+             <entry valign="top" align="left">
+               <para>addProperty()</para>
+             </entry>
+             <entry valign="top" align="center">
+               <para>
+                 This method has an unknown status.
+               </para>
+             </entry>
+           </row>
+           <row>
+             <entry valign="top" align="left">
+               <para>registerClass()</para>
+             </entry>
+             <entry valign="top" align="center">
+               <para>
+                 This method has an unknown status.
+               </para>
+             </entry>
+           </row>
+           <row>
+             <entry valign="top" align="left">
+               <para>toString()</para>
+             </entry>
+             <entry valign="top" align="center">
+               <para>
+                 This method has an unknown status.
+               </para>
+             </entry>
+           </row>
+           <row>
+             <entry valign="top" align="left">
+               <para>unwatch()</para>
+             </entry>
+             <entry valign="top" align="center">
+               <para>
+                 This method has an unknown status.
+               </para>
+             </entry>
+           </row>
+           <row>
+             <entry valign="top" align="left">
+               <para>valueOf()</para>
+             </entry>
+             <entry valign="top" align="center">
+               <para>
+                 This method has an unknown status.
+               </para>
+             </entry>
+           </row>
+           <row>
+             <entry valign="top" align="left">
+               <para>watch()</para>
+             </entry>
+             <entry valign="top" align="center">
+               <para>
+                 This method has an unknown status.
+               </para>
+             </entry>
+           </row>
+           <row>
+             <entry valign="top" align="left">
+               <para>Sharedclear()</para>
+             </entry>
+             <entry valign="top" align="center">
+               <para>
+                 This method has an unknown status.
+               </para>
+             </entry>
+           </row>
+           <row>
+             <entry valign="top" align="left">
+               <para>Sharedflush()</para>
+             </entry>
+             <entry valign="top" align="center">
+               <para>
+                 This method has an unknown status.
+               </para>
+             </entry>
+           </row>
+           <row>
+             <entry valign="top" align="left">
+               <para>SharedgetLocal()</para>
+             </entry>
+             <entry valign="top" align="center">
+               <para>
+                 This method has an unknown status.
+               </para>
+             </entry>
+           </row>
+           <row>
+             <entry valign="top" align="left">
+               <para>SharedgetSize()</para>
+             </entry>
+             <entry valign="top" align="center">
+               <para>
+                 This method has an unknown status.
+               </para>
+             </entry>
+           </row>
+           <row>
+             <entry valign="top" align="left">
+               <para>constructor</para>
+             </entry>
+             <entry valign="top" align="center">
+               <para>
+                 This property has an unknown status.
+               </para>
+             </entry>
+           </row>
+           <row>
+             <entry valign="top" align="left">
+               <para>__proto__</para>
+             </entry>
+             <entry valign="top" align="center">
+               <para>
+                 This property has an unknown status.
+               </para>
+             </entry>
+           </row>
+           <row>
+             <entry valign="top" align="left">
+               <para>__resolve</para>
+             </entry>
+             <entry valign="top" align="center">
+               <para>
+                 This property has an unknown status.
+               </para>
+             </entry>
+           </row>
+           <row>
+             <entry valign="top" align="left">
+               <para>Shareddata</para>
+             </entry>
+             <entry valign="top" align="center">
+               <para>
+                 This property has an unknown status.
+               </para>
+             </entry>
+           </row>
+           <row>
+             <entry valign="top" align="left">
+               <para>SharedonStatus</para>
+             </entry>
+             <entry valign="top" align="center">
+               <para>
+                 This property has an unknown status.
+               </para>
+             </entry>
+           </row>
+         </tbody>
+       </tgroup>
+      </informaltable>
+    </para>
+  </sect2>  
+</sect1>

Index: doc/C/refmanual/plugin.xml
===================================================================
RCS file: doc/C/refmanual/plugin.xml
diff -N doc/C/refmanual/plugin.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/plugin.xml  3 Mar 2008 23:46:50 -0000       1.3.2.2
@@ -0,0 +1,353 @@
+<chapter id="nsapi">
+  <title>Mozilla/Firefox NPAPI Plugin</title>
+
+  <para>
+    The Mozilla SDK has two API layers for plugins. The older layer is
+    documented in the <ulink type="http"
+    url="http://www.gnu.org/software/gnash/manual/plugin.pdf";>
+    Geeko Plugin API Reference</ulink>, and the newer layer doesn't
+    appear to be documented. The new API is simpler, and is portable
+    across multiple versions of Mozilla or Firefox. The new API is
+    just a layer on top of the older one, so this manual still
+    applies.
+  </para>
+
+  <para>
+    Most of the programming of a plugin is filling in real emphasis for
+    the standard API functions and methods. Firefox uses these to
+    create the plugin, and to send it data.
+  </para>
+
+  <para>
+    When initializing or destroying a plugin, no matter how many
+    instances are being used, the C API is used. These functions are
+    typically called once for each plugin that is loaded.
+  </para>
+    
+  <sect1 id="plugincapi">
+    <title>Plugin C API</title>
+
+    <para>
+      The lower layer is a C based API which is used by Firefox to
+      initialize and destroy a plugin. This is so a plugin can be
+      portable across multiple systems, since C++ emphasis is not portable
+      between most C++ compilers. This is where most of the behind the
+      scenes work is done in a plugin. For Gnash, the sources this
+      lower layer are in <emphasis>plugin/mozilla-sdk</emphasis>. They were
+      added to the Gnash source tree so it wouldn't be necessary to
+      have the Mozilla development packages installed to compile the
+      Gnash plugin.
+    </para>
+
+    <para>
+      This is also the older API used for plugins, so is usually the
+      one used if you dig around for plugin examples on the web. These
+      are the main functions which have to be implemented in a plugin
+      for it to be recognized by the browser, and to be initialized
+      and destroyed.
+    </para>
+
+    <variablelist>
+      <varlistentry>
+       <term>NS_PluginInitialize</term>
+       <listitem>
+         <para>
+           This C function gets called once when the plugin is
+           loaded, regardless of how many instantiations there are
+           actually playing movies. So this is where all the one
+           time only initialization stuff goes that is shared by all
+           the threads.
+         </para>
+         
+       </listitem>
+      </varlistentry>
+      
+      <varlistentry>
+       <term>NS_NewPluginInstance</term>
+       <listitem>
+         <para>
+           This instantiates a new object for the browser. Returning
+           a pointer to the C++ plugin object is what ties the C++
+           and C emphasis parts of the API together.
+         </para>
+       </listitem>
+      </varlistentry>
+      
+      <varlistentry>
+       <term>NS_DestroyPluginInstance</term>
+       <listitem>
+         <para>
+           This destroys our instantiated object when the browser is
+           done.
+         </para>
+       </listitem>
+      </varlistentry>
+      
+      <varlistentry>
+       <term>NS_PluginShutdown</term>
+       <listitem>
+         <para>
+           This is called when a plugin is shut down, so this is
+           where all the one time only shutdown stuff goes.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>NPP_GetMIMEDescription</term>
+       <listitem>
+         <para>
+           This is called to get the MIME types the plugin supports.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>NS_PluginGetValue</term>
+       <listitem>
+         <para>
+           This is used by Firefox to query information from the
+           plugin, like the supported MIME type, the version number,
+           and a description.
+         </para>
+       </listitem>
+      </varlistentry>      
+    </variablelist>
+  </sect1>
+
+  <sect1 id="plugincppapi">
+    <title>Plugin C++ API</title>
+
+    <para>
+      The higher level layer is the one we are most concerned
+      with. This is an instantiation of the
+      <emphasis>nsPluginInstanceBase</emphasis> class, as defined by the
+      Mozilla SDK, for our plugin. With this API, a plugin is mostly
+      defining the standard entry points for Firefox, and the emphasis
+      that implements the glue between the Firefox and our plugin.
+    </para>
+
+    <para>
+      These are called for each instantiation of plugin. If there are
+      three Flash movies on a web page, then three instances are
+      created. Unfortunately for plugin programmers, these functions
+      may randomly be called more than once, so it's good to use
+      initialization flags for things that should only be done one per
+      thread. For instance, <emphasis>nsPluginInstance::init()</emphasis> and
+      <emphasis>nsPluginInstance::SetWindow()</emphasis> are called more than
+      once, so the plugin must protect against actions that could be
+      destructive.
+    </para>
+
+    <variablelist>
+      <varlistentry>
+       <term>nsPluginInstance::nsPluginInstance</term>
+       <listitem>
+         <para>
+           Create a new plugin object.
+         </para>
+       </listitem>
+      </varlistentry>
+    
+      <varlistentry>
+       <term>nsPluginInstance::init</term>
+       <listitem>
+         <para>
+           This methods initializes the plugin object, and is
+           called for every movie which gets played. This is where
+           the thread-specific information goes.
+         </para>
+       </listitem>
+      </varlistentry>
+      
+      <varlistentry>
+       <term>nsPluginInstance::SetWindow</term>
+       <listitem>
+         <para>
+           This sets up the window the plugin is supposed to render
+           into. This calls passes in various information used by
+           the plugin to setup the window. This may get called
+           multiple times by each instantiated object, so it can't
+           do much but window specific setup here. This is where the
+           main emphasis is that sets up the window for the plugin.
+         </para>
+       </listitem>
+      </varlistentry>
+      
+      <varlistentry>
+       <term>nsPluginInstance::NewStream</term>
+       <listitem>
+         <para>
+           Opens a new incoming data stream, which is the flash
+           movie we want to play. A URL can be pretty ugly, like in
+           this example:
+           
http://www.sickwave.com/swf/navbar/navbar_sw.swf?atfilms=http%3a//www.atm.com/af/home/&amp;shickwave=http%3a//www.sickwave.com&amp;gblst=http%3a//gbst.sickwave.com/gb/gbHome.jsp&amp;known=0
 
../flash/gui.swf?ip_addr=foobar.com&amp;ip_port=3660&amp;show_cursor=true&amp;path_prefix=../flash/&amp;trapallkeys=true"
+           So this is where we parse the URL to get all the options
+           passed in when invoking the plugin.
+         </para>
+       </listitem>
+      </varlistentry>
+      
+      <varlistentry>
+       <term>nsPluginInstance::Write</term>
+       <listitem>
+         <para>
+           Read the data stream from Mozilla/Firefox.  For now we
+           read the bytes and write them to a disk file.
+         </para>
+       </listitem>
+      </varlistentry>
+      
+      <varlistentry>
+       <term>nsPluginInstance::WriteReady</term>
+       <listitem>
+         <para>
+           Return how many bytes we can read into the buffer.
+         </para>
+       </listitem>
+      </varlistentry>
+      
+      <varlistentry>
+       <term>nsPluginInstance::DestroyStream</term>
+       <listitem>
+         <para>
+           Destroy the data stream we've been reading. For Gnash,
+           when the stream is destroyed means we've grabbed the
+           entire movie. So we signal the thread to start reading and
+           playing the movie.
+         </para>
+       </listitem>
+      </varlistentry>
+      
+      <varlistentry>
+       <term>nsPluginInstance::shut</term>
+       <listitem>
+         <para>
+           This is where the movie playing specific shutdown emphasis goes.
+         </para>
+       </listitem>
+      </varlistentry>
+      
+      <varlistentry>
+       <term>nsPluginInstance::~nsPluginInstance</term>
+       <listitem>
+         <para>
+           This destroys our plugin object.
+         </para>
+       </listitem>
+      </varlistentry>
+    
+      <varlistentry>
+       <term>NS_PluginInitialize::initGL</term>
+       <listitem>
+         <para>
+           This is a Gnash internal function that sets up OpenGL.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>NS_PluginInitialize::destroyContext</term>
+       <listitem>
+         <para>
+           This is a Gnash internal function that destroys a GLX
+           context. 
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>nsPluginInstance::getVersion</term>
+       <listitem>
+         <para>
+           This returns the version of Mozilla this plugin supports.
+         </para>
+       </listitem>
+      </varlistentry>
+      
+      <varlistentry>
+       <term>nsPluginInstance::GetValue</term>
+       <listitem>
+         <para>
+           This returns information to the browser about the plugin's
+           name and description.
+         </para>
+       </listitem>
+      </varlistentry>
+      
+      <varlistentry>
+       <term>nsPluginInstance::URLNotify</term>
+       <listitem>
+         <para>
+         </para>
+       </listitem>
+      </varlistentry>
+    </variablelist> 
+  </sect1>
+
+  <sect1 id="glthread">
+    <title>OpenGL and Threads</title>
+    <para>
+      Neither OpenGL nor X11 has any built-in support for threads. Most
+      actions aren't even atomic, so care has to be made to not corrupt
+      any internal data. While it is difficult to render OpenGL from
+      multiple threads, it can be done with the proper locking. The
+      downside is the locking adds a performance hit, since all the
+      threads will have to have the access synchronized by using
+      mutexes.
+    </para>
+    
+    <para>
+      The X11 context is maintained one per instantiation of the
+      plugin. It is necessary to lock access to the X11 context when
+      using threads by using <emphasis>XLockDisplay()</emphasis> and
+      <emphasis>XUnlockDisplay()</emphasis>. A connection to the X11
+      server is opened for every instantiation of the plugin using
+      <emphasis>XOpenDisplay()</emphasis>.
+    </para>
+    
+    <para>
+      The <emphasis>GLX Context</emphasis> is maintained one per
+      instantiation of the plugin for a web page. If there are more
+      than one Flash movie, there is more than one GLX Context. A GLX
+      context can be created by using <emphasis>glXCreateContext()</emphasis>,
+      and then later destroyed by using 
<emphasis>glXDestroyContext()</emphasis>.
+      When swapping threads, the context is changed using
+      <emphasis>glXMakeCurrent()</emphasis>.
+    </para>
+    
+    <para>
+      All the emphasis that directly accesses a GLX context or the X11
+      display must be wrapped with a mutex.
+    </para>
+    
+  </sect1>
+  
+  <sect1 id="eventhandle">
+    <title>Plugin Event Handling</title>
+    <para>
+      Firefox on most UNIX systems is a GTK+ application, so it is
+      possible to have the plugin hook into the X11 event handling via
+      GLX or GTK. Since Firefox uses GTK, so does Gnash. This also
+      allows the addition of a right-click mouse menu for controlling
+      the player. The GTK build of Gnash offers the best browsing
+      experience as it's more functional than the SDL version.
+    </para>
+
+    <para>
+      It is also possible to disable the <emphasis>GTK</emphasis> support so
+      only the older <emphasis>SDL</emphasis> support is used. In this case 
+      Gnash can't support event handling within the browser. This
+      means that when using the SDL of the plugin, mouse clicks and
+      keys pressed get ignored. Windows also can't be resized, and
+      sometimes they overrun their boundaries as well. To disable the
+      GTK support and force SDL to be used anyway, configure with
+      <emphasis>--disable-glext</emphasis>
+    </para>
+
+    <para>
+      
+    </para>
+
+  </sect1>  
+</chapter>

Index: doc/C/refmanual/revisions.xml
===================================================================
RCS file: doc/C/refmanual/revisions.xml
diff -N doc/C/refmanual/revisions.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/revisions.xml       3 Mar 2008 23:46:50 -0000       1.1.2.2
@@ -0,0 +1,19 @@
+<revhistory>
+  
+  <revision> 
+    <revnumber>Gnash User Manual version 0.4</revnumber> 
+    <date>Feb 2008</date>
+    <revdescription> 
+      <para role="author">Rob Savoye
+      <email>address@hidden</email>
+      The end user parts of the manual have been pulled out of
+      the original version of the manual, and rewritten. This
+      is now a reference manual only.
+      </para>
+      
+      <para role="publisher">Open Media Now! Foundation</para>
+    </revdescription> 
+  </revision> 
+  
+</revhistory> 
+  
\ No newline at end of file

Index: doc/C/refmanual/rtmp.xml
===================================================================
RCS file: doc/C/refmanual/rtmp.xml
diff -N doc/C/refmanual/rtmp.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/rtmp.xml    3 Mar 2008 23:46:51 -0000       1.1.2.2
@@ -0,0 +1,561 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter id="rtmp">
+  <title>RTMP Protocol</title>
+  
+  <para>
+    This document is based mostly on my own reverse engineering of the
+    RTMP protocol and AMF format. <emphasis>tcpdump</emphasis> and
+    <emphasis>ethereal</emphasis> are your friend. Some additional info that 
got
+    me started was from the <ulink  type="http"
+       url="http://www.osflash.org/red5";>Red5</ulink>
+    project. <emphasis>Red5</emphasis> is the only other open source Flash
+    server. So some details are still vague, but as the implementation
+    appears to work, we'll figure out what they are later.
+  </para>
+
+  <para>
+    The Real Time Messaging Protocol was created by MacroMedia (now
+    Adobe) for delivering Flash objects and video over a network
+    connection. Currently the only servers which support this format
+    are the MacroMedia Media sever, and the Open Source Red5 project.
+  </para>
+
+  <para>
+    This is a simple protocol, optimized for poor bandwidth
+    connections. It can support up to 64 concurrent streams over the
+    same network connection. Part of each AMF packet header contains
+    the index number of the stream. A single RTMP message can contain
+    multiple AMF packets.
+  </para>
+
+  <para>
+    An RTMP connection uses Tcp/ip port 1935. It is also possible to
+    tunnel RTMP over an HTTP connection using port 80. Each AMF packet
+    is 128 bytes long except for streaming audio, which has 64 byte
+    packets.
+  </para>
+
+  <para>
+    The basics of the RTMP protocol are as follows. All communications
+    are initiated by the client.
+    <mediaobject>
+      <imageobject>
+       <imagedata align="center" fileref="images/rtmp.png"/>
+      </imageobject>
+    </mediaobject>
+  </para>
+
+  <para>
+    The client starts the RTMP connection by sending a single byte
+    with a value of 0x3. This byte is followed by a data block of 1536
+    bytes. The format if this data block is unknown, but it appears to
+    not be actually used by the protocol except as a handshake.
+  </para>
+
+  <para>
+    The server receives this packet, stores the 1536 byte data block,
+    and then send a single byte with the value of 0x3, followed by two
+    1536 data blocks. The second data block is the full contents of
+    the original data block as sent by the client.
+  </para>
+
+  <para>
+    The client receives the 1536 byte data block, and if they match,
+    the connection is established. After the handshake process is
+    done, there are three other messages that the client sends to the
+    sever to start the data flowing.
+  </para>
+
+  <para>
+    The first AMF packet sent to the server contains the
+    <emphasis>connect</emphasis> packet. This doesn't appear to do
+    much but notify the server the client is happy with the
+    handshake, and ready to start reading packets.
+  </para>
+
+  <para>
+    The second packet is the <emphasis>NetConnection</emphasis> object from
+    the client. This ActionScript class is used by the Flash movie to
+    create the network connection to the server.
+  </para>
+
+  <para>
+    The third packet is the <emphasis>NetStream</emphasis> object from the
+    client. This is the ActionScript class used to specify the file to
+    be streamed by the server.
+  </para>
+
+  <para>
+    The RTMP packet for our example looks like this:
+   
+    <programlisting>
+      030000190000c91400000000020007connect00?f0000000000000030003app0200#
+      software/gnash/tests/1153948634.flv0008flashVer02000cLNX 6,0,82,0 0006
+      swfUrl02001dfile:///file|%2Ftmp%2Fout.swfc30005tcUrl\002\0004
+      rtmp://localhost/software/gnash/tests/1153948634.flv\000\000\t
+      \002\000\005userx
+    </programlisting>
+    
+    We'll take this apart in a bit, but you can see how all three AMF
+    packets are in the same message. The message is received in
+    several 128 byte blocks, with the last one being less than
+    that. The total size of the RTMP message is in the header, so the
+    reader can tell if the entire message was read or not.
+  </para>
+  
+  <para>
+    The RTMP header is first, followed by the connect message as an
+    ASCII string as the message body. The following AMF packet is the
+    <emphasis>NetConnection</emphasis> one, which specifies that this is coming
+    from a Flash application. This also contains the file path the server
+    can use to find the file to stream. This is then followed by the
+    version number, which I assume is the version of the Flash player,
+    so the server knows what it is talking to.
+  </para>
+
+  <para>
+    The third packet is the one from <emphasis>NetStream</emphasis>, which
+    specifies the URL used for the movie, followed by the user name
+    for a semblance of security.
+  </para>
+
+  <para>
+    For the next level of detail, we'll explain the format of AMF. AMF
+    is used by the RTMP protocol to transfer data. Each Flash object
+    is encapsulated in an AMF packet, including streaming audio or
+    video.
+  </para>
+
+  <para>
+    The first byte of the RTMP header determines two things about the
+    rest of the message. The first 2 bits of this byte signify the
+    total size of the RTMP header. The RTMP header is of a variable
+    size, so this is important.
+
+    <variablelist>
+      <varlistentry>
+       <term>00</term>
+       <listitem>
+         <para>
+           This specifies the header contains 12 bytes, including
+           this one.
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>01</term>
+       <listitem>
+         <para>
+           This specifies the header contains 8 bytes, including this
+           one.
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>02</term>
+       <listitem>
+         <para>
+           This specifies the header contains 4 bytes, including this
+           one.
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>03</term>
+       <listitem>
+         <para>
+           This specifies the header contains 1 byte, so this is the
+           complete header.
+         </para>
+       </listitem>
+      </varlistentry>
+    </variablelist>
+  </para>
+
+  <para>
+    The other 6 bits in this byte represent the AMF index. As a single
+    RTMP connection can support multiple data streams, this signifies
+    which stream this packet is for. Once an AMF object is fully
+    received by the client, the AMF index may be reused.
+  </para>
+
+  <para>
+    For messages with headers of at least 4 bytes, the next 3 bytes are
+    used by audio and video data packets, but at this time the meaning
+    of this field is unknown.
+  </para>
+
+  <para>
+    For messages with a 8 byte or larger header, the next 3 bytes
+    determine the size of the RTMP message being transmitted. Messages
+    with a 1 byte or 4 byte header use a standard size, 128 bytes for
+    video, and 64 bytes for audio.
+  </para>
+
+  <para>
+    For messages with an 8 byte or larger header, the next byte is the
+    type of the AMF object.
+    
+    <variablelist>
+      <varlistentry>
+       <term>0x3</term>
+       <listitem>
+         <para>
+           This specifies the content type of the RTMP packet is the
+           number of bytes read. This is used to start the RTMP
+           connection.
+         </para>
+       </listitem>
+      </varlistentry> 
+      <varlistentry>
+       <term>0x4</term>
+       <listitem>
+         <para>
+           This specifies the content type of the RTMP message is a
+           <emphasis>ping</emphasis> packet.
+         </para>
+       </listitem>
+      </varlistentry> 
+      <varlistentry>
+       <term>0x5</term>
+       <listitem>
+         <para>
+           This specifies the content type of the RTMP message is
+           server response of some type.
+         </para>
+       </listitem>
+      </varlistentry> 
+      <varlistentry>
+       <term>0x6</term>
+       <listitem>
+         <para>
+           This specifies the content type of the RTMP packet is
+           client request of some type.
+         </para>
+       </listitem>
+      </varlistentry> 
+      <varlistentry>
+       <term>0x8</term>
+       <listitem>
+         <para>
+           This specifies the content type of the RTMP packet is an
+           audio message.
+         </para>
+       </listitem>
+      </varlistentry> 
+      <varlistentry>
+       <term>0x9</term>
+       <listitem>
+         <para>
+           This specifies the content type of the RTMP message is a
+           video packet.
+         </para>
+       </listitem>
+      </varlistentry> 
+      <varlistentry>
+       <term>0x12</term>
+       <listitem>
+         <para>
+           This specifies the content type of the RTMP message is
+           notify. 
+         </para>
+       </listitem>
+      </varlistentry> 
+      <varlistentry>
+       <term>0x13</term>
+       <listitem>
+         <para>
+           This specifies the content type of the RTMP message is
+           shared object.
+         </para>
+       </listitem>
+      </varlistentry> 
+      <varlistentry>
+       <term>0x14</term>
+       <listitem>
+         <para>
+           This specifies the content type of the RTMP message is
+           remote procedure call. This invokes the method of a Flash
+           class remotely.
+         </para>
+       </listitem>
+      </varlistentry> 
+    </variablelist>     
+  
+  </para>
+
+  <para>
+    There are two sets of data types to consider. One set is used by
+    the to specify the content type of the AMF object, the other is an
+    ActionScript data type tag used to denote which type of object is
+    being transferred.
+  </para>
+  
+  <para>
+    The values of the initial type byte are:
+    <variablelist>
+
+      <varlistentry>
+       <term>0x0</term>
+       <listitem>
+         <para>
+           This specifies the data in the AMF packet is a numeric
+           value. All numeric values in Flash are 64 bit,
+           <emphasis>big-endian</emphasis>.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>0x1</term>
+       <listitem>
+         <para>
+           This specifies the data in the AMF packet is a boolean
+           value.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>0x2</term>
+       <listitem>
+         <para>
+           This specifies the data in the AMF packet is an
+           <emphasis>ASCII</emphasis> string. 
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>0x3</term>
+       <listitem>
+         <para>
+           This specifies the data in the AMF packet is a Flash
+           object. The Flash object data type field further along in
+           the message specifies which type of ActionScript object it
+           is.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>0x4</term>
+       <listitem>
+         <para>
+           This specifies the data in the AMF packet is a Flash
+           movie, ie. another Flash movie.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>0x5</term>
+       <listitem>
+         <para>
+           This specifies the data in the AMF packet is a NULL
+           value. NULL is often used as the return code from calling
+           Flash functions.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>0x6</term>
+       <listitem>
+         <para>
+           This specifies the data in the AMF packet is a
+           undefined. This is also used as the return code from
+           calling Flash functions.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>0x7</term>
+       <listitem>
+         <para>
+           This specifies the data in the AMF packet is a reference.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>0x8</term>
+       <listitem>
+         <para>
+           This specifies the data in the AMF packet is a ECMA
+           array.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>0x9</term>
+       <listitem>
+         <para>
+           This specifies the data in the AMF packet is the end of an
+           object definition. As an object is transmitted with
+           multiple AMF packets, this lets the server know when the
+           end of the object is reached.
+         </para>
+       </listitem>
+      </varlistentry>
+
+
+      <varlistentry>
+       <term>0xa</term>
+       <listitem>
+         <para>
+           This specifies the data in the AMF packet is a Strict
+           array.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>0xb</term>
+       <listitem>
+         <para>
+           This specifies the data in the AMF packet is a date.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>0xc</term>
+       <listitem>
+         <para>
+           This specifies the data in the AMF packet is a multi-byte
+           string. Multi-byte strings are used for international
+           language support to represent non <emphasis>ASCII</emphasis>
+           fonts.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>0xd</term>
+       <listitem>
+         <para>
+           This specifies the data in the AMF packet is a an
+           unsupported feature.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>0xe</term>
+       <listitem>
+         <para>
+           This specifies the data in the AMF packet is a record
+           set.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>0xf</term>
+       <listitem>
+         <para>
+           This specifies the data in the AMF packet is a AML
+           object. XML objects are then parsed by the
+           <emphasis>XML</emphasis> ActionScript class.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>0x10</term>
+       <listitem>
+         <para>
+           This specifies the data in the AMF packet is a typed object.
+         </para>
+       </listitem>
+      </varlistentry>
+
+    </variablelist>
+    
+  </para>
+
+  <para>
+    For messages with a 12 byte header, the last 4 bytes are the
+    routing of the message. If the destination is the server, this
+    value is the NetStream object source. If the destination is the
+    client, this is the NetStream object for this RTMP message. A
+    value of 0x00000000 appears to be reserved for the NetConnection
+    object. 
+  </para>
+
+  <para>
+    Multiple AMF streams can be contained in a single RTMP messages,
+    so it's important to check the index of each AMF packet.
+  </para>
+
+  <para>
+    An example RTMP header might look like this. (spaces added between
+    fields for clarity) All the numbers are in hex.
+
+    <screen>
+      03 000019 0000c9 14 000000000
+    </screen>
+    
+    <variablelist>
+      <varlistentry>
+       <term>03</term>
+       <listitem>
+         <para>
+           The first two bits of this byte are the size of the
+           header, which in this example is 00, for a 12 byte
+           header. The next 6 bits is the AMF stream index number,
+           which in this example is 0x3.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>000019</term>
+       <listitem>
+         <para>
+           These 3 bytes currently have an unknown purpose.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>000c9</term>
+       <listitem>
+         <para>
+           Since this example has a 12 byte header, this is the size
+           of the RTMP message, in this case 201 bytes.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>14</term>
+       <listitem>
+         <para>
+           This is the content type of the RTMP message, which in
+           this case is to invoke a remote function call. (which we
+           later see is the connect function).
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>00000000</term>
+       <listitem>
+         <para>
+           The source is the NetConnection object used to start this
+           connection.
+         </para>
+       </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </para>
+
+  &amf;
+
+</chapter>
+  

Index: doc/C/refmanual/sources.xml
===================================================================
RCS file: doc/C/refmanual/sources.xml
diff -N doc/C/refmanual/sources.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/sources.xml 3 Mar 2008 23:46:51 -0000       1.2.2.2
@@ -0,0 +1,33 @@
+<title>Building from Source</title>
+
+<para>
+  Installing from source will involve the following steps:
+  <link linkend="gettingsource">getting the source</link>,
+  <link linkend="codedepend">resolving dependencies</link>,
+  <link linkend="configure">configuration</link>,
+  <link linkend="compile">compilation</link>,
+  <link linkend="runtests">testing</link>, and
+  <link linkend="install">installation</link>.
+  The &app; installation process is fairly standard:
+  <programlisting>
+  ./autogen.sh
+  ./configure &lt;options&gt;
+  make
+  make check
+  make install
+  </programlisting>
+</para>
+<para>
+  Continue reading for detailed step-by-step instructions 
+  of the entire procedure.
+</para>  
+<para>
+  Presently, &app; source is about 16 MB when extracted and
+  <link linkend="configure">configured</link>.  <link
+  linkend="compile">Compilation</link> requires about 100 MB of
+  harddrive space.
+  A minimum of 128 MB of physical RAM is recommended for compiling.
+</para>  
+
+
+

Index: doc/C/refmanual/testing_dependencies.xml
===================================================================
RCS file: doc/C/refmanual/testing_dependencies.xml
diff -N doc/C/refmanual/testing_dependencies.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/testing_dependencies.xml    3 Mar 2008 23:46:51 -0000       
1.3.2.2
@@ -0,0 +1,120 @@
+<sect1 id="testdep">
+  <title>Testing Dependencies</title>
+  
+  <para>
+    &app; tries to run as many tests as possible, but will
+    simply skip tests if the tools to run them are unavailable.
+  </para>
+  
+  <table frame='all' id="testdeps">
+    <title>Testing Dependency Table</title>
+    <tgroup cols='7' align='left' colsep='1' rowsep='1'>
+      <thead>
+       <row>
+         <entry>Name</entry>
+         <entry>Level</entry>
+         <entry>Version</entry>
+         <entry>Description</entry>
+         <entry>Explanation</entry>
+         <entry>apt-get package</entry>
+         <entry>RPM/Yum package</entry>
+         <entry>BSD package</entry>
+       </row>
+      </thead>
+      
+      <tbody>
+       <row>
+         <entry>Ming</entry>
+         <entry>Optional</entry>
+         <entry>0.4.0_beta4 or higher</entry>
+         <entry>
+           Ming is an ActionScript compiler.
+         </entry>
+         <entry>
+           Ming is the primary compiler for ActionScript testcases.
+         </entry>
+         <entry>No distribution packages are available.</entry>
+         <entry>No distribution packages are available.</entry>
+         <entry>No distribution packages are available.</entry>
+       </row>
+       
+       <row>
+         <entry>Mtasc</entry>
+         <entry>Optional</entry>
+         <entry>1.12 or higher</entry>
+         <entry>
+           Mtasc is an ActionScript compiler.
+         </entry>
+         <entry>
+           Mtasc is used in some tests.
+         </entry>
+         <entry><filename>mtasc</filename></entry>
+         <entry>No distribution packages are available.</entry>
+         <entry>No distribution packages are available.</entry>
+       </row>
+       
+       <row>
+         <entry>swfc</entry>
+         <entry>Optional</entry>
+         <entry>part of swftools 0.8.1</entry>
+         <entry>
+           Swfc a swf decompiler.
+         </entry>
+         <entry>
+           Swfc is used in some testcases.
+         </entry>
+         <entry>No distribution packages are available.</entry>
+         <entry>No distribution packages are available.</entry>
+         <entry>No distribution packages are available.</entry>
+       </row>  
+       
+       <row>
+         <entry>swfmill</entry>
+         <entry>Optional</entry>
+         <entry> 0.2.12</entry>
+         <entry>
+           Swfmill is an XML-based SWF (Shockwave Flash) processing tool.
+         </entry>
+         <entry>
+           Swfmill is used in some testcases.
+         </entry>
+         <entry>No distribution packages are available.</entry>
+         <entry>No distribution packages are available.</entry>
+         <entry>No distribution packages are available.</entry>
+       </row>
+
+       <row>
+         <entry>Python</entry>
+         <entry>Optional</entry>
+         <entry>2.4 or higher</entry>
+         <entry>
+           Python is a scripting language.
+         </entry>
+         <entry>
+           Python is used by part of the testing framework.
+         </entry>
+         <entry><filename>python</filename></entry>
+         <entry><filename>python</filename></entry>
+         <entry><filename>python</filename></entry>
+       </row>
+
+       <row>
+         <entry>DejaGnu</entry>
+         <entry>Optional</entry>
+         <entry>1.4 or higher</entry>
+         <entry>
+           DejaGnu is a testing framework.
+         </entry>
+         <entry>
+           DejaGnu is used to run multiple tests in an
+           automated fashion.
+         </entry>
+         <entry><filename>dejagnu</filename></entry>
+         <entry><filename>dejagnu</filename></entry>
+         <entry><filename>dejagnu</filename></entry>
+       </row>
+       
+      </tbody>
+    </tgroup>
+  </table>
+</sect1>

Index: doc/C/refmanual/extensions/extensions.xml
===================================================================
RCS file: doc/C/refmanual/extensions/extensions.xml
diff -N doc/C/refmanual/extensions/extensions.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/extensions/extensions.xml   3 Mar 2008 23:46:52 -0000       
1.3.2.2
@@ -0,0 +1,313 @@
+<chapter id="extensions">
+  <title>Gnash Extensions</title>
+  
+  <para>
+    Gnash supports extending the Flash specification by creating
+    custom ActionScript classes that are compiled code, as opposed to
+    the existing method of defining custom classes as
+    ActionScript. Executing compiled code has many performance
+    benefits over having to interpret the byte stream of the
+    ActionScript opcodes.
+  </para>
+  
+  <para>
+    I can already hear people complaining now about the concept of
+    extending Flash, so this in no way affects Gnash's ability to play
+    Flash movies when functioning as a browser plugin.
+    Gnash's goal is still to function in a way that is compatible
+    with the current proprietary Flash player.
+  </para>
+
+  <para>
+    But at the same time, we see Flash as the ideal scripting language
+    for a digital multi-media streaming environment. There are many
+    resources for Flash movie creators for widgets, higher level APIs,
+    all sorts of desirable things. But for those of use committed to
+    using free software tools for Flash, our options are very
+    limited. 
+  </para>
+
+  <para>
+    Rather than launching a multi-year project to duplicate all
+    classes in the commercial Flash IDE, it's much more efficient to
+    use existing development libraries much like Python or Perl
+    do. The extension mechanism in Gnash allows wrappers to be created
+    for any C or C++ development library. Unlike the proprietary Flash
+    IDE, which compiles all the extension libraries into byte codes
+    from ActionScript, the support is moved to the player side. Movies
+    with all of the goodies of the proprietary IDE in them play in
+    Gnash just fine, as it's all just byte codes by then.
+  </para>
+
+  <para>
+    This trick works because until Flash player version 9, all the
+    ActionScript class names and methods are passed as ASCII strings
+    into the Flash movie. So the Gnash Virtual Machine just loads the
+    extension file if that class name is invoked in the movie. All
+    extension files specify the class name and methods it implements
+    in an identical style as adding any new ActionScript class. The
+    advantage is the class itself is compiled code, and runs much
+    faster than the equivalent byte codes which all have to be
+    interpreted..
+  </para>
+
+  <sect1 id="newext">
+    <title>Creating A New Extension</title>
+
+    <para>
+      Each new extension should live in it's own directory. The
+      extensions included in Gnash are all in the
+      <emphasis>gnash/extensions</emphasis> directory. Creating an extension
+      requires a Makefile.am,
+    </para>
+
+    <para>
+      If you are adding this extension to the Gnash source tree
+      itself, then you need to make two changes to add the new
+      extension.
+    </para>
+
+    <para>
+      The first change is to add the directory to the list in
+      extensions/Makefile.am. This can be done either by adding the
+      new directory to the SUBDIRS setting, or by wrapping it in a
+      conditional test.
+    </para>
+
+    <para>
+      The other change is to add it to the AC_OUTPUT list in
+      <emphasis>configure.ac</emphasis> so the new directory will be
+      configured along with the rest of Gnash.
+    </para>
+
+    <para>
+      Each extension should have an ActionScript source file included
+      that tests the new class, and this file should be referenced in
+      the new Makefile.am in the <emphasis>check_PROGRAMS</emphasis>
+      variable so that "make check" works.
+    </para>
+
+    <para>
+      When creating an extension that is a wrapper for an existing
+      development library API, it's often better to make this a thin
+      layer, than to get carried away with creating beautiful
+      abstractions. Higher-level classes that offer a lot of new
+      functionality are fine, but is different than wrapping a library
+      so it can be used from within Gnash.
+    </para>
+
+    <sect2 id="craftext">
+      <title>Crafting an Extension</title>
+
+      <para>
+       All extensions have the same requirements, namely setting up a
+       few defined function callbacks, which the Gnash VM then uses
+       to do the right thing. The initial two function callbacks are
+       for handling the interface of the newly created object so that
+       Gnash can find and use it.
+      </para>
+
+      <para>
+       The first function is commonly called
+       <emphasis>attachInterface</emphasis>, and this sets the other
+       function callbacks for all the methods this class
+       supports. The method callbacks are attached to the parent
+       class by using <emphasis>init_member()</emphasis> to set a C
+       function pointer to the string value used in the Flash movie.
+      </para>
+
+      <programlisting>
+       // Attach DummyClass 'func1' and 'func2' methods to the given object
+       static void
+       attachInterface(as_object&amp; obj) {
+            obj.init_member("func1", &amp;ext_func1);
+            obj.init_member("func2", &amp;ext_func2);
+       }
+      </programlisting>
+
+      <para>
+       The second function is commonly called
+       <emphasis>getInterface()</emphasis>, and this returns a
+       pointer to a static prototype of the class.
+        Gnash uses garbage collection for ActionScript objects
+        so you need to register the static with the VM to give it
+        a chance to be marked as reachable.
+      </para>
+      <programlisting>
+       static as_object*
+       getInterface()
+       {
+           static boost::intrusive_ptr&lt;as_object&gt; o;
+           if (o == NULL) {
+               o = new as_object();
+                VM::get().addStatic(o);
+                attachInterface(*o);
+           }
+           return o.get();
+       }
+      </programlisting>
+
+      <para>
+       This is the callback that gets executed when constructing a
+       new object for the VM. In this example we'll assume the new
+       ActionScript class is called <emphasis>DummyExt</emphasis>,
+       and has two methods, <emphasis>func1</emphasis> and
+       <emphasis>func2</emphasis>.
+      </para>
+      <programlisting>
+       static as_value
+       dummyext_ctor(const fn_call&amp; fn)
+       {
+           DummyExt *obj = new DummyExt(); // will setup prototypes
+
+           return as_value(obj); 
+       }
+      </programlisting>
+
+      <para>
+       The trick for the above simple constructor to work is that
+        class appartenence is setup in the C++ DummyExt constructor
+        itself, which should derive from as_object and construct the
+        base passing it the interface (prototype) of it's class.
+      </para>
+
+      <programlisting>
+       class DummyExt : public as_object
+        {
+        public:
+           DummyExt()
+                :
+                as_object(getInterface()) // returns the static prototype
+            {}
+
+       };
+      </programlisting>
+
+      <para>
+       Initialize the extension. This is looked for by the extension
+       handling code in each extension, and is executed when the
+       extension is loaded. This is the main entry point into the
+       extension. This function can be found because the prefix of
+       <emphasis>dummyext</emphasis>, which also matches the file
+       name of the extension. Gnash uses the name of the extension
+       file itself when looking for the init function.
+      </para>
+      <programlisting>
+        extern "C" {
+           void
+           dummyext_class_init(as_object &amp;obj)
+           {
+               static builtin_function* cl=NULL;
+               if (!cl)
+                {
+                    // Create a builtin function using the given constructor
+                    // to instanciate objects and exporting the given interface
+                   cl = new builtin_function(&amp;dummyext_ctor, 
getInterface());
+                   VM::get().addStatic(cl); // will forbid to collect the class
+               }
+       
+               obj.init_member("DummyExt", cl);
+           }
+        } // end of extern C
+      </programlisting>
+
+      <para>
+       The callbacks are all C functions. Like all the other code
+       that implements ActionScript, parameters to the function are
+       passed in using the <emphasis>fn_call</emphasis> data
+       structure. The return code, if any, is also returned using
+       this data structure. <emphasis>this_ptr</emphasis> is the
+       object that the method is a member of.
+      </para>
+      <programlisting>
+       // Creates a new button with the label as the text.
+       as_value func1(const fn_call&amp; fn) {
+            // Following line will ensure 'func1' is called for a DummyExt 
instance,
+            // or would throw an exception which should behave as if we 
returned the
+            // undefined value.
+            boost::intrusive_ptr&lt;DummyExt&gt; ptr = 
ensureType&lt;DummyExt&gt;(fn.this_ptr);
+       
+           if (fn.nargs > 0) {
+               std::string label = fn.arg(0).to_string();
+               bool ret = ptr->dummy_text_label(label);
+               return as_value(ret);
+           }
+       }
+      </programlisting>
+
+    </sect2>
+
+  </sect1>
+
+  <sect1 id="debuext">
+    <title>Debugging An Extension</title>
+    
+    <para>
+      As extensions are loaded dynamically at runtime, debugging one
+      can be difficult. You can use GDB, but you have the problem of
+      not being able to set a breakpoint in Gnash until
+      <emphasis>after</emphasis> the extension has been loaded into
+      Gnash's VM. The easy solution is to use the Gnash debugger.
+    </para>
+
+    <para>
+      You can insert these few lines in any file that you wish to
+      manually start the debugger. Once at the console, you can attach
+      GDB to the process. Then you can set breakpoints, etc... and you
+      are at the point of execution where the console was started. To
+      then continue playing the movie, type the <emphasis>c</emphasis>
+      (for continue) command to the Gnash console.
+    </para>
+    <programlisting>
+      // Get the debugger instance
+      static Debugger&amp; debugger = Debugger::getDefaultInstance();
+
+      // Enable the debugger
+      debugger.enabled(true);
+      // Stop and drop into a console
+      debugger.console();
+    </programlisting>
+
+    <para>
+      You can also resort to the time honored technique of creating a
+      loop before the point you want to set a breakpoint for. Gnash
+      will stop playing the movie at this point, and then you can
+      externally attach GDB to the running process, or type
+      <emphasis>^C</emphasis> to drop into the GDB command console.
+    </para>
+    <programlisting>
+      bool stall = true;
+      while (stall) {
+          sleep 1;
+      }
+    </programlisting>
+
+    <para>
+      Once you have set the breakpoints you want, reset the value of
+      the <emphasis>stall</emphasis> variable to break out of the
+      loop, and the Flash movie will then continue playing.
+    </para>
+    <programlisting>
+      (gdb) set variable stall = false;
+      continue
+    </programlisting>
+
+  </sect1>
+  
+  <sect1 id="inclext">
+    <title>Included Extensions</title>
+
+    <para>
+      Gnash has some extensions included in the distribution. This is
+      mostly because they were written by the Gnash team. Extensions
+      can be external to gnash, Gnash needs no compiled in knowledge
+      to load an extension file.
+    </para>
+    
+    &gtkext;
+    &fileext;
+    &mysqlext;
+
+  </sect1>
+
+</chapter>

Index: doc/C/refmanual/extensions/fileext.xml
===================================================================
RCS file: doc/C/refmanual/extensions/fileext.xml
diff -N doc/C/refmanual/extensions/fileext.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/extensions/fileext.xml      3 Mar 2008 23:46:52 -0000       
1.1.2.2
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="utf-8"?>
+<sect3 id="fileioext">
+  <title>File I/O Extension</title>
+
+  <para>
+    Flash movies are traditionally forbidden from accessing the
+    filesystem, but this may be necessary for some embedded
+    applications. Especially in the case of a user console, currently
+    there is no way to get input into a Flash movie but through a
+    TextField.
+  </para>
+
+  <variablelist>
+    <varlistentry>
+      <term>fopen</term>
+      <listitem>
+       <para>
+         Open the file.
+       </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>fread</term>
+      <listitem>
+       <para>
+         Read a series of bytes from the opened file.
+       </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>fgetc</term>
+      <listitem>
+       <para>
+         Read a single byte from the opened file.
+       </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>fgets</term>
+      <listitem>
+       <para>
+         Read a single line until a Carriage Return from the opened file.
+       </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>gets</term>
+      <listitem>
+       <para>
+         Read a single line from the standard in.
+       </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>getchar</term>
+      <listitem>
+       <para>
+         Read a single character from the standard in.
+       </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>fwrite</term>
+      <listitem>
+       <para>
+       </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>fputc</term>
+      <listitem>
+       <para>
+         Write a single character to the opened file.
+       </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>fputs</term>
+      <listitem>
+       <para>
+         Write a single line to the opened file.
+       </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>puts</term>
+      <listitem>
+       <para>
+         Write a single line to standard out..
+       </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>putchar</term>
+      <listitem>
+       <para>
+         Write a single character to standard out..
+       </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>fflush</term>
+      <listitem>
+       <para>
+         Flush the current opened file to disk.
+       </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>fseek</term>
+      <listitem>
+       <para>
+         Seek to a location within the opened file.
+       </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>ftell</term>
+      <listitem>
+       <para>
+         Report the current position within the opened file.
+       </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>fclose</term>
+      <listitem>
+       <para>
+         Close the opened file.
+       </para>
+      </listitem>
+    </varlistentry>
+
+  </variablelist>
+
+</sect3>

Index: doc/C/refmanual/extensions/gtkext.xml
===================================================================
RCS file: doc/C/refmanual/extensions/gtkext.xml
diff -N doc/C/refmanual/extensions/gtkext.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/extensions/gtkext.xml       3 Mar 2008 23:46:53 -0000       
1.1.2.2
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<sect3 id="gtkext">
+  <title>Gtk Extension</title>
+
+  <para>
+    The GTK ActionScript class follows the same API as Gtk2, even down
+    to the same arguments to the same function names. This means
+    you're actually programming GTK,you're just using ActionScript
+    instead of python, perl, or C. This extension makes it possible to
+    write Flash movies that use the Gtk2 widgets for user interface
+    components.
+  </para>
+
+  <variablelist>
+    <varlistentry>
+      <term>window_new</term>
+      <listitem>
+       <para>
+         Create a new window.
+       </para>
+      </listitem>
+    </varlistentry>
+    
+    <varlistentry>
+      <term>signal_connect</term>
+      <listitem>
+       <para>
+         Add an event handler to a widget.
+       </para>
+      </listitem>
+    </varlistentry>
+    
+    <varlistentry>
+      <term>container_set_border_width</term>
+      <listitem>
+       <para>
+         Set the width of the window border.
+       </para>
+      </listitem>
+    </varlistentry>
+    
+    <varlistentry>
+      <term>button_new_with_label</term>
+      <listitem>
+       <para>
+         Create a new button and give it the specified label.
+       </para>
+      </listitem>
+    </varlistentry>
+    
+    <varlistentry>
+      <term>signal_connect_swapped</term>
+      <listitem>
+       <para>
+         Swap signals. Commonly used for <emphasis>delete</emphasis> event 
handling.
+       </para>
+      </listitem>
+    </varlistentry>
+    
+    <varlistentry>
+      <term>container_add</term>
+      <listitem>
+           <para>
+             Add one widget to another as a child.
+           </para>
+      </listitem>
+    </varlistentry>
+    
+    <varlistentry>
+      <term>widget_show</term>
+      <listitem>
+       <para>
+         Display the widget on the screen.
+       </para>
+      </listitem>
+    </varlistentry>
+    
+    <varlistentry>
+      <term>main</term>
+      <listitem>
+       <para>
+         Start the main GTK event loop. This function does not return.
+       </para>
+      </listitem>
+    </varlistentry>
+    
+  </variablelist>
+</sect3>
\ No newline at end of file

Index: doc/C/refmanual/extensions/mysqlext.xml
===================================================================
RCS file: doc/C/refmanual/extensions/mysqlext.xml
diff -N doc/C/refmanual/extensions/mysqlext.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/C/refmanual/extensions/mysqlext.xml     3 Mar 2008 23:46:53 -0000       
1.1.2.2
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<sect3 id="mysqlext">
+  <title>MySQL Extension</title>
+
+  <para>
+    The MySQL ActionScript class follows the same API as MySQL, even down
+    to the same arguments to the same function names. This enables a
+    Flash movie to have direct access to a MySQL
+    database. Traditionally Flash movies have had no database
+    support, they either had to use arrays, or use XML to communicate
+    to an application specific external database daemon.
+  </para>
+
+  <variablelist>
+    <varlistentry>
+      <term>connect</term>
+      <listitem>
+       <para>
+         Connect to a MySQL database.
+       </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>qetData</term>
+      <listitem>
+       <para>
+         Get data from the database.
+       </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>disconnect</term>
+      <listitem>
+       <para>
+         Disconnect from a MySQL database.
+       </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>query</term>
+      <listitem>
+       <para>
+         Execute an SQL query to the database.
+       </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>fetch_row</term>
+      <listitem>
+       <para>
+         Fetch a row from the query results.
+       </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>num_fields</term>
+      <listitem>
+       <para>
+       </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>free_result</term>
+      <listitem>
+       <para>
+         Free the results of a query.
+       </para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>store_results</term>
+      <listitem>
+       <para>
+         Store the results of a query.
+       </para>
+      </listitem>
+    </varlistentry>
+
+  </variablelist>
+  
+</sect3>

Index: doc/C/actionscript/as_value.xml
===================================================================
RCS file: doc/C/actionscript/as_value.xml
diff -N doc/C/actionscript/as_value.xml
--- doc/C/actionscript/as_value.xml     18 Apr 2007 17:39:15 -0000      1.3
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,75 +0,0 @@
-    <sect1 id="as_value">
-      <title>The <emphasis>as_value</emphasis> Object Type</title>
-      <para>
-        The <emphasis>as_value</emphasis> class is used throughout
-        the interpreter to create generic objects to hold data.
-      </para>
-
-      <sect2 id="data_types">
-        <title>Data Types</title>
-        <para>
-          The following data types are supported:
-          <emphasis>NULLTYPE</emphasis>,
-          <emphasis>BOOLEAN</emphasis>, <emphasis>STRING</emphasis>,
-          <emphasis>NUMBER</emphasis>, <emphasis>OBJECT</emphasis>,
-          <emphasis>AS_FUNCTION</emphasis>, and 
-          <emphasis>MOVIECLIP</emphasis> (sprite).  
-          The type <emphasis>C_FUNCTION</emphasis> is being deprecated.
-        </para>
-      </sect2>
-
-      <sect2 id="is_methods">
-        <title>Determining the Type</title>
-        <para>
-          Several methods allow you to determine if a value stored in
-          <emphasis>as_value</emphasis> is of a specific type.  These
-          follow the form of <emphasis>is_TYPE</emphasis>, for example
-          <emphasis>is_as_function()</emphasis> and 
-          <emphasis>is_number()</emphasis>.  In general, the type names
-          match the <link linkend="data_types">data types</link> listed
-          above, with the exception of the type <emphasis>MOVIECLIP</emphasis>
-          which has a method <emphasis>is_sprite()</emphasis>.
-        </para>
-      </sect2>
-
-      <sect2 id="to_methods">
-        <title>Fetching the Value</title>
-        <para>
-          Another set of methods will return a representation of
-          the value as a particular type.  They follow the
-          <emphasis>to_TYPE</emphasis> naming convention.  Examples
-          are <emphasis>to_number()</emphasis> and
-          <emphasis>to_bool()</emphasis>.  The type names are as 
-          <link linkend="data_types">listed</link> earlier, except for
-          <emphasis>MOVIECLIP</emphasis>, which uses 
-          <emphasis>to_sprite()</emphasis>.
-        </para>
-      </sect2>
-
-      <sect2 id="set_methods">
-        <title>Setting the Value and Type</title>
-        <para>
-          Finally, there is the <emphasis>set_TYPE</emphasis> series
-          of methods.  They change the type to the type specified in
-          the method name, and set the value to the one given as an
-          argument.  It is also possible to accomplish the same thing
-          with the <emphasis>=</emphasis> operator.  Again, type names
-          match those <link linkend="data_types">named earlier</link>,
-          except in the case of <emphasis>MOVIECLASS</emphasis>.  Its
-          method is called <emphasis>set_sprite()</emphasis>.
-        </para>
-      </sect2>
-
-      <sect2 id="further_as_value_reading">
-        <title>Further Reading</title>
-        <para>
-          Please refer to <emphasis>as_value.h</emphasis> or the
-          Doxygen documentation (see 'Processing The Documentation'
-          in the &appname; manual for instructions on generating
-          documents with Doxygen) for more information
-          about which methods are available for the
-          <emphasis>as_value</emphasis> object.
-        </para>
-      </sect2>
-
-    </sect1>

Index: doc/C/actionscript/main.xml
===================================================================
RCS file: doc/C/actionscript/main.xml
diff -N doc/C/actionscript/main.xml
--- doc/C/actionscript/main.xml 19 Mar 2007 14:50:33 -0000      1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,29 +0,0 @@
-    <sect1 id="introduction">
-      <title>Introduction</title>
-
-      <para>
-        In this document, the term 'ActionScript class' refers to the
-        C++ class which is instantiated by Gnash when some ActionScript
-        code instantiates a corresponding class.  The C++ class
-        stores instance data and implements the methods which are 
-        called on the object in the ActionScript code.
-      </para>
-
-      <sect2 id="overview">
-        <title>Object Creation Overview</title>
-          <para>
-            When Gnash starts, the <emphasis>class_init()</emphasis> method 
-            for each ActionScript class (listed in Global.cpp) is called.
-            This method constructs a prototype, which is implemented as an
-            <emphasis>as_object</emphasis>.  In addition, the method
-            registers the constructor to be used for future object creation,
-            and attaches methods and properties to the prototype.
-          </para>
-
-          <para>
-            When a new object is needed, instance data is added to
-            the methods and properties inherited from the prototype.
-          </para>
-      </sect2>
-    </sect1>
-

Index: doc/C/actionscript/new_as_class.xml
===================================================================
RCS file: doc/C/actionscript/new_as_class.xml
diff -N doc/C/actionscript/new_as_class.xml
--- doc/C/actionscript/new_as_class.xml 20 Mar 2007 15:51:49 -0000      1.5
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,219 +0,0 @@
-    <sect1 id="newclass">
-      <title>Adding New ActionScript Class</title>
-
-      <para>
-        Adding a new ActionScript class is relatively simple, but the
-        process is complicated by the fact that the interface has evolved
-        over time and the current code base represents several different
-        formats.  This document describes the current interface.  The
-        Boolean class should be considered the authoritative example of
-        a modern ActionScript class.
-      </para>
-
-      <para>
-        ActionScript classes contain a header file and a C++
-        implementation.  The name is usually the name of the
-        class as it is called in the ActionScript specifications;
-        for instance <emphasis>Boolean.cpp</emphasis> for the Boolean class.
-      </para>
-
-      <para> 
-        In the CVS source tree, there is a utility file named
-        &gen_asclass; which can be used to
-        create the header file and a C++ source file stub for
-        an ActionScript class.  
-      </para>
-
-      <sect2 id="prototype">
-        <title>Prototype</title>
-
-       <para>
-          In ActionScript, a prototype is a base object which contains
-          all the methods that an instantiated object will contain.
-          In short, it contains every part of the class except for
-          the portions dealing with the storage of instance data.
-       </para>
-       <para>
-          In Gnash, the prototype of an ActionScript object is 
-          implemented as an <emphasis>as_object</emphasis>.
-          At startup, the methods and properties of the ActionScript class
-          are attached to the <emphasis>as_object</emphasis>.  The
-          following example demonstrates how methods can be attached:
-         <programlisting>
-            static void
-            attachBooleanInterface(as_object&amp; o) 
-            {
-                o.init_member("toString", new 
builtin_function(boolean_tostring));
-                o.init_member("valueOf", new 
builtin_function(boolean_valueof));
-            }
-         </programlisting>
-          This code was generated using &gen_asclass;.
-          Typically, you will need to customize the attach method to include
-          any new methods you add to the class.
-       </para>
-       <para>
-          Static properties can also be added to the ActionScript prototype
-          (<link linkend="properties">dynamic properties</link> 
-          are addressed later).  They are attached in a similar way:
-          <programlisting>
-           o.init_member("myProperty", as_value("HelloWorld"));
-         </programlisting>
-       </para>
-       <para>
-          Properties which have been added in this manner can be
-          directly accessed in ActionScript code without a function
-          call, as this piece of ActionScript code compiled by Ming's
-          <emphasis>makeswf</emphasis> compiler demonstrates:
-           <programlisting>
-             // Get the value of the myProperty property
-             if (node.myProperty == "HelloWorld") {
-                 trace("MATCHED");
-             }
-           </programlisting>
-       </para>
-      </sect2>
-
-      <sect2 id="declaration">
-       <title>Declaration</title>
-
-       <para>
-          A new class should derive from <emphasis>as_object</emphasis>,
-          which is the base class of every ActionScript object in Gnash.
-          The class declaration will also be generated when you use
-          &gen_asclass;.
-       </para>
-      </sect2>
-      
-      <sect2 id="instantiation">
-       <title>Instantiation</title>
-
-       <para>
-          The class should contain an init method; this is included
-          in the stub when &gen_asclass; is
-          used.
-       </para>
-       <para>
-          The init method should be called in the constructor in
-          <emphasis>Global.cpp</emphasis>, where all other ActionScript
-          classes are similarly referenced.
-       </para>
-      </sect2>
-
-      <sect2 id="methods">
-       <title>Methods</title>
-
-        <para>
-          Every method you implement and 
-          <link linkend="prototype">attach</link> will receive an
-          &fn_call; data structure as an argument when it is called.
-        </para>
-
-        <sect3 id="arguments">
-          <title>Accessing Arguments</title>
-          <para>
-            The arguments stored in &fn_call;
-            should be accessed using <emphasis>arg()</emphasis>.  For
-            instance, the first element can be popped with
-            <emphasis>fn.arg(0)</emphasis>.
-         </para>
-          <para>
-            The element popped off the stack is an 
-            <link linkend="as_value"><emphasis>as_value</emphasis>
-            object</link>.
-          </para>
-        </sect3>
-
-        <sect3 id="return">
-          <title>Returning a Value to ActionScript</title>
-          <para>
-            The return value should be an
-            <link linkend="as_value"><emphasis>as_value</emphasis> 
-            object</link>.  For example:
-            <programlisting>
-              return as_value('Goodbye, cruel world.');
-            </programlisting>
-          </para>
-        </sect3>
-
-        <sect3 id="additional_fn_call">
-          <title>Additional &fn_call; Members</title>
-          <para>
-            There are two other useful members of the &fn_call;
-            structure, namely <emphasis>this_ptr</emphasis> and
-            <emphasis>nargs</emphasis>.  The former points to the
-            class which is invoking this method, while the latter
-            is a count of the number of 
-            <link linkend="arguments">arguments in the stack</link>.
-         </para>
-         <para>
-            You may also see instances of the <emphasis>env</emphasis>
-            pointer being used.   This is being deprecated.  Instances
-            which could be replaced with
-            <link linkend="arguments"><emphasis>arg()</emphasis></link>
-            are already deprecated; other uses will be deprecated
-            in the near future.
-         </para>
-          <para>
-            Beyond the <emphasis><link 
-            linkend="arguments">arg()</link></emphasis> method, there
-            is one method of note.  <emphasis>dump_args()</emphasis>
-            can be used in debugging to output the entire argument
-            stack.
-         </para>
-        </sect3>
-      </sect2>
-
-      <sect2 id="properties">
-       <title>Dynamic Properties</title>
-        <para>
-          This section describes accessors to dynamic properties.
-          Read-only properties are described
-          in the <link linkend="prototype">prototype</link> section.
-        </para>
-        <para>
-          Dynamic properties are not created by the &gen_asclass; 
-          script.  Accessors should be written as
-          a single get/set method.  Previously this was done by
-          overriding <emphasis>get_member()</emphasis> and
-          <emphasis>set_member()</emphasis>, but this practice
-          is deprecated.  
-        </para>
-        <para> 
-          The accessor is written so that it sets the property
-          if it is called with an argument, and puts the property in
-          the <link linkend="methods">&fn_call;</link>
-          <link linkend="return">result pointer</link>.  For instance:
-          <programlisting>
-            void
-            MyClass::myProperty_getset(const fn_call&amp; fn)
-            {
-
-                boost::intrusive_ptr&lt;MyClass&gt; ptr = 
ensureType&lt;MyClass&gt;(fn.this_ptr);
-
-                // setter
-                if ( fn.nargs > 0 )
-                {
-                    bool h = fn.arg(0).to_bool();
-                    ptr->MyMethod(h);
-                    return;
-                }
-
-                // getter
-                bool h = ptr->MyMethod();
-                fn.result->set_bool(h);
-            }
-          </programlisting>
-        </para>
-        <para> 
-          It has not yet been decided whether properties should be set
-          in the <link linkend="prototype">exported interface</link> 
-          or attached to instances of the class.  A property is attached
-          in the following manner:
-          <programlisting>
-            boost::intrusive_ptr&lt;builtin_function&gt; gettersetter;
-            gettersetter = new 
builtin_function(&amp;MyClass::myProperty_getset, NULL);
-            o.init_property("myProperty", *gettersetter, *gettersetter);
-          </programlisting>
-        </para>
-      </sect2>
-    </sect1>

Index: doc/C/asspec/.cvsignore
===================================================================
RCS file: doc/C/asspec/.cvsignore
diff -N doc/C/asspec/.cvsignore
--- doc/C/asspec/.cvsignore     4 May 2007 09:49:41 -0000       1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,5 +0,0 @@
-Makefile
-Makefile.in
-asspec.html
-asspec.info
-asspec.pdf

Index: doc/C/asspec/Makefile.am
===================================================================
RCS file: doc/C/asspec/Makefile.am
diff -N doc/C/asspec/Makefile.am
--- doc/C/asspec/Makefile.am    13 Feb 2008 02:30:09 -0000      1.6
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,178 +0,0 @@
-## Process this fillocatee with automake to generate Makefile.in
-# 
-#   Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
-#
-#   This program is free software; you can redistribute it and/or modify
-#   it under the terms of the GNU General Public License as published by
-#   the Free Software Foundation; either version 3 of the License, or
-#   (at your option) any later version.
-#
-#   This program 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 General Public License for more details.
-#
-#   You should have received a copy of the GNU General Public License
-#   along with this program; if not, write to the Free Software
-#   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-# Building a PDF using Apache FOP only works with fop-0.20.5 for now.
-include $(top_srcdir)/doc/xmldocs.make
-
-infodir = ${prefix}/share/info
-figdir = ../images
-docname = asspec
-lang = C
-omffile = asspec-C.omf
-entities = \
-       accessibility.xml \
-       array.xml \
-       boolean.xml \
-       button.xml \
-       camera.xml \
-       color.xml \
-       contextmenu.xml \
-       customactions.xml \
-       date.xml \
-       error.xml \
-       function.xml \
-       key.xml \
-       legal.xml \
-       loadvars.xml \
-       localconnection.xml \
-       math.xml \
-       microphone.xml \
-       mouse.xml \
-       movieclip.xml \
-       moviecliploader.xml \
-       netconnection.xml \
-       netstream.xml \
-       number.xml \
-       selection.xml \
-       sharedobject.xml \
-       sound.xml \
-       stage.xml \
-       string.xml \
-       system.xml \
-       textfield.xml \
-       textformat.xml \
-       textsnapshot.xml \
-       video.xml \
-       xml.xml \
-       xmlnode.xml \
-       xmlsocket.xml
-
-xml_files = $(docname).xml
-
-html: asspec.html
-pdf:  asspec.pdf
-man:  asspec.1 
-texi: asspec.texi
-info: asspec.info
-asspec.pdf asspec.html asspec.texi: $(xml_files) $(entities)
-
-SUFFIXES = .xml .html .texi .pdf .info .1 .fo
-
-EXTRA_DIST = \
-       $(xml_files) \
-       $(entities) \
-       $(omffile) \
-       asspec.texi \
-       asspec.info \
-       asspec.html
-
-if ENABLE_FOP
-.xml.pdf:
-       $(FOP) -xsl $(docbook_styles)/fo/docbook.xsl -xml $< -pdf $@
-else
-if ENABLE_XMLTEX
-.xml.fo:
-       $(XSLTPROC) --output $@ --nonet $(docbook_styles)/fo/docbook.xsl $<
-
-.fo.pdf:
-       $(PDFXMLTEX) -interaction=nonstopmode $<
-else
-.xml.pdf:
-       touch $@
-endif
-endif
-
-
-.xml.html:
-if ENABLE_HTML
-       $(XSLTPROC) --output $@ --nonet $(docbook_styles)/html/docbook.xsl $<
-else
-       touch $@
-endif
-
-#      basefile=$(notdir $(basename $<));
-.xml.texi:
-if ENABLE_TEXI
-       basefile=`echo $< | sed -e  's,^.*/,,' -e 's,\.xml$$,,'`; \
-       $(DB2X_XSLTPROC) -s texi $< --output $${basefile}.txml; \
-       if test x"$(DB2X_VERSION)" = x"0.8.5" -o x"$(DB2X_VERSION)" = x"0.8.7"; 
then \
-         $(DB2X_TEXIXML) --encoding=us-ascii//TRANSLIT $${basefile}.txml; \
-         sed -e "s/setfilename $${basefile}_manual_v.*\.info/setfilename 
$${basefile}.info/" $${basefile}_manual_v*.texi > $${basefile}.texi ; \
-         $(RM) $${basefile}_manual_v*.texi; \
-       else \
-         $(DB2X_TEXIXML) --encoding=us-ascii//TRANSLIT --to-stdout 
$${basefile}.txml > $${basefile}.texi ; \
-         $(RM) $${basefile}_manual_v*.texi; \
-       fi
-else
-       touch $@
-endif
-
-.texi.info:
-       -$(MAKEINFO) --force $<
-
-asspec.1: asspec-man.xml
-if ENABLE_MAN
-       $(DB2X_XSLTPROC) -s man $(srcdir)/asspec-man.xml -o asspec.mxml
-       $(DB2X_MANXML) asspec.mxml
-       $(RM) asspec.mxml
-else
-       touch asspec.1
-endif
-
-alldocs: html pdf man info
-
-lint:
-       @xmllint $(srcdir)/asspec.xml
-
-CLEANFILES = \
-       asspec-C.omf.out \
-       manpage.links  \
-       manpage.refs  \
-       asspec.tex  \
-       asspec.fo  \
-       asspec.log  \
-        asspec.texi \
-       asspec_manual_*.texi \
-       asspec.txml \
-       asspec.mxml \
-       omf_timestamp
-
-MAINTAINERCLEANFILES = \
-        asspec.pdf       \
-        asspec.1         \
-        asspec.info      \
-        asspec.html
-
-install-info-hook: asspec.info
-       test -d "$(DESTDIR)$(infodir)" || $(mkinstalldirs) 
"$(DESTDIR)$(infodir)"
-       $(INSTALL_DATA) $< $(DESTDIR)$(infodir)/asspec.info 
-       -if (install-info --version) >/dev/null 2>&1; then \
-         version=`install-info --version | grep -c 'GNU texinfo'`; \
-         if test $$version -eq 0; then \
-           install-info --menuentry="Asspec" --description="GNU Flash Player" 
--info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/asspec.info >/dev/null 
2>&1; \
-         else \
-           install-info --entry="* Asspec: (asspec). GNU Flash Player" 
--info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/asspec.info >/dev/null 
2>&1; \
-         fi; \
-       fi
-
-uninstall-info-hook:
-       $(RM) $(DESTDIR)$(infodir)/asspec.info
-
-#app-dist-hook:
-
-#dist-hook: app-dist-hook

Index: doc/C/asspec/accessibility.xml
===================================================================
RCS file: doc/C/asspec/accessibility.xml
diff -N doc/C/asspec/accessibility.xml
--- doc/C/asspec/accessibility.xml      29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,77 +0,0 @@
-<sect4 id="asaccessibility">
-  <title>Accessibility ActionScript Class</title>
-
-  <para>
-    This class implements an Accessibility object.
-  </para>
-
-  <sect5 id="accessibilitymethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>isActive()</term>
-         <listitem>
-           <para>
-             Return whether a screen reader is in use.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>updateProperties()</term>
-         <listitem>
-           <para>
-             Change the display to use a screen reader.
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="accessibilityconf">
-    <title>Accessibility Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance.</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>isActive()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>updateProperties()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/array.xml
===================================================================
RCS file: doc/C/asspec/array.xml
diff -N doc/C/asspec/array.xml
--- doc/C/asspec/array.xml      29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,302 +0,0 @@
-<sect4 id="asarray">
-  <title>Array ActionScript Class</title>
-
-  <para>
-    This class implements an array container.
-  </para>
-
-  <sect5 id="arraymethods">
-    <title>The Methods of the Array Class</title>
-        
-    <para>
-      <variablelist>
-       <varlistentry>
-         <term>concat()</term>
-         <listitem>
-           <para>
-             Concatenates two objects and returns a new array.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>join()</term>
-         <listitem>
-           <para>
-             Join all the array elements into a string.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>pop()</term>
-         <listitem>
-           <para>
-             Return the last element in the array by removing if from
-             the array.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>push()</term>
-         <listitem>
-           <para>
-             Push an element onto the end of the array.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>reverse()</term>
-         <listitem>
-           <para>
-             Reverse the order of the elements in an array.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>shift()</term>
-         <listitem>
-           <para>
-             Return the first element in the array by removing if from
-             the array.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>sort()</term>
-         <listitem>
-           <para>
-             Sort the elements in the array.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>sortOn()</term>
-         <listitem>
-           <para>
-             Sort the elements in the array based on one field.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Splice()</term>
-         <listitem>
-           <para>
-             Return a subset of the array elements as a new array.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>toString()</term>
-         <listitem>
-           <para>
-             Return the elements in an array as a string.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>unshift()</term>
-         <listitem>
-           <para>
-             Place an element on the front of the array.
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="arrayprops">
-    <title>The Properties of the Array Class</title>
-    
-    <para>
-      <variablelist>
-       <varlistentry>
-         <term>length</term>
-         <listitem>
-           <para>
-             The number of objects in the array.
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="arrayconf">
-    <title>Array Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>concat()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>join()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>pop()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>push()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>reverse()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>shift()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>slice()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>sort()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>sortOn()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>splice()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>toString()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>unshift()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>length</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>
-  
-</sect4>

Index: doc/C/asspec/asspec-C.omf
===================================================================
RCS file: doc/C/asspec/asspec-C.omf
diff -N doc/C/asspec/asspec-C.omf
--- doc/C/asspec/asspec-C.omf   13 Feb 2008 02:30:09 -0000      1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<omf>
-  <resource>
-    <creator>
-     address@hidden (Rob Savoye)
-    </creator>
-    <maintainer>
-     address@hidden (Rob Savoye)
-    </maintainer>
-    <title>
-     Free Flash Specification
-    </title>
-    <date>
-     2008-02-12
-    </date>
-    <version identifier="0.1.2" date="2008-02-12" description="First 
release."/>
-    <subject category="GNOME|Applications|Sound and Video"/>
-    <description>
-        This is a community produced specification of Flash and ActionScript.
-    </description>
-    <type>
-     manual
-    </type>
-    <format mime="text/xml" dtd="-//OASIS//DTD DocBook XML V4.1.2//EN"/>
-    <identifier url=""/>
-    <language code="C"/>
-    <relation seriesid="31a101ca-363a-11d6-93d3-b34a9c6ce2e6"/>
-    <rights type="GNU FDL" license.version="1.1" 
license="http://www.gnu.org/licenses/fdl.html"; holder="Rob Savoye"/>
-  </resource>
-</omf>
-

Index: doc/C/asspec/asspec.xml
===================================================================
RCS file: doc/C/asspec/asspec.xml
diff -N doc/C/asspec/asspec.xml
--- doc/C/asspec/asspec.xml     13 Feb 2008 02:30:09 -0000      1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,220 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
-    "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; [
-  <!ENTITY legal SYSTEM "legal.xml">
-  <!ENTITY fdl-app SYSTEM "fdl-appendix.xml">
-  <!ENTITY manrevision "0.3">
-  <!ENTITY date "Feb 2008">
-  <!ENTITY app "<application>Free ActionScript Specification</application>">
-  <!ENTITY appname "Free ActionScript Specification">
-  <!ENTITY asaccessibility SYSTEM "accessibility.xml">
-  <!ENTITY asarray SYSTEM "array.xml">
-  <!ENTITY asboolean SYSTEM "boolean.xml">
-  <!ENTITY asbutton SYSTEM "button.xml">
-  <!ENTITY ascamera SYSTEM "camera.xml">
-  <!ENTITY ascolor SYSTEM "color.xml">
-  <!ENTITY ascontextmenu SYSTEM "contextmenu.xml">
-  <!ENTITY ascustomactions SYSTEM "customactions.xml">
-  <!ENTITY asdate SYSTEM "date.xml">
-  <!ENTITY aserror SYSTEM "error.xml">
-  <!ENTITY asfunction SYSTEM "function.xml">
-  <!ENTITY askey SYSTEM "key.xml">
-  <!ENTITY asloadvars SYSTEM "loadvars.xml">
-  <!ENTITY aslocalconnection SYSTEM "localconnection.xml">
-  <!ENTITY asmath SYSTEM "math.xml">
-  <!ENTITY asmicrophone SYSTEM "microphone.xml">
-  <!ENTITY asmouse SYSTEM "mouse.xml">
-  <!ENTITY asmovieclip SYSTEM "movieclip.xml">
-  <!ENTITY asmoviecliploader SYSTEM "moviecliploader.xml">
-  <!ENTITY asnetconnection SYSTEM "netconnection.xml">
-  <!ENTITY asnetstream SYSTEM "netstream.xml">
-  <!ENTITY asnumber SYSTEM "number.xml">
-  <!ENTITY asobject SYSTEM "object.xml">
-  <!ENTITY asselection SYSTEM "selection.xml">
-  <!ENTITY assharedobject SYSTEM "sharedobject.xml">
-  <!ENTITY assound SYSTEM "sound.xml">
-  <!ENTITY asstage SYSTEM "stage.xml">
-  <!ENTITY asstring SYSTEM "string.xml">
-  <!ENTITY assystem SYSTEM "system.xml">
-  <!ENTITY astextfield SYSTEM "textfield.xml">
-  <!ENTITY astextformat SYSTEM "textformat.xml">
-  <!ENTITY astextsnapshot SYSTEM "textsnapshot.xml">
-  <!ENTITY asvideo SYSTEM "video.xml">
-  <!ENTITY asxmlnode SYSTEM "xmlnode.xml">
-  <!ENTITY asxml SYSTEM "xml.xml">
-  <!ENTITY asxmlsocket SYSTEM "xmlsocket.xml">
- ]
->
-
- <!-- =============Document Header ============================= -->
- <article id="index" lang="en">
-<!-- please do not change the id; for translations, change lang to -->
-<!-- appropriate code -->
-   <articleinfo>
-     <title>&app; V&manrevision;</title>
-     <copyright>
-       <year>2005, 2006, 2007, 2008</year>
-       <holder>Free Software Foundation</holder>
-     </copyright>
-<!-- translators: uncomment this:
-
-  <copyright>
-   <year>2005, 2006, 2007, 2008</year>
-   <holder>ME-THE-TRANSLATOR (Latin translation)</holder>
-  </copyright>
-
-   -->
-<!-- An address can be added to the publisher information.  If a role is 
-     not specified, the publisher/author is the same for all versions of the 
-     document.  -->
-    <publisher> 
-      <publishername> GNOME Documentation Project </publishername> 
-    </publisher> 
-
-<!-- 
-      Copyright (c)  2005, 2006, 2007, Free Software Foundation, Inc.
-      Permission is granted to copy, distribute and/or modify this document
-      under the terms of the GNU Free Documentation License, Version 1.2
-      or any later version published by the Free Software Foundation;
-      with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
-      Texts.  A copy of the license is included in the section entitled "GNU
-      Free Documentation License".
--->
-
-   &legal;
-
-   <!-- This file  contains link to license for the documentation (GNU FDL), 
and 
-        other legal stuff such as "NO WARRANTY" statement. Please do not 
change 
-       any of this. -->
-
-    <authorgroup> 
-      <author> 
-       <firstname>Rob</firstname> 
-       <surname>Savoye</surname> 
-       <affiliation> 
-         <address>
-           <email>address@hidden</email>
-         </address> 
-       </affiliation> 
-      </author> 
-
-<!-- This is appropriate place for other contributors: translators,
-      maintainers,  etc. Commented out by default.
-       <othercredit role="translator">
-       <firstname>Latin</firstname> 
-       <surname>Translator 1</surname> 
-       <affiliation> 
-         <orgname>Latin Translation Team</orgname> 
-         <address> <email>address@hidden</email> </address> 
-       </affiliation>
-       <contrib>Latin translation</contrib>
-      </othercredit>
--->
-    </authorgroup>
-
-    <revhistory>
-      <revision> 
-       <revnumber>&appname; V&manrevision;</revnumber> 
-       <date>&date;</date>
-       <revdescription> 
-         <para role="author">Rob Savoye
-           <email>address@hidden</email>
-           Updated for the alpha release.
-         </para>
-         <para role="publisher">Free Software Foundation</para>
-       </revdescription> 
-      </revision> 
-    </revhistory> 
-
-    <releaseinfo>This specification describes version &manrevision; of
-    this document.
-    </releaseinfo>
-   </articleinfo>
-
-  <indexterm zone="index"> 
-    <primary>Free ActionScript Specification</primary> 
-  </indexterm>
-
-<!-- ============= Introduction ============================== -->
-  <sect1 id="intro">
-    <title>Introduction</title>
-
-    <para>
-      This is an Freely redistributable specifiction for Flash
-      ActionScript maintained by the open source community of Flash
-      developers.
-    </para>
-
-    <para>
-      ActionScript, like JavaScript, is based on the 
-      <ulink type="http"
-            
url="http://www.ecma-international.org/publications/standards/Ecma-262.htm";>ECMA
 262 Specification</ulink>. The current version that fully 
-      supports this is ActionScript, and is implemented in the current
-      Adobe Flash player version 9. Prior versions of the Flash player
-      used ActionScript 2, which implemented a subset of the fully
-      specification, plus differed some.
-      
-
-    </para>
-
-
-  </sect1>
-
-<!-- ============= Document Body ============================= -->
-  <sect1 id="spec">
-    <title>Specification</title>
-
-    &asaccessibility;
-    &asarray;
-    &asboolean;
-    &asbutton;
-    &ascamera;
-    &ascolor;
-    &ascontextmenu;
-    &asmath;
-    &asnetconnection;
-    &asnumber;
-    &asstring;
-    &ascustomactions;
-    &asdate;
-    &aserror;
-    &asfunction;
-    &askey;
-    &asloadvars;
-    &aslocalconnection;
-    &asmicrophone;
-    &asmouse;
-    &asmovieclip;
-    &asmoviecliploader;
-    &asnetstream;
-    &asselection;
-    &assharedobject;
-    &assound;
-    &asstage;
-    &assystem;
-    &astextfield;
-    &astextformat;
-    &astextsnapshot;
-    &asvideo;
-    &asxmlnode;
-    &asxml;
-    &asxmlsocket;
-  </sect1>
-
-<!-- ============= Authors ================================ -->
-
-  <sect1 id="authors">
-    <title>Authors</title>
-    <para>
-      <application>This Free ActionScript Specification</application> is
-      maintained by the Gnash team and others. Please send all
-      comments to <email>address@hidden</email>.
-    </para>
-    
-  </sect1>
-
-  <!-- ============= Application License ============================= -->
-
-  &fdl-app;
-
-</article>

Index: doc/C/asspec/boolean.xml
===================================================================
RCS file: doc/C/asspec/boolean.xml
diff -N doc/C/asspec/boolean.xml
--- doc/C/asspec/boolean.xml    29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,79 +0,0 @@
-<sect4 id="asboolean">
-  <title>Boolean ActionScript Class</title>
-
-  <para>
-    This class implements a Boolean object, the primary purpose of
-    which is to return a string representation of a Boolean value.
-  </para>
-
-  <sect5 id="booleanmethods">
-    <title>The Methods of the Boolean Class</title>
-        
-    <para>
-      <variablelist>
-       <varlistentry>
-         <term>toString()</term>
-         <listitem>
-           <para>
-             Concatenates two objects and returns a new Boolean.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>valueOf()</term>
-         <listitem>
-           <para>
-             Join all the Boolean elements into a string.
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="booleanconf">
-    <title>Boolean Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>toString()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>valueOf()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>          
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>
-</sect4>
\ No newline at end of file

Index: doc/C/asspec/button.xml
===================================================================
RCS file: doc/C/asspec/button.xml
diff -N doc/C/asspec/button.xml
--- doc/C/asspec/button.xml     29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,744 +0,0 @@
-<sect4 id="asbutton">
-  <title>Button ActionScript Class</title>
-
-  <para>
-    This class implements an Button object.
-  </para>
-
-  <sect5 id="buttonmethods">
-    <title>The Methods of the Button Class</title>
-        
-    <para>
-      <variablelist>
-       <varlistentry>
-         <term>getDepth()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="buttonprops">
-    <title>The Properties of the Button Class</title>
-    
-    <para>
-      <variablelist>
-       <varlistentry>
-         <term>_alpha</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>enabled</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_focusrect</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_height</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>menu</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_name</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_parent</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_quality</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_rotation</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_soundbuftime</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>tabEnabled</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>tabIndex</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_target</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>trackAsMenu</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_url</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>useHandCursor</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_visible</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_width</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_x</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_xmouse</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_xscale</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_y</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_ymouse</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_yscale</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="buttonevents">
-    <title>The Event Handlers of the Button Class</title>
-        
-    <para>
-      <variablelist>
-       <varlistentry>
-         <term>onDragOut</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onDragOver</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onKeyDown</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onKeyUp</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onKillFocus</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onPress</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onRelease</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onReleaseOutside</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onRollOut</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onRollOver</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onSetFocus</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="buttonconf">
-    <title>Button Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>getDepth()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_alpha</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>enabled</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_focusrect</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_height</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_menu</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_name</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_parent</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_quality</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_rotation</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_soundbuftime</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_tabEnabled</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_tabIndex</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_target</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_trackAsMenu</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_url</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_useHandCursor</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_visible</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_width</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_x</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_xmouse</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_xscale</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_y</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_ymouse</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>_yscale</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>onDragOut</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This event handler is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>onDragOver</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This event handler is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>onKeyDown</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This event handler is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>onKeyUp</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This event handler is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>onKillFocus</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This event handler is not implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>onPress</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This event handler is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>onRelease</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This event handler is implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>onReleaseOutside</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This event handler is not implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>onRollOut</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This event handler is not implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>onRollOver</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This event handler is not implemented.
-               </para>
-             </entry>
-           </row>
-           
-           <row>
-             <entry valign="top" align="left">
-               <para>onSetDocus</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This event handler is not implemented.
-               </para>
-             </entry>
-           </row>
-           
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>
-
-</sect4>

Index: doc/C/asspec/camera.xml
===================================================================
RCS file: doc/C/asspec/camera.xml
diff -N doc/C/asspec/camera.xml
--- doc/C/asspec/camera.xml     29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,390 +0,0 @@
-<sect4 id="ascamera">
-  <title>Camera ActionScript Class</title>
-
-  <para>
-    This class implements an Camera object.
-  </para>
-
-  <sect5 id="cameramethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>get()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setMode()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setMotionLevel()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setQuality()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-  <sect5 id="cameraprops">
-    <title>The Properties of the Camera Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>activityLevel</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>bandwidth</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>currentFps</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>fps</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>height</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>index</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>motionLevel</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>motionTimeOut</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>muted</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>name</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>names</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onActivity</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onStatus</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>quality</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>width</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="cameraconf">
-    <title>Camera Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>get()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setMode()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setMotionLevel()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setQuality()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>activityLevel</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>bandwidth</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>currentFps</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>fps</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>height</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>index</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>motionLevel</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>motionTimeOut</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>muted</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>name</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>names</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onActivity</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onStatus</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>quality</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>width</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/color.xml
===================================================================
RCS file: doc/C/asspec/color.xml
diff -N doc/C/asspec/color.xml
--- doc/C/asspec/color.xml      29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,120 +0,0 @@
-<sect4 id="ascolor">
-  <title>Color ActionScript Class</title>
-
-  <para>
-    This class implements an Color object.
-  </para>
-
-    <sect5 id="colormethods">
-       <title>The Methods of the  Class</title>
-       <para>
-           <variablelist>
-
-               <varlistentry>
-                   <term>getRGB()</term>
-                   <listitem>
-                   <para>
-                   </para>
-                   </listitem>
-           </varlistentry>
-
-               <varlistentry>
-                   <term>getTransform()</term>
-                   <listitem>
-                   <para>
-                   </para>
-                   </listitem>
-           </varlistentry>
-
-               <varlistentry>
-                   <term>setRGB()</term>
-                   <listitem>
-                   <para>
-                   </para>
-                   </listitem>
-           </varlistentry>
-
-               <varlistentry>
-                   <term>setTransform()</term>
-                   <listitem>
-                   <para>
-                   </para>
-                   </listitem>
-           </varlistentry>
-       </variablelist>
-       </para>
-    </sect5>
-  <sect5 id="colorprops">
-    <title>The Properties of the Color Class</title>
-    
-    <para>
-      <variablelist>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="colorconf">
-    <title>Color Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>getRGB()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getTransform()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setRGB()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setTransform()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/contextmenu.xml
===================================================================
RCS file: doc/C/asspec/contextmenu.xml
diff -N doc/C/asspec/contextmenu.xml
--- doc/C/asspec/contextmenu.xml        29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,143 +0,0 @@
-<sect4 id="ascontextmenu">
-  <title>ContextMenu ActionScript Class</title>
-
-  <para>
-    This class implements an ContextMenu object.
-  </para>
-
-    <sect5 id="contextmenumethods">
-       <title>The Methods of the  Class</title>
-       <para>
-           <variablelist>
-
-               <varlistentry>
-                   <term>copy()</term>
-                   <listitem>
-                   <para>
-                     Return a copy of the menu.
-                   </para>
-                   </listitem>
-           </varlistentry>
-
-               <varlistentry>
-                   <term>hideBuiltInItems()</term>
-                   <listitem>
-                   <para>
-                     Hide most menu items.
-                   </para>
-                   </listitem>
-           </varlistentry>
-       </variablelist>
-       </para>
-    </sect5>
-  <sect5 id="contextmenuprops">
-    <title>The Properties of the ContextMenu Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>builtInItems</term>
-         <listitem>
-           <para>
-             Returns an array of the built-in menu items.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>customItems</term>
-         <listitem>
-           <para>
-             An undefined array to contain menu item names.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onSelect</term>
-         <listitem>
-           <para>
-             Called before the menu is displayed.
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="contextmenuconf">
-    <title>ContextMenu Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>copy()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>hideBuiltInItems()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>builtInItems</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>customItems</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onSelect</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/customactions.xml
===================================================================
RCS file: doc/C/asspec/customactions.xml
diff -N doc/C/asspec/customactions.xml
--- doc/C/asspec/customactions.xml      29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,120 +0,0 @@
-<sect4 id="ascustomactions">
-  <title>CustomActions ActionScript Class</title>
-
-  <para>
-    This class implements an CustomActions object.
-  </para>
-
-  <sect5 id="customactionsmethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>get()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>install()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>list()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>uninstall()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-  <sect5 id="customactionsprops">
-    <title>The Properties of the CustomActions Class</title>
-    
-    <para>
-      <variablelist>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="customactionsconf">
-    <title>CustomActions Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>get()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>install()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>list()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>uninstall()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/date.xml
===================================================================
RCS file: doc/C/asspec/date.xml
diff -N doc/C/asspec/date.xml
--- doc/C/asspec/date.xml       25 Apr 2007 08:20:31 -0000      1.3
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,989 +0,0 @@
-<sect4 id="asdate">
-  <title>Date ActionScript Class</title>
-
-  <para>
-    This class implements the Date object.
-  </para>
-
-  <sect5 id="datemethods">
-    <title>The Methods of the Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>getDate()</term>
-         <listitem>
-           <para>
-               Returns a Date's day-of-month from 1 to 31
-               according to local time.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getDay()</term>
-         <listitem>
-           <para>
-               Returns the day-of-the-week for a Date,
-               according to local time,
-               in the range 0-6 where 0 means Sunday and 6 means Saturday.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getFullYear()</term>
-         <listitem>
-           <para>
-               Returns the Gregorian year number for a Date,
-               according to local time.
-               Since Gnash currently uses POSIX date routines internally,
-               this probably only works for dates from
-               13 Dec 1901 to 19 Jan 2038.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getHours()</term>
-         <listitem>
-           <para>
-               Returns the hour-of-the-day for a Date,
-               according to local time,
-               in the range 0-23.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getMilliseconds()</term>
-         <listitem>
-           <para>
-               Returns the milliseconds component of a Date
-               as an integer in the range 0-999.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getMinutes()</term>
-         <listitem>
-           <para>
-               Returns the minutes-past-the-hour for a Date,
-               according to local time,
-               in the range 0-59.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getMonth()</term>
-         <listitem>
-           <para>
-               Returns the month of the year for a Date,
-               according to local time,
-               in the range 0-11 where 0 means January and 11 means December.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getSeconds()</term>
-         <listitem>
-           <para>
-               Returns the seconds past the minute for a Date,
-               in the range 0-59.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getTime()</term>
-         <listitem>
-           <para>
-               Returns the number of milliseconds elapsed since 
-               1 Jan 1970 00:00:00 in Universal Coordinated Time,
-               as a floating point number: fractions of milliseconds
-               are included.
-               Negative values indicate times before 1 Jan 1970.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getTimezoneOffset()</term>
-         <listitem>
-           <para>
-               Returns the difference between Universal Coordinated Time
-               and the local time represented by a Date, including
-               Daylight Savings Time if it was in effect at that time
-               in the current locale.
-               The return value is in minutes; negative for timezones east of
-               Greenwich and positive for those west of Greenwich.
-           </para>
-           <para>
-               For example in the GMT+1 timezone, one hour east of Greenwich,
-               for a time when DST was not in effect,
-               the result would be -60.
-               In the same timezone when DST is in effect,
-               the extra hour in advance of UTC makes the value -120.
-               Positive values are returned for locales west of Greenwich.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getUTCDate()</term>
-         <listitem>
-           <para>
-               Returns a Date's day-of-month from 1 to 31,
-               according to Universal Coordinated Time.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getUTCDay()</term>
-         <listitem>
-           <para>
-               Returns the day-of-the-week for a Date,
-               according to local time,
-               in the range 0-6 where 0 means Sunday and 6 means Saturday.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getUTCFullYear()</term>
-         <listitem>
-           <para>
-               Returns the Gregorian year number for a Date,
-               according to Universal Coordinated Time.
-               Since Gnash currently uses POSIX date routines internally,
-               this probably only works for dates from
-               13 Dec 1901 to 19 Jan 2038.
-           </para>
-         </listitem>
-       </varlistentry>
-
-               <varlistentry>
-                 <term>getUTCHours()</term>
-                 <listitem>
-                   <para>
-                       Returns the hour-of-the-day for a Date,
-                       according to Universal Coordinated Time,
-               in the range 0-23.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getUTCMilliseconds()</term>
-         <listitem>
-           <para>
-               Returns the milliseconds component of a Date
-               as an integer in the range 0-999.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getUTCMinutes()</term>
-         <listitem>
-           <para>
-               Returns the minutes-past-the-hour for a Date,
-               according to Universal Coordinated Time,
-               in the range 0-59.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getUTCMonth()</term>
-         <listitem>
-           <para>
-               Returns the month of the year for a Date,
-               according to Universal Coordinated Time,
-               in the range 0-11 where 0 means January and 11 means December.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getUTCSeconds()</term>
-         <listitem>
-           <para>
-               Returns the seconds past the minute for a Date,
-               in the range 0-59.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getYear()</term>
-         <listitem>
-           <para>
-               Returns the number of Gregorian years elapsed between 1900
-               and a Date,
-               according to local time.
-           </para>
-           <para>
-               For dates past 1st Jan 2000 it returns values from 100 onwards;
-               for years before 1900 it returns negative values.
-           </para>
-           <para>
-               This function is a historical wart left over from the days when
-               nobody could believe we would still be using Flash in 2000.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setDate(dayofmonth)</term>
-         <listitem>
-           <para>
-               Sets the day-of-month for a Date object,
-               in the range 1-31, leaving the year, month, and
-               time-of-day unchanged for valid values.
-           </para>
-           <para>
-               If dayofmonth is greater than the number of days in the
-               month in question, it wraps into the following month:
-               for example, trying to set the 35th to a date in January
-               will result in the 4th of February.
-               If it is zero or negative, this will take the Date back
-               to a previous month and possibly a previous year.
-           </para>
-           <para>
-               If there are no parameters to setDate,
-               if dayofmonth is not of type Number
-               (or a String that contains a decimal number
-               or the Boolean values "true" and "false",
-               which behave the same as 1 and 0)
-               is an infinity or NotANumber,
-               this sets the value of the Date object to "Not A Number",
-               which is converted to a string as "Invalid date".
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setFullYear(year,[month[,dayofmonth]])</term>
-         <listitem>
-           <para>
-               If a single parameter is given, this
-               sets the Gregorian year number for a Date,
-               normally leaving the month and day-of-month unchanged.
-           </para>
-           <para>
-               When changing from a leap year to a non-leap year
-               when the date is set to 29th February,
-               the resulting date is 1st March of the same year.
-           </para>
-           <para>
-               If month, and maybe dayofmonth, are also given, they
-               simultaneously set the month (and day of month), following
-               the usual rules whereby excessively large or negative values
-               carry over to affect the month or year and still give a
-               valid date.
-           </para>
-           <para>
-               If any supplied value cannot be converted to a valid number,
-               the Date's value is set to NotANumber.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setHours(hour)</term>
-         <listitem>
-           <para>
-               Sets the hour-of-the-day, normally in the range 0-23,
-               leaving the calendar date and minutes/seconds unchanged.
-           </para>
-           <para>
-               Values greater than 23 will make the date roll over to one of
-               the following days; negative values will result in previous
-               dates.
-               If no parameter is given, or if it is not of a type that can be
-               converted to a number, the resulting date value is NotANumber,
-               which prints as "Invalid date".
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setMilliseconds()</term>
-         <listitem>
-           <para>
-               Sets the milliseconds with a resolution of one millisecond:
-               fractional parts of a millisecond are ignored.
-           </para>
-           <para>
-               The parameter is normally a value from 0-999, but values
-               outside this range will carry over into, or borrow from,
-               the seconds (and minutes, hours etc if necessary).
-           </para>
-           <para>
-               If no parameters are given, or if the parameter cannot
-               be converted to a number, the Date's value is set to
-               NotANumber. Any extra parameters are ignored.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setMinutes(minutes[,seconds[,milliseconds]])</term>
-         <listitem>
-           <para>
-               Sets the minutes-past-the-hour normally in the range 0-59,
-               leaving the calendar date and hour/seconds unchanged.
-           </para>
-           <para>
-               "Minutes" greater than 59 carry over into the hours (and
-               may consequently advance the date);
-               simiarly, negative values borrow from them.
-           </para>
-           <para>
-               The optional second and third parameters simultaneously set
-               the seconds and millisecond components,
-               with similar carry/borrow if they are outside the ranges
-               0-59 and 0-999;
-               fractions of seconds and milliseconds are ignored.
-           </para>
-           <para>
-               If no parameter is given, or if it is not of a type that can be
-               converted to a number, the resulting date value is NotANumber,
-               which prints as "Invalid date".
-               Gnash differs from the commercial Flash player in this,
-               which, given a non-numeric value for "minutes",
-               returns a seemingly random date such as 9th December, 2077 BC.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setMonth(month[,day])</term>
-         <listitem>
-           <para>
-               Sets the month of the year, normally in the range 0-11,
-               leaving the year and time of day (in localtime) unchanged.
-           </para>
-           <para>
-               Values greater than 11 will make the date roll over into a
-               following year; negative values will result in previous
-               years.
-           </para>
-           <para>
-               If only the month is given, the new month has less days that
-               the old, and the day-of-month is beyond the end of the new
-               month, the date wraps over into the first days of the month
-               after the specified one. Gnash differs in this from the
-               commercial player, which leaves the date set to the last day
-               of the requested month.
-           </para>
-           <para>
-               If no parameter is given, or if it is not of a type that can
-               be converted to a number, the month is set to January without
-               changing the year.
-           </para>
-           <para>
-               If the optional extra parameter "day" is given, both the
-               month and day-of-month are set. As usual, day numbers beyond
-               the last day of the selected month wrap over into the following
-               month(s), and negative values take us back to previous months
-               and possibly years.
-           </para>
-           <para>
-               Unlike the "month" parameter, non-numeric values for "day"
-               result in the Date's value being set to NotANumber.
-           </para>
-           <para>
-               Any further parameters are ignored.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setSeconds(seconds[,milliseconds])</term>
-         <listitem>
-           <para>
-               Sets the seconds component of a Date.
-               If the value of "seconds" is from 0-59, the hours and
-               minutes will be unchanged.
-           </para>
-           <para>
-               An optional extra parameter can be used to simultanously
-               set the milliseconds, though only to a precision of
-               one millisecond: fractions of milliseconds can be given
-               but are ignored). Likewise, any fractional part of a second
-               is ignored.
-           </para>
-           <para>
-               As usual, values outside the range 0-999 for milliseconds
-               are (added or subtracted) from the seconds,
-               and values outside the range 0-59 for the seconds carry over
-               into the minutes, hours etc.
-           </para>
-           <para>
-               Non-numerical values for "seconds" or "milliseconds"
-               result in the Date's value being set to NotANumber.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setTime()</term>
-         <listitem>
-           <para>
-               Sets a Date object to a specified number of milliseconds
-               since 1 Jan 1970 in Universal Coordinated Time.
-               Fractions of milliseconds are ignored;
-               the only way to set a a date to sub-millisecond accuracy
-               is to use the single-argument version of the Date constructor.
-           </para>
-           <para>
-               If no parameters are supplied, or if the parameter cannot be
-               converted to a number, the Date's value is set to NotANumber.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setUTCDate()</term>
-         <listitem>
-           <para>
-               Is the same as setDate(),
-               but specifying the time in Universal Coordinated Time.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setUTCFullYear()</term>
-         <listitem>
-           <para>
-               Is the same as setFullYear(),
-               but specifying the time in Universal Coordinated Time.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setUTCHours()</term>
-         <listitem>
-           <para>
-               Is the same as setHours(),
-               but specifying the time in Universal Coordinated Time.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setUTCMilliseconds()</term>
-         <listitem>
-           <para>
-               Is the same as setMilliseconds().
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setUTCMinutes()</term>
-         <listitem>
-           <para>
-               Is the same as setMinutes(),
-               but specifying the time in Universal Coordinated Time.
-           </para>
-           <para>
-               This differs from setMinutes in countries that have
-               a time offset that is not a whole number of hours and on
-               Lord Howe Island which also has daylight savings time of
-               half an hour.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setUTCMonth()</term>
-         <listitem>
-           <para>
-               Is the same as setMonth(),
-               but specifying the time in Universal Coordinated Time.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setUTCSeconds()</term>
-         <listitem>
-           <para>
-               Is the same as setSeconds(),
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setYear(year[,month[,dayofmonth]])</term>
-         <listitem>
-           <para>
-               Is the same as setFullYear(), except that values from
-               0 to 99 specify the years 1900 to 1999, and negative values
-               specify a year prior to 1900. Thus the only way to specify
-               the year 55AD with this method is to use -1845.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>toString()</term>
-         <listitem>
-           <para>
-               Converts a Date object to a printable string in the form
-               "Thu Jan 1 00:00:00 GMT+0000 1970" in local time, according to
-               the local timezone and whether Daylight Saving Time
-               was in force at the time in question.
-           </para>
-           <para>
-               If the Date's value is NotANumber or Infinity,
-               the string "Invalid Date" is returned.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         
<term>UTC(year,month[,dayofmonth[,hour[,minutes[,seconds[,milliseconds]]]]])</term>
-         <listitem>
-           <para>
-               Is a static function that converts the specified time,
-               expressed in Universal Coordinated Time,
-               to a Date value. It is most often used in conjunction with
-               the Date constructor or the setTime method, to create a
-               Date object according to UTC.
-           </para>
-           <para>
-               All parameters are 0-based except "month" which is 1-based,
-               and the usual carry/borrow rules apply for oversized and
-               negative values.
-           </para>
-           <para>
-               A missing day-of-month defaults to the first of the month;
-               the other parameters default to zero.
-           </para>
-           <para>
-               If less than two paramemters are supplied, or if any supplied
-               parameters cannot be converted to numeric values, the Date's
-               value is set to NotANumber.
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="dateconf">
-    <title>Date Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>getDate()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getDay()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getFullYear()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getHours()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getMilliseconds()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getMinutes()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getMonth()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getSeconds()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getTime()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getTimezoneOffset()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getUTCDate()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getUTCDay()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getUTCFullYear()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getUTCHours()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getUTCMilliseconds()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getUTCMinutes()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getUTCMonth()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getUTCSeconds()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getYear()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setDate()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setFullYear()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setHours()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setMilliseconds()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setMinutes()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-               <para>
-                 The commercial player, given d.setMinutes(), leaves the
-                 date set to a random value such as 9th December 2077 BC.
-                 Gnash gives NotANumber, in the same way as all the
-                 other functions.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setMonth()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setSeconds()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setTime()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setUTCDate()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setUTCFullYear()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setUTCHours()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setUTCMilliseconds()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setUTCMinutes()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-                 See setMinutes above.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setUTCMonth()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setUTCSeconds()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setYear()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>toString()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>UTC()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-               <para>
-                 The commercial player, given Date.UTC(Infinity, 0),
-                 returns -6.77681005679712e+19;
-                 Gnash returns NAN if any parameter is non-numeric.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/error.xml
===================================================================
RCS file: doc/C/asspec/error.xml
diff -N doc/C/asspec/error.xml
--- doc/C/asspec/error.xml      29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,106 +0,0 @@
-<sect4 id="aserror">
-  <title>Error ActionScript Class</title>
-
-  <para>
-    This class implements an Error object.
-  </para>
-
-  <sect5 id="errormethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>toString()</term>
-         <listitem>
-           <para>
-             Returns the error object as a string
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-  <sect5 id="errorprops">
-    <title>The Properties of the Error Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>message</term>
-         <listitem>
-           <para>
-             Returns an error message as a string.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>name</term>
-         <listitem>
-           <para>
-             Returns the name of the error object.
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="errorconf">
-    <title>Error Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>toString()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>message</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>name</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/fdl-appendix.xml
===================================================================
RCS file: doc/C/asspec/fdl-appendix.xml
diff -N doc/C/asspec/fdl-appendix.xml
--- doc/C/asspec/fdl-appendix.xml       29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,670 +0,0 @@
-<!--  
-     The GNU Free Documentation License 1.1 in DocBook
-     Markup by Eric Baudais <address@hidden>
-     Maintained by the GNOME Documentation Project
-     http://developer.gnome.org/projects/gdp
-     Version: 1.0.1
-     Last Modified: Nov 16, 2000
--->
-
-<appendix id="fdl">
-  <docinfo>
-    <releaseinfo>
-      Version 1.1, March 2000
-    </releaseinfo>
-    <copyright>
-      <year>2000</year><holder>Free Software Foundation, Inc.</holder>
-    </copyright>
-    <legalnotice id="fdl-legalnotice">
-      <para>
-       <address>Free Software Foundation, Inc. <street>59 Temple Place, 
-        Suite 330</street>, <city>Boston</city>, <state>MA</state>  
-        <postcode>02111-1307</postcode>  <country>USA</country></address> 
-       Everyone is permitted to copy and distribute verbatim copies of this 
-        license document, but changing it is not allowed.
-      </para>
-    </legalnotice>
-  </docinfo>
-  <title>GNU Free Documentation License</title>
-
-  <sect1 id="fdl-preamble">
-    <title>0. PREAMBLE</title>
-    <para>
-      The purpose of this License is to make a manual, textbook, or
-      other written document "free" in the sense of
-      freedom: to assure everyone the effective freedom to copy and
-      redistribute it, with or without modifying it, either
-      commercially or non-commercially. Secondarily, this License
-      preserves for the author and publisher a way to get credit for
-      their work, while not being considered responsible for
-      modifications made by others.
-    </para>
-    
-    <para>
-      This License is a kind of "copyleft", which means
-      that derivative works of the document must themselves be free in
-      the same sense. It complements the GNU General Public License,
-      which is a copyleft license designed for free software.
-    </para>
-    
-    <para>
-      We have designed this License in order to use it for manuals for
-      free software, because free software needs free documentation: a
-      free program should come with manuals providing the same
-      freedoms that the software does. But this License is not limited
-      to software manuals; it can be used for any textual work,
-      regardless of subject matter or whether it is published as a
-      printed book. We recommend this License principally for works
-      whose purpose is instruction or reference.
-    </para>
-  </sect1>
-  <sect1 id="fdl-section1">
-    <title>1. APPLICABILITY AND DEFINITIONS</title>
-    <para id="fdl-document">
-      This License applies to any manual or other work that contains a
-      notice placed by the copyright holder saying it can be
-      distributed under the terms of this License. The
-      "Document", below, refers to any such manual or
-      work. Any member of the public is a licensee, and is addressed
-      as "you".
-    </para>
-    
-    <para id="fdl-modified">
-      A "Modified Version" of the Document means any work
-      containing the Document or a portion of it, either copied
-      verbatim, or with modifications and/or translated into another
-      language.
-    </para>
-       
-    <para id="fdl-secondary">
-      A "Secondary Section" is a named appendix or a
-      front-matter section of the <link
-      linkend="fdl-document">Document</link> that deals exclusively
-      with the relationship of the publishers or authors of the
-      Document to the Document's overall subject (or to related
-      matters) and contains nothing that could fall directly within
-      that overall subject. (For example, if the Document is in part a
-      textbook of mathematics, a Secondary Section may not explain any
-      mathematics.)  The relationship could be a matter of historical
-      connection with the subject or with related matters, or of
-      legal, commercial, philosophical, ethical or political position
-      regarding them.
-    </para>
-
-    <para id="fdl-invariant">
-      The "Invariant Sections" are certain <link
-      linkend="fdl-secondary"> Secondary Sections</link> whose titles
-      are designated, as being those of Invariant Sections, in the
-      notice that says that the <link
-      linkend="fdl-document">Document</link> is released under this
-      License.
-    </para>
-    
-    <para id="fdl-cover-texts">
-      The "Cover Texts" are certain short passages of
-      text that are listed, as Front-Cover Texts or Back-Cover Texts,
-      in the notice that says that the <link
-      linkend="fdl-document">Document</link> is released under this
-      License.
-    </para>
-       
-    <para id="fdl-transparent">
-      A "Transparent" copy of the <link
-      linkend="fdl-document"> Document</link> means a machine-readable
-      copy, represented in a format whose specification is available
-      to the general public, whose contents can be viewed and edited
-      directly and straightforwardly with generic text editors or (for
-      images composed of pixels) generic paint programs or (for
-      drawings) some widely available drawing editor, and that is
-      suitable for input to text formatters or for automatic
-      translation to a variety of formats suitable for input to text
-      formatters. A copy made in an otherwise Transparent file format
-      whose markup has been designed to thwart or discourage
-      subsequent modification by readers is not Transparent.  A copy
-      that is not "Transparent" is called "Opaque".
-    </para>
-    
-    <para>
-      Examples of suitable formats for Transparent copies include
-      plain ASCII without markup, Texinfo input format, LaTeX input
-      format, SGML or XML using a publicly available DTD, and
-      standard-conforming simple HTML designed for human
-      modification. Opaque formats include PostScript, PDF,
-      proprietary formats that can be read and edited only by
-      proprietary word processors, SGML or XML for which the DTD
-      and/or processing tools are not generally available, and the
-      machine-generated HTML produced by some word processors for
-      output purposes only.
-    </para>
-    
-    <para id="fdl-title-page">
-      The "Title Page" means, for a printed book, the
-      title page itself, plus such following pages as are needed to
-      hold, legibly, the material this License requires to appear in
-      the title page. For works in formats which do not have any title
-      page as such, "Title Page" means the text near the
-      most prominent appearance of the work's title, preceding the
-      beginning of the body of the text.
-    </para>
-  </sect1>
-    
-  <sect1 id="fdl-section2">
-    <title>2. VERBATIM COPYING</title>
-    <para>
-      You may copy and distribute the <link
-      linkend="fdl-document">Document</link> in any medium, either
-      commercially or noncommercially, provided that this License, the
-      copyright notices, and the license notice saying this License
-      applies to the Document are reproduced in all copies, and that
-      you add no other conditions whatsoever to those of this
-      License. You may not use technical measures to obstruct or
-      control the reading or further copying of the copies you make or
-      distribute. However, you may accept compensation in exchange for
-      copies. If you distribute a large enough number of copies you
-      must also follow the conditions in <link
-      linkend="fdl-section3">section 3</link>.
-    </para>
-    
-    <para>
-      You may also lend copies, under the same conditions stated
-      above, and you may publicly display copies.
-    </para>
-    </sect1>
-    
-  <sect1 id="fdl-section3">
-    <title>3. COPYING IN QUANTITY</title>
-    <para>
-      If you publish printed copies of the <link
-      linkend="fdl-document">Document</link> numbering more than 100,
-      and the Document's license notice requires <link
-      linkend="fdl-cover-texts">Cover Texts</link>, you must enclose
-      the copies in covers that carry, clearly and legibly, all these
-      Cover Texts: Front-Cover Texts on the front cover, and
-      Back-Cover Texts on the back cover. Both covers must also
-      clearly and legibly identify you as the publisher of these
-      copies. The front cover must present the full title with all
-      words of the title equally prominent and visible. You may add
-      other material on the covers in addition. Copying with changes
-      limited to the covers, as long as they preserve the title of the
-      <link linkend="fdl-document">Document</link> and satisfy these
-      conditions, can be treated as verbatim copying in other
-      respects.
-    </para>
-    
-    <para>
-      If the required texts for either cover are too voluminous to fit
-      legibly, you should put the first ones listed (as many as fit
-      reasonably) on the actual cover, and continue the rest onto
-      adjacent pages.
-    </para>
-    
-    <para>
-      If you publish or distribute <link
-      linkend="fdl-transparent">Opaque</link> copies of the <link
-      linkend="fdl-document">Document</link> numbering more than 100,
-      you must either include a machine-readable <link
-      linkend="fdl-transparent">Transparent</link> copy along with
-      each Opaque copy, or state in or with each Opaque copy a
-      publicly-accessible computer-network location containing a
-      complete Transparent copy of the Document, free of added
-      material, which the general network-using public has access to
-      download anonymously at no charge using public-standard network
-      protocols. If you use the latter option, you must take
-      reasonably prudent steps, when you begin distribution of Opaque
-      copies in quantity, to ensure that this Transparent copy will
-      remain thus accessible at the stated location until at least one
-      year after the last time you distribute an Opaque copy (directly
-      or through your agents or retailers) of that edition to the
-      public.
-    </para>
-    
-    <para>
-      It is requested, but not required, that you contact the authors
-      of the <link linkend="fdl-document">Document</link> well before
-      redistributing any large number of copies, to give them a chance
-      to provide you with an updated version of the Document.
-    </para>
-    </sect1>
-    
-  <sect1 id="fdl-section4">
-    <title>4. MODIFICATIONS</title>
-    <para>
-      You may copy and distribute a <link
-      linkend="fdl-modified">Modified Version</link> of the <link
-      linkend="fdl-document">Document</link> under the conditions of
-      sections <link linkend="fdl-section2">2</link> and <link
-      linkend="fdl-section3">3</link> above, provided that you release
-      the Modified Version under precisely this License, with the
-      Modified Version filling the role of the Document, thus
-      licensing distribution and modification of the Modified Version
-      to whoever possesses a copy of it. In addition, you must do
-      these things in the Modified Version:
-    </para>
-    
-    <itemizedlist mark="opencircle">
-      <listitem>
-       <formalpara>
-         <title>A</title>
-         <para>
-           Use in the <link linkend="fdl-title-page">Title
-           Page</link> (and on the covers, if any) a title distinct
-           from that of the <link
-           linkend="fdl-document">Document</link>, and from those of
-           previous versions (which should, if there were any, be
-           listed in the History section of the Document). You may
-           use the same title as a previous version if the original
-           publisher of that version gives permission.
-         </para>
-       </formalpara>
-      </listitem>
-      
-      <listitem>
-       <formalpara>
-         <title>B</title>
-         <para>
-           List on the <link linkend="fdl-title-page">Title
-           Page</link>, as authors, one or more persons or entities
-           responsible for authorship of the modifications in the
-           <link linkend="fdl-modified">Modified Version</link>,
-           together with at least five of the principal authors of
-           the <link linkend="fdl-document">Document</link> (all of
-           its principal authors, if it has less than five).
-         </para>
-       </formalpara>
-      </listitem>
-      
-      <listitem>
-       <formalpara>
-         <title>C</title>
-         <para>
-           State on the <link linkend="fdl-title-page">Title
-           Page</link> the name of the publisher of the <link
-           linkend="fdl-modified">Modified Version</link>, as the
-           publisher.
-         </para>
-       </formalpara>
-      </listitem>
-      
-      <listitem>
-       <formalpara>
-         <title>D</title>
-         <para>
-           Preserve all the copyright notices of the <link
-           linkend="fdl-document">Document</link>.
-         </para>
-       </formalpara>
-      </listitem>
-      
-      <listitem>
-       <formalpara>
-         <title>E</title>
-         <para>
-           Add an appropriate copyright notice for your modifications
-           adjacent to the other copyright notices.
-         </para>
-       </formalpara>
-      </listitem>
-      
-      <listitem>
-       <formalpara>
-         <title>F</title>
-         <para>
-           Include, immediately after the copyright notices, a
-           license notice giving the public permission to use the
-           <link linkend="fdl-modified">Modified Version</link> under
-           the terms of this License, in the form shown in the
-           Addendum below.
-         </para>
-       </formalpara>
-      </listitem>
-      
-      <listitem>
-       <formalpara>
-         <title>G</title>
-         <para>
-           Preserve in that license notice the full lists of <link
-           linkend="fdl-invariant"> Invariant Sections</link> and
-           required <link linkend="fdl-cover-texts">Cover
-           Texts</link> given in the <link
-           linkend="fdl-document">Document's</link> license notice.
-         </para>
-       </formalpara>
-      </listitem>
-      
-      <listitem>
-       <formalpara>
-         <title>H</title>
-         <para>
-           Include an unaltered copy of this License.
-         </para>
-       </formalpara>
-      </listitem>
-      
-      <listitem>
-       <formalpara>
-         <title>I</title>
-         <para>
-           Preserve the section entitled "History", and
-           its title, and add to it an item stating at least the
-           title, year, new authors, and publisher of the <link
-           linkend="fdl-modified">Modified Version </link>as given on
-           the <link linkend="fdl-title-page">Title Page</link>.  If
-           there is no section entitled "History" in the
-           <link linkend="fdl-document">Document</link>, create one
-           stating the title, year, authors, and publisher of the
-           Document as given on its Title Page, then add an item
-           describing the Modified Version as stated in the previous
-           sentence.
-         </para>
-       </formalpara>
-      </listitem>
-      
-      <listitem>
-       <formalpara>
-         <title>J</title>
-         <para>
-           Preserve the network location, if any, given in the <link
-           linkend="fdl-document">Document</link> for public access
-           to a <link linkend="fdl-transparent">Transparent</link>
-           copy of the Document, and likewise the network locations
-           given in the Document for previous versions it was based
-           on. These may be placed in the "History"
-           section.  You may omit a network location for a work that
-           was published at least four years before the Document
-           itself, or if the original publisher of the version it
-           refers to gives permission.
-         </para>
-       </formalpara>
-      </listitem>
-      
-      <listitem>
-       <formalpara>
-         <title>K</title>
-         <para>
-           In any section entitled "Acknowledgements" or
-           "Dedications", preserve the section's title,
-           and preserve in the section all the substance and tone of
-           each of the contributor acknowledgements and/or
-           dedications given therein.
-         </para>
-       </formalpara>
-      </listitem>
-      
-      <listitem>
-       <formalpara>
-         <title>L</title>
-         <para>
-           Preserve all the <link linkend="fdl-invariant">Invariant
-           Sections</link> of the <link
-           linkend="fdl-document">Document</link>, unaltered in their
-           text and in their titles.  Section numbers or the
-           equivalent are not considered part of the section titles.
-         </para>
-       </formalpara>
-      </listitem>
-      
-      <listitem>
-       <formalpara>
-         <title>M</title>
-         <para>
-           Delete any section entitled
-           "Endorsements". Such a section may not be
-           included in the <link linkend="fdl-modified">Modified
-           Version</link>.
-         </para>
-       </formalpara>
-      </listitem>
-      
-      <listitem>
-       <formalpara>
-         <title>N</title>
-         <para>
-           Do not retitle any existing section as
-           "Endorsements" or to conflict in title with
-           any <link linkend="fdl-invariant">Invariant
-           Section</link>.
-         </para>
-       </formalpara>
-      </listitem>
-    </itemizedlist>
-    
-    <para>
-      If the <link linkend="fdl-modified">Modified Version</link>
-      includes new front-matter sections or appendices that qualify as
-      <link linkend="fdl-secondary">Secondary Sections</link> and
-      contain no material copied from the Document, you may at your
-      option designate some or all of these sections as invariant. To
-      do this, add their titles to the list of <link
-      linkend="fdl-invariant">Invariant Sections</link> in the
-      Modified Version's license notice.  These titles must be
-      distinct from any other section titles.
-    </para>
-    
-    <para>
-      You may add a section entitled "Endorsements",
-      provided it contains nothing but endorsements of your <link
-      linkend="fdl-modified">Modified Version</link> by various
-      parties--for example, statements of peer review or that the text
-      has been approved by an organization as the authoritative
-      definition of a standard.
-    </para>
-    
-    <para>
-      You may add a passage of up to five words as a <link
-      linkend="fdl-cover-texts">Front-Cover Text</link>, and a passage
-      of up to 25 words as a <link
-      linkend="fdl-cover-texts">Back-Cover Text</link>, to the end of
-      the list of <link linkend="fdl-cover-texts">Cover Texts</link>
-      in the <link linkend="fdl-modified">Modified Version</link>.
-      Only one passage of Front-Cover Text and one of Back-Cover Text
-      may be added by (or through arrangements made by) any one
-      entity. If the <link linkend="fdl-document">Document</link>
-      already includes a cover text for the same cover, previously
-      added by you or by arrangement made by the same entity you are
-      acting on behalf of, you may not add another; but you may
-      replace the old one, on explicit permission from the previous
-      publisher that added the old one.
-    </para>
-    
-    <para>
-      The author(s) and publisher(s) of the <link
-      linkend="fdl-document">Document</link> do not by this License
-      give permission to use their names for publicity for or to
-      assert or imply endorsement of any <link
-      linkend="fdl-modified">Modified Version </link>.
-    </para>
-  </sect1>
-    
-  <sect1 id="fdl-section5">
-    <title>5. COMBINING DOCUMENTS</title>
-    <para>
-      You may combine the <link linkend="fdl-document">Document</link>
-      with other documents released under this License, under the
-      terms defined in <link linkend="fdl-section4">section 4</link>
-      above for modified versions, provided that you include in the
-      combination all of the <link linkend="fdl-invariant">Invariant
-      Sections</link> of all of the original documents, unmodified,
-      and list them all as Invariant Sections of your combined work in
-      its license notice.
-    </para>
-    
-    <para>
-      The combined work need only contain one copy of this License,
-      and multiple identical <link linkend="fdl-invariant">Invariant
-      Sections</link> may be replaced with a single copy. If there are
-      multiple Invariant Sections with the same name but different
-      contents, make the title of each such section unique by adding
-      at the end of it, in parentheses, the name of the original
-      author or publisher of that section if known, or else a unique
-      number. Make the same adjustment to the section titles in the
-      list of Invariant Sections in the license notice of the combined
-      work.
-    </para>
-    
-    <para>
-      In the combination, you must combine any sections entitled
-      "History" in the various original documents,
-      forming one section entitled "History"; likewise
-      combine any sections entitled "Acknowledgements",
-      and any sections entitled "Dedications".  You must
-      delete all sections entitled "Endorsements."
-    </para>
-    </sect1>
-    
-  <sect1 id="fdl-section6">
-    <title>6. COLLECTIONS OF DOCUMENTS</title>
-    <para>
-      You may make a collection consisting of the <link
-      linkend="fdl-document">Document</link> and other documents
-      released under this License, and replace the individual copies
-      of this License in the various documents with a single copy that
-      is included in the collection, provided that you follow the
-      rules of this License for verbatim copying of each of the
-      documents in all other respects.
-    </para>
-    
-    <para>
-      You may extract a single document from such a collection, and
-      distribute it individually under this License, provided you
-      insert a copy of this License into the extracted document, and
-      follow this License in all other respects regarding verbatim
-      copying of that document.
-    </para>
-    </sect1>
-    
-  <sect1 id="fdl-section7">
-    <title>7. AGGREGATION WITH INDEPENDENT WORKS</title>
-    <para>
-      A compilation of the <link
-      linkend="fdl-document">Document</link> or its derivatives with
-      other separate and independent documents or works, in or on a
-      volume of a storage or distribution medium, does not as a whole
-      count as a <link linkend="fdl-modified">Modified Version</link>
-      of the Document, provided no compilation copyright is claimed
-      for the compilation.  Such a compilation is called an
-      "aggregate", and this License does not apply to the
-      other self-contained works thus compiled with the Document , on
-      account of their being thus compiled, if they are not themselves
-      derivative works of the Document.  If the <link
-      linkend="fdl-cover-texts">Cover Text</link> requirement of <link
-      linkend="fdl-section3">section 3</link> is applicable to these
-      copies of the Document, then if the Document is less than one
-      quarter of the entire aggregate, the Document's Cover Texts may
-      be placed on covers that surround only the Document within the
-      aggregate. Otherwise they must appear on covers around the whole
-      aggregate.
-    </para>
-    </sect1>
-    
-  <sect1 id="fdl-section8">
-    <title>8. TRANSLATION</title>
-    <para>
-      Translation is considered a kind of modification, so you may
-      distribute translations of the <link
-      linkend="fdl-document">Document</link> under the terms of <link
-      linkend="fdl-section4">section 4</link>. Replacing <link
-      linkend="fdl-invariant"> Invariant Sections</link> with
-      translations requires special permission from their copyright
-      holders, but you may include translations of some or all
-      Invariant Sections in addition to the original versions of these
-      Invariant Sections. You may include a translation of this
-      License provided that you also include the original English
-      version of this License. In case of a disagreement between the
-      translation and the original English version of this License,
-      the original English version will prevail.
-    </para>
-    </sect1>
-    
-  <sect1 id="fdl-section9">
-    <title>9. TERMINATION</title>
-    <para>
-      You may not copy, modify, sublicense, or distribute the <link
-      linkend="fdl-document">Document</link> except as expressly
-      provided for under this License. Any other attempt to copy,
-      modify, sublicense or distribute the Document is void, and will
-      automatically terminate your rights under this License. However,
-      parties who have received copies, or rights, from you under this
-      License will not have their licenses terminated so long as such
-      parties remain in full compliance.
-    </para>
-    </sect1>
-    
-  <sect1 id="fdl-section10">
-    <title>10. FUTURE REVISIONS OF THIS LICENSE</title>
-    <para>
-      The <ulink type="http"
-      url="http://www.gnu.org/fsf/fsf.html";>Free Software
-      Foundation</ulink> may publish new, revised versions of the GNU
-      Free Documentation License from time to time. Such new versions
-      will be similar in spirit to the present version, but may differ
-      in detail to address new problems or concerns. See <ulink
-      type="http"
-      url="http://www.gnu.org/copyleft";>http://www.gnu.org/copyleft/</ulink>.
-    </para>
-    
-    <para>
-      Each version of the License is given a distinguishing version
-      number. If the <link linkend="fdl-document">Document</link>
-      specifies that a particular numbered version of this License
-      "or any later version" applies to it, you have the
-      option of following the terms and conditions either of that
-      specified version or of any later version that has been
-      published (not as a draft) by the Free Software Foundation. If
-      the Document does not specify a version number of this License,
-      you may choose any version ever published (not as a draft) by
-      the Free Software Foundation.
-    </para>
-  </sect1>
-
-  <sect1 id="fdl-using">
-    <title>Addendum</title>
-    <para>
-      To use this License in a document you have written, include a copy of
-      the License in the document and put the following copyright and
-      license notices just after the title page:
-    </para>
-    
-    <blockquote>
-      <para>
-       Copyright  YEAR YOUR NAME.
-      </para>
-      <para>
-       Permission is granted to copy, distribute and/or modify this
-       document under the terms of the GNU Free Documentation
-       License, Version 1.1 or any later version published by the
-       Free Software Foundation; with the <link
-       linkend="fdl-invariant">Invariant Sections</link> being LIST
-       THEIR TITLES, with the <link
-       linkend="fdl-cover-texts">Front-Cover Texts</link> being LIST,
-       and with the <link linkend="fdl-cover-texts">Back-Cover
-       Texts</link> being LIST.  A copy of the license is included in
-       the section entitled "GNU Free Documentation
-       License".
-      </para>
-    </blockquote>
-      
-    <para>
-      If you have no <link linkend="fdl-invariant">Invariant
-      Sections</link>, write "with no Invariant Sections"
-      instead of saying which ones are invariant.  If you have no
-      <link linkend="fdl-cover-texts">Front-Cover Texts</link>, write
-      "no Front-Cover Texts" instead of
-      "Front-Cover Texts being LIST"; likewise for <link
-      linkend="fdl-cover-texts">Back-Cover Texts</link>.
-    </para>
-    
-    <para>
-      If your document contains nontrivial examples of program code,
-      we recommend releasing these examples in parallel under your
-      choice of free software license, such as the <ulink type="http"
-      url="http://www.gnu.org/copyleft/gpl.html";> GNU General Public
-      License</ulink>, to permit their use in free software.
-    </para>
-  </sect1>
-</appendix>  
-
-
-
-
-
-

Index: doc/C/asspec/function.xml
===================================================================
RCS file: doc/C/asspec/function.xml
diff -N doc/C/asspec/function.xml
--- doc/C/asspec/function.xml   29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,84 +0,0 @@
-<sect4 id="asfunction">
-  <title>Function ActionScript Class</title>
-
-  <para>
-    This class implements an Function object.
-  </para>
-
-  <sect5 id="functionmethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>apply()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>call()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-  <sect5 id="functionprops">
-    <title>The Properties of the Function Class</title>
-    
-    <para>
-      <variablelist>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="functionconf">
-    <title>Function Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>apply()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>call()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/key.xml
===================================================================
RCS file: doc/C/asspec/key.xml
diff -N doc/C/asspec/key.xml
--- doc/C/asspec/key.xml        29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,545 +0,0 @@
-<sect4 id="askey">
-  <title>Key ActionScript Class</title>
-
-  <para>
-    This class implements an Key object.
-  </para>
-
-  <sect5 id="keymethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>addListener()</term>
-         <listitem>
-           <para>
-             Add a callback for key up and down events.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getAscii()</term>
-         <listitem>
-           <para>
-             Return the ASCII value of the key.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getCode()</term>
-         <listitem>
-           <para>
-             Return the key code of the key.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>isDown()</term>
-         <listitem>
-           <para>
-             Returns true if the specified key is down.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>isToggled()</term>
-         <listitem>
-           <para>
-             Returns true if the Num Lock key is on.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>removeListener()</term>
-         <listitem>
-           <para>
-             Remove the event handler.
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-  <sect5 id="keyprops">
-    <title>The Properties of the Key Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>BACKSPACE</term>
-         <listitem>
-           <para>
-             A constant representing the backspace key.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>CAPSLOCK</term>
-         <listitem>
-           <para>
-             A constant representing the Caps Lock key.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>CONTROL</term>
-         <listitem>
-           <para>
-             A constant representing the Control key.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>DELETEKEY</term>
-         <listitem>
-           <para>
-             A constant representing the Delete key.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>DOWN</term>
-         <listitem>
-           <para>
-             A constant representing the Down arrow key.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>END</term>
-         <listitem>
-           <para>
-             A constant representing the End key.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>ENTER</term>
-         <listitem>
-           <para>
-             A constant representing the Enter key.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>ESCAPE</term>
-         <listitem>
-           <para>
-             A constant representing the Escape key.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>HOME</term>
-         <listitem>
-           <para>
-             A constant representing the Home key.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>INSERT</term>
-         <listitem>
-           <para>
-             A constant representing the Insert key.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>LEFT</term>
-         <listitem>
-           <para>
-             A constant representing the left arrow key.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>PGDN</term>
-         <listitem>
-           <para>
-             A constant representing the Page Down key.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>PGUP</term>
-         <listitem>
-           <para>
-             A constant representing the Page Up key.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>RIGHT</term>
-         <listitem>
-           <para>
-             A constant representing the right arrow key.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>SHIFT</term>
-         <listitem>
-           <para>
-             A constant representing the shift key.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>SPACE</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>TAB</term>
-         <listitem>
-           <para>
-             A constant representing the space bar.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>UP</term>
-         <listitem>
-           <para>
-             A constant representing the up arrow key.
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="keyevents">
-    <title>Key Class Event Handlers</title>
-    
-    <variablelist>
-      <varlistentry>
-       <term>onKeyDown</term>
-       <listitem>
-         <para>
-         </para>
-       </listitem>
-      </varlistentry>
-      
-      <varlistentry>
-       <term>onKeyUp</term>
-       <listitem>
-         <para>
-         </para>
-       </listitem>
-      </varlistentry>
-    </variablelist>
-  </sect5>
-      
-  <sect5 id="keyconf">
-    <title>Key Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>addListener()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getAscii()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getCode()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>isDown()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>isToggled()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>removeListener()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>BACKSPACE</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This constant is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>CAPSLOCK</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This constant is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>CONTROL</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This constant is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>DELETEKEY</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This constant is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>DOWN</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This constant is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>END</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This constant is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>ENTER</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This constant is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>ESCAPE</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This constant is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>HOME</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This constant is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>INSERT</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This constant is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>LEFT</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This constant is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onKeyDown</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This constant is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onKeyUp</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This constant is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>PGDN</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This constant is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>PGUP</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This constant is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>RIGHT</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This constant is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>SHIFT</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This constant is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>SPACE</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This constant is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>TAB</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This constant is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>UP</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This constant is implemented.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/legal.xml
===================================================================
RCS file: doc/C/asspec/legal.xml
diff -N doc/C/asspec/legal.xml
--- doc/C/asspec/legal.xml      29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-<legalnotice id="legalnotice">
-  <para>
-    Permission is granted to copy, distribute and/or modify this document
-    under the terms of the <link linkend="fdl"><citetitle>GNU
-    Free Documentation License</citetitle></link>, Version 1.1 or any later
-    version published by the Free Software Foundation with no Invariant
-    Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find
-    a copy of the GFDL at this 
-    <link linkend="fdl">link</link> or in the file COPYING-DOCS
-    distributed with this manual.
-   </para>
- </legalnotice>

Index: doc/C/asspec/loadvars.xml
===================================================================
RCS file: doc/C/asspec/loadvars.xml
diff -N doc/C/asspec/loadvars.xml
--- doc/C/asspec/loadvars.xml   29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,264 +0,0 @@
-<sect4 id="asloadvars">
-  <title>LoadVars ActionScript Class</title>
-
-  <para>
-    This class implements an LoadVars object.
-  </para>
-
-  <sect5 id="loadvarsmethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>addRequestHeader()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>decode()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getBytesLoaded()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getBytesTotal()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>load()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>send()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>sendAndLoad()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>toString()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-  <sect5 id="loadvarsprops">
-    <title>The Properties of the LoadVars Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>contentType</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>loaded</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onData</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onLoad</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="loadvarsconf">
-    <title>LoadVars Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>addRequestHeader()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>decode()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getBytesLoaded()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getBytesTotal()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>load()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>send()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>sendAndLoad()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>toString()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>contentType</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>loaded</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onData</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onLoad</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/localconnection.xml
===================================================================
RCS file: doc/C/asspec/localconnection.xml
diff -N doc/C/asspec/localconnection.xml
--- doc/C/asspec/localconnection.xml    29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,199 +0,0 @@
-<sect4 id="aslocalconnection">
-  <title>LocalConnection ActionScript Class</title>
-
-  <para>
-    This class implements an LocalConnection object. This is basically
-    a Flash version of the a standard RPC (Remote Procedure
-    Call). This is used to have multiple flash movies exchange data
-    without converting it to <emphasis>XML</emphasis> first. This class uses 
shared memory
-    to transfer the data in the <emphasis>AMF</emphasis> format.
-  </para>
-
-  <para>
-    There is some documentation of the <emphasis>AMF</emphasis> format online, 
but not
-    much. There appear to be a few free <emphasis>AMF</emphasis> projects, but 
none that I
-    could find have any code. So I'm stuck developing a C/C++ based
-    <emphasis>AMF</emphasis> library to transfer data.
-  </para>
-
-  <sect5 id="localconnectionmethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>close()</term>
-         <listitem>
-           <para>
-             Close the current open connection, and remove the shared
-             memory segment.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>connect(const char *)</term>
-         <listitem>
-           <para>
-             This establishes a connection point so other movies can
-             remotely execute methods in this movie. The shared
-             memory segment is created in a form that can be attached
-             to by a client. The code that actually remotely executes a
-             method has yet to be written for Gnash.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>domain()</term>
-         <listitem>
-           <para>
-             This returns the network domain for this connection. The
-             default is to return "localhost".
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>send()</term>
-         <listitem>
-           <para>
-             Execute a method of the local object. Data is encoded in
-             the <emphasis>AMF</emphasis> format.
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-  <sect5 id="localconnectionevents">
-    <title>The Event Handlers of the LocalConnection Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>allowDomain</term>
-         <listitem>
-           <para>
-             Called for every method being executed.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>allowInsecureDomain</term>
-         <listitem>
-           <para>
-             Called when a request is received over the network.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onStatus</term>
-         <listitem>
-           <para>
-             Returns the status of the method that was executed.
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="localconnectionconf">
-    <title>LocalConnection Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>close()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>connect()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>domain()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>send()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>allowDomain</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>allowInsecureDomain</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onStatus</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/math.xml
===================================================================
RCS file: doc/C/asspec/math.xml
diff -N doc/C/asspec/math.xml
--- doc/C/asspec/math.xml       29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,543 +0,0 @@
-<sect4 id="asmath">
-  <title>Math ActionScript Class</title>
-
-  <para>
-    This class implements an Math object.
-  </para>
-
-  <sect5 id="mathmethods">
-    <title>The Methods of the Math Class</title>
-        
-    <para>
-      <variablelist>
-       <varlistentry>
-         <term>abs()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>acos()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>asin()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>atan()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>atan2()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>ceil()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>cos()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>exp()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>floor()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>log()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>max()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>min()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>pow()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>random()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>round()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>sin()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>sqrt()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>tan()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="mathprops">
-    <title>The Properties of the Math Class</title>
-    
-    <para>
-      <variablelist>
-       <varlistentry>
-         <term>E</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>LN2</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>LN10</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>LOG2E</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>LOG10E</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>PI</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>SQRT1_2</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>SQRT2</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="mathconf">
-    <title>Math Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>abs()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>acos()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>asin()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>atan()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>atan2()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>ceil()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>cos()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>exp()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>floor()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>log()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>max()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>min()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>pow()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>random()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>round()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>sin()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>sqrt()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>tan()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>E</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>LN2</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>LN10</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>LOG2E</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>LOG10E</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>PI</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>SQRT1_2</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>SQRT2</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/microphone.xml
===================================================================
RCS file: doc/C/asspec/microphone.xml
diff -N doc/C/asspec/microphone.xml
--- doc/C/asspec/microphone.xml 29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,354 +0,0 @@
-<sect4 id="asmicrophone">
-  <title>Microphone ActionScript Class</title>
-
-  <para>
-    This class implements an Microphone object.
-  </para>
-
-  <sect5 id="microphonemethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>get()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setGain()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setRate()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setSilenceLevel()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setUseEchoSuppression()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-  <sect5 id="microphoneprops">
-    <title>The Properties of the Microphone Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>activityLevel</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>gain</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>index</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>muted</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>name</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>names</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onActivity</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onStatus</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>rate</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>silenceLevel</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>silenceTimeOut</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>useEchoSuppression</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="microphoneconf">
-    <title>Microphone Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>get()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setGain()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setRate()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setSilenceLevel()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setUseEchoSuppression()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>activityLevel</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>gain</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>index</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>muted</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>name</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>names</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onActivity</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onStatus</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>rate</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>silenceLevel</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>silenceTimeOut</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>useEchoSuppression</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/mouse.xml
===================================================================
RCS file: doc/C/asspec/mouse.xml
diff -N doc/C/asspec/mouse.xml
--- doc/C/asspec/mouse.xml      29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,192 +0,0 @@
-<sect4 id="asmouse">
-  <title>Mouse ActionScript Class</title>
-
-  <para>
-    This class implements an Mouse object.
-  </para>
-
-  <sect5 id="mousemethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>addListener()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>hide()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>removeListener()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>show()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-  <sect5 id="mouseprops">
-    <title>The Properties of the Mouse Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>onMouseDown</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onMouseMove</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onMouseUp</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onMouseWheel</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="mouseconf">
-    <title>Mouse Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>addListener()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>hide()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>removeListener()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>show()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onMouseDown</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onMouseMove</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onMouseUp</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onMouseWheel</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/movieclip.xml
===================================================================
RCS file: doc/C/asspec/movieclip.xml
diff -N doc/C/asspec/movieclip.xml
--- doc/C/asspec/movieclip.xml  25 Apr 2007 09:14:12 -0000      1.5
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,1716 +0,0 @@
-<sect4 id="asmovieclip">
-  <title>MovieClip ActionScript Class</title>
-
-  <para>
-    This class implements an MovieClip object.
-  </para>
-
-  <sect5 id="movieclipmethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>attachAudio()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>attachMovie()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>beginFill([rgba])</term>
-         <listitem>
-           <para>
-               Set fill color for subsequent drawing. The value is interpreted 
as a 32bit integer composed of red (highest byte), green, blue and 
-               alpha (lowest byte). If first argument is missing the fill 
color will be black with alpha 255.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>beginGradientFill()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>clear()</term>
-         <listitem>
-           <para>
-               Clear all dynamic drawing on this MovieClip.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>createEmptyMovieClip(name, depth)</term>
-         <listitem>
-           <para>
-               Create an empty movieclip and place it in this clip displaylist 
at the given depth.
-               Return a reference to the created clip.
-               If called with less the two arguments the method returns 
undefined and no action is taken.
-               TOCHECK: what if a character with the given name already exist ?
-               TOCHECK: what if a character at the given depth already exist ?
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>createTextField()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>curveTo(cx, cy, ax, ay)</term>
-         <listitem>
-           <para>
-               Draw a quadratic bezier curve with current linestyle and 
current fill from current pen position to the anchor point ax,ay using control 
point cx, cy. If any argument is missing nothing is drawn. The function always 
returns undefined.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>duplicateMovieClip(newname, newdepth, [initObject])</term>
-         <listitem>
-           <para>
-               Make a clone of this MovieClip and place it in this MovieClip 
parent's DisplayList.
-               If given a third argument, it will be taken as an object to use 
for initializing properties
-               of the clone.
-               Return the cloned object.
-               An absolute root movieclip (_levelx) can not be duplicated, if 
attempted, no action is taken and undefined is returned.
-               TOCHECK: what if a character with the given name already exists 
in parent's display list ?
-               TOCHECK: what if a character at the given depth already exists 
in parent's display list ?
-               TODO: add info about what does it mean to 'clone' (what's 
cloned and what not).
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>endFill()</term>
-         <listitem>
-           <para>
-               Reset any fill information. Next drawing calls will not be 
filled.
-               If a fill was in effect (see beginFill and beginGradientFill) 
the current path is closed so that
-               last point equals the first point of the filled shape.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getBounds([target])</term>
-         <listitem>
-           <para>
-               Returns an object  with members 'xMin', 'yMin', 'xMax' and 
'yMax' representing the bounding box of this MovieClip.
-               When called with no args the bounding box is in local 
coordinate space.
-               When given an character as first argument, the bounding box is 
in the given character's coordinate space.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getBytesLoaded()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getBytesTotal()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getDepth()</term>
-         <listitem>
-           <para>
-               Return the depth on this character in its parent DisplayList.
-               TOCHECK: what's returned when called against a character with 
no parent (_levelx) ?
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getInstanceAtDepth()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getNextHighestDepth()</term>
-         <listitem>
-           <para>
-               Return the next available depth for placing a new character in 
this MovieClip displaylist.
-               TOCHECK: if depths 1 and 3 are occupied, returns 4, not 2 , 
right ?
-               NOTE: this function always return a number >= 0, negative 
depths are never returned.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getSWFVersion()</term>
-         <listitem>
-           <para>
-               TOCHECK : I don't think there's such a function ... 
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getTextSnapshot()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getURL()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>globalToLocal(obj)</term>
-         <listitem>
-               <para>
-               Take members 'x', and 'y' in the object 'obj' and transform 
them from global to local coordinate space.
-               If the parameter doesn't cast to an object, or the object 
doesn't contain both 'x' and 'y', the call is invalid 
-               and nothing is modified.
-               </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>gotoAndPlay()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>gotoAndStop()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>hitTest(target)</term>
-         <term>hitTest(x,y)</term>
-         <term>hitTest(x,y,shapeFlag)</term>
-         <listitem>
-           <para>
-               In the first form, check for the bounding boxes of this and 
target characters to intersect.
-               In the second and third form, check if the given point is 
inside the bounding box or the visible shape of this character; shapeFlag 
(false) in the 2 args version says wheter actual shape or just bounds has to be 
checked; coordinates values are in Stage coordinate space.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>lineStyle()</term>
-         <term>lineStyle(thickness, [color])</term>
-         <listitem>
-           <para>
-               In the first form (no args) it will reset all line style info 
so that next drawing will have a transparent drawing.
-               Note that by 'transparent' is not intended 0-alpha as no color 
transformation will be able to augment the alpha value.
-               The line is simply always invisible instead.
-           </para>
-           <para>
-               In the second form, set thickness and color of strokes for 
subsequent drawing.
-               If color is omitted, it defaults to black with 255 alpha.
-               If thickness is zero the line will always be an 'hariline', 
which is always displaied with the
-               same width at any scale. Other thickness will be in pixels and 
scale togheter with the MovieClip itself.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>lineTo(x, y)</term>
-         <listitem>
-           <para>
-               Draw a straight line from current position to point x,y using 
current styles.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>loadMovie()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>loadVariables()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>localToGlobal(obj)</term>
-         <listitem>
-           <para>
-               Take members 'x', and 'y' in the object 'obj' and transform 
them from local to global coordinate space.
-               If the parameter doesn't cast to an object, or the object 
doesn't contain both 'x' and 'y', the call is invalid 
-               and nothing is modified.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>moveTo()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>nextFrame()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>play()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>prevFrame()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>removeMovieClip()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setMask()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>startDrag()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>stop()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>stopDrag()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>swapDepths()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>unloadMovie()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-  <sect5 id="movieclipprops">
-    <title>The Properties of the MovieClip Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>_alpha</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_currentframe</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_droptarget</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>enabled</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>focusEnabled</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_focusrect</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_framesloaded</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_height</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>hitArea</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_lockroot</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>menu</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_name</term>
-         <listitem>
-           <para>
-               This is a read-write property of MovieClip objects.
-               Changing the _name property of a MovieClip also changes it's 
_target
-               and the _target of any child.
-           </para>
-           <para>
-               Dynamically-created clips are always created with a name, while 
for statically
-               defined one this is optional in the SWF, but will be syntetized 
by the player
-               if missing. TODO: check if _name reflects the syntetized naming 
(_instancex).
-               For the root movie syntetization doesn't happen and the _name 
property
-               is the empty string for SWF6 and higher or null for SWF5 and 
lower.
-           </para>
-           <para>
-               Valid values for _name are: ....
-           </para>
-           <para>
-               NOTE: mm player7 and player9 differ on typeof(_root._name) on 
startup.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onData</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onDragOut</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onDragOver</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onEnterFrame</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onKeyDown</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onKeyUp</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onKillFocus</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onLoad</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onMouseDown</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onMouseMove</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onMouseUp</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onPress</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onRelease</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onReleaseOutside</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onRollOut</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onRollOver</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onSetFocus</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onUnload</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_parent</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_quality</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_rotation</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_soundbuftime</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>tabChildren</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>tabEnabled</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>tabIndex</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_target</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_totalframes</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>trackAsMenu</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_url</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>useHandCursor</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_visible</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_width</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_x</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_xmouse</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_xscale</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_y</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_ymouse</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_yscale</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="movieclipconf">
-    <title>MovieClip Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>attachAudio()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>attachMovie()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>beginFill()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented and tested.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>beginGradientFill()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>clear()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented and tested.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>createEmptyMovieClip()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented and tested. Needs more tests for corner cases 
(ie: depth occupied or name existing).
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>createTextField()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>curveTo()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented and tested.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>duplicateMovieClip()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented and tested. Needs more testing.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>endFill()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented and tested.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getBounds()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented and tested.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getBytesLoaded()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getBytesTotal()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getDepth()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented and tested.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getInstanceAtDepth()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getNextHighestDepth()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented and tested. Needs more tests.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getSWFVersion()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getTextSnapshot()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getURL()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>globalToLocal()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented and tested in Gnash.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>gotoAndPlay()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>gotoAndStop()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>hitTest()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented and tested in Gnash.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>lineStyle()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented and tested.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>lineTo()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented and tested.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>loadMovie()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>loadVariables()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>localToGlobal()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented and tested in Gnash.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>moveTo()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>nextFrame()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>play()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>prevFrame()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>removeMovieClip()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setMask()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>startDrag()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>stop()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>stopDrag()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>swapDepths()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>unloadMovie()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_alpha</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_currentframe</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_droptarget</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>enabled</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>focusEnabled</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_focusrect</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_framesloaded</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_height</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>hitArea</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_lockroot</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>menu</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_name</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onData</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onDragOut</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onDragOver</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onEnterFrame</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onKeyDown</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onKeyUp</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onKillFocus</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onLoad</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onMouseDown</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onMouseMove</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onMouseUp</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onPress</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onRelease</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onReleaseOutside</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onRollOut</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onRollOver</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onSetFocus</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onUnload</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_parent</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_quality</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_rotation</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_soundbuftime</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>tabChildren</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>tabEnabled</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>tabIndex</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_target</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_totalframes</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>trackAsMenu</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_url</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>useHandCursor</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_visible</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_width</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_x</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_xmouse</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_xscale</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_y</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_ymouse</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_yscale</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/moviecliploader.xml
===================================================================
RCS file: doc/C/asspec/moviecliploader.xml
diff -N doc/C/asspec/moviecliploader.xml
--- doc/C/asspec/moviecliploader.xml    29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,228 +0,0 @@
-<sect4 id="asmoviecliploader">
-  <title>MovieClipLoader ActionScript Class</title>
-
-  <para>
-    This class implements an MovieClipLoader object.
-  </para>
-
-  <sect5 id="moviecliploadermethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>addListener()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getProgress()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>loadClip()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>removeListener()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>unloadClip()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-  <sect5 id="moviecliploaderprops">
-    <title>The Properties of the MovieClipLoader Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>onLoadComplete</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onLoadError</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onLoadInit</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onLoadProgress</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onLoadStart</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="moviecliploaderconf">
-    <title>MovieClipLoader Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>addListener()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getProgress()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>loadClip()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>removeListener()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>unloadClip()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onLoadComplete</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onLoadError</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onLoadInit</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onLoadProgress</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onLoadStart</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/netconnection.xml
===================================================================
RCS file: doc/C/asspec/netconnection.xml
diff -N doc/C/asspec/netconnection.xml
--- doc/C/asspec/netconnection.xml      29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,100 +0,0 @@
-<sect4 id="asnetconnection">
-  <title>NetConnection ActionScript Class</title>
-
-  <para>
-    This class implements an NetConnection object. The NetConnection
-    object opens a client connection to load an FLV video file from a
-    local system, or a remote one using the RTMP or RTMPT protocols.
-    RTMP connections use port 1935, and RTMPT connections use port 80.
-  </para>
-
-  <para>
-    This class was first introduced for swf v7 and the behavior has
-    recently changed slightly to allow the loading of files from
-    external systems. Prior to this, you were required to pass NULL to
-    this class. Gnash handles both cases. The older behavior is default
-    when connecting to the local filesystem for the file.
-  </para>
-
-  <para>
-    The URL that can be passed to <emphasis>connect()</emphasis> in newer
-    versions of the swf format is as follows:
-    <programlisting>
-      protocol:[//host][:port]/appname/[instanceName]
-    </programlisting>
-    For protocol, specify either <emphasis>RTMP</emphasis> or
-    <emphasis>RTMPT</emphasis>. If rtmp is specified, Flash Player will create
-    a client connection. If <emphasis>RTMPT</emphasis> is specified, Flash
-    Player will create an HTTP "tunneling" connection to the server.
-  </para>
-
-  <para>
-    You can omit the host parameter if the Flash movie is served from
-    localhost. If the instanceName parameter is omitted, Flash Player
-    connects to the application's default instance (_definst_).
-  </para>
-
-    <sect5 id="netconnectionmethods">
-       <title>The Methods of the  Class</title>
-
-       <variablelist>
-         <varlistentry>the same host where Flash Communication Server is 
installed
-         <term>NetConnection.connect(const char *)</term>
-         <listitem>
-           <para>
-             Connect to a local or remote system to load a
-             FLV file. Arg can be NULL, or a URL.
-           </para>
-         </listitem>
-         </varlistentry>
-       </variablelist>
-    </sect5>
-
-<!--    
-    <sect5 id="netconnectionprops">
-      <title>The Properties of the NetConnection Class</title>
-      
-      <para>
-       <variablelist>
-         
-       </variablelist>
-      </para>
-    </sect5>
--->
-    
-    <sect5 id="netconnectionconf">
-      <title>NetConnection Class Conformance</title>
-      
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>NetConnection.connect()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is partially implemented. It can only be
-                 used in conjunction with the <link
-                 linkend="asnetstream">NetStream</link> and <link
-                 linkend="asvideo">Video</link> classes; it cannot
-                 load a FLV file by itself.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/netstream.xml
===================================================================
RCS file: doc/C/asspec/netstream.xml
diff -N doc/C/asspec/netstream.xml
--- doc/C/asspec/netstream.xml  29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,264 +0,0 @@
-<sect4 id="asnetstream">
-  <title>NetStream ActionScript Class</title>
-
-  <para>
-    This class implements an NetStream object.
-  </para>
-
-  <sect5 id="netstreammethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>close()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>pause()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>play()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>seek()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setBufferTime()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-  <sect5 id="netstreamprops">
-    <title>The Properties of the NetStream Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>bufferLength</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>bufferTime</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>bytesLoaded</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>bytesTotal</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>currentFps</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onStatus</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>time</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="netstreamconf">
-    <title>NetStream Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>close()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>pause()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>play()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>seek()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setBufferTime()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>bufferLength</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>bufferTime</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>bytesLoaded</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>bytesTotal</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>currentFps</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onStatus</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>time</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/number.xml
===================================================================
RCS file: doc/C/asspec/number.xml
diff -N doc/C/asspec/number.xml
--- doc/C/asspec/number.xml     29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,180 +0,0 @@
-<sect4 id="asnumber">
-  <title>Number ActionScript Class</title>
-
-  <para>
-    This class implements an Number object.
-  </para>
-
-  <sect5 id="numbermethods">
-    <title>The Methods of the Number Class</title>
-        
-    <para>
-      <variablelist>
-       <varlistentry>
-         <term>toString()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>valueOf()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="numberprops">
-    <title>The Properties of the Number Class</title>
-    
-    <para>
-      <variablelist>
-       <varlistentry>
-         <term>MAX_VALUE</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>MIN_VALUE</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>NaN</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>NEGATIVE_INFINITY</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>POSITIVE_INFINITY</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="numberconf">
-    <title>Number Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>MAX_VALUE</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Unimplemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>MIN_VALUE</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Unimplemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>NaN</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>NEGATIVE_INFINITY</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>POSITIVE_INFINITY</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>toString()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>valueOf()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 Implemented.
-               </para>
-             </entry>
-           </row>
-
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/selection.xml
===================================================================
RCS file: doc/C/asspec/selection.xml
diff -N doc/C/asspec/selection.xml
--- doc/C/asspec/selection.xml  29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,210 +0,0 @@
-<sect4 id="asselection">
-  <title>Selection ActionScript Class</title>
-
-  <para>
-    This class implements an Selection object.
-  </para>
-
-  <sect5 id="selectionmethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>addListener()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getBeginIndex()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getCaretIndex()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getEndIndex()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getFocus()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>removeListener()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setFocus()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setSelection()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-  <sect5 id="selectionprops">
-    <title>The Properties of the Selection Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>onSetFocus</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="selectionconf">
-    <title>Selection Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>addListener()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getBeginIndex()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getCaretIndex()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getEndIndex()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getFocus()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>removeListener()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setFocus()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setSelection()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onSetFocus</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/sharedobject.xml
===================================================================
RCS file: doc/C/asspec/sharedobject.xml
diff -N doc/C/asspec/sharedobject.xml
--- doc/C/asspec/sharedobject.xml       29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,156 +0,0 @@
-<sect4 id="assharedobject">
-  <title>SharedObject ActionScript Class</title>
-
-  <para>
-    This class implements an SharedObject object.
-  </para>
-
-  <sect5 id="sharedobjectmethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>clear()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>flush()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getLocal()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getSize()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-  <sect5 id="sharedobjectprops">
-    <title>The Properties of the SharedObject Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>data</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onStatus</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="sharedobjectconf">
-    <title>SharedObject Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>clear()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>flush()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getLocal()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getSize()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>data</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onStatus</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/sound.xml
===================================================================
RCS file: doc/C/asspec/sound.xml
diff -N doc/C/asspec/sound.xml
--- doc/C/asspec/sound.xml      29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,401 +0,0 @@
-<sect4 id="assound">
-  <title>Sound ActionScript Class</title>
-
-  <para>
-    This class implements an Sound object.
-  </para>
-
-  <sect5 id="soundmethods">
-    <title>The Methods of the Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>attachSound()</term>
-         <listitem>
-           <para>
-             Attach the specified sound.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getBytesLoaded()</term>
-         <listitem>
-           <para>
-             Returns how many bytes of the sound have been loaded.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getBytesTotal()</term>
-         <listitem>
-           <para>
-             Returns the total size of the sound.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getPan()</term>
-         <listitem>
-           <para>
-             Returns the value of the previous call to setPan().
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getTransform()</term>
-         <listitem>
-           <para>
-             Returns the value of the previous call to setTransform().
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getVolume()</term>
-         <listitem>
-           <para>
-             Returns the value of the previous call to setVolumne().
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>loadSound()</term>
-         <listitem>
-           <para>
-             Load an MP3 file.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setPan()</term>
-         <listitem>
-           <para>
-             Change the balance.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setTransform()</term>
-         <listitem>
-           <para>
-             Set the channel amounts for each speaker.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setVolume()</term>
-         <listitem>
-           <para>
-             Set the volume for playing.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>start()</term>
-         <listitem>
-           <para>
-             Play the loaded sound.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>stop()</term>
-         <listitem>
-           <para>
-             Stop playing the sound.
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="soundprops">
-    <title>The Properties of the Sound Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>duration</term>
-         <listitem>
-           <para>
-             The length in milliseconds of the sound.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>id3</term>
-         <listitem>
-           <para>
-             Returns the ID3 tag of an MP3 file.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>position</term>
-         <listitem>
-           <para>
-             Returns the amount of time the sound has been playing.
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="soundevents">
-    <title>Event Handlers of the Sound Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>onID3</term>
-         <listitem>
-           <para>
-             Called when ID3 data is available.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onLoad</term>
-         <listitem>
-           <para>
-             Called when a sound is loaded.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onSoundComplete</term>
-         <listitem>
-           <para>
-             Called when a sound is done playing.
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="soundconf">
-    <title>Sound Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>attachSound()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getBytesLoaded()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getBytesTotal()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getPan()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getTransform()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getVolume()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>loadSound()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setPan()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setTransform()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setVolume()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>start()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>stop()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>duration</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>id3</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onID3</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This event handler is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onLoad</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This event handler is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onSoundComplete</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This event handler is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>position</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/stage.xml
===================================================================
RCS file: doc/C/asspec/stage.xml
diff -N doc/C/asspec/stage.xml
--- doc/C/asspec/stage.xml      29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,192 +0,0 @@
-<sect4 id="asstage">
-  <title>Stage ActionScript Class</title>
-
-  <para>
-    This class implements an Stage object.
-  </para>
-
-  <sect5 id="stagemethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>addListener()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>removeListener()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-  <sect5 id="stageprops">
-    <title>The Properties of the Stage Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>align</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>height</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onResize</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>scaleMode</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>showMenu</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>width</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="stageconf">
-    <title>Stage Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>addListener()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>removeListener()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>align</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>height</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onResize</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>scaleMode</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>showMenu</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>width</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/string.xml
===================================================================
RCS file: doc/C/asspec/string.xml
diff -N doc/C/asspec/string.xml
--- doc/C/asspec/string.xml     29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,295 +0,0 @@
-<sect4 id="asstring">
-  <title>String ActionScript Class</title>
-
-  <para>
-    This class implements an String object.
-  </para>
-
-  <sect5 id="stringmethods">
-    <title>The Methods of the String Class</title>
-        
-    <para>
-      <variablelist>
-       <varlistentry>
-         <term>charAt()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>charCodeAt()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>concat()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>fromCharCode()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>indexOf()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>lastIndexOf()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>slice()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>split()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>substr()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>substring()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>toLowerCase()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>toUpperCase()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="stringprops">
-    <title>The Properties of the String Class</title>
-    
-    <para>
-      <variablelist>
-       <varlistentry>
-         <term>length</term>
-         <listitem>
-           <para>
-             The length of the string.
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="stringconf">
-    <title>String Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>charAt()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>charCodeAt()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>concat()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is not implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>fromCharCode()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>indexOf()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>lastIndexOf()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is not implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>slice()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is not implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>split()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is not implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>substr()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is not implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>substring()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>toLowerCase()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 The method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>toUpperCase()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-
-           <row>
-             <entry valign="top" align="left">
-               <para>length</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>
\ No newline at end of file

Index: doc/C/asspec/system.xml
===================================================================
RCS file: doc/C/asspec/system.xml
diff -N doc/C/asspec/system.xml
--- doc/C/asspec/system.xml     29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,714 +0,0 @@
-<sect4 id="assystem">
-  <title>System ActionScript Class</title>
-
-  <para>
-    This class implements an System object.
-  </para>
-
-  <sect5 id="systemmethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>security.allowDomain()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>security.allowInsecureDomain()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>security.loadPolicyFile()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setClipboard()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>showSettings()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-  <sect5 id="systemprops">
-    <title>The Properties of the System Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>capabilities</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>object</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.avHardwareDisable</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.hasAccessibility</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.hasAudio</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.hasAudioEncoder</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.hasEmbeddedVideo</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.hasMP3</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.hasPrinting</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.hasScreenBroadcast</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.hasScreenPlayback</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.hasStreamingAudio</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.hasStreamingVideo</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.hasVideoEncoder</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.isDebugger</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.language</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.localFileReadDisable</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.manufacturer</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.os</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.pixelAspectRatio</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.playerType</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.screenColor</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.screenDPI</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.screenResolutionX</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.screenResolutionY</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.serverString</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>capabilities.version</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>security</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>object</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>exactSettings</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onStatus</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>useCodepage</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="systemconf">
-    <title>System Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>security.allowDomain()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>security.allowInsecureDomain()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>security.loadPolicyFile()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setClipboard()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>showSettings()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>object</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.avHardwareDisable</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.hasAccessibility</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.hasAudio</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.hasAudioEncoder</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.hasEmbeddedVideo</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.hasMP3</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.hasPrinting</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.hasScreenBroadcast</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.hasScreenPlayback</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.hasStreamingAudio</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.hasStreamingVideo</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.hasVideoEncoder</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.isDebugger</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.language</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.localFileReadDisable</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.manufacturer</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.os</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.pixelAspectRatio</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.playerType</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.screenColor</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.screenDPI</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.screenResolutionX</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.screenResolutionY</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.serverString</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>capabilities.version</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>security</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>object</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>exactSettings</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onStatus</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>useCodepage</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/textfield.xml
===================================================================
RCS file: doc/C/asspec/textfield.xml
diff -N doc/C/asspec/textfield.xml
--- doc/C/asspec/textfield.xml  29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,1362 +0,0 @@
-<sect4 id="astextfield">
-  <title>TextField ActionScript Class</title>
-
-  <para>
-    This class implements an TextField object.
-  </para>
-
-  <sect5 id="textfieldmethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>StyleSheet.clear()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>StyleSheet.getStyle()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>StyleSheet.getStyleNames()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>StyleSheet.load()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>StyleSheet.parseCSS()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>StyleSheet.setStyle()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>StyleSheet.transform()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>addListener()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getDepth()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getFontList()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getNewTextFormat()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getTextFormat()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>removeListener()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>removeTextField()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>replaceSel()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>replaceText()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setNewTextFormat()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setTextFormat()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-  <sect5 id="textfieldprops">
-    <title>The Properties of the TextField Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>StyleSheet</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>class</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>StyleSheet.onLoad</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_alpha</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>autoSize</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>background</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>backgroundColor</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>border</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>borderColor</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>bottomScroll</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>condenseWhite</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>embedFonts</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_height</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>hscroll</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>html</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>htmlText</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>length</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>maxChars</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>maxhscroll</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>maxscroll</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>menu</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>mouseWheelEnabled</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>multiline</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_name</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onChanged</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onKillFocus</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onScroller</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onSetFocus</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_parent</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>password</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_quality</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>restrict</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_rotation</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>scroll</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>selectable</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>styleSheet</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>tabEnabled</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>tabIndex</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_target</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>text</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>textColor</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>textHeight</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>textWidth</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>type</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_url</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>variable</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_visible</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_width</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>wordWrap</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_x</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_xmouse</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_xscale</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_y</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_ymouse</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>_yscale</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="textfieldconf">
-    <title>TextField Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>StyleSheet.clear()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>StyleSheet.getStyle()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>StyleSheet.getStyleNames()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>StyleSheet.load()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>StyleSheet.parseCSS()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>StyleSheet.setStyle()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>StyleSheet.transform()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>addListener()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getDepth()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getFontList()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getNewTextFormat()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getTextFormat()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>removeListener()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>removeTextField()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>replaceSel()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>replaceText()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setNewTextFormat()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setTextFormat()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>StyleSheet</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>class</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>StyleSheet.onLoad</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_alpha</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>autoSize</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>background</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>backgroundColor</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>border</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>borderColor</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>bottomScroll</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>condenseWhite</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>embedFonts</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_height</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>hscroll</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>html</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>htmlText</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>length</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>maxChars</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>maxhscroll</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>maxscroll</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>menu</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>mouseWheelEnabled</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>multiline</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_name</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onChanged</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onKillFocus</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onScroller</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onSetFocus</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_parent</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>password</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_quality</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>restrict</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_rotation</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>scroll</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>selectable</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>styleSheet</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>tabEnabled</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>tabIndex</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_target</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>text</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>textColor</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>textHeight</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>textWidth</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>type</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_url</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>variable</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_visible</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_width</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>wordWrap</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_x</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_xmouse</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_xscale</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_y</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_ymouse</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>_yscale</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/textformat.xml
===================================================================
RCS file: doc/C/asspec/textformat.xml
diff -N doc/C/asspec/textformat.xml
--- doc/C/asspec/textformat.xml 29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,354 +0,0 @@
-<sect4 id="astextformat">
-  <title>TextFormat ActionScript Class</title>
-
-  <para>
-    This class implements an TextFormat object.
-  </para>
-
-  <sect5 id="textformatmethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>getTextExtent()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-  <sect5 id="textformatprops">
-    <title>The Properties of the TextFormat Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>align</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>blockIndent</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>bold</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>bullet</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>color</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>font</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>indent</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>italic</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>leadingxmlsocket.xml</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>leftMargin</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>rightMargin</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>size</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>tabStops</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>target</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>underline</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>url</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="textformatconf">
-    <title>TextFormat Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>getTextExtent()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>align</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>blockIndent</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>bold</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>bullet</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>color</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>font</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>indent</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>italic</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>leadingxmlsocket.xml</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>leftMargin</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>rightMargin</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>size</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>tabStops</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>target</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>underline</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>url</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property has an unknown status.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/textsnapshot.xml
===================================================================
RCS file: doc/C/asspec/textsnapshot.xml
diff -N doc/C/asspec/textsnapshot.xml
--- doc/C/asspec/textsnapshot.xml       29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,192 +0,0 @@
-<sect4 id="astextsnapshot">
-  <title>TextSnapshot ActionScript Class</title>
-
-  <para>
-    This class implements an TextSnapshot object.
-  </para>
-
-  <sect5 id="textsnapshotmethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>findText()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getCount()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getSelected()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getSelectedText()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>getText()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>hitTestTextNearPos()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setSelectColor()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>setSelected()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-  <sect5 id="textsnapshotprops">
-    <title>The Properties of the TextSnapshot Class</title>
-    
-    <para>
-      <variablelist>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="textsnapshotconf">
-    <title>TextSnapshot Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>findText()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getCount()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getSelected()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getSelectedText()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getText()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>hitTestTextNearPos()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setSelectColor()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>setSelected()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method has an unknown status.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/video.xml
===================================================================
RCS file: doc/C/asspec/video.xml
diff -N doc/C/asspec/video.xml
--- doc/C/asspec/video.xml      29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,156 +0,0 @@
-<sect4 id="asvideo">
-  <title>Video ActionScript Class</title>
-
-  <para>
-    This class implements an Video object.
-  </para>
-
-  <sect5 id="videomethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>attachVideo()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>clear()</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-  <sect5 id="videoprops">
-    <title>The Properties of the Video Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>deblocking</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>height</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>smoothing</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>width</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="videoconf">
-    <title>Video Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>attachVideo()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>clear()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>deblocking</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>height</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>smoothing</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>width</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/xml.xml
===================================================================
RCS file: doc/C/asspec/xml.xml
diff -N doc/C/asspec/xml.xml
--- doc/C/asspec/xml.xml        29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,674 +0,0 @@
-<sect4 id="asxml">
-  <title>XML ActionScript Class</title>
-
-  <para>
-    This class implements an XML object.
-  </para>
-
-    <sect5 id="xmlmethods">
-       <title>The Methods of the  Class</title>
-       <para>
-           <variablelist>
-
-               <varlistentry>
-                   <term>addRequestHeader()</term>
-                   <listitem>
-                   <para>
-                     Change the HTTP header.
-                   </para>
-                   </listitem>
-           </varlistentry>
-
-               <varlistentry>
-                   <term>appendChild()</term>
-                   <listitem>
-                   <para>
-                     Append a child node to this node.
-                   </para>
-                   </listitem>
-           </varlistentry>
-
-               <varlistentry>
-                   <term>cloneNode()</term>
-                   <listitem>
-                   <para>
-                     Copy a node.
-                   </para>
-                   </listitem>
-           </varlistentry>
-
-               <varlistentry>
-                   <term>createElement()</term>
-                   <listitem>
-                   <para>
-                     Create an element for a node.
-                   </para>
-                   </listitem>
-           </varlistentry>
-
-               <varlistentry>
-                   <term>createTextNode()</term>
-                   <listitem>
-                   <para>
-                     Create a text node.
-                   </para>
-                   </listitem>
-           </varlistentry>
-
-               <varlistentry>
-                   <term>getBytesLoaded()</term>
-                   <listitem>
-                   <para>
-                   </para>
-                   </listitem>
-           </varlistentry>
-
-               <varlistentry>
-                   <term>getBytesTotal()</term>
-                   <listitem>
-                   <para>
-                     Return the size of the XML source.
-                   </para>
-                   </listitem>
-           </varlistentry>
-
-               <varlistentry>
-                   <term>hasChildNodes()</term>
-                   <listitem>
-                   <para>
-                     Return if this node has any children.
-                   </para>
-                   </listitem>
-           </varlistentry>
-
-               <varlistentry>
-                   <term>insertBefore()</term>
-                   <listitem>
-                   <para>
-                     Insert a node before this node.
-                   </para>
-                   </listitem>
-           </varlistentry>
-
-               <varlistentry>
-                   <term>load()</term>
-                   <listitem>
-                   <para>
-                     Load a XML message in memory.
-                   </para>
-                   </listitem>
-           </varlistentry>
-
-               <varlistentry>
-                   <term>parseXML()</term>
-                   <listitem>
-                   <para>
-                     Parse an XML document.
-                   </para>
-                   </listitem>
-           </varlistentry>
-
-               <varlistentry>
-                   <term>removeNode()</term>
-                   <listitem>
-                   <para>
-                     Remove a node.
-                   </para>
-                   </listitem>
-           </varlistentry>
-
-               <varlistentry>
-                   <term>send()</term>
-                   <listitem>
-                   <para>
-                     Send the node through the network.
-                   </para>
-                   </listitem>
-           </varlistentry>
-
-               <varlistentry>
-                   <term>sendAndLoad()</term>
-                   <listitem>
-                   <para>
-                     Send a node, and get the result using the network.
-                   </para>
-                   </listitem>
-           </varlistentry>
-
-               <varlistentry>
-                   <term>toString()</term>
-                   <listitem>
-                   <para>
-                     Convert the node and its children to a string.
-                   </para>
-                   </listitem>
-           </varlistentry>
-       </variablelist>
-       </para>
-    </sect5>
-  <sect5 id="xmlprops">
-    <title>The Properties of the XML Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>contentType</term>
-         <listitem>
-           <para>
-             The MIME type.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>attributes</term>
-         <listitem>
-           <para>
-             Returns an array of the attributes of a node.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>childNodes</term>
-         <listitem>
-           <para>
-             Returns an array of the children of a node.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>xmlDecl</term>
-         <listitem>
-           <para>
-             Specify document's declaration.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>docTypeDecl</term>
-         <listitem>
-           <para>
-             Get a string version of a document's declaration.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>firstChild</term>
-         <listitem>
-           <para>
-             Returns the first child node.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>ignoreWhite</term>
-         <listitem>
-           <para>
-             If set, blank nodes are deleted.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>lastChild</term>
-         <listitem>
-           Returns the last child node.
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>loaded</term>
-         <listitem>
-           <para>
-             A flag that signifies if a file was loaded.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>nextSibling</term>
-         <listitem>
-           <para>
-             Returns the next child node.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>nodeName</term>
-         <listitem>
-           <para>
-             Returns the name of the node.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>nodeType</term>
-         <listitem>
-           <para>
-             Returns the type of a node.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>nodeValue</term>
-         <listitem>
-           <para>
-             Contains the text for a text node type.
-           </para>
-         </listitem>
-       </varlistentry>
-
-<!--
-       <varlistentry>
-         <term>onData</term>
-         <listitem>
-           <para>
-           </para>
-           
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onLoad</term>
-         <listitem>
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
--->
-       <varlistentry>
-         <term>parentNode</term>
-         <listitem>
-           <para>
-             Returns this node's parent.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>status</term>
-         <listitem>
-           <para>
-             Returns the status code from parsing the XML document.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>previousSibling</term>
-         <listitem>
-           <para>
-             Returns the child node before this one.
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="xmlconf">
-    <title>XML Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>addRequestHeader()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>appendChild()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>cloneNode()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>createElement()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>createTextNode()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getBytesLoaded()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>getBytesTotal()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>hasChildNodes()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>insertBefore()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>load()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>parseXML()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>removeNode()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>send()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>sendAndLoad()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>toString()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>contentType</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>attributes</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>childNodes</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>xmlDecl</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>docTypeDecl</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>firstChild</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>ignoreWhite</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>lastChild</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>loaded</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>nextSibling</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>nodeName</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>nodeType</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>nodeValue</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onData</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This event handler is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onLoad</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This event handler is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>parentNode</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This event handler is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>status</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This event handler is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>previousSibling</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This event handler is unimplemented.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/xmlnode.xml
===================================================================
RCS file: doc/C/asspec/xmlnode.xml
diff -N doc/C/asspec/xmlnode.xml
--- doc/C/asspec/xmlnode.xml    29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,360 +0,0 @@
-<sect4 id="asxmlnode">
-  <title>XMLNode ActionScript Class</title>
-
-  <para>
-    This class implements an XMLNode object. This is mostly only used
-    internally by Gnash for holding the data for a node. It does exist
-    within the interpreter as a valid object though, so its
-    properties and methods can be accessed by a flash movie script.
-  </para>
-
-  <para>
-    As the XML class is derived from this one, many of these methods
-    are the same as for that class.
-  </para>
-
-  <sect5 id="xmlnodemethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-       <varlistentry>
-         <term>appendChild()</term>
-         <listitem>
-           <para>
-             Append a child node to this node.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>cloneNode()</term>
-         <listitem>
-           <para>
-             Copy a node, returning an XMLNode *.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>hasChildNodes()</term>
-         <listitem>
-           <para>
-             Return true if this node has any children.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>insertBefore()</term>
-         <listitem>
-           <para>
-             Insert a node before this node.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>removeNode()</term>
-         <listitem>
-           <para>
-             Remove a node from the parent's list.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>toString()</term>
-         <listitem>
-           <para>
-             Convert the node and its children to a string
-             representation.
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-  <sect5 id="xmlnodeprops">
-    <title>The Properties of the XMLNode Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>attributes</term>
-         <listitem>
-           <para>
-             Returns an array of the attributes of a node.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>childNodes</term>
-         <listitem>
-           <para>
-             Returns an array of the children of a node.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>firstChild</term>
-         <listitem>
-           <para>
-             Returns the first child node.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>lastChild</term>
-         <listitem>
-           Returns the last child node.
-           <para>
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>nextSibling</term>
-         <listitem>
-           <para>
-             Returns the next child node.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>previousSibling</term>
-         <listitem>
-           <para>
-             Returns the child node before this one.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>nodeName</term>
-         <listitem>
-           <para>
-             Returns the name of the node.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>nodeType</term>
-         <listitem>
-           <para>
-             Returns the type of a node.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>nodeValue</term>
-         <listitem>
-           <para>
-             Contains the text for a text node type.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>parentNode</term>
-         <listitem>
-           <para>
-             Returns this node's parent.
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="xmlnodeconf">
-    <title>XMLNode Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>appendChild()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>cloneNode()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>hasChildNodes()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>insertBefore()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>removeNode()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>toString()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>attributes</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>childNodes</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>firstChild</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>lastChild</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>nextSibling</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>previousSibling</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>nodeName</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>nodeType</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>nodeValue</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>parentNode</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This property is unimplemented.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/asspec/xmlsocket.xml
===================================================================
RCS file: doc/C/asspec/xmlsocket.xml
diff -N doc/C/asspec/xmlsocket.xml
--- doc/C/asspec/xmlsocket.xml  29 Mar 2007 22:09:44 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,181 +0,0 @@
-<sect4 id="asxmlsocket">
-  <title>XMLSocket ActionScript Class</title>
-
-  <para>
-    This class implements an XMLSocket object.
-  </para>
-
-  <sect5 id="xmlsocketmethods">
-    <title>The Methods of the  Class</title>
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>close()</term>
-         <listitem>
-           <para>
-             Close the socket connection.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>connect()</term>
-         <listitem>
-           <para>
-             Connect to a host over a network connection.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>send()</term>
-         <listitem>
-           <para>
-             Send a message through a network connection.
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </sect5>
-  <sect5 id="xmlsocketevents">
-    <title>The Event Handlers of the XMLSocket Class</title>
-    
-    <para>
-      <variablelist>
-
-       <varlistentry>
-         <term>onClose</term>
-         <listitem>
-           <para>
-             Called when a network connection is closed.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onConnect</term>
-         <listitem>
-           <para>
-             Called when a network connect has connected.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onData</term>
-         <listitem>
-           <para>
-             Called then there is a message from the network.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>onXML</term>
-         <listitem>
-           <para>
-             Called when an XML message is received.
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-    </para>
-  </sect5>
-
-  <sect5 id="xmlsocketconf">
-    <title>XMLSocket Class Conformance</title>
-    
-    <para>
-      <informaltable frame="all">
-       <?dbhtml table-width="75%" ?>
-       <tgroup cols="2">
-         <thead>
-           <row>
-             <entry valign="top">
-               <para>Class Name</para>
-             </entry>
-             <entry valign="top">
-               <para>Conformance</para>
-             </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row>
-             <entry valign="top" align="left">
-               <para>close()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>connect()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>send()</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This method is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onClose</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This event handler is unimplemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onConnect</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This event handler is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onData</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This  event handler is implemented.
-               </para>
-             </entry>
-           </row>
-           <row>
-             <entry valign="top" align="left">
-               <para>onXML</para>
-             </entry>
-             <entry valign="top" align="center">
-               <para>
-                 This  event handler is implemented.
-               </para>
-             </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-    </para>
-  </sect5>  
-</sect4>

Index: doc/C/usermanual/bugreport.xml
===================================================================
RCS file: doc/C/usermanual/bugreport.xml
diff -N doc/C/usermanual/bugreport.xml
--- doc/C/usermanual/bugreport.xml      19 Feb 2008 02:06:30 -0000      1.5
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,150 +0,0 @@
-<chapter id="bugreport">
-  <title>Reporting Bugs</title>
-
-<para>
-  The &app; project relies on the community to use and test the
-  player; feedback is critical to any successful project.  Not only
-  does it let us know that people use &app;, but it helps us
-  understand the community's needs.  &app; uses a bug tracker on
-  <ulink url="http://savannah.gnu.org"; /> to manage these reports.
-</para>
-
-<para>
-  When filing a report, please follow the guidelines below. The better
-  your bug report is, the easier it will be for the developers to
-  address the issue. 
-</para>
-    <orderedlist>
-      <listitem><para>
-        <link linkend="bugstep_newcheckout">Compile the latest
-        &app; build.</link>
-      </para></listitem>
-      <listitem><para>
-        <link linkend="bugstep_search">Determine if the bug was
-        previously reported.</link>
-      </para></listitem>
-      <listitem><para>
-        <link linkend="bugstep_guidelines">Review the bug writing 
-        guidelines.</link>
-      </para></listitem>
-    </orderedlist>
-
-
-  <sect1 id="bugstep_newcheckout">
-    <title>Compile the latest &app; build</title>
-    <para>
-      Obtain a copy of the latest <link linkend="sourcerepo">development
-      checkout</link> or <link linkend="sourcesnapshot">development
-      snapshot</link>.  Put the source in an empty directory, then
-      <link linkend="pre-configuration">configure</link> and 
-      <link linkend="compile">compile</link> &app;.
-    </para>
-
-    <para>
-      If you are able to replicate the bug in the latest version, 
-      <link linkend="bugstep_search">proceed to the next step</link>.
-      If you cannot replicate the bug with the newer version, the
-      problem may have been solved, or the issue may involve your
-      environment 
-    </para>
-
-    <para>
-      To check this, create a fresh build of the version in which you
-      encountered the bug.  If you can reproduce the bug with the
-      fresh copy of the original version, but cannot with the latest
-      version, this is most likely a resolved bug.  
-</para>
-
-<para>
-  If you cannot reproduce the bug, it may still be unclear whether the
-  bug is related to your environment or a &app; bug.  Try to determine
-  the source of the problem.  &app; offers several helpful debugging
-  options in the configure stage, and many verbosity options at the
-  command line to help. 
-</para>
-  </sect1>
-
-  <sect1 id="bugstep_search">
-    <title>Determine if the bug was previously reported</title>
-    <para>
-      Search the <ulink type="https"
-      url="https://savannah.gnu.org/bugs/?group=gnash";>&app;
-      bug tracker</ulink> to see if the bug has already been identified.
-    </para>
-    <para>
-      If the issue has already been reported, you should not file
-      a bug report.  However, you may add some additional information
-      to the ticket if you feel that it will be beneficial to the
-      developers.  For instance, if someone reported a memory issue
-      on Ubuntu GNU/Linux, and you noticed the same problem on OpenBSD,
-      your stacktrace would be useful.  Conversely, adding a "me too"
-      note to a feature request is not helpful.
-    </para>
-  </sect1>
-
-  <sect1 id="bugstep_guidelines">
-    <title>Review the bug writing guidelines</title>
-    <para>
-      A good bug report should be precise, explicit, and discrete.
-      This means that there should be just one bug per ticket, and
-      that a ticket should contain the following information:
-    </para>
-    <itemizedlist mark="opencircle">
-      <listitem>
-       <para>
-         An overview of the problem;
-       </para>
-      </listitem> 
-      <listitem>
-       <para>
-         Instructions on how to replicate the bug;
-       </para>
-      </listitem> 
-      <listitem>
-       <para>
-         A description of what happened when you performed the steps
-         to replicate the bug, and what you expected to happen;
-       </para>
-      </listitem> 
-      <listitem>
-       <para>
-         Your system information: operating system name and version, as
-         well as the versions of major <link 
-         linkend="codedepend">dependencies</link>;
-       </para>
-      </listitem> 
-      <listitem>
-       <para>
-         The release number or checkout timestamp for the version of &app;
-         where you observe the problem;
-       </para>
-      </listitem> 
-      <listitem>
-       <para>
-         The file <filename>config.log</filename>, which should be
-         attached as a file; and
-       </para>
-      </listitem> 
-      <listitem>
-       <para>
-         A descriptive title.
-       </para>
-      </listitem> 
-    </itemizedlist>
-    <para>
-      Include any additional information that you feel might be useful
-      to the developers.
-    </para>
-  </sect1>
-  
-  <sect1 id="bugstep_file">
-    <title>Filing a bug report</title>
-    <para>
-      After following the steps described above, you can file a bug report at 
-      <ulink type="https"
-            url="https://savannah.gnu.org/bugs/?group=gnash"; />.
-    </para>
-  </sect1>
-  
-</chapter>
-    

Index: doc/C/usermanual/doc_authors.xml
===================================================================
RCS file: doc/C/usermanual/doc_authors.xml
diff -N doc/C/usermanual/doc_authors.xml
--- doc/C/usermanual/doc_authors.xml    13 Feb 2008 02:30:10 -0000      1.4
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,26 +0,0 @@
-  <authorgroup> 
-      <author> 
-          <firstname>Rob</firstname> 
-          <surname>Savoye</surname> 
-          <affiliation> 
-             <address>
-                 <email>address@hidden</email>
-             </address> 
-          </affiliation> 
-      </author> 
-
-      <!-- TRANSLATOR NOTE: add yourself to this section
-      <othercredit role="translator">
-        <firstname>Example</firstname> 
-        <surname>Translator</surname> 
-        <affiliation> 
-         <orgname>Example Translation Team</orgname> 
-         <address> 
-              <email>address@hidden</email> 
-          </address> 
-        </affiliation> 
-        <contrib>Example translation</contrib>
-      </othercredit>
-      -->
-
-  </authorgroup> 

Index: doc/C/usermanual/introduction.xml
===================================================================
RCS file: doc/C/usermanual/introduction.xml
diff -N doc/C/usermanual/introduction.xml
--- doc/C/usermanual/introduction.xml   20 Feb 2008 05:16:20 -0000      1.5
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,94 +0,0 @@
-<chapter id="intro">
-  <title>Introduction</title>
-  
-  <para>
-    &app; is a free SWF movie player.  It is available as a
-    stand-alone application or as a plugin for several popular
-    web browsers. It supports playing media from a disk or streaming
-    over a network connection. Some popular video sharing sites like
-    YouTube are supported from a wide vaariety of devices from
-    embedded ones to modern desktops.
-  </para>
-
-  <para>
-    &app; has a better focus on security, allowing the user tight
-    control of all network or disk based I/O. &app; also supports
-    extending ActionScript by creating your own. You can write
-    wrappers for any development library, and import them into the
-    player much like perl or python does.
-  </para>
-
-  
-  <sect1 id="runs-on">
-    <title>What Is Supported ?</title>
-    
-    <para>
-      &app; is known to compile for most any POSIX and ANSI C++
-      conforming system if you have all the dependent libraries
-      installed. Systems we test on, and which &app; is know to
-      run on are Ubuntu, Fedora, Debian, OpenBSD, NetBSD, FreeBSD,
-      Win32, and Darwin (OSX) primarily. Occasionally other platforms
-      are built, primarily by those distribution maintainers. This
-      includes BeOS, Haiku, Syllable, OS/2, Solaris, Slackware, and
-      Gentoo.
-    </para>
-    
-    <para>
-      Gnash is a capable of reading up to SWF v9 files and opcodes,
-      but primarily supports SWF v7, with better SWF v8 and v9
-      support under heavy developement. With the 0.8.2 release,
-      Gnash includes initial parser support for SWF v8 and v9.
-      Not all ActionScript 2 classes are implemented yet, but all of the
-      most heavily used ones are. Many ActionScript 2 classes are
-      partially implemented; there is support for all of the
-      commonly used methods of each class.
-    </para>
-    
-    <para>
-      As ActionsScript 3 is a more developed version of
-      ActionScript 2, many of the same classes work for
-      both. Support has been added to Gnash's ActionScript library
-      to support the new ActionScript 3 filters, which get applied
-      to every class. Implementing ActionScript clases is often the
-      easiest way for new Gnash developers to make a contribution
-      without a deep internal knpowledge of Gnash.
-    </para>
-    
-    <para>
-      Gnash has included video support since early 2007, but this is
-      an every changing field of reverse engineering. Many of the
-      popular video sharing sites use SWF v8 or v9, which Gnash
-      still has imperfect support for. This is improving all the
-      time, so often builds from a development snapshot will work
-      when using the older release packaged in your distribution
-      doesn't. You can find daily snapshots of the latest CVS tree
-      at: <ulink type="http" url="http://www.gnashdev.org/dev_snapshots/";>
-      http://www.gnashdev.org/dev_snapshots</ulink>.
-    </para>
-    
-    <para>
-      Gnash uses ffmpeg for codecs, so any file suppored by Mplayer
-      should work with Gnash. Gnash supports the loading of patent
-      free codecs like Ogg Vorbis or Theora from disk based files,
-      while work is being done to support these codecs when embedded
-      in a SWF file. Ffmpeg contains the codecs used by the current
-      SWF defintion, FLV, VP6 (ON2), H.263, H.264, and MP3.
-    </para>
-  </sect1>
-
-  <sect1 id="audience">
-    <title>Audience</title>
-    
-    <para>
-      This manual is primarily focused on developers interested in
-      contributing to or building from the &app; project.  It serves as a
-      detailed reference guide, including a catalog and explanation of all
-      options and features.  This level of detail may make this guide
-      cumbersome for the average user, although advanced users may find it
-      helpful. 
-    </para>
-    
-  </sect1>  
-  
-</chapter>
-

Index: doc/C/usermanual/installation/building.xml
===================================================================
RCS file: doc/C/usermanual/installation/building.xml
diff -N doc/C/usermanual/installation/building.xml
--- doc/C/usermanual/installation/building.xml  16 Aug 2007 14:27:35 -0000      
1.4
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,201 +0,0 @@
-<title>Building from Source</title>
-
-<para>
-  Once you have <link linkend="pre-configuration">configured</link> &app;,
-  you are ready to build the code.  &app; is built using
-  <emphasis>GNU make</emphasis>.
-</para>
-
-<sect2 id="compile">
-  <title>Compiling the Code</title>
-
-  <para>
-    The most basic way to compile code is simply:
-    <programlisting>
-  make
-    </programlisting>
-    If the compilation ends with an error, check the output of 
-    <emphasis>configure</emphasis> and ensure that you are not missing 
-    any required prerequisites.  The output of <command>make</command> can be 
verbose; you may wish to pipe the output to a file.
-  </para>
-
-  <para>
-    The variables used by <emphasis>make</emphasis> can be redefined when
-    the program is invoked, if you desire it.   The most interesting flags
-    are <emphasis>CFLAGS</emphasis> and <emphasis>CXXFLAGS</emphasis>,
-    which are often used to enable debugging or turn of optimization.
-    The default value for both of these variables is
-    <emphasis>-O2 -g</emphasis>.  A list of influential 
-    environment variables can be seen in the configuration help:
-</para>
-<programlisting>./configure --help</programlisting>
-<para>
-    In the following example, debugging is enabled and optimization is
-    disabled:
-</para>
-<programlisting>make CFLAGS=-g CXXFLAGS=-g</programlisting>
-</sect2>
-
-<sect2 id="processdoc">
-  <title>Creating the Documentation</title>
-
-  <para>
-    By default, documentation is not built when you
-    <link linkend="install">install</link> &app;.  This is because
-    there are a number of <link linkend="docdepend">dependencies 
-    for the documentation</link>.  Documentation is built when it
-    is specified with a specific target in the generated 
-    <command>Makefile</command> in the <filename>doc/C</filename>
-    sub-directory.  If you type <command>make install</command> in
-    this directory, all documents will be built.
-  </para>
-
-  <para>
-    You must specify a target output format when you wish to create
-    documentation.  The available output formats are: <command>html</command>,
-    <command>pdf</command>, <command>info</command>, 
-    <command>man</command>, and <command>alldocs</command>.  
-    It is also possible to output <command>GNOME help</command> if
-    the <link linkend="features">configure option</link>
-    <option>--enable-ghelp</option> was used.  
-    The <command>alldocs</command> target will build all output formats
-    except <emphasis>GNOME help</emphasis>.
-    For example, to create HTML output, type:
-    <programlisting>
-  make html
-    </programlisting>
-  </para>
-
-  <para>
-    &app; also uses <ulink 
url="http://www.stack.nl/~dimitri/doxygen/index.html";
-    type="http">Doxygen</ulink> to produce <emphasis>HTML</emphasis>
-    documentation of &app; internals.  You must have Doxygen installed
-    to produce this documentation, which is built from the
-    <filename>doc</filename> directory with the command (documents
-    will be placed in the subdirectory <filename>apidoc/html</filename>):
-    <programlisting>
-  make apidoc
-    </programlisting>
-  </para>
-</sect2>
-
-
-<sect2 id="runtests">
-  <title>Running the Tests</title>
-
-  <para>
-    Before beginning the potentially lengthy install, it is wise to test the 
installation.  If a test fails, please report it by following the
-    <link linkend="bugreport">instructions for reporting a bug</link>.
-  </para>
-
-  <sect3 id="dejagnu">
-    <title>Using DejaGnu</title>
-
-    <para>
-  <!--
-      TODO: Add a section on running tests without DejaGnu.
-  -->
-      The easiest way to run &app;'s test suite is to install
-      <emphasis><ulink type="http" 
-      url="http://www.gnu.org/software/dejagnu";>DejaGnu</ulink></emphasis>.
-      After installing DejaGnu, run:
-      <programlisting>
-        make check
-      </programlisting>
-    </para>
-  
-    <sect4 id="testing_verbosity">
-      <title>Increasing Verbosity</title>
-      <para>
-        If you encounter a problem with a test, increasing the
-        verbosity may make the issue easier to spot.
-        Additional details are visible when 
-        <emphasis>RUNTESTFLAGS</emphasis> are used to add the 
-        <emphasis>verbose</emphasis> and <emphasis>all</emphasis> options.
-        The <option>verbose</option> option prints more information about the 
testing process, while
-        the <option>all</option> option includes details on passing tests.  
-        <programlisting>
-  make check RUNTESTFLAGS="-v -a"
-        </programlisting>
-      </para> 
-    </sect4>
-     
-    <sect4 id="running_some_tests">
-      <title>Running Some Tests</title>
-      <para>
-        It is possible to run just a single test, or 
-        a subdirectory of tests, by specifying the directory or 
-        compiled test file.
-      </para>
-      <para>
-        Some tests rely on <emphasis>testsuite/Dejagnu.swf</emphasis>,
-        which in turn relies on <emphasis>Ming</emphasis>.
-        This file is created when you run <command>make check</command> for 
the entire
-        testsuite, and can also be created on demand:
-        <programlisting>
-  make -C testsuite Dejagnu.swf 
-        </programlisting>
-      </para>
-      <para>
-        In this example, the <command>clip_as_button2</command> test is 
compiled and
-        run:
-        <programlisting>
-  make -C testsuite/samples clip_as_button2-TestRunner 
-  cd testsuite/samples &amp;&amp; ./clip_as_button2-TestRunner
-        </programlisting>
-        This creates and runs all the tests in the directory
-        <filename>movies.all</filename>:
-        <programlisting>
-  make -C testsuite/movies.all check
-        </programlisting>
-      </para>
-    </sect4>
-     
-  </sect3>
-  <sect3 id="manually">
-    <title>Running The Tests Manually</title>
-     
-    <para>
-      You may also run test cases by hand, which can be useful if you
-      want to see all the debugging output from the test case.  Often
-      the messages which come from deep within &app; are most useful for
-      development.
-    </para>  
-     
-    <para>
-      The first step is to compile the test case, which can be done
-      with <filename>make XML-v#.swf</filename> where the '#' is replaced
-       with the <emphasis>target</emphasis> SWF version or versions.  
-      For example:
-      <programlisting>
-  make XML-v{5,6,7,8}.swf
-      </programlisting>
-    </para>
-  
-    <sect4 id="manual_compiled_tests">
-    <title>Movie tests</title>
-      <para>
-        This creates a Flash movie version of the test case, which
-        can be run with a standalone Flash player.  For instance,
-        the target for SWF version 6 could be run with &app;:
-        <programlisting>
-   gnash -v XML-v6.swf
-        </programlisting>
-      </para>
-    </sect4>
-  
-    <sect4 id="manual_actionscript_tests">
-      <title>ActionScript Unit Tests</title>
-      <para>
-        Unit tests for ActionScript classes in 
<command>testsuite/actionscript.all</command>
-        are run without a graphical display:
-        <programlisting>
-  gprocessor -v XML-v6.swf
-        </programlisting>
-      </para>
-    </sect4>
-  </sect3>
-
-
-
-</sect2>

Index: doc/C/usermanual/installation/code_dependencies.xml
===================================================================
RCS file: doc/C/usermanual/installation/code_dependencies.xml
diff -N doc/C/usermanual/installation/code_dependencies.xml
--- doc/C/usermanual/installation/code_dependencies.xml 20 Feb 2008 05:16:21 
-0000      1.6
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,398 +0,0 @@
-<title>Code Dependencies</title>
-
-<para>
-  &app; has a number of dependencies on other packages.
-  If you install the dependencies using a package
-  manager, be certain to install the development versions
-  of the packages.  The normal versions are often missing
-  the headers &app; needs to compile.
-</para>
-
-<note>
-  <title>Note</title>
-  <para>
-    If you want to install the &app; plugin for one of the browsers
-    listed in the <xref linkend="intro" />, be sure to install the
-    development package for that browser before configuring.  The
-    &app; <command>configure</command> script searches for the devel
-    packages before building the plugin. 
-  </para>
-</note>
-
-<table frame='all' id="codedeps">
-  <title>Code Dependency Table</title>
-  <tgroup cols='7' align='left' colsep='1' rowsep='1'>
-    <colspec colname='name'/>
-    <colspec colname='required'/>
-    <colspec colname='version'/>
-    <colspec colname='description'/>
-    <colspec colname='explanation'/>
-    <colspec colname='apt'/>
-    <colspec colname='rpm'/>
-    
-    <thead>
-      <row>
-        <entry>Name</entry>
-       <entry>Level</entry>
-       <entry>Version</entry>
-        <entry>Description</entry>
-       <entry>Explanation</entry>
-       <entry>apt-get package</entry>
-       <entry>RPM/Yum package</entry>
-      </row>
-    </thead>
-
-    <tbody>
-      <row>
-        <entry>Boost</entry>
-        <entry>Required</entry>
-        <entry>1.32 or higher</entry>
-        <entry>
-          Boost is a library of portable C++ classes and
-          templates.
-        </entry>
-        <entry>
-          In &app;, Boost libraries are used extensively, primarily
-         boost-gthread and boost-date-time.
-        </entry>
-        <entry>
-         <filename>libboost-thread-dev, libboost-date-time-dev
-       </filename>
-       </entry>
-       <entry>
-       <filename>
-         liboost-thread-dev, libboost-date-time
-       </filename></entry>
-      </row>
-
-      <row>
-        <entry>libxml2</entry>
-        <entry>Required</entry>
-        <entry></entry>
-        <entry>
-          Libxml2 is the GNOME XML parser library and
-          is available at <ulink type="http"
-          url="http://xmlsoft.org";>http://xmlsoft.org</ulink>.
-        </entry>
-        <entry>
-          This library is used to parse messages in the
-          XML or XMLSocket ActionScript classes.
-        </entry>
-        <entry><filename>libxml2-dev</filename></entry>
-        <entry><filename>libxml2-devel</filename></entry>
-      </row>
-
-      <row>
-        <entry>AGG</entry>
-        <entry>Possibly Required</entry>
-        <entry>2.4 or higher</entry>
-        <entry>
-          AGG is the AntiGrain low-level 2D graphics
-          library.  
-        </entry>
-        <entry>
-          &app; requires the installation of at least one
-          renderer.  AGG is considered the <emphasis>best
-          supported</emphasis> renderer for &app;.
-        </entry>
-        <entry><filename>libagg-dev</filename></entry>
-        <entry><filename>agg-devel</filename></entry>
-      </row>
-
-      <row>
-        <entry>OpenGL</entry>
-        <entry>Possibly Required</entry>
-        <entry></entry>
-        <entry>
-          OpenGL is a standard specification defining a
-          cross-language cross-platform API for writing
-          applications which produce 3D and 2D graphics.
-          It supports hardware acceleration.
-          You can download a free implementation from
-          <ulink type="http"
-          url="http://www.mesa3d.org";>http://www.mesa3d.org</ulink>.
-        </entry>
-        <entry>
-          &app; requires the installation of at least one
-          renderer.
-        </entry>
-        <entry><filename>libgl1-mesa-dev</filename></entry>
-        <entry><filename>libmesa-devel</filename></entry>
-      </row>
-
-      <row>
-        <entry>Cairo</entry>
-        <entry>Possibly Required</entry>
-        <entry />
-        <entry>
-          Cairo is a 2D graphics library with support for
-          multiple output devices.  It will automatically use
-          graphic card acceleration when available, and has
-         an experimental OpenGL backend.  
-       </entry>
-       <entry>
-         &app; requires the installation of at least one
-         renderer.  Cairo is considered
-          the <emphasis>least supported</emphasis> renderer
-          for &app;.
-        </entry>
-        <entry><filename>libcairo2-dev</filename></entry>
-        <entry><filename>cairo-devel</filename></entry>
-      </row>
-
-      <row>
-        <entry>GTK</entry>
-        <entry>Possibly Required</entry>
-        <entry>2.2 or higher</entry>
-        <entry>
-          GTK is the GIMP Toolkit GUI library.
-          It uses Cairo internally.
-        </entry>
-        <entry>
-          &app; requires the installation of at least one
-          GUI library.  GTK is considered to be the
-          <emphasis>best supported</emphasis> GUI library
-          option for &app;.
-        </entry>
-        <entry><filename>libgtk2.0-dev</filename></entry>
-        <entry><filename>gtk-devel</filename></entry>
-      </row>
-
-      <row>
-        <entry>GtkGlExt</entry>
-        <entry>Possibly Required</entry>
-        <entry></entry>
-        <entry>
-          GtkGlExt integrates OpenGL into GTK.
-        </entry>
-        <entry>
-          This library is required in order to use
-          the GTK GUI library in conjunction with the
-          OpenGL renderer.
-        </entry>
-        <entry><filename>libgtkglext1-dev</filename></entry>
-        <entry><filename>gtkglext-devel</filename></entry>
-      </row>
-
-      <row>
-        <entry>SDL</entry>
-        <entry>Possibly Required</entry>
-        <entry />
-        <entry>
-          The Simple DirectMedia Layer is a cross-platform
-          multimedia library which provides abstraction for
-          audio, graphics, sound and input APIs.  
-          SDL is available from
-          <ulink type="http" url="http://www.libsdl.org";>
-          http://www.libsdl.org</ulink>.  
-        </entry>
-        <entry>
-          &app; requires the installation of at least one
-          GUI library.  SDL may also be used as a sound
-          handler regardless of whether it is employed as
-          a GUI library.  The GUI
-          library is <emphasis>poorly supported</emphasis>
-          in &app;, but the sound handler is the
-          <emphasis>best supported</emphasis> in &app;.
-        </entry>
-        <entry><filename>libsdl1.2-dev</filename></entry>
-        <entry><filename>SDL-devel</filename></entry>
-      </row>
-
-      <row>
-        <entry>FLTK</entry>
-        <entry>Possibly Required</entry>
-        <entry>2.0 or higher</entry>
-        <entry>
-          The Fast Light ToolKit is a portable GUI library
-          which is intended as a replacement for the SDL GUI.
-        </entry>
-        <entry>
-          &app; requires the installation of at least one
-          GUI library.  FLTK may be used in conjunction with
-          the Cairo and AGG renderers.
-        </entry>
-        <entry>No distribution packages are available.</entry>
-        <entry>No distribution packages are available.</entry>
-      </row>
-
-      <row>
-        <entry>KDE</entry>
-        <entry>Possibly Required</entry>
-        <entry />
-        <entry>
-          Kdelibs is a collection of libraries needed to
-          compile KDE applications.
-        </entry>
-        <entry>
-          &app; requires the installation of at least one
-          GUI library.  Kdelibs is also required for the
-          Kpart plugin for Konqueror.
-        </entry>
-        <entry><filename>kdelibs4-dev</filename></entry>
-        <entry><filename>kdelibs-devel</filename></entry>
-      </row>
-
-      <row>
-        <entry>Gstreamer</entry>
-        <entry>Optional</entry>
-        <entry></entry>
-        <entry>
-          Gstreamer is a video handler.
-        </entry>
-        <entry>
-          If you would like video playback, you must
-          install one of the video handlers.
-        </entry>
-        <entry><filename>libgstreamer0.8-dev</filename></entry>
-        <entry><filename>gstreamer-devel</filename></entry>
-      </row>
-
-      <row>
-        <entry>gst-ffmpeg</entry>
-        <entry>Possibly Required</entry>
-        <entry></entry>
-        <entry>
-          gst-ffmpeg allows you to use the FFMPEG decoder
-          with Gstreamer.
-        </entry>
-        <entry>
-          This package is required if you would like to
-          use Gstreamer as a video handler.
-        </entry>
-        <entry><filename>gstreamer0.8-ffmpeg-dev</filename></entry>
-        <entry><filename>gstreamer-ffmpeg-devel</filename></entry>
-      </row>
-
-      <row>
-        <entry>FFMPEG</entry>
-        <entry>Possibly Required</entry>
-        <entry></entry>
-        <entry>
-          FFMPEG is a video handler.
-        </entry>
-        <entry>
-          If you would like video playback, you must
-          install one of the video handlers.  It is also
-          a dependency of gst-ffmpeg.
-        </entry>
-        <entry><filename>ffmpeg-dev</filename></entry>
-        <entry><filename>ffmpeg-devel</filename></entry>
-      </row>
-
-      <row>
-        <entry>JPEG</entry>
-        <entry>Optional</entry>
-        <entry></entry>
-        <entry>
-          <ulink type="http" url="http://www.ijg.org/";>JPEG</ulink>
-          is a lossy image format which is heavily used for images.
-        </entry>
-        <entry>
-          This library is used for rendering JPEGs.
-        </entry>
-        <entry><filename>libjpeg62-dev</filename></entry>
-        <entry><filename>libjpeg</filename></entry>
-      </row>
-
-      <row>
-        <entry>PNG</entry>
-        <entry>Optional</entry>
-        <entry></entry>
-        <entry>
-          <ulink type="http" 
-          url="http://www.libpng.org/pub/png/";>PNG</ulink> is
-          a patent-free image format which is comparable to
-          <emphasis>GIF</emphasis>.
-        </entry>
-        <entry>
-          This library is used for rendering PNGs.
-        </entry>
-        <entry><filename>libpng12-dev</filename></entry>
-        <entry><filename>libpng</filename></entry>
-      </row>
-
-      <row>
-        <entry>libcurl</entry>
-        <entry>Optional</entry>
-        <entry></entry>
-        <entry>
-          libcurl is the multiprotocal file transfer library.
-        </entry>
-        <entry>
-          This library is used for URL downloading.
-        </entry>
-        <entry><filename>libcurl4-gnutls</filename></entry>
-        <entry><filename>libcurl</filename></entry>
-
-      </row>
-
-      <row>
-        <entry>automake</entry>
-        <entry>Possibly Required</entry>
-        <entry>1.6.0</entry>
-        <entry>
-          Automake is a tool for generating
-          <emphasis>Makefile.in</emphasis> files.
-        </entry>
-        <entry>
-          This package is required to run
-          <emphasis>autogen.sh</emphasis>, which is a requirement
-          if you are using the development source from CVS.
-        </entry>
-        <entry><filename>automake</filename></entry>
-        <entry><filename>automake</filename></entry>
-      </row>
-
-      <row>
-        <entry>autoconf</entry>
-        <entry>Possibly Required</entry>
-        <entry>2.59</entry>
-        <entry>
-          Autoconf is a package for generating configure
-          scripts.
-        </entry>
-        <entry>
-          This package is required to run
-          <emphasis>autogen.sh</emphasis>, which is a requirement
-          if you are using the development source from CVS.
-        </entry>
-        <entry><filename>autoconf</filename></entry>
-        <entry><filename>autoconf</filename></entry>
-      </row>
-
-      <row>
-        <entry>gettext</entry>
-        <entry>Possibly Required</entry>
-        <entry>0.14.6</entry>
-        <entry>
-          Gettext is part of the GNU Translation Project.
-        </entry>
-        <entry>
-          This package is required to run
-          <emphasis>autogen.sh</emphasis>, which is a requirement
-          if you are using the development source from CVS.
-        </entry>
-        <entry><filename>gettext</filename></entry>
-        <entry><filename>gettext</filename></entry>
-      </row>
-
-      <row>
-        <entry>libtool</entry>
-        <entry>Possibly Required</entry>
-        <entry>1.5.22</entry>
-        <entry>
-          This is a generic library support script.
-        </entry>
-        <entry>
-          This package is required to run
-          <emphasis>autogen.sh</emphasis>, which is a requirement
-          if you are using the development source from CVS.
-        </entry>
-        <entry><filename>libltdl3-dev</filename></entry>
-        <entry><filename>libtool</filename></entry>
-      </row>
-
-    </tbody>
-  </tgroup>
-</table>

Index: doc/C/usermanual/installation/configuration.xml
===================================================================
RCS file: doc/C/usermanual/installation/configuration.xml
diff -N doc/C/usermanual/installation/configuration.xml
--- doc/C/usermanual/installation/configuration.xml     28 Feb 2008 08:16:17 
-0000      1.7.2.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,61 +0,0 @@
-<para>
-&app;, like most GNU projects, allows a user to select various options before 
compiling its source code. These options include selecting from the available 
features, specifying custom paths for installation, and cross compiling.  &app; 
uses <ulink type="http"
-  url="http://www.gnu.org/software/autoconf/";>GNU Autoconf</ulink>
-  for configuration.
-</para>
-<para>
-  If you opted to download the 
-  <link linkend="sourcerepo">development checkout</link>
-  of &app;, the <emphasis>configure</emphasis> script will
-  not be included.  It can be created by running 
-  <emphasis>autogen.sh</emphasis> from the source root directory:
-  <programlisting>
-  ./autogen.sh
-  </programlisting>
-  Note that there are some 
-  <link linkend="codedepend">dependencies</link> for
-  autogen.
-</para>
-<para>
-  All the standard <command>configure</command> options
-  are available.  In addition, &app; has two types of
-  options: those that <link linkend="features">enable or disable 
-  features</link>, and
-  those that <link linkend="custompath">specify custom paths for 
-  development packages</link>
-  which are not found during the default search.  A complete
-  list of <emphasis>all</emphasis> configuration options, including
-  standard ones, can be seen by typing:
-  <programlisting>
-  ./configure --help |less
-  </programlisting>
-  Read further for a more detailed explanation of &app;-specific
-  options.
-</para>
-<para>
-  The syntax for running <emphasis>configure</emphasis> is as follows:
-  <programlisting>
-  configure <replaceable>&lt;options&gt;</replaceable>
-  </programlisting>
-  The example below shows the <command>configure</command> options
-  which create the smallest working standalone version of &app;.  In
-  this example, <command>configure</command> is being run from the
-  source root directory:
-</para>
-
-<programlisting>
-./configure --disable-debugger --disable-cygnal --disable-docbook \
---disable-plugin --enable-media=ffmpeg --enable-gui=sdl
-</programlisting>
-
-<sect2 id="features">
-  &featureoptions;
-</sect2>
-         
-<sect2 id="custompath">
-  &custompath;
-</sect2>
-
-<sect2 id="crosscompilingconfiguration">
-  &crosscompiling;
-</sect2>

Index: doc/C/usermanual/installation/cross_compiling.xml
===================================================================
RCS file: doc/C/usermanual/installation/cross_compiling.xml
diff -N doc/C/usermanual/installation/cross_compiling.xml
--- doc/C/usermanual/installation/cross_compiling.xml   20 Feb 2008 05:16:21 
-0000      1.4
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,104 +0,0 @@
-<title>Cross Compiling</title>
-
-<para>
-  To cross configure and compile &app;, begin by building a target system
-  on your workstation.  This includes cross compilers for the target
-  architecture, and some system headers. 
-  You will also need the following packages to be built for the target
-  system: <emphasis>libxml2</emphasis>, <emphasis>libpng</emphasis> 
-  (if used), <emphasis>libjpeg</emphasis>,oost  <emphasis>b</emphasis>, your
-  GUI library, your renderer, and your video handler (if used).  The page
-  <ulink url="http://frank.harvard.edu/~coldwell/toolchain/";
-        type="http">http://frank.harvard.edu/~coldwell/toolchain/</ulink>
-  has instructions on building a target system from scratch and
-  offers a shell script to make the process easier.
-</para>
-
-<para>
-  If you need to build up a target system from scratch, there is
-  a good document and shell script at this web site: <ulink
-  type="http"
-  url="http://frank.harvard.edu/~coldwell/toolchain/";>
-  http://frank.harvard.edu/~coldwell/toolchain/</ulink>.
-</para>
-
-<para>
-  There is also up to date information on the Gnash Developers
-  web site at: <ulink type="http" url="http://www.gnashdev.org";>
-  http://www.gnashdev.org</ulink>. This is the best place for
-  detailed informatin on various systems.
-</para>
-
-<para>
-  After I built up an ARM system in /usr/arm using the shell
-  script from this web site, I then cross compiled all the
-  other libraries I needed. The fun part is trying to get
-  libMesa and boost to cross compile, because they're not really set
-  up for it.
-</para>
-
-<para>
-  So to build for an ARM based system on an x86 based systems,
-  configure like this: 
-</para>
-
-<programlisting>
-  ../../gnash/configure --build=i686-pc-linux-gnu
-  --host=arm-linux --prefix=/usr/local/arm/oe --disable-nsapi
-  --disable-kparts --enable-gui=fb --enable-renderer=agg --disable-shared
-</programlisting>
-
-<para>
-  The important configuration options are the ones which specify the
-  architecture for the build:
-</para>
-
-<variablelist>
-
-  <varlistentry>
-    <term>--target</term>
-    <listitem>
-      <para>
-        The target architecture, where the final executables are expected
-        to run.
-      </para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term>--host</term>
-    <listitem>
-      <para>
-        The host architecture, where the executables are expected
-        to run.  Usually this is the same as the <emphasis>--target</emphasis>,
-        except when building a compiler as a Canadian Cross.  In this
-        case, you might build a cross compiler on a UNIX system which
-        runs on a win32 machine, producing code for a third architecture,
-        such as ARM.  In this example, <emphasis>--target</emphasis> would
-        be 'arm-unknown-linux-gnu', while <emphasis>--host</emphasis> would 
-        be 'win32'.
-      </para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term>--build</term>
-    <listitem>
-      <para>
-        This is the system the build is running on.
-      </para>
-    </listitem>
-  </varlistentry>
-
-</variablelist>
-
-<para>
-  The following example of <emphasis>configure</emphasis> builds for an
-  ARM system on an x86 system.  It was run after an ARM system was built
-  in <filename>/usr/arm</filename> and other required libraries were 
-  cross compiled.
-  <programlisting>
-./configure -target=arm-unknown-linux-gnu --prefix=/usr/arm \
---host=arm-unknown-linux-gnu --build=i686-pc-linux-gnu --disable-plugin
-  </programlisting>
-</para>

Index: doc/C/usermanual/installation/custompath_configuration.xml
===================================================================
RCS file: doc/C/usermanual/installation/custompath_configuration.xml
diff -N doc/C/usermanual/installation/custompath_configuration.xml
--- doc/C/usermanual/installation/custompath_configuration.xml  11 Jan 2008 
18:10:10 -0000      1.9
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,421 +0,0 @@
-<title>Specifying Custom Paths</title>
-<para>
-  By default, none of these options should be required
-  unless you want &app; to use a specific version of a
-  development package, or if the configure test fails to
-  find a component.  Please <link
-  linkend="bugreport">report the problem</link> if a
-  configure test fails.
-</para>
-<para>
-  The following custom path options are available:
-</para>
-
-
-<table id="tb-configure-paths">
-<title>Custom Path Options</title>
-<tgroup cols='2' align='left' colsep='1' rowsep='1'>
-<colspec colname='Option' />
-<colspec colname='Function' />
-<thead>
-<row>
-  <entry>Option</entry>
-  <entry>Function</entry>
-</row>
-</thead>
-<tbody>
-<row>
-  <entry>
-    <option>--x-includes=DIR</option>
-    </entry>
-      <entry>
-        X include files are in DIR.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--x-libraries=DIR</option>
-    </entry>
-      <entry>
-        X library files are in DIR.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-libxml=PFX</option>
-    </entry>
-      <entry>
-        Prefix to where libxml is installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-libxml-libraries=DIR</option>
-    </entry>
-      <entry>
-        Directory where libxml library is installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-libxml-includes=DIR</option>
-    </entry>
-      <entry>
-        Directory where libxml header files are installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-docbook=DIR</option>
-    </entry>
-      <entry>
-        Directory where the DocBook style-sheets are installed.        
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-sdl-prefix=PFX</option>
-    </entry>
-      <entry>
-        Prefix where SDL is installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-zlib-incl</option>
-    </entry>
-      <entry>
-        Directory where zlib header is installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-zlib-lib</option>
-    </entry>
-      <entry>
-        Directory where zlib library is installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-jpeg-incl</option>
-    </entry>
-      <entry>
-        Directory where jpeg header is installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-jpeg-lib</option>
-    </entry>
-      <entry>
-        Directory where jpeg library is installed.
-     </entry>
-  </row><row>
-  <entry>
-    <option>--with-png-incl</option>
-    </entry>
-      <entry>
-        Directory where png header is installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-png-lib</option>
-    </entry>
-      <entry>
-        Directory where png library is installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-qt-dir</option>
-    </entry>
-      <entry>
-        Directory where QT is installed. This is only used by
-        the Klash plugin.
-    </entry>
-  </row><row>
-  <entry>
-    <option>--with-qt-includes</option>
-    </entry>
-      <entry>
-        Directory where the QT header files are installed. This
-        is only used by the Klash plugin.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-qt-libraries</option>
-    </entry>
-      <entry>
-        Directory where the QT libraries are installed. This is
-        only used by the Klash plugin.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-npapi-plugindir</option>
-    </entry>
-      <entry>
-        This is the directory to install the NPAPI (Mozilla) plugin in.
-        By default it goes to ~/.mozilla/plugins.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-kde-pluginprefix</option>
-    </entry>
-      <entry>
-        This option sets the default install dir for all KPARTS (kde) files.
-       The plugin will be installed in PREFIX/lib/kde3, use 
<option>-with-kde-plugindir</option> to override.
-       The service file in PREFIX/share/services, use 
<option>--with-kde-servicesdir</option> to override.
-       The config file in PREFIX/share/config, use 
<option>--with-kde-configdir</option> to override.
-       The appdata file in PREFIX/share/apps/klash, use 
<option>--with-kde-appsdatadir</option> to override.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-kde-plugindir</option>
-    </entry>
-      <entry>
-        This is the directory to install the KPARTS (kde) plugin in.
-        By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install module --expandvars,
-        or $(prefix)/share/services if kde-config is not found.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-kde-servicesdir</option>
-    </entry>
-      <entry>
-        This is the directory to install the KPARTS (kde) service in.
-        By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install services --expandvars,
-        or $(libdir)/kde3 if kde-config is not found.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-kde-configdir</option>
-    </entry>
-      <entry>
-        This is the directory to install the KPARTS (kde) config files in.
-        By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install config --expandvars,
-        or $(prefix)/share/config if kde-config is not found.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-kde-appsdatadir</option>
-    </entry>
-      <entry>
-        This is the directory to install the KPARTS (kde) application data 
files in.
-        By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install data --expandvars,
-        or $(prefix)/share/apps if kde-config is not found.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-ming</option>
-    </entry>
-      <entry>
-        Ming is used to build test cases, but not by the Gnash
-        player itself.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-mad_incl</option>
-    </entry>
-      <entry>
-        Directory where libmad header is installed.
-      </entry>
- </row><row>
-  <entry>
-    <option>--with-mad_lib</option>
-    </entry>
-      <entry>
-        Directory where libmad library is installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-ogg_incl</option>
-    </entry>
-      <entry>
-        Directory where the libogg headers are installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-ogg_lib</option>
-    </entry>
-      <entry>
-        Directory where the libogg library is installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-gstreamer-incl</option>
-    </entry>
-      <entry>
-        Directory where the Gstreamer headers are
-        installed. Gstreamer version 0.10 or greater must be used.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-gstreamer-lib</option>
-    </entry>
-      <entry>
-        Directory where the Gstreamer library is
-        installed. Gstreamer version 0.10 or greater must be used.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-opengl-includes</option>
-    </entry>
-      <entry>
-        Directory where OpenGL (libMesa) headers are installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-opengl-lib</option>
-    </entry>
-      <entry>
-        Directory where the OpenGL (libMesa) library is installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-glext-incl</option>
-    </entry>
-      <entry>
-        Directory where GtkGlExt headers are installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-glext-lib</option>
-    </entry>
-      <entry>
-        Directory where the GtkGlExt library is installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-gtk2-incl</option>
-    </entry>
-      <entry>
-        Directory where the Gtk2 headers are installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-gtk2-lib</option>
-    </entry>
-      <entry>
-        Directory where the Gtk2 library is installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-cairo_incl</option>
-    </entry>
-      <entry>
-        Directory where the Cairo headers are installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-cairo-lib</option>
-    </entry>
-      <entry>
-        Directory where the Cairo library is installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-glib-incl</option>
-    </entry>
-      <entry>
-        Directory where the Glib headers are installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-glib-lib</option>
-    </entry>
-      <entry>
-        Directory where the Glib library is installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-pango-incl</option>
-    </entry>
-      <entry>
-        Directory where the Pango headers are installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-pango-lib</option>
-    </entry>
-      <entry>
-        Directory where the Pango library is installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-atk-incl</option>
-    </entry>
-      <entry>
-        Directory where the ATK headers are installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-atk-lib</option>
-    </entry>
-      <entry>
-        Directory where the ATK library is installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-pthread-incl</option>
-    </entry>
-      <entry>
-        Directory where the Pthread headers are installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-pthread-lib</option>
-    </entry>
-      <entry>
-        Directory where the Pthread library is installed.
-   </entry>
-  </row><row>
-  <entry>
-    <option>--with-agg-incl</option>
-    </entry>
-      <entry>
-        Directory where the AGG (Antigrain) headers are installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-agg-lib</option>
-    </entry>
-      <entry>
-        Directory where the AGG (Antigrain) library is installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-ffmpeg-incl</option>
-    </entry>
-      <entry>
-        Directory where the FFMPEG headers are installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-ffmpeg-lib</option>
-    </entry>
-      <entry>
-        Directory where the FFMPEG library is installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-boost-incl</option>
-    </entry>
-      <entry>
-        Directory where the Boost headers are installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-boost-lib</option>
-    </entry>
-      <entry>
-        Directory where the Boost library is installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-curl-incl</option>
-    </entry>
-      <entry>
-        Directory where the libCurl headers are installed.
-      </entry>
-  </row><row>
-  <entry>
-    <option>--with-curl-lib</option>
-    </entry>
-      <entry>
-        Directory where the libCurl library is installed.
-      </entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-

Index: doc/C/usermanual/installation/documentation_dependencies.xml
===================================================================
RCS file: doc/C/usermanual/installation/documentation_dependencies.xml
diff -N doc/C/usermanual/installation/documentation_dependencies.xml
--- doc/C/usermanual/installation/documentation_dependencies.xml        20 Feb 
2008 05:16:21 -0000      1.4
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,165 +0,0 @@
-<title>Documentation Dependencies</title>
-
-<para>
-  The following packages are used to build &app;'s documentation.
-</para>
-
-<table frame='all' id="docdeps">
-  <title>Documentation Dependency Table</title>
-  <tgroup cols='7' align='left' colsep='1' rowsep='1'>
-    <colspec colname='name'/>
-    <colspec colname='required'/>
-    <colspec colname='version'/>
-    <colspec colname='description'/>
-    <colspec colname='explanation'/>
-    <colspec colname='apt'/>
-    <colspec colname='rpm'/>
-
-    <thead>
-      <row>
-        <entry>Name</entry>
-        <entry>Level</entry>
-        <entry>Version</entry>
-        <entry>Description</entry>
-        <entry>Explanation</entry>
-        <entry>apt-get package</entry>
-        <entry>RPM/Yum package</entry>
-      </row>
-    </thead>
-
-    <tbody>
-      <row>
-        <entry>Docbook</entry>
-        <entry>Required</entry>
-        <entry></entry>
-        <entry>
-          <ulink type="http"
-          url="http://http://docbook.sourceforge.net/";>Docbook</ulink> is
-          is an industry-standard XML format for technical
-          documentation.  You can download it from
-          <ulink type="http"
-          
url="http://sourceforge.net/project/showfiles.php?group_id=21935#files";>http://sourceforge.net/project/showfiles.php?group_id=21935#files</ulink>.
-        </entry>
-        <entry>
-          &app; documentation is written in Docbook.
-        </entry>
-        <entry><filename>docbook-utils</filename> and 
-               <filename>docbook-dsssl</filename></entry>
-        <entry><filename>docbook-dtd41-sgml</filename> and
-               <filename>docbook-style-dsssl</filename></entry>
-      </row>
-
-      <row>
-        <entry>DocBook2X</entry>
-        <entry>Optional</entry>
-        <entry></entry>
-        <entry>
-          This software package converts Docbook documents to
-          the traditional man page format, GNU Texinfo
-          format, and HTML (via Texinfo) format.  
-          It is available at <ulink type="http" 
-          
url="http://docbook2x.sourceforge.net/";>http://docbook2x.sourceforge.net/</ulink>.
-        </entry>
-        <entry>
-          DocBook2X is required to produce HTML and Texinfo
-          formats.
-        </entry>
-        <entry><filename>docbook2x</filename></entry>
-        <entry><filename>docbook2x</filename></entry>
-      </row>
-
-      <row>
-        <entry>Texinfo</entry>
-        <entry>Possibly Required</entry>
-        <entry></entry>
-        <entry>
-          Texinfo can be used to convert DocBook2X output
-          into GNU info pages.  You can download it from
-          <ulink type="http"
-          
url="http://ftp.gnu.org/gnu/texinfo/";>http://ftp.gnu.org/gnu/texinfo/</ulink>.
-        </entry>
-        <entry>
-          Texinfo is required if you wish to product GNU info
-          pages.
-        </entry>
-        <entry><filename>texinfo</filename></entry>
-        <entry><filename>texinfo</filename></entry>
-      </row>
-
-      <row>
-        <entry>FOP</entry>
-        <entry>Optional</entry>
-        <entry>0.20.5</entry>
-        <entry>
-          Formatting Objects Processor is a print formatter
-          driven by XSL formatting objects.  It is a Java
-          application which can output PDF, PCL, PS, SVG, XML,
-          Print, AWT, MIF, and Text.  It is available at
-          <ulink url="http://xmlgraphics.apache.org/fop/";
-          type="http">http://xmlgraphics.apache.org/fop/</ulink>.
-        </entry>
-        <entry>
-          FOP is required for PDF output.
-        </entry>
-        <entry><filename>fop</filename></entry>
-        <entry><filename>fop</filename></entry>
-      </row>
-
-      <row>
-        <entry>Java (j2re)</entry>
-        <entry>Possibly Required</entry>
-        <entry></entry>
-        <entry>
-          FOP requires Sun's Java runtime (GCJ does not work with
-          FOP).  You can download it from
-          <ulink url="http://java.sun.com"; 
type="http">http://java.sun.com</ulink>.
-        </entry>
-        <entry>
-          Sun's Java runtime (j2re) is required to use FOP.  
-        </entry>
-        <entry>
-          Download the package from <ulink type="http"
-          url="http://java.sun.com";>Sun</ulink>.
-        </entry>
-        <entry>
-          Download the package from <ulink type="http"
-          url="http://java.sun.com";>Sun</ulink>.
-        </entry>
-      </row>
-
-      <row>
-        <entry>JAI</entry>
-        <entry>Possibly Required</entry>
-        <entry></entry>
-        <entry>
-          Sun's Java Advanced Imaging API can be downloaded from
-          <ulink type="http" 
url="http://java.sun.com/products/java-media/jai/iio.html";>http://java.sun.com/products/java-media/jai/iio.html</ulink>.
-        </entry>
-        <entry>
-          JAI is required
-          if you wish to include graphics in a PDF file being
-          generated with FOP.
-        </entry>
-        <entry>
-          Download the package from <ulink
-          url="http://java.sun.com/products/java-media/jai/iio.html";
-          type="http">Sun</ulink>.
-        </entry>
-        <entry>
-          Download the package from <ulink
-          url="http://java.sun.com/products/java-media/jai/iio.html";
-          type="http">Sun</ulink>.
-        </entry>
-      </row>
-
-    </tbody>
-  </tgroup>
-</table>
-
-<para>
-  If you install j2re, set the <emphasis>JAVA_HOME</emphasis>
-  environment variable to the top directory of the j2re
-  installation.  If you encounter problems with the Java
-  installation, you may also need to add this path to the
-  <emphasis>CLASSPATH</emphasis> environment variable.
-</para>

Index: doc/C/usermanual/installation/feature_configuration.xml
===================================================================
RCS file: doc/C/usermanual/installation/feature_configuration.xml
diff -N doc/C/usermanual/installation/feature_configuration.xml
--- doc/C/usermanual/installation/feature_configuration.xml     28 Feb 2008 
16:26:09 -0000      1.17.2.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,263 +0,0 @@
-<title>Features</title>
-
-<para>
-  Some switches can be used during configuration to enable or disable
-  features of &app;. Some of the most important configuration options
-  are:
-</para>
-
-  <itemizedlist mark="opencircle">
-    <listitem>
-    <para>
-<option>--enable-gui</option> lets you specify your GUI of choice.
-The default option is GTK.
-    </para>
-    </listitem>
-    <listitem>
-    <para>
-<option>--enable-renderer</option> allows a renderer to be
-chosen.  The default renderer is OpenGL.
-    </para>
-    </listitem>
-    <listitem>
-    <para>
-<option>--enable-media</option> permits a media handler to be
-selected.  The default is Gstreamer.
-    </para>
-    </listitem>
-  </itemizedlist>
-<para>
-  A complete list of available features follows.
-</para>
-
-<table id="tb-config-features">
-<title>Configuration Options - Features</title>
-<tgroup cols='2' align='left' colsep='1' rowsep='1'>
-<colspec colname='Option' />
-<colspec colname='Function' />
-<thead>
-<row>
-  <entry>Option</entry>
-  <entry>Function</entry>
-</row>
-</thead>
-<tbody>
-<row>
-  <entry><option>--enable-debugger</option></entry>
-  <entry>Enable support for the Flash debugger. The debugger is
-        mainly of interest to Flash developers.</entry>
-</row>
-<row>
-  <entry><option>--enable-dmalloc</option></entry>
-  <entry>Enable support for the DMalloc memory debugging tool.</entry>
-</row>
-<row>
-  <entry> <option>--enable-docbook</option></entry>
-  <entry>  Enable the generation of HTML and PDF versions of the documentation
-       from the XML. You will then be able to use <command>make html</command> 
and <command>make pdf</command>.</entry>
-</row>
-<row>
-  <entry>  <option>--enable-embedded</option></entry>
-  <entry> Link to Qt-embedded, do not use X. This is only used by
-        Klash</entry>
-</row>
-<row>
-  <entry> <option>--disable-fork</option></entry>
-  <entry>Disable the plugin from forking the standalone player, and
-        using a thread for the player instead. Currently forking
-        the standalone player gives you the best results.</entry>
-</row>
-<row>
-  <entry><option>--enable-ghelp</option>
-</entry>
-  <entry>Enable support for the GNOME help system.</entry>
-</row>
-<row>
-  <entry><option>--disable-glext</option>
-</entry>
-  <entry>Disable using GtkGlExt, which forces the use of SDL
-        instead. By default if the GtkGL extension for Gtk is found
-        by the configure script, the GTK-enabled GUI is built.</entry>
-</row>
-<row>
-  <entry><option>--enable-gui=gtk|sdl|kde|fltk|fb</option></entry>
-  <entry><para>Select the Graphic User Interface to use (choose one).</para>
- <variablelist>
-       <varlistentry>
-         <term>GTK</term>
-         <listitem>
-<para>
-    The GTK+ toolkit, which is the default GUI.
-    Said to interwork particularly well with firefox.
-</para>
-         </listitem>
-       </varlistentry>
-       <varlistentry>
-         <term>SDL</term>
-         <listitem>
-<para>
-    Simple DirectMedia Layer, a simple and portable GUI.
-    Its sound facilities are used when --enable-media=ffmpeg
-    regardless of whether it is also in charge of the GUI.
-</para>
-         </listitem>
-       </varlistentry>
-       <varlistentry>
-         <term>KDE</term>
-         <listitem>
-<para>
-    An interface adapted to the KDE Desktop Environment.
-    This must be selected when building the Konqueror plugin
-    "klash". Furthermore, the only renderer that currently
-    works with KDE is opengl.
-</para>
-         </listitem>
-       </varlistentry>
-       <varlistentry>
-         <term>FLTK</term>
-         <listitem>
-<para>
-    Fast Light ToolKit, low on resource usage.
-    Since all build using fltk are now broken, we declare it
-    "for developers".
-</para>
-         </listitem>
-       </varlistentry>
-       <varlistentry>
-         <term>FB</term>
-         <listitem>
-<para>
-    The Linux Frame Buffer, also known as /dev/fb0.
-    AGG is the only renderer that can currently be used
-    with the framebuffer GUI.
-</para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-</entry>
-</row>
-<row>
-  <entry><option>--enable-i810-lod-bias</option>
-</entry>
-  <entry>Enable fix for Intel 810 LOD bias problem. Older versions
-        of libMesa on the Intel i810 or i815 graphics processor
-        need this flag or Gnash will core dump. This has been
-        fixed in newer versions (summer 2005) of libMesa.</entry>
-</row>
-<row>
-  <entry><option>--enable-libsuffix</option>
-</entry>
-  <entry><filename>/lib</filename> directory suffix (64,32,none=default). This 
is only
-        used by Klash.</entry>
-</row>
-<row>
-  <entry><option>--enable-mac</option>
-</entry>
-  <entry>Link to Qt/Mac (don't use X). This is only used by
-        Klash.</entry>
-</row>
-<row>
-  <entry><option>--enable-media=ffmpeg|gst|none</option>
-</entry>
-  <entry>  <para>
-        Select the specified media decoder and sound engine.
-        FFMPEG uses the SDL sound engine; GST uses its own.
-        <option>GST</option> is the default decoder.
-      </para>
-      <para>
-        You should only select one media decoder.
-      </para></entry>
-</row>
-<row>
-  <entry>
-    <option>--disable-nsapi</option>
-    <option>--enable-nsapi</option>
-  </entry>
-  <entry>Force disable/enable building the NPAPI plugin.
-         By default the Mozilla plugin is built if the GTK gui 
-         is selected.  Specify the 
-         <option>--with-npapi-plugindir=</option> option to specify where the
-         plugin should be installed.
-   </entry>
-</row>
-<row>
-  <entry>
-     <option>--disable-kparts</option>
-     <option>--enable-kparts</option>
-  </entry>
-  <entry>Force disable/enable building the KPARTS plugin. By default the
-        KDE plugin is built if the kde gui is selected. 
-        Specify the <option>--with-kde-plugindir=</option> and
-        <option>--with-kde-servicesdir=</option> options (or more generally
-        the <option>--with-kde-pluginprefix=</option> one) to specify where the
-        plugin should be installed. The default installation dir is extracted
-        from kde-config.
-  </entry>
-</row>
-<row>
-  <entry>
-     <option>--disable-plugins</option>
-  </entry>
-  <entry>Disable build of both kparts and npapi plugins</entry>
-</row>
-<row>
-  <entry>    <option>--enable-qtopia</option>
-</entry>
-  <entry>  Link to Qt-embedded, link to the Qtopia
-        Environment. This is only used by Klash.</entry>
-</row>
-<row>
-  <entry><option>--enable-renderer=opengl|cairo|agg</option>
-</entry>
-  <entry>Enable support for the a graphics backend. Currently
-        only <option>opengl</option> and
-        <option>agg</option> work sufficiently. OpenGL is
-        used when you have hardware accelerated graphics. AGG i
-        used when you do not have hardware accelerated
-        graphics. Typically most desktop machines have OpenGL
-        support, and most embedded systems do not. OpenGl is the
-        default when building Gnash, although the quality of AGG's
-        rendering is currently superior to OpenGL.</entry>
-</row>
-<row>
-  <entry><option>--enable-sdk-install</option>
-</entry>
-  <entry>Enable installing the libraries and headers as an SDK.
-</entry>
-</row>
-<row>
-  <entry><option>--disable-shared</option>
-</entry>
-  <entry>Enable installing the shared libraries and headers.
-        Note that the extensions mechanism may not work if shared
-        libraries are disabled.</entry>
-</row>
-<row>
-  <entry><option>--enable-strict</option>
-</entry>
-  <entry>Turn verbose GCC compiler warnings. By default only
-        <option>-Wall</option> is used with GCC.</entry>
-</row>
-<row>
-  <entry><option>--enable-fps-debug</option>
-</entry>
-  <entry>Enable FPS debugging code. When this feature is compiled in you can 
use the -f switch of &app;
-       to have FPS printed at regular intervals.</entry>
-</row>
-<row>
-  <entry><option>--enable-write</option></entry>
-  <entry>Makes the Mozilla plugin write the currently playing SWF movie to 
<filename>/tmp</filename>.
-</entry>
-</row>
-<row>
-  <entry><option>--disable-mit-shm</option>
-</entry>
-  <entry>Disable support for the MIT-SHM X extensions.
-       Currently support is only available using GTK gui and AGG renderer.
-       Keeping it enabled is not a problem as it will not be used if not
-       available in the current X session.
-       </entry>
-</row>
-</tbody>
-</tgroup>
-</table>

Index: doc/C/usermanual/installation/install.xml
===================================================================
RCS file: doc/C/usermanual/installation/install.xml
diff -N doc/C/usermanual/installation/install.xml
--- doc/C/usermanual/installation/install.xml   29 Sep 2007 13:05:47 -0000      
1.6
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,114 +0,0 @@
-<title>Installation</title>
-
-<para>
-Now that &app; has been compiled and tested, use the following command to 
install it:
-  <programlisting>
-  make install
-  </programlisting>
-The above command installs the standalone player.  If the correct files were 
found by <command>configure</command> and if the 
<option>--disable-plugin</option> option was not specified, the &app; browser 
plugin is also installed.
-</para>
-
-<para>
-  &app; installs a number of <link linkend="libinstall">libraries</link>,
-  namely: <emphasis>libbase</emphasis>,
-  <emphasis>libgeometry</emphasis>, <emphasis>libbackend</emphasis>,
-  <emphasis>libserver</emphasis>, and <emphasis>libmozsdk</emphasis>.
-  <link linkend="appinstall">Executables</link>
-  consist of the (optional) plugin, <filename>gprocessor</filename>,
-  <filename>cygnal</filename>,  and <filename>gnash</filename>.
-  <link linkend="docinstall">Documentation</link> may also be installed.
-  The installation location is controlled with the
-  <emphasis>--prefix</emphasis> <link linkend="custompath">configure
-  option</link>, except for plugins, which are explicitly set with
-  <emphasis>--plugin-dir</emphasis>.
-</para>
-
-<para>
-  Note that if you are using a single file-system <emphasis>NFS</emphasis>
-  mounted to multiple platforms, the 
-  <link linkend="custompath">configuration option</link> 
-  <emphasis>--exec-prefix</emphasis> may be used to specify where
-  platform-dependent executables and libraries are installed.
-</para>
-  
-<sect2 id="libinstall">
-  <title>Libraries</title>
-  
-  <para>
-    Installed libraries are located in 
-    <filename>/usr/local/lib</filename> by default.
-    If the <emphasis>--prefix</emphasis> option was used in
-    <link linkend="pre-configuration">configuration</link>, the libraries will
-    be installed in the directory <filename>lib</filename> inside the
-    path you specified.  If the libraries are stored in a non-standard
-    location, you must identify the path in one of two ways.
-  </para>
-
-  <para>
-    The traditional way to do this on UNIX
-    platforms is to set the <emphasis>LD_LIBRARY_PATH</emphasis> variable
-    to the path plus <filename>/lib</filename>.  For example, if you
-    installed in <filename>/home/gnash</filename>, the 
-    <emphasis>LD_LIBRARY_PATH</emphasis> path would be
-    <filename>/home/gnash/lib</filename>.  Multiple paths are delimited
-    with a colon (':').
-  </para>
-  
-  <para>
-    GNU/Linux allows the custom path to be added to
-    <filename>/etc/ld.so.conf</filename>.  After adding the path,
-    run <emphasis>ldconfig</emphasis> as root to update the runtime
-    cache.
-  </para>
-</sect2>
-
-<sect2 id="appinstall">
-  <title>Executables</title>
-
-  <para>
-   The Mozilla plugin is built from headers (the Mozilla SDK) provided with 
Gnash and
-       does not need extra development packages to be installed. By default, 
the
-       plugin is installed to <filename>~/.mozilla/plugins/</filename>. To 
enable
-       the plugin for other users, copy the file 
<filename>libgnashplugin.so</filename>
-       to <filename>.mozilla/plugins/</filename> in their home directory.
-       You may also specify the plugin installation directory by using the 
-       <option>--with-plugindir</option> <link linkend="custompath">option 
-       at configuration time</link>.
-   </para>
-   <para>
-   These defaults are likely to change in future versions of Gnash.
-   </para> 
-  <para>
-    The remaining executables are installed in the <filename>bin</filename>
-    subdirectory of the directory specified by during configuration.
-    If no path was specified, the default is 
-    <filename>/usr/local/bin</filename>.
-  </para>
-</sect2>
-
-<sect2 id="docinstall">
-  <title>Documentation</title>
-
-  <para>
-    Documentation is not built by default; please refer to the 
-    <link linkend="processdoc">section on documentation</link> for
-    more information on building documentation.
-  </para>
-
-  <para>
-    <command>man</command> and <command>info</command> 
-    are installed in <filename>/usr/local/share/man</filename>
-    and <filename>/usr/local/share/info</filename> respectively, unless
-    the <option>--mandif</option> or <option>--infodir</option>
-    <link linkend="custompath">configuration options</link> are used.
-  </para>
-
-  <para>
-    <emphasis>GNOME help</emphasis> documentation uses the directory
-    <filename>/usr/local/share/gnash/doc/gnash/C/</filename> by default.
-    A configuration file in the &app; source tree,
-    <filename>doc/C/gnash.omf</filename> is used to specify under
-    which menu item &app; appears in the <emphasis>GNOME help</emphasis>
-    system.
-  </para>
-</sect2>

Index: doc/C/usermanual/installation/packagemanager.xml
===================================================================
RCS file: doc/C/usermanual/installation/packagemanager.xml
diff -N doc/C/usermanual/installation/packagemanager.xml
--- doc/C/usermanual/installation/packagemanager.xml    22 May 2007 13:48:09 
-0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
-<title>Using a Package Manager</title>
-
-<para>
-  &app; is available as a package for a number of Linux and BSD
-  distributions, such as <ulink type="http" 
-  url="http://packages.ubuntu.com/feisty/utils/gnash";>Ubuntu</ulink>,
-  <ulink type="http" 
-  url="http://packages.debian.org/unstable/utils/gnash";>Debian</ulink>,
-  <ulink type="http"
-  url="http://www.freshports.org/graphics/gnash/";>FreeBSD</ulink>, 
-  and <ulink type="http" 
-  url="http://ports.openbsd.nu/www/gnash";>OpenBSD</ulink>.
-  There is also an unofficial Fedora RPM.  
-  This is not an extensive list, and you are advised to search
-  if you wish to use a package manager on a different system.          
-</para>

Index: doc/C/usermanual/installation/sources.xml
===================================================================
RCS file: doc/C/usermanual/installation/sources.xml
diff -N doc/C/usermanual/installation/sources.xml
--- doc/C/usermanual/installation/sources.xml   1 Aug 2007 05:05:36 -0000       
1.5
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,33 +0,0 @@
-<title>Building from Source</title>
-
-<para>
-  Installing from source will involve the following steps:
-  <link linkend="gettingsource">getting the source</link>,
-  <link linkend="codedepend">resolving dependencies</link>,
-  <link linkend="configure">configuration</link>,
-  <link linkend="compile">compilation</link>,
-  <link linkend="runtests">testing</link>, and
-  <link linkend="install">installation</link>.
-  The &app; installation process is fairly standard:
-  <programlisting>
-  ./autogen.sh
-  ./configure &lt;options&gt;
-  make
-  make check
-  make install
-  </programlisting>
-</para>
-<para>
-  Continue reading for detailed step-by-step instructions 
-  of the entire procedure.
-</para>  
-<para>
-  Presently, &app; source is about 16 MB when extracted and
-  <link linkend="configure">configured</link>.  <link
-  linkend="compile">Compilation</link> requires about 100 MB of
-  harddrive space.
-  A minimum of 128 MB of physical RAM is recommended for compiling.
-</para>  
-
-
-

Index: doc/C/usermanual/installation/testing_dependencies.xml
===================================================================
RCS file: doc/C/usermanual/installation/testing_dependencies.xml
diff -N doc/C/usermanual/installation/testing_dependencies.xml
--- doc/C/usermanual/installation/testing_dependencies.xml      20 Feb 2008 
05:16:21 -0000      1.3
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,91 +0,0 @@
-<title>Testing Dependencies</title>
-
-<para>
-  &app; tries to run as many tests as possible, but will
-  simply skip tests if the tools to run them are unavailable.
-</para>
-
-<table frame='all' id="testdeps">
-  <title>Testing Dependency Table</title>
-  <tgroup cols='7' align='left' colsep='1' rowsep='1'>
-    <colspec colname='name'/>
-    <colspec colname='required'/>
-    <colspec colname='version'/>
-    <colspec colname='description'/>
-    <colspec colname='explanation'/>
-    <colspec colname='apt'/>
-    <colspec colname='rpm'/>
-
-    <thead>
-      <row>
-        <entry>Name</entry>
-        <entry>Level</entry>
-        <entry>Version</entry>
-        <entry>Description</entry>
-        <entry>Explanation</entry>
-        <entry>apt-get package</entry>
-        <entry>RPM/Yum package</entry>
-      </row>
-    </thead>
-
-    <tbody>
-      <row>
-        <entry>Ming</entry>
-        <entry>Optional</entry>
-        <entry>0.4.0_beta4 or higher</entry>
-        <entry>
-          Ming is an ActionScript compiler.
-        </entry>
-        <entry>
-          Ming is the primary compiler for ActionScript testcases.
-        </entry>
-        <entry>No distribution packages are available.</entry>
-        <entry>No distribution packages are available.</entry>
-      </row>
-
-      <row>
-        <entry>Mtasc</entry>
-        <entry>Optional</entry>
-        <entry></entry>
-        <entry>
-          Mtasc is an ActionScript compiler.
-        </entry>
-        <entry>
-          Mtasc is used in some tests.
-        </entry>
-        <entry><filename>mtasc</filename></entry>
-        <entry>No distribution packages are available.</entry>
-      </row>
-
-      <row>
-        <entry>swfdec</entry>
-        <entry>Optional</entry>
-        <entry></entry>
-        <entry>
-          Swfdec is a Flash player.
-        </entry>
-        <entry>
-          Swfdec is used in some testcases.
-        </entry>
-        <entry>No distribution packages are available.</entry>
-        <entry>Unofficial package <filename>swfdec</filename></entry>
-      </row>
-
-      <row>
-        <entry>DejaGnu</entry>
-        <entry>Optional</entry>
-        <entry></entry>
-        <entry>
-          DejaGnu is a testing framework.
-        </entry>
-        <entry>
-          DejaGnu is used to run multiple tests in an
-          automated fashion.
-        </entry>
-        <entry><filename>dejagnu</filename></entry>
-        <entry><filename>dejagnu</filename></entry>
-      </row>
-
-    </tbody>
-  </tgroup>
-</table>

Index: doc/C/usermanual/usage/gnashrc.xml
===================================================================
RCS file: doc/C/usermanual/usage/gnashrc.xml
diff -N doc/C/usermanual/usage/gnashrc.xml
--- doc/C/usermanual/usage/gnashrc.xml  28 Dec 2007 19:37:00 -0000      1.18
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,307 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<sect1 id="gnashrc">
-  <title>User Configuration File</title>
-
-  <para>
-Individual user preferences may be set by editing variables with the 
<filename>.gnashrc</filename> file:
-<programlisting>
-~/.gnashrc
-</programlisting>
-</para>
-
-<para>
-Each line must begin with an action: either <emphasis>set</emphasis> or, in 
the case of lists, also
-<emphasis>append</emphasis>.
-</para>
-
-<para>
-The values in this configuration file apply only to an individual user, and 
become the default settings of the standalone player and the plugin.  Note that 
any command line options take precedence over <filename>.gnashrc</filename> 
settings.
-</para>
-
-<para>
-The variables in the <filename>.gnashrc</filename> file support three types of 
arguments: on/off, numeric values, or in the case of the
-    whitelist and blacklist, a list of hostnames as ASCII text.
-  </para>
-
-
-      <table id="tb-config-variables">
-<title>User Configuration Variables</title>
-<tgroup cols='3' align='left' colsep='1' rowsep='1'>
-<colspec colname='Variable' />
-<colspec colname='Value' />
-<colspec colname='Function' />
-<thead>
-<row>
-<entry>Variable</entry>
-<entry>Value</entry>
-<entry>Function</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry>localdomain</entry>
-<entry>on/off</entry>
-<entry>This value can be set to either <emphasis>on</emphasis> or
-           <emphasis>off</emphasis>, and controls the loading of
-           external Flash movies over a network. This option
-           tells Gnash to only load Flash movies from the existing 
domain.</entry>
-</row>
-<row>
-<entry>localhost</entry>
-<entry>on/off</entry>
-<entry>This value can be set to either <emphasis>on</emphasis> or
-           <emphasis>off</emphasis>, and controls the loading of
-           external Flash movies over a network. This is a stricter
-           version of the <emphasis>localdomain</emphasis> setting as
-           this allows the loading of Flash movies to the same host
-           that is running &app;.</entry>
-</row>
-<row>
-<entry>whitelist</entry>
-<entry>hostnames</entry>
-<entry>This is a list of hostnames separated by spaces, or 
<emphasis>off</emphasis>
-           to disable the whitelist. The hostname must be given
-            without a protocol (http://, https://). If this list is populated,
-           &app; will only load external Flash movies from the specified 
hosts.  The
-           whitelist takes precedence over the blacklist. Because several 
files can
-           be parsed in succession, each file can override or add to
-           lists in other files. Use <emphasis>set</emphasis> to override
-           all other lists or <emphasis>append</emphasis> to add your 
blacklisted
-           hosts to lists in previously parsed files.</entry>
-</row>
-<row>
-<entry>blacklist</entry>
-<entry>hostnames</entry>
-<entry>This is a list of hostnames separated by spaces, or 
<emphasis>off</emphasis>
-           to disable the blacklist. The hostname must be given
-            without a protocol (http://, https://).
-           External flash movies from these
-            domains are never allowed to load. If whitelist is present
-           and not empty, blacklist is not used. Because several files can
-           be parsed in succession, each file can override or add to
-           lists in other files. Use <emphasis>set</emphasis> to override
-           all other lists or <emphasis>append</emphasis> to add your 
blacklisted
-           hosts to lists in previously parsed files.</entry>
-</row>
-<row>
-<entry>localSandboxPath</entry>
-<entry>dirs</entry>
-<entry>This is a list of directories separated by spaces.
-           Only resources from these directories and from the directory
-            portion of movie filename (if loaded from filesystem) are allowed 
to load.
-           Because several files can be parsed in succession, each file can 
override
-           or add to lists in other files. Use <emphasis>set</emphasis> to 
override
-           all other lists or <emphasis>append</emphasis> to add new sandboxes.
-           Note that there's currently no way to *drop* the directory of base 
dir
-           from the list of allowed local sandboxes.
-           </entry>
-</row>
-<row>
-<entry>delay</entry>
-<entry>Number</entry>
-<entry>&app; uses a timer-based event mechanism to advance frames
-           at a steady rate. This option overrides the default
-           setting in Gnash to play a movie slower or faster.</entry>
-</row>
-<row>
-<entry>verbosity</entry>
-<entry>Number</entry>
-<entry>This is a numeric value which defines the default level of
-           verbosity from the player.</entry>
-</row>
-<row>
-<entry>MalformedSWFVerbosity</entry>
-<entry>on/off</entry>
-<entry>This value can be set to either <emphasis>on</emphasis> or
-           <emphasis>off</emphasis>, and controls whether malformed SWF errors 
should
-           be printed. If set to true, verbosity level is automatically 
incremented.
-           Set <option>verbosity</option> to 0 afterwards to hush.</entry>
-</row>
-<row>
-<entry>ASCodingErrorsVerbosity</entry>
-<entry>on/off</entry>
-<entry>This value can be set to either <emphasis>on</emphasis> or
-           <emphasis>off</emphasis>, and controls whether ActionScript coding
-           errors should be printed. If set to true, verbosity level is
-           automatically incremented.  Set <option>verbosity</option> to 0 
afterwards to hush.</entry>
-</row>
-<row>
-<entry>debuglog</entry>
-<entry>Absolute path</entry>
-<entry>This is the full path and name of debug logfile as
-       produced by &app;. On systems with a UNIX-type shell,
-        a tilde prefix (~) will be expanded as by Posix shell requirements
-        (see 
http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_01).</entry>
-</row>
-<row>
-<entry>writelog</entry>
-<entry>on/off</entry>
-<entry>This value can be set to either <emphasis>on</emphasis> or
-           <emphasis>off</emphasis>, and controls whether a debug log
-           is always written by &app;, or not at all.</entry>
-</row>
-<row>
-<entry>sound</entry>
-<entry>on/off</entry>
-<entry>This value can be set to either <emphasis>on</emphasis> or
-           <emphasis>off</emphasis>, and controls the sound of the
-           standalone player. By default &app; enables playing the
-           sound in any Flash movie.</entry>
-</row>
-<row>
-<entry>pluginsound</entry>
-<entry>on/off</entry>
-<entry>This value can be set to either <emphasis>on</emphasis> or
-           <emphasis>off</emphasis>, and controls the sound of the
-           player when running as a browser plugin. By default, sound
-           is enabled when using &app; as a browser plugin.</entry>
-</row>
-<row>
-<entry>EnableExtensions</entry>
-<entry>on/off</entry>
-<entry>Set to <emphasis>on</emphasis> to enable extensions. This option is 
<emphasis>off</emphasis> by default</entry>
-</row>
-<row>
-<entry>StartStopped</entry>
-<entry>on/off</entry>
-<entry>Set to <emphasis>on</emphasis> to have the GUI start in "stop" mode. 
This is useful in particular
-           for the plugin, so you have to explicitly start any movie on a 
webpage. This option is <emphasis>off</emphasis> by default.
-         </entry>
-</row>
-<row>
-<entry>flashVersionString</entry>
-<entry>string</entry>
-<entry>Set the string returned by $version and System.capabilities.version.
-       Useful to get around some flash version detection movies.
-       Note that the version advertised by the plugin is NOT affected by this 
setting,
-       instead you need to set the GNASH_FLASH_VERSION environment variable for
-       the latter (which doesn't affect $version and 
System.capabilities.version).</entry>
-</row>
-
-<row>
-<entry>flashSystemOS</entry>
-<entry>string</entry>
-<entry>The string that Gnash should return for System.capabilities.OS</entry>
-</row>
-
-<row>
-<entry>flashSystemManufacturer</entry>
-<entry>string</entry>
-<entry>The string that Gnash should return for 
System.capabilities.manufacturer</entry>
-</row>
-
-<row>
-<entry>StreamsTimeout</entry>
-<entry>double</entry>
-<entry>
-Set the number of seconds after which streams download time out. Note that 
timeouts only occurs after the given number of seconds
-passed w/out anything was received.
-</entry>
-</row>
-
-<row>
-<entry>insecureSSL</entry>
-<entry>on/off</entry>
-<entry>If set to <emphasis>on</emphasis>, no verification of SSL connections
-is performed. This means that, although the connection is encrypted, the server
-certificate could be invalid, may not belong to the host, or both. Equivalent
-to curl --insecure. By default, this option is <emphasis>off</emphasis> and
-connections will fail when a host cannot be verified.</entry>
-</row>
-
-<row>
-<entry>SOLsafedir</entry>
-<entry>Absolute path</entry>
-<entry>The full path to a directory where &app; should store Shared Object 
files (&quot;flash cookies&quot;) if
-they are enabled.</entry>
-</row>
-
-<row>
-<entry>SOLreadonly</entry>
-<entry>on/off</entry>
-<entry>If set to <emphasis>on</emphasis>, &app; will not write Shared Object 
files.</entry>
-</row>
-
-<row>
-<entry>URLOpenerFormat</entry>
-<entry>string</entry>
-<entry>
-Set the format of an url opener command. The %u label would be substituted by 
the actual url to be opened.
-Examples:
-<programlisting>
- set urlOpenerFormat firefox -remote 'openurl(%u)'
- set urlOpenerFormat xdg-open %u
- set urlOpenerFormat open %u
- set urlOpenerFormat kfmclient exec %u
-</programlisting>
-</entry>
-</row>
-
-</tbody>
-</tgroup>
-</table>
-
-    
-  <para>
-The following example <filename>.gnashrc</filename> file allows a user to only 
play Flash files saved locally to the machine on which &app; is running.  It 
also specifically forbids content from doubleclick.com and mochibot.com.  
&app;'s error output is set to be fairly verbose, with the debug log placed in 
a location convenient for the user.  Finally, sound is turned on for both the 
standalone player and the plugin.
-</para>
-
-  <programlisting>
-  
-    #
-    # Gnash client options
-    #
-
-    # Only access remote content from our local domain
-    set localdomain on
-
-    # Only access content from our local host
-    set localhost on
-
-    # These sites are OK
-    # uncommenting the following line will allow load of external
-    # movies *only* from the specified hosts.
-    #set whitelist www.doonesbury.com www.cnn.com www.9news.com
-
-    # Disable whitelists set in any other gnashrc files, because
-    # these could override our blacklist.
-    set whitelist off
-
-    # Don't access content from these sites
-    set blacklist www.doubleclick.com mochibot.com
-
-    # The delay between timer interrupts
-    set delay 50
-
-    # The default verbosity level
-    set verbosity 1
-
-    # Be verbose about malformed SWF
-    set MalformedSWFVerbosity true
-
-    # Be verbose about AS coding errors
-    set ASCodingErrorsVerbosity true
-
-    # The full path to the debug log
-    set debuglog ~/gnash-dbg.log
-
-    # Write a debug log to disk
-    set writelog on
-
-    # Enable or Disable sound for the standalone player
-    set sound on
-
-    # Enable or Disable sound for the standalone player
-    set pluginsound on
-
-    # Make sure SSL connections are always verified
-    set insecureSSL off
-
-    # Use firefox to open urls
-    set urlOpenerFormat firefox -remote 'openurl(%u)'
-
-  </programlisting>
-
-
-</sect1>
-  

Index: packaging/doc/.cvsignore
===================================================================
RCS file: packaging/doc/.cvsignore
diff -N packaging/doc/.cvsignore
--- packaging/doc/.cvsignore    22 Feb 2008 18:02:52 -0000      1.1.2.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in

Index: packaging/doc/Makefile.am
===================================================================
RCS file: packaging/doc/Makefile.am
diff -N packaging/doc/Makefile.am
--- packaging/doc/Makefile.am   21 Feb 2008 22:32:15 -0000      1.1.2.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,23 +0,0 @@
-## Process this file with automake to generate Makefile.in
-# 
-#   Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
-#
-#   This program is free software; you can redistribute it and/or modify
-#   it under the terms of the GNU General Public License as published by
-#   the Free Software Foundation; either version 3 of the License, or
-#   (at your option) any later version.
-#
-#   This program 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 General Public License for more details.
-#
-#   You should have received a copy of the GNU General Public License
-#   along with this program; if not, write to the Free Software
-#   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-SUBDIRS = 
-
-EXTRA_DIST = actionscript.html.in dumpshm.1.in gnash.html.in gprocessor.1.in \
-       soldumper.1.in actionscript.info.in cygnal.1.in gnash.1.in \
-       gnash.info.in

Index: packaging/doc/actionscript.html.in
===================================================================
RCS file: packaging/doc/actionscript.html.in
diff -N packaging/doc/actionscript.html.in
--- packaging/doc/actionscript.html.in  16 Feb 2008 17:51:05 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,618 +0,0 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=ISO-8859-1"><title>ActionScript Manual V0.2</title><meta 
name="generator" content="DocBook XSL Stylesheets V1.73.2"></head><body 
bgcolor="white" text="black" link="#0000FF" vlink="#840084" 
alink="#0000FF"><div class="article" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="index"></a>ActionScript 
Manual V0.2</h2></div><div><div class="authorgroup"><div class="author"><h3 
class="author"><span class="firstname">Rob</span> <span 
class="surname">Savoye</span></h3><div class="affiliation"><div 
class="address"><p><br>
-           <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code><br>
-         </p></div></div></div><div class="author"><h3 class="author"><span 
class="firstname">Ann</span> <span 
class="surname">Barcomb</span></h3></div></div></div><div><p 
class="releaseinfo">This manual describes how Gnash ActionScript classes
-    are written.
-    </p></div><div><p class="copyright">Copyright © 2007, 2008 Free Software 
Foundation</p></div><div><div class="legalnotice"><a name="legalnotice"></a><p>
-    Permission is granted to copy, distribute and/or modify this document
-    under the terms of the <a class="link" href="#fdl" title="A. GNU Free 
Documentation License"><em class="citetitle">GNU
-    Free Documentation License</em></a>, Version 1.1 or any later
-    version published by the Free Software Foundation with no Invariant
-    Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find
-    a copy of the GFDL at this 
-    <a class="link" href="#fdl" title="A. GNU Free Documentation 
License">link</a> or in the file COPYING-DOCS
-    distributed with this manual.
-   </p></div></div><div><div class="revhistory"><table border="1" width="100%" 
summary="Revision history"><tr><th align="left" valign="top" 
colspan="2"><b>Revision History</b></th></tr><tr><td align="left">Revision 
ActionScript Manual V0.2</td><td align="left">Feb 2008</td></tr><tr><td 
align="left" colspan="2"> 
-         <p class="author">Rob Savoye
-           <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>
-         </p>
-         <p class="author">Ann Barcomb
-         </p>
-         <p class="publisher">Free Software Foundation</p>
-       </td></tr></table></div></div></div><hr></div><div 
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a 
href="#introduction">Introduction</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#overview">Object Creation 
Overview</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#newclass">Adding New ActionScript Class</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#prototype">Prototype</a></span></dt><dt><span 
class="sect2"><a href="#declaration">Declaration</a></span></dt><dt><span 
class="sect2"><a href="#instantiation">Instantiation</a></span></dt><dt><span 
class="sect2"><a href="#methods">Methods</a></span></dt><dt><span 
class="sect2"><a href="#properties">Dynamic 
Properties</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#as_value">The <span class="emphasis"><em>as_value</em></span> Object 
Type</a></span></dt><dd><dl><dt><span class="sect2"><a href="#data_types">Data 
Types</a></span></dt><dt><span class="sect2"><a href="#is_methods">Determining 
the Type</a></span></dt><dt><span class="sect2"><a href="#to_methods">Fetching 
the Value</a></span></dt><dt><span class="sect2"><a href="#set_methods">Setting 
the Value and Type</a></span></dt><dt><span class="sect2"><a 
href="#further_as_value_reading">Further 
Reading</a></span></dt></dl></dd><dt><span class="appendix"><a href="#fdl">A. 
GNU Free Documentation License</a></span></dt><dd><dl><dt><span 
class="sect1"><a href="#fdl-preamble">0. PREAMBLE</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section1">1. APPLICABILITY AND 
DEFINITIONS</a></span></dt><dt><span class="sect1"><a href="#fdl-section2">2. 
VERBATIM COPYING</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section3">3. COPYING IN QUANTITY</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section4">4. MODIFICATIONS</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section5">5. COMBINING 
DOCUMENTS</a></span></dt><dt><span class="sect1"><a href="#fdl-section6">6. 
COLLECTIONS OF DOCUMENTS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section7">7. AGGREGATION WITH INDEPENDENT 
WORKS</a></span></dt><dt><span class="sect1"><a href="#fdl-section8">8. 
TRANSLATION</a></span></dt><dt><span class="sect1"><a href="#fdl-section9">9. 
TERMINATION</a></span></dt><dt><span class="sect1"><a href="#fdl-section10">10. 
FUTURE REVISIONS OF THIS LICENSE</a></span></dt><dt><span class="sect1"><a 
href="#fdl-using">Addendum</a></span></dt></dl></dd></dl></div><a 
class="indexterm" name="id2596580"></a><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="introduction"></a>Introduction</h2></div></div></div><p>
-        In this document, the term 'ActionScript class' refers to the
-        C++ class which is instantiated by Gnash when some ActionScript
-        code instantiates a corresponding class.  The C++ class
-        stores instance data and implements the methods which are 
-        called on the object in the ActionScript code.
-      </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="overview"></a>Object Creation 
Overview</h3></div></div></div><p>
-            When Gnash starts, the <span 
class="emphasis"><em>class_init()</em></span> method 
-            for each ActionScript class (listed in Global.cpp) is called.
-            This method constructs a prototype, which is implemented as an
-            <span class="emphasis"><em>as_object</em></span>.  In addition, 
the method
-            registers the constructor to be used for future object creation,
-            and attaches methods and properties to the prototype.
-          </p><p>
-            When a new object is needed, instance data is added to
-            the methods and properties inherited from the prototype.
-          </p></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="newclass"></a>Adding New ActionScript Class</h2></div></div></div><p>
-        Adding a new ActionScript class is relatively simple, but the
-        process is complicated by the fact that the interface has evolved
-        over time and the current code base represents several different
-        formats.  This document describes the current interface.  The
-        Boolean class should be considered the authoritative example of
-        a modern ActionScript class.
-      </p><p>
-        ActionScript classes contain a header file and a C++
-        implementation.  The name is usually the name of the
-        class as it is called in the ActionScript specifications;
-        for instance <span class="emphasis"><em>Boolean.cpp</em></span> for 
the Boolean class.
-      </p><p> 
-        In the CVS source tree, there is a utility file named
-        <span class="emphasis"><em>gen-asclass.sh</em></span> which can be 
used to
-        create the header file and a C++ source file stub for
-        an ActionScript class.  
-      </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="prototype"></a>Prototype</h3></div></div></div><p>
-          In ActionScript, a prototype is a base object which contains
-          all the methods that an instantiated object will contain.
-          In short, it contains every part of the class except for
-          the portions dealing with the storage of instance data.
-       </p><p>
-          In Gnash, the prototype of an ActionScript object is 
-          implemented as an <span class="emphasis"><em>as_object</em></span>.
-          At startup, the methods and properties of the ActionScript class
-          are attached to the <span 
class="emphasis"><em>as_object</em></span>.  The
-          following example demonstrates how methods can be attached:
-         </p><pre class="programlisting">
-            static void
-            attachBooleanInterface(as_object&amp; o) 
-            {
-                o.init_member("toString", new 
builtin_function(boolean_tostring));
-                o.init_member("valueOf", new 
builtin_function(boolean_valueof));
-            }
-         </pre><p>
-          This code was generated using <span 
class="emphasis"><em>gen-asclass.sh</em></span>.
-          Typically, you will need to customize the attach method to include
-          any new methods you add to the class.
-       </p><p>
-          Static properties can also be added to the ActionScript prototype
-          (<a class="link" href="#properties" title="Dynamic 
Properties">dynamic properties</a> 
-          are addressed later).  They are attached in a similar way:
-          </p><pre class="programlisting">
-           o.init_member("myProperty", as_value("HelloWorld"));
-         </pre><p>
-       </p><p>
-          Properties which have been added in this manner can be
-          directly accessed in ActionScript code without a function
-          call, as this piece of ActionScript code compiled by Ming's
-          <span class="emphasis"><em>makeswf</em></span> compiler demonstrates:
-           </p><pre class="programlisting">
-             // Get the value of the myProperty property
-             if (node.myProperty == "HelloWorld") {
-                 trace("MATCHED");
-             }
-           </pre><p>
-       </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="declaration"></a>Declaration</h3></div></div></div><p>
-          A new class should derive from <span 
class="emphasis"><em>as_object</em></span>,
-          which is the base class of every ActionScript object in Gnash.
-          The class declaration will also be generated when you use
-          <span class="emphasis"><em>gen-asclass.sh</em></span>.
-       </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="instantiation"></a>Instantiation</h3></div></div></div><p>
-          The class should contain an init method; this is included
-          in the stub when <span 
class="emphasis"><em>gen-asclass.sh</em></span> is
-          used.
-       </p><p>
-          The init method should be called in the constructor in
-          <span class="emphasis"><em>Global.cpp</em></span>, where all other 
ActionScript
-          classes are similarly referenced.
-       </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="methods"></a>Methods</h3></div></div></div><p>
-          Every method you implement and 
-          <a class="link" href="#prototype" title="Prototype">attach</a> will 
receive an
-          <span class="emphasis"><em>fn_call</em></span> data structure as an 
argument when it is called.
-        </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="arguments"></a>Accessing 
Arguments</h4></div></div></div><p>
-            The arguments stored in <span 
class="emphasis"><em>fn_call</em></span>
-            should be accessed using <span 
class="emphasis"><em>arg()</em></span>.  For
-            instance, the first element can be popped with
-            <span class="emphasis"><em>fn.arg(0)</em></span>.
-         </p><p>
-            The element popped off the stack is an 
-            <a class="link" href="#as_value" title="The as_value Object 
Type"><span class="emphasis"><em>as_value</em></span>
-            object</a>.
-          </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a name="return"></a>Returning a 
Value to ActionScript</h4></div></div></div><p>
-            The return value should be an
-            <a class="link" href="#as_value" title="The as_value Object 
Type"><span class="emphasis"><em>as_value</em></span> 
-            object</a>.  For example:
-            </p><pre class="programlisting">
-              return as_value('Goodbye, cruel world.');
-            </pre><p>
-          </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="additional_fn_call"></a>Additional <span 
class="emphasis"><em>fn_call</em></span> Members</h4></div></div></div><p>
-            There are two other useful members of the <span 
class="emphasis"><em>fn_call</em></span>
-            structure, namely <span class="emphasis"><em>this_ptr</em></span> 
and
-            <span class="emphasis"><em>nargs</em></span>.  The former points 
to the
-            class which is invoking this method, while the latter
-            is a count of the number of 
-            <a class="link" href="#arguments" title="Accessing 
Arguments">arguments in the stack</a>.
-         </p><p>
-            You may also see instances of the <span 
class="emphasis"><em>env</em></span>
-            pointer being used.   This is being deprecated.  Instances
-            which could be replaced with
-            <a class="link" href="#arguments" title="Accessing 
Arguments"><span class="emphasis"><em>arg()</em></span></a>
-            are already deprecated; other uses will be deprecated
-            in the near future.
-         </p><p>
-            Beyond the <span class="emphasis"><em><a class="link" 
href="#arguments" title="Accessing Arguments">arg()</a></em></span> method, 
there
-            is one method of note.  <span 
class="emphasis"><em>dump_args()</em></span>
-            can be used in debugging to output the entire argument
-            stack.
-         </p></div></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="properties"></a>Dynamic 
Properties</h3></div></div></div><p>
-          This section describes accessors to dynamic properties.
-          Read-only properties are described
-          in the <a class="link" href="#prototype" 
title="Prototype">prototype</a> section.
-        </p><p>
-          Dynamic properties are not created by the <span 
class="emphasis"><em>gen-asclass.sh</em></span> 
-          script.  Accessors should be written as
-          a single get/set method.  Previously this was done by
-          overriding <span class="emphasis"><em>get_member()</em></span> and
-          <span class="emphasis"><em>set_member()</em></span>, but this 
practice
-          is deprecated.  
-        </p><p> 
-          The accessor is written so that it sets the property
-          if it is called with an argument, and puts the property in
-          the <a class="link" href="#methods" title="Methods"><span 
class="emphasis"><em>fn_call</em></span></a>
-          <a class="link" href="#return" title="Returning a Value to 
ActionScript">result pointer</a>.  For instance:
-          </p><pre class="programlisting">
-            void
-            MyClass::myProperty_getset(const fn_call&amp; fn)
-            {
-
-                boost::intrusive_ptr&lt;MyClass&gt; ptr = 
ensureType&lt;MyClass&gt;(fn.this_ptr);
-
-                // setter
-                if ( fn.nargs &gt; 0 )
-                {
-                    bool h = fn.arg(0).to_bool();
-                    ptr-&gt;MyMethod(h);
-                    return;
-                }
-
-                // getter
-                bool h = ptr-&gt;MyMethod();
-                fn.result-&gt;set_bool(h);
-            }
-          </pre><p>
-        </p><p> 
-          It has not yet been decided whether properties should be set
-          in the <a class="link" href="#prototype" title="Prototype">exported 
interface</a> 
-          or attached to instances of the class.  A property is attached
-          in the following manner:
-          </p><pre class="programlisting">
-            boost::intrusive_ptr&lt;builtin_function&gt; gettersetter;
-            gettersetter = new 
builtin_function(&amp;MyClass::myProperty_getset, NULL);
-            o.init_property("myProperty", *gettersetter, *gettersetter);
-          </pre><p>
-        </p></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="as_value"></a>The <span class="emphasis"><em>as_value</em></span> Object 
Type</h2></div></div></div><p>
-        The <span class="emphasis"><em>as_value</em></span> class is used 
throughout
-        the interpreter to create generic objects to hold data.
-      </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="data_types"></a>Data Types</h3></div></div></div><p>
-          The following data types are supported:
-          <span class="emphasis"><em>NULLTYPE</em></span>,
-          <span class="emphasis"><em>BOOLEAN</em></span>, <span 
class="emphasis"><em>STRING</em></span>,
-          <span class="emphasis"><em>NUMBER</em></span>, <span 
class="emphasis"><em>OBJECT</em></span>,
-          <span class="emphasis"><em>AS_FUNCTION</em></span>, and 
-          <span class="emphasis"><em>MOVIECLIP</em></span> (sprite).  
-          The type <span class="emphasis"><em>C_FUNCTION</em></span> is being 
deprecated.
-        </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="is_methods"></a>Determining the Type</h3></div></div></div><p>
-          Several methods allow you to determine if a value stored in
-          <span class="emphasis"><em>as_value</em></span> is of a specific 
type.  These
-          follow the form of <span class="emphasis"><em>is_TYPE</em></span>, 
for example
-          <span class="emphasis"><em>is_as_function()</em></span> and 
-          <span class="emphasis"><em>is_number()</em></span>.  In general, the 
type names
-          match the <a class="link" href="#data_types" title="Data Types">data 
types</a> listed
-          above, with the exception of the type <span 
class="emphasis"><em>MOVIECLIP</em></span>
-          which has a method <span 
class="emphasis"><em>is_sprite()</em></span>.
-        </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="to_methods"></a>Fetching 
the Value</h3></div></div></div><p>
-          Another set of methods will return a representation of
-          the value as a particular type.  They follow the
-          <span class="emphasis"><em>to_TYPE</em></span> naming convention.  
Examples
-          are <span class="emphasis"><em>to_number()</em></span> and
-          <span class="emphasis"><em>to_bool()</em></span>.  The type names 
are as 
-          <a class="link" href="#data_types" title="Data Types">listed</a> 
earlier, except for
-          <span class="emphasis"><em>MOVIECLIP</em></span>, which uses 
-          <span class="emphasis"><em>to_sprite()</em></span>.
-        </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="set_methods"></a>Setting 
the Value and Type</h3></div></div></div><p>
-          Finally, there is the <span 
class="emphasis"><em>set_TYPE</em></span> series
-          of methods.  They change the type to the type specified in
-          the method name, and set the value to the one given as an
-          argument.  It is also possible to accomplish the same thing
-          with the <span class="emphasis"><em>=</em></span> operator.  Again, 
type names
-          match those <a class="link" href="#data_types" title="Data 
Types">named earlier</a>,
-          except in the case of <span 
class="emphasis"><em>MOVIECLASS</em></span>.  Its
-          method is called <span class="emphasis"><em>set_sprite()</em></span>.
-        </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="further_as_value_reading"></a>Further Reading</h3></div></div></div><p>
-          Please refer to <span class="emphasis"><em>as_value.h</em></span> or 
the
-          Doxygen documentation (see 'Processing The Documentation'
-          in the Gnash manual for instructions on generating
-          documents with Doxygen) for more information
-          about which methods are available for the
-          <span class="emphasis"><em>as_value</em></span> object.
-        </p></div></div><div class="appendix" lang="en"><h2 class="title" 
style="clear: both"><a name="fdl"></a>A. GNU Free Documentation 
License</h2><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="fdl-preamble"></a>0. 
PREAMBLE</h2></div></div></div><p>
-      The purpose of this License is to make a manual, textbook, or
-      other written document "free" in the sense of
-      freedom: to assure everyone the effective freedom to copy and
-      redistribute it, with or without modifying it, either
-      commercially or non-commercially. Secondarily, this License
-      preserves for the author and publisher a way to get credit for
-      their work, while not being considered responsible for
-      modifications made by others.
-    </p><p>
-      This License is a kind of "copyleft", which means
-      that derivative works of the document must themselves be free in
-      the same sense. It complements the GNU General Public License,
-      which is a copyleft license designed for free software.
-    </p><p>
-      We have designed this License in order to use it for manuals for
-      free software, because free software needs free documentation: a
-      free program should come with manuals providing the same
-      freedoms that the software does. But this License is not limited
-      to software manuals; it can be used for any textual work,
-      regardless of subject matter or whether it is published as a
-      printed book. We recommend this License principally for works
-      whose purpose is instruction or reference.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section1"></a>1. APPLICABILITY AND 
DEFINITIONS</h2></div></div></div><p><a name="fdl-document"></a>
-      This License applies to any manual or other work that contains a
-      notice placed by the copyright holder saying it can be
-      distributed under the terms of this License. The
-      "Document", below, refers to any such manual or
-      work. Any member of the public is a licensee, and is addressed
-      as "you".
-    </p><p><a name="fdl-modified"></a>
-      A "Modified Version" of the Document means any work
-      containing the Document or a portion of it, either copied
-      verbatim, or with modifications and/or translated into another
-      language.
-    </p><p><a name="fdl-secondary"></a>
-      A "Secondary Section" is a named appendix or a
-      front-matter section of the <a class="link" 
href="#fdl-document">Document</a> that deals exclusively
-      with the relationship of the publishers or authors of the
-      Document to the Document's overall subject (or to related
-      matters) and contains nothing that could fall directly within
-      that overall subject. (For example, if the Document is in part a
-      textbook of mathematics, a Secondary Section may not explain any
-      mathematics.)  The relationship could be a matter of historical
-      connection with the subject or with related matters, or of
-      legal, commercial, philosophical, ethical or political position
-      regarding them.
-    </p><p><a name="fdl-invariant"></a>
-      The "Invariant Sections" are certain <a class="link" 
href="#fdl-secondary"> Secondary Sections</a> whose titles
-      are designated, as being those of Invariant Sections, in the
-      notice that says that the <a class="link" 
href="#fdl-document">Document</a> is released under this
-      License.
-    </p><p><a name="fdl-cover-texts"></a>
-      The "Cover Texts" are certain short passages of
-      text that are listed, as Front-Cover Texts or Back-Cover Texts,
-      in the notice that says that the <a class="link" 
href="#fdl-document">Document</a> is released under this
-      License.
-    </p><p><a name="fdl-transparent"></a>
-      A "Transparent" copy of the <a class="link" href="#fdl-document"> 
Document</a> means a machine-readable
-      copy, represented in a format whose specification is available
-      to the general public, whose contents can be viewed and edited
-      directly and straightforwardly with generic text editors or (for
-      images composed of pixels) generic paint programs or (for
-      drawings) some widely available drawing editor, and that is
-      suitable for input to text formatters or for automatic
-      translation to a variety of formats suitable for input to text
-      formatters. A copy made in an otherwise Transparent file format
-      whose markup has been designed to thwart or discourage
-      subsequent modification by readers is not Transparent.  A copy
-      that is not "Transparent" is called "Opaque".
-    </p><p>
-      Examples of suitable formats for Transparent copies include
-      plain ASCII without markup, Texinfo input format, LaTeX input
-      format, SGML or XML using a publicly available DTD, and
-      standard-conforming simple HTML designed for human
-      modification. Opaque formats include PostScript, PDF,
-      proprietary formats that can be read and edited only by
-      proprietary word processors, SGML or XML for which the DTD
-      and/or processing tools are not generally available, and the
-      machine-generated HTML produced by some word processors for
-      output purposes only.
-    </p><p><a name="fdl-title-page"></a>
-      The "Title Page" means, for a printed book, the
-      title page itself, plus such following pages as are needed to
-      hold, legibly, the material this License requires to appear in
-      the title page. For works in formats which do not have any title
-      page as such, "Title Page" means the text near the
-      most prominent appearance of the work's title, preceding the
-      beginning of the body of the text.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section2"></a>2. VERBATIM COPYING</h2></div></div></div><p>
-      You may copy and distribute the <a class="link" 
href="#fdl-document">Document</a> in any medium, either
-      commercially or noncommercially, provided that this License, the
-      copyright notices, and the license notice saying this License
-      applies to the Document are reproduced in all copies, and that
-      you add no other conditions whatsoever to those of this
-      License. You may not use technical measures to obstruct or
-      control the reading or further copying of the copies you make or
-      distribute. However, you may accept compensation in exchange for
-      copies. If you distribute a large enough number of copies you
-      must also follow the conditions in <a class="link" href="#fdl-section3" 
title="3. COPYING IN QUANTITY">section 3</a>.
-    </p><p>
-      You may also lend copies, under the same conditions stated
-      above, and you may publicly display copies.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section3"></a>3. COPYING IN QUANTITY</h2></div></div></div><p>
-      If you publish printed copies of the <a class="link" 
href="#fdl-document">Document</a> numbering more than 100,
-      and the Document's license notice requires <a class="link" 
href="#fdl-cover-texts">Cover Texts</a>, you must enclose
-      the copies in covers that carry, clearly and legibly, all these
-      Cover Texts: Front-Cover Texts on the front cover, and
-      Back-Cover Texts on the back cover. Both covers must also
-      clearly and legibly identify you as the publisher of these
-      copies. The front cover must present the full title with all
-      words of the title equally prominent and visible. You may add
-      other material on the covers in addition. Copying with changes
-      limited to the covers, as long as they preserve the title of the
-      <a class="link" href="#fdl-document">Document</a> and satisfy these
-      conditions, can be treated as verbatim copying in other
-      respects.
-    </p><p>
-      If the required texts for either cover are too voluminous to fit
-      legibly, you should put the first ones listed (as many as fit
-      reasonably) on the actual cover, and continue the rest onto
-      adjacent pages.
-    </p><p>
-      If you publish or distribute <a class="link" 
href="#fdl-transparent">Opaque</a> copies of the <a class="link" 
href="#fdl-document">Document</a> numbering more than 100,
-      you must either include a machine-readable <a class="link" 
href="#fdl-transparent">Transparent</a> copy along with
-      each Opaque copy, or state in or with each Opaque copy a
-      publicly-accessible computer-network location containing a
-      complete Transparent copy of the Document, free of added
-      material, which the general network-using public has access to
-      download anonymously at no charge using public-standard network
-      protocols. If you use the latter option, you must take
-      reasonably prudent steps, when you begin distribution of Opaque
-      copies in quantity, to ensure that this Transparent copy will
-      remain thus accessible at the stated location until at least one
-      year after the last time you distribute an Opaque copy (directly
-      or through your agents or retailers) of that edition to the
-      public.
-    </p><p>
-      It is requested, but not required, that you contact the authors
-      of the <a class="link" href="#fdl-document">Document</a> well before
-      redistributing any large number of copies, to give them a chance
-      to provide you with an updated version of the Document.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section4"></a>4. MODIFICATIONS</h2></div></div></div><p>
-      You may copy and distribute a <a class="link" 
href="#fdl-modified">Modified Version</a> of the <a class="link" 
href="#fdl-document">Document</a> under the conditions of
-      sections <a class="link" href="#fdl-section2" title="2. VERBATIM 
COPYING">2</a> and <a class="link" href="#fdl-section3" title="3. COPYING IN 
QUANTITY">3</a> above, provided that you release
-      the Modified Version under precisely this License, with the
-      Modified Version filling the role of the Document, thus
-      licensing distribution and modification of the Modified Version
-      to whoever possesses a copy of it. In addition, you must do
-      these things in the Modified Version:
-    </p><div class="itemizedlist"><ul type="opencircle"><li 
style="list-style-type: circle"><p><b>A. </b>
-           Use in the <a class="link" href="#fdl-title-page">Title
-           Page</a> (and on the covers, if any) a title distinct
-           from that of the <a class="link" href="#fdl-document">Document</a>, 
and from those of
-           previous versions (which should, if there were any, be
-           listed in the History section of the Document). You may
-           use the same title as a previous version if the original
-           publisher of that version gives permission.
-         </p></li><li style="list-style-type: circle"><p><b>B. </b>
-           List on the <a class="link" href="#fdl-title-page">Title
-           Page</a>, as authors, one or more persons or entities
-           responsible for authorship of the modifications in the
-           <a class="link" href="#fdl-modified">Modified Version</a>,
-           together with at least five of the principal authors of
-           the <a class="link" href="#fdl-document">Document</a> (all of
-           its principal authors, if it has less than five).
-         </p></li><li style="list-style-type: circle"><p><b>C. </b>
-           State on the <a class="link" href="#fdl-title-page">Title
-           Page</a> the name of the publisher of the <a class="link" 
href="#fdl-modified">Modified Version</a>, as the
-           publisher.
-         </p></li><li style="list-style-type: circle"><p><b>D. </b>
-           Preserve all the copyright notices of the <a class="link" 
href="#fdl-document">Document</a>.
-         </p></li><li style="list-style-type: circle"><p><b>E. </b>
-           Add an appropriate copyright notice for your modifications
-           adjacent to the other copyright notices.
-         </p></li><li style="list-style-type: circle"><p><b>F. </b>
-           Include, immediately after the copyright notices, a
-           license notice giving the public permission to use the
-           <a class="link" href="#fdl-modified">Modified Version</a> under
-           the terms of this License, in the form shown in the
-           Addendum below.
-         </p></li><li style="list-style-type: circle"><p><b>G. </b>
-           Preserve in that license notice the full lists of <a class="link" 
href="#fdl-invariant"> Invariant Sections</a> and
-           required <a class="link" href="#fdl-cover-texts">Cover
-           Texts</a> given in the <a class="link" 
href="#fdl-document">Document's</a> license notice.
-         </p></li><li style="list-style-type: circle"><p><b>H. </b>
-           Include an unaltered copy of this License.
-         </p></li><li style="list-style-type: circle"><p><b>I. </b>
-           Preserve the section entitled "History", and
-           its title, and add to it an item stating at least the
-           title, year, new authors, and publisher of the <a class="link" 
href="#fdl-modified">Modified Version </a>as given on
-           the <a class="link" href="#fdl-title-page">Title Page</a>.  If
-           there is no section entitled "History" in the
-           <a class="link" href="#fdl-document">Document</a>, create one
-           stating the title, year, authors, and publisher of the
-           Document as given on its Title Page, then add an item
-           describing the Modified Version as stated in the previous
-           sentence.
-         </p></li><li style="list-style-type: circle"><p><b>J. </b>
-           Preserve the network location, if any, given in the <a class="link" 
href="#fdl-document">Document</a> for public access
-           to a <a class="link" href="#fdl-transparent">Transparent</a>
-           copy of the Document, and likewise the network locations
-           given in the Document for previous versions it was based
-           on. These may be placed in the "History"
-           section.  You may omit a network location for a work that
-           was published at least four years before the Document
-           itself, or if the original publisher of the version it
-           refers to gives permission.
-         </p></li><li style="list-style-type: circle"><p><b>K. </b>
-           In any section entitled "Acknowledgements" or
-           "Dedications", preserve the section's title,
-           and preserve in the section all the substance and tone of
-           each of the contributor acknowledgements and/or
-           dedications given therein.
-         </p></li><li style="list-style-type: circle"><p><b>L. </b>
-           Preserve all the <a class="link" href="#fdl-invariant">Invariant
-           Sections</a> of the <a class="link" 
href="#fdl-document">Document</a>, unaltered in their
-           text and in their titles.  Section numbers or the
-           equivalent are not considered part of the section titles.
-         </p></li><li style="list-style-type: circle"><p><b>M. </b>
-           Delete any section entitled
-           "Endorsements". Such a section may not be
-           included in the <a class="link" href="#fdl-modified">Modified
-           Version</a>.
-         </p></li><li style="list-style-type: circle"><p><b>N. </b>
-           Do not retitle any existing section as
-           "Endorsements" or to conflict in title with
-           any <a class="link" href="#fdl-invariant">Invariant
-           Section</a>.
-         </p></li></ul></div><p>
-      If the <a class="link" href="#fdl-modified">Modified Version</a>
-      includes new front-matter sections or appendices that qualify as
-      <a class="link" href="#fdl-secondary">Secondary Sections</a> and
-      contain no material copied from the Document, you may at your
-      option designate some or all of these sections as invariant. To
-      do this, add their titles to the list of <a class="link" 
href="#fdl-invariant">Invariant Sections</a> in the
-      Modified Version's license notice.  These titles must be
-      distinct from any other section titles.
-    </p><p>
-      You may add a section entitled "Endorsements",
-      provided it contains nothing but endorsements of your <a class="link" 
href="#fdl-modified">Modified Version</a> by various
-      parties--for example, statements of peer review or that the text
-      has been approved by an organization as the authoritative
-      definition of a standard.
-    </p><p>
-      You may add a passage of up to five words as a <a class="link" 
href="#fdl-cover-texts">Front-Cover Text</a>, and a passage
-      of up to 25 words as a <a class="link" 
href="#fdl-cover-texts">Back-Cover Text</a>, to the end of
-      the list of <a class="link" href="#fdl-cover-texts">Cover Texts</a>
-      in the <a class="link" href="#fdl-modified">Modified Version</a>.
-      Only one passage of Front-Cover Text and one of Back-Cover Text
-      may be added by (or through arrangements made by) any one
-      entity. If the <a class="link" href="#fdl-document">Document</a>
-      already includes a cover text for the same cover, previously
-      added by you or by arrangement made by the same entity you are
-      acting on behalf of, you may not add another; but you may
-      replace the old one, on explicit permission from the previous
-      publisher that added the old one.
-    </p><p>
-      The author(s) and publisher(s) of the <a class="link" 
href="#fdl-document">Document</a> do not by this License
-      give permission to use their names for publicity for or to
-      assert or imply endorsement of any <a class="link" 
href="#fdl-modified">Modified Version </a>.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section5"></a>5. COMBINING DOCUMENTS</h2></div></div></div><p>
-      You may combine the <a class="link" href="#fdl-document">Document</a>
-      with other documents released under this License, under the
-      terms defined in <a class="link" href="#fdl-section4" title="4. 
MODIFICATIONS">section 4</a>
-      above for modified versions, provided that you include in the
-      combination all of the <a class="link" href="#fdl-invariant">Invariant
-      Sections</a> of all of the original documents, unmodified,
-      and list them all as Invariant Sections of your combined work in
-      its license notice.
-    </p><p>
-      The combined work need only contain one copy of this License,
-      and multiple identical <a class="link" href="#fdl-invariant">Invariant
-      Sections</a> may be replaced with a single copy. If there are
-      multiple Invariant Sections with the same name but different
-      contents, make the title of each such section unique by adding
-      at the end of it, in parentheses, the name of the original
-      author or publisher of that section if known, or else a unique
-      number. Make the same adjustment to the section titles in the
-      list of Invariant Sections in the license notice of the combined
-      work.
-    </p><p>
-      In the combination, you must combine any sections entitled
-      "History" in the various original documents,
-      forming one section entitled "History"; likewise
-      combine any sections entitled "Acknowledgements",
-      and any sections entitled "Dedications".  You must
-      delete all sections entitled "Endorsements."
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section6"></a>6. COLLECTIONS OF DOCUMENTS</h2></div></div></div><p>
-      You may make a collection consisting of the <a class="link" 
href="#fdl-document">Document</a> and other documents
-      released under this License, and replace the individual copies
-      of this License in the various documents with a single copy that
-      is included in the collection, provided that you follow the
-      rules of this License for verbatim copying of each of the
-      documents in all other respects.
-    </p><p>
-      You may extract a single document from such a collection, and
-      distribute it individually under this License, provided you
-      insert a copy of this License into the extracted document, and
-      follow this License in all other respects regarding verbatim
-      copying of that document.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section7"></a>7. AGGREGATION WITH INDEPENDENT 
WORKS</h2></div></div></div><p>
-      A compilation of the <a class="link" href="#fdl-document">Document</a> 
or its derivatives with
-      other separate and independent documents or works, in or on a
-      volume of a storage or distribution medium, does not as a whole
-      count as a <a class="link" href="#fdl-modified">Modified Version</a>
-      of the Document, provided no compilation copyright is claimed
-      for the compilation.  Such a compilation is called an
-      "aggregate", and this License does not apply to the
-      other self-contained works thus compiled with the Document , on
-      account of their being thus compiled, if they are not themselves
-      derivative works of the Document.  If the <a class="link" 
href="#fdl-cover-texts">Cover Text</a> requirement of <a class="link" 
href="#fdl-section3" title="3. COPYING IN QUANTITY">section 3</a> is applicable 
to these
-      copies of the Document, then if the Document is less than one
-      quarter of the entire aggregate, the Document's Cover Texts may
-      be placed on covers that surround only the Document within the
-      aggregate. Otherwise they must appear on covers around the whole
-      aggregate.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section8"></a>8. TRANSLATION</h2></div></div></div><p>
-      Translation is considered a kind of modification, so you may
-      distribute translations of the <a class="link" 
href="#fdl-document">Document</a> under the terms of <a class="link" 
href="#fdl-section4" title="4. MODIFICATIONS">section 4</a>. Replacing <a 
class="link" href="#fdl-invariant"> Invariant Sections</a> with
-      translations requires special permission from their copyright
-      holders, but you may include translations of some or all
-      Invariant Sections in addition to the original versions of these
-      Invariant Sections. You may include a translation of this
-      License provided that you also include the original English
-      version of this License. In case of a disagreement between the
-      translation and the original English version of this License,
-      the original English version will prevail.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section9"></a>9. TERMINATION</h2></div></div></div><p>
-      You may not copy, modify, sublicense, or distribute the <a class="link" 
href="#fdl-document">Document</a> except as expressly
-      provided for under this License. Any other attempt to copy,
-      modify, sublicense or distribute the Document is void, and will
-      automatically terminate your rights under this License. However,
-      parties who have received copies, or rights, from you under this
-      License will not have their licenses terminated so long as such
-      parties remain in full compliance.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section10"></a>10. FUTURE REVISIONS OF THIS 
LICENSE</h2></div></div></div><p>
-      The <a class="ulink" href="http://www.gnu.org/fsf/fsf.html"; 
target="_top">Free Software
-      Foundation</a> may publish new, revised versions of the GNU
-      Free Documentation License from time to time. Such new versions
-      will be similar in spirit to the present version, but may differ
-      in detail to address new problems or concerns. See <a class="ulink" 
href="http://www.gnu.org/copyleft"; 
target="_top">http://www.gnu.org/copyleft/</a>.
-    </p><p>
-      Each version of the License is given a distinguishing version
-      number. If the <a class="link" href="#fdl-document">Document</a>
-      specifies that a particular numbered version of this License
-      "or any later version" applies to it, you have the
-      option of following the terms and conditions either of that
-      specified version or of any later version that has been
-      published (not as a draft) by the Free Software Foundation. If
-      the Document does not specify a version number of this License,
-      you may choose any version ever published (not as a draft) by
-      the Free Software Foundation.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-using"></a>Addendum</h2></div></div></div><p>
-      To use this License in a document you have written, include a copy of
-      the License in the document and put the following copyright and
-      license notices just after the title page:
-    </p><div class="blockquote"><blockquote class="blockquote"><p>
-       Copyright  YEAR YOUR NAME.
-      </p><p>
-       Permission is granted to copy, distribute and/or modify this
-       document under the terms of the GNU Free Documentation
-       License, Version 1.1 or any later version published by the
-       Free Software Foundation; with the <a class="link" 
href="#fdl-invariant">Invariant Sections</a> being LIST
-       THEIR TITLES, with the <a class="link" 
href="#fdl-cover-texts">Front-Cover Texts</a> being LIST,
-       and with the <a class="link" href="#fdl-cover-texts">Back-Cover
-       Texts</a> being LIST.  A copy of the license is included in
-       the section entitled "GNU Free Documentation
-       License".
-      </p></blockquote></div><p>
-      If you have no <a class="link" href="#fdl-invariant">Invariant
-      Sections</a>, write "with no Invariant Sections"
-      instead of saying which ones are invariant.  If you have no
-      <a class="link" href="#fdl-cover-texts">Front-Cover Texts</a>, write
-      "no Front-Cover Texts" instead of
-      "Front-Cover Texts being LIST"; likewise for <a class="link" 
href="#fdl-cover-texts">Back-Cover Texts</a>.
-    </p><p>
-      If your document contains nontrivial examples of program code,
-      we recommend releasing these examples in parallel under your
-      choice of free software license, such as the <a class="ulink" 
href="http://www.gnu.org/copyleft/gpl.html"; target="_top"> GNU General Public
-      License</a>, to permit their use in free software.
-    </p></div></div></div></body></html>

Index: packaging/doc/actionscript.info.in
===================================================================
RCS file: packaging/doc/actionscript.info.in
diff -N packaging/doc/actionscript.info.in
--- packaging/doc/actionscript.info.in  16 Feb 2008 17:51:05 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,866 +0,0 @@
-START-INFO-DIR-ENTRY
-This is actionscript.info, produced by makeinfo version 4.11 from 
actionscript.texi.
-
-* ActionScript Manual V0.2: (actionscript_manual_v0.2).
-                                                  [MISSING TEXT]
-END-INFO-DIR-ENTRY
-
-
-File: actionscript.info,  Node: Top,  Next: Introduction,  Up: (dir)
-
-ActionScript Manual V0.2
-************************
-
-* Menu:
-
-* Introduction::
-* Adding New ActionScript Class::
-* The as_value Object Type::
-* GNU Free Documentation License::
-
---- The Detailed Node Listing ---
-
-Introduction
-
-* Object Creation Overview::
-
-Adding New ActionScript Class
-
-* Prototype::
-* Declaration::
-* Instantiation::
-* Methods::
-* Dynamic Properties::
-
-The as_value Object Type
-
-* Data Types::
-* Determining the Type::
-* Fetching the Value::
-* Setting the Value and Type::
-* Further Reading::
-
-GNU Free Documentation License
-
-* 0. PREAMBLE: 0_ PREAMBLE.
-* 1. APPLICABILITY AND DEFINITIONS: 1_ APPLICABILITY AND DEFINITIONS.
-* 2. VERBATIM COPYING: 2_ VERBATIM COPYING.
-* 3. COPYING IN QUANTITY: 3_ COPYING IN QUANTITY.
-* 4. MODIFICATIONS: 4_ MODIFICATIONS.
-* 5. COMBINING DOCUMENTS: 5_ COMBINING DOCUMENTS.
-* 6. COLLECTIONS OF DOCUMENTS: 6_ COLLECTIONS OF DOCUMENTS.
-* 7. AGGREGATION WITH INDEPENDENT WORKS: 7_ AGGREGATION WITH INDEPENDENT WORKS.
-* 8. TRANSLATION: 8_ TRANSLATION.
-* 9. TERMINATION: 9_ TERMINATION.
-* 10. FUTURE REVISIONS OF THIS LICENSE: 10_ FUTURE REVISIONS OF THIS LICENSE.
-* Addendum::
-
-
-File: actionscript.info,  Node: Introduction,  Next: Adding New ActionScript 
Class,  Prev: Top,  Up: Top
-
-1 Introduction
-**************
-
-In this document, the term 'ActionScript class' refers to the C++ class
-which is instantiated by Gnash when some ActionScript code instantiates
-a corresponding class.  The C++ class stores instance data and
-implements the methods which are called on the object in the
-ActionScript code.
-
-* Menu:
-
-* Object Creation Overview::
-
-
-File: actionscript.info,  Node: Object Creation Overview,  Up: Introduction
-
-1.1 Object Creation Overview
-============================
-
-When Gnash starts, the _class_init()_ method for each ActionScript
-class (listed in Global.cpp) is called.  This method constructs a
-prototype, which is implemented as an _as_object_.  In addition, the
-method registers the constructor to be used for future object creation,
-and attaches methods and properties to the prototype.
-
-   When a new object is needed, instance data is added to the methods
-and properties inherited from the prototype.
-
-
-File: actionscript.info,  Node: Adding New ActionScript Class,  Next: The 
as_value Object Type,  Prev: Introduction,  Up: Top
-
-2 Adding New ActionScript Class
-*******************************
-
-Adding a new ActionScript class is relatively simple, but the process
-is complicated by the fact that the interface has evolved over time and
-the current code base represents several different formats.  This
-document describes the current interface.  The Boolean class should be
-considered the authoritative example of a modern ActionScript class.
-
-   ActionScript classes contain a header file and a C++ implementation.
-The name is usually the name of the class as it is called in the
-ActionScript specifications; for instance _Boolean.cpp_ for the Boolean
-class.
-
-   In the CVS source tree, there is a utility file named
-_gen-asclass.sh_ which can be used to create the header file and a C++
-source file stub for an ActionScript class.
-
-* Menu:
-
-* Prototype::
-* Declaration::
-* Instantiation::
-* Methods::
-* Dynamic Properties::
-
-
-File: actionscript.info,  Node: Prototype,  Next: Declaration,  Up: Adding New 
ActionScript Class
-
-2.1 Prototype
-=============
-
-In ActionScript, a prototype is a base object which contains all the
-methods that an instantiated object will contain.  In short, it
-contains every part of the class except for the portions dealing with
-the storage of instance data.
-
-   In Gnash, the prototype of an ActionScript object is implemented as
-an _as_object_.  At startup, the methods and properties of the
-ActionScript class are attached to the _as_object_.  The following
-example demonstrates how methods can be attached:
-
-
-                 static void
-                 attachBooleanInterface(as_object& o)
-                 {
-                     o.init_member("toString", new 
builtin_function(boolean_tostring));
-                     o.init_member("valueOf", new 
builtin_function(boolean_valueof));
-                 }
-
-This code was generated using _gen-asclass.sh_.  Typically, you will
-need to customize the attach method to include any new methods you add
-to the class.
-
-   Static properties can also be added to the ActionScript prototype
-(dynamic properties (*note Dynamic Properties::) are addressed later).
-They are attached in a similar way:
-
-
-           o.init_member("myProperty", as_value("HelloWorld"));
-
-   Properties which have been added in this manner can be directly
-accessed in ActionScript code without a function call, as this piece of
-ActionScript code compiled by Ming's _makeswf_ compiler demonstrates:
-
-
-             // Get the value of the myProperty property
-             if (node.myProperty == "HelloWorld") {
-                 trace("MATCHED");
-             }
-
-
-File: actionscript.info,  Node: Declaration,  Next: Instantiation,  Prev: 
Prototype,  Up: Adding New ActionScript Class
-
-2.2 Declaration
-===============
-
-A new class should derive from _as_object_, which is the base class of
-every ActionScript object in Gnash.  The class declaration will also be
-generated when you use _gen-asclass.sh_.
-
-
-File: actionscript.info,  Node: Instantiation,  Next: Methods,  Prev: 
Declaration,  Up: Adding New ActionScript Class
-
-2.3 Instantiation
-=================
-
-The class should contain an init method; this is included in the stub
-when _gen-asclass.sh_ is used.
-
-   The init method should be called in the constructor in _Global.cpp_,
-where all other ActionScript classes are similarly referenced.
-
-
-File: actionscript.info,  Node: Methods,  Next: Dynamic Properties,  Prev: 
Instantiation,  Up: Adding New ActionScript Class
-
-2.4 Methods
-===========
-
-Every method you implement and attach (*note Prototype::) will receive
-an _fn_call_ data structure as an argument when it is called.
-
-* Menu:
-
-* Accessing Arguments::
-* Returning a Value to ActionScript::
-* Additional fn_call Members::
-
-
-File: actionscript.info,  Node: Accessing Arguments,  Next: Returning a Value 
to ActionScript,  Up: Methods
-
-2.4.1 Accessing Arguments
--------------------------
-
-The arguments stored in _fn_call_ should be accessed using _arg()_.  For
-instance, the first element can be popped with _fn.arg(0)_.
-
-   The element popped off the stack is an _as_value_ object (*note The
-as_value Object Type::).
-
-
-File: actionscript.info,  Node: Returning a Value to ActionScript,  Next: 
Additional fn_call Members,  Prev: Accessing Arguments,  Up: Methods
-
-2.4.2 Returning a Value to ActionScript
----------------------------------------
-
-The return value should be an _as_value_ object (*note The as_value
-Object Type::).  For example:
-
-
-                   return as_value('Goodbye, cruel world.');
-
-
-File: actionscript.info,  Node: Additional fn_call Members,  Prev: Returning a 
Value to ActionScript,  Up: Methods
-
-2.4.3 Additional fn_call Members
---------------------------------
-
-There are two other useful members of the _fn_call_ structure, namely
-_this_ptr_ and _nargs_.  The former points to the class which is
-invoking this method, while the latter is a count of the number of
-arguments in the stack (*note Accessing Arguments::).
-
-   You may also see instances of the _env_ pointer being used.   This
-is being deprecated.  Instances which could be replaced with _arg()_
-(*note Accessing Arguments::) are already deprecated; other uses will
-be deprecated in the near future.
-
-   Beyond the _arg() (*note Accessing Arguments::)_ method, there is
-one method of note.  _dump_args()_ can be used in debugging to output
-the entire argument stack.
-
-
-File: actionscript.info,  Node: Dynamic Properties,  Prev: Methods,  Up: 
Adding New ActionScript Class
-
-2.5 Dynamic Properties
-======================
-
-This section describes accessors to dynamic properties.  Read-only
-properties are described in the prototype (*note Prototype::) section.
-
-   Dynamic properties are not created by the _gen-asclass.sh_ script.
-Accessors should be written as a single get/set method.  Previously
-this was done by overriding _get_member()_ and _set_member()_, but this
-practice is deprecated.
-
-   The accessor is written so that it sets the property if it is called
-with an argument, and puts the property in the _fn_call_ (*note
-Methods::) result pointer (*note Returning a Value to ActionScript::).
-For instance:
-
-
-                 void
-                 MyClass::myProperty_getset(const fn_call& fn)
-                 {
-
-                     boost::intrusive_ptr<MyClass> ptr = 
ensureType<MyClass>(fn.this_ptr);
-
-                     // setter
-                     if ( fn.nargs > 0 )
-                     {
-                         bool h = fn.arg(0).to_bool();
-                         ptr->MyMethod(h);
-                         return;
-                     }
-
-                     // getter
-                     bool h = ptr->MyMethod();
-                     fn.result->set_bool(h);
-                 }
-
-   It has not yet been decided whether properties should be set in the
-exported interface (*note Prototype::) or attached to instances of the
-class.  A property is attached in the following manner:
-
-
-                 boost::intrusive_ptr<builtin_function> gettersetter;
-                 gettersetter = new 
builtin_function(&MyClass::myProperty_getset, NULL);
-                 o.init_property("myProperty", *gettersetter, *gettersetter);
-
-
-File: actionscript.info,  Node: The as_value Object Type,  Next: GNU Free 
Documentation License,  Prev: Adding New ActionScript Class,  Up: Top
-
-3 The as_value Object Type
-**************************
-
-The _as_value_ class is used throughout the interpreter to create
-generic objects to hold data.
-
-* Menu:
-
-* Data Types::
-* Determining the Type::
-* Fetching the Value::
-* Setting the Value and Type::
-* Further Reading::
-
-
-File: actionscript.info,  Node: Data Types,  Next: Determining the Type,  Up: 
The as_value Object Type
-
-3.1 Data Types
-==============
-
-The following data types are supported: _NULLTYPE_, _BOOLEAN_, _STRING_,
-_NUMBER_, _OBJECT_, _AS_FUNCTION_, and _MOVIECLIP_ (sprite).  The type
-_C_FUNCTION_ is being deprecated.
-
-
-File: actionscript.info,  Node: Determining the Type,  Next: Fetching the 
Value,  Prev: Data Types,  Up: The as_value Object Type
-
-3.2 Determining the Type
-========================
-
-Several methods allow you to determine if a value stored in _as_value_
-is of a specific type.  These follow the form of _is_TYPE_, for example
-_is_as_function()_ and _is_number()_.  In general, the type names match
-the data types (*note Data Types::) listed above, with the exception of
-the type _MOVIECLIP_ which has a method _is_sprite()_.
-
-
-File: actionscript.info,  Node: Fetching the Value,  Next: Setting the Value 
and Type,  Prev: Determining the Type,  Up: The as_value Object Type
-
-3.3 Fetching the Value
-======================
-
-Another set of methods will return a representation of the value as a
-particular type.  They follow the _to_TYPE_ naming convention.  Examples
-are _to_number()_ and _to_bool()_.  The type names are as listed (*note
-Data Types::) earlier, except for _MOVIECLIP_, which uses _to_sprite()_.
-
-
-File: actionscript.info,  Node: Setting the Value and Type,  Next: Further 
Reading,  Prev: Fetching the Value,  Up: The as_value Object Type
-
-3.4 Setting the Value and Type
-==============================
-
-Finally, there is the _set_TYPE_ series of methods.  They change the
-type to the type specified in the method name, and set the value to the
-one given as an argument.  It is also possible to accomplish the same
-thing with the _=_ operator.  Again, type names match those named
-earlier (*note Data Types::), except in the case of _MOVIECLASS_.  Its
-method is called _set_sprite()_.
-
-
-File: actionscript.info,  Node: Further Reading,  Prev: Setting the Value and 
Type,  Up: The as_value Object Type
-
-3.5 Further Reading
-===================
-
-Please refer to _as_value.h_ or the Doxygen documentation (see
-'Processing The Documentation' in the Gnash manual for instructions on
-generating documents with Doxygen) for more information about which
-methods are available for the _as_value_ object.
-
-
-File: actionscript.info,  Node: GNU Free Documentation License,  Prev: The 
as_value Object Type,  Up: Top
-
-Appendix A GNU Free Documentation License
-*****************************************
-
-* Menu:
-
-* 0. PREAMBLE: 0_ PREAMBLE.
-* 1. APPLICABILITY AND DEFINITIONS: 1_ APPLICABILITY AND DEFINITIONS.
-* 2. VERBATIM COPYING: 2_ VERBATIM COPYING.
-* 3. COPYING IN QUANTITY: 3_ COPYING IN QUANTITY.
-* 4. MODIFICATIONS: 4_ MODIFICATIONS.
-* 5. COMBINING DOCUMENTS: 5_ COMBINING DOCUMENTS.
-* 6. COLLECTIONS OF DOCUMENTS: 6_ COLLECTIONS OF DOCUMENTS.
-* 7. AGGREGATION WITH INDEPENDENT WORKS: 7_ AGGREGATION WITH INDEPENDENT WORKS.
-* 8. TRANSLATION: 8_ TRANSLATION.
-* 9. TERMINATION: 9_ TERMINATION.
-* 10. FUTURE REVISIONS OF THIS LICENSE: 10_ FUTURE REVISIONS OF THIS LICENSE.
-* Addendum::
-
-
-File: actionscript.info,  Node: 0_ PREAMBLE,  Next: 1_ APPLICABILITY AND 
DEFINITIONS,  Up: GNU Free Documentation License
-
-A.1 0. PREAMBLE
-===============
-
-The purpose of this License is to make a manual, textbook, or other
-written document "free" in the sense of freedom: to assure everyone the
-effective freedom to copy and redistribute it, with or without
-modifying it, either commercially or non-commercially. Secondarily,
-this License preserves for the author and publisher a way to get credit
-for their work, while not being considered responsible for
-modifications made by others.
-
-   This License is a kind of "copyleft", which means that derivative
-works of the document must themselves be free in the same sense. It
-complements the GNU General Public License, which is a copyleft license
-designed for free software.
-
-   We have designed this License in order to use it for manuals for
-free software, because free software needs free documentation: a free
-program should come with manuals providing the same freedoms that the
-software does. But this License is not limited to software manuals; it
-can be used for any textual work, regardless of subject matter or
-whether it is published as a printed book. We recommend this License
-principally for works whose purpose is instruction or reference.
-
-
-File: actionscript.info,  Node: 1_ APPLICABILITY AND DEFINITIONS,  Next: 2_ 
VERBATIM COPYING,  Prev: 0_ PREAMBLE,  Up: GNU Free Documentation License
-
-A.2 1. APPLICABILITY AND DEFINITIONS
-====================================
-
-This License applies to any manual or other work that contains a notice
-placed by the copyright holder saying it can be distributed under the
-terms of this License. The "Document", below, refers to any such manual
-or work. Any member of the public is a licensee, and is addressed as
-"you".
-
-   A "Modified Version" of the Document means any work containing the
-Document or a portion of it, either copied verbatim, or with
-modifications and/or translated into another language.
-
-   A "Secondary Section" is a named appendix or a front-matter section
-of the Document (*note fdl-document::) that deals exclusively with the
-relationship of the publishers or authors of the Document to the
-Document's overall subject (or to related matters) and contains nothing
-that could fall directly within that overall subject. (For example, if
-the Document is in part a textbook of mathematics, a Secondary Section
-may not explain any mathematics.)  The relationship could be a matter
-of historical connection with the subject or with related matters, or of
-legal, commercial, philosophical, ethical or political position
-regarding them.
-
-   The "Invariant Sections" are certain  Secondary Sections (*note
-fdl-secondary::) whose titles are designated, as being those of
-Invariant Sections, in the notice that says that the Document (*note
-fdl-document::) is released under this License.
-
-   The "Cover Texts" are certain short passages of text that are
-listed, as Front-Cover Texts or Back-Cover Texts, in the notice that
-says that the Document (*note fdl-document::) is released under this
-License.
-
-   A "Transparent" copy of the  Document (*note fdl-document::) means a
-machine-readable copy, represented in a format whose specification is
-available to the general public, whose contents can be viewed and edited
-directly and straightforwardly with generic text editors or (for images
-composed of pixels) generic paint programs or (for drawings) some
-widely available drawing editor, and that is suitable for input to text
-formatters or for automatic translation to a variety of formats
-suitable for input to text formatters. A copy made in an otherwise
-Transparent file format whose markup has been designed to thwart or
-discourage subsequent modification by readers is not Transparent.  A
-copy that is not "Transparent" is called "Opaque".
-
-   Examples of suitable formats for Transparent copies include plain
-ASCII without markup, Texinfo input format, LaTeX input format, SGML or
-XML using a publicly available DTD, and standard-conforming simple HTML
-designed for human modification. Opaque formats include PostScript, PDF,
-proprietary formats that can be read and edited only by proprietary
-word processors, SGML or XML for which the DTD and/or processing tools
-are not generally available, and the machine-generated HTML produced by
-some word processors for output purposes only.
-
-   The "Title Page" means, for a printed book, the title page itself,
-plus such following pages as are needed to hold, legibly, the material
-this License requires to appear in the title page. For works in formats
-which do not have any title page as such, "Title Page" means the text
-near the most prominent appearance of the work's title, preceding the
-beginning of the body of the text.
-
-
-File: actionscript.info,  Node: 2_ VERBATIM COPYING,  Next: 3_ COPYING IN 
QUANTITY,  Prev: 1_ APPLICABILITY AND DEFINITIONS,  Up: GNU Free Documentation 
License
-
-A.3 2. VERBATIM COPYING
-=======================
-
-You may copy and distribute the Document (*note fdl-document::) in any
-medium, either commercially or noncommercially, provided that this
-License, the copyright notices, and the license notice saying this
-License applies to the Document are reproduced in all copies, and that
-you add no other conditions whatsoever to those of this License. You
-may not use technical measures to obstruct or control the reading or
-further copying of the copies you make or distribute. However, you may
-accept compensation in exchange for copies. If you distribute a large
-enough number of copies you must also follow the conditions in section
-3 (*note 3_ COPYING IN QUANTITY::).
-
-   You may also lend copies, under the same conditions stated above,
-and you may publicly display copies.
-
-
-File: actionscript.info,  Node: 3_ COPYING IN QUANTITY,  Next: 4_ 
MODIFICATIONS,  Prev: 2_ VERBATIM COPYING,  Up: GNU Free Documentation License
-
-A.4 3. COPYING IN QUANTITY
-==========================
-
-If you publish printed copies of the Document (*note fdl-document::)
-numbering more than 100, and the Document's license notice requires
-Cover Texts (*note fdl-cover-texts::), you must enclose the copies in
-covers that carry, clearly and legibly, all these Cover Texts:
-Front-Cover Texts on the front cover, and Back-Cover Texts on the back
-cover. Both covers must also clearly and legibly identify you as the
-publisher of these copies. The front cover must present the full title
-with all words of the title equally prominent and visible. You may add
-other material on the covers in addition. Copying with changes limited
-to the covers, as long as they preserve the title of the Document
-(*note fdl-document::) and satisfy these conditions, can be treated as
-verbatim copying in other respects.
-
-   If the required texts for either cover are too voluminous to fit
-legibly, you should put the first ones listed (as many as fit
-reasonably) on the actual cover, and continue the rest onto adjacent
-pages.
-
-   If you publish or distribute Opaque (*note fdl-transparent::) copies
-of the Document (*note fdl-document::) numbering more than 100, you
-must either include a machine-readable Transparent (*note
-fdl-transparent::) copy along with each Opaque copy, or state in or
-with each Opaque copy a publicly-accessible computer-network location
-containing a complete Transparent copy of the Document, free of added
-material, which the general network-using public has access to download
-anonymously at no charge using public-standard network protocols. If
-you use the latter option, you must take reasonably prudent steps, when
-you begin distribution of Opaque copies in quantity, to ensure that
-this Transparent copy will remain thus accessible at the stated
-location until at least one year after the last time you distribute an
-Opaque copy (directly or through your agents or retailers) of that
-edition to the public.
-
-   It is requested, but not required, that you contact the authors of
-the Document (*note fdl-document::) well before redistributing any
-large number of copies, to give them a chance to provide you with an
-updated version of the Document.
-
-
-File: actionscript.info,  Node: 4_ MODIFICATIONS,  Next: 5_ COMBINING 
DOCUMENTS,  Prev: 3_ COPYING IN QUANTITY,  Up: GNU Free Documentation License
-
-A.5 4. MODIFICATIONS
-====================
-
-You may copy and distribute a Modified Version (*note fdl-modified::)
-of the Document (*note fdl-document::) under the conditions of sections
-2 (*note 2_ VERBATIM COPYING::) and 3 (*note 3_ COPYING IN QUANTITY::)
-above, provided that you release the Modified Version under precisely
-this License, with the Modified Version filling the role of the
-Document, thus licensing distribution and modification of the Modified
-Version to whoever possesses a copy of it. In addition, you must do
-these things in the Modified Version:
-
-   * *A. * Use in the Title Page (*note fdl-title-page::) (and on the
-     covers, if any) a title distinct from that of the Document (*note
-     fdl-document::), and from those of previous versions (which
-     should, if there were any, be listed in the History section of the
-     Document). You may use the same title as a previous version if the
-     original publisher of that version gives permission.
-
-   * *B. * List on the Title Page (*note fdl-title-page::), as authors,
-     one or more persons or entities responsible for authorship of the
-     modifications in the Modified Version (*note fdl-modified::),
-     together with at least five of the principal authors of the
-     Document (*note fdl-document::) (all of its principal authors, if
-     it has less than five).
-
-   * *C. * State on the Title Page (*note fdl-title-page::) the name of
-     the publisher of the Modified Version (*note fdl-modified::), as
-     the publisher.
-
-   * *D. * Preserve all the copyright notices of the Document (*note
-     fdl-document::).
-
-   * *E. * Add an appropriate copyright notice for your modifications
-     adjacent to the other copyright notices.
-
-   * *F. * Include, immediately after the copyright notices, a license
-     notice giving the public permission to use the Modified Version
-     (*note fdl-modified::) under the terms of this License, in the
-     form shown in the Addendum below.
-
-   * *G. * Preserve in that license notice the full lists of  Invariant
-     Sections (*note fdl-invariant::) and required Cover Texts (*note
-     fdl-cover-texts::) given in the Document's (*note fdl-document::)
-     license notice.
-
-   * *H. * Include an unaltered copy of this License.
-
-   * *I. * Preserve the section entitled "History", and its title, and
-     add to it an item stating at least the title, year, new authors,
-     and publisher of the Modified Version  (*note fdl-modified::)as
-     given on the Title Page (*note fdl-title-page::).  If there is no
-     section entitled "History" in the Document (*note fdl-document::),
-     create one stating the title, year, authors, and publisher of the
-     Document as given on its Title Page, then add an item describing
-     the Modified Version as stated in the previous sentence.
-
-   * *J. * Preserve the network location, if any, given in the Document
-     (*note fdl-document::) for public access to a Transparent (*note
-     fdl-transparent::) copy of the Document, and likewise the network
-     locations given in the Document for previous versions it was based
-     on. These may be placed in the "History" section.  You may omit a
-     network location for a work that was published at least four years
-     before the Document itself, or if the original publisher of the
-     version it refers to gives permission.
-
-   * *K. * In any section entitled "Acknowledgements" or "Dedications",
-     preserve the section's title, and preserve in the section all the
-     substance and tone of each of the contributor acknowledgements
-     and/or dedications given therein.
-
-   * *L. * Preserve all the Invariant Sections (*note fdl-invariant::)
-     of the Document (*note fdl-document::), unaltered in their text
-     and in their titles.  Section numbers or the equivalent are not
-     considered part of the section titles.
-
-   * *M. * Delete any section entitled "Endorsements". Such a section
-     may not be included in the Modified Version (*note fdl-modified::).
-
-   * *N. * Do not retitle any existing section as "Endorsements" or to
-     conflict in title with any Invariant Section (*note
-     fdl-invariant::).
-
-   If the Modified Version (*note fdl-modified::) includes new
-front-matter sections or appendices that qualify as Secondary Sections
-(*note fdl-secondary::) and contain no material copied from the
-Document, you may at your option designate some or all of these
-sections as invariant. To do this, add their titles to the list of
-Invariant Sections (*note fdl-invariant::) in the Modified Version's
-license notice.  These titles must be distinct from any other section
-titles.
-
-   You may add a section entitled "Endorsements", provided it contains
-nothing but endorsements of your Modified Version (*note
-fdl-modified::) by various parties-for example, statements of peer
-review or that the text has been approved by an organization as the
-authoritative definition of a standard.
-
-   You may add a passage of up to five words as a Front-Cover Text
-(*note fdl-cover-texts::), and a passage of up to 25 words as a
-Back-Cover Text (*note fdl-cover-texts::), to the end of the list of
-Cover Texts (*note fdl-cover-texts::) in the Modified Version (*note
-fdl-modified::).  Only one passage of Front-Cover Text and one of
-Back-Cover Text may be added by (or through arrangements made by) any
-one entity. If the Document (*note fdl-document::) already includes a
-cover text for the same cover, previously added by you or by
-arrangement made by the same entity you are acting on behalf of, you
-may not add another; but you may replace the old one, on explicit
-permission from the previous publisher that added the old one.
-
-   The author(s) and publisher(s) of the Document (*note
-fdl-document::) do not by this License give permission to use their
-names for publicity for or to assert or imply endorsement of any
-Modified Version  (*note fdl-modified::).
-
-
-File: actionscript.info,  Node: 5_ COMBINING DOCUMENTS,  Next: 6_ COLLECTIONS 
OF DOCUMENTS,  Prev: 4_ MODIFICATIONS,  Up: GNU Free Documentation License
-
-A.6 5. COMBINING DOCUMENTS
-==========================
-
-You may combine the Document (*note fdl-document::) with other
-documents released under this License, under the terms defined in
-section 4 (*note 4_ MODIFICATIONS::) above for modified versions,
-provided that you include in the combination all of the Invariant
-Sections (*note fdl-invariant::) of all of the original documents,
-unmodified, and list them all as Invariant Sections of your combined
-work in its license notice.
-
-   The combined work need only contain one copy of this License, and
-multiple identical Invariant Sections (*note fdl-invariant::) may be
-replaced with a single copy. If there are multiple Invariant Sections
-with the same name but different contents, make the title of each such
-section unique by adding at the end of it, in parentheses, the name of
-the original author or publisher of that section if known, or else a
-unique number. Make the same adjustment to the section titles in the
-list of Invariant Sections in the license notice of the combined work.
-
-   In the combination, you must combine any sections entitled "History"
-in the various original documents, forming one section entitled
-"History"; likewise combine any sections entitled "Acknowledgements",
-and any sections entitled "Dedications".  You must delete all sections
-entitled "Endorsements."
-
-
-File: actionscript.info,  Node: 6_ COLLECTIONS OF DOCUMENTS,  Next: 7_ 
AGGREGATION WITH INDEPENDENT WORKS,  Prev: 5_ COMBINING DOCUMENTS,  Up: GNU 
Free Documentation License
-
-A.7 6. COLLECTIONS OF DOCUMENTS
-===============================
-
-You may make a collection consisting of the Document (*note
-fdl-document::) and other documents released under this License, and
-replace the individual copies of this License in the various documents
-with a single copy that is included in the collection, provided that
-you follow the rules of this License for verbatim copying of each of the
-documents in all other respects.
-
-   You may extract a single document from such a collection, and
-distribute it individually under this License, provided you insert a
-copy of this License into the extracted document, and follow this
-License in all other respects regarding verbatim copying of that
-document.
-
-
-File: actionscript.info,  Node: 7_ AGGREGATION WITH INDEPENDENT WORKS,  Next: 
8_ TRANSLATION,  Prev: 6_ COLLECTIONS OF DOCUMENTS,  Up: GNU Free Documentation 
License
-
-A.8 7. AGGREGATION WITH INDEPENDENT WORKS
-=========================================
-
-A compilation of the Document (*note fdl-document::) or its derivatives
-with other separate and independent documents or works, in or on a
-volume of a storage or distribution medium, does not as a whole count
-as a Modified Version (*note fdl-modified::) of the Document, provided
-no compilation copyright is claimed for the compilation.  Such a
-compilation is called an "aggregate", and this License does not apply
-to the other self-contained works thus compiled with the Document , on
-account of their being thus compiled, if they are not themselves
-derivative works of the Document.  If the Cover Text (*note
-fdl-cover-texts::) requirement of section 3 (*note 3_ COPYING IN
-QUANTITY::) is applicable to these copies of the Document, then if the
-Document is less than one quarter of the entire aggregate, the
-Document's Cover Texts may be placed on covers that surround only the
-Document within the aggregate. Otherwise they must appear on covers
-around the whole aggregate.
-
-
-File: actionscript.info,  Node: 8_ TRANSLATION,  Next: 9_ TERMINATION,  Prev: 
7_ AGGREGATION WITH INDEPENDENT WORKS,  Up: GNU Free Documentation License
-
-A.9 8. TRANSLATION
-==================
-
-Translation is considered a kind of modification, so you may distribute
-translations of the Document (*note fdl-document::) under the terms of
-section 4 (*note 4_ MODIFICATIONS::). Replacing  Invariant Sections
-(*note fdl-invariant::) with translations requires special permission
-from their copyright holders, but you may include translations of some
-or all Invariant Sections in addition to the original versions of these
-Invariant Sections. You may include a translation of this License
-provided that you also include the original English version of this
-License. In case of a disagreement between the translation and the
-original English version of this License, the original English version
-will prevail.
-
-
-File: actionscript.info,  Node: 9_ TERMINATION,  Next: 10_ FUTURE REVISIONS OF 
THIS LICENSE,  Prev: 8_ TRANSLATION,  Up: GNU Free Documentation License
-
-A.10 9. TERMINATION
-===================
-
-You may not copy, modify, sublicense, or distribute the Document (*note
-fdl-document::) except as expressly provided for under this License.
-Any other attempt to copy, modify, sublicense or distribute the
-Document is void, and will automatically terminate your rights under
-this License. However, parties who have received copies, or rights,
-from you under this License will not have their licenses terminated so
-long as such parties remain in full compliance.
-
-
-File: actionscript.info,  Node: 10_ FUTURE REVISIONS OF THIS LICENSE,  Next: 
Addendum,  Prev: 9_ TERMINATION,  Up: GNU Free Documentation License
-
-A.11 10. FUTURE REVISIONS OF THIS LICENSE
-=========================================
-
-The Free Software Foundation (http://www.gnu.org/fsf/fsf.html) may
-publish new, revised versions of the GNU Free Documentation License
-from time to time. Such new versions will be similar in spirit to the
-present version, but may differ in detail to address new problems or
-concerns. See http://www.gnu.org/copyleft/
-(http://www.gnu.org/copyleft).
-
-   Each version of the License is given a distinguishing version
-number. If the Document (*note fdl-document::) specifies that a
-particular numbered version of this License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that specified version or of any later version
-that has been published (not as a draft) by the Free Software
-Foundation. If the Document does not specify a version number of this
-License, you may choose any version ever published (not as a draft) by
-the Free Software Foundation.
-
-
-File: actionscript.info,  Node: Addendum,  Prev: 10_ FUTURE REVISIONS OF THIS 
LICENSE,  Up: GNU Free Documentation License
-
-A.12 Addendum
-=============
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and license
-notices just after the title page:
-
-     Copyright  YEAR YOUR NAME.
-
-     Permission is granted to copy, distribute and/or modify this
-     document under the terms of the GNU Free Documentation License,
-     Version 1.1 or any later version published by the Free Software
-     Foundation; with the Invariant Sections (*note fdl-invariant::)
-     being LIST THEIR TITLES, with the Front-Cover Texts (*note
-     fdl-cover-texts::) being LIST, and with the Back-Cover Texts
-     (*note fdl-cover-texts::) being LIST.  A copy of the license is
-     included in the section entitled "GNU Free Documentation License".
-
-   If you have no Invariant Sections (*note fdl-invariant::), write
-"with no Invariant Sections" instead of saying which ones are
-invariant.  If you have no Front-Cover Texts (*note fdl-cover-texts::),
-write "no Front-Cover Texts" instead of "Front-Cover Texts being LIST";
-likewise for Back-Cover Texts (*note fdl-cover-texts::).
-
-   If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License
-(http://www.gnu.org/copyleft/gpl.html), to permit their use in free
-software.
-
-
-
-Tag Table:
-Node: Top248
-Node: Introduction1443
-Node: Object Creation Overview1909
-Node: Adding New ActionScript Class2492
-Node: Prototype3518
-Node: Declaration5195
-Node: Instantiation5536
-Node: Methods5932
-Node: Accessing Arguments6322
-Node: Returning a Value to ActionScript6717
-Node: Additional fn_call Members7106
-Node: Dynamic Properties7959
-Node: The as_value Object Type9737
-Node: Data Types10160
-Node: Determining the Type10476
-Node: Fetching the Value11003
-Node: Setting the Value and Type11488
-Node: Further Reading12077
-Node: GNU Free Documentation License12487
-Node: 0_ PREAMBLE13270
-Node: 1_ APPLICABILITY AND DEFINITIONS14579
-Ref: fdl-document14807
-Ref: fdl-modified15098
-Ref: fdl-secondary15285
-Ref: fdl-invariant15930
-Ref: fdl-cover-texts16179
-Ref: fdl-transparent16392
-Ref: fdl-title-page17682
-Node: 2_ VERBATIM COPYING18071
-Node: 3_ COPYING IN QUANTITY19054
-Node: 4_ MODIFICATIONS21414
-Node: 5_ COMBINING DOCUMENTS27477
-Node: 6_ COLLECTIONS OF DOCUMENTS28977
-Node: 7_ AGGREGATION WITH INDEPENDENT WORKS29871
-Node: 8_ TRANSLATION31102
-Node: 9_ TERMINATION32008
-Node: 10_ FUTURE REVISIONS OF THIS LICENSE32666
-Node: Addendum33809
-
-End Tag Table
-
-
-Local Variables:
-coding: US-ASCII
-End:

Index: packaging/doc/cygnal.1.in
===================================================================
RCS file: packaging/doc/cygnal.1.in
diff -N packaging/doc/cygnal.1.in
--- packaging/doc/cygnal.1.in   19 Feb 2008 16:18:47 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,34 +0,0 @@
-.\" -*- coding: us-ascii -*-
-.if \n(.g .ds T< \\FC
-.if \n(.g .ds T> \\F[\n[.fam]]
-.de URL
-\\$2 \(la\\$1\(ra\\$3
-..
-.if \n(.g .mso www.tmac
-.TH cygnal 1 "19 February 2008"  
-.SH NAME
-cygnal \- Cygnal
-.SH Synopsis
-.nf
-
-cygnal (options)...
-.fi
-.SH DESCRIPTION
-Cygnal is a multimedia media server for streaming audio, video, and
-video conferencing. Cygnal supports several protocols used by SWF
-file players, including RTMP, RTMPTS, and RTMPT, while encouring the
-use of patent free codecs.
-.TP 
-(-h) --help
-Print usage info.
-.TP 
---version
-Print version information.
-.TP 
-(-v) --verbose
-Verbose output.
-.TP 
-(-p) --port-offset
-Port offset. This number gets added to the default
-ports for RTMPS and RTMPS. This is only used by
-developers. 

Index: packaging/doc/dumpshm.1.in
===================================================================
RCS file: packaging/doc/dumpshm.1.in
diff -N packaging/doc/dumpshm.1.in
--- packaging/doc/dumpshm.1.in  16 Feb 2008 17:51:06 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,35 +0,0 @@
-.\" -*- coding: us-ascii -*-
-.if \n(.g .ds T< \\FC
-.if \n(.g .ds T> \\F[\n[.fam]]
-.de URL
-\\$2 \(la\\$1\(ra\\$3
-..
-.if \n(.g .mso www.tmac
-.TH dumpshm 1 "13 February 2008"  
-.SH NAME
-dumpshm \- Gnash LocalConnection memory Dumper
-.SH Synopsis
-.nf
-
-dumpshm (options)... (file)...
-.fi
-.SH DESCRIPTION
-Dump information about the shared memory segment used by the
-LocalConnection ActionScript class. This memory segment is comprised
-of a header, and a collection of SWF AMF Objects, normally not
-viewable by the user.
-.TP 
--h
-Print usage info.
-.TP 
--i
-Find the key for an existing memory segment.
-.TP 
--r
-Dump memory segment to the terminal.
-.TP 
--c
-Dump memory segment to a disk file, segment.raw.
-.TP 
--v
-Verbose output.

Index: packaging/doc/gnash.1.in
===================================================================
RCS file: packaging/doc/gnash.1.in
diff -N packaging/doc/gnash.1.in
--- packaging/doc/gnash.1.in    16 Feb 2008 17:51:06 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,135 +0,0 @@
-.\" -*- coding: us-ascii -*-
-.if \n(.g .ds T< \\FC
-.if \n(.g .ds T> \\F[\n[.fam]]
-.de URL
-\\$2 \(la\\$1\(ra\\$3
-..
-.if \n(.g .mso www.tmac
-.TH gnash 1 "13 February 2008"  
-.SH NAME
-gnash \- GNU Flash (SWF) Player
-.SH Synopsis
-.nf
-
-gnash (options)... (file)...
-.fi
-.SH DESCRIPTION
-Run the SWF movie player.
-.TP 
--h
-Print usage info.
-.TP 
--s factor
-Scale the movie up/down by the specified factor.
-.TP 
--c
-Produce a core file instead of letting SDL trap it.
-.TP 
--d num
-Number of milliseconds to delay in main loop.
-.TP 
--a
-Enable ActionScript debugging.
-.TP 
--x
-The XID of the parent window Gnash should use instead of
-creating a new one.
-.TP 
--j
-Set the width of the window. This is only used when embedding
-the player into another window.
-.TP 
--k
-Set the height of the window. This is only used when embedding
-the player into another window.
-.TP 
--v
-Be verbose; i.e. print log messages to stdout.
-.TP 
--va
-Be verbose about movie Actions.
-.TP 
--vp
-Be verbose about parsing the movie.
-.TP 
--ml bias
-Specify the texture LOD bias (float, default is -1).
-.TP 
--p
-Run full speed (no sleep) and log frame rate.
-.TP 
--g
-Start Gnash with a Flash debugger console so one can set
-break points or watchpoints.
-.TP 
--w
-Write the gnash-dbg.log debug log to disk. By default the
-plugin writes its log in your home directory when using a
-launcher from GNOME or KDE.
-.TP 
--1
-Play once; exit when/if movie reaches the last frame.
-.TP 
--r [0|1|2]
-0 disables rendering and sound (good for batch tests).
-
-1 enables rendering and sound (default setting).
-
-2 enables rendering and disables sound.
-.TP 
--t sec
-Timeout and exit after the specified number of seconds.
-.TP 
--u
-Set "real" url of the movie (useful for downloaded movies).
-.TP 
--U
-Set "base" url for this run (used to resolve relative urls,
-defaults to movie url)
-.TP 
--P
-Set parameter (ie. "FlashVars=A=1&b=2")
-.TP 
--F
-Set filedescriptor to use for external communications.
-.TP 
---version
-Print the version number, and the configuration of the
-Gnash player. Please use this info when submitting bug
-reports.
-.SS KEYS
-.TP 
-CTRL-Q
-Quit/Exit.
-.TP 
-CTRL-W
-Quit/Exit.
-.TP 
-ESC
-Quit/Exit.
-.TP 
-CTRL-P
-Toggle Pause.
-.TP 
-CTRL-R 
-Restart the movie.
-.TP 
-CTRL-[ or kp-
-Step back one frame.
-.TP 
-CTRL-] or kp+
-Step forward one frame.
-.TP 
-CTRL-T
-Debug. Test the set_variable() function.
-.TP 
-CTRL-G
-Debug. Test the get_variable() function.
-.TP 
-CTRL-M
-Debug. Test the call_method() function.
-.TP 
-CTRL-B
-Toggle background color.
-.PP
-Flash is Trademarked by Adobe Corporation.

Index: packaging/doc/gnash.html.in
===================================================================
RCS file: packaging/doc/gnash.html.in
diff -N packaging/doc/gnash.html.in
--- packaging/doc/gnash.html.in 16 Feb 2008 17:51:06 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,2444 +0,0 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=ISO-8859-1"><title>Gnash Developer's Guide version 0.4.3</title><meta 
name="generator" content="DocBook XSL Stylesheets V1.73.2"></head><body 
bgcolor="white" text="black" link="#0000FF" vlink="#840084" 
alink="#0000FF"><div class="book" lang="en"><div 
class="titlepage"><div><div><h1 class="title"><a name="index"></a><span 
class="application">Gnash</span> Developer's Guide version 
0.4.3</h1></div><div><div class="authorgroup"><div class="author"><h3 
class="author"><span class="firstname">Rob</span> <span 
class="surname">Savoye</span></h3><div class="affiliation"><div 
class="address"><p><br>
-                 <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code><br>
-             </p></div></div></div></div></div><div><p class="releaseinfo">
-        This manual describes version 0.8.2 of Gnash.
-    </p></div><div><p class="copyright">Copyright © 2005, 2006, 2007, 2008 
Free Software Foundation</p></div><div><div class="legalnotice"><a 
name="legalnotice"></a><p>
-    Permission is granted to copy, distribute and/or modify this document
-    under the terms of the <a class="link" href="#fdl" title="Appendix A. GNU 
Free Documentation License"><em class="citetitle">GNU
-    Free Documentation License</em></a>, Version 1.1 or any later
-    version published by the Free Software Foundation with no Invariant
-    Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find
-    a copy of the GFDL at this 
-    <a class="link" href="#fdl" title="Appendix A. GNU Free Documentation 
License">link</a> or in the file COPYING-DOCS
-    distributed with this manual.
-   </p></div></div><div><div class="revhistory"><table border="1" width="100%" 
summary="Revision history"><tr><th align="left" valign="top" 
colspan="2"><b>Revision History</b></th></tr><tr><td align="left">Revision 
Gnash Manual version 0.3.0</td><td align="left">Oct 2006</td></tr><tr><td 
align="left" colspan="2"> 
-              <p class="author">Rob Savoye
-              <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>
-              Updated for the alpha release.
-              </p>
-
-              <p class="publisher">Free Software Foundation</p>
-          </td></tr><tr><td align="left">Revision Gnash Manual version 
0.4.0</td><td align="left">June 2007</td></tr><tr><td align="left" colspan="2">
-              <p class="author">Ann Barcomb
-              <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>
-              Rewritten for software version 0.8.0.
-              </p>
-
-              <p class="publisher">Free Software Foundation</p>
-          </td></tr><tr><td align="left">Revision Gnash Manual version 
0.4.1</td><td align="left">Feb 2008</td></tr><tr><td align="left" colspan="2"> 
-              <p class="author">Rob Savoye
-              <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>
-              Updated for the 0.8.2 release.
-              </p>
-
-              <p class="publisher">Free Software Foundation</p>
-          </td></tr></table></div></div></div><hr></div><div 
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a 
href="#intro">1. Introduction</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="#runs-on">What does <span class="application">Gnash</span> run 
on?</a></span></dt><dt><span class="sect1"><a href="#flashsupport">What 
Versions of Flash are Supported?</a></span></dt><dt><span class="sect1"><a 
href="#audience">Audience</a></span></dt><dt><span class="sect1"><a 
href="#guide-conventions">Guide Conventions</a></span></dt><dt><span 
class="sect1"><a 
href="#Acknowledgments">Acknowledgments</a></span></dt></dl></dd><dt><span 
class="chapter"><a href="#specification">2. Technical 
Specifications</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="#spec-actionscript">ActionScript</a></span></dt><dt><span 
class="sect1"><a href="#spec-memory">Memory Management</a></span></dt><dt><span 
class="sect1"><a 
href="#spec-security">Security</a></span></dt></dl></dd><dt><span 
class="chapter"><a href="#build">3. Installing and Configuring <span 
class="application">Gnash</span></a></span></dt><dd><dl><dt><span 
class="sect1"><a 
href="#requirements">Requirements</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#hardware">Hardware 
Requirements</a></span></dt><dt><span class="sect2"><a 
href="#software">Software Requirements</a></span></dt></dl></dd><dt><span 
class="sect1"><a href="#downloading">Downloading <span 
class="application">Gnash</span></a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#packagemanager">Using a Package 
Manager</a></span></dt><dt><span class="sect2"><a href="#gettingsource">Getting 
the Source</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#pre-configuration">Pre-Compile 
Configuration</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="#features">Features</a></span></dt><dt><span class="sect2"><a 
href="#custompath">Specifying Custom Paths</a></span></dt><dt><span 
class="sect2"><a href="#crosscompilingconfiguration">Cross 
Compiling</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#compiling">Building from Source</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#compile">Compiling the Code</a></span></dt><dt><span 
class="sect2"><a href="#processdoc">Creating the 
Documentation</a></span></dt><dt><span class="sect2"><a 
href="#runtests">Running the Tests</a></span></dt></dl></dd><dt><span 
class="sect1"><a href="#install">Installation</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#libinstall">Libraries</a></span></dt><dt><span 
class="sect2"><a href="#appinstall">Executables</a></span></dt><dt><span 
class="sect2"><a 
href="#docinstall">Documentation</a></span></dt></dl></dd></dl></dd><dt><span 
class="chapter"><a href="#usage">4. Using <span 
class="application">Gnash</span></a></span></dt><dd><dl><dt><span 
class="sect1"><a href="#options"><span class="application">Gnash</span> Command 
Line Options</a></span></dt><dt><span class="sect1"><a href="#keys"><span 
class="application">Gnash</span> Interactive Control 
Keys</a></span></dt><dt><span class="sect1"><a href="#gnashrc">User 
Configuration File</a></span></dt></dl></dd><dt><span class="chapter"><a 
href="#bugreport">5. Reporting Bugs</a></span></dt><dd><dl><dt><span 
class="sect1"><a href="#bugstep_newcheckout">Compile the latest <span 
class="application">Gnash</span> build</a></span></dt><dt><span 
class="sect1"><a href="#bugstep_search">Determine if the bug was previously 
reported</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_guidelines">Review the bug writing 
guidelines</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_file">Filing a bug report</a></span></dt></dl></dd><dt><span 
class="glossary"><a href="#glossary">Glossary</a></span></dt><dt><span 
class="chapter"><a href="#authors">6. Authors</a></span></dt><dt><span 
class="appendix"><a href="#fdl">A. GNU Free Documentation 
License</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="#fdl-preamble">0. PREAMBLE</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section1">1. APPLICABILITY AND DEFINITIONS</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section2">2. VERBATIM 
COPYING</a></span></dt><dt><span class="sect1"><a href="#fdl-section3">3. 
COPYING IN QUANTITY</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section4">4. MODIFICATIONS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section5">5. COMBINING DOCUMENTS</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section6">6. COLLECTIONS OF 
DOCUMENTS</a></span></dt><dt><span class="sect1"><a href="#fdl-section7">7. 
AGGREGATION WITH INDEPENDENT WORKS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section8">8. TRANSLATION</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section9">9. TERMINATION</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section10">10. FUTURE REVISIONS OF THIS 
LICENSE</a></span></dt><dt><span class="sect1"><a 
href="#fdl-using">Addendum</a></span></dt></dl></dd></dl></div><div 
class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>2.1. <a 
href="#id2790236">ActionScript Classes</a></dt><dt>2.2. <a 
href="#id2790524">Opcodes</a></dt><dt>2.3. <a href="#id2790828">Memory 
Footprint</a></dt><dt>3.1. <a href="#tb-os-cpu">Build Matrix</a></dt><dt>3.2. 
<a href="#id2793204">Code Dependency Table</a></dt><dt>3.3. <a 
href="#id2794774">Testing Dependency Table</a></dt><dt>3.4. <a 
href="#id2794922">Documentation Dependency Table</a></dt><dt>3.5. <a 
href="#tb-config-features">Configuration Options - Features</a></dt><dt>3.6. <a 
href="#tb-configure-paths">Custom Path Options</a></dt><dt>4.1. <a 
href="#tb-command-line-options">Gnash Command Line Options</a></dt><dt>4.2. <a 
href="#tb-control-keys">Gnash Interactive Control Keys</a></dt><dt>4.3. <a 
href="#tb-config-variables">User Configuration 
Variables</a></dt></dl></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="intro"></a>Chapter 1. 
Introduction</h2></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a href="#runs-on">What does <span 
class="application">Gnash</span> run on?</a></span></dt><dt><span 
class="sect1"><a href="#flashsupport">What Versions of Flash are 
Supported?</a></span></dt><dt><span class="sect1"><a 
href="#audience">Audience</a></span></dt><dt><span class="sect1"><a 
href="#guide-conventions">Guide Conventions</a></span></dt><dt><span 
class="sect1"><a 
href="#Acknowledgments">Acknowledgments</a></span></dt></dl></div><p>
-      <span class="application">Gnash</span> is a free Flash movie player.  It 
is available as a stand-alone application or as a plugin for several popular 
browsers.
-</p><p>
-<span class="application">Gnash</span> is based on the excellent work done on 
the public domain program <span class="application">GameSWF</span>, which is a 
graphics library for games that contains the heart of a Flash interpreter.  In 
December 2005, <span class="application">Gnash</span> was forked from <span 
class="application">GameSWF</span> and repackaged in the GNU project style.  
The objective of <span class="application">Gnash</span> is to create an 
enterprise-quality Flash movie player that can be widely deployed.
-</p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="runs-on"></a>What does <span 
class="application">Gnash</span> run on?</h2></div></div></div><p>
-The list of successful <span class="application">Gnash</span> deployments 
grows every day.  At this time, <span class="application">Gnash</span> has been 
found to run on several different UNIX and Linux distributions.  The plugin 
currently works with any browser that uses the NSAPI. This includes:
-</p><div class="itemizedlist"><ul type="disc"><li><p>Mozilla <a class="ulink" 
href="http://www.mozilla.org"; target="_top">http://www.mozilla.org</a>
-</p></li><li><p>Firefox <a class="ulink" 
href="http://www.mozilla.com/en-US/firefox"; 
target="_top">http://www.mozilla.com/en-US/firefox</a>
-</p></li><li><p>Galeon <a class="ulink" href="galeon.sourceforge.net" 
target="_top">galeon.sourceforge.net</a>
-</p></li><li><p>Epiphany <a class="ulink" href="gnome.org/projects/epiphany" 
target="_top">gnome.org/projects/epiphany</a>
-</p></li><li><p>Konqueror <a class="ulink" href="http://www.konqueror.org"; 
target="_top">http://www.konqueror.org</a>
-</p></li><li><p>Opera <a class="ulink" href="http://www.opera.com"; 
target="_top">http://www.opera.com</a>
-</p></li><li><p>OLPC Web Activity <a class="ulink" 
href="http://www.laptop.org"; target="_top">http://www.laptop.org</a>
-</p></li></ul></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="flashsupport"></a>What Versions of Flash are 
Supported?</h2></div></div></div><p>
-           <span class="application">Gnash</span> supports the majority of 
Flash opcodes up to SWF version
-           7, and a wide sampling of ActionScript classes for SWF version
-           7.   There are plans to work towards greater support for SWF
-           8 and beyond.  AMF support is minimal.
-         </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="audience"></a>Audience</h2></div></div></div><p>
-This manual is primarily focused on developers interested in contributing to 
or building from the <span class="application">Gnash</span> project.  It serves 
as a detailed reference guide, including a catalog and explanation of all 
options and features.  This level of detail may make this guide cumbersome for 
the average user, although advanced users may find it helpful.
-</p><p>
-Those who are new to <span class="application">Gnash</span> will find the <em 
class="citetitle"><span class="application">Gnash</span> User's Guide</em>, 
currently under development, to be more useful when learning to use <span 
class="application">Gnash</span>.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="guide-conventions"></a>Guide 
Conventions</h2></div></div></div><p>
-This guide makes use of the following fairly standard typefaces, highlighting, 
and language usage:
-</p><div class="variablelist"><dl><dt><span class="term"><span 
class="application">application</span></span></dt><dd><p>
-The typeface above will be used whenever an application, such as <span 
class="application">Firefox</span> or <span 
class="application">OpenOffice.org</span>, is mentioned.
-</p></dd><dt><span class="term"><span 
class="command"><strong>command</strong></span></span></dt><dd><p>
-The typeface above will be used whenever the text instructs a user to enter a 
command at a shell prompt in UNIX/Linux, such as <span 
class="command"><strong>ls</strong></span>.
-</p></dd><dt><span class="term"><code 
class="computeroutput">computeroutput</code></span></dt><dd><p>
-This is the typeface used to indicate information produced on <code 
class="computeroutput">stdout</code> by the computer.  This include error 
messages and prompts.
-</p></dd><dt><span class="term"><code 
class="filename">filename</code></span></dt><dd><p>
-This typeface indicates that the text is the name (and possibly the path) of a 
specific file on the system in question.  For example, <code 
class="filename">/etc/hosts</code> would appear in this typeface.
-</p></dd><dt><span class="term"><span 
class="guibutton">guibutton</span></span></dt><dd><p>
-This formatting indicates a button on a Graphical User Interface (GUI).  If 
this formatting appears, look for a button with the same text on the GUI of the 
<span class="application">Gnash</span> player; the button itself may look 
slightly different.
-</p></dd><dt><span class="term"><span 
class="guimenu">guimenu</span></span></dt><dd><p>
-This typeface indicates the topmost menu item in a GUI.  For example, in many 
applications the <span class="guimenu">File</span> menu item is a top=level 
menu item.
-</p></dd><dt><span class="term"><span 
class="guimenuitem">guimenuitem</span></span></dt><dd><p>
-This typeface indicates a sub-menu item in a GUI.  For example, in many 
applications the <span class="guimenuitem">Save As</span> menu item is a 
sub-menu item.
-</p></dd><dt><span class="term"><span 
class="guilabel">guitext</span></span></dt><dd><p>
-This typeface indicates a text string on the GUI.  This is generally a text 
string that appears on the GUI that is not a button or menuitem.
-</p></dd><dt><span class="term"><span 
class="keycap"><strong>key</strong></span></span></dt><dd><p>
-This typeface indicates a specific key on the keyboard.  For example, the 
<span class="keycap"><strong>Ctrl</strong></span> key appears in this typeface.
-</p></dd><dt><span class="term"><span 
class="keycap"><strong>key</strong></span>+<span 
class="keycap"><strong>combination</strong></span></span></dt><dd><p>
-This formatting indicates a set of keys to be pressed at the same time.  A 
familiar key combination is <span 
class="keycap"><strong>Ctrl</strong></span>+<span 
class="keycap"><strong>Alt</strong></span>+<span 
class="keycap"><strong>Delete</strong></span>.
-</p></dd><dt><span class="term"><em 
class="replaceable"><code>&lt;replaceable&gt;</code></em></span></dt><dd><p>
-Whenever a general term is included in an example as a placeholder, it will be 
signaled by this formatting.  This formatting will usually appear inside other 
formatting.  For example, <code class="filename">/home/<em 
class="replaceable"><code>&lt;username&gt;</code></em></code> indicates the 
home directory of a user, whose actual username would be substituted in for <em 
class="replaceable"><code>&lt;username&gt;</code></em>.
-</p></dd><dt><span class="term"><strong class="userinput"><code>User 
input</code></strong></span></dt><dd><p>
-This typeface indicates anything that the user must enter, whether that is at 
a shell prompt or in response to a GUI prompt. 
-</p></dd></dl></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="Acknowledgments"></a>Acknowledgments</h2></div></div></div><p>
-The first version of this guide was written by Rob Savoye.  If not for his 
tireless efforts, this book - and this project - would never have come this far.
-</p><p>
-John Steinhart has also been dedicated to the project from the beginning. I 
have shamelessly plagiarized one of his early announcement emails in the early 
part of this chapter.
-</p><p>
-Ann Barcomb was instrumental in taking this guide from the 0.3.0 to the 0.4.0 
version, incorporating the many changes that came with <span 
class="application">Gnash</span> version 0.8.0.
-</p><p>
-Finally, thanks to all of the <span class="application">Gnash</span> 
developers I haven't mentioned for all their hard work, and for answering my 
unending questions.
-</p></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a 
name="specification"></a>Chapter 2. Technical 
Specifications</h2></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a 
href="#spec-actionscript">ActionScript</a></span></dt><dt><span 
class="sect1"><a href="#spec-memory">Memory Management</a></span></dt><dt><span 
class="sect1"><a href="#spec-security">Security</a></span></dt></dl></div><p>
-The information in this chapter may change quickly.  For the most current 
information about the following subjects, be sure the check the Developer's 
Wiki at <a class="ulink" 
href="http://www.gnashdev.org/wiki/index.php/Main_Page"; 
target="_top">http://www.gnashdev.org/wiki/index.php/Main_Page</a>.
-</p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a 
name="spec-actionscript"></a>ActionScript</h2></div></div></div><p>
-As stated in the section <a class="xref" href="#flashsupport" title="What 
Versions of Flash are Supported?">the section called &#8220;What Versions of 
Flash are Supported?&#8221;</a>, <span class="application">Gnash</span> has 
implemented about 80% of ActionScript v. 2.0, and has begun implementing 
ActionScript v. 3.0.  <span class="application">Gnash</span> supports the 
majority of Flash opcodes up to SWF version 7, and a wide sampling of 
ActionScript classes for SWF version 7.
-</p><p>
-The following table indicates how fully various ActionScript classes have been 
implemented:
-</p><div class="table"><a name="id2790236"></a><p class="title"><b>Table 2.1. 
ActionScript Classes</b></p><div class="table-contents"><table 
summary="ActionScript Classes" border="1"><colgroup><col align="left"><col 
align="left"></colgroup><thead><tr><th align="left">Class</th><th 
align="left">Status</th></tr></thead><tbody><tr><td 
align="left">Actionscript/Date</td><td 
align="left">Implemented</td></tr><tr><td 
align="left">Actionscript/Function</td><td 
align="left">Implemented</td></tr><tr><td 
align="left">Actionscript/MovieClip</td><td 
align="left">Implemented</td></tr><tr><td 
align="left">Actionscript/MovieClipLoader</td><td 
align="left">Implemented</td></tr><tr><td 
align="left">Actionscript/Object</td><td 
align="left">Implemented</td></tr><tr><td 
align="left">Actionscript/Sound</td><td 
align="left">Implemented</td></tr><tr><td 
align="left">Actionscript/String</td><td 
align="left">Implemented</td></tr><tr><td 
align="left">Actionscript/XMLNode</td><td 
align="left">Implemented</td></tr><tr><td 
align="left">Actionscript/XMLSocket</td><td 
align="left">Implemented</td></tr><tr><td 
align="left">Actionscript/_global</td><td align="left">Partially 
Implemented</td></tr><tr><td align="left">Actionscript/Array</td><td 
align="left">Partially Implemented</td></tr><tr><td 
align="left">Actionscript/LocalConnection</td><td align="left">Partially 
Implemented</td></tr><tr><td align="left">Actionscript/NetConnection</td><td 
align="left">Partially Implemented</td></tr><tr><td 
align="left">Actionscript/NetStream</td><td align="left">Partially 
Implemented</td></tr><tr><td align="left">Actionscript/TextField</td><td 
align="left">Partially Implemented</td></tr><tr><td 
align="left">Actionscript/XML</td><td align="left">Partially 
Implemented</td></tr><tr><td align="left">Actionscript/Boolean</td><td 
align="left">Unimplemented</td></tr><tr><td 
align="left">Actionscript/Error</td><td 
align="left">Unimplemented</td></tr><tr><td 
align="left">Actionscript/LoadVars</td><td 
align="left">Unimplemented</td></tr><tr><td 
align="left">Actionscript/Number</td><td 
align="left">Unimplemented</td></tr><tr><td 
align="left">Actionscript/Selection</td><td 
align="left">Unimplemented</td></tr><tr><td 
align="left">Actionscript/TextFormat</td><td 
align="left">Unimplemented</td></tr><tr><td 
align="left">Actionscript/Unknown</td><td 
align="left">Unimplemented</td></tr></tbody></table></div></div><br 
class="table-break"><p>
-The next table indicates which opcodes have been implemented:
-</p><div class="table"><a name="id2790524"></a><p class="title"><b>Table 2.2. 
Opcodes</b></p><div class="table-contents"><table summary="Opcodes" 
border="1"><colgroup><col align="left"><col 
align="left"></colgroup><thead><tr><th align="left">Opcode</th><th 
align="left">Status</th></tr></thead><tbody><tr><td align="left">0x43 
declare_obj</td><td align="left">Implemented</td></tr><tr><td align="left">0x2B 
cast</td><td align="left">Implemented</td></tr><tr><td align="left">0x3B 
delete2 - SWF::ACTION_DELETE</td><td align="left">Implemented</td></tr><tr><td 
align="left">0x53 new_method</td><td align="left">Implemented</td></tr><tr><td 
align="left">0x55 enum_object</td><td align="left">Implemented</td></tr><tr><td 
align="left">0x3A delete - SWF::ACTION_DELETEVAR</td><td 
align="left">Implemented</td></tr><tr><td align="left">0x69 Extends - 
SWF::ACTION_EXTENDS</td><td align="left">Implemented</td></tr><tr><td 
align="left">0x54 instance_of</td><td align="left">Partially 
Implemented</td></tr><tr><td align="left">0x2A Throw</td><td 
align="left">Unimplemented</td></tr><tr><td align="left">0x2C 
Implements</td><td align="left">Unimplemented</td></tr><tr><td 
align="left">0x8F Try</td><td align="left">Unimplemented</td></tr><tr><td 
align="left">0x31 md length</td><td align="left">Unimplemented</td></tr><tr><td 
align="left">0x35 md substring</td><td 
align="left">Unimplemented</td></tr><tr><td align="left">0x37 md chr</td><td 
align="left">Unimplemented</td></tr><tr><td align="left">0x45 get 
target</td><td 
align="left">Unimplemented</td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="spec-memory"></a>Memory Management</h2></div></div></div><p>
-One of the new features of <span class="application">Gnash</span> 0.8.2 is the 
garbage collector.  The garbage collector manages complex ActionScript 
variables, which are the only ones that are shared by references.  In <span 
class="application">Gnash</span>, these are <span 
class="command"><strong>as_object</strong></span> class instances created by 
ActionScript (i.e. not those created by playhead control: <span 
class="command"><strong>placeobject</strong></span>/<span 
class="command"><strong>removeobject</strong></span>).
-</p><p>
-Collected objects are those allocated due to ActionScript explicit or implicit 
calls.  Explicit all are any user-defined statements that allocate new objects, 
such as arrays, Objects, or script-created movieclips.  Implicit calls are the 
built-in functions that can be deleted by arbitrary user calls.
-</p><p>
-Any object that is a candidate for garbage collecting is stored in a list 
owned by the collector.  This list is filled by an executing action context 
whenever a collectible object is allocated on the heap.
-</p><p>
-The garbage collector starts at the very end of an execution context, rather 
than using a threshold to trigger it.  At this point, the virtual machine is in 
a "stable" state; any still-reachable object has its roots in one of the 
currently live character instances (stage characters).
-</p><p>
-The collector is a conservative collector.  Any object on the collectibles 
list is marked as <span class="guilabel">UNREACHABLE</span>, an iterative scan 
starting from the roots marks any still-reachable object, and a final purge 
releases all still-<span class="guilabel">UNREACHABLE</span> resources.
-</p><p>
-This garbage collector has reduced the memory footprint of <span 
class="application">Gnash</span>.  However, the most current, available test 
data indicated the following runtime memory footprint:
-</p><div class="table"><a name="id2790828"></a><p class="title"><b>Table 2.3. 
Memory Footprint</b></p><div class="table-contents"><table summary="Memory 
Footprint" border="1"><colgroup><col align="left"><col align="left"><col 
align="left"><col align="left"></colgroup><thead><tr><th align="left">Render 
GUI</th><th align="left">Virtual Memory</th><th align="left">Resident Set Size 
(physical RAM</th><th align="left">Shared Memory (code 
size)</th></tr></thead><tbody><tr><td align="left">agg-gtk</td><td 
align="left">33372 KB</td><td align="left">14 MB</td><td align="left">8948 
KB</td></tr><tr><td align="left">agg-sdl</td><td align="left">26564 KB</td><td 
align="left">9396 KB</td><td align="left">5124 KB</td></tr><tr><td 
align="left">agg-fltk</td><td align="left">24556 KB</td><td align="left">8992 
KB</td><td align="left">4220 KB</td></tr><tr><td 
align="left">cairo-fltk</td><td align="left">184 MB</td><td align="left">128 
MB</td><td align="left">4284 KB</td></tr><tr><td align="left">cairo-gtk</td><td 
align="left">192 MB</td><td align="left">133 MB</td><td align="left">8000 
KB</td></tr><tr><td align="left">cairo-sdl</td><td align="left">187 MB</td><td 
align="left">129 MB </td><td align="left">5256 KB</td></tr><tr><td 
align="left">opengl-gtk </td><td align="left">62620 KB</td><td align="left">15 
MB</td><td align="left">9336 KB</td></tr><tr><td align="left">opengl-sdl 
</td><td align="left">54932 KB</td><td align="left">10 MB</td><td 
align="left">5324 KB</td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="spec-security"></a>Security</h2></div></div></div><p>
-Many Flash implementations contain potential security exploits that could 
compromise a viewer's system.  With <span class="application">Gnash</span>, an 
end-user has the ability to see "what's going on" &#8212; what types of data 
the application accesses, where it is found, and how it is used.  Many known 
Flash exploits are included in the <span class="application">Gnash</span> test 
suite that is used to check whether a release is ready for the public.  The 
<span class="application">Gnash</span> developers are also in the process of a 
security review, developing a security layer that will protect an end-user, no 
matter what operating system they use.
-</p><p>
-One early security feature is the blacklist/whitelist.  Flash movies running 
in a browser can make outgoing network connections. This can be used, for 
example, to compromise a network device inside a company firewall via a Flash 
movie running on an employee's browser. <span class="application">Gnash</span> 
allows you to blacklist hosts that you know are insecure, or to whitelist hosts 
you know are secure, by editing a configuration file.
-</p></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="build"></a>Chapter 3. 
Installing and Configuring <span 
class="application">Gnash</span></h2></div></div></div><div 
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a 
href="#requirements">Requirements</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#hardware">Hardware 
Requirements</a></span></dt><dt><span class="sect2"><a 
href="#software">Software Requirements</a></span></dt></dl></dd><dt><span 
class="sect1"><a href="#downloading">Downloading <span 
class="application">Gnash</span></a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#packagemanager">Using a Package 
Manager</a></span></dt><dt><span class="sect2"><a href="#gettingsource">Getting 
the Source</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#pre-configuration">Pre-Compile 
Configuration</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="#features">Features</a></span></dt><dt><span class="sect2"><a 
href="#custompath">Specifying Custom Paths</a></span></dt><dt><span 
class="sect2"><a href="#crosscompilingconfiguration">Cross 
Compiling</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#compiling">Building from Source</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#compile">Compiling the Code</a></span></dt><dt><span 
class="sect2"><a href="#processdoc">Creating the 
Documentation</a></span></dt><dt><span class="sect2"><a 
href="#runtests">Running the Tests</a></span></dt></dl></dd><dt><span 
class="sect1"><a href="#install">Installation</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#libinstall">Libraries</a></span></dt><dt><span 
class="sect2"><a href="#appinstall">Executables</a></span></dt><dt><span 
class="sect2"><a 
href="#docinstall">Documentation</a></span></dt></dl></dd></dl></div><p>
-    There are two ways of installing <span class="application">Gnash</span>:
-    <a class="link" href="#packagemanager" title="Using a Package 
Manager">using a package manager</a>
-    or <a class="link" href="#gettingsource" title="Getting the 
Source">installing from source</a>.
-  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a 
name="requirements"></a>Requirements</h2></div></div></div><p>
-Before downloading and installing <span class="application">Gnash</span>, 
check that your hardware and software meet the following requirements.
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="hardware"></a>Hardware 
Requirements</h3></div></div></div><p>
-One of the goals of <span class="application">Gnash</span> is to make it 
portable enough to install on small devices.  As a result, the hardware 
requirements are minimal. <span class="application">Gnash</span> has even run 
on an ARM9 at 200 MHz with 64 MB of RAM! (It ran without video support in this 
case.)   While firm minimums have not been established, <span 
class="application">Gnash</span> has been shown to run successfully with the 
following:
-</p><div class="itemizedlist"><ul type="disc"><li><p>
-336 MHz processor
-</p></li><li><p>
-256 MB RAM
-</p></li><li><p>
-Video &#8212; <span class="application">Gnash</span> will run on anything from 
a raw frame buffer up to an OpenGL-supporting graphics card.
-</p></li></ul></div><p>
-The following table provides a list of the Operating System/CPU combinations 
on which <span class="application">Gnash</span> has been shown to run.
-</p><div class="table"><a name="tb-os-cpu"></a><p class="title"><b>Table 3.1. 
Build Matrix</b></p><div class="table-contents"><table summary="Build Matrix" 
border="1"><colgroup><col align="left"><col 
align="left"></colgroup><thead><tr><th align="left">Render GUI</th><th 
align="left">Virtual Memory</th></tr></thead><tbody><tr><td 
align="left">FreeBSD</td><td align="left">Alpha AXP, AMD64, i386, Itanium, 
PC-98, PowerPC, SPARC64 
-</td></tr><tr><td align="left">GNU/Linux 
-</td><td align="left">CRIS</td></tr><tr><td align="left">GNU/Linux [OLPC] 
-</td><td align="left">Geode GX 
-</td></tr><tr><td align="left">GNU/Linux ALTLinux 
-</td><td align="left">i586</td></tr><tr><td align="left">GNU/Linux Arklinux 
-</td><td align="left">i586</td></tr><tr><td align="left">GNU/Linux Debian 
-</td><td align="left">Alpha AXP, AMD64, ARM, hppa, i386, Itanium, MIPS, 
PowerPC, IBM zSeries (s390), SPARC 
-</td></tr><tr><td align="left">GNU/Linux Fedora core 
-</td><td align="left">x86-32, x86-64 
-</td></tr><tr><td align="left">GNU/Linux Gentoo 
-</td><td align="left">AMD64, PowerPC, SPARC, x86 
-</td></tr><tr><td align="left">GNU/Linux Gentoo 
-</td><td align="left">AMD64, PowerPC, SPARC, x86 
-</td></tr><tr><td align="left">GNU/Linux Maemo 2.1 
-</td><td align="left">ARMv5t</td></tr><tr><td align="left">GNU/Linux Mandriva 
2007 
-</td><td align="left"> </td></tr><tr><td align="left">GNU/Linux Open Zaurus 
-</td><td align="left">ARM 
-</td></tr><tr><td align="left">GNU/Linux OpenSuSE 10 
-</td><td align="left">i586, x86-64 
-</td></tr><tr><td align="left">GNU/Linux Red Hat 
-</td><td align="left">x86-32, x86-64 
-</td></tr><tr><td align="left">GNU/Linux Ubuntu 
-</td><td align="left">x86-64 reported working, also x86-32 and UltraSPARC 
-</td></tr><tr><td align="left">Haiku</td><td align="left"> </td></tr><tr><td 
align="left">Irix 6.5 
-</td><td align="left">MIPS R10K 
-</td></tr><tr><td align="left">MacOS X 
-</td><td align="left">PowerPC and x86-32 
-</td></tr><tr><td align="left">NetBSD</td><td align="left">many, including VAX
-</td></tr><tr><td align="left">OpenBSD</td><td align="left">many, including 
VAX, OS/2 and eComstation</td></tr><tr><td align="left">Windows</td><td 
align="left">x86-32</td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="software"></a>Software 
Requirements</h3></div></div></div><p>
-The 0.8.2 release of <span class="application">Gnash</span> has been designed 
to run on UNIX/Linux variants, and has been run on most of the free ones.  
However, <span class="application">Gnash</span> has successfully run on 
Windows, Darwin (Mac OS X), Irix, Solaris, BeOs, OS/2, and Haiku.  <span 
class="application">Gnash</span> has also run on the following 64-bit systems: 
PowerPC, Itanium, UltraSparc, and AMD64.   For now, it is important to be sure 
that the following code, testing, and documentation dependencies are met before 
installing <span class="application">Gnash</span>.  If you will be downloading 
<span class="application">Gnash</span> with a package manager, these 
dependencies may be solved by the package manager.  Otherwise, you must first 
verify that each of these dependencies are installed on the target system.
-</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="codedepend"></a>Code 
Dependencies</h4></div></div></div><p>
-  <span class="application">Gnash</span> has a number of dependencies on other 
packages.
-  If you install the dependencies using a package
-  manager, be certain to install the development versions
-  of the packages.  The normal versions are often missing
-  the headers <span class="application">Gnash</span> needs to compile.
-</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 
class="title">Note</h3><p>
-If you want to install the <span class="application">Gnash</span> plugin for 
one of the browsers listed in the <a class="xref" href="#intro" title="Chapter 
1. Introduction">Chapter 1, <i>Introduction</i></a>, be sure to install the 
development package for that browser before configuring.  The <span 
class="application">Gnash</span> <span 
class="command"><strong>configure</strong></span> script searches for the devel 
packages before building the plugin.
-</p></div><div class="table"><a name="id2793204"></a><p class="title"><b>Table 
3.2. Code Dependency Table</b></p><div class="table-contents"><table 
summary="Code Dependency Table" border="1"><colgroup><col align="left"><col 
align="left"><col align="left"><col align="left"><col align="left"><col 
align="left"><col align="left"></colgroup><thead><tr><th 
align="left">Name</th><th align="left">Level</th><th 
align="left">Version</th><th align="left">Description</th><th 
align="left">Explanation</th><th align="left">apt-get package</th><th 
align="left">RPM/Yum package</th></tr></thead><tbody><tr><td 
align="left">Boost</td><td align="left">Required</td><td align="left">1.32 or 
higher</td><td align="left">
-          Boost is a library of portable C++ classes and
-          templates.
-        </td><td align="left">
-          In <span class="application">Gnash</span>, Boost libraries are used 
extensively.
-        </td><td align="left"><code 
class="filename">libboost-thread-dev</code></td><td align="left"><code 
class="filename">liboost-thread-dev</code></td></tr><tr><td 
align="left">libxml2</td><td align="left">Required</td><td align="left"> 
</td><td align="left">
-          Libxml2 is the GNOME XML parser library and
-          is available at <a class="ulink" href="http://xmlsoft.org"; 
target="_top">http://xmlsoft.org</a>.
-        </td><td align="left">
-          This library is used to parse messages in the
-          XML or XMLSocket ActionScript classes.
-        </td><td align="left"><code 
class="filename">libxml2-dev</code></td><td align="left"><code 
class="filename">libxml2-devel</code></td></tr><tr><td align="left">AGG</td><td 
align="left">Possibly Required</td><td align="left">2.4 or higher</td><td 
align="left">
-          AGG is the AntiGrain low-level 2D graphics
-          library.  
-        </td><td align="left">
-          <span class="application">Gnash</span> requires the installation of 
at least one
-          renderer.  AGG is considered the <span class="emphasis"><em>best
-          supported</em></span> renderer for <span 
class="application">Gnash</span>.
-        </td><td align="left"><code class="filename">libagg-dev</code></td><td 
align="left"><code class="filename">agg-devel</code></td></tr><tr><td 
align="left">OpenGL</td><td align="left">Possibly Required</td><td 
align="left"> </td><td align="left">
-          OpenGL is a standard specification defining a
-          cross-language cross-platform API for writing
-          applications which produce 3D and 2D graphics.
-          It supports hardware acceleration.
-          You can download a free implementation from
-          <a class="ulink" href="http://www.mesa3d.org"; 
target="_top">http://www.mesa3d.org</a>.
-        </td><td align="left">
-          <span class="application">Gnash</span> requires the installation of 
at least one
-          renderer.
-        </td><td align="left"><code 
class="filename">libgl1-mesa-dev</code></td><td align="left"><code 
class="filename">libmesa-devel</code></td></tr><tr><td 
align="left">Cairo</td><td align="left">Possibly Required</td><td align="left"> 
</td><td align="left">
-          Cairo is a 2D graphics library with support for
-          multiple output devices.  It will automatically use
-          graphic card acceleration when available, and has
-          an experimental OpenGL backend.  
-        </td><td align="left">
-          <span class="application">Gnash</span> requires the installation of 
at least one
-          renderer.  Cairo is considered
-          the <span class="emphasis"><em>least supported</em></span> renderer
-          for <span class="application">Gnash</span>.
-        </td><td align="left"><code 
class="filename">libcairo2-dev</code></td><td align="left"><code 
class="filename">cairo-devel</code></td></tr><tr><td align="left">GTK</td><td 
align="left">Possibly Required</td><td align="left">2.2 or higher</td><td 
align="left">
-          GTK is the GIMP Toolkit GUI library.
-          It uses Cairo internally.
-        </td><td align="left">
-          <span class="application">Gnash</span> requires the installation of 
at least one
-          GUI library.  GTK is considered to be the
-          <span class="emphasis"><em>best supported</em></span> GUI library
-          option for <span class="application">Gnash</span>.
-        </td><td align="left"><code 
class="filename">libgtk2.0-dev</code></td><td align="left"><code 
class="filename">gtk-devel</code></td></tr><tr><td 
align="left">GtkGlExt</td><td align="left">Possibly Required</td><td 
align="left"> </td><td align="left">
-          GtkGlExt integrates OpenGL into GTK.
-        </td><td align="left">
-          This library is required in order to use
-          the GTK GUI library in conjunction with the
-          OpenGL renderer.
-        </td><td align="left"><code 
class="filename">libgtkglext1-dev</code></td><td align="left"><code 
class="filename">gtkglext-devel</code></td></tr><tr><td 
align="left">SDL</td><td align="left">Possibly Required</td><td align="left"> 
</td><td align="left">
-          The Simple DirectMedia Layer is a cross-platform
-          multimedia library which provides abstraction for
-          audio, graphics, sound and input APIs.  
-          SDL is available from
-          <a class="ulink" href="http://www.libsdl.org"; target="_top">
-          http://www.libsdl.org</a>.  
-        </td><td align="left">
-          <span class="application">Gnash</span> requires the installation of 
at least one
-          GUI library.  SDL may also be used as a sound
-          handler regardless of whether it is employed as
-          a GUI library.  The GUI
-          library is <span class="emphasis"><em>poorly supported</em></span>
-          in <span class="application">Gnash</span>, but the sound handler is 
the
-          <span class="emphasis"><em>best supported</em></span> in <span 
class="application">Gnash</span>.
-        </td><td align="left"><code 
class="filename">libsdl1.2-dev</code></td><td align="left"><code 
class="filename">SDL-devel</code></td></tr><tr><td align="left">FLTK</td><td 
align="left">Possibly Required</td><td align="left">2.0 or higher</td><td 
align="left">
-          The Fast Light ToolKit is a portable GUI library
-          which is intended as a replacement for the SDL GUI.
-        </td><td align="left">
-          <span class="application">Gnash</span> requires the installation of 
at least one
-          GUI library.  FLTK may be used in conjunction with
-          the Cairo and AGG renderers.
-        </td><td align="left">No distribution packages are available.</td><td 
align="left">No distribution packages are available.</td></tr><tr><td 
align="left">KDE</td><td align="left">Possibly Required</td><td align="left"> 
</td><td align="left">
-          Kdelibs is a collection of libraries needed to
-          compile KDE applications.
-        </td><td align="left">
-          <span class="application">Gnash</span> requires the installation of 
at least one
-          GUI library.  Kdelibs is also required for the
-          Kpart plugin for Konqueror.
-        </td><td align="left"><code 
class="filename">kdelibs4-dev</code></td><td align="left"><code 
class="filename">kdelibs-devel</code></td></tr><tr><td 
align="left">libMAD</td><td align="left">Optional</td><td align="left"> 
</td><td align="left">
-          libMAD is MPEG audio decoder.
-        </td><td align="left">
-          libMAD is one of the available options for sound
-          handling.
-        </td><td align="left"><code 
class="filename">libmad0-dev</code></td><td align="left"><code 
class="filename">libmad-devel</code></td></tr><tr><td 
align="left">Gstreamer</td><td align="left">Optional</td><td align="left"> 
</td><td align="left">
-          Gstreamer is a video handler.
-        </td><td align="left">
-          If you would like video playback, you must
-          install one of the video handlers.
-        </td><td align="left"><code 
class="filename">libgstreamer0.8-dev</code></td><td align="left"><code 
class="filename">gstreamer-devel</code></td></tr><tr><td 
align="left">gst-ffmpeg</td><td align="left">Possibly Required</td><td 
align="left"> </td><td align="left">
-          gst-ffmpeg allows you to use the FFMPEG decoder
-          with Gstreamer.
-        </td><td align="left">
-          This package is required if you would like to
-          use Gstreamer as a video handler.
-        </td><td align="left"><code 
class="filename">gstreamer0.8-ffmpeg-dev</code></td><td align="left"><code 
class="filename">gstreamer-ffmpeg-devel</code></td></tr><tr><td 
align="left">FFMPEG</td><td align="left">Possibly Required</td><td 
align="left"> </td><td align="left">
-          FFMPEG is a video handler.
-        </td><td align="left">
-          If you would like video playback, you must
-          install one of the video handlers.  It is also
-          a dependency of gst-ffmpeg.
-        </td><td align="left"><code class="filename">ffmpeg-dev</code></td><td 
align="left"><code class="filename">ffmpeg-devel</code></td></tr><tr><td 
align="left">JPEG</td><td align="left">Optional</td><td align="left"> </td><td 
align="left">
-          <a class="ulink" href="http://www.ijg.org/"; target="_top">JPEG</a>
-          is a lossy image format which is heavily used for images.
-        </td><td align="left">
-          This library is used for rendering JPEGs.
-        </td><td align="left"><code 
class="filename">libjpeg62-dev</code></td><td align="left"><code 
class="filename">libjpeg</code></td></tr><tr><td align="left">PNG</td><td 
align="left">Optional</td><td align="left"> </td><td align="left">
-          <a class="ulink" href="http://www.libpng.org/pub/png/"; 
target="_top">PNG</a> is
-          a patent-free image format which is comparable to
-          <span class="emphasis"><em>GIF</em></span>.
-        </td><td align="left">
-          This library is used for rendering PNGs.
-        </td><td align="left"><code 
class="filename">libpng12-dev</code></td><td align="left"><code 
class="filename">libpng</code></td></tr><tr><td align="left">libcurl</td><td 
align="left">Optional</td><td align="left"> </td><td align="left">
-          libcurl is the multiprotocal file transfer library.
-        </td><td align="left">
-          This library is used for URL downloading.
-        </td><td align="left"><code 
class="filename">libcurl4-gnutls</code></td><td align="left"><code 
class="filename">libcurl</code></td></tr><tr><td align="left">automake</td><td 
align="left">Possibly Required</td><td align="left">1.6.0</td><td align="left">
-          Automake is a tool for generating
-          <span class="emphasis"><em>Makefile.in</em></span> files.
-        </td><td align="left">
-          This package is required to run
-          <span class="emphasis"><em>autogen.sh</em></span>, which is a 
requirement
-          if you are using the development source from CVS.
-        </td><td align="left"><code class="filename">automake</code></td><td 
align="left"><code class="filename">automake</code></td></tr><tr><td 
align="left">autoconf</td><td align="left">Possibly Required</td><td 
align="left">2.59</td><td align="left">
-          Autoconf is a package for generating configure
-          scripts.
-        </td><td align="left">
-          This package is required to run
-          <span class="emphasis"><em>autogen.sh</em></span>, which is a 
requirement
-          if you are using the development source from CVS.
-        </td><td align="left"><code class="filename">autoconf</code></td><td 
align="left"><code class="filename">autoconf</code></td></tr><tr><td 
align="left">gettext</td><td align="left">Possibly Required</td><td 
align="left">0.14.6</td><td align="left">
-          Gettext is part of the GNU Translation Project.
-        </td><td align="left">
-          This package is required to run
-          <span class="emphasis"><em>autogen.sh</em></span>, which is a 
requirement
-          if you are using the development source from CVS.
-        </td><td align="left"><code class="filename">gettext</code></td><td 
align="left"><code class="filename">gettext</code></td></tr><tr><td 
align="left">libtool</td><td align="left">Possibly Required</td><td 
align="left">1.5.22</td><td align="left">
-          This is a generic library support script.
-        </td><td align="left">
-          This package is required to run
-          <span class="emphasis"><em>autogen.sh</em></span>, which is a 
requirement
-          if you are using the development source from CVS.
-        </td><td align="left"><code 
class="filename">libltdl3-dev</code></td><td align="left"><code 
class="filename">libtool</code></td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a name="testdepend"></a>Testing 
Dependencies</h4></div></div></div><p>
-  <span class="application">Gnash</span> tries to run as many tests as 
possible, but will
-  simply skip tests if the tools to run them are unavailable.
-</p><div class="table"><a name="id2794774"></a><p class="title"><b>Table 3.3. 
Testing Dependency Table</b></p><div class="table-contents"><table 
summary="Testing Dependency Table" border="1"><colgroup><col align="left"><col 
align="left"><col align="left"><col align="left"><col align="left"><col 
align="left"><col align="left"></colgroup><thead><tr><th 
align="left">Name</th><th align="left">Level</th><th 
align="left">Version</th><th align="left">Description</th><th 
align="left">Explanation</th><th align="left">apt-get package</th><th 
align="left">RPM/Yum package</th></tr></thead><tbody><tr><td 
align="left">Ming</td><td align="left">Optional</td><td 
align="left">0.4.0_beta4 or higher</td><td align="left">
-          Ming is an ActionScript compiler.
-        </td><td align="left">
-          Ming is the primary compiler for ActionScript testcases.
-        </td><td align="left">No distribution packages are available.</td><td 
align="left">No distribution packages are available.</td></tr><tr><td 
align="left">Mtasc</td><td align="left">Optional</td><td align="left"> </td><td 
align="left">
-          Mtasc is an ActionScript compiler.
-        </td><td align="left">
-          Mtasc is used in some tests.
-        </td><td align="left"><code class="filename">mtasc</code></td><td 
align="left">No distribution packages are available.</td></tr><tr><td 
align="left">swfdec</td><td align="left">Optional</td><td align="left"> 
</td><td align="left">
-          Swfdec is a Flash player.
-        </td><td align="left">
-          Swfdec is used in some testcases.
-        </td><td align="left">No distribution packages are available.</td><td 
align="left">Unofficial package <code 
class="filename">swfdec</code></td></tr><tr><td align="left">DejaGnu</td><td 
align="left">Optional</td><td align="left"> </td><td align="left">
-          DejaGnu is a testing framework.
-        </td><td align="left">
-          DejaGnu is used to run multiple tests in an
-          automated fashion.
-        </td><td align="left"><code class="filename">dejagnu</code></td><td 
align="left"><code 
class="filename">dejagnu</code></td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="docdepend"></a>Documentation Dependencies</h4></div></div></div><p>
-  The following packages are used to build <span 
class="application">Gnash</span>'s documentation.
-</p><div class="table"><a name="id2794922"></a><p class="title"><b>Table 3.4. 
Documentation Dependency Table</b></p><div class="table-contents"><table 
summary="Documentation Dependency Table" border="1"><colgroup><col 
align="left"><col align="left"><col align="left"><col align="left"><col 
align="left"><col align="left"><col align="left"></colgroup><thead><tr><th 
align="left">Name</th><th align="left">Level</th><th 
align="left">Version</th><th align="left">Description</th><th 
align="left">Explanation</th><th align="left">apt-get package</th><th 
align="left">RPM/Yum package</th></tr></thead><tbody><tr><td 
align="left">Docbook</td><td align="left">Required</td><td align="left"> 
</td><td align="left">
-          <a class="ulink" href="http://http://docbook.sourceforge.net/"; 
target="_top">Docbook</a> is
-          is an industry-standard XML format for technical
-          documentation.  You can download it from
-          <a class="ulink" 
href="http://sourceforge.net/project/showfiles.php?group_id=21935#files"; 
target="_top">http://sourceforge.net/project/showfiles.php?group_id=21935#files</a>.
-        </td><td align="left">
-          <span class="application">Gnash</span> documentation is written in 
Docbook.
-        </td><td align="left"><code class="filename">docbook-utils</code> and 
-               <code class="filename">docbook-dsssl</code></td><td 
align="left"><code class="filename">docbook-dtd41-sgml</code> and
-               <code 
class="filename">docbook-style-dsssl</code></td></tr><tr><td 
align="left">DocBook2X</td><td align="left">Optional</td><td align="left"> 
</td><td align="left">
-          This software package converts Docbook documents to
-          the traditional man page format, GNU Texinfo
-          format, and HTML (via Texinfo) format.  
-          It is available at <a class="ulink" 
href="http://docbook2x.sourceforge.net/"; 
target="_top">http://docbook2x.sourceforge.net/</a>.
-        </td><td align="left">
-          DocBook2X is required to produce HTML and Texinfo
-          formats.
-        </td><td align="left"><code class="filename">docbook2x</code></td><td 
align="left"><code class="filename">docbook2x</code></td></tr><tr><td 
align="left">Texinfo</td><td align="left">Possibly Required</td><td 
align="left"> </td><td align="left">
-          Texinfo can be used to convert DocBook2X output
-          into GNU info pages.  You can download it from
-          <a class="ulink" href="http://ftp.gnu.org/gnu/texinfo/"; 
target="_top">http://ftp.gnu.org/gnu/texinfo/</a>.
-        </td><td align="left">
-          Texinfo is required if you wish to product GNU info
-          pages.
-        </td><td align="left"><code class="filename">texinfo</code></td><td 
align="left"><code class="filename">texinfo</code></td></tr><tr><td 
align="left">FOP</td><td align="left">Optional</td><td 
align="left">0.20.5</td><td align="left">
-          Formatting Objects Processor is a print formatter
-          driven by XSL formatting objects.  It is a Java
-          application which can output PDF, PCL, PS, SVG, XML,
-          Print, AWT, MIF, and Text.  It is available at
-          <a class="ulink" href="http://xmlgraphics.apache.org/fop/"; 
target="_top">http://xmlgraphics.apache.org/fop/</a>.
-        </td><td align="left">
-          FOP is required for PDF output.
-        </td><td align="left"><code class="filename">fop</code></td><td 
align="left"><code class="filename">fop</code></td></tr><tr><td 
align="left">Java (j2re)</td><td align="left">Possibly Required</td><td 
align="left"> </td><td align="left">
-          FOP requires Sun's Java runtime (GCJ does not work with
-          FOP).  You can download it from
-          <a class="ulink" href="http://java.sun.com"; 
target="_top">http://java.sun.com</a>.
-        </td><td align="left">
-          Sun's Java runtime (j2re) is required to use FOP.  
-        </td><td align="left">
-          Download the package from <a class="ulink" 
href="http://java.sun.com"; target="_top">Sun</a>.
-        </td><td align="left">
-          Download the package from <a class="ulink" 
href="http://java.sun.com"; target="_top">Sun</a>.
-        </td></tr><tr><td align="left">JAI</td><td align="left">Possibly 
Required</td><td align="left"> </td><td align="left">
-          Sun's Java Advanced Imaging API can be downloaded from
-          <a class="ulink" 
href="http://java.sun.com/products/java-media/jai/iio.html"; 
target="_top">http://java.sun.com/products/java-media/jai/iio.html</a>.
-        </td><td align="left">
-          JAI is required
-          if you wish to include graphics in a PDF file being
-          generated with FOP.
-        </td><td align="left">
-          Download the package from <a class="ulink" 
href="http://java.sun.com/products/java-media/jai/iio.html"; 
target="_top">Sun</a>.
-        </td><td align="left">
-          Download the package from <a class="ulink" 
href="http://java.sun.com/products/java-media/jai/iio.html"; 
target="_top">Sun</a>.
-        </td></tr></tbody></table></div></div><br class="table-break"><p>
-  If you install j2re, set the <span class="emphasis"><em>JAVA_HOME</em></span>
-  environment variable to the top directory of the j2re
-  installation.  If you encounter problems with the Java
-  installation, you may also need to add this path to the
-  <span class="emphasis"><em>CLASSPATH</em></span> environment variable.
-</p></div></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="downloading"></a>Downloading <span 
class="application">Gnash</span></h2></div></div></div><p>
-There are two ways to download <span class="application">Gnash</span>: using a 
package manager or by downloading the source code and building it on your 
system. If possible, it is advisable to use a package manager to download <span 
class="application">Gnash</span>, as it will resolve dependencies for you.  
However, if you want the very latest features, or a <span 
class="application">Gnash</span> package is not available for your operating 
system, it is better to download the source code and build <span 
class="application">Gnash</span> locally.
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="packagemanager"></a>Using a Package 
Manager</h3></div></div></div><p>
-  <span class="application">Gnash</span> is available as a package for a 
number of Linux and BSD
-  distributions, such as <a class="ulink" 
href="http://packages.ubuntu.com/feisty/utils/gnash"; target="_top">Ubuntu</a>,
-  <a class="ulink" href="http://packages.debian.org/unstable/utils/gnash"; 
target="_top">Debian</a>,
-  <a class="ulink" href="http://www.freshports.org/graphics/gnash/"; 
target="_top">FreeBSD</a>, 
-  and <a class="ulink" href="http://ports.openbsd.nu/www/gnash"; 
target="_top">OpenBSD</a>.
-  There is also an unofficial Fedora RPM.  
-  This is not an extensive list, and you are advised to search
-  if you wish to use a package manager on a different system.          
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="gettingsource"></a>Getting the 
Source</h3></div></div></div><p>
-    <span class="application">Gnash</span> is available as a <a class="link" 
href="#sourcereleases" title="Releases">release
-    tarball</a>, a <a class="link" href="#sourcerepo" 
title="Repository">development 
-    checkout</a>, or a <a class="link" href="#sourcesnapshot" 
title="Snapshot">development
-    snapshot</a>.
-  </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="sourcereleases"></a>Releases</h4></div></div></div><p>
-      The source can be acquired from a
-      <a class="ulink" href="http://www.gnu.org/prep/ftp.html"; 
target="_top">GNU FTP
-      Mirror</a>.  The release version is intended to be
-      stable, and is probably your best choice if the release took
-      place recently.  If you need features or fixes which were
-      introduced after the release, consider a 
-      <a class="link" href="#sourcerepo" title="Repository">CVS checkout</a> 
or the
-      <a class="link" href="#sourcesnapshot" title="Snapshot">daily 
snapshot</a>.
-    </p><p>
-      To download, select a mirror near you, then choose the
-      <code class="filename">gnash</code> directory.
-    </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="sourcerepo"></a>Repository</h4></div></div></div><p>
-      The latest development sources are available via
-      anonymous CVS.  This is recommended
-      if you need features or bug fixes which were introduced after
-      the <a class="link" href="#sourcereleases" title="Releases">last 
release</a>.  Look at
-      the <a class="link" href="#sourcesnapshot" title="Snapshot">daily 
snapshot</a> if you
-      experience difficulty accessing the repository.
-    </p><p>
-To download via anonymous CVS, first set the
-      environment variable <span 
class="command"><strong>CVS_RSH</strong></span> to <span 
class="command"><strong>ssh</strong></span>, then check out the source code.  
The example below uses the GNU Bourne-Again shell (bash):
-</p><pre class="screen">
-export CVS_RSH="ssh"
-cvs -z3 -d:pserver:address@hidden:/sources/gnash co gnash
-</pre><p>
-      It is also possible to browse the repository
-      <a class="ulink" 
href="http://cvs.savannah.gnu.org/viewcvs/gnash/?root=gnash"; 
target="_top">http://cvs.savannah.gnu.org/viewcvs/gnash/?root=gnash</a> on the 
web.
-    </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="sourcesnapshot"></a>Snapshot</h4></div></div></div><p>
-      The daily development snapshot can be downloaded from
-      <a class="ulink" href="http://www.gnashdev.org/dev_snapshots/"; 
target="_top">http://www.gnashdev.org/dev_snapshots/</a>.
-      This is the best option if you need changes which were introduced
-      after the <a class="link" href="#sourcereleases" title="Releases">last 
release</a> of
-      <span class="application">Gnash</span>, but are unable to <a 
class="link" href="#sourcerepo" title="Repository">download
-      directly from the repository.</a>
-    </p></div></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="pre-configuration"></a>Pre-Compile Configuration</h2></div></div></div><p>
-<span class="application">Gnash</span>, like most GNU projects, allows a user 
to select various options before compiling its source code. These options 
include selecting from the available features, specifying custom paths for 
installation, and cross compiling.  <span class="application">Gnash</span> uses 
<a class="ulink" href="http://www.gnu.org/software/autoconf/"; target="_top">GNU 
Autoconf</a>
-  for configuration.
-</p><p>
-  If you opted to download the 
-  <a class="link" href="#sourcerepo" title="Repository">development 
checkout</a>
-  of <span class="application">Gnash</span>, the <span 
class="emphasis"><em>configure</em></span> script will
-  not be included.  It can be created by running 
-  <span class="emphasis"><em>autogen.sh</em></span> from the source root 
directory:
-  </p><pre class="programlisting">
-  ./autogen.sh
-  </pre><p>
-  Note that there are some 
-  <a class="link" href="#codedepend" title="Code 
Dependencies">dependencies</a> for
-  autogen.
-</p><p>
-  All the standard <span class="command"><strong>configure</strong></span> 
options
-  are available.  In addition, <span class="application">Gnash</span> has two 
types of
-  options: those that <a class="link" href="#features" title="Features">enable 
or disable 
-  features</a>, and
-  those that <a class="link" href="#custompath" title="Specifying Custom 
Paths">specify custom paths for 
-  development packages</a>
-  which are not found during the default search.  A complete
-  list of <span class="emphasis"><em>all</em></span> configuration options, 
including
-  standard ones, can be seen by typing:
-  </p><pre class="programlisting">
-  ./configure --help |less
-  </pre><p>
-  Read further for a more detailed explanation of <span 
class="application">Gnash</span>-specific
-  options.
-</p><p>
-  The syntax for running <span class="emphasis"><em>configure</em></span> is 
as follows:
-  </p><pre class="programlisting">
-  configure <em class="replaceable"><code>&lt;options&gt;</code></em>
-  </pre><p>
-  The example below shows the <span 
class="command"><strong>configure</strong></span> options
-  which create the smallest working standalone version of <span 
class="application">Gnash</span>.  In
-  this example, <span class="command"><strong>configure</strong></span> is 
being run from the
-  source root directory:
-</p><pre class="programlisting">
-./configure --disable-debugger --disable-cygnal --disable-docbook \
---disable-plugin --enable-media=mad --enable-gui=sdl
-</pre><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="features"></a>Features</h3></div></div></div><p>
-  Some switches can be used during configuration to enable or disable
-  features of <span class="application">Gnash</span>. Some of the most 
important configuration options
-  are:
-</p><div class="itemizedlist"><ul type="opencircle"><li 
style="list-style-type: circle"><p>
-<code class="option">--enable-gui</code> lets you specify your GUI of choice.
-The default option is GTK.
-    </p></li><li style="list-style-type: circle"><p>
-<code class="option">--enable-renderer</code> allows a renderer to be
-chosen.  The default renderer is OpenGL.
-    </p></li><li style="list-style-type: circle"><p>
-<code class="option">--enable-media</code> permits a media handler to be
-selected.  The default is FFMPEG with SDL sound.
-    </p></li></ul></div><p>
-  A complete list of available features follows.
-</p><div class="table"><a name="tb-config-features"></a><p 
class="title"><b>Table 3.5. Configuration Options - Features</b></p><div 
class="table-contents"><table summary="Configuration Options - Features" 
border="1"><colgroup><col align="left"><col 
align="left"></colgroup><thead><tr><th align="left">Option</th><th 
align="left">Function</th></tr></thead><tbody><tr><td align="left"><code 
class="option">--enable-debugger</code></td><td align="left">Enable support for 
the Flash debugger. The debugger is
-        mainly of interest to Flash developers.</td></tr><tr><td 
align="left"><code class="option">--enable-dmalloc</code></td><td 
align="left">Enable support for the DMalloc memory debugging 
tool.</td></tr><tr><td align="left"> <code 
class="option">--enable-docbook</code></td><td align="left">  Enable the 
generation of HTML and PDF versions of the documentation
-       from the XML. You will then be able to use <span 
class="command"><strong>make html</strong></span> and <span 
class="command"><strong>make pdf</strong></span>.</td></tr><tr><td 
align="left">  <code class="option">--enable-embedded</code></td><td 
align="left"> Link to Qt-embedded, do not use X. This is only used by
-        Klash</td></tr><tr><td align="left"> <code 
class="option">--disable-fork</code></td><td align="left">Disable the plugin 
from forking the standalone player, and
-        using a thread for the player instead. Currently forking
-        the standalone player gives you the best results.</td></tr><tr><td 
align="left"><code class="option">--enable-ghelp</code>
-</td><td align="left">Enable support for the GNOME help 
system.</td></tr><tr><td align="left"><code 
class="option">--disable-glext</code>
-</td><td align="left">Disable using GtkGlExt, which forces the use of SDL
-        instead. By default if the GtkGL extension for Gtk is found
-        by the configure script, the GTK-enabled GUI is 
built.</td></tr><tr><td align="left"><code 
class="option">--enable-gui=gtk|sdl|kde|fltk|fb</code></td><td 
align="left"><p>Select the Graphic User Interface to use (choose one).</p>
- <div class="variablelist"><dl><dt><span class="term">GTK</span></dt><dd><p>
-    The GTK+ toolkit, which is the default GUI.
-    Said to interwork particularly well with firefox.
-</p></dd><dt><span class="term">SDL</span></dt><dd><p>
-    Simple DirectMedia Layer, a simple and portable GUI.
-    Its sound facilities are used when --enable-media=ffmpeg|mad
-    regardless of whether it is also in charge of the GUI.
-</p></dd><dt><span class="term">KDE</span></dt><dd><p>
-    An interface adapted to the KDE Desktop Environment.
-    This must be selected when building the Konqueror plugin
-    "klash". Furthermore, the only renderer that currently
-    works with KDE is opengl.
-</p></dd><dt><span class="term">FLTK</span></dt><dd><p>
-    Fast Light ToolKit, low on resource usage.
-    Since all build using fltk are now broken, we declare it
-    "for developers".
-</p></dd><dt><span class="term">FB</span></dt><dd><p>
-    The Linux Frame Buffer, also known as /dev/fb0.
-    AGG is the only renderer that can currently be used
-    with the framebuffer GUI.
-</p></dd></dl></div>
-</td></tr><tr><td align="left"><code 
class="option">--enable-i810-lod-bias</code>
-</td><td align="left">Enable fix for Intel 810 LOD bias problem. Older versions
-        of libMesa on the Intel i810 or i815 graphics processor
-        need this flag or Gnash will core dump. This has been
-        fixed in newer versions (summer 2005) of libMesa.</td></tr><tr><td 
align="left"><code class="option">--enable-libsuffix</code>
-</td><td align="left"><code class="filename">/lib</code> directory suffix 
(64,32,none=default). This is only
-        used by Klash.</td></tr><tr><td align="left"><code 
class="option">--enable-mac</code>
-</td><td align="left">Link to Qt/Mac (don't use X). This is only used by
-        Klash.</td></tr><tr><td align="left"><code 
class="option">--enable-media=ffmpeg|mad|gst</code>
-</td><td align="left">  <p>
-        Select the specified media decoder and sound engine.
-        FFMPEG and MAD use the SDL sound engine; GST uses its own.
-       MAD only decodes MP3 sounds and uses integer arithmetic while
-       the others also decode video files and use floating point.
-        <code class="option">FFMPEG</code> is the default decoder.
-      </p>
-      <p>
-        You should only select one media decoder.
-      </p></td></tr><tr><td align="left">
-    <code class="option">--disable-nsapi</code>
-    <code class="option">--enable-nsapi</code>
-  </td><td align="left">Force disable/enable building the NPAPI plugin.
-         By default the Mozilla plugin is built if the GTK gui 
-         is selected.  Specify the 
-         <code class="option">--with-npapi-plugindir=</code> option to specify 
where the
-         plugin should be installed.
-   </td></tr><tr><td align="left">
-     <code class="option">--disable-kparts</code>
-     <code class="option">--enable-kparts</code>
-  </td><td align="left">Force disable/enable building the KPARTS plugin. By 
default the
-        KDE plugin is built if the kde gui is selected. 
-        Specify the <code class="option">--with-kde-plugindir=</code> and
-        <code class="option">--with-kde-servicesdir=</code> options (or more 
generally
-        the <code class="option">--with-kde-pluginprefix=</code> one) to 
specify where the
-        plugin should be installed. The default installation dir is extracted
-        from kde-config.
-  </td></tr><tr><td align="left">
-     <code class="option">--disable-plugins</code>
-  </td><td align="left">Disable build of both kparts and npapi 
plugins</td></tr><tr><td align="left">    <code 
class="option">--enable-qtopia</code>
-</td><td align="left">  Link to Qt-embedded, link to the Qtopia
-        Environment. This is only used by Klash.</td></tr><tr><td 
align="left"><code class="option">--enable-renderer=opengl|cairo|agg</code>
-</td><td align="left">Enable support for the a graphics backend. Currently
-        only <code class="option">opengl</code> and
-        <code class="option">agg</code> work sufficiently. OpenGL is
-        used when you have hardware accelerated graphics. AGG i
-        used when you do not have hardware accelerated
-        graphics. Typically most desktop machines have OpenGL
-        support, and most embedded systems do not. OpenGl is the
-        default when building Gnash, although the quality of AGG's
-        rendering is currently superior to OpenGL.</td></tr><tr><td 
align="left"><code class="option">--enable-sdk-install</code>
-</td><td align="left">Enable installing the libraries and headers as an SDK.
-</td></tr><tr><td align="left"><code class="option">--disable-shared</code>
-</td><td align="left">Enable installing the shared libraries and headers.
-        Note that the extensions mechanism may not work if shared
-        libraries are disabled.</td></tr><tr><td align="left"><code 
class="option">--enable-strict</code>
-</td><td align="left">Turn verbose GCC compiler warnings. By default only
-        <code class="option">-Wall</code> is used with GCC.</td></tr><tr><td 
align="left"><code class="option">--enable-fps-debug</code>
-</td><td align="left">Enable FPS debugging code. When this feature is compiled 
in you can use the -f switch of <span class="application">Gnash</span>
-       to have FPS printed at regular intervals.</td></tr><tr><td 
align="left"><code class="option">--enable-write</code></td><td 
align="left">Makes the Mozilla plugin write the currently playing SWF movie to 
<code class="filename">/tmp</code>.
-</td></tr><tr><td align="left"><code class="option">--disable-mit-shm</code>
-</td><td align="left">Disable support for the MIT-SHM X extensions.
-       Currently support is only available using GTK gui and AGG renderer.
-       Keeping it enabled is not a problem as it will not be used if not
-       available in the current X session.
-       </td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="custompath"></a>Specifying Custom Paths</h3></div></div></div><p>
-  By default, none of these options should be required
-  unless you want <span class="application">Gnash</span> to use a specific 
version of a
-  development package, or if the configure test fails to
-  find a component.  Please <a class="link" href="#bugreport" title="Chapter 
5. Reporting Bugs">report the problem</a> if a
-  configure test fails.
-</p><p>
-  The following custom path options are available:
-</p><div class="table"><a name="tb-configure-paths"></a><p 
class="title"><b>Table 3.6. Custom Path Options</b></p><div 
class="table-contents"><table summary="Custom Path Options" 
border="1"><colgroup><col align="left"><col 
align="left"></colgroup><thead><tr><th align="left">Option</th><th 
align="left">Function</th></tr></thead><tbody><tr><td align="left">
-    <code class="option">--x-includes=DIR</code>
-    </td><td align="left">
-        X include files are in DIR.
-      </td></tr><tr><td align="left">
-    <code class="option">--x-libraries=DIR</code>
-    </td><td align="left">
-        X library files are in DIR.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-libxml=PFX</code>
-    </td><td align="left">
-        Prefix to where libxml is installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-libxml-libraries=DIR</code>
-    </td><td align="left">
-        Directory where libxml library is installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-libxml-includes=DIR</code>
-    </td><td align="left">
-        Directory where libxml header files are installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-docbook=DIR</code>
-    </td><td align="left">
-        Directory where the DocBook style-sheets are installed.        
-      </td></tr><tr><td align="left">
-    <code class="option">--with-sdl-prefix=PFX</code>
-    </td><td align="left">
-        Prefix where SDL is installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-zlib-incl</code>
-    </td><td align="left">
-        Directory where zlib header is installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-zlib-lib</code>
-    </td><td align="left">
-        Directory where zlib library is installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-jpeg-incl</code>
-    </td><td align="left">
-        Directory where jpeg header is installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-jpeg-lib</code>
-    </td><td align="left">
-        Directory where jpeg library is installed.
-     </td></tr><tr><td align="left">
-    <code class="option">--with-png-incl</code>
-    </td><td align="left">
-        Directory where png header is installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-png-lib</code>
-    </td><td align="left">
-        Directory where png library is installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-qt-dir</code>
-    </td><td align="left">
-        Directory where QT is installed. This is only used by
-        the Klash plugin.
-    </td></tr><tr><td align="left">
-    <code class="option">--with-qt-includes</code>
-    </td><td align="left">
-        Directory where the QT header files are installed. This
-        is only used by the Klash plugin.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-qt-libraries</code>
-    </td><td align="left">
-        Directory where the QT libraries are installed. This is
-        only used by the Klash plugin.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-npapi-plugindir</code>
-    </td><td align="left">
-        This is the directory to install the NPAPI (Mozilla) plugin in.
-        By default it goes to ~/.mozilla/plugins.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-kde-pluginprefix</code>
-    </td><td align="left">
-        This option sets the default install dir for all KPARTS (kde) files.
-       The plugin will be installed in PREFIX/lib/kde3, use <code 
class="option">-with-kde-plugindir</code> to override.
-       The service file in PREFIX/share/services, use <code 
class="option">--with-kde-servicesdir</code> to override.
-       The config file in PREFIX/share/config, use <code 
class="option">--with-kde-configdir</code> to override.
-       The appdata file in PREFIX/share/apps/klash, use <code 
class="option">--with-kde-appsdatadir</code> to override.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-kde-plugindir</code>
-    </td><td align="left">
-        This is the directory to install the KPARTS (kde) plugin in.
-        By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install module --expandvars,
-        or $(prefix)/share/services if kde-config is not found.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-kde-servicesdir</code>
-    </td><td align="left">
-        This is the directory to install the KPARTS (kde) service in.
-        By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install services --expandvars,
-        or $(libdir)/kde3 if kde-config is not found.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-kde-configdir</code>
-    </td><td align="left">
-        This is the directory to install the KPARTS (kde) config files in.
-        By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install config --expandvars,
-        or $(prefix)/share/config if kde-config is not found.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-kde-appsdatadir</code>
-    </td><td align="left">
-        This is the directory to install the KPARTS (kde) application data 
files in.
-        By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install data --expandvars,
-        or $(prefix)/share/apps if kde-config is not found.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-ming</code>
-    </td><td align="left">
-        Ming is used to build test cases, but not by the Gnash
-        player itself.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-mad_incl</code>
-    </td><td align="left">
-        Directory where libmad header is installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-mad_lib</code>
-    </td><td align="left">
-        Directory where libmad library is installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-ogg_incl</code>
-    </td><td align="left">
-        Directory where the libogg headers are installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-ogg_lib</code>
-    </td><td align="left">
-        Directory where the libogg library is installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-gstreamer-incl</code>
-    </td><td align="left">
-        Directory where the Gstreamer headers are
-        installed. Gstreamer version 0.10 or greater must be used.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-gstreamer-lib</code>
-    </td><td align="left">
-        Directory where the Gstreamer library is
-        installed. Gstreamer version 0.10 or greater must be used.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-opengl-includes</code>
-    </td><td align="left">
-        Directory where OpenGL (libMesa) headers are installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-opengl-lib</code>
-    </td><td align="left">
-        Directory where the OpenGL (libMesa) library is installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-glext-incl</code>
-    </td><td align="left">
-        Directory where GtkGlExt headers are installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-glext-lib</code>
-    </td><td align="left">
-        Directory where the GtkGlExt library is installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-gtk2-incl</code>
-    </td><td align="left">
-        Directory where the Gtk2 headers are installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-gtk2-lib</code>
-    </td><td align="left">
-        Directory where the Gtk2 library is installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-cairo_incl</code>
-    </td><td align="left">
-        Directory where the Cairo headers are installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-cairo-lib</code>
-    </td><td align="left">
-        Directory where the Cairo library is installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-glib-incl</code>
-    </td><td align="left">
-        Directory where the Glib headers are installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-glib-lib</code>
-    </td><td align="left">
-        Directory where the Glib library is installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-pango-incl</code>
-    </td><td align="left">
-        Directory where the Pango headers are installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-pango-lib</code>
-    </td><td align="left">
-        Directory where the Pango library is installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-atk-incl</code>
-    </td><td align="left">
-        Directory where the ATK headers are installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-atk-lib</code>
-    </td><td align="left">
-        Directory where the ATK library is installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-pthread-incl</code>
-    </td><td align="left">
-        Directory where the Pthread headers are installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-pthread-lib</code>
-    </td><td align="left">
-        Directory where the Pthread library is installed.
-   </td></tr><tr><td align="left">
-    <code class="option">--with-agg-incl</code>
-    </td><td align="left">
-        Directory where the AGG (Antigrain) headers are installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-agg-lib</code>
-    </td><td align="left">
-        Directory where the AGG (Antigrain) library is installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-ffmpeg-incl</code>
-    </td><td align="left">
-        Directory where the FFMPEG headers are installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-ffmpeg-lib</code>
-    </td><td align="left">
-        Directory where the FFMPEG library is installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-boost-incl</code>
-    </td><td align="left">
-        Directory where the Boost headers are installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-boost-lib</code>
-    </td><td align="left">
-        Directory where the Boost library is installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-curl-incl</code>
-    </td><td align="left">
-        Directory where the libCurl headers are installed.
-      </td></tr><tr><td align="left">
-    <code class="option">--with-curl-lib</code>
-    </td><td align="left">
-        Directory where the libCurl library is installed.
-      </td></tr></tbody></table></div></div><br class="table-break"></div><div 
class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a 
name="crosscompilingconfiguration"></a>Cross Compiling</h3></div></div></div><p>
-  To cross configure and compile <span class="application">Gnash</span>, begin 
by building a target system
-  on your workstation.  This includes cross compilers for the target
-  architecture, and some system headers. 
-  You will also need the following packages to be built for the target
-  system: <span class="emphasis"><em>libxml2</em></span>, <span 
class="emphasis"><em>libpng</em></span> 
-  (if used), <span class="emphasis"><em>libjpeg</em></span> (if used), your
-  GUI library, your renderer, and your video handler (if used).  The page
-  <a class="ulink" href="http://frank.harvard.edu/~coldwell/toolchain/"; 
target="_top">http://frank.harvard.edu/~coldwell/toolchain/</a>
-  has instructions on building a target system from scratch and
-  offers a shell script to make the process easier.
-</p><p>
-  Note that you may have some difficulties getting libMesa (opengl)
-  to cross compile.
-</p><p>
-  The important configuration options are the ones which specify the
-  architecture for the build:
-</p><div class="variablelist"><dl><dt><span 
class="term">--target</span></dt><dd><p>
-        The target architecture, where the final executables are expected
-        to run.
-      </p></dd><dt><span class="term">--host</span></dt><dd><p>
-        The host architecture, where the executables are expected
-        to run.  Usually this is the same as the <span 
class="emphasis"><em>--target</em></span>,
-        except when building a compiler as a Canadian Cross.  In this
-        case, you might build a cross compiler on a UNIX system which
-        runs on a win32 machine, producing code for a third architecture,
-        such as ARM.  In this example, <span 
class="emphasis"><em>--target</em></span> would
-        be 'arm-unknown-linux-gnu', while <span 
class="emphasis"><em>--host</em></span> would 
-        be 'win32'.
-      </p></dd><dt><span class="term">--build</span></dt><dd><p>
-        This is the system the build is running on.
-      </p></dd></dl></div><p>
-  The following example of <span class="emphasis"><em>configure</em></span> 
builds for an
-  ARM system on an x86 system.  It was run after an ARM system was built
-  in <code class="filename">/usr/arm</code> and other required libraries were 
-  cross compiled.
-  </p><pre class="programlisting">
-./configure -target=arm-unknown-linux-gnu --prefix=/usr/arm \
---host=arm-unknown-linux-gnu --build=i686-pc-linux-gnu --disable-plugin
-  </pre><p>
-</p></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="compiling"></a>Building from Source</h2></div></div></div><p>
-  Once you have <a class="link" href="#pre-configuration" title="Pre-Compile 
Configuration">configured</a> <span class="application">Gnash</span>,
-  you are ready to build the code.  <span class="application">Gnash</span> is 
built using
-  <span class="emphasis"><em>GNU make</em></span>.
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="compile"></a>Compiling the Code</h3></div></div></div><p>
-    The most basic way to compile code is simply:
-    </p><pre class="programlisting">
-  make
-    </pre><p>
-    If the compilation ends with an error, check the output of 
-    <span class="emphasis"><em>configure</em></span> and ensure that you are 
not missing 
-    any required prerequisites.  The output of <span 
class="command"><strong>make</strong></span> can be verbose; you may wish to 
pipe the output to a file.
-  </p><p>
-    The variables used by <span class="emphasis"><em>make</em></span> can be 
redefined when
-    the program is invoked, if you desire it.   The most interesting flags
-    are <span class="emphasis"><em>CFLAGS</em></span> and <span 
class="emphasis"><em>CXXFLAGS</em></span>,
-    which are often used to enable debugging or turn of optimization.
-    The default value for both of these variables is
-    <span class="emphasis"><em>-O2 -g</em></span>.  A list of influential 
-    environment variables can be seen in the configuration help:
-</p><pre class="programlisting">./configure --help</pre><p>
-    In the following example, debugging is enabled and optimization is
-    disabled:
-</p><pre class="programlisting">make CFLAGS=-g CXXFLAGS=-g</pre></div><div 
class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a 
name="processdoc"></a>Creating the Documentation</h3></div></div></div><p>
-    By default, documentation is not built when you
-    <a class="link" href="#install" title="Installation">install</a> <span 
class="application">Gnash</span>.  This is because
-    there are a number of <a class="link" href="#docdepend" 
title="Documentation Dependencies">dependencies 
-    for the documentation</a>.  Documentation is built when it
-    is specified with a specific target in the generated 
-    <span class="command"><strong>Makefile</strong></span> in the <code 
class="filename">doc/C</code>
-    sub-directory.  If you type <span class="command"><strong>make 
install</strong></span> in
-    this directory, all documents will be built.
-  </p><p>
-    You must specify a target output format when you wish to create
-    documentation.  The available output formats are: <span 
class="command"><strong>html</strong></span>,
-    <span class="command"><strong>pdf</strong></span>, <span 
class="command"><strong>info</strong></span>, 
-    <span class="command"><strong>man</strong></span>, and <span 
class="command"><strong>alldocs</strong></span>.  
-    It is also possible to output <span class="command"><strong>GNOME 
help</strong></span> if
-    the <a class="link" href="#features" title="Features">configure option</a>
-    <code class="option">--enable-ghelp</code> was used.  
-    The <span class="command"><strong>alldocs</strong></span> target will 
build all output formats
-    except <span class="emphasis"><em>GNOME help</em></span>.
-    For example, to create HTML output, type:
-    </p><pre class="programlisting">
-  make html
-    </pre><p>
-  </p><p>
-    <span class="application">Gnash</span> also uses <a class="ulink" 
href="http://www.stack.nl/~dimitri/doxygen/index.html"; 
target="_top">Doxygen</a> to produce <span class="emphasis"><em>HTML</em></span>
-    documentation of <span class="application">Gnash</span> internals.  You 
must have Doxygen installed
-    to produce this documentation, which is built from the
-    <code class="filename">doc</code> directory with the command (documents
-    will be placed in the subdirectory <code 
class="filename">apidoc/html</code>):
-    </p><pre class="programlisting">
-  make apidoc
-    </pre><p>
-  </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="runtests"></a>Running the Tests</h3></div></div></div><p>
-    Before beginning the potentially lengthy install, it is wise to test the 
installation.  If a test fails, please report it by following the
-    <a class="link" href="#bugreport" title="Chapter 5. Reporting 
Bugs">instructions for reporting a bug</a>.
-  </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="dejagnu"></a>Using DejaGnu</h4></div></div></div><p>
-  
-      The easiest way to run <span class="application">Gnash</span>'s test 
suite is to install
-      <span class="emphasis"><em><a class="ulink" 
href="http://www.gnu.org/software/dejagnu"; 
target="_top">DejaGnu</a></em></span>.
-      After installing DejaGnu, run:
-      </p><pre class="programlisting">
-        make check
-      </pre><p>
-    </p><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 
class="title"><a name="testing_verbosity"></a>Increasing 
Verbosity</h5></div></div></div><p>
-        If you encounter a problem with a test, increasing the
-        verbosity may make the issue easier to spot.
-        Additional details are visible when 
-        <span class="emphasis"><em>RUNTESTFLAGS</em></span> are used to add 
the 
-        <span class="emphasis"><em>verbose</em></span> and <span 
class="emphasis"><em>all</em></span> options.
-        The <code class="option">verbose</code> option prints more information 
about the testing process, while
-        the <code class="option">all</code> option includes details on passing 
tests.  
-        </p><pre class="programlisting">
-  make check RUNTESTFLAGS="-v -a"
-        </pre><p>
-      </p></div><div class="sect4" lang="en"><div 
class="titlepage"><div><div><h5 class="title"><a 
name="running_some_tests"></a>Running Some Tests</h5></div></div></div><p>
-        It is possible to run just a single test, or 
-        a subdirectory of tests, by specifying the directory or 
-        compiled test file.
-      </p><p>
-        Some tests rely on <span 
class="emphasis"><em>testsuite/Dejagnu.swf</em></span>,
-        which in turn relies on <span class="emphasis"><em>Ming</em></span>.
-        This file is created when you run <span class="command"><strong>make 
check</strong></span> for the entire
-        testsuite, and can also be created on demand:
-        </p><pre class="programlisting">
-  make -C testsuite Dejagnu.swf 
-        </pre><p>
-      </p><p>
-        In this example, the <span 
class="command"><strong>clip_as_button2</strong></span> test is compiled and
-        run:
-        </p><pre class="programlisting">
-  make -C testsuite/samples clip_as_button2-TestRunner 
-  cd testsuite/samples &amp;&amp; ./clip_as_button2-TestRunner
-        </pre><p>
-        This creates and runs all the tests in the directory
-        <code class="filename">movies.all</code>:
-        </p><pre class="programlisting">
-  make -C testsuite/movies.all check
-        </pre><p>
-      </p></div></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a name="manually"></a>Running 
The Tests Manually</h4></div></div></div><p>
-      You may also run test cases by hand, which can be useful if you
-      want to see all the debugging output from the test case.  Often
-      the messages which come from deep within <span 
class="application">Gnash</span> are most useful for
-      development.
-    </p><p>
-      The first step is to compile the test case, which can be done
-      with <code class="filename">make XML-v#.swf</code> where the '#' is 
replaced
-       with the <span class="emphasis"><em>target</em></span> SWF version or 
versions.  
-      For example:
-      </p><pre class="programlisting">
-  make XML-v{5,6,7,8}.swf
-      </pre><p>
-    </p><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 
class="title"><a name="manual_compiled_tests"></a>Movie 
tests</h5></div></div></div><p>
-        This creates a Flash movie version of the test case, which
-        can be run with a standalone Flash player.  For instance,
-        the target for SWF version 6 could be run with <span 
class="application">Gnash</span>:
-        </p><pre class="programlisting">
-   gnash -v XML-v6.swf
-        </pre><p>
-      </p></div><div class="sect4" lang="en"><div 
class="titlepage"><div><div><h5 class="title"><a 
name="manual_actionscript_tests"></a>ActionScript Unit 
Tests</h5></div></div></div><p>
-        Unit tests for ActionScript classes in <span 
class="command"><strong>testsuite/actionscript.all</strong></span>
-        are run without a graphical display:
-        </p><pre class="programlisting">
-  gprocessor -v XML-v6.swf
-        </pre><p>
-      </p></div></div></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="install"></a>Installation</h2></div></div></div><p>
-Now that <span class="application">Gnash</span> has been compiled and tested, 
use the following command to install it:
-  </p><pre class="programlisting">
-  make install
-  </pre><p>
-The above command installs the standalone player.  If the correct files were 
found by <span class="command"><strong>configure</strong></span> and if the 
<code class="option">--disable-plugin</code> option was not specified, the 
<span class="application">Gnash</span> browser plugin is also installed.
-</p><p>
-  <span class="application">Gnash</span> installs a number of <a class="link" 
href="#libinstall" title="Libraries">libraries</a>,
-  namely: <span class="emphasis"><em>libbase</em></span>,
-  <span class="emphasis"><em>libgeometry</em></span>, <span 
class="emphasis"><em>libbackend</em></span>,
-  <span class="emphasis"><em>libserver</em></span>, and <span 
class="emphasis"><em>libmozsdk</em></span>.
-  <a class="link" href="#appinstall" title="Executables">Executables</a>
-  consist of the (optional) plugin, <code class="filename">gprocessor</code>,
-  <code class="filename">cygnal</code>,  and <code 
class="filename">gnash</code>.
-  <a class="link" href="#docinstall" title="Documentation">Documentation</a> 
may also be installed.
-  The installation location is controlled with the
-  <span class="emphasis"><em>--prefix</em></span> <a class="link" 
href="#custompath" title="Specifying Custom Paths">configure
-  option</a>, except for plugins, which are explicitly set with
-  <span class="emphasis"><em>--plugin-dir</em></span>.
-</p><p>
-  Note that if you are using a single file-system <span 
class="emphasis"><em>NFS</em></span>
-  mounted to multiple platforms, the 
-  <a class="link" href="#custompath" title="Specifying Custom 
Paths">configuration option</a> 
-  <span class="emphasis"><em>--exec-prefix</em></span> may be used to specify 
where
-  platform-dependent executables and libraries are installed.
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="libinstall"></a>Libraries</h3></div></div></div><p>
-    Installed libraries are located in 
-    <code class="filename">/usr/local/lib</code> by default.
-    If the <span class="emphasis"><em>--prefix</em></span> option was used in
-    <a class="link" href="#pre-configuration" title="Pre-Compile 
Configuration">configuration</a>, the libraries will
-    be installed in the directory <code class="filename">lib</code> inside the
-    path you specified.  If the libraries are stored in a non-standard
-    location, you must identify the path in one of two ways.
-  </p><p>
-    The traditional way to do this on UNIX
-    platforms is to set the <span 
class="emphasis"><em>LD_LIBRARY_PATH</em></span> variable
-    to the path plus <code class="filename">/lib</code>.  For example, if you
-    installed in <code class="filename">/home/gnash</code>, the 
-    <span class="emphasis"><em>LD_LIBRARY_PATH</em></span> path would be
-    <code class="filename">/home/gnash/lib</code>.  Multiple paths are 
delimited
-    with a colon (':').
-  </p><p>
-    GNU/Linux allows the custom path to be added to
-    <code class="filename">/etc/ld.so.conf</code>.  After adding the path,
-    run <span class="emphasis"><em>ldconfig</em></span> as root to update the 
runtime
-    cache.
-  </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="appinstall"></a>Executables</h3></div></div></div><p>
-   The Mozilla plugin is built from headers (the Mozilla SDK) provided with 
Gnash and
-       does not need extra development packages to be installed. By default, 
the
-       plugin is installed to <code 
class="filename">~/.mozilla/plugins/</code>. To enable
-       the plugin for other users, copy the file <code 
class="filename">libgnashplugin.so</code>
-       to <code class="filename">.mozilla/plugins/</code> in their home 
directory.
-       You may also specify the plugin installation directory by using the 
-       <code class="option">--with-plugindir</code> <a class="link" 
href="#custompath" title="Specifying Custom Paths">option 
-       at configuration time</a>.
-   </p><p>
-   These defaults are likely to change in future versions of Gnash.
-   </p><p>
-    The remaining executables are installed in the <code 
class="filename">bin</code>
-    subdirectory of the directory specified by during configuration.
-    If no path was specified, the default is 
-    <code class="filename">/usr/local/bin</code>.
-  </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="docinstall"></a>Documentation</h3></div></div></div><p>
-    Documentation is not built by default; please refer to the 
-    <a class="link" href="#processdoc" title="Creating the 
Documentation">section on documentation</a> for
-    more information on building documentation.
-  </p><p>
-    <span class="command"><strong>man</strong></span> and <span 
class="command"><strong>info</strong></span> 
-    are installed in <code class="filename">/usr/local/share/man</code>
-    and <code class="filename">/usr/local/share/info</code> respectively, 
unless
-    the <code class="option">--mandif</code> or <code 
class="option">--infodir</code>
-    <a class="link" href="#custompath" title="Specifying Custom 
Paths">configuration options</a> are used.
-  </p><p>
-    <span class="emphasis"><em>GNOME help</em></span> documentation uses the 
directory
-    <code class="filename">/usr/local/share/gnash/doc/gnash/C/</code> by 
default.
-    A configuration file in the <span class="application">Gnash</span> source 
tree,
-    <code class="filename">doc/C/gnash.omf</code> is used to specify under
-    which menu item <span class="application">Gnash</span> appears in the 
<span class="emphasis"><em>GNOME help</em></span>
-    system.
-  </p></div></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="usage"></a>Chapter 4. 
Using <span class="application">Gnash</span></h2></div></div></div><div 
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a 
href="#options"><span class="application">Gnash</span> Command Line 
Options</a></span></dt><dt><span class="sect1"><a href="#keys"><span 
class="application">Gnash</span> Interactive Control 
Keys</a></span></dt><dt><span class="sect1"><a href="#gnashrc">User 
Configuration File</a></span></dt></dl></div><p>
-When used as a standalone player, you can play any Flash file from the command 
line by entering a command of the format:
-</p><pre class="programlisting">
-gnash <em class="replaceable"><code>&lt;option&gt; 
&lt;flashfile.swf&gt;</code></em>
-</pre><p>
-The only required argument is the name (and location)of the file to be played.
-    </p><p>
-      The available options are listed in the following section, or you may 
view them in the terminal window by executing the following at the command line:
-</p><pre class="programlisting">
-gnash --help |less
-</pre><p>
-    </p><p>
-The source code download of <span class="application">Gnash</span> includes 
several example .SWF files.  They are located in the <code 
class="filename">testsuite/samples/</code> directory of the <span 
class="application">Gnash</span> source directory.  If you have installed <span 
class="application">Gnash</span> correctly, issuing the a command similar to 
the following plays a short animation of a car swerving and crashing:
-</p><pre class="programlisting">
-gnash /home/<em 
class="replaceable"><code>&lt;username&gt;</code></em>/gnash/testsuite/car_smash.swf
-</pre><p>
-      </p><div class="mediaobject" align="center"><img 
src="images/car_crash.png" align="middle"></div><p>
-    </p><p>
-The above is useful for playing Flash files downloaded to your local system.  
It is also possible to play Flash files directly from the web.  To do so, use 
the <code class="option">-u</code> option along with the URL of the desired 
file.
-</p><pre class="programlisting">
-gnash -u http://example.domain.com/flashfile.swf
-</pre><p>
-Note that this will not work with every website; some embedded Flash files are 
difficult to play.
-</p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="options"></a><span 
class="application">Gnash</span> Command Line Options</h2></div></div></div><p>
-       No options are required for  <span class="application">Gnash</span>'s 
default behavior.  However, there are many options that can be used to that 
behavior.
-      </p><p>
-</p><pre class="programlisting">
-       gnash <em class="replaceable"><code>&lt;options&gt;</code></em> <code 
class="filename">filename.swf</code>
-</pre><p>
-      </p><div class="table"><a name="tb-command-line-options"></a><p 
class="title"><b>Table 4.1. Gnash Command Line Options</b></p><div 
class="table-contents"><table summary="Gnash Command Line Options" 
border="1"><colgroup><col align="left"><col 
align="left"></colgroup><thead><tr><th align="left">Option</th><th 
align="left">Function</th></tr></thead><tbody><tr><td align="left"><code 
class="option">-h</code></td><td align="left">
-             Print usage information.
-           </td></tr><tr><td align="left">
-         <code class="option">-s factor</code>
-         </td><td align="left">
-             Scale the movie up/down by the specified factor.
-           </td></tr><tr><td align="left">
-         <code class="option">-c</code>
-         </td><td align="left">
-             Produce a core file instead of letting SDL trap it. By
-             default, SDL traps all signals, but sometimes a core file
-             is desired to assist with debugging.
-           </td></tr><tr><td align="left">
-         <code class="option">-d num</code>
-         </td><td align="left">
-             Number of milliseconds to delay in main loop. The main
-             loop polls continuously with a delay to adjust how long
-             <span class="emphasis"><em><span 
class="application">Gnash</span></em></span> sleeps between iterations of the
-             loop. The smaller the number, the higher the CPU load
-             gets, and of course, the more iterations of the main
-             command loop.
-           </td></tr><tr><td align="left">
-         <code class="option">-p</code>
-         </td><td align="left">
-             Run full speed (no sleep) and log frame rate.
-           </td></tr><tr><td align="left">
-         <code class="option">-a</code>
-         </td><td align="left">
-              Enable Actionscript debugging.
-           </td></tr><tr><td align="left">
-         <code class="option">-v</code>
-         </td><td align="left">
-             Be verbose; i.e. print debug messages to stdout.
-           </td></tr><tr><td align="left">
-         <code class="option">-va</code>
-         </td><td align="left">
-             Be verbose about movie Actions. 
-           </td></tr><tr><td align="left">
-         <code class="option">-vp</code>
-         </td><td align="left">
-             Be verbose about parsing the movie. Warning: this can
-             generate a lot of text, and can affect the performance of
-             the movie you are playing.
-           </td></tr><tr><td align="left">
-         <code class="option">-ml bias</code>
-         </td><td align="left">
-             Specify the texture LOD bias (float, default is -1) This
-             affects the fuzziness of small objects, especially small
-             text.
-           </td></tr><tr><td align="left">
-         <code class="option">-w</code>
-         </td><td align="left">
-             Write a debug log called gnash-dbg.log. This will 
-             record of all the debug messages whether they are printed
-             to the screen or not.
-           </td></tr><tr><td align="left">
-         <code class="option">-j</code>
-         </td><td align="left">
-             Specify the width of the window. This is mostly used
-             only by the plugin.
-           </td></tr><tr><td align="left">
-         <code class="option">-k</code>
-         </td><td align="left">
-             Specify the height of the window. This is mostly used
-             only by the plugin.
-           </td></tr><tr><td align="left">
-         <code class="option">-1</code>
-         </td><td align="left">
-             Play once; exit when/if movie reaches the last
-             frame. This is the default.
-           </td></tr><tr><td align="left">
-         <code class="option">-r [0|1|2|3]</code>
-         </td><td align="left">
-<div class="itemizedlist"><ul type="disc"><li><p>
-             0 disables rendering and sound (good for batch tests).
-</p></li><li><p>
-             1 enables rendering and disables sound (default setting).
-</p></li><li><p>
-             2 enables sound and disables rendering.
-</p></li><li><p>
-             3 enables rendering and sound.
-</p></li></ul></div>
-           </td></tr><tr><td align="left">
-         <code class="option">-t sec</code>
-         </td><td align="left">
-             Timeout and exit after the specified number of
-             seconds. This is useful for movies which repeat
-             themselves.
-           </td></tr><tr><td align="left">
-         <code class="option">-g</code>
-         </td><td align="left">
-             Start <span class="application">Gnash</span> with a Flash 
debugger console so one can set
-             break points or watchpoints.
-           </td></tr><tr><td align="left">
-         <code class="option">-x id</code>
-         </td><td align="left">
-             This specifies the X11 window ID to display
-             in; this is mainly used by plugins.
-           </td></tr><tr><td align="left">
-         <code class="option">-b bits</code>
-         </td><td align="left">
-             Bit depth of output window (for example, 16 or 32). Appropriate
-              bit depths depend on the renderer and GUI library used.
-
-           </td></tr><tr><td align="left">
-         <code class="option">-u url</code>
-         </td><td align="left">
-             Set the _url member of the root movie. This is useful 
-              when you download a movie and play it from a different 
-              location. See also the -U switch.
-           </td></tr><tr><td align="left">
-         <code class="option">-U baseurl</code>
-         </td><td align="left">
-             Set base URL for this run. URLs are resolved relative to 
-              this base. If omitted defaults to the _url member of the 
-              top-level movie (see the -u switch).
-           </td></tr><tr><td align="left">
-         <code class="option">-P entrymeter</code>
-         </td><td align="left">
-               Parameters are given in ParamName=Value syntax and are mostly 
-                useful to the plugin to honour EMBED tags attributes 
-                or explicit OBJECT PARAM tags. A common use for -P 
-                is to provide FlashVars 
-                (ie: -P "FlashVars=home=http://www.gnu.org";).
-           </td></tr><tr><td align="left">
-         <code class="option">-F filedescriptor</code>
-         </td><td align="left">
-               Use the given filedescriptor to send requests to the host
-               application. This is currently only used for GETURL requests.
-               The protocol is not documented yet, and also needs improvement.
-               Primary use for this switch is for the NPAPI plugin to properly
-               support javascript and target windows in geturl requests.
-           </td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="keys"></a><span class="application">Gnash</span> Interactive Control 
Keys</h2></div></div></div><p>
-       While a movie is playing, there are several control
-       keys. These can be used to step through frames, pause the
-       playing, and control other actions.
-      </p><div class="table"><a name="tb-control-keys"></a><p 
class="title"><b>Table 4.2. Gnash Interactive Control Keys</b></p><div 
class="table-contents"><table summary="Gnash Interactive Control Keys" 
border="1"><colgroup><col align="left"><col 
align="left"></colgroup><thead><tr><th align="left">Key Combination</th><th 
align="left">Function</th></tr></thead><tbody><tr><td align="left">
-         <code class="option">CTRL-Q</code>
-         </td><td align="left">
-             Quit/Exit.
-           </td></tr><tr><td align="left">
-         <code class="option">CTRL-W</code>
-         </td><td align="left">
-             Quit/Exit.
-           </td></tr><tr><td align="left">
-         <code class="option">ESC</code>
-         </td><td align="left">
-             Quit/Exit.
-           </td></tr><tr><td align="left">
-         <code class="option">CTRL-P</code>
-         </td><td align="left">
-             Toggle Pause.
-           </td></tr><tr><td align="left">
-         <code class="option">CTRL-R   </code>
-         </td><td align="left">
-             Restart the movie.
-           </td></tr><tr><td align="left">
-         <code class="option">CTRL-[ or kp-</code>
-         </td><td align="left">
-             Step back one frame.
-           </td></tr><tr><td align="left">
-         <code class="option">CTRL-] or kp+</code>
-         </td><td align="left">
-             Step forward one frame.
-           </td></tr><tr><td align="left">
-         <code class="option">CTRL-T</code>
-         </td><td align="left">
-             Debug.  Test the set_variable() function.
-           </td></tr><tr><td align="left">
-         <code class="option">CTRL-G</code>
-         </td><td align="left">
-             Debug.  Test the get_variable() function.
-           </td></tr><tr><td align="left">
-         <code class="option">CTRL-M</code>
-         </td><td align="left">
-             Debug.  Test the call_method() function.
-           </td></tr><tr><td align="left">
-         <code class="option">CTRL-B</code>
-         </td><td align="left">
-             Toggle the background color.
-           </td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="gnashrc"></a>User Configuration File</h2></div></div></div><p>
-Individual user preferences may be set by editing variables with the <code 
class="filename">.gnashrc</code> file:
-</p><pre class="programlisting">
-~/.gnashrc
-</pre><p>
-</p><p>
-Each line must begin with an action: either <span 
class="emphasis"><em>set</em></span> or, in the case of lists, also
-<span class="emphasis"><em>append</em></span>.
-</p><p>
-The values in this configuration file apply only to an individual user, and 
become the default settings of the standalone player and the plugin.  Note that 
any command line options take precedence over <code 
class="filename">.gnashrc</code> settings.
-</p><p>
-The variables in the <code class="filename">.gnashrc</code> file support three 
types of arguments: on/off, numeric values, or in the case of the
-    whitelist and blacklist, a list of hostnames as ASCII text.
-  </p><div class="table"><a name="tb-config-variables"></a><p 
class="title"><b>Table 4.3. User Configuration Variables</b></p><div 
class="table-contents"><table summary="User Configuration Variables" 
border="1"><colgroup><col align="left"><col align="left"><col 
align="left"></colgroup><thead><tr><th align="left">Variable</th><th 
align="left">Value</th><th 
align="left">Function</th></tr></thead><tbody><tr><td 
align="left">localdomain</td><td align="left">on/off</td><td align="left">This 
value can be set to either <span class="emphasis"><em>on</em></span> or
-           <span class="emphasis"><em>off</em></span>, and controls the 
loading of
-           external Flash movies over a network. This option
-           tells Gnash to only load Flash movies from the existing 
domain.</td></tr><tr><td align="left">localhost</td><td 
align="left">on/off</td><td align="left">This value can be set to either <span 
class="emphasis"><em>on</em></span> or
-           <span class="emphasis"><em>off</em></span>, and controls the 
loading of
-           external Flash movies over a network. This is a stricter
-           version of the <span class="emphasis"><em>localdomain</em></span> 
setting as
-           this allows the loading of Flash movies to the same host
-           that is running <span 
class="application">Gnash</span>.</td></tr><tr><td 
align="left">whitelist</td><td align="left">hostnames</td><td align="left">This 
is a list of hostnames separated by spaces, or <span 
class="emphasis"><em>off</em></span>
-           to disable the whitelist. The hostname must be given
-            without a protocol (http://, https://). If this list is populated,
-           <span class="application">Gnash</span> will only load external 
Flash movies from the specified hosts.  The
-           whitelist takes precedence over the blacklist. Because several 
files can
-           be parsed in succession, each file can override or add to
-           lists in other files. Use <span 
class="emphasis"><em>set</em></span> to override
-           all other lists or <span class="emphasis"><em>append</em></span> to 
add your blacklisted
-           hosts to lists in previously parsed files.</td></tr><tr><td 
align="left">blacklist</td><td align="left">hostnames</td><td align="left">This 
is a list of hostnames separated by spaces, or <span 
class="emphasis"><em>off</em></span>
-           to disable the blacklist. The hostname must be given
-            without a protocol (http://, https://).
-           External flash movies from these
-            domains are never allowed to load. If whitelist is present
-           and not empty, blacklist is not used. Because several files can
-           be parsed in succession, each file can override or add to
-           lists in other files. Use <span 
class="emphasis"><em>set</em></span> to override
-           all other lists or <span class="emphasis"><em>append</em></span> to 
add your blacklisted
-           hosts to lists in previously parsed files.</td></tr><tr><td 
align="left">localSandboxPath</td><td align="left">dirs</td><td 
align="left">This is a list of directories separated by spaces.
-           Only resources from these directories and from the directory
-            portion of movie filename (if loaded from filesystem) are allowed 
to load.
-           Because several files can be parsed in succession, each file can 
override
-           or add to lists in other files. Use <span 
class="emphasis"><em>set</em></span> to override
-           all other lists or <span class="emphasis"><em>append</em></span> to 
add new sandboxes.
-           Note that there's currently no way to *drop* the directory of base 
dir
-           from the list of allowed local sandboxes.
-           </td></tr><tr><td align="left">delay</td><td 
align="left">Number</td><td align="left"><span class="application">Gnash</span> 
uses a timer-based event mechanism to advance frames
-           at a steady rate. This option overrides the default
-           setting in Gnash to play a movie slower or faster.</td></tr><tr><td 
align="left">verbosity</td><td align="left">Number</td><td align="left">This is 
a numeric value which defines the default level of
-           verbosity from the player.</td></tr><tr><td 
align="left">MalformedSWFVerbosity</td><td align="left">on/off</td><td 
align="left">This value can be set to either <span 
class="emphasis"><em>on</em></span> or
-           <span class="emphasis"><em>off</em></span>, and controls whether 
malformed SWF errors should
-           be printed. If set to true, verbosity level is automatically 
incremented.
-           Set <code class="option">verbosity</code> to 0 afterwards to 
hush.</td></tr><tr><td align="left">ASCodingErrorsVerbosity</td><td 
align="left">on/off</td><td align="left">This value can be set to either <span 
class="emphasis"><em>on</em></span> or
-           <span class="emphasis"><em>off</em></span>, and controls whether 
ActionScript coding
-           errors should be printed. If set to true, verbosity level is
-           automatically incremented.  Set <code 
class="option">verbosity</code> to 0 afterwards to hush.</td></tr><tr><td 
align="left">debuglog</td><td align="left">Absolute path</td><td 
align="left">This is the full path and name of debug logfile as
-       produced by <span class="application">Gnash</span>. On systems with a 
UNIX-type shell,
-        a tilde prefix (~) will be expanded as by Posix shell requirements
-        (see 
http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_01).</td></tr><tr><td
 align="left">writelog</td><td align="left">on/off</td><td align="left">This 
value can be set to either <span class="emphasis"><em>on</em></span> or
-           <span class="emphasis"><em>off</em></span>, and controls whether a 
debug log
-           is always written by <span class="application">Gnash</span>, or not 
at all.</td></tr><tr><td align="left">sound</td><td align="left">on/off</td><td 
align="left">This value can be set to either <span 
class="emphasis"><em>on</em></span> or
-           <span class="emphasis"><em>off</em></span>, and controls the sound 
of the
-           standalone player. By default <span 
class="application">Gnash</span> enables playing the
-           sound in any Flash movie.</td></tr><tr><td 
align="left">pluginsound</td><td align="left">on/off</td><td align="left">This 
value can be set to either <span class="emphasis"><em>on</em></span> or
-           <span class="emphasis"><em>off</em></span>, and controls the sound 
of the
-           player when running as a browser plugin. By default, sound
-           is enabled when using <span class="application">Gnash</span> as a 
browser plugin.</td></tr><tr><td align="left">EnableExtensions</td><td 
align="left">on/off</td><td align="left">Set to <span 
class="emphasis"><em>on</em></span> to enable extensions. This option is <span 
class="emphasis"><em>off</em></span> by default</td></tr><tr><td 
align="left">StartStopped</td><td align="left">on/off</td><td align="left">Set 
to <span class="emphasis"><em>on</em></span> to have the GUI start in "stop" 
mode. This is useful in particular
-           for the plugin, so you have to explicitly start any movie on a 
webpage. This option is <span class="emphasis"><em>off</em></span> by default.
-         </td></tr><tr><td align="left">flashVersionString</td><td 
align="left">string</td><td align="left">Set the string returned by $version 
and System.capabilities.version.
-       Useful to get around some flash version detection movies.
-       Note that the version advertised by the plugin is NOT affected by this 
setting,
-       instead you need to set the GNASH_FLASH_VERSION environment variable for
-       the latter (which doesn't affect $version and 
System.capabilities.version).</td></tr><tr><td 
align="left">flashSystemOS</td><td align="left">string</td><td align="left">The 
string that Gnash should return for System.capabilities.OS</td></tr><tr><td 
align="left">flashSystemManufacturer</td><td align="left">string</td><td 
align="left">The string that Gnash should return for 
System.capabilities.manufacturer</td></tr><tr><td 
align="left">StreamsTimeout</td><td align="left">double</td><td align="left">
-Set the number of seconds after which streams download time out. Note that 
timeouts only occurs after the given number of seconds
-passed w/out anything was received.
-</td></tr><tr><td align="left">insecureSSL</td><td align="left">on/off</td><td 
align="left">If set to <span class="emphasis"><em>on</em></span>, no 
verification of SSL connections
-is performed. This means that, although the connection is encrypted, the server
-certificate could be invalid, may not belong to the host, or both. Equivalent
-to curl --insecure. By default, this option is <span 
class="emphasis"><em>off</em></span> and
-connections will fail when a host cannot be verified.</td></tr><tr><td 
align="left">SOLsafedir</td><td align="left">Absolute path</td><td 
align="left">The full path to a directory where <span 
class="application">Gnash</span> should store Shared Object files ("flash 
cookies") if
-they are enabled.</td></tr><tr><td align="left">SOLreadonly</td><td 
align="left">on/off</td><td align="left">If set to <span 
class="emphasis"><em>on</em></span>, <span class="application">Gnash</span> 
will not write Shared Object files.</td></tr><tr><td 
align="left">URLOpenerFormat</td><td align="left">string</td><td align="left">
-Set the format of an url opener command. The %u label would be substituted by 
the actual url to be opened.
-Examples:
-<pre class="programlisting">
- set urlOpenerFormat firefox -remote 'openurl(%u)'
- set urlOpenerFormat xdg-open %u
- set urlOpenerFormat open %u
- set urlOpenerFormat kfmclient exec %u
-</pre>
-</td></tr></tbody></table></div></div><br class="table-break"><p>
-The following example <code class="filename">.gnashrc</code> file allows a 
user to only play Flash files saved locally to the machine on which <span 
class="application">Gnash</span> is running.  It also specifically forbids 
content from doubleclick.com and mochibot.com.  <span 
class="application">Gnash</span>'s error output is set to be fairly verbose, 
with the debug log placed in a location convenient for the user.  Finally, 
sound is turned on for both the standalone player and the plugin.
-</p><pre class="programlisting">
-  
-    #
-    # Gnash client options
-    #
-
-    # Only access remote content from our local domain
-    set localdomain on
-
-    # Only access content from our local host
-    set localhost on
-
-    # These sites are OK
-    # uncommenting the following line will allow load of external
-    # movies *only* from the specified hosts.
-    #set whitelist www.doonesbury.com www.cnn.com www.9news.com
-
-    # Disable whitelists set in any other gnashrc files, because
-    # these could override our blacklist.
-    set whitelist off
-
-    # Don't access content from these sites
-    set blacklist www.doubleclick.com mochibot.com
-
-    # The delay between timer interrupts
-    set delay 50
-
-    # The default verbosity level
-    set verbosity 1
-
-    # Be verbose about malformed SWF
-    set MalformedSWFVerbosity true
-
-    # Be verbose about AS coding errors
-    set ASCodingErrorsVerbosity true
-
-    # The full path to the debug log
-    set debuglog ~/gnash-dbg.log
-
-    # Write a debug log to disk
-    set writelog on
-
-    # Enable or Disable sound for the standalone player
-    set sound on
-
-    # Enable or Disable sound for the standalone player
-    set pluginsound on
-
-    # Make sure SSL connections are always verified
-    set insecureSSL off
-
-    # Use firefox to open urls
-    set urlOpenerFormat firefox -remote 'openurl(%u)'
-
-  </pre></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="bugreport"></a>Chapter 
5. Reporting Bugs</h2></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a 
href="#bugstep_newcheckout">Compile the latest <span 
class="application">Gnash</span> build</a></span></dt><dt><span 
class="sect1"><a href="#bugstep_search">Determine if the bug was previously 
reported</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_guidelines">Review the bug writing 
guidelines</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_file">Filing a bug report</a></span></dt></dl></div><p>
-The <span class="application">Gnash</span> project relies on the community to 
use and test the player; feedback is critical to any successful project.  Not 
only does it let us know that people use <span 
class="application">Gnash</span>, but it helps us understand the community's 
needs.  <span class="application">Gnash</span> uses a bug tracker on <a 
class="ulink" href="http://savannah.gnu.org"; 
target="_top">http://savannah.gnu.org</a> to manage these reports.
-</p><p>
-When filing a report, please follow the guidelines below. The better your bug 
report is, the easier it will be for the
-    developers to address the issue.
-</p><div class="orderedlist"><ol type="1"><li><p>
-        <a class="link" href="#bugstep_newcheckout" title="Compile the latest 
Gnash build">Compile the latest
-        <span class="application">Gnash</span> build.</a>
-      </p></li><li><p>
-        <a class="link" href="#bugstep_search" title="Determine if the bug was 
previously reported">Determine if the bug was
-        previously reported.</a>
-      </p></li><li><p>
-        <a class="link" href="#bugstep_guidelines" title="Review the bug 
writing guidelines">Review the bug writing 
-        guidelines.</a>
-      </p></li></ol></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="bugstep_newcheckout"></a>Compile the latest <span 
class="application">Gnash</span> build</h2></div></div></div><p>
-      Obtain a copy of the latest <a class="link" href="#sourcerepo" 
title="Repository">development
-      checkout</a> or <a class="link" href="#sourcesnapshot" 
title="Snapshot">development
-      snapshot</a>.  Put the source in an empty directory, then
-      <a class="link" href="#pre-configuration" title="Pre-Compile 
Configuration">configure</a> and 
-      <a class="link" href="#compile" title="Compiling the Code">compile</a> 
<span class="application">Gnash</span>.
-    </p><p>
-      If you are able to replicate the bug in the latest version, 
-      <a class="link" href="#bugstep_search" title="Determine if the bug was 
previously reported">proceed to the next step</a>.  If you cannot replicate the 
bug with the newer version, the problem may have been solved, or the issue may 
involve your environment
-    </p><p>
-To check this, create a fresh build of the version in which you encountered 
the bug.  If you can reproduce the bug with the fresh copy of the original 
version, but cannot with the latest version, this is most likely a resolved bug.
-</p><p>
-If you cannot reproduce the bug, it may still be unclear whether the bug is 
related to your environment or a <span class="application">Gnash</span> bug.  
Try to determine the source of the problem.  <span 
class="application">Gnash</span> offers several helpful debugging options in 
the configure stage, and many verbosity options at the command line to help.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="bugstep_search"></a>Determine if the 
bug was previously reported</h2></div></div></div><p>
-      Search the <a class="ulink" 
href="https://savannah.gnu.org/bugs/?group=gnash"; target="_top"><span 
class="application">Gnash</span>
-      bug tracker</a> to see if the bug has already been identified.
-    </p><p>
-      If the issue has already been reported, you should not file
-      a bug report.  However, you may add some additional information
-      to the ticket if you feel that it will be beneficial to the
-      developers.  For instance, if someone reported a memory issue
-      on Ubuntu GNU/Linux, and you noticed the same problem on OpenBSD,
-      your stacktrace would be useful.  Conversely, adding a "me too"
-      note to a feature request is not helpful.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="bugstep_guidelines"></a>Review the bug writing 
guidelines</h2></div></div></div><p>
-      A good bug report should be precise, explicit, and discrete.
-      This means that there should be just one bug per ticket, and
-      that a ticket should contain the following information:
-</p><div class="itemizedlist"><ul type="opencircle"><li 
style="list-style-type: circle"><p>
-          An overview of the problem;
-</p></li><li style="list-style-type: circle"><p>
-          Instructions on how to replicate the bug;
-</p></li><li style="list-style-type: circle"><p>
-          A description of what happened when you performed the steps
-          to replicate the bug, and what you expected to happen;
-</p></li><li style="list-style-type: circle"><p>
-          Your system information: operating system name and version, as
-          well as the versions of major <a class="link" href="#codedepend" 
title="Code Dependencies">dependencies</a>;
-</p></li><li style="list-style-type: circle"><p>
-          The release number or checkout timestamp for the version of <span 
class="application">Gnash</span>
-          where you observe the problem;
-</p></li><li style="list-style-type: circle"><p>
-          The file <code class="filename">config.log</code>, which should be
-          attached as a file; and
-</p></li><li style="list-style-type: circle"><p>
-          A descriptive title.
-</p></li></ul></div><p>
-      Include any additional information that you feel might be useful
-      to the developers.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="bugstep_file"></a>Filing a bug report</h2></div></div></div><p>
-      After following the steps described above, you can file a bug report at 
-      <a class="ulink" href="https://savannah.gnu.org/bugs/?group=gnash"; 
target="_top">https://savannah.gnu.org/bugs/?group=gnash</a>.
-    </p></div></div><div class="glossary"><div class="titlepage"><div><div><h2 
class="title"><a name="glossary"></a>Glossary</h2></div></div></div><div 
class="glossdiv"><h3 class="title">A</h3><dl><dt>
-        ActionScript
-      </dt><dd><p>
-          <span class="emphasis"><em>ActionScript</em></span>, or "AS", is the 
scripting 
-          language for <span class="emphasis"><em>Flash</em></span>
-          applications. It is compiled to bytecode, which is a subset of
-          the <span class="emphasis"><em>SWF</em></span> format.
-        </p></dd><dt>
-      AGG
-      </dt><dd><p>
-          AGG is the AntiGrain 2D graphics library, which can be used as a 
renderer in Gnash. It is faster than OpenGL on systems without hardware 
graphics acceleration. As of Gnash version 0.7.2 it is the more feature 
complete renderer.
-        </p></dd><dt>
-        AMF
-      </dt><dd><p>
-          <span class="emphasis"><em>AMF</em></span> 
-          is the object format used by <span 
class="emphasis"><em>Flash</em></span> 
-          for shared objects and streaming video.
-        </p></dd><dt>
-      as_environment
-      </dt><dd><p>
-          In Gnash terms, the as_environment, or ActionScript execution 
environment, contains a stack of objects, characters and values which are in 
the immediate environment of the current fn_call. Please refer to the Gnash 
ActionScript manual for more information.
-        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">C</h3><dl><dt>
-      Cairo
-      </dt><dd><p>
-          Cairo is a 2D graphics library with support for multiple output 
devices. Can be used as a renderer in Gnash. A useful feature of Cairo is that 
it will automatically use graphic card acceleration when available. Cairo has 
an experimental OpenGL backend.
-        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">D</h3><dl><dt>
-      DejaGNU
-      </dt><dd><p>
-          DejaGNU is a framework for testing software.
-        </p></dd><dt>
-        DocBook
-      </dt><dd><p>
-          <span class="emphasis"><em>DocBook</em></span>
-           is a markup language for presentation-neutral 
-          documentation, such as manuals.
-        </p></dd><dt>
-        Doxygen
-      </dt><dd><p>
-          <span class="emphasis"><em>Doxygen</em></span> 
-          is a documentation generator for for multiple languages 
-          which uses comments in the source code to create stand-alone 
-          documentation. 
-        </p></dd><dt>
-      Drupal
-      </dt><dd><p>
-          Drupal is a CMS/blog system used for the main Gnash website.
-        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">E</h3><dl><dt>
-        extensions
-      </dt><dd><p>
-          A <span class="application">Gnash</span> <span 
class="emphasis"><em>extension</em></span> is a plugin (not
-          a browser plugin) which
-          implements additional 
-          functionality beyond what is covered by 
-          <span class="emphasis"><em>Flash</em></span> specification. 
-          These are shared libraries which are loaded at runtime.
-        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">F</h3><dl><dt>
-      ffmpeg
-      </dt><dd><p>
-          ffmpeg is an audio and video decoding library which can be used by 
Gnash to decode mp3, FLV and other media types. 
-        </p></dd><dt>
-        Flash
-      </dt><dd><p>
-          The glossterm <span class="emphasis"><em>Flash</em></span> is used 
to describe both the 
-          Adobe IDE for creating <span class="emphasis"><em>SWF</em></span>
-           files, and the technology itself.  
-          <span class="application">Gnash</span> documentation uses the latter 
definition.
-        </p></dd><dt>
-      FLV
-      </dt><dd><p>
-          FLV is a proprietary file format used to deliver Flash video. It is 
used by YouTube, among others. 
-        </p></dd><dt>
-      FLTK
-      </dt><dd><p>
-          FLTK, or the 'Fast Light ToolKit', is a portable GUI library which 
is intended to replace the SDL GUI. Currently in Gnash, FLTK may be used with 
the Cairo and AGG renderers. FLTK has an experimental Cairo backend.
-        </p></dd><dt>
-      FrameBuffer
-      </dt><dd><p>
-          In Gnash, this is a GUI library that outputs directly to the Linux 
Frame Buffer and so does not need a window system to run. This makes it 
particularly suitable for use on small devices.
-        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">G</h3><dl><dt>
-      Gnash
-      </dt><dd><p>
-          Gnash is the GNU Flash movie player.
-        </p></dd><dt>
-      Gstreamer
-      </dt><dd><p>
-          Gstreamer is a multimedia framework which Gnash can use for decoding 
audio and video. Gstreamer itself cannot decode anything, so it needs some 
appropriate decoding-plugins to do the work for it. Remember to install them if 
you use Gnash with Gstreamer enabled. To get the best out of Gnashs 
gstreamer-parts, it is recommended to install the gst-plugins-good, 
gst-plugins-good and gst-ffmpeg plugins packages. 
-        </p></dd><dt>
-      GTK
-      </dt><dd><p>
-          GTK is the GIMP Toolkit GUI library. It is one of the GUI options 
for Gnash. As of Gnash 0.7.2, this is the more performant and feature-rich 
choice. GTK uses Cairo internally.
-        </p></dd><dt>
-        GUI
-      </dt><dd><p>
-          A <span class="emphasis"><em>GUI</em></span> is a 
-          "graphical user interface". In <span 
class="application">Gnash</span>, the GUI 
-          library provides a wrapper for mouse and keyboard events, 
-          menus, windowing (where available) and a drawing area. 
-          You must choose a GUI library during the
-          <a class="link" href="#pre-configuration" title="Pre-Compile 
Configuration">configuration</a> stage.
-        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">K</h3><dl><dt>
-        Klash
-      </dt><dd><p>
-          <span class="emphasis"><em>Klash</em></span> was the name given to 
the stand-alone 
-          instance of <span class="application">Gnash</span> which used the 
KDE GUI.  It has been replaced with 
-          an implementation using Qt.  Some documentation may incorrectly
-          refer to the Konqueror plugin as <span 
class="emphasis"><em>Klash</em></span>.
-          The plugin was renamed <span class="emphasis"><em>Kpart</em></span>.
-        </p></dd><dt>
-        Kpart
-      </dt><dd><p>
-          <span class="emphasis"><em>Kpart</em></span> is a plugin for 
Konqueror which is
-          enabled with the <a class="link" href="#features" 
title="Features">configuration option</a>
-          <span class="emphasis"><em>--enable-klash</em></span>.
-        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">L</h3><dl><dt>
-      libmad
-      </dt><dd><p>
-          libmad is a mp3-decoding library, which can be used by Gnash's sound 
handler to decode mp3-audio. 
-        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">M</h3><dl><dt>
-        Mesa
-      </dt><dd><p>
-          <span class="emphasis"><em>Mesa</em></span> is the free software 
OpenGL 
-          implementation.  <span class="application">Gnash</span> 
documentation will sometimes use the
-          glossterms 'OpenGL' and 'Mesa' interchangeably.
-        </p></dd><dt>
-      Ming
-      </dt><dd><p>
-          Ming is a C library for generating SWF ("Flash") format movies, plus 
a set of wrappers for using the library. It is used by the Gnash project for 
generating testcases. 
-        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">N</h3><dl><dt>
-      Nellymoser
-      </dt><dd><p>
-          Nellymoser is a proprietary audio codec introduced in the Flash 
Player in version 6. For more information, please see Wikipedia.
-        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">O</h3><dl><dt>
-      OpenGL
-      </dt><dd><p>
-          OpenGL (Open Graphics Library) is a standard specification defining 
a cross-language cross-platform API for writing applications that produce 3D 
and 2D computer graphics. Accelerated graphic cards usually provide OpenGL at 
the hardware level. Please refer to Wikipedia for availability of free software 
OpenGL hardware drivers. A free software implementation of the API is available 
(Mesa). OpenGL can be used as a renderer in Gnash.
-        </p></dd><dt>
-      ORM
-      </dt><dd><p>
-          ORM is a system for ensuring the rights of the creator over a piece 
of digital content. It is more passive than DRM.
-        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">P</h3><dl><dt>
-        plugin
-      </dt><dd><p>
-          The glossterm <span class="emphasis"><em>plugin</em></span> is used 
in <span class="application">Gnash</span> to
-          refer to both any <span class="application">Gnash</span> browser 
plugin, as well as the Firefox
-          plugin specifically.  The Konqueror plugin is called
-          <span class="emphasis"><em>Kpart</em></span>.  Sometimes, the term 
is used in
-          an even more generic sense to refer to 
-          <span class="emphasis"><em>extensions</em></span>.
-        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">Q</h3><dl><dt>
-      Qt
-      </dt><dd><p>
-          Qt is a GUI library which is used by KDE. The plugin version of 
Gnash using this GUI library is Kpart. The standalone version is enabled with 
--enable-gui=kde.
-        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">R</h3><dl><dt>
-        renderer
-      </dt><dd><p>
-          The <span class="emphasis"><em>renderer</em></span> is the subsystem 
of <span class="application">Gnash</span>
-          which renders content.  Only one renderer may be used; it is
-          chosen during <a class="link" href="#pre-configuration" 
title="Pre-Compile Configuration">configuration</a>.
-        </p><p>
-          Available renderers are: AGG, OpenGL, and Cairo. In terms of 
-          feature completeness, AGG comes first; followed by OpenGL and 
-          then Cairo. In most cases, AGG is preferred for performance, 
-          except cases where it is beneficial to have hardware accelerated 
-          rendering (for example, when you have a very slow CPU but a very 
-          fast graphics card). In this case OpenGL should be used.
-        </p></dd><dt>
-      RTMP
-      </dt><dd><p>
-          RTMP is the Real Time Messaging Protocol primarily used with to 
stream audio and video over the internet to the Flash Player client.
-        </p></dd><dt>
-      RTMPT
-      </dt><dd><p>
-          RTMPT is basically a HTTP wrapper around the RTMP protocol that is 
sent using POST requests from the client to the server. Because of the 
non-persistent nature of HTTP connections, RTMPT requires the clients to poll 
for updates periodically in order to get notified about events that are 
generated by the server or other clients. 
-        </p></dd><dt>
-      RTMPTS
-      </dt><dd><p>
-          RTMPTS is the same as RTMPT, but instead of being a HTTP wrapper, it 
is a HTTPSSL wrapper (HTTP secure connection).
-        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">S</h3><dl><dt>
-      SDL
-      </dt><dd><p>
-          Simple DirectMedia Layer is a cross-platform multimedia free 
software library that creates an abstraction over various platforms' graphics, 
sound, and input APIs. Gnash can use it as a GUI and/or as a sound handler. 
Note that the two usages are independent of each other: you can use it for a 
task and not for the other if you wish. At time or writing (2007-01-11) the SDL 
GUI lacks menus and a performant input event architecture; the SDL sound 
handler is the most feature rich, supporting Video through ffmpeg.
-        </p></dd><dt>
-        sound handler
-      </dt><dd><p>
-          The <span class="emphasis"><em>sound handler</em></span> is the part 
of <span class="application">Gnash</span>
-          which handles both event sounds and streaming sound.  Audio
-          from external sources are also handled through the sound handler
-          when SDL is used.  The sound handler must be selected during
-          <a class="link" href="#pre-configuration" title="Pre-Compile 
Configuration">configuration</a>.
-        </p><p>
-          There are currently two sound handlers available in <span 
class="application">Gnash</span>:
-          SDL and Gstreamer.  The SDL sound handler uses ffmpeg or 
-          libmad for decoding mp3-audio, although it can be built without 
-          mp3-support. The Gstreamer-sound handler uses the available 
-          plugins to decode the audio, so it might not work if some 
-          important plugins are missing.  The SDL sound handler is 
-          recommended.  
-        </p></dd><dt>
-      sprite
-      </dt><dd><p>
-          A sprite is an element of an Flash Movie. It's basically a Movie 
inside another, having its own timeline.
-        </p></dd><dt>
-      Stage
-      </dt><dd><p>
-          The visible area of a Flash movie. The name derives from a theater 
analogy. Graphical elements are referred to as characters. 
-        </p></dd><dt>
-        SWF
-      </dt><dd><p>
-          <span class="emphasis"><em>SWF</em></span> is the file format for 
-          <span class="emphasis"><em>Flash</em></span> movies.
-        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">T</h3><dl><dt>
-      Tamarin
-      </dt><dd><p>
-          The Tamarin project seeks to create an open source implementation of 
the ECMAScript 4th edition language specification. The code is used by Adobe as 
part of the ActionScript Virtual Machine within the Adobe Flash Player. Gnash 
does not use Tamarin; it already has a working virtual server and most 
ActionScript classes are implemented.
-        </p></dd><dt>
-      timeline
-      </dt><dd><p>
-          In Flash technology, a timeline is a sequence of "frames". A single 
Flash movie can contain multiple timelines, each independently controlled (STOP 
or PLAY). At regular intervals (FPS) the player advances all timelines in PLAY 
mode to the next frame, looping back when last frame is reached.
-        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">X</h3><dl><dt>
-      X.org
-      </dt><dd><p>
-          X.org is the most commonly used X server; it was forked from XFree86.
-        </p></dd></dl></div></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a name="amf"></a>AMF 
Format</h4></div></div></div><p>
-    The AMF format is used in the LocalConnection, SharedObject,
-    NetConnection, and NetStream ActionScript classes. This is a means
-    of binary data interchange between Flash movies, or between a
-    Flash player and a Flash server.
-  </p><p>
-    Like the RTMP messages, an AMF packet header can be of a variable
-    size. The size is either the same as the initial header of the
-    RTMP message, or a 1 byte header, which is commonly used for
-    streaming audio or video data.
-  </p><p>
-    The body of an AMF packet may look something like this
-    example. The spaces have been added for clarity.
-    
-    </p><pre class="screen">
-      02  0007 636f6e6e656374
-    </pre><p>
-
-    </p><div class="variablelist"><dl><dt><span 
class="term">02</span></dt><dd><p>
-           This is a single byte header. The value of the first 2
-           bits is 0x3, and the AMF index is also 0x3.
-         </p></dd><dt><span class="term">0007</span></dt><dd><p>
-           This is the length in bytes of the string.
-         </p></dd><dt><span class="term">63 6f 6e 6e 65 63 
74</span></dt><dd><p>
-           This is the string. Note that there is no null terminator
-           since the length is specified.
-         </p></dd></dl></div><p>
-
-  </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="rtmp"></a>RTMP Protocol</h3></div></div></div><p>
-    This document is based mostly on my own reverse engineering of the
-    RTMP protocol and AMF format. <span 
class="emphasis"><em>tcpdump</em></span> and
-    <span class="emphasis"><em>ethereal</em></span> are your friend. Some 
additional info that got
-    me started was from the <a class="ulink" 
href="http://www.osflash.org/red5"; target="_top">Red5</a>
-    project. <span class="emphasis"><em>Red5</em></span> is the only other 
open source Flash
-    server. So some details are still vague, but as the implementation
-    appears to work, we'll figure out what they are later.
-  </p><p>
-    The Real Time Messaging Protocol was created by MacroMedia (now
-    Adobe) for delivering Flash objects and video over a network
-    connection. Currently the only servers which support this format
-    are the MacroMedia Media sever, and the Open Source Red5 project.
-  </p><p>
-    This is a simple protocol, optimized for poor bandwidth
-    connections. It can support up to 64 concurrent streams over the
-    same network connection. Part of each AMF packet header contains
-    the index number of the stream. A single RTMP message can contain
-    multiple AMF packets.
-  </p><p>
-    An RTMP connection uses Tcp/ip port 1935. It is also possible to
-    tunnel RTMP over an HTTP connection using port 80. Each AMF packet
-    is 128 bytes long except for streaming audio, which has 64 byte
-    packets.
-  </p><p>
-    The basics of the RTMP protocol are as follows. All communications
-    are initiated by the client.
-    </p><div class="mediaobject" align="center"><img src="images/rtmp.png" 
align="middle"></div><p>
-  </p><p>
-    The client starts the RTMP connection by sending a single byte
-    with a value of 0x3. This byte is followed by a data block of 1536
-    bytes. The format if this data block is unknown, but it appears to
-    not be actually used by the protocol except as a handshake.
-  </p><p>
-    The server receives this packet, stores the 1536 byte data block,
-    and then send a single byte with the value of 0x3, followed by two
-    1536 data blocks. The second data block is the full contents of
-    the original data block as sent by the client.
-  </p><p>
-    The client receives the 1536 byte data block, and if they match,
-    the connection is established. After the handshake process is
-    done, there are three other messages that the client sends to the
-    sever to start the data flowing.
-  </p><p>
-    The first AMF packet sent to the server contains the
-    <span class="emphasis"><em>connect</em></span> packet. This doesn't appear 
to do
-    much but notify the server the client is happy with the
-    handshake, and ready to start reading packets.
-  </p><p>
-    The second packet is the <span 
class="emphasis"><em>NetConnection</em></span> object from
-    the client. This ActionScript class is used by the Flash movie to
-    create the network connection to the server.
-  </p><p>
-    The third packet is the <span class="emphasis"><em>NetStream</em></span> 
object from the
-    client. This is the ActionScript class used to specify the file to
-    be streamed by the server.
-  </p><p>
-    The RTMP packet for our example looks like this:
-   
-    </p><pre class="programlisting">
-      030000190000c91400000000020007connect00?f0000000000000030003app0200#
-      software/gnash/tests/1153948634.flv0008flashVer02000cLNX 6,0,82,0 0006
-      swfUrl02001dfile:///file|%2Ftmp%2Fout.swfc30005tcUrl\002\0004
-      rtmp://localhost/software/gnash/tests/1153948634.flv\000\000\t
-      \002\000\005userx
-    </pre><p>
-    
-    We'll take this apart in a bit, but you can see how all three AMF
-    packets are in the same message. The message is received in
-    several 128 byte blocks, with the last one being less than
-    that. The total size of the RTMP message is in the header, so the
-    reader can tell if the entire message was read or not.
-  </p><p>
-    The RTMP header is first, followed by the connect message as an
-    ASCII string as the message body. The following AMF packet is the
-    <span class="emphasis"><em>NetConnection</em></span> one, which specifies 
that this is coming
-    from a Flash application. This also contains the file path the server
-    can use to find the file to stream. This is then followed by the
-    version number, which I assume is the version of the Flash player,
-    so the server knows what it is talking to.
-  </p><p>
-    The third packet is the one from <span 
class="emphasis"><em>NetStream</em></span>, which
-    specifies the URL used for the movie, followed by the user name
-    for a semblance of security.
-  </p><p>
-    For the next level of detail, we'll explain the format of AMF. AMF
-    is used by the RTMP protocol to transfer data. Each Flash object
-    is encapsulated in an AMF packet, including streaming audio or
-    video.
-  </p><p>
-    The first byte of the RTMP header determines two things about the
-    rest of the message. The first 2 bits of this byte signify the
-    total size of the RTMP header. The RTMP header is of a variable
-    size, so this is important.
-
-    </p><div class="variablelist"><dl><dt><span 
class="term">00</span></dt><dd><p>
-           This specifies the header contains 12 bytes, including
-           this one.
-         </p></dd><dt><span class="term">01</span></dt><dd><p>
-           This specifies the header contains 8 bytes, including this
-           one.
-         </p></dd><dt><span class="term">02</span></dt><dd><p>
-           This specifies the header contains 4 bytes, including this
-           one.
-         </p></dd><dt><span class="term">03</span></dt><dd><p>
-           This specifies the header contains 1 byte, so this is the
-           complete header.
-         </p></dd></dl></div><p>
-  </p><p>
-    The other 6 bits in this byte represent the AMF index. As a single
-    RTMP connection can support multiple data streams, this signifies
-    which stream this packet is for. Once an AMF object is fully
-    received by the client, the AMF index may be reused.
-  </p><p>
-    For messages with headers of at least 4 bytes, the next 3 bytes are
-    used by audio and video data packets, but at this time the meaning
-    of this field is unknown.
-  </p><p>
-    For messages with a 8 byte or larger header, the next 3 bytes
-    determine the size of the RTMP message being transmitted. Messages
-    with a 1 byte or 4 byte header use a standard size, 128 bytes for
-    video, and 64 bytes for audio.
-  </p><p>
-    For messages with an 8 byte or larger header, the next byte is the
-    type of the AMF object.
-    
-    </p><div class="variablelist"><dl><dt><span 
class="term">0x3</span></dt><dd><p>
-           This specifies the content type of the RTMP packet is the
-           number of bytes read. This is used to start the RTMP
-           connection.
-         </p></dd><dt><span class="term">0x4</span></dt><dd><p>
-           This specifies the content type of the RTMP message is a
-           <span class="emphasis"><em>ping</em></span> packet.
-         </p></dd><dt><span class="term">0x5</span></dt><dd><p>
-           This specifies the content type of the RTMP message is
-           server response of some type.
-         </p></dd><dt><span class="term">0x6</span></dt><dd><p>
-           This specifies the content type of the RTMP packet is
-           client request of some type.
-         </p></dd><dt><span class="term">0x8</span></dt><dd><p>
-           This specifies the content type of the RTMP packet is an
-           audio message.
-         </p></dd><dt><span class="term">0x9</span></dt><dd><p>
-           This specifies the content type of the RTMP message is a
-           video packet.
-         </p></dd><dt><span class="term">0x12</span></dt><dd><p>
-           This specifies the content type of the RTMP message is
-           notify. 
-         </p></dd><dt><span class="term">0x13</span></dt><dd><p>
-           This specifies the content type of the RTMP message is
-           shared object.
-         </p></dd><dt><span class="term">0x14</span></dt><dd><p>
-           This specifies the content type of the RTMP message is
-           remote procedure call. This invokes the method of a Flash
-           class remotely.
-         </p></dd></dl></div><p>     
-  
-  </p><p>
-    There are two sets of data types to consider. One set is used by
-    the to specify the content type of the AMF object, the other is an
-    ActionScript data type tag used to denote which type of object is
-    being transferred.
-  </p><p>
-    The values of the initial type byte are:
-    </p><div class="variablelist"><dl><dt><span 
class="term">0x0</span></dt><dd><p>
-           This specifies the data in the AMF packet is a numeric
-           value. All numeric values in Flash are 64 bit,
-           <span class="emphasis"><em>big-endian</em></span>.
-         </p></dd><dt><span class="term">0x1</span></dt><dd><p>
-           This specifies the data in the AMF packet is a boolean
-           value.
-         </p></dd><dt><span class="term">0x2</span></dt><dd><p>
-           This specifies the data in the AMF packet is an
-           <span class="emphasis"><em>ASCII</em></span> string. 
-         </p></dd><dt><span class="term">0x3</span></dt><dd><p>
-           This specifies the data in the AMF packet is a Flash
-           object. The Flash object data type field further along in
-           the message specifies which type of ActionScript object it
-           is.
-         </p></dd><dt><span class="term">0x4</span></dt><dd><p>
-           This specifies the data in the AMF packet is a Flash
-           movie, ie. another Flash movie.
-         </p></dd><dt><span class="term">0x5</span></dt><dd><p>
-           This specifies the data in the AMF packet is a NULL
-           value. NULL is often used as the return code from calling
-           Flash functions.
-         </p></dd><dt><span class="term">0x6</span></dt><dd><p>
-           This specifies the data in the AMF packet is a
-           undefined. This is also used as the return code from
-           calling Flash functions.
-         </p></dd><dt><span class="term">0x7</span></dt><dd><p>
-           This specifies the data in the AMF packet is a reference.
-         </p></dd><dt><span class="term">0x8</span></dt><dd><p>
-           This specifies the data in the AMF packet is a ECMA
-           array.
-         </p></dd><dt><span class="term">0x9</span></dt><dd><p>
-           This specifies the data in the AMF packet is the end of an
-           object definition. As an object is transmitted with
-           multiple AMF packets, this lets the server know when the
-           end of the object is reached.
-         </p></dd><dt><span class="term">0xa</span></dt><dd><p>
-           This specifies the data in the AMF packet is a Strict
-           array.
-         </p></dd><dt><span class="term">0xb</span></dt><dd><p>
-           This specifies the data in the AMF packet is a date.
-         </p></dd><dt><span class="term">0xc</span></dt><dd><p>
-           This specifies the data in the AMF packet is a multi-byte
-           string. Multi-byte strings are used for international
-           language support to represent non <span 
class="emphasis"><em>ASCII</em></span>
-           fonts.
-         </p></dd><dt><span class="term">0xd</span></dt><dd><p>
-           This specifies the data in the AMF packet is a an
-           unsupported feature.
-         </p></dd><dt><span class="term">0xe</span></dt><dd><p>
-           This specifies the data in the AMF packet is a record
-           set.
-         </p></dd><dt><span class="term">0xf</span></dt><dd><p>
-           This specifies the data in the AMF packet is a AML
-           object. XML objects are then parsed by the
-           <span class="emphasis"><em>XML</em></span> ActionScript class.
-         </p></dd><dt><span class="term">0x10</span></dt><dd><p>
-           This specifies the data in the AMF packet is a typed object.
-         </p></dd></dl></div><p>
-    
-  </p><p>
-    For messages with a 12 byte header, the last 4 bytes are the
-    routing of the message. If the destination is the server, this
-    value is the NetStream object source. If the destination is the
-    client, this is the NetStream object for this RTMP message. A
-    value of 0x00000000 appears to be reserved for the NetConnection
-    object. 
-  </p><p>
-    Multiple AMF streams can be contained in a single RTMP messages,
-    so it's important to check the index of each AMF packet.
-  </p><p>
-    An example RTMP header might look like this. (spaces added between
-    fields for clarity) All the numbers are in hex.
-
-    </p><pre class="screen">
-      03 000019 0000c9 14 000000000
-    </pre><p>
-    
-    </p><div class="variablelist"><dl><dt><span 
class="term">03</span></dt><dd><p>
-           The first two bits of this byte are the size of the
-           header, which in this example is 00, for a 12 byte
-           header. The next 6 bits is the AMF stream index number,
-           which in this example is 0x3.
-         </p></dd><dt><span class="term">000019</span></dt><dd><p>
-           These 3 bytes currently have an unknown purpose.
-         </p></dd><dt><span class="term">000c9</span></dt><dd><p>
-           Since this example has a 12 byte header, this is the size
-           of the RTMP message, in this case 201 bytes.
-         </p></dd><dt><span class="term">14</span></dt><dd><p>
-           This is the content type of the RTMP message, which in
-           this case is to invoke a remote function call. (which we
-           later see is the connect function).
-         </p></dd><dt><span class="term">00000000</span></dt><dd><p>
-           The source is the NetConnection object used to start this
-           connection.
-         </p></dd></dl></div><p>
-
-  </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="amf"></a>AMF Format</h4></div></div></div><p>
-    The AMF format is used in the LocalConnection, SharedObject,
-    NetConnection, and NetStream ActionScript classes. This is a means
-    of binary data interchange between Flash movies, or between a
-    Flash player and a Flash server.
-  </p><p>
-    Like the RTMP messages, an AMF packet header can be of a variable
-    size. The size is either the same as the initial header of the
-    RTMP message, or a 1 byte header, which is commonly used for
-    streaming audio or video data.
-  </p><p>
-    The body of an AMF packet may look something like this
-    example. The spaces have been added for clarity.
-    
-    </p><pre class="screen">
-      02  0007 636f6e6e656374
-    </pre><p>
-
-    </p><div class="variablelist"><dl><dt><span 
class="term">02</span></dt><dd><p>
-           This is a single byte header. The value of the first 2
-           bits is 0x3, and the AMF index is also 0x3.
-         </p></dd><dt><span class="term">0007</span></dt><dd><p>
-           This is the length in bytes of the string.
-         </p></dd><dt><span class="term">63 6f 6e 6e 65 63 
74</span></dt><dd><p>
-           This is the string. Note that there is no null terminator
-           since the length is specified.
-         </p></dd></dl></div><p>
-
-  </p></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="authors"></a>Chapter 6. 
Authors</h2></div></div></div><p>
-        <span class="application">Gnash</span> is maintained by Rob Savoye 
<code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>.  
-        Other active developers are: Sandro Santilli, Bastiaan Jacques, 
-        and Tomas Groth.  Please send all comments and suggestions to
-        <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>. 
-    </p><p>
-        <span class="application">Gnash</span> was initially derived from 
<span class="application">GameSWF</span>.
-        <span class="application">GameSWF</span> is maintained by
-        Thatcher Ulrich <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>.  The following
-        people contributed to <span class="application">GameSWF</span>:
-        Mike Shaver, Thierry Berger-Perrin,
-        Ignacio Castaño, Willem Kokke, Vitaly Alexeev, Alexander Streit, 
-        and Rob Savoye.
-    </p></div><div class="appendix" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="fdl"></a>Appendix A. GNU 
Free Documentation License</h2></div><div><p class="releaseinfo">
-      Version 1.1, March 2000
-    </p></div><div><p class="copyright">Copyright © 2000 Free Software 
Foundation, Inc.</p></div><div><div class="legalnotice"><a 
name="fdl-legalnotice"></a><p>
-       </p><div class="address"><p>Free Software Foundation, Inc. <span 
class="street">59 Temple Place, <br>
-        Suite 330</span>, <span class="city">Boston</span>, <span 
class="state">MA</span>  <br>
-        <span class="postcode">02111-1307</span>  <span 
class="country">USA</span></p></div><p> 
-       Everyone is permitted to copy and distribute verbatim copies of this 
-        license document, but changing it is not allowed.
-      </p></div></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a href="#fdl-preamble">0. 
PREAMBLE</a></span></dt><dt><span class="sect1"><a href="#fdl-section1">1. 
APPLICABILITY AND DEFINITIONS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section2">2. VERBATIM COPYING</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section3">3. COPYING IN 
QUANTITY</a></span></dt><dt><span class="sect1"><a href="#fdl-section4">4. 
MODIFICATIONS</a></span></dt><dt><span class="sect1"><a href="#fdl-section5">5. 
COMBINING DOCUMENTS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section6">6. COLLECTIONS OF DOCUMENTS</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section7">7. AGGREGATION WITH INDEPENDENT 
WORKS</a></span></dt><dt><span class="sect1"><a href="#fdl-section8">8. 
TRANSLATION</a></span></dt><dt><span class="sect1"><a href="#fdl-section9">9. 
TERMINATION</a></span></dt><dt><span class="sect1"><a href="#fdl-section10">10. 
FUTURE REVISIONS OF THIS LICENSE</a></span></dt><dt><span class="sect1"><a 
href="#fdl-using">Addendum</a></span></dt></dl></div><div class="sect1" 
lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: 
both"><a name="fdl-preamble"></a>0. PREAMBLE</h2></div></div></div><p>
-      The purpose of this License is to make a manual, textbook, or
-      other written document "free" in the sense of
-      freedom: to assure everyone the effective freedom to copy and
-      redistribute it, with or without modifying it, either
-      commercially or non-commercially. Secondarily, this License
-      preserves for the author and publisher a way to get credit for
-      their work, while not being considered responsible for
-      modifications made by others.
-    </p><p>
-      This License is a kind of "copyleft", which means
-      that derivative works of the document must themselves be free in
-      the same sense. It complements the GNU General Public License,
-      which is a copyleft license designed for free software.
-    </p><p>
-      We have designed this License in order to use it for manuals for
-      free software, because free software needs free documentation: a
-      free program should come with manuals providing the same
-      freedoms that the software does. But this License is not limited
-      to software manuals; it can be used for any textual work,
-      regardless of subject matter or whether it is published as a
-      printed book. We recommend this License principally for works
-      whose purpose is instruction or reference.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section1"></a>1. APPLICABILITY AND 
DEFINITIONS</h2></div></div></div><p><a name="fdl-document"></a>
-      This License applies to any manual or other work that contains a
-      notice placed by the copyright holder saying it can be
-      distributed under the terms of this License. The
-      "Document", below, refers to any such manual or
-      work. Any member of the public is a licensee, and is addressed
-      as "you".
-    </p><p><a name="fdl-modified"></a>
-      A "Modified Version" of the Document means any work
-      containing the Document or a portion of it, either copied
-      verbatim, or with modifications and/or translated into another
-      language.
-    </p><p><a name="fdl-secondary"></a>
-      A "Secondary Section" is a named appendix or a
-      front-matter section of the <a class="link" 
href="#fdl-document">Document</a> that deals exclusively
-      with the relationship of the publishers or authors of the
-      Document to the Document's overall subject (or to related
-      matters) and contains nothing that could fall directly within
-      that overall subject. (For example, if the Document is in part a
-      textbook of mathematics, a Secondary Section may not explain any
-      mathematics.)  The relationship could be a matter of historical
-      connection with the subject or with related matters, or of
-      legal, commercial, philosophical, ethical or political position
-      regarding them.
-    </p><p><a name="fdl-invariant"></a>
-      The "Invariant Sections" are certain <a class="link" 
href="#fdl-secondary"> Secondary Sections</a> whose titles
-      are designated, as being those of Invariant Sections, in the
-      notice that says that the <a class="link" 
href="#fdl-document">Document</a> is released under this
-      License.
-    </p><p><a name="fdl-cover-texts"></a>
-      The "Cover Texts" are certain short passages of
-      text that are listed, as Front-Cover Texts or Back-Cover Texts,
-      in the notice that says that the <a class="link" 
href="#fdl-document">Document</a> is released under this
-      License.
-    </p><p><a name="fdl-transparent"></a>
-      A "Transparent" copy of the <a class="link" href="#fdl-document"> 
Document</a> means a machine-readable
-      copy, represented in a format whose specification is available
-      to the general public, whose contents can be viewed and edited
-      directly and straightforwardly with generic text editors or (for
-      images composed of pixels) generic paint programs or (for
-      drawings) some widely available drawing editor, and that is
-      suitable for input to text formatters or for automatic
-      translation to a variety of formats suitable for input to text
-      formatters. A copy made in an otherwise Transparent file format
-      whose markup has been designed to thwart or discourage
-      subsequent modification by readers is not Transparent.  A copy
-      that is not "Transparent" is called "Opaque".
-    </p><p>
-      Examples of suitable formats for Transparent copies include
-      plain ASCII without markup, Texinfo input format, LaTeX input
-      format, SGML or XML using a publicly available DTD, and
-      standard-conforming simple HTML designed for human
-      modification. Opaque formats include PostScript, PDF,
-      proprietary formats that can be read and edited only by
-      proprietary word processors, SGML or XML for which the DTD
-      and/or processing tools are not generally available, and the
-      machine-generated HTML produced by some word processors for
-      output purposes only.
-    </p><p><a name="fdl-title-page"></a>
-      The "Title Page" means, for a printed book, the
-      title page itself, plus such following pages as are needed to
-      hold, legibly, the material this License requires to appear in
-      the title page. For works in formats which do not have any title
-      page as such, "Title Page" means the text near the
-      most prominent appearance of the work's title, preceding the
-      beginning of the body of the text.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section2"></a>2. VERBATIM COPYING</h2></div></div></div><p>
-      You may copy and distribute the <a class="link" 
href="#fdl-document">Document</a> in any medium, either
-      commercially or noncommercially, provided that this License, the
-      copyright notices, and the license notice saying this License
-      applies to the Document are reproduced in all copies, and that
-      you add no other conditions whatsoever to those of this
-      License. You may not use technical measures to obstruct or
-      control the reading or further copying of the copies you make or
-      distribute. However, you may accept compensation in exchange for
-      copies. If you distribute a large enough number of copies you
-      must also follow the conditions in <a class="link" href="#fdl-section3" 
title="3. COPYING IN QUANTITY">section 3</a>.
-    </p><p>
-      You may also lend copies, under the same conditions stated
-      above, and you may publicly display copies.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section3"></a>3. COPYING IN QUANTITY</h2></div></div></div><p>
-      If you publish printed copies of the <a class="link" 
href="#fdl-document">Document</a> numbering more than 100,
-      and the Document's license notice requires <a class="link" 
href="#fdl-cover-texts">Cover Texts</a>, you must enclose
-      the copies in covers that carry, clearly and legibly, all these
-      Cover Texts: Front-Cover Texts on the front cover, and
-      Back-Cover Texts on the back cover. Both covers must also
-      clearly and legibly identify you as the publisher of these
-      copies. The front cover must present the full title with all
-      words of the title equally prominent and visible. You may add
-      other material on the covers in addition. Copying with changes
-      limited to the covers, as long as they preserve the title of the
-      <a class="link" href="#fdl-document">Document</a> and satisfy these
-      conditions, can be treated as verbatim copying in other
-      respects.
-    </p><p>
-      If the required texts for either cover are too voluminous to fit
-      legibly, you should put the first ones listed (as many as fit
-      reasonably) on the actual cover, and continue the rest onto
-      adjacent pages.
-    </p><p>
-      If you publish or distribute <a class="link" 
href="#fdl-transparent">Opaque</a> copies of the <a class="link" 
href="#fdl-document">Document</a> numbering more than 100,
-      you must either include a machine-readable <a class="link" 
href="#fdl-transparent">Transparent</a> copy along with
-      each Opaque copy, or state in or with each Opaque copy a
-      publicly-accessible computer-network location containing a
-      complete Transparent copy of the Document, free of added
-      material, which the general network-using public has access to
-      download anonymously at no charge using public-standard network
-      protocols. If you use the latter option, you must take
-      reasonably prudent steps, when you begin distribution of Opaque
-      copies in quantity, to ensure that this Transparent copy will
-      remain thus accessible at the stated location until at least one
-      year after the last time you distribute an Opaque copy (directly
-      or through your agents or retailers) of that edition to the
-      public.
-    </p><p>
-      It is requested, but not required, that you contact the authors
-      of the <a class="link" href="#fdl-document">Document</a> well before
-      redistributing any large number of copies, to give them a chance
-      to provide you with an updated version of the Document.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section4"></a>4. MODIFICATIONS</h2></div></div></div><p>
-      You may copy and distribute a <a class="link" 
href="#fdl-modified">Modified Version</a> of the <a class="link" 
href="#fdl-document">Document</a> under the conditions of
-      sections <a class="link" href="#fdl-section2" title="2. VERBATIM 
COPYING">2</a> and <a class="link" href="#fdl-section3" title="3. COPYING IN 
QUANTITY">3</a> above, provided that you release
-      the Modified Version under precisely this License, with the
-      Modified Version filling the role of the Document, thus
-      licensing distribution and modification of the Modified Version
-      to whoever possesses a copy of it. In addition, you must do
-      these things in the Modified Version:
-    </p><div class="itemizedlist"><ul type="opencircle"><li 
style="list-style-type: circle"><p><b>A. </b>
-           Use in the <a class="link" href="#fdl-title-page">Title
-           Page</a> (and on the covers, if any) a title distinct
-           from that of the <a class="link" href="#fdl-document">Document</a>, 
and from those of
-           previous versions (which should, if there were any, be
-           listed in the History section of the Document). You may
-           use the same title as a previous version if the original
-           publisher of that version gives permission.
-         </p></li><li style="list-style-type: circle"><p><b>B. </b>
-           List on the <a class="link" href="#fdl-title-page">Title
-           Page</a>, as authors, one or more persons or entities
-           responsible for authorship of the modifications in the
-           <a class="link" href="#fdl-modified">Modified Version</a>,
-           together with at least five of the principal authors of
-           the <a class="link" href="#fdl-document">Document</a> (all of
-           its principal authors, if it has less than five).
-         </p></li><li style="list-style-type: circle"><p><b>C. </b>
-           State on the <a class="link" href="#fdl-title-page">Title
-           Page</a> the name of the publisher of the <a class="link" 
href="#fdl-modified">Modified Version</a>, as the
-           publisher.
-         </p></li><li style="list-style-type: circle"><p><b>D. </b>
-           Preserve all the copyright notices of the <a class="link" 
href="#fdl-document">Document</a>.
-         </p></li><li style="list-style-type: circle"><p><b>E. </b>
-           Add an appropriate copyright notice for your modifications
-           adjacent to the other copyright notices.
-         </p></li><li style="list-style-type: circle"><p><b>F. </b>
-           Include, immediately after the copyright notices, a
-           license notice giving the public permission to use the
-           <a class="link" href="#fdl-modified">Modified Version</a> under
-           the terms of this License, in the form shown in the
-           Addendum below.
-         </p></li><li style="list-style-type: circle"><p><b>G. </b>
-           Preserve in that license notice the full lists of <a class="link" 
href="#fdl-invariant"> Invariant Sections</a> and
-           required <a class="link" href="#fdl-cover-texts">Cover
-           Texts</a> given in the <a class="link" 
href="#fdl-document">Document's</a> license notice.
-         </p></li><li style="list-style-type: circle"><p><b>H. </b>
-           Include an unaltered copy of this License.
-         </p></li><li style="list-style-type: circle"><p><b>I. </b>
-           Preserve the section entitled "History", and
-           its title, and add to it an item stating at least the
-           title, year, new authors, and publisher of the <a class="link" 
href="#fdl-modified">Modified Version </a>as given on
-           the <a class="link" href="#fdl-title-page">Title Page</a>.  If
-           there is no section entitled "History" in the
-           <a class="link" href="#fdl-document">Document</a>, create one
-           stating the title, year, authors, and publisher of the
-           Document as given on its Title Page, then add an item
-           describing the Modified Version as stated in the previous
-           sentence.
-         </p></li><li style="list-style-type: circle"><p><b>J. </b>
-           Preserve the network location, if any, given in the <a class="link" 
href="#fdl-document">Document</a> for public access
-           to a <a class="link" href="#fdl-transparent">Transparent</a>
-           copy of the Document, and likewise the network locations
-           given in the Document for previous versions it was based
-           on. These may be placed in the "History"
-           section.  You may omit a network location for a work that
-           was published at least four years before the Document
-           itself, or if the original publisher of the version it
-           refers to gives permission.
-         </p></li><li style="list-style-type: circle"><p><b>K. </b>
-           In any section entitled "Acknowledgements" or
-           "Dedications", preserve the section's title,
-           and preserve in the section all the substance and tone of
-           each of the contributor acknowledgements and/or
-           dedications given therein.
-         </p></li><li style="list-style-type: circle"><p><b>L. </b>
-           Preserve all the <a class="link" href="#fdl-invariant">Invariant
-           Sections</a> of the <a class="link" 
href="#fdl-document">Document</a>, unaltered in their
-           text and in their titles.  Section numbers or the
-           equivalent are not considered part of the section titles.
-         </p></li><li style="list-style-type: circle"><p><b>M. </b>
-           Delete any section entitled
-           "Endorsements". Such a section may not be
-           included in the <a class="link" href="#fdl-modified">Modified
-           Version</a>.
-         </p></li><li style="list-style-type: circle"><p><b>N. </b>
-           Do not retitle any existing section as
-           "Endorsements" or to conflict in title with
-           any <a class="link" href="#fdl-invariant">Invariant
-           Section</a>.
-         </p></li></ul></div><p>
-      If the <a class="link" href="#fdl-modified">Modified Version</a>
-      includes new front-matter sections or appendices that qualify as
-      <a class="link" href="#fdl-secondary">Secondary Sections</a> and
-      contain no material copied from the Document, you may at your
-      option designate some or all of these sections as invariant. To
-      do this, add their titles to the list of <a class="link" 
href="#fdl-invariant">Invariant Sections</a> in the
-      Modified Version's license notice.  These titles must be
-      distinct from any other section titles.
-    </p><p>
-      You may add a section entitled "Endorsements",
-      provided it contains nothing but endorsements of your <a class="link" 
href="#fdl-modified">Modified Version</a> by various
-      parties--for example, statements of peer review or that the text
-      has been approved by an organization as the authoritative
-      definition of a standard.
-    </p><p>
-      You may add a passage of up to five words as a <a class="link" 
href="#fdl-cover-texts">Front-Cover Text</a>, and a passage
-      of up to 25 words as a <a class="link" 
href="#fdl-cover-texts">Back-Cover Text</a>, to the end of
-      the list of <a class="link" href="#fdl-cover-texts">Cover Texts</a>
-      in the <a class="link" href="#fdl-modified">Modified Version</a>.
-      Only one passage of Front-Cover Text and one of Back-Cover Text
-      may be added by (or through arrangements made by) any one
-      entity. If the <a class="link" href="#fdl-document">Document</a>
-      already includes a cover text for the same cover, previously
-      added by you or by arrangement made by the same entity you are
-      acting on behalf of, you may not add another; but you may
-      replace the old one, on explicit permission from the previous
-      publisher that added the old one.
-    </p><p>
-      The author(s) and publisher(s) of the <a class="link" 
href="#fdl-document">Document</a> do not by this License
-      give permission to use their names for publicity for or to
-      assert or imply endorsement of any <a class="link" 
href="#fdl-modified">Modified Version </a>.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section5"></a>5. COMBINING DOCUMENTS</h2></div></div></div><p>
-      You may combine the <a class="link" href="#fdl-document">Document</a>
-      with other documents released under this License, under the
-      terms defined in <a class="link" href="#fdl-section4" title="4. 
MODIFICATIONS">section 4</a>
-      above for modified versions, provided that you include in the
-      combination all of the <a class="link" href="#fdl-invariant">Invariant
-      Sections</a> of all of the original documents, unmodified,
-      and list them all as Invariant Sections of your combined work in
-      its license notice.
-    </p><p>
-      The combined work need only contain one copy of this License,
-      and multiple identical <a class="link" href="#fdl-invariant">Invariant
-      Sections</a> may be replaced with a single copy. If there are
-      multiple Invariant Sections with the same name but different
-      contents, make the title of each such section unique by adding
-      at the end of it, in parentheses, the name of the original
-      author or publisher of that section if known, or else a unique
-      number. Make the same adjustment to the section titles in the
-      list of Invariant Sections in the license notice of the combined
-      work.
-    </p><p>
-      In the combination, you must combine any sections entitled
-      "History" in the various original documents,
-      forming one section entitled "History"; likewise
-      combine any sections entitled "Acknowledgements",
-      and any sections entitled "Dedications".  You must
-      delete all sections entitled "Endorsements."
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section6"></a>6. COLLECTIONS OF DOCUMENTS</h2></div></div></div><p>
-      You may make a collection consisting of the <a class="link" 
href="#fdl-document">Document</a> and other documents
-      released under this License, and replace the individual copies
-      of this License in the various documents with a single copy that
-      is included in the collection, provided that you follow the
-      rules of this License for verbatim copying of each of the
-      documents in all other respects.
-    </p><p>
-      You may extract a single document from such a collection, and
-      distribute it individually under this License, provided you
-      insert a copy of this License into the extracted document, and
-      follow this License in all other respects regarding verbatim
-      copying of that document.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section7"></a>7. AGGREGATION WITH INDEPENDENT 
WORKS</h2></div></div></div><p>
-      A compilation of the <a class="link" href="#fdl-document">Document</a> 
or its derivatives with
-      other separate and independent documents or works, in or on a
-      volume of a storage or distribution medium, does not as a whole
-      count as a <a class="link" href="#fdl-modified">Modified Version</a>
-      of the Document, provided no compilation copyright is claimed
-      for the compilation.  Such a compilation is called an
-      "aggregate", and this License does not apply to the
-      other self-contained works thus compiled with the Document , on
-      account of their being thus compiled, if they are not themselves
-      derivative works of the Document.  If the <a class="link" 
href="#fdl-cover-texts">Cover Text</a> requirement of <a class="link" 
href="#fdl-section3" title="3. COPYING IN QUANTITY">section 3</a> is applicable 
to these
-      copies of the Document, then if the Document is less than one
-      quarter of the entire aggregate, the Document's Cover Texts may
-      be placed on covers that surround only the Document within the
-      aggregate. Otherwise they must appear on covers around the whole
-      aggregate.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section8"></a>8. TRANSLATION</h2></div></div></div><p>
-      Translation is considered a kind of modification, so you may
-      distribute translations of the <a class="link" 
href="#fdl-document">Document</a> under the terms of <a class="link" 
href="#fdl-section4" title="4. MODIFICATIONS">section 4</a>. Replacing <a 
class="link" href="#fdl-invariant"> Invariant Sections</a> with
-      translations requires special permission from their copyright
-      holders, but you may include translations of some or all
-      Invariant Sections in addition to the original versions of these
-      Invariant Sections. You may include a translation of this
-      License provided that you also include the original English
-      version of this License. In case of a disagreement between the
-      translation and the original English version of this License,
-      the original English version will prevail.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section9"></a>9. TERMINATION</h2></div></div></div><p>
-      You may not copy, modify, sublicense, or distribute the <a class="link" 
href="#fdl-document">Document</a> except as expressly
-      provided for under this License. Any other attempt to copy,
-      modify, sublicense or distribute the Document is void, and will
-      automatically terminate your rights under this License. However,
-      parties who have received copies, or rights, from you under this
-      License will not have their licenses terminated so long as such
-      parties remain in full compliance.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section10"></a>10. FUTURE REVISIONS OF THIS 
LICENSE</h2></div></div></div><p>
-      The <a class="ulink" href="http://www.gnu.org/fsf/fsf.html"; 
target="_top">Free Software
-      Foundation</a> may publish new, revised versions of the GNU
-      Free Documentation License from time to time. Such new versions
-      will be similar in spirit to the present version, but may differ
-      in detail to address new problems or concerns. See <a class="ulink" 
href="http://www.gnu.org/copyleft"; 
target="_top">http://www.gnu.org/copyleft/</a>.
-    </p><p>
-      Each version of the License is given a distinguishing version
-      number. If the <a class="link" href="#fdl-document">Document</a>
-      specifies that a particular numbered version of this License
-      "or any later version" applies to it, you have the
-      option of following the terms and conditions either of that
-      specified version or of any later version that has been
-      published (not as a draft) by the Free Software Foundation. If
-      the Document does not specify a version number of this License,
-      you may choose any version ever published (not as a draft) by
-      the Free Software Foundation.
-    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-using"></a>Addendum</h2></div></div></div><p>
-      To use this License in a document you have written, include a copy of
-      the License in the document and put the following copyright and
-      license notices just after the title page:
-    </p><div class="blockquote"><blockquote class="blockquote"><p>
-       Copyright  YEAR YOUR NAME.
-      </p><p>
-       Permission is granted to copy, distribute and/or modify this
-       document under the terms of the GNU Free Documentation
-       License, Version 1.1 or any later version published by the
-       Free Software Foundation; with the <a class="link" 
href="#fdl-invariant">Invariant Sections</a> being LIST
-       THEIR TITLES, with the <a class="link" 
href="#fdl-cover-texts">Front-Cover Texts</a> being LIST,
-       and with the <a class="link" href="#fdl-cover-texts">Back-Cover
-       Texts</a> being LIST.  A copy of the license is included in
-       the section entitled "GNU Free Documentation
-       License".
-      </p></blockquote></div><p>
-      If you have no <a class="link" href="#fdl-invariant">Invariant
-      Sections</a>, write "with no Invariant Sections"
-      instead of saying which ones are invariant.  If you have no
-      <a class="link" href="#fdl-cover-texts">Front-Cover Texts</a>, write
-      "no Front-Cover Texts" instead of
-      "Front-Cover Texts being LIST"; likewise for <a class="link" 
href="#fdl-cover-texts">Back-Cover Texts</a>.
-    </p><p>
-      If your document contains nontrivial examples of program code,
-      we recommend releasing these examples in parallel under your
-      choice of free software license, such as the <a class="ulink" 
href="http://www.gnu.org/copyleft/gpl.html"; target="_top"> GNU General Public
-      License</a>, to permit their use in free software.
-    </p></div></div></div></body></html>

Index: packaging/doc/gnash.info.in
===================================================================
RCS file: packaging/doc/gnash.info.in
diff -N packaging/doc/gnash.info.in
--- packaging/doc/gnash.info.in 3 Mar 2008 11:13:43 -0000       1.1.2.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,3695 +0,0 @@
-This is gnash.info, produced by makeinfo version 4.8 from gnash.texi.
-
-START-INFO-DIR-ENTRY
-* Gnash Manual: (gnash).        [MISSING TEXT]
-END-INFO-DIR-ENTRY
-
-
-File: gnash.info,  Node: Top,  Next: Introduction,  Up: (dir)
-
-Gnash Manual
-************
-
-* Menu:
-
-* Introduction::
-* Using Gnash::
-* Installing and Configuring Gnash::
-* Reporting Bugs::
-* Technical Specifications::
-* Glossary::
-* RTMP Protocol::
-* Authors::
-* GNU Free Documentation License::
-
---- The Detailed Node Listing ---
-
-Introduction
-
-* What Is Supported ?::
-* Audience::
-
-Using Gnash
-
-* Gnash Command Line Options::
-* Gnash Interactive Control Keys::
-* User Configuration File::
-
-Installing and Configuring Gnash
-
-* Requirements::
-* Downloading Gnash::
-* Pre-Compile Configuration::
-* Building from Source::
-* Installation::
-
-Reporting Bugs
-
-* Compile the latest Gnash build::
-* Determine if the bug was previously reported::
-* Review the bug writing guidelines::
-* Filing a bug report::
-
-Technical Specifications
-
-* Memory Management::
-* Security::
-
-RTMP Protocol
-
-* AMF Format::
-
-GNU Free Documentation License
-
-* 0. PREAMBLE: 0_ PREAMBLE.
-* 1. APPLICABILITY AND DEFINITIONS: 1_ APPLICABILITY AND DEFINITIONS.
-* 2. VERBATIM COPYING: 2_ VERBATIM COPYING.
-* 3. COPYING IN QUANTITY: 3_ COPYING IN QUANTITY.
-* 4. MODIFICATIONS: 4_ MODIFICATIONS.
-* 5. COMBINING DOCUMENTS: 5_ COMBINING DOCUMENTS.
-* 6. COLLECTIONS OF DOCUMENTS: 6_ COLLECTIONS OF DOCUMENTS.
-* 7. AGGREGATION WITH INDEPENDENT WORKS: 7_ AGGREGATION WITH INDEPENDENT WORKS.
-* 8. TRANSLATION: 8_ TRANSLATION.
-* 9. TERMINATION: 9_ TERMINATION.
-* 10. FUTURE REVISIONS OF THIS LICENSE: 10_ FUTURE REVISIONS OF THIS LICENSE.
-* Addendum::
-
-
-File: gnash.info,  Node: Introduction,  Next: Using Gnash,  Prev: Top,  Up: Top
-
-1 Introduction
-**************
-
-Gnash is a free SWF movie player.  It is available as a stand-alone
-application or as a plugin for several popular web browsers. It
-supports playing media from a disk or streaming over a network
-connection. Some popular video sharing sites like YouTube are supported
-from a wide vaariety of devices from embedded ones to modern desktops.
-
-   Gnash has a better focus on security, allowing the user tight
-control of all network or disk based I/O. Gnash also supports extending
-ActionScript by creating your own. You can write wrappers for any
-development library, and import them into the player much like perl or
-python does.
-
-* Menu:
-
-* What Is Supported ?::
-* Audience::
-
-
-File: gnash.info,  Node: What Is Supported ?,  Next: Audience,  Up: 
Introduction
-
-1.1 What Is Supported ?
-=======================
-
-Gnash is known to compile for most any POSIX and ANSI C++ conforming
-system if you have all the dependent libraries installed. Systems we
-test on, and which Gnash is know to run on are Ubuntu, Fedora, Debian,
-OpenBSD, NetBSD, FreeBSD, Win32, and Darwin (OSX) primarily.
-Occasionally other platforms are built, primarily by those distribution
-maintainers. This includes BeOS, Haiku, Syllable, OS/2, Solaris,
-Slackware, and Gentoo.
-
-   Gnash is a capable of reading up to SWF v9 files and opcodes, but
-primarily supports SWF v7, with better SWF v8 and v9 support under
-heavy developement. With the 0.8.2 release, Gnash includes initial
-parser support for SWF v8 and v9.  Not all ActionScript 2 classes are
-implemented yet, but all of the most heavily used ones are. Many
-ActionScript 2 classes are partially implemented; there is support for
-all of the commonly used methods of each class.
-
-   As ActionsScript 3 is a more developed version of ActionScript 2,
-many of the same classes work for both. Support has been added to
-Gnash's ActionScript library to support the new ActionScript 3 filters,
-which get applied to every class. Implementing ActionScript clases is
-often the easiest way for new Gnash developers to make a contribution
-without a deep internal knpowledge of Gnash.
-
-   Gnash has included video support since early 2007, but this is an
-every changing field of reverse engineering. Many of the popular video
-sharing sites use SWF v8 or v9, which Gnash still has imperfect support
-for. This is improving all the time, so often builds from a development
-snapshot will work when using the older release packaged in your
-distribution doesn't. You can find daily snapshots of the latest CVS
-tree at: http://www.gnashdev.org/dev_snapshots
-(http://www.gnashdev.org/dev_snapshots/).
-
-   Gnash uses ffmpeg for codecs, so any file suppored by Mplayer should
-work with Gnash. Gnash supports the loading of patent free codecs like
-Ogg Vorbis or Theora from disk based files, while work is being done to
-support these codecs when embedded in a SWF file. Ffmpeg contains the
-codecs used by the current SWF defintion, FLV, VP6 (ON2), H.263, H.264,
-and MP3.
-
-
-File: gnash.info,  Node: Audience,  Prev: What Is Supported ?,  Up: 
Introduction
-
-1.2 Audience
-============
-
-This manual is primarily focused on developers interested in
-contributing to or building from the Gnash project.  It serves as a
-detailed reference guide, including a catalog and explanation of all
-options and features.  This level of detail may make this guide
-cumbersome for the average user, although advanced users may find it
-helpful.
-
-
-File: gnash.info,  Node: Using Gnash,  Next: Installing and Configuring Gnash, 
 Prev: Introduction,  Up: Top
-
-2 Using Gnash
-*************
-
-When used as a standalone player, you can play any Flash file from the
-command line by entering a command of the format:
-
-
-           gnash <option> <flashfile.swf>
-
-The only required argument is the name (and location)of the file to be
-played.
-
-   The available options are listed in the following section, or you
-may view them in the terminal window by executing the following at the
-command line:
-
-
-           gnash --help |less
-
-   The source code download of Gnash includes several example .SWF
-files.  They are located in the `testsuite/samples/' directory of the
-Gnash source directory.  If you have installed Gnash correctly, issuing
-the a command similar to the following plays a short animation of a car
-swerving and crashing:
-
-
-           gnash
-           /home/<username>/gnash/testsuite/car_smash.swf
-
-‰PNG
-
-
IHDR6À˜Sh        pHYs:ÊduhtIMEÕ Eö—H 
IDATxÚì}yœdU}ïï,w¿µvWwÏ* Âì*”Eшã.ˆF1Ä$ïÅ|address@hidden 
A†m˜¥g¦»Ö»ŸõýQÝ=5ÝUÕÕQôþ>ý™©S·îrÎ=ç{¾¿åüŒñYÏ;ÿ˜íÇÃyð‘=6mA€Ðü?¹ä’K.CE€ÖöìÙ}ü¶Í«»ÎÃ=pç7+¥Æø}øè9ç½hzúŽC„©É
     øìnáÆF¥‰±ãÓ$ñ’IC±¶íUã(ô=+XóÀ°Kq^ÊdˆÍbµË¥Rœ)¬" ~µ+•jœ
-¢c…½,i—ËÕ8a1‰žvüb%I2“H–È×/%Ij›ˆ+*Yd¹Å4I›r‰
ÛÏÒص-&‘–       1¼,<address@hidden:,<ßg\!•jì°4,Š)“2…lÎ"×-0&
-LÁcÛñV)Ór9ãER%Rj:œ3Ó Ra-3B-ΙiR(†ˆ%8³,SH
Š6ÏlÛR!-42¤È,ËæBaè™iZBJŒ´¢$£†%…$`-9¡¦‚¤4֊cbH))ÁJ#­ÆT*A       
Q€¨R‚ª4€–€ˆR‚ª%!D+
 a­$&D)ݝ´Va¥Âz¾ZBZk47Ui4ÿzèÇóçv»îÜõAkèw»ù¢Âé…
¢Rw‹-Tg¡vRPÚSwÉ©aJ©RÝ¢!¥šojN
C
-5×Ԋb)kj!(%J#­&¦àÜ4
©æÞ¬ä™e[Bj¤¹F¦à©m»\HE‡IT`HžZ¶Ã¸ X+ R¤¦åpÆŠ¥&J$†é2–Y&
-k™ÃeYbۖÝnì²,ò\—     T
-Äaiäû…ŒK¬S…–……B1ͦÍ³Ðó‹iÆ
,%˜sƒ(Í,
-B’…¶[L’ı     
—DñÈ´I{®ÅÒ"¢f!I‚ïeLƒŠ0õ“¸ÓÂDEšøIܪVÇ¢DPˆ$ò³¸Y®Ö¢851ತU,EQbQɵÅӎã•ã$5ÊÂ=o}Í`f¶Î[Ô]&jã†aÀþ¥”‹ºÒ†
“·Ýò­¾ÿ·Ðóιàò±8
-Î:ã$4OŸº½4K³[¿ßD­öÏ×߆,î|/ˆ™0Çâötu|¢ÙN}+“¤št¦ËcSÍVXrU¦‹,Ú_ªlh¶ÚåI„ËãýÅʦf«9V²‚ÌRÉ~¿²¹Õ¬•ÝNJ«ÛÅ
A{¶Rò;  Ù1ÝZÔË¥b'–Äت$a£T*u"n“LÓR×ÅJeŽ!$òYÒðÕ0J<˜rDÚpca\’JS¦M§0…
AÁ3nhÖ´½ñ(êøž•0‚D`8å4<ÏI2À:&V1‹×s“LQ”!ê±4t7ɤA„ÆŽÈBÛñҌ›T+°mÇO3f 
´!ydÙ~šf¶E¸$ZD†UȲԶ(address@hidden)2Ã0¹P+address@hidden
-!AJ­2B-)%Xj¬#ԔB‚»Ð†±!¥$w‡7ÂT)I0VBD+‰0Öº‹5´BÍ͒õC+=wÐóX¥»Ð3ÁnqávswÇK¥1Ò]$"„́(Å
       5¤”ƒÒd¡v” 9Ww[fR"ŵ8ç¦A„ÐSKpfš”ÀÀ55WKÀ¦`©iYœKŠ•B¦ä‰e9ã&Õ
ÉcËò2–YŠ*™v!MÇ¢L-BÓ.¦Iì:fÊR1µ
-Y¹Ž•rÀ:%†Ÿ¥ëºI&
Āú,鸞Ÿ¤Ü$Bc—¥×+ÄIfJ"W¤-Ç+Gqâو)[¦
§0…a·«¬ájaÐ.ì(#ˆ7-¿­RÁ
S„UÛpÆã°Y*úA¬ˆˆ]‰ƒ…A”‚QNÂÙR©Ú  
Sײh¦Xªµƒ¨àèLû<:P¬LµÚ²Obáˆîn6ÆËv'3U²ß¯li5fjU¿cÄgœâævóÀxµÔŠ4•MÓßÐi«Vڑ¤b³$£]¿öº:ö)'n÷<·jÀmwÞkÛ^Ggœz‚i‹Ž~ëæ;ÇÇkïÿŸ¿N.xÑKN:å
Ç&ž_ɸT
-„„ŒK­Aixr÷^ÏóôÀ®N¤Çi‡Ì„„ãrМ.–Ç6"×ÈR]ŽZû
-剙َgːûI0í'gê­¢‹;©…ûâÔìl½\0‘!âýVaC}v¦\rê!Ré,u'™RÁ«ñ6²ÆÚ͙BÁ¯w8Ñ¡¢å 
=ëùÅz;3PÊ ³ŽWnt‹ðTºiT·Ýr³نŠ¸•ÅuÓ©4ہkã ¥,iP§Ún·]›v"’±«íNËuÌNŒkƒQ
-ƒŽíXHi)âGaDzìN,Jr“(0,'ˆ8δ•Å5 Î’©4²4 †F)Á:儥!6¼0JŠb†x"袯 
address@hidden  f–&ˆÐ$Zq¡h–%Ó$Z®ËÀFšq
Š       ÌX
address@hidden
-YÆ ÀyªfÓLh!˜Ô$c\0®„àRcƹÖÝ¢1.¤FŒ+!¥ „
-¸PB*!µè~˜/r¡„ÔBj!UϟR)…TB‚RHÅ¥B
-       Œ©º'Î5â¼{1Î¥F—JI.cL>Tä™’1®µf-Ôæën¦iŠJ™î6E’f£„i)3    
Fš¦“$SZ2Æ¡¦Ö\(š¥1&F”rВ)ÊÒQ+J2ŒT&K#L(I     F       Ç,ë¾èØ4H”!‘ÈðÃ(2
¦ZñP/
-CÓ4ÃDi+ìFÑB¿Êr“¨mZn'Êp¦$n›¶ßRƒÈTØiÔ4íb;ˆ,"n²¸a8åV;pmÒI‰H†SmµZ¾gµ"¤²&¶ÇÚ­¦ïÙÍPƒhQ
ÚuÏsÀ*P¤´ëž_¨·3%£ÎŒç—ë­Ø¢,U^Ì8~µÞ\K…ÜÍÂN¡6Ûh]ÜN-îw
-fêõJÁªGTÄÓvqóÌÌÁjٛé Íf
oC}v¥\œiK,ȞjÖ§Ëåòl[QJ“ÀÐÑé'=3K“­[·d¬Ûs@(-¥Vfëu)address@hidden 
T›iĞÁR]ŠÛӅòÄL=(Ø*â^ì÷Š“³õVÉÅíÔæѧ85;Û(ÌFDU|Àò7Ô볕’; 
Èf©;Ñl̔‹^=PX´5ÖiÍ…FGPIRÛ³¾_l´3g
-IXw½R³[D¤ÒÍ¢†å–›íÈ1uÄ-–4L§ÜꞍƒ”Š´iؕN»ã9´“`™5‰SítڞcubмƒŒR´ÇìD
-d¤‰‡Û²ƒX`•Jä¤QÇ´ì0b8?„VŒ"•Iƒ§a­(Ñ)'<‹ˆáFQbRœ0$X„©G±Iqœâ7Žcƒ’$SZ¤YiSB“LiɘYb$©-„2X–"b$™Bž¥iÆ4˜ó.Zqš
       $x¦‘‘e¼‹V’gŒŒqÄ8Ε¦œq
À¹–RH…ù<ZI)¥B\­s©”’„RRJ%¥BJ¥…ÐBuÁKJµªæqM*!ô¡S¤–BIBH¥€K-e÷ús·“RJÕ-¢î݅
D‚s
˜s¡çŠLɘ­¹Á3š±¹ÊÎ×=Ãe¤È42³4#§Lk™)0³4#„¤Ljɤ6²4ń&©œoê3NÉáYŒ©•$Œ    
ÂYÜE+Š!å¸ûf£(6)Ž2,D†…‘eÐ(address@hidden
--Ë   2Ñ؋£À:¼_Y–DŒgÚNã¶ey 1‰Ì„•%-Ó.v‚Ø6 
æOš†Snwææ`™6©]m·ÛÏlEH³&±«V£àÙÍP#Ñ£´¾ï5Iu¤h9ìÔ}¿Ðh3§âά뗭Ħ<U~̺~¥Ñ
=KGÜaáAǯÕí¢KÚ©)¢ƒvaª^¯W
-f=¢*9`ù›fgŽ•Ý™6›¡î†Æìj¥8ӒT6‘=ÙjLW+åÙ3!P´‡mÛq%6Ž 
„ŒºŸ{¸:‚z½uý×nþôg¯ÿþ]?VJõ¥‡>ôœçžúo_üf¥\ܲibÓƚš×$µÆa,LÌ8xi0S*UÖゝ%ªÂ‚ý¥Jíàl§ìé€û29P(OÎÖ[Õi'–Îx¥©úl}¬d7BŠùA»8UŸ©U½ÙP9Kü©Vcv¬â϶¥
     
°kæL¹\¬·¹Mb‰+i{¶T*5ڙc0¦‹<˜õ‹åF;ö,•JO¦u·PiµÂ‚ƒ"f)Öp¼J»<¤xÓò*v§è™#Ñ4ݱN«U*ØíH€]ƒvÁs:¡¢(QF1
ڞçv"nb&ˆ'¢ŽãxAÈ-*˜rdÚ±/Œ2ËЩ0•-ˋ¢Ä6QÊ©¡1W$q #jyQ;¶e€UD
address@hidden,address@hidden  SBÍ,å”BÆ  ¨S3K¡˜qabʌQŠ3®‘æ‚1‚1ãi0QJ`Œ…
ThΪÕ-J4gf’c¥Õ\¤A£®Mj¾ØW„—º&°EWÐ
-c$¤D °Öc,D×¢‡µæÁF ƒfSÁÁÀ8Í0¡YÆ)AŒ£neÓ43(I bb±45)M2…kbÉ$5Lš¤’ 
!±%ÓÄ0Í$•t¾©MÃLN‰bÂP"6,;N˜I!T‹Ø°œ8N-%
ƒŒ¨åÆQlÛ4ÎɈX~†®c†‰":Õ¦GëXa,)dŠúiÔq'ˆ¸‰¹ 
®ˆ:ŽëuÂÌ¢’+G¤mÇõ;aj›*¶bmÛ-v‚ȳQÄLÍ[–[î´ߥAB‘hXnµÝj•‹v3DD5±3Öi5KE§hmWƒv³TòaáXârÚ®KÅF;shÆu‘uê
…R¹ÑŠ}K¦Òçɬ_¬4šaх
¹*ñJµz£U)Ðvb›q‹“õz}¼ÜÂŒâÆúìÁ‰1ÿ`L5CýÍÙµ±âÁ†°Q[;address@hidden>I¨ÞhÝsïOºHtÎÙ'—Š~/`ÕÆË[7M>úøî—^üJ
        îéa¸÷Ó¶£¶\yŋ¶lš¸üÒópìi--*€z2ëT*•v˜–]®HE$«cí 
®4ƒd³åêd§Ó/‘D:˜Ï*SN«V±CnP9ë•7„íæä¸×I°©Nq*îÔkc~'¦WË¢ÆXµ&Ò¥1±ª<iV*å0æ¾É-ª¬Y*W¢8+ÚJaO³V¡T‰ã¤äam¿PMâ¸ì&M"Ûn¡šÆa¥`¦‚RÕqü±4îTKv°
      ¡åUx”‹NÊÁ"     µŠ2‹7eÊ¡›¾â‘ï{®)€: 
"Ïó箥[HÅ®ëqÎ<+0°Jl×<ó"H-Ǘ<ó]C(L!5m_ŠÔsL¡¹aºJd®cJ©M,ˆiÊǔJYTj"address@hidden
L±f¦e)--"qÃ4µ¦‰ ‚¸a˜ZËÄE‚a¢HRJ(ƒb„€bMÁh¡„`Œõ\‘!cM Ƹ{a” 
Œ` address@hidden&c¬ç¾ÄzþúhþvceP‚6àîýEIîÂ#ahi™0Æó•µM¢QÄÓҊ;U€
Ì©aiÅlÛP"      address@hidden&‘¨ÛÔ¶)•´ˆ‰uf;ŽÂ1Å:µGæÚX%:±WòÌs
©Ñ©éø‚%Ïä(5l_²Ø÷l&ÀČZ¾äQÁw2¡lʱáén¿bÂ5%¢Ž¡ï²Œy–ÖȺ~1Mӂƒ„¶°
\¿œ%QɧLTµ,IÂjɎ6¡m{ãiÜ®–Ý8C·ÊâVµìG‰rHL­2OZ•r1Š…
g2d”DÚ*WÊa”©ˆ¯²F©\¢¤ìñF±Rƒ`¬HaÑ(”'ƒNk¢b‡YwoÛõ©šßŽ±
u»¸1ìÌLՊ­H»¤møSIpp¢Vm²`†Ä®±h¶\*Å©°(7sjDQôãŸ<ü£ûþñOîòbt°P³Ù¦„\ýúËw>ú¤V
-õP,ô¦·¼ëõo~ÅbÛÑÛº<mž¤!)åÍ·Ý511ùÏ×ßê)–†®ëvÂÔ5˜À¥,œ)UÆZ¤`Ë
-"®Jã­NXòP"•ÕÝb­Óî”FÄ,`u»8Ñi·ªE§“,š–?vš•’׉êuÆã°Q*úX™(Æf%š…
b1ˆ¸M™"·üB1Œ˜cJ<‘¶]¿F©gÓ¶Ê:¶WŠ¢ØwH*MÍ;–[Š£ØwiÂi׬žÄ¡ïZ1CX…
†½P¢lX¹®Óµ²õx9Ž“dÒÄBa[²Ø²”    
“(–±i¹YÆ»Vv-bÃr³ŒY&撀L©é2–Ù&aϳ̶h6gew8Ë,“²9Ó¯-xfšú•Ý4¹i¨’¬ke'æœ\ÔRRŒ¤Æ
 address@hidden<gt_deD´Rc­5­ç¬ìÝ"address@hidden<† 5`zÎ_ 
jáv‡î®”Â4`Ða¢”嫮 »îQI0R½u§Hªnє‚SJ„¬"¦Ì ”KÀÐ[ì6µ!ë65EJ!C‰Ì0-ƅ
A´C‰Ô0mƸI‘ÐÝ7ë0Æ,“ðCo6ul#åë„ËÇ6S2D]žÅŽm¥LSĀº"‹ìù~¥±#Xd;n’2‹j‰,É"Ûñ’$³MàÚÒ<°œbœ$®M2AA–SŽãÐẅ́$Ã-'aPôí0CD
…Ô.'Q§XpƒD›#«”EíBÁbi‘LÓ‹Û…B!ˆ˜c
-‰|ž6=¿D©g)®]™5]¿Ú     £¢‹aiÖtýñNÐ)ûfÈ(â
۟촛ce§"êVaªÓªWüf¦nSw"lÏV+ÅV(m"k,ë•r9ˆ…EP_EOþÚë.贛Ï=ëT)address@hidden  
óV«®·þø“jããŸùÂ-‰®Ø–¤Ì"Ba/‹…R¥$ž¥òXÒ,« ò”)G¦M¯0Ö       
‚¢GajÖtüZ´K¾1‚xÛòÇÃN«\tƒˆ
-
§‡­bÁE!!f)‰Û…‚&ÂD…,i{^!J˜M¥Ä®H;®WŒ’Ô1€ƒ¥X`»Å(N\3ejZn1ŽcϦ™ 
ZF¦]LâÈs͔c‘a—Ò8ô\+a€uBÌK#DZS¦pL–ÅŽí¤LR,ۂǖådL¤ë9J-ËΘ0(HMµH
Ëɳ(šh™Rc¡O#PŒ6c™e\R¶`Ì4)—s#Jf†
-#ؐ‚ÔRa¤J2B
)ÆZéú॔#X+Aˆ!¤8î@%!X*z®ˆ       V
-!€h×
§4 ­wðҀ`.v#¤æâ
 Ûuô¡" 4 ÑáøÕu("@zñ)€z"æ‹!5WÄZ˹èŠîѹg›/­%ÆDI…1R€ˆR
-J°Téù"ÅR"¤9"¦”Ü DH@ 6¤à¥BjŒ$`C      F©Á¥"address@hidden     WTF
‡±Ì6)“©Œ.c‰m™Œk¤1\ž%–mf\àˆ:"KlÛîíW¶å¤ŒD+dIY¶—¦™e€Ô¦ä‘åøi’:fÊÐ<4b’Äžm¤ƒŒL»”āïÙqDÅÔ.&qPðœ(ÓT§Ø,dIÇ÷¼(•ʐágIà{^˜p›
-…=žv\¿E™c*ŽÈÚ®W£Øs0“–b-ǯaXtiÂ
Í[Ž?tZ墦‰–åO„F¹ä1Ý1ñ0hTJ…
v$Ma«šõR¹Ü‰¸E8¢>g‰N÷¿íõ/ît:“µ²i‹â:}bo¡XŽ£pã†1BÈaGüt瓵‰üä_¡_ûõß¹æí¿¥µÞ7½ÑäHš¬À§þùdod\QÄõXÒö
…(fÚ(dQÓ/”¢˜Ù¦”ÈcqÓ+”£(qm$´ÍӖëWÂ(*84S¦H›Ž?…AÑ·Nk[n5Ž‚‚o'
!N9‰ϵÓy4I“Às»Q¥ãzi&"address@hidden'–SH“Ô¶    
—Tñ°ë‡vmƒI¬ElX~–&¶m2JçûœÅ„Æš!ê–X–ŸÂH"l
-žš–Ÿ¤XkdHž¦Í¹0(( =E¤4‘"5L‡sfX*¢eF[pfD*¤#t¾(€ÀØ‚•R#P€©’œÚããç„R©y¿ 
„Êy2¢•À„.‘EÅyn¥0FZ£CÌ!
æCŸP÷h—UuÁfQ‰j-±h-¥»ÁXÁüÝÒÝH1¬ ®UKIL°RzPe   
¡óáèð"ÌÑL)!JA·©¥ä´^ݦœ],S€¨̘cµZ#*EF
KpA)hM¥è¾h>÷f»1z,3M*ÒrË,“ò9,sK-Ëàœz¾_$€Ø<‹mÛΘ4ˆÒÈâ,²m7eÜ¢ 
Á,²l/͘mb¡¨ä¡å’¤Û‰âéÓ8v]“ñ®‰­&QÏ ò³$t]'address@hidden,±0„]š       
SdCØL8UYËöÇ¢ 
],ºqŠìN%Ûł¥šèÅ,,Ûî4ž|÷Õ/€™ÙcÙâ8¬‰šA)ì?0#¥Xttã†)address@hidden)ŽrÁ\rÉeˆ¬û¨™]y±|×åÜűM;ïtñ'¦Ÿr띍º²K³6=bcñü36nüþíôë+
    
À‘yÈ%—\Ö&·ÿÍêΟÿëÁ9ï½÷¶"ÎÛ0—\ryºHX¹ä’KX¹ä’K.9`å’K.9`å’K.¹ä€•K.¹ä’V.¹ä’V.¹ä’KX¹ä’K.9`å’K.9`å’K.¹ä€•K.¹ä’V.¹ä’V.¹ä’KX¹ä’K.9`å’K.9`å’K.¹ä€•K.¹ä2‚м
      žF’øÜ^CÙŒ@(˜Ž¡ÃÁÄP2 ¨Ú+؇+—\rÀúE¥¡•ׇ¾if ÔÜ!‚Ì$p ¡ÊL
- address@hidden@iD0R¦Â³)<ÖDH¡©…;îOÀp<BHÐéÅsw 
b9V¡¤‹¥´œÅhm9ŽMlZ®Ž§{åI¥ë)h€2Î
-¶Q¶Àæ!æcé¨ÈÔ¬b…¡æªAP4¡fƒEòמKX?Orx"€‡Zpÿ,úò›    
åPdxEÛ¶)¥éÁ™$ŠbÓ°s0©¹ª´¥µ'%˜›B)¥À žÂ5M«•ބ     ]BlΜßÜ*Óp4BÈÖz!eš»_ö
address@hidden £QI¢”ò<¯[´gf'address@hidden:H»‡fŸs®pÀRíW¢CžÙ¦„Ï_GJ 
hi)ÕÞùHøø ­dl*ùH«€(¡ @êìÛ„¾Ž(Qª¸0B.†1G
address@hidden,0,%J&L:P2¡fCÁ̇R.9`­YbÓ142x°:address@hidden)¢ÁŒ 
€Œnc!Dñêí~Ç÷„Úö…¯Œz&>ü5 Ùý¿öÐNMHŸ‹/}ÍaD
—š‡Œ…uÈ4hгÏ9=:b+(¡µPªÙjeiÚh4 h·Z õ®ÝÆ Pz!àDíÕRmRóÏÄÛ
ÂðÍÇèŠc6T-¨ÙPÌá,—°zeo?EÖäS˜‹0Kˆ™á) Sšœ®h
cÝÝɶqè|Ùå8JðÓ@;²êýÞd 
p».0õÃ{á‡÷.wš†{HSˆç6šzás+ÖO„êIP‘(Üõ}ɑvMš)žÕF*$J Ũvm³f«s'D— mrÁ 
€le+¹üB֓!|áIszê쪷áŒ)ë…Ss:°2u«Wúú7‘ùË^Á>ZP}Quþã€ñâ>%1­™&´Ô 
˜nÄÐÖj÷“âq-ïCJ-A‡”& g‘Ú)RŽÐ6GýÊ&½¹¤ŸUm% ¹+;—§;`íáÏîEb¿wéy]ø®wáñqà=?H{>ϼåM 
õZnWú֍ƾéCãPÈf«ÇQÐ    ×õ}oçÎGâ8"=¼Ì²­R±4¬£Þ1 IDAT7È       VR9>|ˆ§Ô²ƒ¨ 
,@E„{¡„Psþ3гjÎð^ÃØ4·ã»©¨DãšdZÿT
-       `"GÔ06
-ÐÏØ[HBV—Ñ!€Ý¯‰q˜Ž«µÔÀöƒßPʏ`êQ²OÉûÜäz¡H‰—kâèŠ~öŒÛù˜Íëi%4áïv•w?ÂG{§ 
bÜú=ùŸ?2ª×Tª®Õ킅
ZK¥5D'¿ïˆ­­VKBˆf³I)圷Ûmq8;3Mc|è˨¥(471¥‡CkŽƒ!BZk<1‡_JiÁš2º‡”#¼.@)
 ¸ûQH¹P;-„A(address@hiddenzB*¢¡¢´­uÅ×UÐ6º
-â8Æ&dŒaì#TA#p›’€€Dk녈"°ŽF`®²UŒOH
ÎêpVýÔ`ŸÖ1¥;Æ7ËçLÀ3
-€¤¡rÿfX?¢5|g¿ñ¡Ç/Q…
ßם±ùáD‚pÑ/J5´ªkµO©H«Çì%x7%(I(eR(ËÒ/Ðõ·؃t­1ZkBH¥R!„ض=66…
B”!d†çy…BÁ0‚`Û¶mãããõz]÷P¹v»Ç1`ŒÕ<KÛ¶+•J÷{J)c¬ÑhdYvˆ˜"¥ìþ 
Z­vï‚RJÍÎÎ*¥´ÖÝ1Ƥ”Û¶m«ÏÎ
-)…Zë(Šc¶fÀÁ8NÓtg!<ÏcŒaŒ ! AܹÆÕRRBB µâ\K©…“ª¨õ˜Tµ¢|©\¥1FJkhj[è6 
²       “
Oa²Ž¼¸¹@&„s.8\è4‚Çv‰ïh–xœ•¤c06¤—mWS.Œ|Pç€õs 
RÃgö”?ûcë#‚–ÓÖÃZTŠ–•šÁˆa¬AÏÜíZ„RaRk     ¤T†Q«Õ6ÕjµZmÛ¶m“““¥R© 
¦¦¦°!ÔeFcaŒBJJ
€BaŒ»_€Rªûå¢gF£idý¦5t¿_ø°ô€VJ`Œ{rѺ(©¤TZw¿‚ ‚0;ç|vvöPKY¯×¥” 
u'²,ët:išîŽ¢iš$ÉÂÓv1c¼ððc¬5Ñ 8ׂoârR*W©ŠÒR™mD¨†ð8Æ„'1Y5êú
NBÆI`¨Twʑ0ý„üáãìÃ*©•¾ãx8²í°~vòÃøÄô¦öƒñ§½R$Ñø˜ã¹c­µÔšqÎ9—R
-…Z­V.—K¥R¥\>ò¨£&'&6nÚÔ
³"„ƒe¸:ÔÕ¼–²ŒG½È"ôbY[øÙÒk"´pԅÔyYô<K¥P(èáæ<address@hidden;KëÙz½K        
»¼ïŽ;îˆã˜1Ön·ëõz«ÝžN’ &&&Úí6F 
­1€BqN4J•”Be¥Ç„8Bê’Ò]崊ðÆǺq(Yë0لÉ&p.%η¦ÑŽÇ[gm'¿µ­³ÕÏxXÿýhÕ4¿qô[ýðáÿ?ö¼‰Îd­X,nÚ´©\.W*•
6LMMMLLÔjµîÌߕ¥ÒÕwú£ÀR"address@hidden/„Ð|C
¾­®Û{Ú¶mÛÈ]WºHwàÀ 
ÚívgfšÍf—ÍÌÌ4$I’$éro½N06-«Ëg%ç]h+¤Ùv.ŽÍø©˜Eè1„Òåzó%B‡ýßOjØtŸsðþ·çƒ<¬ÿ>¹¯Iÿ¼È{âà›~øã
 ŒÞÏӇ7Ô¦ÆÇÿôÃv=ÍË
-®8âP_‘Ž¶†[?µ²–;v¥[Ù¥¬ìð&ë%w½0wÄG,:u_ë~BÌÎÌÌÖëI’tÍfóñÇ?xðàC»wߺ?Ò”"Hn“z;ãÏòLÇ0vMa¼ˆˆ‰Éí™yš¼ëØóvÞwëOŒÌÜ$ŸÖZ‘*\áí
Þrç-ÛýGž~­Vñ|ÿø€_(Œ¤…õ—¥$k8-¢WkAAüîçVæëŽPi¸V»š÷`(¥›·lÙ´yó 
åtßÞ½?ñÄ®]»öìÙóàÁƒ_ݹ“3fƱ
-ZPr\È
Bnàâ
JÊq„ß÷äþ/˜¹ï܋ÿ÷ƒ7}ðøɗƒç€õ”ÊÍûÉw~›ˆ×ÞyË6B¿#؟–=ì8ïyÏ{jãã0ÀP:ìPߟ­+^ 
åÆçacÍdpeÙð´y:T‹¾Zí £k    
[PN6oÙ²y˖sÎ9gÊZÍæÃ;w>þøã»wïö§§÷îÝûÆwÝÿ´mŒñÞ={nÓOsçKß¼ù³Ï?ë]ü×{Ø½ÙËÇ{XOÜ´Ÿ~có7oÙú©GŒ¥øŸ՞wõÕW?ëYÏZBhé
 7­4,ƒV£é›h°°/
CL騧¹–jvË`
-Bý‘wD
º÷ú«V¥ûÕ¨R­žyæ™gžyæBÝgff~øáÔëuø¯ 
øëÝÓï¶ýGpρ¿zíƒ÷|hìûǔò!ŸÖzËÁ¾3ùŠçœó+{ßó?.ÇF]«wR”Ê—\tÑyç7,VdÒ^‰"³šA 
aUy©Eê>zèˆÏ¹¤FÝæ:
u´†Ã4½¶õË´g÷æoŸI¬ÕjµZ­[<ãŒ3Þÿþ÷ÿÃXéÌvr­aþÚwn>ñU¯øóo>ñçϚ¶s{ÖÓY~î–iþbß'œwÙ=üÐÛjýûÀ÷ŽUO:é¤×¾öµ‡ù­–sÏ?%Ê×ȗս¡
Ë_U{ª…
ë,X‘ziˊj´¬¾¼Ž–¯!f¬~OŽ—Eš>êùÁ2³B'Ÿ|ò»ßýîÔ4ÏđT˜žýé7Ÿÿš=VR:õ9`­“D>´kë‰WÿÑÿá¯Ý7
 ’›Ç«µZío{7à{™Q1Ș²„ì ृguІFŒ·ê}¶®ûl•zO_аAØȘØçIôÏnì"¤‡>[Ãߐ 
“~rþùçŸ{î¹3c•ß‘ÉL®ùÉÃví~â˜WýÅCŽÌ1+¬µK&á/žÜðœwþùýßü֛ᄋ„ÐGDzÆIÇq~ó7³R­®unb§y
 
H¶2˜CóDnK:ä4èëÜ\ädVÖ·:‹4µ1¬!è¶*à[^£ï½r/©±gc|ÕUW=Tÿû,~¦§~çÇ+ì9é͟Ûeç<+¬5‰Òð¹½¥¯ú_ÿாøÕíÄø[™ýÓäuì·½ímq‰k'ý‡ÇÒÐÊQ˜Ëj-ú¨—5ô¢Ï=náoÀÅêSKHJ¯z՗衾¦·¡ñ#«¾ACß+÷2Ðîî8Îoÿöo‡ŽýW•Â»Fôå¯VjSl½üë{òœ59`­V4À7÷›Ÿw­d♟þ§Ö'yrÝx™Æ\ð¼ç>·¿_
     3øËA±ZCæ|ýs?;/û„=0·”"v‘
ˆ°´jÅ;”{ÎáÑ`ÃZŠÚC+ûŒ­[wìؑšÆŸ¨¥ÕµõÎcÿþùÒ3Oú7rÞOšùðÏkUhuÓ4¹cëkŽxæ1¿ú›W
-}ƒ`^-¾üñÇïرce³úJfûÕx©
ý4T-VgÆёº6Ù\ê~ý–×ÒûPË^øÂmÛ¶í«¼Ofc_»ûÀýß¾ñ„ç¾ðoÙÈrÈk¥hµŸÞxä[N{áKûã?}ÏLsV«šØ,øGyä;ßùNÃ0ÖâÌBCŒë_®Z£F?¢.ùs‚w£<F—Š.K0{±fu/n€ÃtÁåºÒiÆ´¬ßýÝß­T«÷×Æ>ÅÒ0yõ}÷?xÿÅç½ú/address@hidden
zãW_¾ãMw|èsρLë?–ÙôxõÈ#|ï{ß[­TÖzƒ^B´ÄzrHY6J ï 
F¿ä¦ýYÀ‚Qi©Ž¶‹¿ïž¸œ¯sÙ*èi¾ƒìh#»ÖÖ+´rÌ-—Ëïz×»:–ù7•Â­‚]䬛ncq’闞¤¹>¬‘äÀøæ3®~Í[Þùåëþîí>i"ôO"»arÜ4Ík®¹Æ²¬5vñÅG—Úk–Â^[ûºÐŸUÞ¥è°`t›‡¹XŒV`SIóèéëÎ"ây!¼cûöíW\qEb[6Ñ>%_—
  
¸þ«öÔ3o­¼èîÙܟÖr’Iø,Î˯ú{î¼óä/í(B‘â/}ÆÞð†-[¶Œ:Vž³xð?XóÉõó¿óQ1Ä^pï×æh°©~œÐèD¸·>_|ñÅGqÄîñ±?R
ÞÕ
-wßð­Í'=ÿSá³w‡9ä€5Ôtõ·—N~Õ»›ÆÃþÈ+€dZÿ1])Ÿzê©çŸ>2—ö°T3ZPÍúž2|B~j”šeNY[AG[ŸŠ
Zu¸¤õÈa+›*–]“¸ôñæCÛºÒ
è+–Ë÷Unl&oyø±Goº¹vÆŹgcœo«”Ö ¹qÚЗ¼÷ØcýêÇþúÚF|A°ÛÇ+årùꫯƏ%F 
Á‡^;Ê,Ò,address@hidden<Ô²³>Ð95†?áS‹´õ!)X—‹×ššzë5× øcŽ1«ÔYˆ¼ížÏü×Oà´W}òɲÈ
ð9`-•fߨ^ö¢‹_òƒ;î8ãßGx§â[–eíر£\.¯³‘¨™Bë6ˆPŸœ6‡àþñ3?
[Ø|ÈÐ>ÜÑÙsÍ¥-Ó«‘¡ÁJÓH„eĐúÿ6¥xä;.ð¾N<ñœsÎy¤èXe
ôiˆ÷–ýÀæK¿¹ßÊíï9`-î]ß5~ٛ~½Õj=þ'v9µ­I]­œrÊ)Ï]ˆV½¢Q1<ÉÁºääAÿ4xVvëeY'address@hidden
}´Ú_åù
-„Wýê¯K¥ïŒ•¿Å¸2³·~wۉ§~Å:ïÞFžÌ!¬ùîl]ø®ñññ/}⺷·#øˆHšœ 
„¼ùMoêŸD|i}*2¢¬Úð´rÒ1ÌÁ7äôeÀÏ£ÕbžÕ»ÒhHþÕµ¡¶žO¦¼RÅüK]k`ÀZ¤¹webrò¥/}ibš×Y¸£Õ$Æç=ôèîÇ;æì?Ó8ªÍrXÈfSø¢wы^rù]×_Î
7nÂä?xúoã…
ÑÕW_=6>>ÄJԟ¬Z¹[;¥ê56÷5$Í#Ú2:×(*í(ƒy’p]´ãáLvpâ®oçaíٗºöói\pÁGyäc•òç$€—h
·|èI—|mÚÉð€+øÄ̑W¼õw¦§§÷~â“/z·’æšÔuÏ>ûìç?ÿùË°ªî„¼’q´*3v_µe 
i8òCÏàQ:0„jxάe     address@hidden<«£H}{Q
-ÓÞ·0Ùûa¢ëº;vì}Ê·’¢€Ð•{î¼ó›Ÿqä­ô”½QŽ¿ô€õ¯»ÝWüžçûßüƒþF”qАig¢666vÕUW
ÙQj¡S¢¾0±Àq–5©¬"âq-$hÙ!4‡ðªÃA‡äŸìd\qÕÊë;ÒrŸe™×ª–:»}ûÙgŸÿI¦õ˜ǝ÷MOž|Þç÷—óœY¿Ô€õƒ´ëÔ·~æYßúÄuoûéÎ"BÿÊÒÛ§&B¿uíµ®ë.ßŗ;2€—õ/®(3̐Œ(£œ§HW]EžõÑôµQUÑõRÃ%tîg{t¢ÑÌw¸PøüòË]×½}¼òEÉ0ÀëRÞ¼ñÆb¹²sâ¶óð÷_VÀšIáKö
…¿òuwÿûϼþ?ŽÁtŸ’êY
-ào|ã3žñŒåÇâ ÄE¼iÙ}Ö¢’,%J«ÈÖð3JF<ÒéCZi”©×©ºg‡Z=`u¬hÂè–-[.ºè"mYs͇¥¨ 
|åc»¾ëîgœü¼O՟ò~ùKiøĞɋ®ùI’<öᏼ\ý^•©±êi§vÞyçõ·¤Œ˜t¨pX8ûRwÏ÷¥Ê®H®/Y/CRßo–M
 1$Žá©©êq\ Á«V¼[ÏÈï!tÑEmݺµ3Vý¿ZDZ?Ó£¿wgèċ¿°Ï×¹bøËX· 
•K~³61ùû‰w6Ðu<ýÁԄmÛo{ë[çLW£Xe…¬(¤h€n2,&`¥X6Ø6µÔ¤Õ;ºø¬¾®€¡™Âôêžsí
q¸¡j)Ãê     
’XýÎÞ#X-=×}ík_K(ýQ­úÉÀk¢lß-ßÝ´õˆÛüç?+†¿T€ÕÌàëö¹gŸÿ¢û~øÓn¸qá;ûx¹ 
´~ík_[îͳœCŒîZÍÌ«ZýT¯:^š¾}„5
-‘éGІš¬¸m‡/Q\òƒ!­0d×Å!g{챗\|qÓ4þŸMw)¹       “òà¾GÛvÆyŸÝåk
IKiøÌôøùo¸6Š¢‡þè×IاäR åÒ        'œð‚¼`5êCßî>@s]%¦7âpCWí­6™2Z8[S
-ªžÅÃì\xœ^6AÕ³¥1zøØ*6v›>4”ß^ré¥'œp®JùŠK€KÈoÒZGÇ]òíýV¿€õÅ=¶uñïLmØøÕ?þðÛfš‚?icÃTµZ}÷»ßMY¥e¤oˆVßøƒÑ÷œgz)ÑXÈÀ7ädìe[vÏ
…•¬JU!]]ÄÖèõì߃–
‘”uot=}D'à¢í‡êƒ‹¦Çq®¸â
-Ó²n(û÷Hî"ôÆý³ÜqÇÏ<æ+âÙÓq¿è€u×
~ðYW~Îßøëï¸ó‡þgwNMDZ]{íµÅbqejÎr‘h=ì/}u¢åþ®hg„%ÑK÷F]
¥s‡ôª8tûQ䩜ˮŽZõ.Ük1”Áàõ¡K÷Á>¼ÑŽ>úèóÏ??²¬ë°´>‘ÐÓpÏ̾}›Î¸ð3{«yXÖ/2`=ÀWJ/yñ«Þô½ï}ïô¯|ý$DZ}Ô¦ÀŽ;¶nÝ:address@hidden
-áÁºµÒý´Î¼ïð³F#´ŽÖW¢ó®ýՌŽht…
½§vzž^vÙe߯ü£Ì4À¡›_¿¡X,=8yþ=õ|Qô/(`e>Ý9öÅo~Bèà'?}®Bà/D:address@hidden
ß:ÀÇ"sۊPcè°Ó‚KõT&‘Z‘—p¸Þ7ˆöt¤R©tùå—#J?Sp(ð[ö|ø{ß?îÔ3?Y?*Èò~!ëkûÌ®üí±ññoýûç_ñä^à‡‚}¥ZJ²ìíïx‡mÛKÕHv5†V¯vÇc4(²±÷R£[–Õמµyæ¸œF©ŸºpüQÈڐ«—¾»ÖW÷8묳Ž;\ú
 Õ
­NÁôÄïßÕn4Š§½äßöòí*~Ñk?ÚzŶO;pà€ñ¥/Ÿ€H¦õŸŠÅO<ñ”SNDȗU
-ô‚i|­G©atf‘ªµ0€—êSK9ßûõàŒ%«V8ם£¨C8U
JŠð3‘µ,EìחÇyýë_ï‹ûjcŸà©ØÁÔþ›n™Ú¸é»þ9yXÖ/`}±±á엽Þ4Íï|ê~u¶E>&³ŸÖÆÓ,{Ýë^G)]:ZÐ:
r„±‘aõp:=Âèy¨öؽ˜8p˜õµLõÈÊÆç*°cEۚ­â.ËBÛpä²Êe 
oÙ²åÊ+¯L(ýjÑÛ­ä8Æ;~쁻î:þ9/¸îà‘I–õX·ìƒô¬7oÞ²õÞ»ï~Ö·oފ𽂦èjŒ.½ä’EkѪ³}N݋VîDkö¾Î¥!òÃSD­(g^¯Ùhåh8×X֗·Äx·€š«ßW¢MVlÑýý
-cÜWŸðð£guÖI'Ô*®Ó‚ƒ>ÓgßzG»Ý6OyÉçwçi”!+äp³Þ¹—\‘eÙöÑK™Œ´~Õhl¬T*]ñŠW,address@hidden/F}µR¸G
-ð®¿ó7oý9u:ϖõXߘ¶¶½øõŽãÜòùÏ¿|ïþBŸà铓µ$I®¹æ×ušB†g¹[ªS
¿ÎZXÌè{!¡àèükEzÖ"Ÿé(crHº«µXyFi¢!)ÉF„ì5Fê„–Úã‡5ŽÖ°}ûö³Ï>yÞ_ 
k=èù?º¿~ðàQg_ô¡'¶äŠáÓ°fSøÑą
'žrÚ®]»è¿|þL¤ÄgʞÆøÂ/|ö³Ÿ½Ô¨‡kLC²²-¹ÎÂßúŒ–•0¬¹Ù0wèK3ou9¢÷p)>®-nve¨1Ü 
address@hidden/address@hidden;” ?ªU×u_ùÊWÎ)ƒ}7ÚZvò_ãæ«È¼òìýQi(è¾`7Ô?œ
-ˆï‹›ÝK-±|¤svº¿ú½V}mÄùc“í»Œqsþ–-[Î8ãaddress@hidden 
>ãGõÌïûÛç~ÿîI„?ÃÒ'ÆÒ4}ë[ßZê®Âé7b‡uèux‡ÍöÃ-?Eù™ÀV‘G¥7þ¶_ö.=Êꢕ,Üéph8Yp÷ÃBü×þ–‡äκñҐlY/ùËà‘ñê×€×*¼ûƛ¤”αç|address@hidden/¶6ŒóÎ;ïä“OÖKªïøTãÂ[:ɏâÁ\£5¼YVZÁA{L¬º}êEB룁2ÏÁ2)ÀNK˾­§¦¦.¹ä0Í1q
 
µ‡Ðe<¾ç‰'Ž=î¸o=ƒç;address@hidden,Ä[FŸ‚>Î5=\ËXo¸™aV½šr¸Kqˆ÷Õ°æíGzÄ¥H«N³ˆ.61\%_èƒÿ’‹/.•JW?-R
ð2lDß¹YJi{î-ÓyéÏ°ny„üùô#?ÄßÜ
£¯™:˜À}.>ù´3¾ÿ¥ëß²ó‰B_âéjcq_y啕Þü|«›çW:ÒFWyz¬ë¿Þïîƒ 
address@hidden:ô\i¶†A‰%ì½¼lþu½¬Ãwu¯~ž8âbý®àùþ«_ýjBé§={¯’B/ß?ó؃n;þĪoÍIÖÏ°ÎMýßØ?õŽ'68ß«}ìߋ¸Áúؽø§ÍeNþÙÊ/}}§ÓI¾~јì”âCžEþQGuÎ9çŒ:„FÜó)Rûîí¾*¥×Ãòµ(\Sî]4(°³?.M‡¿w†>9ʘúïüÜÀV£»6[ÞÊTûzÈsžóœ7fÕÊ_ÊL¼QyãMBç¤߸/'Y?ÀBÀEèÔú=«ø¾¨ö†G§¾ó­âu÷#6`¹gö=û
ێÙ~×õ_~徃±Ö¿‹$LMrÎßøÆ7.,ri¶¼¾^kMú2—áQZ}³nõnA¼jånÝQxuÆ 
¾qáC6²†e<¶¨_lÚa¨úTWvĄ+‚B„!BÈ+^ñ
-¥ÔW+şHÞÜ¼ïGÛ·oÿ·ð˜<UÖÏކ…
Š¿“O~`üŸìÓb_eÇ]øò»žxÂý●!ôODòÈÆIJéùçŸÌ1ÇÀÎr=Ä©>V¬-.]€2DsÁÁ¨”p-»Ï¯»Ê¹R-ixÛÁñá1¨«2áûÍ(ÊïÐ+\Z´¢‡ÔN;í´-[¶Xåò‚È´>“š¥ïޞe™±ýœ›ö¡G~ƀµ[§«ý·gÉZ„/NûG½òw“$¹ëøêVpÏn¯ÚŽC)}ÙË^¶ü6ÎÃà(а6›Å°ø¦Í«Ï÷íQ‹<
kw„­„-b—}ÛvÄ Û¡øˆ­åʋÌö‡Ôõê<¡«n´%÷ºêª«”RÿU«~M0xgüçí·{ì±ÿ\ߜ§ù¹, ¯…
ÏÝwX–…
Ý!ì:æU§ž~úMÿÉ«zÌGøsÉbAqÕUWU«ÕLjc]bFߟnhxçºk1‡™Ÿ¥Ä¾ÄdOëer<Œ¦Ó-“õxˆÛ´wá˪1¥g9ºî65bòøµ¾©¥p9ÿá裏޾}»ãû¶I]«£}Á÷îj6Þé/»~™CÉÏ`À&•Yg_ÉúQàuæ¯<öØc›n¹}3&wvw¹$ÉË.»ìä“O^ìÞZ¹N´¼k|E™${gþõ
Ry—ňÑÝg‹p+}þ^sþh‰uÆ2= âÅgxìÛ`ÍQ¯ã‹ðû+®¸‚1–LNü=OÀ€Þ{ÛíÿŸ½7³eV2æ 
IDATë¨îEתÚәºOênÍóìI–-c#›`Œ§`c›Á\àq    $—address@hidden `À
&¶Á’,K$K²ÔR«Õêy8óÞ»ªÖû£ÎÙ½ÏéӓÔ2-÷þý!³»ÎjWýjMµÖš5k¾VØ1\šóÉ<9Ng`܅
¬‡‡àéspdÆ\(
-(IˆD¶D¨ÙÑ\2Ç2¬+¡ 
ëÃÁæ›ïÞ¼ù{öçωñEÉdƒmßôö·OäGSՊ¹¤î­4§!8C`ÑÂbæóÏiIDacÿTœûó^ºç›ûÍÌ00‚=Ìó4Ð<ÝtþÐéV‹JûM›6íÞ½ûСC_oHܝ÷·sãþƒ/»þºkn»ÿo?ñmËÎpM_A_
âkCÈÆ,3c¶H#CÊ\Ïx„#†x²àÈ<S²Õ½eº¢lV䇜/a5å·øã¡Äêûî?×ÛÛñì/address@hidden|ßðÁ›››qæ1‡HuÝÛ3ÉW€Õ'
Û2°Þ¶ÕY_°ÿq^¢Y˜j/À
š9X7ßÖ+_M½ÕK)2÷Jb3n-À™ROU¢ëq"Í«ˆäœ9îþûïñōö¶¿;qê/Yâ¦óџ?û¶îߗ¼:ç?“4ëúãðƒ—¬Ö‘Ø6ißÎ
Œ)“OØ ¡ØOÿ~Öýšãõ¥JïÜ*vwP,Ú4G•,’Œºp°ñÆ«®¹öÀ7¿ug¾¨þ46´¶¶ÞpÃ
sµ8÷ª™7ý¨nšù7žUH©Ò¡¦ÙÏ%ξn憟f]13 
¹çÛº˜MÎNs3$ÃY5|.kbu°M—°;¼6uttÜvÛmJ©'»–}_¸1Äkß°ë¦|£~n¿“ãøo?I|b¤õؼÆ0í9Üa

ñNËùuÕðßÆÛJ?oþ³çù™\DVs&,address@hidden<ݘô}ÿŽ;îH¥Ró[óZåæeºèÑ\gpÏ!/͙5¦žª6F´nì(QÝxѹøìgƒšk¶†
…R™k˜bŽçÊ;몸ƒêY9qÆôú¿»îº«¥¥%‘Jý³‰Я?òåmhh|µñú㵿ÈãOÅ’ԇ1ÄÛ
çwÆZ~:öÒ0D¦­9VrWÂ`^i½eÓ¶¾ñÍ;rEð
ÐÐÐÞÞþ¶·½­ÎˆœW|ÐÅL€9
-e³n«'°`ÝÎ+V\°¤3kœ™Éh.™Bg½ùH²3,Í+"t†¸°¹ùð`*•zðÁs¹Üétúid¿3–=vìØú=·ýõéæðí(‚;Â?ì74âE¢š=ãwŠMßÿYüÄøRç¬9õã(IƒÁcCWßý‘3'Ovüø§+™äBˆÛn»mR¼šÙj3ëîùùFŠ^pA„Ë׬ß̱yÝðÅïvžù®Â5H2š!§;ÍLó¼Ê¬îKª«5ÃBðBfš—*ZïOW]uÕÖ­[Y2ñ%òÀÛ
+ûâK¶ãL¬{çѐ5áwÎic`6wO¦¿ÿóø¹|DX³á,ŠC#ø”yíæ-[=öø»K¾Gô7$(nmm½ñÆ/\†ª6À¬â̅
NΪu(
-EEםEÀ˜%]ÎÝÊôä
L=·SáôšZ­zä#žB—t)ìýӇM-Œ¼6½‹æ½ï}o±XüiCbH)xGwÏØØØÆm;žè›´¥ÅmEg¡žÕA¼ÝOü´)"¬éàõHñLÑû›îôÆëné=uªñ±­aü9éH7À;ßùÎ:Ö«¹O¹–Ê™Çe)„DߋI¼4Qk¢š.Òz1`Zºœj‰š¯.6Ÿ
        Iiš¡”ô¢v_ê 
Ï9rnÝǚz’Yeÿ)ëè¶mÛÚÚÚb--_ð‹p/38`ÙÎËÎvQÙ~{twæN×mÊúÎËFa     × 6f _sÏ      
±ýš›Þõ®wýðÿýÿþc¾”Aü+ ±!¿-p.ˆ7O-«E 
"ò<¯Ô¼]ärRJð<¤Ràû¾’2˜f£ccž7q®œTÒàFïk¯I¥Ý¥ÖMå2ÍTkk!6¥­XŒ#ê]¯Ü4R--û9獣¯—Z7ƒé
-‰B„'Šâ¼$¯ `ƘeYåÙ®q;6Y̑mÛä¥T>ŸWRZ¶
œ1Ó²æ§Ü]|Ë°S§ë        
‡bL÷N§‚ûeÄÄá£ä¦pÖ­·ÞúÈ#|#é|ÊSË[ýÒËôŽw4l»éG^yp½€³\Á8áN™811~UkDXõ`#~ÄI<Jüž{î8ս­`ü_
…
{¢£|ÿÝï~wsKËBYI\×%"ß÷¥”ú+y¾¯”%7?6¦e”üȨ>ø®›C½B–JcãˆSÊÈdì’k•\ˆgs1Æ<á@<WàBc´£©
 address@hidden… 
ˆŽê–`”ªVd”*™€>‚ñêdéEËê‰;`†/+¹¬X¬zؘ/y¶m\˜“¯€˧’È’_’¥T“ëÄô‹p‰±J:œ
 
€¤h’ë֖HJåûØÉd,•€&Ë¥ÖµˆÐÐÞn†$""+™Œk¡¸B1šµóÌ´,ÆcÌ4MƘƒS†3;—M—Æo.ÆÁù†•ÁŒ›¦ÏqŠ!—M½â-·ÜòðÛmm_<Ýû_¬ø}®ø§#G6oÝú?Ÿ\~ÿš³Ö¥‰œºž[oLàU­V}U¢}ïMË;;Oÿ?ú5Wô‘ú‚c؉D:~ûÛß.„B(¥<Ïó<O)¥”*ŒOäÇÇ
       ¨8>áWÏU¿T*ŽW×b13>DÉ\IÅ
-%Ë÷P©T6ñBÑÂFlC¦5Ø42,ÀÆÊÐlb|ö'áð’/•¥4nά3tAõЛË@,ׁå8ÉZ%Ä6ÊÕ£ò£U_‡‹³_ëÌùš¢<)'ò`T)address@hidden&g

2–qlipÏ4Kñ˜bÌŒ2L»sé8ŽmóDÂpìÀËÏM3ÙÒȂZ3±Æ+sGÌdÉѹö:õ˜a¦e9Ž/\]&jt^ù.ظ–L$®¿þúÇ%n}ʧ¸ùOÏÿ‚oßÞ¾e×÷{ÎÞ·ö’ÌØvÆ^(’Å,ÓÜ%zÈ6n~Ç;þý3ÿ÷<Û×ø7n>Of¢§·©Pzô³ãz\ÊD¡+–JùÂo)”V(R
ˆ5ar6`Cõ‘²Ä·†e"ÌqÄ8rh›#Éz
- "#æêlŠËîv‰`‚È      (ZºO÷Q        
ªÒ¥$æéK€œ3ײ†Ö¬ÊÅãžïśšm­‰––Ô²öxS“SçÜqœÙs~Ôsž`]õ­ZiŲê¥'¼ÿþûŸþy³µõKgÏÿ¦»opäñS§v\yõ¾üÄÝ«ÉK
 
Þ.c<7bHò9F„5¤jÃÿ¯ÿöÊþÁÈ<¢Ñ<ÑhŽä`äÈô,ñÆ[)d)¸ˉ§ÀsC"¤cG4¹LSj‚Ô(©qÄÑD<›ˆ'âÊ2sñ¸0x

0æ8²¥%ÞҌŒÅ››-Çvš›íXÌ®°›eYVÅr‡ÓÅsÔ­üzqöSÎŽŽ«¯¾úرcÿl’êÝÜ|øgÏ®ýØGím·üàÌcÀ2a!©E¼žEV-JDŸG¹apä/&
-)'address@hidden)€1¥r¦1sò‰x6ÏÇ׶ãËÚÓ]]’(ÕىO´µ!b,³,Ë0
ÇqLÃpb±™<ÑæÖD|address@hidden,ûBwï±ã7góGϟßqå5ò…ŸÞ˜ô^b‹a, g
(i§$_ªIg"¬÷Ýs(ΕRˆð#Ï]Éͅ
uÓFˆ0DÚë,§Jɀ§£¥|€QR’hœH1Ì$âYÇÎF6™Èµµ”Š¥T[«‘J9-͉eË[Z|ƀ!Ɖx,‹Çãñ8c¬Žïr¹ŒˆÖ¬^½{÷î×_ýËIç×<u®ôk¯¼ºçÖw:«¯üّýÃnöwœä
悙5ú”|[±ˆ°jP$zA¸k9Šà¸'Iþ–fQ„ÅЌ¬™Oü] 
n`$£]y:‘%•!#åiçƒàl<ˆÇ;–eI9Í͉ŽeñööX[[<ݘˆÇ㉄f³zÀí·ß¾oß¾x[ë?œîý¯V|ç+Gä;n¹z×®½ôÒ{,gÙ
-žôݏ,_º¡£eÂzܒ(u¢ÑÉX#2       address@hidden  Eã¤&
>–ˆŸÇ†“‰¬m9­­±ö6§¹Ùikµãñ¸Ö:W¬Xá8Žaš¥â¿Zð7ûò[OüxÛM7:˗¯É.ì#æîoÛK÷
–       kÙúRßÞácìûçŒ#)Ca‘Ô-V< 
¯ºÅ»¬XdºŠð–‡.¿Ò€lrHÁƒ‚ÐyýÔQŽÔQ`<f;vÆ4eÌyûÐèIR=¤¾âo7íß?ôÚߎ­Ú¼ù«Oýü&sÁæôÞ±Íw–°G«LXí1X×
    Щ܍ÞwNžÞŸü]+‰
-àqÏ]ÍÍ+(¶ ÂRG²„É ŸÀ/”²FŽèç¾;̍½¦
ËÏüýÐÈ¿rPrÙBÄ»gH=Þ4ñ[Û[ÂzN­ÐÄFÙû¸ŽŸzIøýDwÚ±h°Fˆ03’ˆ·YÎ9¢óJÀrd¿S]À¾ê^T 
§tBŠŸÊÒ?4Œ~à:/µ´^UFwEððë¸ýtz
çpRŠŸ
-ïS±”
Ææ¶þÄIüK1÷ßbIhCöif~¶”{¿›×¦B8¯d’¯™¥¤»²C^Ñ©>ÙH
K^Ï1Â}ô£3h¾Òø+Ü€óJþ›_úO±T#C{„sE'ãóßՊá݆ýM,îÞ
-+6+I
)yRÊnÛíM¸Ír{‡|G­H€…aO%¬ƒpbâ7yÆH}Û+}ÈN¤12´Gˆ0 ÀÝVì/
-™k+‰è þïNòÿYݕ¹õådڕ
D¾/r¹\±Xt††Ú^Ù?ØXjmR+šåžfêJ€‘Ô
„u.ß}Öùï2À7¼â»íøé‚"Ì1ÄûøÝüï:IØaë{zŸݼy³”ò\Ïé³Ç^n¥‰N[í¸Ë˜·*-V¼Ë_ƒX4áæHX'NZÿÙO;
 _É,Á†ˆ­"D¸PláæanþÄwo5mðÿ`æŸ>ú˜xá©RºtkÓèÕ]^«I3
-kœ7Êß-èè0+ðˆWzŸE´GˆpQŠá½VlŸôû”€&d—äóžÿs{ÿ}+½µ)HElu1„଒
-qu$^Eˆpqp?î$ÿÅ-
- ØÌÌMçS/
G³p„%¾ê>‰W",:¿Î´¿ã•ôL»‹bO¶³~Ô1DXÏøîvÃjc‘"B„…Qo¶ì!¢) 
Ù»ÆSß8yÞ‚°ÆHýLø¿‰W",LÀډó‹y"¸ŠYþñÄË#QÇ\aÀWÝâpâ‘p!¢™±Lç 
¿à}2ñè~{̍:æ"뤀<JÎ!ÂÂc—aURçÅoBöL㿼Ä}u̅–ð©X*êŽ.bˆ{
ûi¡ëÁ:flïiüÁÉ(°áB k›a&£=ƒ"\2ì6­£R踅
9ݯƻ³QÇ\aEˆᒢÙfÃ|Ö/YÀ~ò«¼ˆú&"¬®7íçä¤åjã·6þ¸;šƒaEˆ°øЌl'·^“‘£× 
õúqk<òF„!Â"Äu¦õc1ÉO&àMÙÄÓ½‘ù8"¬–1¾œ¯ÉI!ëZn=aE–¬ˆ°"DXŒ¸ÓŽ=æO
-Y6âî‰Äsç"!+"¬šÅU28ò6f¿pĊ6EG„!ÂbÄu¦u0dzwo™H>y&²"Šaña#3©*«ÕÃê=m0Œ+B„Ňfƚ‡µBðŠ‘Ä琢މ+B„ņ]¦µ¯²µPãzÃê>˜|q0ꛈ°"DXdØÊ͓J†ÕBñ?Pâéc†ˆ²8D„!¢Bq
3ŽUQ4 k鏟ÊDÝV„‹Û
ëYËp3Å^8Ã#KVDX",.läF‘ CUàƇO9çòQ÷D„!Âb‚ØÂØ鐯Pã6/ñäI    
YaEˆ°¸°‚½Sk;72§bçrQ÷D„!ÂbB;ãçT§àmnâ‰ã\FRVDX",t0æùPËL›¸‘<•<ÅdE„!Â⁠   
ØŒã²Nr™;)þÔQ3J;V„‹WæËõ+xUꩳю舰"DX4ØÀóJ•¨Ž½êWçµ£öh´#:"¬ 
,À•Üèžâ+àÖ\òÑ7PEÖ÷ˆ°"DX<Zák²~ú¾«™5þzât´Y'"¬       
–!PÓîx~P&9lú2꧈°"DXhb¬P úŠ_c«z“OžÈ°"DX°]˜–îµœ£û¯EýV„‹ 
Ä<MKX&àÇ 
ùÝ,J•U&¬Q”5,B„_eh&•/¬ù\ü̒ß`X&¬¯0õ*ý‰,}Ç/Þ°Šè+B„7-Œ•hÕ½"ñí#K}ƒ¡Q–H×®õw]ý•înÏu5Kµ¢T¼AÁÕÀ6r£ñhHEˆp退4‹#°ñ–¾xo.»:µä
     ëCúÐ>ðžžž“'Oþä'?ééé9øÆ?Ëç㈭ž¿Ö-햰
address@hidden B„…Dcûåì•Tï‰~µð_÷H¶T§ 
|jllܹsçΝ;ï½÷Þb±xæ̙ÞÞÞÇüôéÓÇz{Ÿ:ÞAl’*åûW
-u uŒ­bFã‘ô!ÂEÏÃ:¾”êV"address@hidden<a…
‹Å¶lÙ²e˖[o½Õ󼁁îîîC‡íß¿ÿìÙ³öõ}Gˆ$bÜõ:</-äjÀm’¶1c›aF~Çæ¯#5ªT·’¯‘üÃÓ3˜‹lw.ÿy;±‚qøÿý+
…ß»Q,M!˘µ…eY+W®\¹råÞ½{…
£££}}}ûöí;xðà‰'Žž;GD,ë[R6Š³ù’¶näÆÆ-Œ”ÇêÀ%:§dŸ’çHzÕŒþ
-ý‡’cV¼}õê;n¾9‹mܸ±·çì?=üo¿u²§Y²ø¹Ø©LvÒ²Œùµ6Œöööööö«®ºJ)566Ö××÷ÒK/:tèèÑ£§OŸ0_˜&“Ò.–b%w³WKڎl#7–3#b¯K0ªÔ
   
%N+qá8ÒbÎ4F¹QR67·uuuµ´´\qÅ»víZ¹rå²eËÒé4V–üÃ7ï}âî÷~P|Œ%ÿüïïr¥§ÎüKÆXKKKKKËΝ;?ò‘LLLô÷÷<xðàÁƒGíîîÎ:ö¸eýˆ¹^"_hõJw»¢“ñÜ\ǍhGxk3Ô°’g•<ªäQT‡Î¼³|3æ+%¥lhhX·nݞõ믾úê+®¸¢©©©¡¡!™LòilÂ;¯¼òÇïú•üc?I
 &Wæœþ¢»"օiàˆét:NoÙ²åÁÌf³ÃÃï¼òÊ/¼ðÊ+¯œ={vˆ(ӔþAÞ÷ZòÇ+íêm„»
ky3á2Ç©SRô*yŽÔi„ÓÎ1,Ü3­,³”RÐÕÕµaÙ²µk×nß¾}çΝ]]]ÍÍͱX
çf6aŒµï½éÜcOlÛÐ<6a-
y544èäž{îÉçóãããGÝ¿ÿáÇO:Õ+„ݐ:oß÷<3—_[*ìt7wrӎl^7\¢>%Ï)yNÉ ã
Þ`Pà<›°¥w•’R*¥š››»ººººº6oÞ¼}ûöõë×755%“ÉX,vÁ—ÞyõÕG
c“$ØÀøs°ä¢H/¹j–H$‰ÄòåËo½õV×u3™ÌéÓ§÷ïß¿oß¾“'OöɾÃ1çˆi~¡Xl+”¶¹SÒfláF{$yEXèWògÂû9¨nÈEÎ|‹Ӓ¦)ˆ”’BÈööö՝Û¶mÛ´iÓÚµk›››‰D<glÁìL›6mz®9­†Æ@;ãÝç9mKm
…SmI¶m·µµµµµíÞ½û“Ÿüd.—>tèо}ûŽ9rìر“®ûcÓ´¤ä%wµï])ÔuÀv֊ˆ¼"\zH€~%OKÑ­Ä     
 ãÇ8º¦!R       
²,B!,ËZ±bŊ+V­ZµgϞM›6¥ÓéX,‹Åžê®ýüŽwçÿå¡"¤‡¢ÜRÓI~iÆoÃ0´ÙkÆ
<address@hidden<qìرƒÊfXÖ7‰x±´Þs¯ê&address@hidden&ü³Jåì ‡œaˆ˜IV8WJ      
á{žßÞظjÕª+VìرC»ðâñx,3Œ7{úì¸ûÎ}_y蝰RšGÇ`{sDX¿
Äãñx<ÞÑѱgÏß÷³Ùlÿ£>zìØ뇿|xhèuÛúšP,®rý»Å h†–ÐΘÈÚ‹kŽØ-Bµ
Õ-ÅkÂï&ù4ƒŽÍ†y27M“]ß÷}ß±¬U«V­ZµjëÖ­Û¶mÛ²eKKK‹ã8¶mã/[ž¹á¦›>¿móͯ7næö×O³íÍ*"¬_2LÓlnnnnnÞ¶m›”2›Í¾úê«?øÁž}öÙáá¡‚?•RZ–
…JQh; address@hidden Mк´؀ÔEŒ!´"³›ÅSÈ
address@hidden,’1nš®Bˆ³¾¿¼¥eóæÍ+W®¼òÊ+·mÛ¶råJÛ¶mÛæ‹o×çܼîZÿÕcb+cãÖ"{Cétú¦›nºñÆGFF>address@hidden'I
 kª,Â&¢O´Œñð-ڀ­Õ$؄,ùF¯Iÿˆð)y’Á1¤ó‡˜EVJ*åºn{[ۆ
–/_ÞÖÖvÛm·­Y³&;Žóæëwձ̊•8€ˆk1[[[?ûÙÏ^sÍ5ôGdF&“™¯”Ϋi¬¢„ˆÌ0'·¡†InŒèçӑ]
…°€kR‰i*¨ê:sŠ0Ԁ,` ø@
á= 0üÚ€6dá«´2æ„2j˜ˆÕªq°FV¥±1ó²MÂ1Nê ðŽIñ¨—8fm14ß÷…
ÉdrÓ¦M[·nݽ{÷UW]ÕÙÙiY–axy®k7l8‹XÅ%gñ¸Ì"ÎOž<™Ëåî»ï¾Ïþó±XlïÞ½>øàÜ]3ƒƒƒBL®H¾ïW
ýññb±p”r||\…8(ŸÏ
4aI9™ÉÈuÝl6kFp!Dæ"c5º"2Æ|ßß±cG©T:vì˜n¯O²aˆpgÖV¨r?n©DD–e±š\K$¨†X…
-Ós ¥úœ-á"address@hidden|¢ Š¶hZD€à2£…
P3HUS3l‡*jŽ#¶àä»îzd7b¿Á0ns3&”ò}ß4͍7êÝû7ß|óÚµkMÓ¼|ªëׯÿŸ&^eXôbÉ(F„µx±iÓ¦W^yeÕªU/¼ðÂÑ£G=ÚÔÔÔÒÒ2ǟ¯[·nÞxõÄ&¢írêך####žç
…œ?> 2¥T.—+
->úè]wÝ%„èîîÞ¹s'cL111Á9'¥tãb©”Ífñ'≄Öbôåôuóù|©Tҟ=Ïs]·±±ñ™gžq§–%«!zÎy0¥
…
jZì›F´œÚcu[N'5ϱåd¥ôÿù|>™JY¶íyc¬³«ëꫯޱcÇ5×\³cǎËZ†š©TêÛ~œ°ˆhÂ5$Lj°±bxÏ=÷üå_þåý÷ßÿ¹Ï}nttôù矿ûî»/Ý/>²¦«««Vª_»¶æˆëºÏ=÷œ”òðáÃ+W®dh9Kÿ‡z’‡d®0Kª
-H)©Ô+/¿Ü?0ÐÚÒrüøñ¯|å+CCCaI°X,NLL„O266V*•&E.!FFFÂÊårZº
¤ZìííÍd2M•ÃlX£ŒOÇ_õ_?cúN’

–e¦R©?þã?¾ù曉ÄÔK¼%ÑÑÑaÛvyÁàfo–TÒËo²išýèGzè¡ë¯¿þÙgŸ}øá‡o¸á†¹Y‹:(±¥¥¥X,address@hidden(¥
-Ÿ!‚šZÉ IDAT̆Zðtm­—J¥L&#¥ÔçB¬]»ö‹_üâ†
––Nd×Ý/{®ð˜ï»a-ztvvvvvÞxãû÷ïùÁ~ð‘|ä²^]¥”ÅbQ±|ùò°éKÓVeZ‡•AUᡆ‡‡—wuêîîïï_@
   w.Ǘ-[6,y‘èïïÿô§?=22ÒÙÙù©O}êàÁƒëׯÇ%æfåŒqP ÙpiI=úe[—ðÎ;ïô<ïÞ{ïEÄGy¤§§ç²~
Ùl¶··—3–nlª%,Î9cŒóɯ0Æx¨IgΜY¿aƒRʲ¬·Æ`%¢ï~÷»ÃÃÃ+V¬øýßÿýS§N½÷½ïÅ¥"+vÕÆûa]hllܺuëöíÛ;::|ßøá‡ÃšËrÙä|tl̉Åt¬FÎ
-óT…
ªôç©låºnooïêÕ«‡††ÒéôÈÈÈ[`°>÷ÜsO<ñDGGÇwÜqäȑOúÓ¦iÂÒ¯„òµ"ˆërÁm·Ý688xûí·#âÓO?ý‹_üâò}–T*µbŊÌÄD2™´m[Û«´28ILµ¬Å¹aÔÈY
-yúôé­[·Ú¶],çåH]´|ôÑG‰hŊŽã|ò“Ÿ´m–$¨’@,É¥õì—qæO˲Þóž÷<üðÃ---ýýý_úҗ²Ùl*5idŒµ¶¶†Ý|‰D"™LB(Ôsj(i[°¦æ‘K!^uvv
-)ã±X:†À~2]æ¬Àî˜ÛµÑŠ…
T§S§Nµ··3ÆÆÆÆn½õÖ·€2øõ¯ýøñãŽãÜsÏ=íí흝°T‘õ}‚ŠµÀdDX—vìØñÂ/|øÃþÜç>wüøñýû÷/_¾<<ʳÙlØ]*•´¯*‘HäóyDÔâI˜j¶h†QÃP5>ñx<̒ÐÖÖ¦¥!m·,«©©)ˆ%¢ÆÆFÇq¼É9/
-étZksýý+V®,óU…¨Âø0a)¥°zn3ÄL&£ÉºP(ìÝ»÷r¦GŽ9pà€eYŸøÄ'ÆÇÇ?þñãÞÏTò}`
t|®Ç"ºœpÍ5×>|x×®]/¾øâóÏ?¿wïހ_8çRJ¡£Äb1Îy<×Ää8ŽfÝ *b`Δëºa‡=twwcL
-!òù|ø–
-…‚ïûaތÅbgϞ¸ï¾ûcÅR)¸Ÿ²z¶R¡ 
R!ñ*ˆlđ‘‘={öèh€3gÎLLL$“Éx<~ºt:¶ý0ƒt9µ»ôù0ˆè±Ç›˜˜¸ãŽ;’Éä
7ܐH$–,[
Ž(©*½ŽbiíÎ)Ö÷¾÷½W_}U[:Ѷí+V¬[·®³³S)¥¥ŒX,address@hidden
-LP*•8çù|>¼q‡1æyžïû


RÊx<®ÉŽs^Ž*òKN*m†>³\§I*•JúOˆ¸ê4QÚ¶]C™LæðáÃ:address@hidden
ÚaŽÂBdˆ===÷Þ{ï™Ó§-Ë*
-…B¡T*¹®f\.Žã×ï]3i]Â"¢šàÌ©
-u[[[ð˜BˆX,V#~jé2¸®aÍÍÍúTú`ð€Zö4ãøñã/¼ðBGGÇûÞ÷¾îîî«®º
-–0~ò“Ÿ4Ò¤úo”–$a%2þñ‹g€FÞ0x†HÅR
9·Tôýæövö׭[×Þޮ礶tttX–¥¿"b[[["‘ "=MÓÔs,üuáÀ0¶nݚN§;;;ÇI$

áD2ÐÞÞ^ïwï¸znçWJéxîññqMvzvss³5Ú}ž ²}‡1V,uÀ·FSS“&¯t:=>>^#—…[*¥Þxã
Û¶s¹¸ž[AEh
-È(²”Ršª« •:}útGGÇ#<ÒÐÐ000ô•®z 
#3uš'­árÎõö­Ì†¥KÍs¦2™LX÷</¦kJ©À¥«w&iá7ؤ‰ˆ¦ijêB¼þúë…
Báºë®ëîîþà?ȖvŽ³þþþs“:ˆ¿Ä’$— ëW˜ù«†SV9¢‘‰âR#cgûóp²ÇWj˜3ET 
€DY€P}Rfˆú…
ï¤RR)]O­¡­Õ²,˲mÛ¶’‰D"‰¶•njJ&“­­­:üš1ÖÕÕeš¦6÷Ԙ¢MÓdŒ†¡?Ô}†Ûo¿ý™gžB„µ¿…
cL‹uˆ¯­mîµ,g
4ïíí=zôh¡PH$Åb¦è§å¯c<address@hidden
1Ó7n4ãôéÓ˗/ÿЇ>ÐG&“        Kó‹ïûúëèè¨Voµ 
V(4õX–åyžçyŽãär9˲±±±1•J!¢ïûaÁ-­€kîSJqÎc±Xx9  
HPsâT•¾õ­oõ÷÷ëdÄ«W¯njjZÊlEDǎÛé      ¥)aME1‰|õ<3Ø
+%A¦ƒãg&$        `H)0th‚`œ”K꜖mŸõÜt{»GD€¬aP2‘ll4m§£«m‹ÆòÎN‹s…
¸¬³Së§DÔÙÙù™Ï|address@hidden" address@hidden"ÑÚÚ:wޜ£ÔyâÄ  
}“ŽãhÇëÔ©¥Ù0Põ^îp­qJD®ëj7‚þÉØØXOOϲeËÞÿþ÷ŽŽ^ÒM£—[=ôÐC~ï{ßäv0o  
K§¢jùÁ} ‘sÑ*[kHꀲ›-ÆÏNAQ•ˆÆIÀ(¹b,—ëé/yðÒ‘ 
’R9ėò‚hHH™ŽÅ6Ü°çÙ¯=ôlåd–ã$šÒÊñ”ln6m8gR*DLwtTI©¤š{Œ1˲Â
-N ÞN>RµÜ¶UÍBˆL&Ã9/‹ííí¯¾ú*„Ù
-‘ª¡*IˆBÁ
ú¿ÁÆÆFD<þü‚0ÔT©sóæÍoÂè<xðàSO=å8Ξ={úûûßÑdÏó8ð'ø‡ï,address@hidden ؈
Àä   À¬…¶K9ˆÈ`Þa6¿8Te$"š ¢P’§1"tZY¬N“#
ӓi”R^¨0ŒbªJšÉdјäeÅy!•Ô.<ít’I§buFÓ²bé4r0Æm+žN+EÚ¤¥Yrlll’‰”RˆHåô*JSX 
ì¨j.€b©ÔÞÖ¦•µÁÁÁËwtjƒissóÁƒï»ï¾¥Ê Uø\.÷óŸÿüñïÿЁ׏Müèù  
¹itéÖÛ¸õ;address@hidden)!Ž)"$€< ˆ”¿id)ÄädNtf#š6¢
ÈboúX³ÛkväNm4«¾›«ÙZêA¦f+Ä,tP ÊUe8 a"Y¡Q'ÊùSrE—¶a†áyží8,,SU
U4%«†µ&&&öìÙÓwîç<—;¶oŸÔ7dVcƒé8‰P)Uãù5M³Æ¤V5†Å7ç%®^½ºµµ5—Ë]{íµ«V­š›â¤ðÔs´þ¦Å£Ç
…³PÔìAÊ\ß÷g®Ö”÷ïßÿ£ýèì™3فAsdôVÆ?ŠüFÃi¥0ü–[¼…
/Œ-¡ŠªF°øëg¶ڑ°åÕÝ^6‘Ô,€(ƕʒ*Œ‘êWê8‰)Mg0d4"ڀŒ5 :€ÍŒqÀ8¢ 
k>›Vu¢^ñ²VÏãˆñê~›n-|C”þÚ÷Ϟ=»k×®††!¥¥Ã¬”BDU‰` 
ÄÀÊf³€¶”R===<ðÀ¾}ûc›JÞÆÿþ,Äa¥ÜÊàf–å    
1^mrãŽoÙ2°‘!æqÉ'_‚ošÅxUùâDKQã<ÙÖ
-¡÷è¤Rv"ÆX²µCª´–+kXR7|âŸø»¿û»ï~÷»ÍÍ́ö],‡††(address@hidden&`@
ü•™Lfll,`–:«çAc)e___pªÀÅ©ÃhÂþ_-$B%ÝXÏ¡}Éd2•J1Æƽ¡áüàPvx(ž/´2¾Ò0nbÆrÀÆvØÉô”y0¬Ô
        éÿg;ö­>À_rFw
þ‚ÚôÞ85ßwpÈhe¬0ô«ò0t*`B©Pž(GT:*}È#PnŔæÄŠTþ¡b¥¬æÍ5 
Z•áŒ!2€¢hj_JX5iËã‹IǸ¿*¹ýýýœóT*588¸zõj­ª 
؊hjl©”ö´º®ÛÒ҂ˆgϞ•R~Ø´o2§7«JÕc½ädçuçã¤üЯ€FªÓfåIªSߌUkë¾aŒT“`.‘AïýÅBæ¿tà‹_N#+•
-½5<KR0-·æˆ2÷<ßJ&çŒóq„˜ë¯.ljR¡¾ˆIÛ\œËÅ 0Z-°xS{!F“æB 
°¡zúPh†M+­ǙeŒ¥yâ³öyèoJ¹Mo       9
-ji*UÍ$íV7žú¹ªY6É×^¢NwäL”„—‘%
-D%¥Î“rI—
-•e5_=‘ŠUõ! address@hiddenaddress@hidden(ˆ±¢…
¡S+3‚:‚ºjÎ2d¾¯ã¼öîÝÛÛÛ»råÊI¶ 
DÎ.¥|íÕW‡GF¤”™‰‰‰LF‡¿íÚµ«¹¹ù¹çžÛ½{7c¬¯¯òù÷Æ/y@:4u§Õ¾gE©ºúK©ÊŸ±y&©³+Ô¨;-ˆOÃÚ±Ëlµ.Oýu·p37:€
Ò,ºí±%GX\¼ØASx‰&õÎÙOÓ#š­Xµ„µÎtœ²Ê՜ŸBÜ
->@†æIi«C†”O zH *!À*f،)¢Ѐ"„€1Ä"QžX•UW¸Õ´è  Э\8O
-= address@hidden<‘БZyòÉ'ÇÙ¾}{6›=~üøjƋDÇ¥°­êç#ýÃâQ©±Å
-(address@hidden ïfÆ«£ð+˗"aÁ<…¬šö4IyÐD™kþ‚î/ôö¦•øªO«-hԂ[€…í#U0 
address@hidden"]èSÕѱïÞïe²|íkÐÑÑ¡c÷'ÙJ°qýúõ5Z!)•J¥î¼óNîôÕ¯~5Ó×÷Qf½(}p¼m€62–µ€
Q1†Øˆ¬Ь,. ¤,ÀfdSƒ`
-DªÕv«b£\´PE"µ`C…ŠŠZe
address@hidden(„IDÀà·ær´Â#.‰xÂ]Š*Ἁ?0{éý!ÓÓÁ…Ñ_]+^ôÙ¦§©w;­u©م
æ-<NÛcX(þúÀØÏþì/¾³ãk×(Æ
address@hidden,Æ8WJ%‰x<žÍfOì? ††‹gÎü+ö›v|:!³ê æHˆ2D.P9ȝÊ\æÆ‰Æ刲SjÇ
DÊV«Þ>‘xK ‰h2í
0ӌ!DŽ˜4*Ã8€7ýÇÊ×Ë4à)Qýè 9jÊNúÕƪ¯k¢;½)
-l€@qªÚ°*k\ÑÌ) address@hidden
-¹      ˜¨?'EpTIFK—°pžjéÝ"S&Ö#ˆÎ\-ˆMÑR/à` ƒ ¢Àœ†õ°.mÕAÙÀIÕêó\Ø
-먺.µ3ÞÎø^Ã.<ÙëV&¿¬x¤
address@hidden p?̌ÆÚSÍ|–g    u)"$‘%±Ö‰Y-–Í*êÒloŠòš+çT~Lя€y 
—€U¤<VvƒÕa&1¥ºÀ³        
冘äÕC$§ºžiöuŽê'˜ù{=-„§ôçÏSÇtó¤ïý^ÂúýÒR‰l(ÖCL=Ád+‘Ф(ÐÐ,TŠ¡v½%‘%ce'=Õ(SSHŒB†sœM暎)ð"-kTq'¹¨êÇ!¥z”´P”¢Î‡G´U¥±PµÖ8ÈìÉ®˜™â±OÍ¢íƑ­álÆY¢t¡œ>wAuZñ9¤>address@hidden
[kgoiS=Û§¿I-åÕ,4Õ1#¥Ò4kí̦†i¨§,yc=Ë*VßcxpÎ΀åŸ|CCkÛ?w~{{a 
V¡­mh˦~)‰H§X!)-!²D†ï[RZ¾Hø~Ú% EmI‚UR&¨ì)‹!¦MÄ$bj]cs30M'address@hidden    
¨€8 ‚B)©¬
-1¥d6ÌÎ
‘ËA¨<*´z>M([Q‹T"t¤YS§9E¦H1‚6¿J‰#‹Ú
-Ë` 
&ªgcИdœÓò<×6ÓMª¹ÖòìBVÕj„5l;-_Ќ,SŸ1ô«¹kêÓ®©3/-T­L¢qn6Šiõi˜«|address@hidden)ÖØØXoo¯iš:ÐY'H1'¨·{¸.ÀçDtNJ"%¥²„
 ¥òDLISHK®Ôò’'•dˆMJ5´´t%Ú¦‹˜¬·oqfY
gÇfÐ=ëN€òÁç}ÏalÙÚµáT¥½q7ø*¤<'DøHçé±´¡¼&Ï–Jàº2ø)Êå¡â(dˆäû²’°Ü$—‡J¯2OÉ´'04¼R&dù
&¢PªÅŒ‡˜T©Pý^֘&µi˜
-gŽ ˆ#³ª'o#ÂäOfd«Š8FÓHÐ4‘|:ñ«…M„EaéŸn(N;&ç ,“v+ÿ      ÈÆÆÆ|>ßdãÒ",Äó<Œ«”
-ªUÉÜ¡AqB
ƒs>‡˜T¢µ•AʖʑÊ”ґªƒ H‡Á´Úå+DFÔ“9…ÀŒ¡¾cÔNú$2¡‘–×R
-ÇpÑ\ôÊ-Üeü™…èÊŐÝP)åUË}®…
-é—rÖóÂ4*¥'í㈔Ë1y„„¤|>¬©b‘\/40es᎒)2®JMd~SÐjnLªç!çÅ´SzNR 
Î8ùi!btæâ9™áBXMÓpq¾©²z®þ^‰}m-†Rãããmñ¥’Ù݆²®¿2žÊT€çy:P¨¦A S€a
-3
g¤°v̓ÁŒ
address@hidden ÂIVDò?Sà\­Ña»[•‘qÚh•¹
-qÓ¿g&Ç)Bå
-ÁÌT0AêËJ|­¹Ñqœ¾¾¾Ïwօ¬2*™oÈ 5
-T§s
-Žë|Ô4W2—Ó#ðZ8£yhöê#A†õ`ó]ƒT¦ù\þO­¸óV©3ºx^ü”R%/lP©vÆjLK8îOu½Æsw,`]{¦&œb"¤:fÒÊ©g÷®Ìpoág¡t‰3òl²¤Fˆ2Dϐü¡c
&TjttDJiš¦¤ˆ°.¥p±VPú§ð‘štQZÐÓÿÆ#ýï(€/DÆs{uD0—Ô„C”*°cF}Sô4D€X=gqVëXUë” 
address@hidden;¬Ç,TÏvVçvʁ5¡0 address@hidden@ê,ÃsÏ# óL^2
eYË4-K¸îøðp.—Ó†“E„µˆQ#I͗é4Íé­ùmIyÞQ¢®Hͅrl*…
ÍãzÊ6"¡øÑ(address@hidden<¬        m®¹%A4Ny "M         0QY
«iL¯ÚûA4‚T€,address@hidden(…¾ïsγiÒ ˆ°ÞŠ3'ÄtK¼–Á›Ïy¥¯*_Ï1ÉP`yÞb`° SJ
imHĀ$gí’F
-Ô:(ƒs!±j(“:3#&\,h%°,Æ˙ÁàiEçMNŒ€08!–¹c2poº]¤°…
>ÔÖÒÆÙ°‹ˆÆËRŠ”
-‡“2HÎAD$¥—ó\×
Žú.Ò¾¥þ—äsŒë­]4‘„ué¢ô2¨ÛD„ 
-dÈæÅ+ž£ü5LŒ±‰Ê´’Ré”
RÊàTáíâˆxººˆYõ¢Eض¢†¼DTS.7ìÒä2ùt†nXK¥Rê2(T“Ãoª ¶†žf5«§
address@hidden 2¸a®ëJ)§¶™ùHøë́¹èøa֘z6ý§šâ¸“… §\%pMýnYSQ|aqc»XZ*áõ¾L½PN…
)︢…?fgX1Ñ¡è:1—ø G­Å¢s‘bY².-až/FôVí7¥XôEÚ
.³VrO›Z"éLX¿0ù¿Æ.Ê»?Žø¢1×xéØêf_n/‡eOõg‡?Ó·-ã|=Þ\¥h—8}Àà¤?Pô:Ày¥´M#b–KGX1Ï÷‘\
-­
—€°ÔÚÔRyØSKç.z,>mò§Í‹Š‚B|an¼9Ìú”´ˆŒB1÷—Ž°lÏ7…
xAq›f—°6§#º<QD(ÎmJhŠÊµŽûÞ²hà_¸®ÛâØcRqè^Ä85.™®-–çy¹\Ž*e8ç†aè]ÐoÙ'7%…
*Zö/J¥’m;}ùü’ÚAòf¢+&—ÎÖ        «±±qåʕD¤”Ôai¥’ëyžR*ؽ¬Ý«†a†ñ 2]WJEÆ«K
Q*-ËEo—RÊÿe¿tž·LXù|~thˆ™¦ÞfY¶ã8圼D:MgpݒëzRÊ 
æEp×\v=ùbH®°à•J­€ÝÖ%þ'·.¡U·L1ÿ©äÿ¯Å~ʏM€ Rg•’`‚±qnd9cœ#ÃÁ
-µqÎ5s  !ŠÅ‚RTÉKCZ.ƒÉŕ¼tŒ•ÓÑT‚â‚ß|•0Â¥)€PŒ1)eÔí¦|g)©ÚåÑã6"¶¢þZ•§QUê>ë¤ 
R(address@hidden@j€ÔyR㜏›<8Êi3‰µò¨?Tv𗷠ÀBý!ÈÊtýAә¶¬i,µéý
RÈEÛt.%aH¢!DíÖ®F±xG|i5j
-©ÂÔ}ó¬ü7ª¤]cHs¶)Ô^‘.æ‹ÊWÊ'*
+oŒèg&/J!…T¤†
>Œ8ÄY‘ó~†Çõ ÖUá£ÉDJ‘”šÖ„ë–„Aª½‰!Xæ£`H°g¢†˜
>ÃPB䔪IUa‘ÏdZ%éºndw¿pÕ¯’IiÏó¶ù'Vl_ƒXŠ„Eõ3j—™<”oÚÄlr»j¹f_°™3¸ž˜¥«} 
>)"¨ëò>WȜQ"H×6LT„IåÑSjˆ…
>S¸aŽáDåÂgHYfP€€s#¼þH)Ť”JI]>GÃ4M(¹Ñd¸´3MJè1˜çyaÍLIôfF­XÓ4µ¢™
-úíX"†ðbƒ\Š„…3T
-Ñ¥HªJ}à”d‰UùÕBµÂ”Èkºd[y“þ;MÀ¬I,¾ª­D0™ÕH’:ï‘ 
²êz^yáåÆP~˜‰HA<˜séH¼ÄçUh—ò’¥¤`5
Sày7#‹™¦É+W "ÏóD¡À‹¥R¢T¿¥ðm†DÉ%¬B!Ks
Ö-ØN‡V]_¯&Ñ,õ&f.S›”CDɐ­Â ËmäF½0YŸ¹Þ|address@hidden"
¦lº®ÉvöU¼Ì䐙:ŠÂ‰´%·¢: 
iZ–e!¢ïyžçù¾¯”žç¹nBªvE1%›¤B€f€­„»¹±Šq`¥nj’`IU%­Ë5T—¤.0µ~Uº¡r
-RAÙÊ)
)\Ò\¦—!(¯DA
--à«.¤       M€!„T*‘Ê¥C”%陦i”
-¦$Œ­aá<×aWL8™X–>y˜’ ˆ‚è2H_¥ý9á6“Ó£rhš&Vª‰€ð=”ÕU‘¤D
-“RúRæô>J¥ÒJq‚6©\0(©¨SÈN€UŒ¯BÞÅXVÌź4òðì¬[³£›‹k—6aMO3Ó埞Ž‡pzŽ"
Ÿ'Dè5á=*ý'MÞc.QP$ŽÈ¸á1V<¥¤Ñ1©âD€å”°L© 
öTŒ¨Q)h—Ägœ1dÌàÆ9á?räµ×^cŒµ´´%d1‘ɶý IDATH„3¥1ƒÉdxL›¦™H$jÕ©Ëì¼¼õô 
õÜø„çI‚W6¸H !DJ 
`&èdƒ>Ôéú€qNŒ™–Å8"%e%ýguílDná‘Ç8g‡”R:xPÿ+„þŒ$år_0¥ZÕµ±ˆ<?N”g,©–3ÆZ‹
…Æy3²–ï',UV4°œC4\»^ãaFËÐæÉ–ÝB½o‰KXsŠpµn¶º’StºðÀߗò­È¿m¢­-    à¡”
-¬éˆh…TŒàxeÎûàWN{ë߉VO‚,kq£÷¬eÙDÔÛÛn¯›…—t)%Ñd>‰ 1›a:˜Öqì
-£•WoÇq8çA(-h„o&sÐqƒÉ¶íX,¾ád2æMÓ4ãñ8„’4%        
«º”Æ\X²&aÓ%B>“Ùč?‹¥ê‰ÖӍ®r½6ý!+ÕOôr‚€t°ÉŠØÄ+‘7’à<)ý{È̑×5‚CЂh¶3æ¶"Ɛµ`Å%Hí
VTۚŽ?ªËµÒ|fМt‘ªÂÚ5mió%MXs©ã†Ó<œ†ÎæôþJ>Á}¶ó˜_<
¤e³ÙT*ED5ÙÔ„Êí„íZÎGDÃàa©óÉ}EœsӌUΩ 
MŠUrqFQH¦:RgMãJŒ‘ïûᖺ6ÚÄÄDàͬIq'ªUàHÿ!ÊÌ>address@hidden 
«†aš&"Z–‹Å’É$çÜqœp­°1ª³KŸÃö©¹èÿ3Ž®*q>…ìzú¾Ð,Ä7
-¡ÙŽã”A^ýqº
-´…Ë%­ëNO[Z.ÂIÂê%i)ـhM;¦{:¶`V…qJ©ËŠÕR€z›aÙ{í÷|"
-l
-œs=¯Âójb¸žÃDÌö²õ¡2·u0K j…
«aoN 
Åh£©žðzz×LÔÐj[GUi©:UÈqêÍrÎjÜÿÚ:;å1kŠRÍnƞš'Ó÷}ß÷5‡ê¾ÒÞ+--†{2|˲ô½++Ødª¥?Ínº¯,ËûŒ›/
 ƒ`$Bbt1fŸ4`Ãä$ì`Ì$-cä
address@hidden,à´¥nf¦šé¢“ÊD表îÍÑté'%W‚·k¯—PK”°^h…o.wO‹®‚jCÞJØN¸Ù
-ÆW!oaÌà.ã¡
[ j´é¾úÅĐ]oZ°q!„iš£££###5sl:hyª†_j„ÅýW˲ôôa6øHÏg}Ð÷ý|>æµRúÖ      
ה
address@hidden
ܪâͬV™<•–¿lÛªyŽ©™«ï<address@hidden(e3Q«T]ÈV![¬™…Gýšú Ù¯s)
_;¤«ƒsÐHp
-KN­zeĦHôåè¢òAd$–ª„µgm|óíËtŸdü¬ʉ—ó⩼ê/gæU7š 
[$–3¾‚ñõÈ:9·³®?‘j‹Ð!àÌ:#´Ú%—Çã®ë)=O¤á_©P„z 
„§Á\â×kêNå¯É.ü9ÄFàÆҒÅTù¨FŸªÑ°‚9f½i)Ì;¾/jXOˆ\õ=+D<õÆXñDљä§’æÔÍ5<î8N|Wo!
-ívÒ½Q#´j‡Gø<b­Iè
-`ˆh¨ò–Ëe¯|¿(Är_ìÈç?ÀÌë
Ӝ6xfµ´Ö#©%i>¬7Ílº‚²9¯zŠõ)µ<       K”°ÂzJG£ÙÑX;£¤¢‘¼ΉþŒÌÉçs4žñ³c…Wu1s
±Ik€oçÆ:ÆmÄ$ ]oɟþ=Mš6pã+ÿ<“‘“•×&¥Œÿ¿½o–ä*ïû}çôkfîÌ}ì½wïîJ+­VzDB 
!L0d‡¶‘)WÛ$$))ÊÄå`§âTªœr9NA%¡HåR©rl%eãÄ 
address@hidden/ôtÏéçô¬Vàìö'•4·g¦§ûô9¿óûÞY£NuÃýHn‡Ó—(Š˜‘¢[j,ÏíçéµVqÚC
-é‹têäŽ4'SUÄÐ<˜ËŽLÙVú™œ»=—+kgÉWt
-4Ï©)TÆA‰æRÛT]Ó;Mš»‚Rjww7ÝL¾fÞN’ýŽ†Ô¸~;1£ŸRfjÚæ¤Zël—W2¾rþü_†XŸ 
YƤJt=±èM'«1Ti|TnŸšWçদC=jšÝ›cKD\Àµ3ZßØ¿æ«Rá´Þ·ÖûÖÇ2ÇýHïô¾¯¶Õ¹Ãè±Cµ?
-··Ãµ}œÔⵑõ:ËTŽr6uò§~ÚñžÝ=ø·ÑØr³e¬5$NmpÞ艔³(¥Q6©I%]ùq|éŒ#‚eÙI¼ŐGDq§&$¤ãå˜ñEQ”N²ë½`s,ö®1–qÓ¤x沌՟Ròuy¸Yõn.)address@hidden|©±­->ÉÖ֖RZq³<d{“¤‹’ž%ƒ§7³b
     «šÎR£ã<Ó{ÑΈÆ~-’k¡Ú´ó†°ü©&?ô¼Vonk^ñ,áõÅzß:½–kg¨þè[ûŸx|address@hidden
¿¸eFk2m+)@č2‰¦ÊÈx<.¬Xmô¹„‰)Dæ|ÿÂèû’.×8šq\ôÝ¢
-Æ…
áCŒ£+´6[|Rß%L”‰’Hâ*Rh8åùÏeEÅü™çÌ9[µÖ#¨PÍꋲW1©•+šðÒÒ¢É2äx7RJ¹®»à8?¢2y‚0]lSÄ1žr96®õcÖis\çR/&cÚ´蒓?ŸçV%¼¢²Ü•ïºwit×à3ß:øG~ðQ÷f!‰Šy²ÍàX[_
 ú—ÞÂ>5èû¾ïû¾eY_ܲj¦Ž¢àÉü™ã;qA­ÞA©9NH§gNN9Q²ÞtúS³‹Ö¹vx9ú“#‰…
×ÓI¾ã…
jX‹Ä9êtà1rDÆt𙑂]¢ú±EÐQðd0¡*v&º®ëºN)ӝjZÜâfÈAäÐФW5Ó¦Õ_d)ÆÅ?3Ð^¯×ï÷­sçßl99PÑohîv%Ƨ8g¢Î€Uúg¹¯£
-€48d(`ÌglxDNãff­ö”E-`]iéØâíw
¶Nuóûoú¶ú!áR‰Û%ðҝø!~1ðÇÞÒÒp8ÜÝÝMxJ‰ï&Q+Ò°ç*—Y.T*NsÄÇ “Ê«3µ­Ò½4ej&rÅ
͈}j¹ÎÃÅ»6+ˆQ†Ì¾¹V͕ŸÞWښ8ílbk΍XIß÷SºÊÌñ1#Z,address@hiddenÖ
àˆ>À6ëCð–Ö‡à3ZŸD¬Iâ퀘! 
Ž0Qú½Ò¾-ëTå2¦EÝk±&Ò÷¨šÚê‚õŽXþtwwû›þ;µk×Eɛ3ŒÞ`9ñƒ_Þ¾È+ËBˆÃéF
˜s“Pnq¦íÔ«øNZ]¹až©å2àbž’]«ÈeÃi­3VÆ7—|‹‹­Mc_•æUô­9;\üŠyÞ 
˜uü­ø.ÍðÝ"n撍+®$†°ŒªžûLΛ)„ àFáûl¯ð”s‰ú
,JM’}žDÞÁs( dX?££§•Ú,J¤1ø<‚mÙt¤'mIž%i   
tl±hQÇ}OÄѾ£PõåaM)uçæÎm3g¯ë2µ€õ²ÊÛ^µø•þá'½2T‰#¼ÅrVÃðon9²²°°pxx˜ìØ3›¥Îœ
 \–#‰ÆÞnT»Jî(%Ys2rtÃÐ
‘È)¹BÇeŸ/address@hidden<9$;’Ä>‡ÜYS¨*½’¢.œs/æ~(V…
¹ˆªëÒ¿¡ðÞn¿:êjFQÎi½ËzSë'´:«Õ.q`Á±h$Y1°      
f¡ÇƒéYBHê9Nǧ:³„gQ¿#tm!’]…
˜Á3’0=ˆ·›aˆ?z>È«pOæŒd‡ƒ­JørË7÷¾$ðÈüŸ„W旙j™ÆïWZöÐâƒ[ŸX;"„Øßߏ㢨­“UkB–©Ì\Š9“'¨ÌàZc~nˆ†Ì\z*0Ó¦ì2WY¿ÚR>=ÖLáÅìOUÃháHI„Wò\òßÒZäºîküñ¯v­â­°a™OjŸñ5ü>address@hidden
ë{"ÞÔû_¾úÃ/ß*jI'D7 ä‡5>¸uñÛG–;ooo?­£*¬èP
;2/‰u‰f-û)address@hidden&~ª><ïL†â¯ 
ÃÕÕU×uw>âõû;W“¸§Éã²þBþ–5Ö§ìWÞпɖ4ùgòÄâ²E”=EYÞ8™ ÿŸyb¿Ÿ<'õ&_SD€'7C
÷îÃýû…U1»¦7òç*ºgõ4a}Ÿ:??tÇàS{;ǏþŠ´+žM‰óø!ÿµÂÏmm?¶¼Ôívͺ.1™¶äÄL»ç&¡Œ©'kâÂ7
#Qi­rø•âZn¢§•—S0,address@hidden&T†/3Oų’êóG¢(ZYYéIyß¹ÍBÖ
ÒªÖKµ~<¯Õ¿Ã§­ûoZZ]°ˆÒR·IʁdÃ$iα1EŠåyð2þæ’ÁÉØÀ‹»Á×/ÈÞxôs/ș.|G«·¯\Àµç«}_/¸â{Všé¡û–>ráÂû6q¿e7_º'¥ü¨v>paósa
 
»Ýد‚ƒ©h»ÉC¦±T˜&߈8Z:²´åbí™"Sü¥TŒu¡{EÖ+gºÏ§S•²éºeL5>ò”VõƚZÖ3±µ—ˊ_©ÐsøÂW„-•Ã0

ú!~ìâî/JÇí°þ“(|«íP¦ÕÁ[n¸³ÿªMu×T¢‰"¥`”)ø2!O”‰Lue‚A©LÃí´„Í—ŸBôîÝ'«ëØã-Dy
Ögÿ¯þýÏö–„Õ.®[”«=±Ò=G¸uáY$ŕ3Ç¢7½véÝÿõÂçÅÒjêñɦw–Ê       
!?éö—üùþ3]áx^l´ŽÄÉ®àÝH9¥fÚÒ´ÛÔ䜫„‹B¨¹®÷«(address@hidden:öQÆ·SÔ¢«4ª–j•šS[ûÚÚZW©woï¾Ïv%èIýNà?ìx4ÃûA|ðïÐø›·ÉWØeϔÇ$~šD6SÙ^@)dqʘc’Ï<Ý[m0’7cS˜ÿìŒÿøE{Õ÷ßE¡Æp9
?±—” 
k°dȗ‚Î%¶„ÏùO/2³àŽT©Ž{Ru,Z_«]lôÅRG<Ñq„k‘u¹#wóš{ú&ï¿<ç¿ßí¦O¢ÉvÜ#ñ7Ýî›m÷?ŽG¿yxñ¢ët:¸\Œe±z8ÅåbIMΆr7‰À\qù¯}ò¹ž
  v¹e\“ZËQWmRqÉOcîkLãÅãf×ô)&•|…D¶3ŽH­u.]Q){Z“BÃÊ VñWâ†CÂtÅ
a€lpÅõŒ4ƒÉڏ·‡tŸˆ9l\˜,MOR¨’¨M„2{1Ä 
:«««Þpø··wßãtóÿŽ‚o¨ð½^w%C]Ë'Ñ6ëçú‡w¸wmxB¤…CÌo$ •4‹ªUÝ„L«Èpö-6µB2     
ZüÉPñçŸ>ú‚½1ÿY 
N,$•9‰ž¦k°~2P÷míî;„³„‹DˆHôŽO{îÓ=¾¥kmSÔ³´+µgA–<ò,¬tÅÆ–;b±+ž\ôdý˜
address@hiddenÑ6é•ÖzsÈÚ¢   
2\žçÕ7um²µŒcyNtÔ£¹éû†§<ÁÏ­2טFYq+ñë1¤¦?GºšH7jÀñö~ðľS\91Î稨™Zhæ'[Þ¦ƒfÔYϔ?Œ#fSÍ:ÞNÒpü8RßÚÝý¥½Ñ۝NÄøÏÁÈ#z¿×µË£R2q¡ç´þ°çyu÷Î%‡*#³’Ï2Ž¼ÌfšyAÄÊ“ð(©ÇÃ(þŸO
address@hidden@«$NXNnÑÀžÖC¥ƒ`´‡áˆ(Ð:6 c`›è;–Üa:/ċŽ9’ƒH{b¼hG=›7úrc 
ûîd£v-\aK
-õDµ?»§¾ãڛZ­%e…
Éð=%¥kŒ)t›´?Ö]üÑÐÿ÷JŸµ¬A0-Ër]·&CÂdX/Ç°žõH+\N­‚sÆX墛.õñx\$n)Š™cŠ|ߪ¡ŠEÅ9~£½öHþtic˜‚Ínz3É1–\Vc•žXš¶Í̡ᅥä?
 ëm–sÀü‰ñðË~½åÐl‹=©£ßX
-ÖïêíÛ0 ÆDýiì¡,^!®š-Tœt(0ÉUË`n%     
횜ò<>úúv÷–áð_D¸sZû¬È­2à<ë.p-V’ÿ`‰Ä’iYÌjZÐ,?â]Ö/„ÁX©ØdÞö   
çÁ¾‹Â¡%¤¥Ü—"±¤â‰=[0îƒô(͟2³XªÃyۄMôãNç-¬_Ôü
}êsÑø…ÑÈqœ8$—R÷=–çG/Õ›BFCqA÷™¢µ¾¤Ÿ-:"fÑZqÓbžÍ;ác»V¬}_ލ\ߍÎ
çXßtÿ!Ë÷ØÝÑ.ëù‡?áx·Ê|:]izö9­~Ùþà}K]GdAÈøß4Œ&è±=uRړ)ƒWL Úeý
FÀ•¡‚‹‡ê³OŽ¾¾Ý½þpøë!ß"¬¢[ƒ¨ªÐ é„7-rXõ}nJs>      
€GðHl"φ$”å‚÷˜ýˆ÷B>ð,‚=àŒ ¡õ“|P¸ýÔúG³üGØ
H¼Bˆw‚¾ËúÛ*üã 
ú,Âgm+î9GN_;½<¯8y|&ìt_ÚÆ®45©X±ÕZc4zÄÏ۝{¤«¤;Þ-Ò.K[ΛüñptâîNÇfÅÛédžf
Rˆ¦'™jæÄ&#Aj¯J"Ñ<
-ù¹‹á£ÏFg„Oý£‡¿ê[„ݺã_v¬\jVF{¯uõæ_çj¿fD
@2M”É…ª³ÄFN)Óì†Åh’À)§,÷!˹ 
ùÏtô{}•ø,ñöövZ#Ô,štˆÈZy95å*‰ËÌ[–åyž-ÄÝûßî¼Q:î4¤‰²]Yٕ7 
œ×ü?ìðÝ)'ÉBOnÒN-Æô›ÀÜäHâ
-E.!ȎDšG>address@hidden> 
Û¤K‘§àu¢ð´ð¡Pß7åV5mò›ô!sÏnk£)†;ò<Efs¿Ñ«»¬äõǪ³­zH8oƒsFGÛ”Ó?MÀE­ŸQê»îÅþ>!öC!ÁûÌ{ZI
¹8>Ëô$Ûm¶òÒ%¦TãñXêõz=!Žý‡ýàVgqÂ>™ÖꝑO…þڍ®”“„›ç¬TkTÉvͅmYiÞªPñ0Ð
ìùzÏ烀Ƽð®QDŠ…‚T¡¶˜Dœiµ<½Áߘä
B,K‹¦\Œš.ðÁJ`QXµƒd>²4ÙµŒg¡ÚL^ƒ}9#ZÊòj>‰f™Ï?ÎI!O¸¿¤2˜}`Äz\bÞb¾Àz;ԛ:zŽÕŽ”—mÚMÚ+ÄÅUrZX˲dMP̈¬=ÃË¢ë}¿*
Ã8¦!‚e­o#±º×rnÙž$:FrÙö(Sis¶ù"W¯*b<
-ÞÓù½Ð¶È³D­.u²1°ïG~8‰AЌáXBö#½3Â(œlÌ´ç³øҘÆÚÒ ID!˒
-9‚˜YÁjàŸ‡w1nî#yÜrÅìy[zœ~\Ewܨ,ÑVõeBG&æðúJTj\ˆ+Ib^Œ)W_בª)^®àòôEýïõ&× 
‹¿¤ÀûŒæ=Ö[¶³—œ÷EÖ!·§&ÂPó¦Ò8 ¸õà9úÈäæíŠiÄ>06Hƒw™™@ ¸`À|Iç˳d3‡2õ…
{Bù°rí¯rWôÍQ²7̓f#È4:F„g±Haî,æ;"õÉ×K÷–<*d¯ÄÕBYveS¬²B’ø5B~tÜû­Ç5˜Ò¾`†€Šk8†,4„RŠ€Hk¡
…
fbK(3úJ‰É(ɞҒc»­DJ4cA)address@hidden@´^n#±*l§$I‰¥5Ÿ§àF-îMUBªÍ*­kÆ=ߪ)˜pÖ¦0“FÉfwÜ̚cã/Ea
     
Z",‘dFi˜†é˜šn5ò9Sž%diÑA€QÒ¾X'Xés&¼c‹Õ(™õD4f>¯U:address@hidden&J“'address@hidden
 ²Ãev5{ZÑ­Bú™`ÌIÆ%Ñ$ýk™Ä…uÚvI°ám™õtjŒ˜åäú§-÷™ýlëEǶ53ÐSÚf^Ò:×`Z€× 
xԁ^u3‘ðšà‹v™l]XqÄhWÚT6í9¿LPè³;ôu4XrÑVÃeÜ°%}áêf!5;IžUUØÈCU’ê¢Ì•ü11˶’¬Ëèå²K4TQ
üñÛx3w1yªfs6JÑM^DŒ1kÂÔp<GÆ  µÆØ2bˆˆÉ à9        
ÀÆߒd6(×ðgãNsËi“}1ߐf‘ða§;address@hidden X"s´áö\£Ì{¶É·žÓju]Ij«nëgÍ#n…
”‡ÊQ/Gµšs¢Ò™Ñd.å8ßÌþÕUï›>r62<Œûâ\Â,ßfñ¯2´B­J¿bebPºH¡VTü"g+'Ÿ 
"ÝFÙʤw×pvÍ|«8©Ø%Ú 
jFܪ‡TÕ+ŒQ–¥WEßz“Í~ò­?¥àÁc×®>ˆl$(Í㪨ßÈLÔ,ûb]{OC¡ãZ’Å(dpÕlÚ<©ï˜~óò|rÛ1—,õâ
…€/˜Òræ
-hų‚Ë~…
²xWÀôº!¦Ââ,®RnF»9ãAzƒœµ-TŠjÙ:7~Ê\V†kж€V\¸*.{¬ÜàzàçœèÔàZƫ˯‡UUxh®Vºf%ÉdµÐÌ-hæ.]S³¸\ý¬ÞË~¥
 address@hidden&ɀó­I›´t/ë«4­3U¸ø     
õãìC™Y›k#¥³yÑ3&F“Þ«\£s°öX®®Ù¬"ÃjbM¨26Í$_¥Û—¹#Ñ,m´ –V&©¬hlœÔXM rvR© 
™{$WðžËÌYe2µJ´šI®îRúÀ¥L‚³·Êù'^ån°ë0WÃA)WÊRx¢f¦ÏÌs¬l¤ØÈFÖ྘«)•!~ݬ{B©ûó5Ð,æ×äy&UW>âŠ:¼LšyÑίâË?-gg-×LVž[EðâZ,ã2ÒT¥~ÎüL
…²Ÿç1©V–SÏLÅ<‡,¹´Zh¦Rµ‘Mú™2Yžƒ¬Õ‘©êzÖTJ.(q
L(ÔÄhÕÔ&ó%׿s•ÑV“õÉuQ0œ§ïTÿHJÍ+sî̵`JÕìÊøÝlX-psQ«+P›l17eyCJÎÌyÂS‚ª3v¥:› 
5BÍØky±¾²s]¶z³eų®ŠmžW¨ÞÐð$Užq®šíg´Z?,;h
¸´9_ˍYJ@<cI[&Sa÷j`¦Òþ(5vÍٓonÂÅu˜EiSrÄ{¨ù7U      «ÎƙsÕèt
‚-‘mj–Y<š«`ÅNÁµŠä܁K\>‘¸±íÕ®ó龛ü
-•cn`Qipœè÷¬ÑC7ë6ÃUd·ã9Çqö^=§ŽÉV•¯nÉR—UÆ).¢l…^–;Zê°«äYKS
l5ß¹¹˜t[¡0re”CåƒæjÓ¬-5t;address@hidden/éÂñ}¯ño裣CzS%¨4:÷Pé²z´pÆNPºË0Ï\~eÊBî
ªÐÁP¤Æ(bV6~"Íb1¬ç\C£²ÿ`4C ãæ¬åÇDÜë¸IDATÀÚD™šëc\xT°a¡éìšÑ      
•&†æáå}™¦Z˜nHšêÓ×r(V 
í/hõ+ì¿rÛú!SÀڃžŽš[7].HaþôéƒËüƒw3ª!4{­åxV¹Oð2¬(œ±_MÁmgÌc.ÉaF¹jǜ·š{•Åjg²‘ª”Ø9w/#Ü
U©úÑ'YPDÍ£,à97õèÉ͍ÊП¿­¢Ÿ•Ü_ïx²+ Ãú
[~ÒRǕވÔIÍ×'@×y½kBÖ*ÿj \5'ŠyT
-aShyW¦`=‹*È•NG*g« º"v‘«µìË S\ƒÈu1"\§åΐµ„2g
-¦¥³ÏY5s¦ŽæiddtlN¹P¯i#ÞJÖ_™§D‘
Óëÿ\èÝ£wљ°2€ew:½õõ]ð%Ʒ⢴A Â0
-/ŠN(½¡yUé
ͧ…|À²7„¬öìÒü'u3ɜ ÔùõxžÜìya•æĬìí§1¢Tk¹+rFžiÙ¢û|…
·œ2T_sRpŠšeæ”ý28k`5°’8ϾçÝJ‹­„1UŸ–ŠÙiMtˆé…ÿ¶
-¾³¶"   7v·,°rƒL$σçƤæ<ø|RÈ)
-Ý­-IR±Ê8=ôׅ°z-‰E¢5+$Ž”Ôlâˌ¥Ëè
-išÅèhÎiáٖ¾bæ`¦ên†4ÐLਿ;ƌ„F³f˜¹ljè5+ݨ#.û͟:#÷šìd¹S%Ù¡U܉îVGü‰*
address@hidden/©†FÐ2ãP¶LLvžå÷pÊT``*ÉAÅæœ"]¾Jʨ°Ó5‡ªÜ‚¹Œ‹á‚Áx."6‡öûҔwªÖ¦õr   
    ³ÉQujñ.êS“þípüÑ¥gq Æw,éª2€51▰-*:•‰&ý´tœÖúÞ#ú
ÇÌ(@åÎyöãùC\ã)ÏBEľ`_p 0b,4E€Z&1N°
:š­)7 
Z‚X¢O‚¦¬ƒP’>“¯Æð,nõñYÐ<Dy¶uÅ6Mæqhª7Ͳã4a1Ù´P6‹`Å9yz+çå?#®dá5©™Å°¨«r™½•›aqi˜ÐÀEÖ¿¦‚ÏY´{½˜(è(ºq¡eX*aa!0J)®09{½
…øP©“½ÙûÀñœ\È=ÈhÛöqhôW5Î
address@hidden"@ŠŒ¯?æw˜‹ 
"ºŽ$ÀË$ú$ㄔ`IU,‘,íxóF+àÜPT/&.Év&\9{ófwj^"&¥­0P½ÆTRFaFV97ÐÙ©        
„ÏF7nô>³hR…®j"fٚîÁŠ 
çµÞf~J«‹¬?mËovÜÁà¨mYéº[¶B§m!P¬æqÞBÖ¬µÖš­dd£0¼{åJ×#ŽdœÔl\IyÎY²`73ÎÀ¹1ž
 Fò­ðX "f°/™…$B€}ÁŠ‰c$I“"`„XDq¹OhuÂõ&Tc•D'address@hidden
-s)address@hidden:ÞlCWÓ:address@hidden'é:éýÅÀ6ë! 
Á›š¿¦£¯KzÚ±ÏI)address@hidden,:N‘NŽL%ÐØA3ˆ 4Ώ1$!¬Q„oú“O:Æ¦Q”Yzz(¢ 
,I‡ÆddÒ¾L‚j`ƒNp1N¤G4 Y‚XHºªÇÿÝ 
¸­p¬(k³éEêziãæ˜fÎ67CŠr5­ÆMó€lU™úÒ1\Ç;c*½MJбšS$`õ%æY_bކÞeÞe¾ 
EDtQŠC!ˆö¥IiÇ&
)¥ëºñN¿RX_Å×}KÛ-`lXs”. ûû{–e9r$ØŽ¿æ]åƒåœèMÿ¼¬T    
õ¯a;‚!ãÂ(^E¹à»af1~fˆÈà¾V$Æ㉕/M address@hidden&¬yÄ­w`íYEýið  ²Ò 
~‡ÈV Mî·FÂ1l‰h&``ŸõžÖ&,ˆd¯è–¦+9FÕØO—r-‘ÅK™Ä»0sÖ †Hĺ< 
&hfvµÞk”€ù¼–ÓÇÃ=ˆE¶¶ /1GÌûDÛ1…
áØuömYdI)-˒RHiÅ-/s¬tÛ±ívÕ_+jë%1,˲\×[ZZšvaö$·Äõ{ G
-»Â©¹qS7ÐPcs4Ÿ#:~d¶À…
”1)F¶Ç™¯_a¬2ätˇ#á+€úi·Arµ#(F¸d1~$X‘G%M•Õ(3ÕÔXèhb\sªç±?1WM]íô”
r%l 
O$]Þèó"ÀÍö„t§râR€ÿ³_}z]x–eF#!„çyaŽF£ÅÅEK‰2\\,4±²‚aM^.9ºµaÍmÃJߍ{=³¦xÏdÇo<µ£y5‰-&
 Ã+cÙ(ô¬¿y¾Óó<dS_.QÕÖ³FÊÄnÛõÈðƒˆ¢(îž5üåá)nuV™PÖô¬ôO¥¢uWµE¦Và²Gȅ
ÁÌìÌlYV©T‘ôôè7T;š­\MÒµ5نmۏÇÌEQlºM“´Î¢”#ãL´2%ŠÔ­ƒ6«Ä†UU<¨|H…
桛;£ëÚÁl媒%6¢9nU«”bÖav»™¢ŠÔ¯Y˜ÅÕ¥Ç&G”R§Ú 
¬R•°VÌét:é&EÑGƒžÕf+W•¬zð(0±m;'íh3-é+“>§V”庖TòÒÑ¢Ó>ŠÀâ†6¬âñ 
ÞØꃭ\€Õ§p/!P½^ïÒ¥­‹ThFþe{Êë1Uëþ…
½Z†eêvUʸR´J¯[£›íH¶rÕmæG]'uÄ!µ½ÞÑ$5-kÚ-eúà´ÒZßÐ Z†UX¨õªwãÃZëWF×uÛM 
•«PN/D±s0žíDdÛN™C°‰]Å0ÅsÆN_\bñŸ£Ñè¡ë”h]„e*aÊQçhÍÀŒ address@hidden
-—e¥ðáÒ|õÉ/¬ˆÑÝË-(,“45ÔÃcY"ÿÕGZ·k+W§Üµ¤ä3>¬i†¿mÛÅm›¨i͏Iƒ€
-¼y\k}ßâpµÓ>„:†…¹ÐŠ™oï
Ûf­\­rï*VÅp‹»1Ù¶mYVú€s§
‚à­7EV«»de¶
«ÆŒ†á‹Ú¼V®VéÛ¸wq¬ÔD‡°m[Jér£r‰yl*[eÙ¿£ð•+­îR
XÅQI²=~`µ
hhåj–W¯„Z©‡`u¤{
`.4UÊ­°ë]ÿh«V©„±30ët§
hhå*—[lsÈ°Qa®šË†ebSše‚nêøƒ6 ¡
-°
-8•+V‚fJ©X–Ú1måê¬ElXóÜÁ¤\X~#Ok–Ì«&_GÚg%•(R·¯µEj«¦       
E)Ãê¨á;N¶Z¹Êåh‹2zAåŠ)s¾˜ýüPe°-ν¥¢ðµÖØR"¥Í¸f§˜kýرýW®´ØÊU.DxýêX)…Œ+Šy
address@hidden>‰òÑL_k­Oʽ÷ß֖šn嚐׭kKe[û•”t•)¥^³¬zíÀת„Mh¬RŠUx{wô¯î=¼±
¿jåڐ» ã!vœ°ø2š!UY¾Â0|Ûñ6{¤°b\P3ÑZ+uÞ¹0zE?zˆºw•‹'[iåj•÷Əµù…
FaÍCÞ+ƒ±«cmrn=`ÝÕ;x×Ú[ÐSûd<‰|ëR$=¡oêGïYÑ×/``·#Öʵ(o>~ᩈÈÎ郆‹p¾úËU˜ÅÌöîXj«°Þ~½þ©&.¿Hc¤0Š‚ˆáŠ’®­´r­É›Žó¯?éag™TÚmÚìEFMxV¥>address@hidden|ðÎhAT÷4_ðLÀ*E«(ŠÚ/»íx·€ÕJ+/MnàC·ê`Tîƒl`fFc厐
-îëîüÔMm¼èœ*a+­´R*?s³R|ñÓgíÇöÝ­Èu'îÑi0,³ÎŒÙº².&3GQxʾãúáß¹U¯·        
Ï-`µÒʕY-ïü³·[~ðøÎÁž•ÿý¬·¥;®ëCÔ÷úÔQØCpÌ  
îè¬ë·Ð]´¡W-`µÒÊGàxÇ»ü–ÑϏ>ÿâá#ÏÙ/Ž­ƒHµ°       address@hidden 
m«•V^v!àhﺉßqCà« ÔP<Õ       ™¡Ð0I#ºeÀvR-`µÒÊ÷I\       
W6ül²ð’¤õ¶ÒJ+-`µÒJ+­´€ÕJ+­´€ÕJ+­´ÒV+­´ÒJX­´Òʵ&ÖO< 
¸ñuÚPÛVZiå/ppãƒÜ¿xÜúêW¿úÈ#<üðÃã›ßØL+­´ò—Syä‘×éOèºë®‚àþûï¿ýöÛÛAi¥•VþJ÷±'üâWÞ$íÿ­»†ö;gÆIEND®B`‚
-
-   The above is useful for playing Flash files downloaded to your local
-system.  It is also possible to play Flash files directly from the web.
-To do so, use the `-u' option along with the URL of the desired file.
-
-
-           gnash -u http://example.domain.com/flashfile.swf
-
-Note that this will not work with every website; some embedded Flash
-files are difficult to play.
-
-* Menu:
-
-* Gnash Command Line Options::
-* Gnash Interactive Control Keys::
-* User Configuration File::
-
-
-File: gnash.info,  Node: Gnash Command Line Options,  Next: Gnash Interactive 
Control Keys,  Up: Using Gnash
-
-2.1 Gnash Command Line Options
-==============================
-
-No options are required for  Gnash's default behavior.  However, there
-are many options that can be used to that behavior.
-
-
-       gnash <options>
-       filename.swf
-
-
-   *Gnash Command Line Options*
-
-Option                               Function
-`-h'                                  Print usage information.
-`-s factor'                           Scale the movie up/down by the
-                                     specified factor.
-`-c'                                  Produce a core file instead of
-                                     letting SDL trap it. By default,
-                                     SDL traps all signals, but
-                                     sometimes a core file is desired to
-                                     assist with debugging.
-`-d num'                              Number of milliseconds to delay in
-                                     main loop. The main loop polls
-                                     continuously with a delay to adjust
-                                     how long _Gnash_ sleeps between
-                                     iterations of the loop. The smaller
-                                     the number, the higher the CPU load
-                                     gets, and of course, the more
-                                     iterations of the main command loop.
-`-p'                                  Run full speed (no sleep) and log
-                                     frame rate.
-`-a'                                  Enable Actionscript debugging.
-`-v'                                  Be verbose; i.e. print debug
-                                     messages to stdout.
-`-va'                                 Be verbose about movie Actions.
-`-vp'                                 Be verbose about parsing the
-                                     movie. Warning: this can generate a
-                                     lot of text, and can affect the
-                                     performance of the movie you are
-                                     playing.
-`-ml bias'                            Specify the texture LOD bias
-                                     (float, default is -1) This affects
-                                     the fuzziness of small objects,
-                                     especially small text.
-`-w'                                  Write a debug log called
-                                     gnash-dbg.log. This will record of
-                                     all the debug messages whether they
-                                     are printed to the screen or not.
-`-j'                                  Specify the width of the window.
-                                     This is mostly used only by the
-                                     plugin.
-`-k'                                  Specify the height of the window.
-                                     This is mostly used only by the
-                                     plugin.
-`-1'                                  Play once; exit when/if movie
-                                     reaches the last frame. This is the
-                                     default.
-`-r [0|1|2|3]'                       ? [undisplayable block object]
-`-t sec'                              Timeout and exit after the
-                                     specified number of seconds. This
-                                     is useful for movies which repeat
-                                     themselves.
-`-g'                                  Start Gnash with a Flash debugger
-                                     console so one can set break points
-                                     or watchpoints.
-`-x id'                               This specifies the X11 window ID
-                                     to display in; this is mainly used
-                                     by plugins.
-`-b bits'                             Bit depth of output window (for
-                                     example, 16 or 32). Appropriate bit
-                                     depths depend on the renderer and
-                                     GUI library used.
-`-u url'                              Set the _url member of the root
-                                     movie. This is useful when you
-                                     download a movie and play it from a
-                                     different location. See also the -U
-                                     switch.
-`-U baseurl'                          Set base URL for this run. URLs
-                                     are resolved relative to this base.
-                                     If omitted defaults to the _url
-                                     member of the top-level movie (see
-                                     the -u switch).
-`-P entrymeter'                       Parameters are given in
-                                     ParamName=Value syntax and are
-                                     mostly useful to the plugin to
-                                     honour EMBED tags attributes or
-                                     explicit OBJECT PARAM tags. A
-                                     common use for -P is to provide
-                                     FlashVars (ie: -P
-                                     "FlashVars=home=http://www.gnu.org";).
-`-F filedescriptor'                   Use the given filedescriptor to
-                                     send requests to the host
-                                     application. This is currently only
-                                     used for GETURL requests.  The
-                                     protocol is not documented yet, and
-                                     also needs improvement.  Primary
-                                     use for this switch is for the
-                                     NPAPI plugin to properly support
-                                     javascript and target windows in
-                                     geturl requests.
-
-
-File: gnash.info,  Node: Gnash Interactive Control Keys,  Next: User 
Configuration File,  Prev: Gnash Command Line Options,  Up: Using Gnash
-
-2.2 Gnash Interactive Control Keys
-==================================
-
-While a movie is playing, there are several control keys. These can be
-used to step through frames, pause the playing, and control other
-actions.
-
-
-
-   *Gnash Interactive Control Keys*
-
-Key Combination                      Function
-`CTRL-Q'                              Quit/Exit.
-`CTRL-W'                              Quit/Exit.
-`ESC'                                 Quit/Exit.
-`CTRL-P'                              Toggle Pause.
-`CTRL-R   '                           Restart the movie.
-`CTRL-[ or kp-'                       Step back one frame.
-`CTRL-] or kp+'                       Step forward one frame.
-`CTRL-L'                              Force immediate redraw.
-`CTRL-T'                              Debug.  Test the set_variable()
-                                     function.
-`CTRL-G'                              Debug.  Test the get_variable()
-                                     function.
-`CTRL-M'                              Debug.  Test the call_method()
-                                     function.
-`CTRL-B'                              Toggle the background color.
-
-
-File: gnash.info,  Node: User Configuration File,  Prev: Gnash Interactive 
Control Keys,  Up: Using Gnash
-
-2.3 User Configuration File
-===========================
-
-Individual user preferences may be set by editing variables with the
-`.gnashrc' file:
-
-
-     ~/.gnashrc
-
-   Each line must begin with an action: either _set_ or, in the case of
-lists, also _append_.
-
-   The values in this configuration file apply only to an individual
-user, and become the default settings of the standalone player and the
-plugin.  Note that any command line options take precedence over
-`.gnashrc' settings.
-
-   The variables in the `.gnashrc' file support three types of
-arguments: on/off, numeric values, or in the case of the whitelist and
-blacklist, a list of hostnames as ASCII text.
-
-
-
-   *User Configuration Variables*
-
-Variable                 Value                    Function
-localdomain              on/off                   This value can be set
-                                                  to either _on_ or
-                                                  _off_, and controls the
-                                                  loading of external
-                                                  Flash movies over a
-                                                  network. This option
-                                                  tells Gnash to only
-                                                  load Flash movies from
-                                                  the existing domain.
-localhost                on/off                   This value can be set
-                                                  to either _on_ or
-                                                  _off_, and controls the
-                                                  loading of external
-                                                  Flash movies over a
-                                                  network. This is a
-                                                  stricter version of the
-                                                  _localdomain_ setting as
-                                                  this allows the loading
-                                                  of Flash movies to the
-                                                  same host that is
-                                                  running Gnash.
-whitelist                hostnames                This is a list of
-                                                  hostnames separated by
-                                                  spaces, or _off_ to
-                                                  disable the whitelist.
-                                                  The hostname must be
-                                                  given without a
-                                                  protocol (http://,
-                                                  https://). If this list
-                                                  is populated, Gnash
-                                                  will only load external
-                                                  Flash movies from the
-                                                  specified hosts.  The
-                                                  whitelist takes
-                                                  precedence over the
-                                                  blacklist. Because
-                                                  several files can be
-                                                  parsed in succession,
-                                                  each file can override
-                                                  or add to lists in
-                                                  other files. Use _set_
-                                                  to override all other
-                                                  lists or _append_ to
-                                                  add your blacklisted
-                                                  hosts to lists in
-                                                  previously parsed files.
-blacklist                hostnames                This is a list of
-                                                  hostnames separated by
-                                                  spaces, or _off_ to
-                                                  disable the blacklist.
-                                                  The hostname must be
-                                                  given without a
-                                                  protocol (http://,
-                                                  https://).  External
-                                                  flash movies from these
-                                                  domains are never
-                                                  allowed to load. If
-                                                  whitelist is present
-                                                  and not empty,
-                                                  blacklist is not used.
-                                                  Because several files
-                                                  can be parsed in
-                                                  succession, each file
-                                                  can override or add to
-                                                  lists in other files.
-                                                  Use _set_ to override
-                                                  all other lists or
-                                                  _append_ to add your
-                                                  blacklisted hosts to
-                                                  lists in previously
-                                                  parsed files.
-localSandboxPath         dirs                     This is a list of
-                                                  directories separated
-                                                  by spaces.  Only
-                                                  resources from these
-                                                  directories and from
-                                                  the directory portion
-                                                  of movie filename (if
-                                                  loaded from filesystem)
-                                                  are allowed to load.
-                                                  Because several files
-                                                  can be parsed in
-                                                  succession, each file
-                                                  can override or add to
-                                                  lists in other files.
-                                                  Use _set_ to override
-                                                  all other lists or
-                                                  _append_ to add new
-                                                  sandboxes.  Note that
-                                                  there's currently no
-                                                  way to *drop* the
-                                                  directory of base dir
-                                                  from the list of
-                                                  allowed local sandboxes.
-delay                    Number                   Gnash uses a
-                                                  timer-based event
-                                                  mechanism to advance
-                                                  frames at a steady
-                                                  rate. This option
-                                                  overrides the default
-                                                  setting in Gnash to
-                                                  play a movie slower or
-                                                  faster.
-verbosity                Number                   This is a numeric value
-                                                  which defines the
-                                                  default level of
-                                                  verbosity from the
-                                                  player.
-MalformedSWFVerbosity    on/off                   This value can be set
-                                                  to either _on_ or
-                                                  _off_, and controls
-                                                  whether malformed SWF
-                                                  errors should be
-                                                  printed. If set to
-                                                  true, verbosity level
-                                                  is automatically
-                                                  incremented.  Set
-                                                  `verbosity' to 0
-                                                  afterwards to hush.
-ASCodingErrorsVerbosity  on/off                   This value can be set
-                                                  to either _on_ or
-                                                  _off_, and controls
-                                                  whether ActionScript
-                                                  coding errors should be
-                                                  printed. If set to
-                                                  true, verbosity level is
-                                                  automatically
-                                                  incremented.  Set
-                                                  `verbosity' to 0
-                                                  afterwards to hush.
-debuglog                 Absolute path            This is the full path
-                                                  and name of debug
-                                                  logfile as produced by
-                                                  Gnash. On systems with
-                                                  a UNIX-type shell, a
-                                                  tilde prefix (~) will
-                                                  be expanded as by Posix
-                                                  shell requirements (see
-                                                  
http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_01).
-writelog                 on/off                   This value can be set
-                                                  to either _on_ or
-                                                  _off_, and controls
-                                                  whether a debug log is
-                                                  always written by
-                                                  Gnash, or not at all.
-sound                    on/off                   This value can be set
-                                                  to either _on_ or
-                                                  _off_, and controls the
-                                                  sound of the standalone
-                                                  player. By default
-                                                  Gnash enables playing
-                                                  the sound in any Flash
-                                                  movie.
-pluginsound              on/off                   This value can be set
-                                                  to either _on_ or
-                                                  _off_, and controls the
-                                                  sound of the player
-                                                  when running as a
-                                                  browser plugin. By
-                                                  default, sound is
-                                                  enabled when using
-                                                  Gnash as a browser
-                                                  plugin.
-EnableExtensions         on/off                   Set to _on_ to enable
-                                                  extensions. This option
-                                                  is _off_ by default
-StartStopped             on/off                   Set to _on_ to have the
-                                                  GUI start in "stop"
-                                                  mode. This is useful in
-                                                  particular for the
-                                                  plugin, so you have to
-                                                  explicitly start any
-                                                  movie on a webpage.
-                                                  This option is _off_ by
-                                                  default.
-flashVersionString       string                   Set the string returned
-                                                  by $version and
-                                                  System.capabilities.version.
-                                                  Useful to get around
-                                                  some flash version
-                                                  detection movies.  Note
-                                                  that the version
-                                                  advertised by the
-                                                  plugin is NOT affected
-                                                  by this setting,
-                                                  instead you need to set
-                                                  the GNASH_FLASH_VERSION
-                                                  environment variable for
-                                                  the latter (which
-                                                  doesn't affect $version
-                                                  and
-                                                  System.capabilities.version).
-flashSystemOS            string                   The string that Gnash
-                                                  should return for
-                                                  System.capabilities.OS
-flashSystemManufacturer  string                   The string that Gnash
-                                                  should return for
-                                                  
System.capabilities.manufacturer
-StreamsTimeout           double                    Set the number of
-                                                  seconds after which
-                                                  streams download time
-                                                  out. Note that timeouts
-                                                  only occurs after the
-                                                  given number of seconds
-                                                  passed w/out anything
-                                                  was received.
-insecureSSL              on/off                   If set to _on_, no
-                                                  verification of SSL
-                                                  connections is
-                                                  performed. This means
-                                                  that, although the
-                                                  connection is
-                                                  encrypted, the server
-                                                  certificate could be
-                                                  invalid, may not belong
-                                                  to the host, or both.
-                                                  Equivalent to curl
-                                                  -insecure. By default,
-                                                  this option is _off_ and
-                                                  connections will fail
-                                                  when a host cannot be
-                                                  verified.
-SOLsafedir               Absolute path            The full path to a
-                                                  directory where Gnash
-                                                  should store Shared
-                                                  Object files ("flash
-                                                  cookies") if they are
-                                                  enabled.
-SOLreadonly              on/off                   If set to _on_, Gnash
-                                                  will not write Shared
-                                                  Object files.
-URLOpenerFormat          string                    Set the format of an
-                                                  url opener command. The
-                                                  %u label would be
-                                                  substituted by the
-                                                  actual url to be opened.
-                                                  Examples: ?
-                                                  [undisplayable block
-                                                  object]
-
-   The following example `.gnashrc' file allows a user to only play
-Flash files saved locally to the machine on which Gnash is running.  It
-also specifically forbids content from doubleclick.com and
-mochibot.com.  Gnash's error output is set to be fairly verbose, with
-the debug log placed in a location convenient for the user.  Finally,
-sound is turned on for both the standalone player and the plugin.
-
-
-
-         #
-         # Gnash client options
-         #
-
-         # Only access remote content from our local domain
-         set localdomain on
-
-         # Only access content from our local host
-         set localhost on
-
-         # These sites are OK
-         # uncommenting the following line will allow load of external
-         # movies *only* from the specified hosts.
-         #set whitelist www.doonesbury.com www.cnn.com www.9news.com
-
-         # Disable whitelists set in any other gnashrc files, because
-         # these could override our blacklist.
-         set whitelist off
-
-         # Don't access content from these sites
-         set blacklist www.doubleclick.com mochibot.com
-
-         # The delay between timer interrupts
-         set delay 50
-
-         # The default verbosity level
-         set verbosity 1
-
-         # Be verbose about malformed SWF
-         set MalformedSWFVerbosity true
-
-         # Be verbose about AS coding errors
-         set ASCodingErrorsVerbosity true
-
-         # The full path to the debug log
-         set debuglog ~/gnash-dbg.log
-
-         # Write a debug log to disk
-         set writelog on
-
-         # Enable or Disable sound for the standalone player
-         set sound on
-
-         # Enable or Disable sound for the standalone player
-         set pluginsound on
-
-         # Make sure SSL connections are always verified
-         set insecureSSL off
-
-         # Use firefox to open urls
-         set urlOpenerFormat firefox -remote 'openurl(%u)'
-
-
-File: gnash.info,  Node: Installing and Configuring Gnash,  Next: Reporting 
Bugs,  Prev: Using Gnash,  Up: Top
-
-3 Installing and Configuring Gnash
-**********************************
-
-There are two ways of installing Gnash: using a package manager (*note
-Using a Package Manager::) or installing from source (*note Getting the
-Source::).
-
-* Menu:
-
-* Requirements::
-* Downloading Gnash::
-* Pre-Compile Configuration::
-* Building from Source::
-* Installation::
-
-
-File: gnash.info,  Node: Requirements,  Next: Downloading Gnash,  Up: 
Installing and Configuring Gnash
-
-3.1 Requirements
-================
-
-Before downloading and installing Gnash, check that your hardware and
-software meet the following requirements.
-
-* Menu:
-
-* Hardware Requirements::
-* Software Requirements::
-
-
-File: gnash.info,  Node: Hardware Requirements,  Next: Software Requirements,  
Up: Requirements
-
-3.1.1 Hardware Requirements
----------------------------
-
-One of the goals of Gnash is to make it portable enough to install on
-small devices.  As a result, the hardware requirements are minimal.
-Gnash has even run on an ARM9 at 200 MHz with 64 MB of RAM!  (It ran
-without video support in this case.)   While firm minimums have not
-been established, Gnash has been shown to run successfully with the
-following:
-
-   * 336 MHz processor
-
-   * 256 MB RAM
-
-   * Video -- Gnash will run on anything from a raw frame buffer up to
-     an OpenGL-supporting graphics card.
-
-   The following table provides a list of the Operating System/CPU
-combinations on which Gnash has been shown to run.
-
-
-
-   *Build Matrix*
-
-Render GUI                           Virtual Memory
-OpenBSD, FreeBSD, NetBSD             Alpha AXP, AMD64, i386, Itanium,
-                                     PC-98, PowerPC, SPARC64
-ALTLinux                             i586
-Arklinux                             i586
-Debian                               Alpha AXP, AMD64, ARM, hppa, i386,
-                                     Itanium, MIPS, PowerPC, IBM zSeries
-                                     (s390), SPARC
-Fedora                               x86-32, x86-64, Geode GX, Geode LX
-Gentoo                               AMD64, PowerPC, SPARC, x86
-Maemo 2.1                            i385, ARMv5t
-Scratchbox                           i386, ARMv5t
-Access Linux Platform                i386, ARMv5t
-Mandriva                             i386
-Open Embedded                        ARM
-YellowDog Linux 6                    PowerPC, PS3
-OpenSuSE 10                          i586, x86-64
-Red Hat Enterprise and CentOS        x86-32, x86-64
-Ubuntu                               x86-64, x86-32, PowerPC, UltraSPARC
-Haiku                                i386
-Irix 6.5                             MIPS R10K
-Darwin (MacOS X)                     PowerPC and x86-32
-NetBSD                               many, including VAX
-OpenBSD                              many, including VAX, OS/2 and
-                                     eComstation
-Windows                              x86-32
-
-
-File: gnash.info,  Node: Software Requirements,  Prev: Hardware Requirements,  
Up: Requirements
-
-3.1.2 Software Requirements
----------------------------
-
-The 0.8.2 release of Gnash has been designed to run on UNIX/Linux
-variants, and has been run on most of the free ones.  However, Gnash
-has successfully run on Windows, Darwin (Mac OS X), Irix, Solaris,
-BeOs, OS/2, and Haiku.  Gnash has also run on the following 64-bit
-systems: PowerPC, Itanium, UltraSparc, and AMD64.  For now, it is
-important to be sure that the following code, testing, and
-documentation dependencies are met before installing Gnash.  If you
-will be downloading Gnash with a package manager, these dependencies
-may be solved by the package manager.  Otherwise, you must first verify
-that each of these dependencies are installed on the target system.
-
-* Menu:
-
-* Code Dependencies::
-* Testing Dependencies::
-* Documentation Dependencies::
-
-
-File: gnash.info,  Node: Code Dependencies,  Next: Testing Dependencies,  Up: 
Software Requirements
-
-3.1.2.1 Code Dependencies
-.........................
-
-Gnash has a number of dependencies on other packages.  If you install
-the dependencies using a package manager, be certain to install the
-development versions of the packages.  The normal versions are often
-missing the headers Gnash needs to compile.
-
-     *Note*
-
-     If you want to install the Gnash plugin for one of the browsers
-     listed in the *Note Introduction::, be sure to install the
-     development package for that browser before configuring.  The
-     Gnash `configure' script searches for the devel packages before
-     building the plugin.
-
-
-   *Code Dependency Table*
-
-Name       Level      Version    DescriptionExplanationapt-get    RPM/Yum
-                                                       package    package
-Boost      Required   1.32 or     Boost is  In Gnash,  `libboost-thread-dev,`
-                      higher     a library  Boost      
libboost-date-time-devliboost-thread-dev,
-                                 of         libraries  '          
libboost-date-time
-                                 portable   are used              '
-                                 C++        extensively,           
-                                 classes    primarily             
-                                 and        boost-gthread           
-                                 templates. and                   
-                                            boost-date-time.           
-libxml2    Required               Libxml2   This       
`libxml2-dev'`libxml2-devel'
-                                 is the     library               
-                                 GNOME XML  is used               
-                                 parser     to parse              
-                                 library    messages              
-                                 and is     in the                
-                                 available  XML or                
-                                 at         XMLSocket             
-                                 http://xmlsoft.orgActionScript           
-                                 (http://xmlsoft.org).classes.              
-AGG        Possibly   2.4 or      AGG is    Gnash      `libagg-dev'`agg-devel'
-           Required   higher     the        requires              
-                                 AntiGrain  the                   
-                                 low-level  installation           
-                                 2D         of at                 
-                                 graphics   least one             
-                                 library.   renderer.             
-                                            AGG is                
-                                            considered            
-                                            the _best             
-                                            supported_            
-                                            renderer              
-                                            for Gnash.            
-OpenGL     Possibly               OpenGL    Gnash      
`libgl1-mesa-dev'`libmesa-devel'
-           Required              is a       requires              
-                                 standard   the                   
-                                 specificationinstallation           
-                                 defining a of at                 
-                                 cross-languageleast one             
-                                 cross-platformrenderer.             
-                                 API for                          
-                                 writing                          
-                                 applications                      
-                                 which                            
-                                 produce                          
-                                 3D and 2D                        
-                                 graphics.                        
-                                 It                               
-                                 supports                         
-                                 hardware                         
-                                 acceleration.                      
-                                 You can                          
-                                 download                         
-                                 a free                           
-                                 implementation                      
-                                 from                             
-                                 http://www.mesa3d.org                      
-                                 (http://www.mesa3d.org).                      
-Cairo      Possibly               Cairo is  Gnash      
`libcairo2-dev'`cairo-devel'
-           Required              a 2D       requires              
-                                 graphics   the                   
-                                 library    installation           
-                                 with       of at                 
-                                 support    least one             
-                                 for        renderer.             
-                                 multiple   Cairo is              
-                                 output     considered            
-                                 devices.   the                   
-                                 It will    _least                
-                                 automaticallysupported_            
-                                 use        renderer              
-                                 graphic    for Gnash.            
-                                 card                             
-                                 acceleration                      
-                                 when                             
-                                 available,                       
-                                 and has                          
-                                 an                               
-                                 experimental                      
-                                 OpenGL                           
-                                 backend.                         
-GTK        Possibly   2.2 or      GTK is    Gnash      
`libgtk2.0-dev'`gtk-devel'
-           Required   higher     the GIMP   requires              
-                                 Toolkit    the                   
-                                 GUI        installation           
-                                 library.   of at                 
-                                 It uses    least one             
-                                 Cairo      GUI                   
-                                 internally.library.              
-                                            GTK is                
-                                            considered            
-                                            to be the             
-                                            _best                 
-                                            supported_            
-                                            GUI                   
-                                            library               
-                                            option                
-                                            for Gnash.            
-GtkGlExt   Possibly               GtkGlExt  This       
`libgtkglext1-dev'`gtkglext-devel'
-           Required              integrates library               
-                                 OpenGL     is                    
-                                 into GTK.  required              
-                                            in order              
-                                            to use                
-                                            the GTK               
-                                            GUI                   
-                                            library               
-                                            in                    
-                                            conjunction           
-                                            with the              
-                                            OpenGL                
-                                            renderer.             
-SDL        Possibly               The       Gnash      
`libsdl1.2-dev'`SDL-devel'
-           Required              Simple     requires              
-                                 DirectMediathe                   
-                                 Layer is   installation           
-                                 a          of at                 
-                                 cross-platformleast one             
-                                 multimedia GUI                   
-                                 library    library.              
-                                 which      SDL may               
-                                 provides   also be               
-                                 abstractionused as a             
-                                 for        sound                 
-                                 audio,     handler               
-                                 graphics,  regardless            
-                                 sound and  of                    
-                                 input      whether               
-                                 APIs.      it is                 
-                                 SDL is     employed              
-                                 available  as a GUI              
-                                 from       library.              
-                                 http://www.libsdl.orgThe GUI               
-                                 (http://www.libsdl.org).library               
-                                            is                    
-                                            _poorly               
-                                            supported_            
-                                            in Gnash,             
-                                            but the               
-                                            sound                 
-                                            handler               
-                                            is the                
-                                            _best                 
-                                            supported_            
-                                            in Gnash.             
-FLTK       Possibly   2.0 or      The Fast  Gnash      No         No
-           Required   higher     Light      requires   distributiondistribution
-                                 ToolKit    the        packages   packages
-                                 is a       installationare        are
-                                 portable   of at      available. available.
-                                 GUI        least one             
-                                 library    GUI                   
-                                 which is   library.              
-                                 intended   FLTK may              
-                                 as a       be used               
-                                 replacementin                    
-                                 for the    conjunction           
-                                 SDL GUI.   with the              
-                                            Cairo and             
-                                            AGG                   
-                                            renderers.            
-KDE        Possibly               Kdelibs   Gnash      
`kdelibs4-dev'`kdelibs-devel'
-           Required              is a       requires              
-                                 collection the                   
-                                 of         installation           
-                                 libraries  of at                 
-                                 needed to  least one             
-                                 compile    GUI                   
-                                 KDE        library.              
-                                 applications.Kdelibs               
-                                            is also               
-                                            required              
-                                            for the               
-                                            Kpart                 
-                                            plugin                
-                                            for                   
-                                            Konqueror.            
-Gstreamer  Optional               Gstreamer If you     
`libgstreamer0.8-dev'`gstreamer-devel'
-                                 is a       would                 
-                                 video      like                  
-                                 handler.   video                 
-                                            playback,             
-                                            you must              
-                                            install               
-                                            one of                
-                                            the video             
-                                            handlers.             
-gst-ffmpeg Possibly               gst-ffmpegThis       
`gstreamer0.8-ffmpeg-dev'`gstreamer-ffmpeg-devel'
-           Required              allows     package               
-                                 you to     is                    
-                                 use the    required              
-                                 FFMPEG     if you                
-                                 decoder    would                 
-                                 with       like to               
-                                 Gstreamer. use                   
-                                            Gstreamer             
-                                            as a                  
-                                            video                 
-                                            handler.              
-FFMPEG     Possibly               FFMPEG    If you     
`ffmpeg-dev'`ffmpeg-devel'
-           Required              is a       would                 
-                                 video      like                  
-                                 handler.   video                 
-                                            playback,             
-                                            you must              
-                                            install               
-                                            one of                
-                                            the video             
-                                            handlers.             
-                                            It is                 
-                                            also a                
-                                            dependency            
-                                            of                    
-                                            gst-ffmpeg.           
-JPEG       Optional              JPEG       This       `libjpeg62-dev'`libjpeg'
-                                 (http://www.ijg.org/)library               
-                                 is a       is used               
-                                 lossy      for                   
-                                 image      rendering             
-                                 format     JPEGs.                
-                                 which is                         
-                                 heavily                          
-                                 used for                         
-                                 images.                          
-PNG        Optional              PNG        This       `libpng12-dev'`libpng'
-                                 (http://www.libpng.org/pub/png/)library       
        
-                                 is a       is used               
-                                 patent-freefor                   
-                                 image      rendering             
-                                 format     PNGs.                 
-                                 which is                         
-                                 comparable                       
-                                 to _GIF_.                        
-libcurl    Optional               libcurl   This       
`libcurl4-gnutls'`libcurl'
-                                 is the     library               
-                                 multiprotocalis used               
-                                 file       for URL               
-                                 transfer   downloading.           
-                                 library.                         
-automake   Possibly   1.6.0       Automake  This       `automake' `automake'
-           Required              is a tool  package               
-                                 for        is                    
-                                 generating required              
-                                 _Makefile.in_to run                
-                                 files.     _autogen.sh_,           
-                                            which is              
-                                            a                     
-                                            requirement           
-                                            if you                
-                                            are using             
-                                            the                   
-                                            development           
-                                            source                
-                                            from CVS.             
-autoconf   Possibly   2.59        Autoconf  This       `autoconf' `autoconf'
-           Required              is a       package               
-                                 package    is                    
-                                 for        required              
-                                 generating to run                
-                                 configure  _autogen.sh_,           
-                                 scripts.   which is              
-                                            a                     
-                                            requirement           
-                                            if you                
-                                            are using             
-                                            the                   
-                                            development           
-                                            source                
-                                            from CVS.             
-gettext    Possibly   0.14.6      Gettext   This       `gettext'  `gettext'
-           Required              is part    package               
-                                 of the     is                    
-                                 GNU        required              
-                                 Translationto run                
-                                 Project.   _autogen.sh_,           
-                                            which is              
-                                            a                     
-                                            requirement           
-                                            if you                
-                                            are using             
-                                            the                   
-                                            development           
-                                            source                
-                                            from CVS.             
-libtool    Possibly   1.5.22      This is   This       `libltdl3-dev'`libtool'
-           Required              a generic  package               
-                                 library    is                    
-                                 support    required              
-                                 script.    to run                
-                                            _autogen.sh_,           
-                                            which is              
-                                            a                     
-                                            requirement           
-                                            if you                
-                                            are using             
-                                            the                   
-                                            development           
-                                            source                
-                                            from CVS.             
-
-
-File: gnash.info,  Node: Testing Dependencies,  Next: Documentation 
Dependencies,  Prev: Code Dependencies,  Up: Software Requirements
-
-3.1.2.2 Testing Dependencies
-............................
-
-Gnash tries to run as many tests as possible, but will simply skip
-tests if the tools to run them are unavailable.
-
-
-
-   *Testing Dependency Table*
-
-Name       Level      Version    DescriptionExplanationapt-get    RPM/Yum
-                                                       package    package
-Ming       Optional   0.4.0_beta4 Ming is   Ming is    No         No
-                      or higher  an         the        distributiondistribution
-                                 ActionScriptprimary    packages   packages
-                                 compiler.  compiler   are        are
-                                            for        available. available.
-                                            ActionScript           
-                                            testcases.            
-Mtasc      Optional               Mtasc is  Mtasc is   `mtasc'    No
-                                 an         used in               distribution
-                                 ActionScriptsome                  packages
-                                 compiler.  tests.                are
-                                                                  available.
-swfdec     Optional               Swfdec    Swfdec is  No         Unofficial
-                                 is a       used in    distributionpackage
-                                 Flash      some       packages   `swfdec'
-                                 player.    testcases. are        
-                                                       available. 
-DejaGnu    Optional               DejaGnu   DejaGnu    `dejagnu'  `dejagnu'
-                                 is a       is used               
-                                 testing    to run                
-                                 framework. multiple              
-                                            tests in              
-                                            an                    
-                                            automated             
-                                            fashion.              
-
-
-File: gnash.info,  Node: Documentation Dependencies,  Prev: Testing 
Dependencies,  Up: Software Requirements
-
-3.1.2.3 Documentation Dependencies
-..................................
-
-The following packages are used to build Gnash's documentation.
-
-
-
-   *Documentation Dependency Table*
-
-Name       Level      Version    DescriptionExplanationapt-get    RPM/Yum
-                                                       package    package
-Docbook    Required              Docbook    Gnash      
`docbook-utils'`docbook-dtd41-sgml'
-                                 
(http://http://docbook.sourceforge.net/)documentationand        and
-                                 is is an   is         
`docbook-dsssl'`docbook-style-dsssl'
-                                 industry-standardwritten               
-                                 XML        in                    
-                                 format     Docbook.              
-                                 for                              
-                                 technical                        
-                                 documentation.                      
-                                 You can                          
-                                 download                         
-                                 it from                          
-                                 
http://sourceforge.net/project/showfiles.php?group_id=21935#files               
       
-                                 
(http://sourceforge.net/project/showfiles.php?group_id=21935#files).            
          
-DocBook2X  Optional               This      DocBook2X  `docbook2x'`docbook2x'
-                                 software   is                    
-                                 package    required              
-                                 converts   to                    
-                                 Docbook    produce               
-                                 documents  HTML and              
-                                 to the     Texinfo               
-                                 traditionalformats.              
-                                 man page                         
-                                 format,                          
-                                 GNU                              
-                                 Texinfo                          
-                                 format,                          
-                                 and HTML                         
-                                 (via                             
-                                 Texinfo)                         
-                                 format.                          
-                                 It is                            
-                                 available                        
-                                 at                               
-                                 http://docbook2x.sourceforge.net/             
         
-                                 (http://docbook2x.sourceforge.net/).          
            
-Texinfo    Possibly               Texinfo   Texinfo    `texinfo'  `texinfo'
-           Required              can be     is                    
-                                 used to    required              
-                                 convert    if you                
-                                 DocBook2X  wish to               
-                                 output     product               
-                                 into GNU   GNU info              
-                                 info       pages.                
-                                 pages.                           
-                                 You can                          
-                                 download                         
-                                 it from                          
-                                 http://ftp.gnu.org/gnu/texinfo/               
       
-                                 (http://ftp.gnu.org/gnu/texinfo/).            
          
-FOP        Optional   0.20.5      FormattingFOP is     `fop'      `fop'
-                                 Objects    required              
-                                 Processor  for PDF               
-                                 is a       output.               
-                                 print                            
-                                 formatter                        
-                                 driven by                        
-                                 XSL                              
-                                 formatting                       
-                                 objects.                         
-                                 It is a                          
-                                 Java                             
-                                 application                      
-                                 which can                        
-                                 output                           
-                                 PDF, PCL,                        
-                                 PS, SVG,                         
-                                 XML,                             
-                                 Print,                           
-                                 AWT, MIF,                        
-                                 and Text.                        
-                                 It is                            
-                                 available                        
-                                 at                               
-                                 http://xmlgraphics.apache.org/fop/            
          
-                                 (http://xmlgraphics.apache.org/fop/).         
             
-Java       Possibly               FOP       Sun's      Download   Download
-(j2re)     Required              requires   Java       the        the
-                                 Sun's      runtime    package    package
-                                 Java       (j2re) is  from Sun   from Sun
-                                 runtime    required   
(http://java.sun.com).(http://java.sun.com).
-                                 (GCJ does  to use                
-                                 not work   FOP.                  
-                                 with                             
-                                 FOP).                            
-                                 You can                          
-                                 download                         
-                                 it from                          
-                                 http://java.sun.com                      
-                                 (http://java.sun.com).                      
-JAI        Possibly               Sun's     JAI is     Download   Download
-           Required              Java       required   the        the
-                                 Advanced   if you     package    package
-                                 Imaging    wish to    from Sun   from Sun
-                                 API can    include    
(http://java.sun.com/products/java-media/jai/iio.html).(http://java.sun.com/products/java-media/jai/iio.html).
-                                 be         graphics              
-                                 downloaded in a PDF              
-                                 from       file being            
-                                 
http://java.sun.com/products/java-media/jai/iio.htmlgenerated             
-                                 
(http://java.sun.com/products/java-media/jai/iio.html).with FOP.             
-
-   If you install j2re, set the _JAVA_HOME_ environment variable to the
-top directory of the j2re installation.  If you encounter problems with
-the Java installation, you may also need to add this path to the
-_CLASSPATH_ environment variable.
-
-
-File: gnash.info,  Node: Downloading Gnash,  Next: Pre-Compile Configuration,  
Prev: Requirements,  Up: Installing and Configuring Gnash
-
-3.2 Downloading Gnash
-=====================
-
-There are two ways to download Gnash: using a package manager or by
-downloading the source code and building it on your system. If
-possible, it is advisable to use a package manager to download Gnash,
-as it will resolve dependencies for you.  However, if you want the very
-latest features, or a Gnash package is not available for your operating
-system, it is better to download the source code and build Gnash
-locally.
-
-* Menu:
-
-* Using a Package Manager::
-* Getting the Source::
-
-
-File: gnash.info,  Node: Using a Package Manager,  Next: Getting the Source,  
Up: Downloading Gnash
-
-3.2.1 Using a Package Manager
------------------------------
-
-Gnash is available as a package for a number of Linux and BSD
-distributions, such as Ubuntu
-(http://packages.ubuntu.com/feisty/utils/gnash), Debian
-(http://packages.debian.org/unstable/utils/gnash), FreeBSD
-(http://www.freshports.org/graphics/gnash/), and OpenBSD
-(http://ports.openbsd.nu/www/gnash).  There is also an unofficial
-Fedora RPM.  This is not an extensive list, and you are advised to
-search if you wish to use a package manager on a different system.
-
-
-File: gnash.info,  Node: Getting the Source,  Prev: Using a Package Manager,  
Up: Downloading Gnash
-
-3.2.2 Getting the Source
-------------------------
-
-Gnash is available as a release tarball (*note Releases::), a
-development checkout (*note Repository::), or a development snapshot
-(*note Snapshot::).
-
-* Menu:
-
-* Releases::
-* Repository::
-* Snapshot::
-
-
-File: gnash.info,  Node: Releases,  Next: Repository,  Up: Getting the Source
-
-3.2.2.1 Releases
-................
-
-The source can be acquired from a GNU FTP Mirror
-(http://www.gnu.org/prep/ftp.html).  The release version is intended to
-be stable, and is probably your best choice if the release took place
-recently.  If you need features or fixes which were introduced after
-the release, consider a CVS checkout (*note Repository::) or the daily
-snapshot (*note Snapshot::).
-
-   To download, select a mirror near you, then choose the `gnash'
-directory.
-
-
-File: gnash.info,  Node: Repository,  Next: Snapshot,  Prev: Releases,  Up: 
Getting the Source
-
-3.2.2.2 Repository
-..................
-
-The latest development sources are available via anonymous CVS.  This
-is recommended if you need features or bug fixes which were introduced
-after the last release (*note Releases::).  Look at the daily snapshot
-(*note Snapshot::) if you experience difficulty accessing the
-repository.
-
-   To download via anonymous CVS, first set the environment variable
-`CVS_RSH' to `ssh', then check out the source code.  The example below
-uses the GNU Bourne-Again shell (bash):
-
-
-           export CVS_RSH="ssh"
-           cvs -z3 -d:pserver:address@hidden:/sources/gnash co gnash
-
-   It is also possible to browse the repository
-`http://cvs.savannah.gnu.org/viewcvs/gnash/?root=gnash' on the web.
-
-
-File: gnash.info,  Node: Snapshot,  Prev: Repository,  Up: Getting the Source
-
-3.2.2.3 Snapshot
-................
-
-The daily development snapshot can be downloaded from
-http://www.gnashdev.org/dev_snapshots/
-(http://www.gnashdev.org/dev_snapshots/).  This is the best option if
-you need changes which were introduced after the last release (*note
-Releases::) of Gnash, but are unable to download directly from the
-repository. (*note Repository::)
-
-
-File: gnash.info,  Node: Pre-Compile Configuration,  Next: Building from 
Source,  Prev: Downloading Gnash,  Up: Installing and Configuring Gnash
-
-3.3 Pre-Compile Configuration
-=============================
-
-Gnash, like most GNU projects, allows a user to select various options
-before compiling its source code. These options include selecting from
-the available features, specifying custom paths for installation, and
-cross compiling.  Gnash uses GNU Autoconf
-(http://www.gnu.org/software/autoconf/) for configuration.
-
-   If you opted to download the development checkout (*note
-Repository::) of Gnash, the _configure_ script will not be included.
-It can be created by running _autogen.sh_ from the source root
-directory:
-
-
-       ./autogen.sh
-
-Note that there are some dependencies (*note Code Dependencies::) for
-autogen.
-
-   All the standard `configure' options are available.  In addition,
-Gnash has two types of options: those that enable or disable features
-(*note Features::), and those that specify custom paths for development
-packages (*note Specifying Custom Paths::) which are not found during
-the default search.  A complete list of _all_ configuration options,
-including standard ones, can be seen by typing:
-
-
-       ./configure --help |less
-
-Read further for a more detailed explanation of Gnash-specific options.
-
-   The syntax for running _configure_ is as follows:
-
-
-       configure <options>
-
-The example below shows the `configure' options which create the
-smallest working standalone version of Gnash.  In this example,
-`configure' is being run from the source root directory:
-
-
-     ./configure --disable-debugger --disable-cygnal --disable-docbook \
-     --disable-plugin --enable-media=ffmpeg --enable-gui=sdl
-
-* Menu:
-
-* Features::
-* Specifying Custom Paths::
-* Cross Compiling::
-
-
-File: gnash.info,  Node: Features,  Next: Specifying Custom Paths,  Up: 
Pre-Compile Configuration
-
-3.3.1 Features
---------------
-
-Some switches can be used during configuration to enable or disable
-features of Gnash. Some of the most important configuration options are:
-
-   * `--enable-gui' lets you specify your GUI of choice.  The default
-     option is GTK.
-
-   * `--enable-renderer' allows a renderer to be chosen.  The default
-     renderer is OpenGL.
-
-   * `--enable-media' permits a media handler to be selected.  The
-     default is Gstreamer.
-
-   A complete list of available features follows.
-
-
-
-   *Configuration Options - Features*
-
-Option                               Function
-`--enable-debugger'                  Enable support for the Flash
-                                     debugger. The debugger is mainly of
-                                     interest to Flash developers.
-`--enable-dmalloc'                   Enable support for the DMalloc
-                                     memory debugging tool.
-`--enable-docbook'                   Enable the generation of HTML and
-                                     PDF versions of the documentation
-                                     from the XML. You will then be able
-                                     to use `make html' and `make pdf'.
-`--enable-embedded'                  Link to Qt-embedded, do not use X.
-                                     This is only used by Klash
-`--disable-fork'                     Disable the plugin from forking the
-                                     standalone player, and using a
-                                     thread for the player instead.
-                                     Currently forking the standalone
-                                     player gives you the best results.
-`--enable-ghelp'                     Enable support for the GNOME help
-                                     system.
-`--disable-glext'                    Disable using GtkGlExt, which
-                                     forces the use of SDL instead. By
-                                     default if the GtkGL extension for
-                                     Gtk is found by the configure
-                                     script, the GTK-enabled GUI is
-                                     built.
-`--enable-gui=gtk|sdl|kde|fltk|fb'   Select the Graphic User Interface
-                                     to use (choose one).?
-                                     [undisplayable block object]
-`--enable-i810-lod-bias'             Enable fix for Intel 810 LOD bias
-                                     problem. Older versions of libMesa
-                                     on the Intel i810 or i815 graphics
-                                     processor need this flag or Gnash
-                                     will core dump. This has been fixed
-                                     in newer versions (summer 2005) of
-                                     libMesa.
-`--enable-libsuffix'                 `/lib' directory suffix
-                                     (64,32,none=default). This is only
-                                     used by Klash.
-`--enable-mac'                       Link to Qt/Mac (don't use X). This
-                                     is only used by Klash.
-`--enable-media=ffmpeg|gst|none'      Select the specified media decoder
-                                     and sound engine.  FFMPEG uses the
-                                     SDL sound engine; GST uses its own.
-                                     `GST' is the default decoder.  ?
-                                     [undisplayable block object] You
-                                     should only select one media
-                                     decoder.
-`--disable-nsapi'`--enable-nsapi'    Force disable/enable building the
-                                     NPAPI plugin.  By default the
-                                     Mozilla plugin is built if the GTK
-                                     gui is selected.  Specify the
-                                     `--with-npapi-plugindir=' option to
-                                     specify where the plugin should be
-                                     installed.
-`--disable-kparts'`--enable-kparts'  Force disable/enable building the
-                                     KPARTS plugin. By default the KDE
-                                     plugin is built if the kde gui is
-                                     selected.  Specify the
-                                     `--with-kde-plugindir=' and
-                                     `--with-kde-servicesdir=' options
-                                     (or more generally the
-                                     `--with-kde-pluginprefix=' one) to
-                                     specify where the plugin should be
-                                     installed. The default installation
-                                     dir is extracted from kde-config.
-`--disable-plugins'                  Disable build of both kparts and
-                                     npapi plugins
-`--enable-qtopia'                    Link to Qt-embedded, link to the
-                                     Qtopia Environment. This is only
-                                     used by Klash.
-`--enable-renderer=opengl|cairo|agg' Enable support for the a graphics
-                                     backend. Currently only `opengl' and
-                                     `agg' work sufficiently. OpenGL is
-                                     used when you have hardware
-                                     accelerated graphics. AGG i used
-                                     when you do not have hardware
-                                     accelerated graphics. Typically
-                                     most desktop machines have OpenGL
-                                     support, and most embedded systems
-                                     do not. OpenGl is the default when
-                                     building Gnash, although the
-                                     quality of AGG's rendering is
-                                     currently superior to OpenGL.
-`--enable-sdk-install'               Enable installing the libraries and
-                                     headers as an SDK.
-`--disable-shared'                   Enable installing the shared
-                                     libraries and headers.  Note that
-                                     the extensions mechanism may not
-                                     work if shared libraries are
-                                     disabled.
-`--enable-strict'                    Turn verbose GCC compiler warnings.
-                                     By default only `-Wall' is used
-                                     with GCC.
-`--enable-fps-debug'                 Enable FPS debugging code. When
-                                     this feature is compiled in you can
-                                     use the -f switch of Gnash to have
-                                     FPS printed at regular intervals.
-`--enable-write'                     Makes the Mozilla plugin write the
-                                     currently playing SWF movie to
-                                     `/tmp'.
-`--disable-mit-shm'                  Disable support for the MIT-SHM X
-                                     extensions.  Currently support is
-                                     only available using GTK gui and
-                                     AGG renderer.  Keeping it enabled
-                                     is not a problem as it will not be
-                                     used if not available in the
-                                     current X session.
-
-
-File: gnash.info,  Node: Specifying Custom Paths,  Next: Cross Compiling,  
Prev: Features,  Up: Pre-Compile Configuration
-
-3.3.2 Specifying Custom Paths
------------------------------
-
-By default, none of these options should be required unless you want
-Gnash to use a specific version of a development package, or if the
-configure test fails to find a component.  Please report the problem
-(*note Reporting Bugs::) if a configure test fails.
-
-   The following custom path options are available:
-
-
-
-   *Custom Path Options*
-
-Option                               Function
-`--x-includes=DIR'                    X include files are in DIR.
-`--x-libraries=DIR'                   X library files are in DIR.
-`--with-libxml=PFX'                   Prefix to where libxml is
-                                     installed.
-`--with-libxml-libraries=DIR'         Directory where libxml library is
-                                     installed.
-`--with-libxml-includes=DIR'          Directory where libxml header
-                                     files are installed.
-`--with-docbook=DIR'                  Directory where the DocBook
-                                     style-sheets are installed.
-`--with-sdl-prefix=PFX'               Prefix where SDL is installed.
-`--with-zlib-incl'                    Directory where zlib header is
-                                     installed.
-`--with-zlib-lib'                     Directory where zlib library is
-                                     installed.
-`--with-jpeg-incl'                    Directory where jpeg header is
-                                     installed.
-`--with-jpeg-lib'                     Directory where jpeg library is
-                                     installed.
-`--with-png-incl'                     Directory where png header is
-                                     installed.
-`--with-png-lib'                      Directory where png library is
-                                     installed.
-`--with-qt-dir'                       Directory where QT is installed.
-                                     This is only used by the Klash
-                                     plugin.
-`--with-qt-includes'                  Directory where the QT header
-                                     files are installed. This is only
-                                     used by the Klash plugin.
-`--with-qt-libraries'                 Directory where the QT libraries
-                                     are installed. This is only used by
-                                     the Klash plugin.
-`--with-npapi-plugindir'              This is the directory to install
-                                     the NPAPI (Mozilla) plugin in.  By
-                                     default it goes to
-                                     ~/.mozilla/plugins.
-`--with-kde-pluginprefix'             This option sets the default
-                                     install dir for all KPARTS (kde)
-                                     files.  The plugin will be
-                                     installed in PREFIX/lib/kde3, use
-                                     `-with-kde-plugindir' to override.
-                                     The service file in
-                                     PREFIX/share/services, use
-                                     `--with-kde-servicesdir' to
-                                     override.  The config file in
-                                     PREFIX/share/config, use
-                                     `--with-kde-configdir' to override.
-                                     The appdata file in
-                                     PREFIX/share/apps/klash, use
-                                     `--with-kde-appsdatadir' to
-                                     override.
-`--with-kde-plugindir'                This is the directory to install
-                                     the KPARTS (kde) plugin in.  By
-                                     default it is what's set by
-                                     -with-kde-pluginprefix or what's
-                                     returned by kde-config -install
-                                     module -expandvars, or
-                                     $(prefix)/share/services if
-                                     kde-config is not found.
-`--with-kde-servicesdir'              This is the directory to install
-                                     the KPARTS (kde) service in.  By
-                                     default it is what's set by
-                                     -with-kde-pluginprefix or what's
-                                     returned by kde-config -install
-                                     services -expandvars, or
-                                     $(libdir)/kde3 if kde-config is not
-                                     found.
-`--with-kde-configdir'                This is the directory to install
-                                     the KPARTS (kde) config files in.
-                                     By default it is what's set by
-                                     -with-kde-pluginprefix or what's
-                                     returned by kde-config -install
-                                     config -expandvars, or
-                                     $(prefix)/share/config if
-                                     kde-config is not found.
-`--with-kde-appsdatadir'              This is the directory to install
-                                     the KPARTS (kde) application data
-                                     files in.  By default it is what's
-                                     set by -with-kde-pluginprefix or
-                                     what's returned by kde-config
-                                     -install data -expandvars, or
-                                     $(prefix)/share/apps if kde-config
-                                     is not found.
-`--with-ming'                         Ming is used to build test cases,
-                                     but not by the Gnash player itself.
-`--with-mad_incl'                     Directory where libmad header is
-                                     installed.
-`--with-mad_lib'                      Directory where libmad library is
-                                     installed.
-`--with-ogg_incl'                     Directory where the libogg headers
-                                     are installed.
-`--with-ogg_lib'                      Directory where the libogg library
-                                     is installed.
-`--with-gstreamer-incl'               Directory where the Gstreamer
-                                     headers are installed. Gstreamer
-                                     version 0.10 or greater must be
-                                     used.
-`--with-gstreamer-lib'                Directory where the Gstreamer
-                                     library is installed. Gstreamer
-                                     version 0.10 or greater must be
-                                     used.
-`--with-opengl-includes'              Directory where OpenGL (libMesa)
-                                     headers are installed.
-`--with-opengl-lib'                   Directory where the OpenGL
-                                     (libMesa) library is installed.
-`--with-glext-incl'                   Directory where GtkGlExt headers
-                                     are installed.
-`--with-glext-lib'                    Directory where the GtkGlExt
-                                     library is installed.
-`--with-gtk2-incl'                    Directory where the Gtk2 headers
-                                     are installed.
-`--with-gtk2-lib'                     Directory where the Gtk2 library
-                                     is installed.
-`--with-cairo_incl'                   Directory where the Cairo headers
-                                     are installed.
-`--with-cairo-lib'                    Directory where the Cairo library
-                                     is installed.
-`--with-glib-incl'                    Directory where the Glib headers
-                                     are installed.
-`--with-glib-lib'                     Directory where the Glib library
-                                     is installed.
-`--with-pango-incl'                   Directory where the Pango headers
-                                     are installed.
-`--with-pango-lib'                    Directory where the Pango library
-                                     is installed.
-`--with-atk-incl'                     Directory where the ATK headers
-                                     are installed.
-`--with-atk-lib'                      Directory where the ATK library is
-                                     installed.
-`--with-pthread-incl'                 Directory where the Pthread
-                                     headers are installed.
-`--with-pthread-lib'                  Directory where the Pthread
-                                     library is installed.
-`--with-agg-incl'                     Directory where the AGG
-                                     (Antigrain) headers are installed.
-`--with-agg-lib'                      Directory where the AGG
-                                     (Antigrain) library is installed.
-`--with-ffmpeg-incl'                  Directory where the FFMPEG headers
-                                     are installed.
-`--with-ffmpeg-lib'                   Directory where the FFMPEG library
-                                     is installed.
-`--with-boost-incl'                   Directory where the Boost headers
-                                     are installed.
-`--with-boost-lib'                    Directory where the Boost library
-                                     is installed.
-`--with-curl-incl'                    Directory where the libCurl
-                                     headers are installed.
-`--with-curl-lib'                     Directory where the libCurl
-                                     library is installed.
-
-
-File: gnash.info,  Node: Cross Compiling,  Prev: Specifying Custom Paths,  Up: 
Pre-Compile Configuration
-
-3.3.3 Cross Compiling
----------------------
-
-To cross configure and compile Gnash, begin by building a target system
-on your workstation.  This includes cross compilers for the target
-architecture, and some system headers.  You will also need the
-following packages to be built for the target system: _libxml2_,
-_libpng_ (if used), _libjpeg_,oost  _b_, your GUI library, your
-renderer, and your video handler (if used).  The page
-http://frank.harvard.edu/~coldwell/toolchain/
-(http://frank.harvard.edu/~coldwell/toolchain/) has instructions on
-building a target system from scratch and offers a shell script to make
-the process easier.
-
-   If you need to build up a target system from scratch, there is a
-good document and shell script at this web site:
-http://frank.harvard.edu/~coldwell/toolchain/
-(http://frank.harvard.edu/~coldwell/toolchain/).
-
-   There is also up to date information on the Gnash Developers web
-site at: http://www.gnashdev.org (http://www.gnashdev.org). This is the
-best place for detailed informatin on various systems.
-
-   After I built up an ARM system in /usr/arm using the shell script
-from this web site, I then cross compiled all the other libraries I
-needed. The fun part is trying to get libMesa and boost to cross
-compile, because they're not really set up for it.
-
-   So to build for an ARM based system on an x86 based systems,
-configure like this:
-
-
-       ../../gnash/configure --build=i686-pc-linux-gnu
-       --host=arm-linux --prefix=/usr/local/arm/oe --disable-nsapi
-       --disable-kparts --enable-gui=fb --enable-renderer=agg --disable-shared
-
-   The important configuration options are the ones which specify the
-architecture for the build:
-
--target
-     The target architecture, where the final executables are expected
-     to run.
-
--host
-     The host architecture, where the executables are expected to run.
-     Usually this is the same as the _-target_, except when building a
-     compiler as a Canadian Cross.  In this case, you might build a
-     cross compiler on a UNIX system which runs on a win32 machine,
-     producing code for a third architecture, such as ARM.  In this
-     example, _-target_ would be 'arm-unknown-linux-gnu', while _-host_
-     would be 'win32'.
-
--build
-     This is the system the build is running on.
-
-   The following example of _configure_ builds for an ARM system on an
-x86 system.  It was run after an ARM system was built in `/usr/arm' and
-other required libraries were cross compiled.
-
-
-     ./configure -target=arm-unknown-linux-gnu --prefix=/usr/arm \
-     --host=arm-unknown-linux-gnu --build=i686-pc-linux-gnu --disable-plugin
-
-
-File: gnash.info,  Node: Building from Source,  Next: Installation,  Prev: 
Pre-Compile Configuration,  Up: Installing and Configuring Gnash
-
-3.4 Building from Source
-========================
-
-Once you have configured (*note Pre-Compile Configuration::) Gnash, you
-are ready to build the code.  Gnash is built using _GNU make_.
-
-* Menu:
-
-* Compiling the Code::
-* Creating the Documentation::
-* Running the Tests::
-
-
-File: gnash.info,  Node: Compiling the Code,  Next: Creating the 
Documentation,  Up: Building from Source
-
-3.4.1 Compiling the Code
-------------------------
-
-The most basic way to compile code is simply:
-
-
-       make
-
-If the compilation ends with an error, check the output of _configure_
-and ensure that you are not missing any required prerequisites.  The
-output of `make' can be verbose; you may wish to pipe the output to a
-file.
-
-   The variables used by _make_ can be redefined when the program is
-invoked, if you desire it.   The most interesting flags are _CFLAGS_
-and _CXXFLAGS_, which are often used to enable debugging or turn of
-optimization.  The default value for both of these variables is _-O2
--g_.  A list of influential environment variables can be seen in the
-configuration help:
-
-     ./configure --help
-
-   In the following example, debugging is enabled and optimization is
-disabled:
-
-     make CFLAGS=-g CXXFLAGS=-g
-
-
-File: gnash.info,  Node: Creating the Documentation,  Next: Running the Tests, 
 Prev: Compiling the Code,  Up: Building from Source
-
-3.4.2 Creating the Documentation
---------------------------------
-
-By default, documentation is not built when you install (*note
-Installation::) Gnash.  This is because there are a number of
-dependencies for the documentation (*note Documentation
-Dependencies::).  Documentation is built when it is specified with a
-specific target in the generated `Makefile' in the `doc/C'
-sub-directory.  If you type `make install' in this directory, all
-documents will be built.
-
-   You must specify a target output format when you wish to create
-documentation.  The available output formats are: `html', `pdf', `info',
-`man', and `alldocs'.  It is also possible to output `GNOME help' if
-the configure option (*note Features::) `--enable-ghelp' was used.  The
-`alldocs' target will build all output formats except _GNOME help_.
-For example, to create HTML output, type:
-
-
-       make html
-
-   Gnash also uses Doxygen
-(http://www.stack.nl/~dimitri/doxygen/index.html) to produce _HTML_
-documentation of Gnash internals.  You must have Doxygen installed to
-produce this documentation, which is built from the `doc' directory
-with the command (documents will be placed in the subdirectory
-`apidoc/html'):
-
-
-       make apidoc
-
-
-File: gnash.info,  Node: Running the Tests,  Prev: Creating the Documentation, 
 Up: Building from Source
-
-3.4.3 Running the Tests
------------------------
-
-Before beginning the potentially lengthy install, it is wise to test
-the installation.  If a test fails, please report it by following the
-instructions for reporting a bug (*note Reporting Bugs::).
-
-* Menu:
-
-* Using DejaGnu::
-* Running The Tests Manually::
-
-
-File: gnash.info,  Node: Using DejaGnu,  Next: Running The Tests Manually,  
Up: Running the Tests
-
-3.4.3.1 Using DejaGnu
-.....................
-
-The easiest way to run Gnash's test suite is to install _DejaGnu
-(http://www.gnu.org/software/dejagnu)_.  After installing DejaGnu, run:
-
-
-             make check
-
-* Menu:
-
-* Increasing Verbosity::
-* Running Some Tests::
-
-
-File: gnash.info,  Node: Increasing Verbosity,  Next: Running Some Tests,  Up: 
Using DejaGnu
-
-Increasing Verbosity
-....................
-
-If you encounter a problem with a test, increasing the verbosity may
-make the issue easier to spot.  Additional details are visible when
-_RUNTESTFLAGS_ are used to add the _verbose_ and _all_ options.  The
-`verbose' option prints more information about the testing process,
-while the `all' option includes details on passing tests.
-
-
-       make check RUNTESTFLAGS="-v -a"
-
-
-File: gnash.info,  Node: Running Some Tests,  Prev: Increasing Verbosity,  Up: 
Using DejaGnu
-
-Running Some Tests
-..................
-
-It is possible to run just a single test, or a subdirectory of tests,
-by specifying the directory or compiled test file.
-
-   Some tests rely on _testsuite/Dejagnu.swf_, which in turn relies on
-_Ming_.  This file is created when you run `make check' for the entire
-testsuite, and can also be created on demand:
-
-
-       make -C testsuite Dejagnu.swf
-
-   In this example, the `clip_as_button2' test is compiled and run:
-
-
-       make -C testsuite/samples clip_as_button2-TestRunner
-       cd testsuite/samples && ./clip_as_button2-TestRunner
-
-This creates and runs all the tests in the directory `movies.all':
-
-
-       make -C testsuite/movies.all check
-
-
-File: gnash.info,  Node: Running The Tests Manually,  Prev: Using DejaGnu,  
Up: Running the Tests
-
-3.4.3.2 Running The Tests Manually
-..................................
-
-You may also run test cases by hand, which can be useful if you want to
-see all the debugging output from the test case.  Often the messages
-which come from deep within Gnash are most useful for development.
-
-   The first step is to compile the test case, which can be done with
-`make XML-v#.swf' where the '#' is replaced with the _target_ SWF
-version or versions.  For example:
-
-
-       make XML-v{5,6,7,8}.swf
-
-* Menu:
-
-* Movie tests::
-* ActionScript Unit Tests::
-
-
-File: gnash.info,  Node: Movie tests,  Next: ActionScript Unit Tests,  Up: 
Running The Tests Manually
-
-Movie tests
-...........
-
-This creates a Flash movie version of the test case, which can be run
-with a standalone Flash player.  For instance, the target for SWF
-version 6 could be run with Gnash:
-
-
-        gnash -v XML-v6.swf
-
-
-File: gnash.info,  Node: ActionScript Unit Tests,  Prev: Movie tests,  Up: 
Running The Tests Manually
-
-ActionScript Unit Tests
-.......................
-
-Unit tests for ActionScript classes in `testsuite/actionscript.all' are
-run without a graphical display:
-
-
-       gprocessor -v XML-v6.swf
-
-
-File: gnash.info,  Node: Installation,  Prev: Building from Source,  Up: 
Installing and Configuring Gnash
-
-3.5 Installation
-================
-
-Now that Gnash has been compiled and tested, use the following command
-to install it:
-
-
-       make install
-
-The above command installs the standalone player.  If the correct files
-were found by `configure' and if the `--disable-plugin' option was not
-specified, the Gnash browser plugin is also installed.
-
-   Gnash installs a number of libraries (*note Libraries::), namely:
-_libbase_, _libgeometry_, _libbackend_, _libserver_, and _libmozsdk_.
-Executables (*note Executables::) consist of the (optional) plugin,
-`gprocessor', `cygnal',  and `gnash'.  Documentation (*note
-Documentation::) may also be installed.  The installation location is
-controlled with the _-prefix_ configure option (*note Specifying Custom
-Paths::), except for plugins, which are explicitly set with
-_-plugin-dir_.
-
-   Note that if you are using a single file-system _NFS_ mounted to
-multiple platforms, the configuration option (*note Specifying Custom
-Paths::) _-exec-prefix_ may be used to specify where platform-dependent
-executables and libraries are installed.
-
-* Menu:
-
-* Libraries::
-* Executables::
-* Documentation::
-
-
-File: gnash.info,  Node: Libraries,  Next: Executables,  Up: Installation
-
-3.5.1 Libraries
----------------
-
-Installed libraries are located in `/usr/local/lib' by default.  If the
-_-prefix_ option was used in configuration (*note Pre-Compile
-Configuration::), the libraries will be installed in the directory
-`lib' inside the path you specified.  If the libraries are stored in a
-non-standard location, you must identify the path in one of two ways.
-
-   The traditional way to do this on UNIX platforms is to set the
-_LD_LIBRARY_PATH_ variable to the path plus `/lib'.  For example, if you
-installed in `/home/gnash', the _LD_LIBRARY_PATH_ path would be
-`/home/gnash/lib'.  Multiple paths are delimited with a colon (':').
-
-   GNU/Linux allows the custom path to be added to `/etc/ld.so.conf'.
-After adding the path, run _ldconfig_ as root to update the runtime
-cache.
-
-
-File: gnash.info,  Node: Executables,  Next: Documentation,  Prev: Libraries,  
Up: Installation
-
-3.5.2 Executables
------------------
-
-The Mozilla plugin is built from headers (the Mozilla SDK) provided
-with Gnash and does not need extra development packages to be
-installed. By default, the plugin is installed to
-`~/.mozilla/plugins/'. To enable the plugin for other users, copy the
-file `libgnashplugin.so' to `.mozilla/plugins/' in their home directory.
-You may also specify the plugin installation directory by using the
-`--with-plugindir' option at configuration time (*note Specifying
-Custom Paths::).
-
-   These defaults are likely to change in future versions of Gnash.
-
-   The remaining executables are installed in the `bin' subdirectory of
-the directory specified by during configuration.  If no path was
-specified, the default is `/usr/local/bin'.
-
-
-File: gnash.info,  Node: Documentation,  Prev: Executables,  Up: Installation
-
-3.5.3 Documentation
--------------------
-
-Documentation is not built by default; please refer to the section on
-documentation (*note Creating the Documentation::) for more information
-on building documentation.
-
-   `man' and `info' are installed in `/usr/local/share/man' and
-`/usr/local/share/info' respectively, unless the `--mandif' or
-`--infodir' configuration options (*note Specifying Custom Paths::) are
-used.
-
-   _GNOME help_ documentation uses the directory
-`/usr/local/share/gnash/doc/gnash/C/' by default.  A configuration file
-in the Gnash source tree, `doc/C/gnash.omf' is used to specify under
-which menu item Gnash appears in the _GNOME help_ system.
-
-
-File: gnash.info,  Node: Reporting Bugs,  Next: Technical Specifications,  
Prev: Installing and Configuring Gnash,  Up: Top
-
-4 Reporting Bugs
-****************
-
-The Gnash project relies on the community to use and test the player;
-feedback is critical to any successful project.  Not only does it let
-us know that people use Gnash, but it helps us understand the
-community's needs.  Gnash uses a bug tracker on
-`http://savannah.gnu.org' to manage these reports.
-
-   When filing a report, please follow the guidelines below. The better
-your bug report is, the easier it will be for the developers to address
-the issue.
-
-  1. Compile the latest Gnash build. (*note Compile the latest Gnash
-     build::)
-
-  2. Determine if the bug was previously reported. (*note Determine if
-     the bug was previously reported::)
-
-  3. Review the bug writing guidelines. (*note Review the bug writing
-     guidelines::)
-
-* Menu:
-
-* Compile the latest Gnash build::
-* Determine if the bug was previously reported::
-* Review the bug writing guidelines::
-* Filing a bug report::
-
-
-File: gnash.info,  Node: Compile the latest Gnash build,  Next: Determine if 
the bug was previously reported,  Up: Reporting Bugs
-
-4.1 Compile the latest Gnash build
-==================================
-
-Obtain a copy of the latest development checkout (*note Repository::)
-or development snapshot (*note Snapshot::).  Put the source in an empty
-directory, then configure (*note Pre-Compile Configuration::) and
-compile (*note Compiling the Code::) Gnash.
-
-   If you are able to replicate the bug in the latest version, proceed
-to the next step (*note Determine if the bug was previously reported::).
-If you cannot replicate the bug with the newer version, the problem may
-have been solved, or the issue may involve your environment
-
-   To check this, create a fresh build of the version in which you
-encountered the bug.  If you can reproduce the bug with the fresh copy
-of the original version, but cannot with the latest version, this is
-most likely a resolved bug.
-
-   If you cannot reproduce the bug, it may still be unclear whether the
-bug is related to your environment or a Gnash bug.  Try to determine
-the source of the problem.  Gnash offers several helpful debugging
-options in the configure stage, and many verbosity options at the
-command line to help.
-
-
-File: gnash.info,  Node: Determine if the bug was previously reported,  Next: 
Review the bug writing guidelines,  Prev: Compile the latest Gnash build,  Up: 
Reporting Bugs
-
-4.2 Determine if the bug was previously reported
-================================================
-
-Search the Gnash bug tracker
-(https://savannah.gnu.org/bugs/?group=gnash) to see if the bug has
-already been identified.
-
-   If the issue has already been reported, you should not file a bug
-report.  However, you may add some additional information to the ticket
-if you feel that it will be beneficial to the developers.  For
-instance, if someone reported a memory issue on Ubuntu GNU/Linux, and
-you noticed the same problem on OpenBSD, your stacktrace would be
-useful.  Conversely, adding a "me too" note to a feature request is not
-helpful.
-
-
-File: gnash.info,  Node: Review the bug writing guidelines,  Next: Filing a 
bug report,  Prev: Determine if the bug was previously reported,  Up: Reporting 
Bugs
-
-4.3 Review the bug writing guidelines
-=====================================
-
-A good bug report should be precise, explicit, and discrete.  This
-means that there should be just one bug per ticket, and that a ticket
-should contain the following information:
-
-   * An overview of the problem;
-
-   * Instructions on how to replicate the bug;
-
-   * A description of what happened when you performed the steps to
-     replicate the bug, and what you expected to happen;
-
-   * Your system information: operating system name and version, as
-     well as the versions of major dependencies (*note Code
-     Dependencies::);
-
-   * The release number or checkout timestamp for the version of Gnash
-     where you observe the problem;
-
-   * The file `config.log', which should be attached as a file; and
-
-   * A descriptive title.
-
-   Include any additional information that you feel might be useful to
-the developers.
-
-
-File: gnash.info,  Node: Filing a bug report,  Prev: Review the bug writing 
guidelines,  Up: Reporting Bugs
-
-4.4 Filing a bug report
-=======================
-
-After following the steps described above, you can file a bug report at
-`https://savannah.gnu.org/bugs/?group=gnash'.
-
-
-File: gnash.info,  Node: Technical Specifications,  Next: Glossary,  Prev: 
Reporting Bugs,  Up: Top
-
-5 Technical Specifications
-**************************
-
-The information in this chapter may change quickly.  For the most
-current information about the following subjects, be sure the check the
-Developer's Wiki at `http://www.gnashdev.org/wiki/index.php/Main_Page'.
-
-* Menu:
-
-* Memory Management::
-* Security::
-
-
-File: gnash.info,  Node: Memory Management,  Next: Security,  Up: Technical 
Specifications
-
-5.1 Memory Management
-=====================
-
-One of the new features of Gnash 0.8.2 is the garbage collector.  The
-garbage collector manages complex ActionScript variables, which are the
-only ones that are shared by references.  In Gnash, these are
-`as_object' class instances created by ActionScript (i.e. not those
-created by playhead control: `placeobject'/`removeobject').
-
-   Collected objects are those allocated due to ActionScript explicit
-or implicit calls.  Explicit all are any user-defined statements that
-allocate new objects, such as arrays, Objects, or script-created
-movieclips.  Implicit calls are the built-in functions that can be
-deleted by arbitrary user calls.
-
-   Any object that is a candidate for garbage collecting is stored in a
-list owned by the collector.  This list is filled by an executing
-action context whenever a collectible object is allocated on the heap.
-
-   The garbage collector starts at the very end of an execution context,
-rather than using a threshold to trigger it.  At this point, the
-virtual machine is in a "stable" state; any still-reachable object has
-its roots in one of the currently live character instances (stage
-characters).
-
-   The collector is a conservative collector.  Any object on the
-collectibles list is marked as UNREACHABLE, an iterative scan starting
-from the roots marks any still-reachable object, and a final purge
-releases all still-UNREACHABLE resources.
-
-   This garbage collector has reduced the memory footprint of Gnash.
-However, the most current, available test data indicated the following
-runtime memory footprint:
-
-
-File: gnash.info,  Node: Security,  Prev: Memory Management,  Up: Technical 
Specifications
-
-5.2 Security
-============
-
-Many Flash implementations contain potential security exploits that
-could compromise a viewer's system.  With Gnash, an end-user has the
-ability to see "what's going on" -- what types of data the application
-accesses, where it is found, and how it is used. Many known Flash
-exploits are included in the Gnash test suite that is used to check
-whether a release is ready for the public. The Gnash developers are
-also in the process of a security review, developing a security layer
-that will protect an end-user, no matter what operating system they use.
-
-   One early security feature is the blacklist/whitelist.  Flash movies
-running in a browser can make outgoing network connections. This can be
-used, for example, to compromise a network device inside a company
-firewall via a Flash movie running on an employee's browser. Gnash
-allows you to blacklist hosts that you know are insecure, or to
-whitelist hosts you know are secure, by editing a configuration file.
-
-* Menu:
-
-* Local Shared Objects::
-* Local Connections::
-
-
-File: gnash.info,  Node: Local Shared Objects,  Next: Local Connections,  Up: 
Security
-
-5.2.1 Local Shared Objects
---------------------------
-
-SWF movies support a form of persistant storage called Local Shared
-Objects. These are stored in the subdirectories of one's
-_~/.macromedia_ configuration. These files are comonly called "Flash
-Cookies", as they don't get deleted when the SWF movie that created or
-writes data to them stops executing. These files often store things
-like game scores.
-
-   Till recently, what was contained in these files wasn't widely
-known. There are several LSO file utilities floating around on the Web.
-Gnash has it's own _soldumper_ program that lets one find and dump the
-contents of these files. As of yet, I haven't discovered any nasty
-privacy issues yet, but as Gnash's SharedObject support is new, I may
-have just been lucky.
-
-   An LSO file uses a _.sol_suffix, and is stored in binary, big endian
-format. While one can look at the data in any binary editor or hex
-dumper, it's easier to use soldumper, which knows how to decode all the
-objects. The data is stored in AMF format, a simple data interhange
-formats used in several other places in SWF.
-
-   The one security setting Gnash supports is the _SOLReadOnly_ setting
-for your $HOME/.gnashrc file. This makes Gnash never write to a .sol
-file, it only reads them. You can also set _SOLSafeDir_ to a safe
-subdirectory,or even remove it later, although most people willwant to
-set this path to the default one created bythe other SWF player.
-
-
-File: gnash.info,  Node: Local Connections,  Prev: Local Shared Objects,  Up: 
Security
-
-5.2.2 Local Connections
------------------------
-
-SWF movies support a form of data interchange between running SWF
-movies called LocalConnection. This uses a shared memory segment to
-exchange AMF objects. While the specification claim an application has
-to register as a Listener, it turns out in reality this isn't required.
-Even YouTube violates this requirement. While one would think that data
-written to this memory segment would go away when the SWF movies are
-done playing, but they are persistant, and on some systems, the data
-even survives a reboot. Thank you Solaris...
-
-   The Gnash utility _dumpshm_ can be used to do several things with
-these shared memory segments. This utility can find the shared memory
-segment left by using other SWF players to see what has been left. it
-can then dump the contents of the shared mempory segment either by
-decoding the AMF objects and printing the values, or by dumping the raw
-file to disk where you can analysze it with any other program you wish.
-If you run dumpshm repeatedly, you can even do a crude packet sniffing
-between two SWF movies playing.
-
-   The only current security related option for this is
-_LocalConnection_. This just disables all communication with other SWF
-movies. Work is in progress on adding a tracing ability to Gnash.
-
-
-File: gnash.info,  Node: Glossary,  Next: RTMP Protocol,  Prev: Technical 
Specifications,  Up: Top
-
-6 Glossary
-**********
-
-
-
-A
-=
-
-ActionScript
-     _ActionScript_, or "AS", is the scripting language for _Flash_
-     applications. It is compiled to bytecode, which is a subset of the
-     _SWF_ format.
-
-AGG
-     AGG is the AntiGrain 2D graphics library, which can be used as a
-     renderer in Gnash. It is faster than OpenGL on systems without
-     hardware graphics acceleration. As of Gnash version 0.8.1 it is
-     the more feature complete renderer.
-
-AMF
-     _AMF_ is the object format used by _Flash_ for shared objects and
-     streaming video.
-
-as_environment
-     In Gnash terms, the as_environment, or ActionScript execution
-     environment, contains a stack of objects, characters and values
-     which are in the immediate environment of the current fn_call.
-     Please refer to the Gnash ActionScript manual for more information.
-
-
-C
-=
-
-Cairo
-     Cairo is a 2D graphics library with support for multiple output
-     devices. Can be used as a renderer in Gnash. A useful feature of
-     Cairo is that it will automatically use graphic card acceleration
-     when available. Cairo has an experimental OpenGL backend.
-
-
-D
-=
-
-DejaGNU
-     DejaGNU is a framework for testing software.
-
-DocBook
-     _DocBook_ is a markup language for presentation-neutral
-     documentation, such as manuals.
-
-Doxygen
-     _Doxygen_ is a documentation generator for for multiple languages
-     which uses comments in the source code to create stand-alone
-     documentation.
-
-Drupal
-     Drupal is a CMS/blog system used for the main Gnash website.
-
-
-E
-=
-
-extensions
-     A Gnash _extension_ is a plugin (not a browser plugin) which
-     implements additional functionality beyond what is covered by
-     _Flash_ specification.  These are shared libraries which are
-     loaded at runtime.
-
-
-F
-=
-
-ffmpeg
-     ffmpeg is an audio and video decoding library which can be used by
-     Gnash to decode mp3, FLV and other media types.
-
-Flash
-     The term _Flash_ is used to describe both the Adobe IDE for
-     creating _SWF_ files, and the technology itself.  Gnash
-     documentation uses the latter definition.
-
-FLV
-     FLV is a proprietary file format used to deliver Flash video. It
-     is used by YouTube, among others.
-
-FLTK
-     FLTK, or the 'Fast Light ToolKit', is a portable GUI library which
-     is intended to replace the SDL GUI. Currently in Gnash, FLTK may
-     be used with the Cairo and AGG renderers. FLTK has an experimental
-     Cairo backend.
-
-FrameBuffer
-     In Gnash, this is a GUI library that outputs directly to the Linux
-     Frame Buffer and so does not need a window system to run. This
-     makes it particularly suitable for use on small devices.
-
-
-G
-=
-
-Gnash
-     Gnash is the GNU Flash movie player.
-
-Gstreamer
-     Gstreamer is a multimedia framework which Gnash can use for
-     decoding audio and video. Gstreamer itself cannot decode anything,
-     so it needs some appropriate decoding-plugins to do the work for
-     it. Remember to install them if you use Gnash with Gstreamer
-     enabled. To get the best out of Gnashs gstreamer-parts, it is
-     recommended to install the gst-plugins-good, gst-plugins-good and
-     gst-ffmpeg plugins packages.
-
-GTK
-     GTK is the GIMP Toolkit GUI library. It is one of the GUI options
-     for Gnash. As of Gnash 0.7.2, this is the more performant and
-     feature-rich choice. GTK uses Cairo internally.
-
-GUI
-     A _GUI_ is a "graphical user interface". In Gnash, the GUI library
-     provides a wrapper for mouse and keyboard events, menus, windowing
-     (where available) and a drawing area.  You must choose a GUI
-     library during the configuration (*note Pre-Compile
-     Configuration::) stage.
-
-
-K
-=
-
-Klash
-     _Klash_ was the name given to the stand-alone instance of Gnash
-     which used the KDE GUI.  It has been replaced with an
-     implementation using Qt.  Some documentation may incorrectly refer
-     to the Konqueror plugin as _Klash_.  The plugin was renamed
-     _Kpart_.
-
-Kpart
-     _Kpart_ is a plugin for Konqueror which is enabled with the
-     configuration option (*note Features::) _-enable-klash_.
-
-
-L
-=
-
-libmad
-     libmad is a mp3-decoding library, which used to be an option for
-     Gnash handling of sound (dropped since 0.8.2).
-
-
-M
-=
-
-Mesa
-     _Mesa_ is the free software OpenGL implementation.  Gnash
-     documentation will sometimes use the glossterms 'OpenGL' and
-     'Mesa' interchangeably.
-
-Ming
-     Ming is a C library for generating SWF ("Flash") format movies,
-     plus a set of wrappers for using the library. It is used by the
-     Gnash project for generating testcases.
-
-
-N
-=
-
-Nellymoser
-     Nellymoser is a proprietary audio codec introduced in the Flash
-     Player in version 6. For more information, please see Wikipedia.
-
-
-O
-=
-
-OpenGL
-     OpenGL (Open Graphics Library) is a standard specification
-     defining a cross-language cross-platform API for writing
-     applications that produce 3D and 2D computer graphics. Accelerated
-     graphic cards usually provide OpenGL at the hardware level. Please
-     refer to Wikipedia for availability of free software OpenGL
-     hardware drivers. A free software implementation of the API is
-     available (Mesa). OpenGL can be used as a renderer in Gnash.
-
-ORM
-     ORM is a system for ensuring the rights of the creator over a
-     piece of digital content. It is more passive than DRM.
-
-
-P
-=
-
-plugin
-     The glossterm _plugin_ is used in Gnash to refer to both any Gnash
-     browser plugin, as well as the Firefox plugin specifically.  The
-     Konqueror plugin is called _Kpart_.  Sometimes, the term is used in
-     an even more generic sense to refer to _extensions_.
-
-
-Q
-=
-
-Qt
-     Qt is a GUI library which is used by KDE. The plugin version of
-     Gnash using this GUI library is Kpart. The standalone version is
-     enabled with -enable-gui=kde.
-
-
-R
-=
-
-renderer
-     The _renderer_ is the subsystem of Gnash which renders content.
-     Only one renderer may be used; it is chosen during configuration
-     (*note Pre-Compile Configuration::).
-
-     Available renderers are: AGG, OpenGL, and Cairo. In terms of
-     feature completeness, AGG comes first; followed by OpenGL and then
-     Cairo. In most cases, AGG is preferred for performance, except
-     cases where it is beneficial to have hardware accelerated
-     rendering (for example, when you have a very slow CPU but a very
-     fast graphics card). In this case OpenGL should be used.
-
-RTMP
-     RTMP is the Real Time Messaging Protocol primarily used with to
-     stream audio and video over the internet to the Flash Player
-     client.
-
-RTMPT
-     RTMPT is basically a HTTP wrapper around the RTMP protocol that is
-     sent using POST requests from the client to the server. Because of
-     the non-persistent nature of HTTP connections, RTMPT requires the
-     clients to poll for updates periodically in order to get notified
-     about events that are generated by the server or other clients.
-
-RTMPTS
-     RTMPTS is the same as RTMPT, but instead of being a HTTP wrapper,
-     it is a HTTP SSL wrapper (HTTP secure connection).
-
-
-S
-=
-
-SDL
-     Simple DirectMedia Layer is a cross-platform multimedia free
-     software library that creates an abstraction over various
-     platforms' graphics, sound, and input APIs. Gnash can use it as a
-     GUI and/or as a sound handler. Note that the two usages are
-     independent of each other: you can use it for a task and not for
-     the other if you wish. At time or writing (2007-01-11) the SDL GUI
-     lacks menus and a performant input event architecture; the SDL
-     sound handler is the most feature rich, supporting Video through
-     ffmpeg.
-
-sound handler
-     The _sound handler_ is the part of Gnash which handles both event
-     sounds and streaming sound.  Audio from external sources are also
-     handled through the sound handler when SDL is used.  The sound
-     handler must be selected during configuration (*note Pre-Compile
-     Configuration::).
-
-     There are currently two sound handlers available in Gnash: ffmpeg
-     and Gstreamer.  The ffmpeg sound handler uses SDL for mixing.  The
-     Gstreamer-sound handler uses the available plugins to decode the
-     audio, so it might not work if some important plugins are missing.
-     The GST sound handler is recommended (the default).
-
-sprite
-     A sprite is an element of an Flash Movie. It's basically a Movie
-     inside another, having its own timeline.
-
-Stage
-     The visible area of a Flash movie. The name derives from a theater
-     analogy. Graphical elements are referred to as characters.
-
-SWF
-     _SWF_ is the file format for _Flash_ movies.
-
-
-T
-=
-
-Tamarin
-     The Tamarin project seeks to create an open source implementation
-     of the ECMAScript 4th edition language specification. The code is
-     used by Adobe as part of the ActionScript Virtual Machine within
-     the Adobe Flash Player. Gnash does not use Tamarin; it already has
-     a working virtual server and most ActionScript classes are
-     implemented.
-
-timeline
-     In Flash technology, a timeline is a sequence of "frames". A
-     single Flash movie can contain multiple timelines, each
-     independently controlled (STOP or PLAY). At regular intervals
-     (FPS) the player advances all timelines in PLAY mode to the next
-     frame, looping back when last frame is reached.
-
-
-X
-=
-
-X.org
-     X.org is the most commonly used X server; it was forked from
-     XFree86.
-
-
-File: gnash.info,  Node: RTMP Protocol,  Next: Authors,  Prev: Glossary,  Up: 
Top
-
-7 RTMP Protocol
-***************
-
-This document is based mostly on my own reverse engineering of the RTMP
-protocol and AMF format. _tcpdump_ and _ethereal_ are your friend. Some
-additional info that got me started was from the Red5
-(http://www.osflash.org/red5) project. _Red5_ is the only other open
-source Flash server. So some details are still vague, but as the
-implementation appears to work, we'll figure out what they are later.
-
-   The Real Time Messaging Protocol was created by MacroMedia (now
-Adobe) for delivering Flash objects and video over a network
-connection. Currently the only servers which support this format are
-the MacroMedia Media sever, and the Open Source Red5 project.
-
-   This is a simple protocol, optimized for poor bandwidth connections.
-It can support up to 64 concurrent streams over the same network
-connection. Part of each AMF packet header contains the index number of
-the stream. A single RTMP message can contain multiple AMF packets.
-
-   An RTMP connection uses Tcp/ip port 1935. It is also possible to
-tunnel RTMP over an HTTP connection using port 80. Each AMF packet is
-128 bytes long except for streaming audio, which has 64 byte packets.
-
-   The basics of the RTMP protocol are as follows. All communications
-are initiated by the client.
-
-Image of the RTMP protocol.
-
-   The client starts the RTMP connection by sending a single byte with
-a value of 0x3. This byte is followed by a data block of 1536 bytes.
-The format if this data block is unknown, but it appears to not be
-actually used by the protocol except as a handshake.
-
-   The server receives this packet, stores the 1536 byte data block,
-and then send a single byte with the value of 0x3, followed by two 1536
-data blocks. The second data block is the full contents of the original
-data block as sent by the client.
-
-   The client receives the 1536 byte data block, and if they match, the
-connection is established. After the handshake process is done, there
-are three other messages that the client sends to the sever to start
-the data flowing.
-
-   The first AMF packet sent to the server contains the _connect_
-packet. This doesn't appear to do much but notify the server the client
-is happy with the handshake, and ready to start reading packets.
-
-   The second packet is the _NetConnection_ object from the client.
-This ActionScript class is used by the Flash movie to create the
-network connection to the server.
-
-   The third packet is the _NetStream_ object from the client. This is
-the ActionScript class used to specify the file to be streamed by the
-server.
-
-   The RTMP packet for our example looks like this:
-
-
-           030000190000c91400000000020007connect00?f0000000000000030003app0200#
-           software/gnash/tests/1153948634.flv0008flashVer02000cLNX 6,0,82,0 
0006
-           swfUrl02001dfile:///file|%2Ftmp%2Fout.swfc30005tcUrl\002\0004
-           rtmp://localhost/software/gnash/tests/1153948634.flv\000\000\t
-           \002\000\005userx
-
-We'll take this apart in a bit, but you can see how all three AMF
-packets are in the same message. The message is received in several 128
-byte blocks, with the last one being less than that. The total size of
-the RTMP message is in the header, so the reader can tell if the entire
-message was read or not.
-
-   The RTMP header is first, followed by the connect message as an
-ASCII string as the message body. The following AMF packet is the
-_NetConnection_ one, which specifies that this is coming from a Flash
-application. This also contains the file path the server can use to
-find the file to stream. This is then followed by the version number,
-which I assume is the version of the Flash player, so the server knows
-what it is talking to.
-
-   The third packet is the one from _NetStream_, which specifies the
-URL used for the movie, followed by the user name for a semblance of
-security.
-
-   For the next level of detail, we'll explain the format of AMF. AMF
-is used by the RTMP protocol to transfer data. Each Flash object is
-encapsulated in an AMF packet, including streaming audio or video.
-
-   The first byte of the RTMP header determines two things about the
-rest of the message. The first 2 bits of this byte signify the total
-size of the RTMP header. The RTMP header is of a variable size, so this
-is important.
-
-00
-     This specifies the header contains 12 bytes, including this one.
-
-01
-     This specifies the header contains 8 bytes, including this one.
-
-02
-     This specifies the header contains 4 bytes, including this one.
-
-03
-     This specifies the header contains 1 byte, so this is the complete
-     header.
-
-   The other 6 bits in this byte represent the AMF index. As a single
-RTMP connection can support multiple data streams, this signifies which
-stream this packet is for. Once an AMF object is fully received by the
-client, the AMF index may be reused.
-
-   For messages with headers of at least 4 bytes, the next 3 bytes are
-used by audio and video data packets, but at this time the meaning of
-this field is unknown.
-
-   For messages with a 8 byte or larger header, the next 3 bytes
-determine the size of the RTMP message being transmitted. Messages with
-a 1 byte or 4 byte header use a standard size, 128 bytes for video, and
-64 bytes for audio.
-
-   For messages with an 8 byte or larger header, the next byte is the
-type of the AMF object.
-
-0x3
-     This specifies the content type of the RTMP packet is the number
-     of bytes read. This is used to start the RTMP connection.
-
-0x4
-     This specifies the content type of the RTMP message is a _ping_
-     packet.
-
-0x5
-     This specifies the content type of the RTMP message is server
-     response of some type.
-
-0x6
-     This specifies the content type of the RTMP packet is client
-     request of some type.
-
-0x8
-     This specifies the content type of the RTMP packet is an audio
-     message.
-
-0x9
-     This specifies the content type of the RTMP message is a video
-     packet.
-
-0x12
-     This specifies the content type of the RTMP message is notify.
-
-0x13
-     This specifies the content type of the RTMP message is shared
-     object.
-
-0x14
-     This specifies the content type of the RTMP message is remote
-     procedure call. This invokes the method of a Flash class remotely.
-
-   There are two sets of data types to consider. One set is used by the
-to specify the content type of the AMF object, the other is an
-ActionScript data type tag used to denote which type of object is being
-transferred.
-
-   The values of the initial type byte are:
-
-0x0
-     This specifies the data in the AMF packet is a numeric value. All
-     numeric values in Flash are 64 bit, _big-endian_.
-
-0x1
-     This specifies the data in the AMF packet is a boolean value.
-
-0x2
-     This specifies the data in the AMF packet is an _ASCII_ string.
-
-0x3
-     This specifies the data in the AMF packet is a Flash object. The
-     Flash object data type field further along in the message
-     specifies which type of ActionScript object it is.
-
-0x4
-     This specifies the data in the AMF packet is a Flash movie, ie.
-     another Flash movie.
-
-0x5
-     This specifies the data in the AMF packet is a NULL value. NULL is
-     often used as the return code from calling Flash functions.
-
-0x6
-     This specifies the data in the AMF packet is a undefined. This is
-     also used as the return code from calling Flash functions.
-
-0x7
-     This specifies the data in the AMF packet is a reference.
-
-0x8
-     This specifies the data in the AMF packet is a ECMA array.
-
-0x9
-     This specifies the data in the AMF packet is the end of an object
-     definition. As an object is transmitted with multiple AMF packets,
-     this lets the server know when the end of the object is reached.
-
-0xa
-     This specifies the data in the AMF packet is a Strict array.
-
-0xb
-     This specifies the data in the AMF packet is a date.
-
-0xc
-     This specifies the data in the AMF packet is a multi-byte string.
-     Multi-byte strings are used for international language support to
-     represent non _ASCII_ fonts.
-
-0xd
-     This specifies the data in the AMF packet is a an unsupported
-     feature.
-
-0xe
-     This specifies the data in the AMF packet is a record set.
-
-0xf
-     This specifies the data in the AMF packet is a AML object. XML
-     objects are then parsed by the _XML_ ActionScript class.
-
-0x10
-     This specifies the data in the AMF packet is a typed object.
-
-   For messages with a 12 byte header, the last 4 bytes are the routing
-of the message. If the destination is the server, this value is the
-NetStream object source. If the destination is the client, this is the
-NetStream object for this RTMP message. A value of 0x00000000 appears
-to be reserved for the NetConnection object.
-
-   Multiple AMF streams can be contained in a single RTMP messages, so
-it's important to check the index of each AMF packet.
-
-   An example RTMP header might look like this. (spaces added between
-fields for clarity) All the numbers are in hex.
-
-
-           03 000019 0000c9 14 000000000
-
-03
-     The first two bits of this byte are the size of the header, which
-     in this example is 00, for a 12 byte header. The next 6 bits is
-     the AMF stream index number, which in this example is 0x3.
-
-000019
-     These 3 bytes currently have an unknown purpose.
-
-000c9
-     Since this example has a 12 byte header, this is the size of the
-     RTMP message, in this case 201 bytes.
-
-14
-     This is the content type of the RTMP message, which in this case
-     is to invoke a remote function call. (which we later see is the
-     connect function).
-
-00000000
-     The source is the NetConnection object used to start this
-     connection.
-
-* Menu:
-
-* AMF Format::
-
-
-File: gnash.info,  Node: AMF Format,  Up: RTMP Protocol
-
-7.1 AMF Format
-==============
-
-The AMF format is used in the LocalConnection, SharedObject,
-NetConnection, and NetStream ActionScript classes. This is a means of
-binary data interchange between Flash movies, or between a Flash player
-and a Flash server.
-
-   Like the RTMP messages, an AMF packet header can be of a variable
-size. The size is either the same as the initial header of the RTMP
-message, or a 1 byte header, which is commonly used for streaming audio
-or video data.
-
-   The body of an AMF packet may look something like this example. The
-spaces have been added for clarity.
-
-
-           02  0007 636f6e6e656374
-
-02
-     This is a single byte header. The value of the first 2 bits is
-     0x3, and the AMF index is also 0x3.
-
-0007
-     This is the length in bytes of the string.
-
-63 6f 6e 6e 65 63 74
-     This is the string. Note that there is no null terminator since
-     the length is specified.
-
-
-File: gnash.info,  Node: Authors,  Next: GNU Free Documentation License,  
Prev: RTMP Protocol,  Up: Top
-
-8 Authors
-*********
-
-Gnash is maintained by Rob Savoye. Other active developers are: Sandro
-Santilli, Bastiaan Jacques, Udo Giacomozzi, Chad Musick, Benjamin
-Wolsey, and Zou Lunkai. Please send all comments and suggestions to
-<address@hidden>. Past and sometimes current developers are Tomas
-Groth and Markus Gothe.
-
-   Gnash was initially derived from GameSWF.  GameSWF is maintained by
-Thatcher Ulrich <address@hidden>.  The following people contributed to
-GameSWF: Mike Shaver, Thierry Berger-Perrin, Ignacio Castan~o, Willem
-Kokke, Vitaly Alexeev, Alexander Streit, and Rob Savoye.
-
-
-File: gnash.info,  Node: GNU Free Documentation License,  Prev: Authors,  Up: 
Top
-
-Appendix A GNU Free Documentation License
-*****************************************
-
-* Menu:
-
-* 0. PREAMBLE: 0_ PREAMBLE.
-* 1. APPLICABILITY AND DEFINITIONS: 1_ APPLICABILITY AND DEFINITIONS.
-* 2. VERBATIM COPYING: 2_ VERBATIM COPYING.
-* 3. COPYING IN QUANTITY: 3_ COPYING IN QUANTITY.
-* 4. MODIFICATIONS: 4_ MODIFICATIONS.
-* 5. COMBINING DOCUMENTS: 5_ COMBINING DOCUMENTS.
-* 6. COLLECTIONS OF DOCUMENTS: 6_ COLLECTIONS OF DOCUMENTS.
-* 7. AGGREGATION WITH INDEPENDENT WORKS: 7_ AGGREGATION WITH INDEPENDENT WORKS.
-* 8. TRANSLATION: 8_ TRANSLATION.
-* 9. TERMINATION: 9_ TERMINATION.
-* 10. FUTURE REVISIONS OF THIS LICENSE: 10_ FUTURE REVISIONS OF THIS LICENSE.
-* Addendum::
-
-
-File: gnash.info,  Node: 0_ PREAMBLE,  Next: 1_ APPLICABILITY AND DEFINITIONS, 
 Up: GNU Free Documentation License
-
-A.1 0. PREAMBLE
-===============
-
-The purpose of this License is to make a manual, textbook, or other
-written document "free" in the sense of freedom: to assure everyone the
-effective freedom to copy and redistribute it, with or without
-modifying it, either commercially or non-commercially. Secondarily,
-this License preserves for the author and publisher a way to get credit
-for their work, while not being considered responsible for
-modifications made by others.
-
-   This License is a kind of "copyleft", which means that derivative
-works of the document must themselves be free in the same sense. It
-complements the GNU General Public License, which is a copyleft license
-designed for free software.
-
-   We have designed this License in order to use it for manuals for
-free software, because free software needs free documentation: a free
-program should come with manuals providing the same freedoms that the
-software does. But this License is not limited to software manuals; it
-can be used for any textual work, regardless of subject matter or
-whether it is published as a printed book. We recommend this License
-principally for works whose purpose is instruction or reference.
-
-
-File: gnash.info,  Node: 1_ APPLICABILITY AND DEFINITIONS,  Next: 2_ VERBATIM 
COPYING,  Prev: 0_ PREAMBLE,  Up: GNU Free Documentation License
-
-A.2 1. APPLICABILITY AND DEFINITIONS
-====================================
-
-This License applies to any manual or other work that contains a notice
-placed by the copyright holder saying it can be distributed under the
-terms of this License. The "Document", below, refers to any such manual
-or work. Any member of the public is a licensee, and is addressed as
-"you".
-
-   A "Modified Version" of the Document means any work containing the
-Document or a portion of it, either copied verbatim, or with
-modifications and/or translated into another language.
-
-   A "Secondary Section" is a named appendix or a front-matter section
-of the Document (*note fdl-document::) that deals exclusively with the
-relationship of the publishers or authors of the Document to the
-Document's overall subject (or to related matters) and contains nothing
-that could fall directly within that overall subject. (For example, if
-the Document is in part a textbook of mathematics, a Secondary Section
-may not explain any mathematics.)  The relationship could be a matter
-of historical connection with the subject or with related matters, or of
-legal, commercial, philosophical, ethical or political position
-regarding them.
-
-   The "Invariant Sections" are certain  Secondary Sections (*note
-fdl-secondary::) whose titles are designated, as being those of
-Invariant Sections, in the notice that says that the Document (*note
-fdl-document::) is released under this License.
-
-   The "Cover Texts" are certain short passages of text that are
-listed, as Front-Cover Texts or Back-Cover Texts, in the notice that
-says that the Document (*note fdl-document::) is released under this
-License.
-
-   A "Transparent" copy of the  Document (*note fdl-document::) means a
-machine-readable copy, represented in a format whose specification is
-available to the general public, whose contents can be viewed and edited
-directly and straightforwardly with generic text editors or (for images
-composed of pixels) generic paint programs or (for drawings) some
-widely available drawing editor, and that is suitable for input to text
-formatters or for automatic translation to a variety of formats
-suitable for input to text formatters. A copy made in an otherwise
-Transparent file format whose markup has been designed to thwart or
-discourage subsequent modification by readers is not Transparent.  A
-copy that is not "Transparent" is called "Opaque".
-
-   Examples of suitable formats for Transparent copies include plain
-ASCII without markup, Texinfo input format, LaTeX input format, SGML or
-XML using a publicly available DTD, and standard-conforming simple HTML
-designed for human modification. Opaque formats include PostScript, PDF,
-proprietary formats that can be read and edited only by proprietary
-word processors, SGML or XML for which the DTD and/or processing tools
-are not generally available, and the machine-generated HTML produced by
-some word processors for output purposes only.
-
-   The "Title Page" means, for a printed book, the title page itself,
-plus such following pages as are needed to hold, legibly, the material
-this License requires to appear in the title page. For works in formats
-which do not have any title page as such, "Title Page" means the text
-near the most prominent appearance of the work's title, preceding the
-beginning of the body of the text.
-
-
-File: gnash.info,  Node: 2_ VERBATIM COPYING,  Next: 3_ COPYING IN QUANTITY,  
Prev: 1_ APPLICABILITY AND DEFINITIONS,  Up: GNU Free Documentation License
-
-A.3 2. VERBATIM COPYING
-=======================
-
-You may copy and distribute the Document (*note fdl-document::) in any
-medium, either commercially or noncommercially, provided that this
-License, the copyright notices, and the license notice saying this
-License applies to the Document are reproduced in all copies, and that
-you add no other conditions whatsoever to those of this License. You
-may not use technical measures to obstruct or control the reading or
-further copying of the copies you make or distribute. However, you may
-accept compensation in exchange for copies. If you distribute a large
-enough number of copies you must also follow the conditions in section
-3 (*note 3_ COPYING IN QUANTITY::).
-
-   You may also lend copies, under the same conditions stated above,
-and you may publicly display copies.
-
-
-File: gnash.info,  Node: 3_ COPYING IN QUANTITY,  Next: 4_ MODIFICATIONS,  
Prev: 2_ VERBATIM COPYING,  Up: GNU Free Documentation License
-
-A.4 3. COPYING IN QUANTITY
-==========================
-
-If you publish printed copies of the Document (*note fdl-document::)
-numbering more than 100, and the Document's license notice requires
-Cover Texts (*note fdl-cover-texts::), you must enclose the copies in
-covers that carry, clearly and legibly, all these Cover Texts:
-Front-Cover Texts on the front cover, and Back-Cover Texts on the back
-cover. Both covers must also clearly and legibly identify you as the
-publisher of these copies. The front cover must present the full title
-with all words of the title equally prominent and visible. You may add
-other material on the covers in addition. Copying with changes limited
-to the covers, as long as they preserve the title of the Document
-(*note fdl-document::) and satisfy these conditions, can be treated as
-verbatim copying in other respects.
-
-   If the required texts for either cover are too voluminous to fit
-legibly, you should put the first ones listed (as many as fit
-reasonably) on the actual cover, and continue the rest onto adjacent
-pages.
-
-   If you publish or distribute Opaque (*note fdl-transparent::) copies
-of the Document (*note fdl-document::) numbering more than 100, you
-must either include a machine-readable Transparent (*note
-fdl-transparent::) copy along with each Opaque copy, or state in or
-with each Opaque copy a publicly-accessible computer-network location
-containing a complete Transparent copy of the Document, free of added
-material, which the general network-using public has access to download
-anonymously at no charge using public-standard network protocols. If
-you use the latter option, you must take reasonably prudent steps, when
-you begin distribution of Opaque copies in quantity, to ensure that
-this Transparent copy will remain thus accessible at the stated
-location until at least one year after the last time you distribute an
-Opaque copy (directly or through your agents or retailers) of that
-edition to the public.
-
-   It is requested, but not required, that you contact the authors of
-the Document (*note fdl-document::) well before redistributing any
-large number of copies, to give them a chance to provide you with an
-updated version of the Document.
-
-
-File: gnash.info,  Node: 4_ MODIFICATIONS,  Next: 5_ COMBINING DOCUMENTS,  
Prev: 3_ COPYING IN QUANTITY,  Up: GNU Free Documentation License
-
-A.5 4. MODIFICATIONS
-====================
-
-You may copy and distribute a Modified Version (*note fdl-modified::)
-of the Document (*note fdl-document::) under the conditions of sections
-2 (*note 2_ VERBATIM COPYING::) and 3 (*note 3_ COPYING IN QUANTITY::)
-above, provided that you release the Modified Version under precisely
-this License, with the Modified Version filling the role of the
-Document, thus licensing distribution and modification of the Modified
-Version to whoever possesses a copy of it. In addition, you must do
-these things in the Modified Version:
-
-   * *A. * Use in the Title Page (*note fdl-title-page::) (and on the
-     covers, if any) a title distinct from that of the Document (*note
-     fdl-document::), and from those of previous versions (which
-     should, if there were any, be listed in the History section of the
-     Document). You may use the same title as a previous version if the
-     original publisher of that version gives permission.
-
-   * *B. * List on the Title Page (*note fdl-title-page::), as authors,
-     one or more persons or entities responsible for authorship of the
-     modifications in the Modified Version (*note fdl-modified::),
-     together with at least five of the principal authors of the
-     Document (*note fdl-document::) (all of its principal authors, if
-     it has less than five).
-
-   * *C. * State on the Title Page (*note fdl-title-page::) the name of
-     the publisher of the Modified Version (*note fdl-modified::), as
-     the publisher.
-
-   * *D. * Preserve all the copyright notices of the Document (*note
-     fdl-document::).
-
-   * *E. * Add an appropriate copyright notice for your modifications
-     adjacent to the other copyright notices.
-
-   * *F. * Include, immediately after the copyright notices, a license
-     notice giving the public permission to use the Modified Version
-     (*note fdl-modified::) under the terms of this License, in the
-     form shown in the Addendum below.
-
-   * *G. * Preserve in that license notice the full lists of  Invariant
-     Sections (*note fdl-invariant::) and required Cover Texts (*note
-     fdl-cover-texts::) given in the Document's (*note fdl-document::)
-     license notice.
-
-   * *H. * Include an unaltered copy of this License.
-
-   * *I. * Preserve the section entitled "History", and its title, and
-     add to it an item stating at least the title, year, new authors,
-     and publisher of the Modified Version  (*note fdl-modified::)as
-     given on the Title Page (*note fdl-title-page::).  If there is no
-     section entitled "History" in the Document (*note fdl-document::),
-     create one stating the title, year, authors, and publisher of the
-     Document as given on its Title Page, then add an item describing
-     the Modified Version as stated in the previous sentence.
-
-   * *J. * Preserve the network location, if any, given in the Document
-     (*note fdl-document::) for public access to a Transparent (*note
-     fdl-transparent::) copy of the Document, and likewise the network
-     locations given in the Document for previous versions it was based
-     on. These may be placed in the "History" section.  You may omit a
-     network location for a work that was published at least four years
-     before the Document itself, or if the original publisher of the
-     version it refers to gives permission.
-
-   * *K. * In any section entitled "Acknowledgements" or "Dedications",
-     preserve the section's title, and preserve in the section all the
-     substance and tone of each of the contributor acknowledgements
-     and/or dedications given therein.
-
-   * *L. * Preserve all the Invariant Sections (*note fdl-invariant::)
-     of the Document (*note fdl-document::), unaltered in their text
-     and in their titles.  Section numbers or the equivalent are not
-     considered part of the section titles.
-
-   * *M. * Delete any section entitled "Endorsements". Such a section
-     may not be included in the Modified Version (*note fdl-modified::).
-
-   * *N. * Do not retitle any existing section as "Endorsements" or to
-     conflict in title with any Invariant Section (*note
-     fdl-invariant::).
-
-   If the Modified Version (*note fdl-modified::) includes new
-front-matter sections or appendices that qualify as Secondary Sections
-(*note fdl-secondary::) and contain no material copied from the
-Document, you may at your option designate some or all of these
-sections as invariant. To do this, add their titles to the list of
-Invariant Sections (*note fdl-invariant::) in the Modified Version's
-license notice.  These titles must be distinct from any other section
-titles.
-
-   You may add a section entitled "Endorsements", provided it contains
-nothing but endorsements of your Modified Version (*note
-fdl-modified::) by various parties-for example, statements of peer
-review or that the text has been approved by an organization as the
-authoritative definition of a standard.
-
-   You may add a passage of up to five words as a Front-Cover Text
-(*note fdl-cover-texts::), and a passage of up to 25 words as a
-Back-Cover Text (*note fdl-cover-texts::), to the end of the list of
-Cover Texts (*note fdl-cover-texts::) in the Modified Version (*note
-fdl-modified::).  Only one passage of Front-Cover Text and one of
-Back-Cover Text may be added by (or through arrangements made by) any
-one entity. If the Document (*note fdl-document::) already includes a
-cover text for the same cover, previously added by you or by
-arrangement made by the same entity you are acting on behalf of, you
-may not add another; but you may replace the old one, on explicit
-permission from the previous publisher that added the old one.
-
-   The author(s) and publisher(s) of the Document (*note
-fdl-document::) do not by this License give permission to use their
-names for publicity for or to assert or imply endorsement of any
-Modified Version  (*note fdl-modified::).
-
-
-File: gnash.info,  Node: 5_ COMBINING DOCUMENTS,  Next: 6_ COLLECTIONS OF 
DOCUMENTS,  Prev: 4_ MODIFICATIONS,  Up: GNU Free Documentation License
-
-A.6 5. COMBINING DOCUMENTS
-==========================
-
-You may combine the Document (*note fdl-document::) with other
-documents released under this License, under the terms defined in
-section 4 (*note 4_ MODIFICATIONS::) above for modified versions,
-provided that you include in the combination all of the Invariant
-Sections (*note fdl-invariant::) of all of the original documents,
-unmodified, and list them all as Invariant Sections of your combined
-work in its license notice.
-
-   The combined work need only contain one copy of this License, and
-multiple identical Invariant Sections (*note fdl-invariant::) may be
-replaced with a single copy. If there are multiple Invariant Sections
-with the same name but different contents, make the title of each such
-section unique by adding at the end of it, in parentheses, the name of
-the original author or publisher of that section if known, or else a
-unique number. Make the same adjustment to the section titles in the
-list of Invariant Sections in the license notice of the combined work.
-
-   In the combination, you must combine any sections entitled "History"
-in the various original documents, forming one section entitled
-"History"; likewise combine any sections entitled "Acknowledgements",
-and any sections entitled "Dedications".  You must delete all sections
-entitled "Endorsements."
-
-
-File: gnash.info,  Node: 6_ COLLECTIONS OF DOCUMENTS,  Next: 7_ AGGREGATION 
WITH INDEPENDENT WORKS,  Prev: 5_ COMBINING DOCUMENTS,  Up: GNU Free 
Documentation License
-
-A.7 6. COLLECTIONS OF DOCUMENTS
-===============================
-
-You may make a collection consisting of the Document (*note
-fdl-document::) and other documents released under this License, and
-replace the individual copies of this License in the various documents
-with a single copy that is included in the collection, provided that
-you follow the rules of this License for verbatim copying of each of the
-documents in all other respects.
-
-   You may extract a single document from such a collection, and
-distribute it individually under this License, provided you insert a
-copy of this License into the extracted document, and follow this
-License in all other respects regarding verbatim copying of that
-document.
-
-
-File: gnash.info,  Node: 7_ AGGREGATION WITH INDEPENDENT WORKS,  Next: 8_ 
TRANSLATION,  Prev: 6_ COLLECTIONS OF DOCUMENTS,  Up: GNU Free Documentation 
License
-
-A.8 7. AGGREGATION WITH INDEPENDENT WORKS
-=========================================
-
-A compilation of the Document (*note fdl-document::) or its derivatives
-with other separate and independent documents or works, in or on a
-volume of a storage or distribution medium, does not as a whole count
-as a Modified Version (*note fdl-modified::) of the Document, provided
-no compilation copyright is claimed for the compilation.  Such a
-compilation is called an "aggregate", and this License does not apply
-to the other self-contained works thus compiled with the Document , on
-account of their being thus compiled, if they are not themselves
-derivative works of the Document.  If the Cover Text (*note
-fdl-cover-texts::) requirement of section 3 (*note 3_ COPYING IN
-QUANTITY::) is applicable to these copies of the Document, then if the
-Document is less than one quarter of the entire aggregate, the
-Document's Cover Texts may be placed on covers that surround only the
-Document within the aggregate. Otherwise they must appear on covers
-around the whole aggregate.
-
-
-File: gnash.info,  Node: 8_ TRANSLATION,  Next: 9_ TERMINATION,  Prev: 7_ 
AGGREGATION WITH INDEPENDENT WORKS,  Up: GNU Free Documentation License
-
-A.9 8. TRANSLATION
-==================
-
-Translation is considered a kind of modification, so you may distribute
-translations of the Document (*note fdl-document::) under the terms of
-section 4 (*note 4_ MODIFICATIONS::). Replacing  Invariant Sections
-(*note fdl-invariant::) with translations requires special permission
-from their copyright holders, but you may include translations of some
-or all Invariant Sections in addition to the original versions of these
-Invariant Sections. You may include a translation of this License
-provided that you also include the original English version of this
-License. In case of a disagreement between the translation and the
-original English version of this License, the original English version
-will prevail.
-
-
-File: gnash.info,  Node: 9_ TERMINATION,  Next: 10_ FUTURE REVISIONS OF THIS 
LICENSE,  Prev: 8_ TRANSLATION,  Up: GNU Free Documentation License
-
-A.10 9. TERMINATION
-===================
-
-You may not copy, modify, sublicense, or distribute the Document (*note
-fdl-document::) except as expressly provided for under this License.
-Any other attempt to copy, modify, sublicense or distribute the
-Document is void, and will automatically terminate your rights under
-this License. However, parties who have received copies, or rights,
-from you under this License will not have their licenses terminated so
-long as such parties remain in full compliance.
-
-
-File: gnash.info,  Node: 10_ FUTURE REVISIONS OF THIS LICENSE,  Next: 
Addendum,  Prev: 9_ TERMINATION,  Up: GNU Free Documentation License
-
-A.11 10. FUTURE REVISIONS OF THIS LICENSE
-=========================================
-
-The Free Software Foundation (http://www.gnu.org/fsf/fsf.html) may
-publish new, revised versions of the GNU Free Documentation License
-from time to time. Such new versions will be similar in spirit to the
-present version, but may differ in detail to address new problems or
-concerns. See http://www.gnu.org/copyleft/
-(http://www.gnu.org/copyleft).
-
-   Each version of the License is given a distinguishing version
-number. If the Document (*note fdl-document::) specifies that a
-particular numbered version of this License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that specified version or of any later version
-that has been published (not as a draft) by the Free Software
-Foundation. If the Document does not specify a version number of this
-License, you may choose any version ever published (not as a draft) by
-the Free Software Foundation.
-
-
-File: gnash.info,  Node: Addendum,  Prev: 10_ FUTURE REVISIONS OF THIS 
LICENSE,  Up: GNU Free Documentation License
-
-A.12 Addendum
-=============
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and license
-notices just after the title page:
-
-     Copyright  YEAR YOUR NAME.
-
-     Permission is granted to copy, distribute and/or modify this
-     document under the terms of the GNU Free Documentation License,
-     Version 1.1 or any later version published by the Free Software
-     Foundation; with the Invariant Sections (*note fdl-invariant::)
-     being LIST THEIR TITLES, with the Front-Cover Texts (*note
-     fdl-cover-texts::) being LIST, and with the Back-Cover Texts
-     (*note fdl-cover-texts::) being LIST.  A copy of the license is
-     included in the section entitled "GNU Free Documentation License".
-
-   If you have no Invariant Sections (*note fdl-invariant::), write
-"with no Invariant Sections" instead of saying which ones are
-invariant.  If you have no Front-Cover Texts (*note fdl-cover-texts::),
-write "no Front-Cover Texts" instead of "Front-Cover Texts being LIST";
-likewise for Back-Cover Texts (*note fdl-cover-texts::).
-
-   If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License
-(http://www.gnu.org/copyleft/gpl.html), to permit their use in free
-software.
-
-
-
-Tag Table:
-Node: Top159
-Node: Introduction1666
-Node: What Is Supported ?2454
-Node: Audience4744
-Node: Using Gnash5196
-Node: Gnash Command Line Options51519
-Ref: Gnash Command Line Options <1>51861
-Node: Gnash Interactive Control Keys57711
-Ref: Gnash Interactive Control Keys <1>58073
-Node: User Configuration File59015
-Ref: User Configuration Variables59789
-Node: Installing and Configuring Gnash78651
-Node: Requirements79112
-Node: Hardware Requirements79428
-Ref: Build Matrix80212
-Node: Software Requirements81653
-Node: Code Dependencies82569
-Ref: Code Dependency Table83286
-Node: Testing Dependencies103970
-Ref: Testing Dependency Table104283
-Node: Documentation Dependencies106249
-Ref: Documentation Dependency Table106497
-Node: Downloading Gnash114284
-Node: Using a Package Manager114950
-Node: Getting the Source115579
-Node: Releases115936
-Node: Repository116491
-Node: Snapshot117324
-Node: Pre-Compile Configuration117773
-Node: Features119585
-Ref: Configuration Options - Features120192
-Node: Specifying Custom Paths127381
-Ref: Custom Path Options127879
-Node: Cross Compiling137423
-Node: Building from Source140153
-Node: Compiling the Code140569
-Node: Creating the Documentation141511
-Node: Running the Tests142859
-Node: Using DejaGnu143274
-Node: Increasing Verbosity143642
-Node: Running Some Tests144155
-Node: Running The Tests Manually144943
-Node: Movie tests145583
-Node: ActionScript Unit Tests145915
-Node: Installation146209
-Node: Libraries147456
-Node: Executables148328
-Node: Documentation149190
-Node: Reporting Bugs149937
-Node: Compile the latest Gnash build150999
-Node: Determine if the bug was previously reported152266
-Node: Review the bug writing guidelines153084
-Node: Filing a bug report154156
-Node: Technical Specifications154435
-Node: Memory Management154849
-Node: Security156539
-Node: Local Shared Objects157684
-Node: Local Connections159219
-Node: Glossary160609
-Ref: A160734
-Ref: C161558
-Ref: D161844
-Ref: E162256
-Ref: F162497
-Ref: G163385
-Ref: K164393
-Ref: L164819
-Ref: M164955
-Ref: N165314
-Ref: O165471
-Ref: P166086
-Ref: Q166373
-Ref: R166557
-Ref: S167807
-Ref: T169359
-Ref: X170067
-Node: RTMP Protocol170160
-Node: AMF Format179923
-Node: Authors180895
-Node: GNU Free Documentation License181592
-Node: 0_ PREAMBLE182351
-Node: 1_ APPLICABILITY AND DEFINITIONS183653
-Ref: fdl-document183874
-Ref: fdl-modified184165
-Ref: fdl-secondary184352
-Ref: fdl-invariant184997
-Ref: fdl-cover-texts185246
-Ref: fdl-transparent185459
-Ref: fdl-title-page186749
-Node: 2_ VERBATIM COPYING187138
-Node: 3_ COPYING IN QUANTITY188114
-Node: 4_ MODIFICATIONS190467
-Node: 5_ COMBINING DOCUMENTS196523
-Node: 6_ COLLECTIONS OF DOCUMENTS198016
-Node: 7_ AGGREGATION WITH INDEPENDENT WORKS198903
-Node: 8_ TRANSLATION200127
-Node: 9_ TERMINATION201026
-Node: 10_ FUTURE REVISIONS OF THIS LICENSE201677
-Node: Addendum202813
-
-End Tag Table

Index: packaging/doc/gprocessor.1.in
===================================================================
RCS file: packaging/doc/gprocessor.1.in
diff -N packaging/doc/gprocessor.1.in
--- packaging/doc/gprocessor.1.in       16 Feb 2008 17:51:06 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,47 +0,0 @@
-.\" -*- coding: us-ascii -*-
-.if \n(.g .ds T< \\FC
-.if \n(.g .ds T> \\F[\n[.fam]]
-.de URL
-\\$2 \(la\\$1\(ra\\$3
-..
-.if \n(.g .mso www.tmac
-.TH gprocessor 1 "13 February 2008"  
-.SH NAME
-gprocessor \- Gnash SWF Processor
-.SH Synopsis
-.nf
-
-gprocessor (options)... (file)...
-.fi
-.SH DESCRIPTION
-Gprocessor is an debugging tool for SWF files, that is a companion to
-Gnash. This is most often used for debugging and running testcases,
-as this tool is equivalant to running Gnash with no graphic
-output. This tool is primarily used by Gnash developers, or anyone
-that wishes to run the Gnash test cases.
-.TP 
--h
-Print usage info.
-.TP 
--w
-Write a .gsc file with preprocessed info, for each input file.
-.TP 
--vp
-Be verbose about movie parsing.
-.TP 
--va
-Be verbose about ActionScript.
-.TP 
--d [ms]
-Milliseconds delay between advances (0 by default). If '-1'
-the delay will be computed from the FPS.
-.TP 
--f [frames]
-Allow the given number of frame advancements. Keep advancing
-untill any other stop condition is encountered if set to 0
-(default).
-.TP 
--r [times]
-Allow the given number of complete runs. Keep looping
-undefinitely if set to 0. Default is 1 (end as soon as the
-last frame is reached).

Index: packaging/doc/soldumper.1.in
===================================================================
RCS file: packaging/doc/soldumper.1.in
diff -N packaging/doc/soldumper.1.in
--- packaging/doc/soldumper.1.in        16 Feb 2008 17:51:06 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,31 +0,0 @@
-.\" -*- coding: us-ascii -*-
-.if \n(.g .ds T< \\FC
-.if \n(.g .ds T> \\F[\n[.fam]]
-.de URL
-\\$2 \(la\\$1\(ra\\$3
-..
-.if \n(.g .mso www.tmac
-.TH soldumper 1 "13 February 2008"  
-.SH NAME
-soldumper \- Gnash Local Shared Object file Dumper
-.SH Synopsis
-.nf
-
-soldumper (options)... (file)...
-.fi
-.SH DESCRIPTION
-Dump information about the .sol files used by the SharedObject
-ActionScript class. These files are comprised of a header, and a
-collection of SWF AMF Objects, normally not viewable by the user.
-.TP 
--h
-Print usage info.
-.TP 
--l
-List all the .sol files in the default path.
-.TP 
--f
-Ignore the global setting, use the current directory for files.
-.TP 
--v
-Verbose output.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]