JAL-857 merge from develop
authortcofoegbu <tcnofoegbu@dundee.ac.uk>
Tue, 28 Jul 2015 09:27:35 +0000 (10:27 +0100)
committertcofoegbu <tcnofoegbu@dundee.ac.uk>
Tue, 28 Jul 2015 09:27:35 +0000 (10:27 +0100)
297 files changed:
.classpath
TESTNG [new file with mode: 0644]
THIRDPARTYLIBS
appletlib/JmolApplet-12.2.4.jar [deleted file]
appletlib/JmolApplet-14.2.14_2015.06.11.jar [new file with mode: 0644]
build.xml
examples/biojson-doc/.gitignore [new file with mode: 0755]
examples/biojson-doc/LICENSE [new file with mode: 0755]
examples/biojson-doc/README.md [new file with mode: 0755]
examples/biojson-doc/biojsonschema.json [new file with mode: 0644]
examples/biojson-doc/bower.json [new file with mode: 0755]
examples/biojson-doc/css/docson.css [new file with mode: 0755]
examples/biojson-doc/docson-swagger.js [new file with mode: 0755]
examples/biojson-doc/docson.js [new file with mode: 0755]
examples/biojson-doc/index.html [new file with mode: 0755]
examples/biojson-doc/lib/handlebars.js [new file with mode: 0755]
examples/biojson-doc/lib/highlight.js [new file with mode: 0755]
examples/biojson-doc/lib/jquery.js [new file with mode: 0755]
examples/biojson-doc/lib/jsonpointer.js [new file with mode: 0755]
examples/biojson-doc/lib/marked.js [new file with mode: 0755]
examples/biojson-doc/lib/require.js [new file with mode: 0755]
examples/biojson-doc/lib/traverse.js [new file with mode: 0755]
examples/biojson-doc/templates/box.html [new file with mode: 0755]
examples/biojson-doc/templates/signature.html [new file with mode: 0755]
examples/biojson-doc/tests/additionalItems.json [new file with mode: 0755]
examples/biojson-doc/tests/additionalProperties.json [new file with mode: 0755]
examples/biojson-doc/tests/address.json [new file with mode: 0755]
examples/biojson-doc/tests/allOf.json [new file with mode: 0755]
examples/biojson-doc/tests/anyOf.json [new file with mode: 0755]
examples/biojson-doc/tests/basic.json [new file with mode: 0755]
examples/biojson-doc/tests/definitions.json [new file with mode: 0755]
examples/biojson-doc/tests/dependencies.json [new file with mode: 0755]
examples/biojson-doc/tests/enum.json [new file with mode: 0755]
examples/biojson-doc/tests/example2.json [new file with mode: 0755]
examples/biojson-doc/tests/fstab.json [new file with mode: 0755]
examples/biojson-doc/tests/geo.json [new file with mode: 0755]
examples/biojson-doc/tests/invoice.json [new file with mode: 0755]
examples/biojson-doc/tests/items.json [new file with mode: 0755]
examples/biojson-doc/tests/maxItems.json [new file with mode: 0755]
examples/biojson-doc/tests/maxLength.json [new file with mode: 0755]
examples/biojson-doc/tests/maxProperties.json [new file with mode: 0755]
examples/biojson-doc/tests/maximum.json [new file with mode: 0755]
examples/biojson-doc/tests/minItems.json [new file with mode: 0755]
examples/biojson-doc/tests/minLength.json [new file with mode: 0755]
examples/biojson-doc/tests/minProperties.json [new file with mode: 0755]
examples/biojson-doc/tests/minimum.json [new file with mode: 0755]
examples/biojson-doc/tests/multipleOf.json [new file with mode: 0755]
examples/biojson-doc/tests/not.json [new file with mode: 0755]
examples/biojson-doc/tests/oneOf.json [new file with mode: 0755]
examples/biojson-doc/tests/pattern.json [new file with mode: 0755]
examples/biojson-doc/tests/patternProperties.json [new file with mode: 0755]
examples/biojson-doc/tests/properties.json [new file with mode: 0755]
examples/biojson-doc/tests/ref.json [new file with mode: 0755]
examples/biojson-doc/tests/refRemote.json [new file with mode: 0755]
examples/biojson-doc/tests/required.json [new file with mode: 0755]
examples/biojson-doc/tests/schema.json [new file with mode: 0755]
examples/biojson-doc/tests/test.html [new file with mode: 0755]
examples/biojson-doc/tests/type.json [new file with mode: 0755]
examples/biojson-doc/tests/uniqueItems.json [new file with mode: 0755]
examples/biojson-doc/widget.js [new file with mode: 0755]
examples/biojsonschema.json [new file with mode: 0644]
examples/example.json
examples/testdata/test.aln [new file with mode: 0644]
examples/testdata/test.amsa [new file with mode: 0644]
examples/testdata/test.blc [new file with mode: 0644]
examples/testdata/test.html [new file with mode: 0644]
examples/testdata/test.jvp [new file with mode: 0644]
examples/testdata/test.msf [new file with mode: 0644]
examples/testdata/test.pfam [new file with mode: 0644]
examples/testdata/test.pileup [new file with mode: 0644]
examples/testdata/test.pir [new file with mode: 0644]
examples/testdata/test.rnaml [new file with mode: 0644]
examples/testdata/uniref50_test_tree [new file with mode: 0644]
help/html/calculations/columnFilterByAnnotation.html
help/html/features/bioJsonFormat.html [new file with mode: 0644]
help/html/features/clarguments.html
help/html/features/pdbsequencefetcher.html
help/html/features/seqfetch.html
help/html/features/structurechooser.html
help/html/io/fileformats.html
help/html/menus/alignmentMenu.html
lib/Jmol-12.2.4.jar [deleted file]
lib/Jmol-14.2.14_2015.06.11.jar [new file with mode: 0644]
lib/VARNAv3-93.jar [moved from lib/VARNAv3-91.jar with 65% similarity]
nbproject/project.properties
resources/lang/Messages.properties
schemas/jalview.xsd
src/ext/edu/ucsf/rbvi/strucviz2/ChimeraManager.java
src/jalview/analysis/AAFrequency.java
src/jalview/analysis/AlignmentSorter.java
src/jalview/api/AlignExportSettingI.java
src/jalview/api/ComplexAlignFile.java
src/jalview/appletgui/AlignFrame.java
src/jalview/appletgui/AlignmentPanel.java
src/jalview/appletgui/AppletJmol.java
src/jalview/appletgui/AppletJmolBinding.java
src/jalview/appletgui/ExtJmol.java
src/jalview/appletgui/IdPanel.java
src/jalview/bin/Jalview.java
src/jalview/bin/JalviewLite.java
src/jalview/binding/Alignment.java
src/jalview/binding/Annotation.java
src/jalview/binding/AnnotationElement.java
src/jalview/binding/Colour.java
src/jalview/binding/Feature.java
src/jalview/binding/FeatureSettings.java
src/jalview/binding/Features.java
src/jalview/binding/JGroup.java
src/jalview/binding/JSeq.java
src/jalview/binding/JalviewModel.java
src/jalview/binding/JalviewModelSequence.java
src/jalview/binding/JalviewUserColours.java
src/jalview/binding/Pdbentry.java
src/jalview/binding/PdbentryItem.java
src/jalview/binding/Pdbids.java
src/jalview/binding/Property.java
src/jalview/binding/Sequence.java
src/jalview/binding/SequenceSet.java
src/jalview/binding/SequenceType.java
src/jalview/binding/Setting.java
src/jalview/binding/Tree.java
src/jalview/binding/UserColourScheme.java
src/jalview/binding/UserColours.java
src/jalview/binding/VAMSAS.java
src/jalview/binding/VamsasModel.java
src/jalview/binding/Viewport.java
src/jalview/datamodel/Alignment.java
src/jalview/datamodel/AlignmentAnnotation.java
src/jalview/datamodel/AlignmentExportData.java [new file with mode: 0644]
src/jalview/datamodel/AlignmentI.java
src/jalview/datamodel/Annotation.java
src/jalview/datamodel/RnaViewerModel.java [new file with mode: 0644]
src/jalview/datamodel/Sequence.java
src/jalview/datamodel/xdb/embl/EmblEntry.java
src/jalview/ext/jmol/JalviewJmolBinding.java
src/jalview/ext/jmol/PDBFileWithJmol.java
src/jalview/ext/varna/RnaModel.java [new file with mode: 0644]
src/jalview/gui/AlignExportSettings.java
src/jalview/gui/AlignFrame.java
src/jalview/gui/AlignViewport.java
src/jalview/gui/AlignmentPanel.java
src/jalview/gui/AnnotationPanel.java
src/jalview/gui/AppJmol.java
src/jalview/gui/AppJmolBinding.java
src/jalview/gui/AppVarna.java
src/jalview/gui/AppVarnaBinding.java
src/jalview/gui/ChimeraViewFrame.java
src/jalview/gui/CutAndPasteTransfer.java
src/jalview/gui/Desktop.java
src/jalview/gui/Jalview2XML.java
src/jalview/gui/PopupMenu.java
src/jalview/gui/ProgressBar.java
src/jalview/gui/ScriptWindow.java [deleted file]
src/jalview/gui/SequenceRenderer.java
src/jalview/io/AnnotationFile.java
src/jalview/io/AppletFormatAdapter.java
src/jalview/io/BioJsHTMLOutput.java
src/jalview/io/FeaturesFile.java
src/jalview/io/FileLoader.java
src/jalview/io/FormatAdapter.java
src/jalview/io/HtmlFile.java
src/jalview/io/HtmlSvgOutput.java
src/jalview/io/IdentifyFile.java
src/jalview/io/JSONFile.java
src/jalview/io/SequenceAnnotationReport.java
src/jalview/io/vamsas/Sequencefeature.java
src/jalview/jbgui/GAlignExportSettings.java
src/jalview/jbgui/GAlignFrame.java
src/jalview/jbgui/PDBDocFieldPreferences.java
src/jalview/json/binding/v1/BioJSRepositoryPojo.java
src/jalview/renderer/AnnotationRenderer.java
src/jalview/renderer/seqfeatures/FeatureRenderer.java
src/jalview/schemabinding/version2/.castor.cdr
src/jalview/schemabinding/version2/CalcIdParam.java
src/jalview/schemabinding/version2/JGroup.java
src/jalview/schemabinding/version2/JSeq.java
src/jalview/schemabinding/version2/RnaViewer.java [new file with mode: 0644]
src/jalview/schemabinding/version2/SecondaryStructure.java [new file with mode: 0644]
src/jalview/schemabinding/version2/Setting.java
src/jalview/schemabinding/version2/StructureState.java
src/jalview/schemabinding/version2/Tree.java
src/jalview/schemabinding/version2/Viewport.java
src/jalview/schemabinding/version2/descriptors/JSeqDescriptor.java
src/jalview/schemabinding/version2/descriptors/RnaViewerDescriptor.java [new file with mode: 0644]
src/jalview/schemabinding/version2/descriptors/SecondaryStructureDescriptor.java [new file with mode: 0644]
src/jalview/schemes/GraduatedColor.java
src/jalview/structure/SecondaryStructureListener.java
src/jalview/structure/StructureSelectionManager.java
src/jalview/util/ImageMaker.java
src/jalview/util/Platform.java
src/jalview/util/StringUtils.java
src/jalview/viewmodel/AlignmentViewport.java
src/jalview/viewmodel/seqfeatures/FeatureRendererModel.java
src/jalview/ws/EnfinEnvision2OneWay.java [deleted file]
src/jalview/ws/dbsources/PDBRestClient.java
src/jalview/ws/dbsources/das/datamodel/DasSourceRegistry.java
src/jalview/ws/jws2/AADisorderClient.java
src/jalview/ws/jws2/JabaParamStore.java
src/jalview/ws/jws2/MsaWSThread.java
test/MCview/AtomTest.java
test/MCview/BondTest.java
test/MCview/PDBChainTest.java
test/MCview/PDBfileTest.java
test/MCview/ResidueTest.java
test/com/stevesoft/pat/RegexWriterTest.java
test/jalview/analysis/AAFrequencyTest.java
test/jalview/analysis/AlignSeqTest.java [new file with mode: 0644]
test/jalview/analysis/AlignmentAnnotationUtilsTest.java
test/jalview/analysis/AlignmentUtilsTests.java
test/jalview/analysis/AnnotationSorterTest.java
test/jalview/analysis/CodingUtilsTest.java
test/jalview/analysis/CrossRefTest.java
test/jalview/analysis/DnaTest.java
test/jalview/analysis/GroupingTest.java
test/jalview/analysis/ParsePropertiesTest.java
test/jalview/analysis/RnaTest.java [new file with mode: 0644]
test/jalview/analysis/TestAlignSeq.java
test/jalview/analysis/scoremodels/FeatureScoreModelTest.java
test/jalview/bin/CommandLineOperations.java
test/jalview/commands/EditCommandTest.java
test/jalview/datamodel/AlignedCodonFrameTest.java
test/jalview/datamodel/AlignedCodonIteratorTest.java
test/jalview/datamodel/AlignedCodonTest.java
test/jalview/datamodel/AlignmentAnnotationTests.java
test/jalview/datamodel/AlignmentTest.java
test/jalview/datamodel/ColumnSelectionTest.java
test/jalview/datamodel/DBRefEntryTest.java
test/jalview/datamodel/MappingTest.java
test/jalview/datamodel/PDBEntryTest.java
test/jalview/datamodel/SearchResultsTest.java
test/jalview/datamodel/SeqCigarTest.java
test/jalview/datamodel/SequenceDummyTest.java
test/jalview/datamodel/SequenceTest.java
test/jalview/datamodel/xdb/embl/EmblFileTest.java
test/jalview/ext/jmol/PDBFileWithJmolTest.java
test/jalview/ext/paradise/TestAnnotate3D.java
test/jalview/ext/rbvi/chimera/ChimeraCommandsTest.java
test/jalview/ext/rbvi/chimera/ChimeraConnect.java
test/jalview/ext/rbvi/chimera/JalviewChimeraView.java
test/jalview/gui/AlignViewportTest.java
test/jalview/gui/AnnotationChooserTest.java
test/jalview/gui/AppVarnaTest.java [new file with mode: 0644]
test/jalview/gui/FontChooserTest.java
test/jalview/gui/HelpTest.java
test/jalview/gui/JAL1353bugdemo.java
test/jalview/gui/JvSwingUtilsTest.java
test/jalview/gui/PDBSearchPanelTest.java
test/jalview/gui/PaintRefresherTest.java
test/jalview/gui/PopupMenuTest.java
test/jalview/gui/ProgressBarTest.java
test/jalview/gui/SequenceRendererTest.java
test/jalview/gui/StructureChooserTest.java
test/jalview/io/AnnotatedPDBFileInputTest.java
test/jalview/io/AnnotationFileIOTest.java
test/jalview/io/BioJsHTMLOutputTest.java
test/jalview/io/FileIOTester.java
test/jalview/io/Gff3tests.java
test/jalview/io/HtmlFileTest.java
test/jalview/io/IdentifyFileTest.java [new file with mode: 0644]
test/jalview/io/JSONFileTest.java
test/jalview/io/Jalview2xmlTests.java
test/jalview/io/NewickFileTests.java
test/jalview/io/PhylipFileTests.java
test/jalview/io/RNAMLfileTest.java
test/jalview/io/StockholmFileTest.java
test/jalview/io/TCoffeeScoreFileTest.java
test/jalview/schemes/DnaCodonTests.java
test/jalview/schemes/ResiduePropertiesTest.java
test/jalview/schemes/ScoreMatrixPrinter.java
test/jalview/structure/Mapping.java
test/jalview/structure/StructureSelectionManagerTest.java
test/jalview/structures/models/AAStructureBindingModelTest.java
test/jalview/util/ColorUtilsTest.java
test/jalview/util/ComparisonTest.java
test/jalview/util/DBRefUtilsTest.java
test/jalview/util/MapListTest.java
test/jalview/util/MappingUtilsTest.java
test/jalview/util/QuickSortTest.java
test/jalview/util/ShiftListTest.java
test/jalview/util/StringUtilsTest.java
test/jalview/viewmodel/styles/ViewStyleTest.java
test/jalview/ws/PDBSequenceFetcherTest.java
test/jalview/ws/dbsources/PDBRestClientTest.java
test/jalview/ws/dbsources/UniprotTest.java
test/jalview/ws/gui/Jws2ParamView.java
test/jalview/ws/jabaws/DisorderAnnotExportImport.java
test/jalview/ws/jabaws/JalviewJabawsTestUtils.java
test/jalview/ws/jabaws/JpredJabaStructExportImport.java
test/jalview/ws/jabaws/MinJabawsClientTests.java
test/jalview/ws/jabaws/RNAStructExportImport.java
test/jalview/ws/jws2/ParameterUtilsTest.java
test/jalview/ws/rest/RestClientTest.java
test/jalview/ws/rest/ShmmrRSBSService.java
test/jalview/ws/seqfetcher/DasSequenceFetcher.java
test/jalview/ws/seqfetcher/DbRefFetcherTest.java
utils/InstallAnywhere/Jalview.iap_xml
utils/JettyExamplesDir.java [new file with mode: 0644]

index 3fac886..473d937 100644 (file)
@@ -36,8 +36,6 @@
        <classpathentry kind="lib" path="lib/miglayout-4.0-swing.jar"/>
        <classpathentry kind="lib" path="lib/jswingreader-0.3.jar" sourcepath="/jswingreader"/>
        <classpathentry kind="lib" path="lib/commons-codec-1.3.jar"/>
-       <classpathentry kind="lib" path="lib/Jmol-12.2.4.jar" sourcepath="/Users/jimp/Documents/e6-workspace-new/Jmol/src"/>
-       <classpathentry kind="lib" path="appletlib/JmolApplet-12.2.4.jar"/>
        <classpathentry kind="lib" path="lib/jdas-1.0.4.jar"/>
        <classpathentry kind="lib" path="lib/spring-core-3.0.5.RELEASE.jar"/>
        <classpathentry kind="lib" path="lib/spring-web-3.0.5.RELEASE.jar"/>
@@ -48,7 +46,7 @@
        <classpathentry kind="lib" path="lib/jsoup-1.8.1.jar"/>
        <classpathentry kind="lib" path="lib/log4j-to-slf4j-2.0-rc2.jar"/>
        <classpathentry kind="lib" path="lib/slf4j-log4j12-1.7.7.jar"/>
-       <classpathentry kind="lib" path="lib/VARNAv3-91.jar"/>
+       <classpathentry kind="lib" path="lib/VARNAv3-93.jar"/>
        <classpathentry kind="lib" path="lib/jfreesvg-2.1.jar"/>
        <classpathentry kind="lib" path="lib/quaqua-filechooser-only-8.0.jar"/>
        <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/plugin"/>
@@ -66,6 +64,7 @@
        <classpathentry kind="lib" path="lib/jetty-http-9.2.10.v20150310.jar"/>
        <classpathentry kind="lib" path="lib/jetty-io-9.2.10.v20150310.jar"/>
        <classpathentry kind="lib" path="lib/java-json.jar"/>
+       <classpathentry kind="lib" path="lib/Jmol-14.2.14_2015.06.11.jar"/>
        <classpathentry kind="con" path="org.testng.TESTNG_CONTAINER"/>
        <classpathentry kind="output" path="classes"/>
 </classpath>
diff --git a/TESTNG b/TESTNG
new file mode 100644 (file)
index 0000000..f18885f
--- /dev/null
+++ b/TESTNG
@@ -0,0 +1,2 @@
+# Summary of TestNG for this branch
+"Functional" Tests: 242 ran, 121 failed.
index bbef868..3094939 100644 (file)
@@ -10,8 +10,8 @@ ext.edu.ucsf.rbvi.strucviz2 includes sources originally developed by Scooter Mor
 Licencing information for each library is given below:
 
 JGoogleAnalytics_0.3.jar       APL 2.0 License - http://code.google.com/p/jgoogleanalytics/
-Jmol-12.1.13.jar       GPL/LGPLv2 http://sourceforge.net/projects/jmol/files/
-VARNAv3-91.jar GPL licenced software by Kévin Darty, Alain Denise and Yann Ponty. http://varna.lri.fr
+Jmol-14.2.14_2015.06.11.jar    GPL/LGPLv2 http://sourceforge.net/projects/jmol/files/
+VARNAv3-93.jar GPL licenced software by K�vin Darty, Alain Denise and Yann Ponty. http://varna.lri.fr
 activation.jar 
 apache-mime4j-0.6.jar
 axis.jar
diff --git a/appletlib/JmolApplet-12.2.4.jar b/appletlib/JmolApplet-12.2.4.jar
deleted file mode 100644 (file)
index e17c4ac..0000000
Binary files a/appletlib/JmolApplet-12.2.4.jar and /dev/null differ
diff --git a/appletlib/JmolApplet-14.2.14_2015.06.11.jar b/appletlib/JmolApplet-14.2.14_2015.06.11.jar
new file mode 100644 (file)
index 0000000..5d6338c
Binary files /dev/null and b/appletlib/JmolApplet-14.2.14_2015.06.11.jar differ
index 02e8253..d0aad96 100755 (executable)
--- a/build.xml
+++ b/build.xml
     <property name="packageDir" value="dist" />
     <property name="outputJar" value="jalview.jar" />
     <!-- Jalview Applet JMol Jar Dependency -->
-    <property name="jmolJar" value="JmolApplet-12.2.4.jar" />
-    <property name="varnaJar" value="VARNAv3-91.jar" />
+    <property name="jmolJar" value="JmolApplet-14.2.14_2015.06.11.jar" />
+    <property name="varnaJar" value="VARNAv3-93.jar" />
     <property name="jsoup" value="jsoup-1.8.1.jar" />
     <property name="jsonSimple" value="json_simple-1.1.jar" />
     <property name="javaJson" value="java-json.jar" />
   <mkdir dir="${outputDir}" />
   <javac source="${javac.source}" target="${javac.target}" srcdir="${sourceDir}" destdir="${outputDir}" debug="${javac.debug}" 
                        classpathref="jalviewlite.deps" includes="jalview/appletgui/**"
-                       excludes="ext/**,MCview/**,org/**,vamsas/**,jalview/ext/paradise/**" />
+                       excludes="ext/**,gui/**,jbgui/**,MCview/**,org/**,vamsas/**,jalview/ext/rbvi/**,jalview/ext/paradise/**" />
 </target>
 
 <target name="packageApplet" depends="compileApplet, buildPropertiesFile">
diff --git a/examples/biojson-doc/.gitignore b/examples/biojson-doc/.gitignore
new file mode 100755 (executable)
index 0000000..0736b15
--- /dev/null
@@ -0,0 +1,3 @@
+.idea
+docson.iml
+/nbproject
diff --git a/examples/biojson-doc/LICENSE b/examples/biojson-doc/LICENSE
new file mode 100755 (executable)
index 0000000..e06d208
--- /dev/null
@@ -0,0 +1,202 @@
+Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
diff --git a/examples/biojson-doc/README.md b/examples/biojson-doc/README.md
new file mode 100755 (executable)
index 0000000..2b1de69
--- /dev/null
@@ -0,0 +1,114 @@
+<p align='right'>A <a href="http://www.swisspush.org">swisspush</a> project <a href="http://www.swisspush.org" border=0><img align="top"  src='https://1.gravatar.com/avatar/cf7292487846085732baf808def5685a?s=32'></a></p>
+Docson
+======
+
+Documentation for your JSON types.
+
+Give Docson a JSON schema and it will generate a [beautiful documentation](http://lbovet.github.io/docson/index.html#/docson/examples/example.json).
+
+## Features
+* [JSON schema](http://json-schema.org/) v4 keywords.
+* Runs entirely in the browser.
+* Render schema descriptions with markdown
+
+## Installation
+
+* Place the Docson distribution on the web server serving the schemas (to avoid cross-origin issues).
+
+## Usage
+
+* Open [index.html](http://lbovet.github.io/docson/index.html) and enter the schema path in the form field.
+* Or give the schema path directly as hash parameter: [index.html#/docson/examples/example.json](http://lbovet.github.io/docson/index.html#/docson/examples/example.json)
+
+Note that you can refer to a sub-schema by adding a json-pointer path as 'dollar-parameter': [index.html#/docson/examples/example.json$items](http://lbovet.github.io/docson/index.html#/docson/examples/example.json$items)
+
+## Typson
+
+You can directly reference your JSON types defined as TypeScript interfaces. If the path ends with `.ts`, Docson will use [Typson](https://github.com/lbovet/typson) to convert the Type Scripts to schema in order to generate the documentation.
+
+For example, [index.html#/typson/example/invoice/line.ts$InvoiceLine](http://lbovet.github.io/docson/index.html#/typson/example/invoice/line.ts$InvoiceLine) is the documentation of [line.ts](https://github.com/lbovet/typson/blob/master/example/invoice/line.ts).
+
+You need to install [Typson](https://github.com/lbovet/typson) by yourself on your server. It must be in a directory named `typson` located at the same level as the `docson` directory.
+
+## Widget
+
+To include a Docson schema documentations on any page (wiki, ...) without worrying about messing up with javascript libraries and cross-origin issues:
+
+* Install Docson somewhere as described above.
+* Place the following `script` tags in the including page, nothing else is needed:
+
+```
+<script src="http://somewhere/path-to-docson/widget.js" data-schema="/path-to-schema">
+</script>
+```
+
+See the [widget example](http://jsfiddle.net/3kXu2/3/) on jsfiddle.
+
+## Swagger
+
+You can adapt [Swagger UI](https://github.com/wordnik/swagger-ui) to display Docson-generated model documentation instead of the builtin signatures.
+
+See how it looks like in the [Swagger Docson example](http://lbovet.github.io/swagger-ui/dist/index.html)
+
+In Swagger UI's `index.html`, include the [Swagger integration script after other script tags](https://github.com/lbovet/swagger-ui/blob/3f37722b03db6c48cc2a8460df26dda5f4d6f8e4/src/main/html/index.html#L19):
+```
+  <script src='/path-to-docson/docson-swagger.js' type='text/javascript'></script>
+```
+
+Also, you will need a patched version of [Swagger Client](https://github.com/lbovet/swagger-js/blob/models-exposed/lib/swagger.js) so that the raw json-schema model is visible from Docson. Either replace the `swagger.js` file in your Swagger UI disctribution or take it directly from github by replacing
+
+```
+   <script src='/lib/swagger.js' type='text/javascript'></script>
+```
+
+with 
+
+```
+  <script src='https://raw2.github.com/lbovet/swagger-js/models-exposed/lib/swagger.js' type='text/javascript'></script>
+```
+
+For a better layout of parameter models, you may [want to change the width of some elements](https://github.com/lbovet/swagger-ui/blob/3f37722b03db6c48cc2a8460df26dda5f4d6f8e4/src/main/html/index.html#L20-L27):
+
+```
+  <style>
+      .swagger-ui-wrap {
+          max-width: 1200px;
+      }
+      .swagger-ui-wrap .body-textarea {
+          width: 200px;
+      }
+  </style>
+```
+
+## Integration
+
+You can also integrate Docson in your application and use its javascript API:
+
+```javascript
+docson.doc(element, schema, ref)
+```
+
+* `element` is the element which will host the documentation. Either a DOM element (id or object) or jQuery element.
+* `schema` is the URI or path to the schema or a string containing the schema source itself.
+* `ref` is an optional json-pointer path to a sub-schema.
+
+Examples:
+* [Simple integration example](http://lbovet.github.io/docson/examples/example.html)
+* [See it in action](http://lbovet.github.io/typson-demo/) with its buddy [typson](https://github.com/lbovet/typson).
+
+## Limitations
+
+* Mixing unrelated keywords can lead to unexpected results.
+
+Not implemented:
+* Non-primitive values in enums and default values
+* dependencies, additionalItems, patternProperties
+
+## Development
+
+* [All tests](http://lbovet.github.io/docson/tests/test.html)
+
+Please pull-request your failing schemas in the `tests/` folder and open an issue describing the expected result.
+
+[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/lbovet/docson/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
+
diff --git a/examples/biojson-doc/biojsonschema.json b/examples/biojson-doc/biojsonschema.json
new file mode 100644 (file)
index 0000000..e6670d2
--- /dev/null
@@ -0,0 +1 @@
+{"$schema":"http://json-schema.org/draft-04/schema#","id":"http://jsonschema.net","type":"object","properties":{"seqs":{"id":"http://jsonschema.net/seqs","type":"array","items":{"id":"http://jsonschema.net/seqs/0","type":"object","properties":{"name":{"id":"http://jsonschema.net/seqs/0/name","type":"string","description":"Sequence name"},"start":{"id":"http://jsonschema.net/seqs/0/start","type":"integer","description":"Start residue position"},"svid":{"id":"http://jsonschema.net/seqs/0/svid","type":"string","description":"Serial version id for sequence object"},"end":{"id":"http://jsonschema.net/seqs/0/end","type":"integer","description":"End residue position"},"id":{"id":"http://jsonschema.net/seqs/0/id","type":"string","description":"Sequence unique identifier"},"seq":{"id":"http://jsonschema.net/seqs/0/seq","type":"string","description":"Sequence Residues"},"order":{"id":"http://jsonschema.net/seqs/0/order","type":"integer","description":"Sequence order in an alignment space"}},"required":["name","start","svid","end","id","seq"]},"required":["0"],"description":"Sequences in the Alignemnt","minItems":"1","maxItems":"*"},"appSettings":{"id":"http://jsonschema.net/appSettings","type":"object","properties":{"globalColorScheme":{"id":"http://jsonschema.net/appSettings/globalColorScheme","type":"string","description":"Global colour schem for the alignment"},"webStartUrl":{"id":"http://jsonschema.net/appSettings/webStartUrl","type":"string","description":"Jalview specific setting which points to a url for launching Jalview"},"application":{"id":"http://jsonschema.net/appSettings/application","type":"string","description":"Application which generated the Json"},"showSeqFeatures":{"id":"http://jsonschema.net/appSettings/showSeqFeatures","type":"string","description":"Determines if sequence features are visible or not"},"version":{"id":"http://jsonschema.net/appSettings/version","type":"string","description":"Verion of the application which generated the JSON"},"hiddenCols":{"id":"http://jsonschema.net/appSettings/hiddenCols","type":"string","description":"Delimited lists of hidden colums ranges i.e [2-3,5-5,11-23]"}},"description":"Application specific settings"},"seqGroups":{"id":"http://jsonschema.net/seqGroups","type":"array","items":[{"id":"http://jsonschema.net/seqGroups/0","type":"object","properties":{"displayText":{"id":"http://jsonschema.net/seqGroups/0/displayText","type":"boolean","description":"Determines if the texts of the group is displayed or not"},"startRes":{"id":"http://jsonschema.net/seqGroups/0/startRes","type":"integer","description":"Start residue position for a given group"},"groupName":{"id":"http://jsonschema.net/seqGroups/0/groupName","type":"string","description":"Group name"},"endRes":{"id":"http://jsonschema.net/seqGroups/0/endRes","type":"integer","description":"End residue position for a given group"},"colourText":{"id":"http://jsonschema.net/seqGroups/0/colourText","type":"boolean","description":"Determines if the Residues text for the group is coloured"},"seqsHash":{"id":"http://jsonschema.net/seqGroups/0/seqsHash","type":"array","items":[],"minItems":"0","maxItems":"*","description":"The id's of the sequences which belongs to the group"},"svid":{"id":"http://jsonschema.net/seqGroups/0/svid","type":"string","description":"Serial version id for a given group"},"showNonconserved":{"id":"http://jsonschema.net/seqGroups/0/showNonconserved","type":"boolean","description":"Determines if non conserved regions of a group is shown or not"},"colourScheme":{"id":"http://jsonschema.net/seqGroups/0/colourScheme","type":"string","description":"Colour Scheme for the sequence group"},"displayBoxes":{"id":"http://jsonschema.net/seqGroups/0/displayBoxes","type":"boolean","description":"Determines if the group border should be visible or not"}}}],"description":"Sequence groups in the Alignment","minItems":"0","maxItems":"*"},"alignAnnotation":{"id":"http://jsonschema.net/alignAnnotation","type":"array","items":{"id":"http://jsonschema.net/alignAnnotation/0","type":"object","properties":{"svid":{"id":"http://jsonschema.net/alignAnnotation/0/svid","type":"string","description":"Serial version id for the annotation object"},"annotations":{"id":"http://jsonschema.net/alignAnnotation/0/annotations","type":"array","items":[{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0","type":"object","properties":{"displayCharacter":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0/displayCharacter","type":"string","description":"Display character to denote the given annotation"},"value":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0/value","type":"integer","description":"Value of the annotation"},"secondaryStructure":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0/secondaryStructure","type":"string","description":"Secondary structure symbol for the given annotation"}}},{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1","type":"object","properties":{"displayCharacter":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1/displayCharacter","type":"string"},"value":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1/value","type":"integer"},"secondaryStructure":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1/secondaryStructure","type":"string"}}},{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2","type":"object","properties":{"displayCharacter":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2/displayCharacter","type":"string"},"value":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2/value","type":"integer"},"secondaryStructure":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2/secondaryStructure","type":"string"}}}]},"description":{"id":"http://jsonschema.net/alignAnnotation/0/description","type":"string","description":"Description of the Alignment Annotation"},"label":{"id":"http://jsonschema.net/alignAnnotation/0/label","type":"string","description":"Label for the Annotation"}}},"description":"Alignment Annotations","minItems":"0","maxItems":"*"},"svid":{"id":"http://jsonschema.net/svid","type":"string","description":"Serial version id"},"seqFeatures":{"id":"http://jsonschema.net/seqFeatures","type":"array","items":{"id":"http://jsonschema.net/seqFeatures/0","type":"object","properties":{"fillColor":{"id":"http://jsonschema.net/seqFeatures/0/fillColor","type":"string","description":"Fill colour"},"score":{"id":"http://jsonschema.net/seqFeatures/0/score","type":"integer","description":"Score"},"sequenceRef":{"id":"http://jsonschema.net/seqFeatures/0/sequenceRef","type":"string","description":"Reference to the Sequence in the alignement (More like a foreign key)"},"featureGroup":{"id":"http://jsonschema.net/seqFeatures/0/featureGroup","type":"string","description":"Feature Group"},"svid":{"id":"http://jsonschema.net/seqFeatures/0/svid","type":"string","description":"Serial version id for the SeqFeature object"},"description":{"id":"http://jsonschema.net/seqFeatures/0/description","type":"string","description":"Description of Feature"},"xStart":{"id":"http://jsonschema.net/seqFeatures/0/xStart","type":"integer","description":"Start residue position for the sequence feature"},"xEnd":{"id":"http://jsonschema.net/seqFeatures/0/xEnd","type":"integer","description":"End residue position for the sequence feature"},"type":{"id":"http://jsonschema.net/seqFeatures/0/type","type":"string","description":"The name of the SequenceFeature"}}},"minItems":"0","maxItems":"*","description":"Sequence Features within the alignment"}},"required":["seqs","appSettings","seqGroups","alignAnnotation","svid","seqFeatures"]}
\ No newline at end of file
diff --git a/examples/biojson-doc/bower.json b/examples/biojson-doc/bower.json
new file mode 100755 (executable)
index 0000000..847e758
--- /dev/null
@@ -0,0 +1,25 @@
+{
+  "name": "docson",
+  "main": "docson.js",
+  "version": "0.1.0",
+  "homepage": "https://github.com/lbovet/docson",
+  "authors": [
+    "Laurent Bovet <laurent.bovet@windmaster.ch>"
+  ],
+  "description": "Documentation for your JSON types",
+  "moduleType": [
+    "amd"
+  ],
+  "keywords": [
+    "docson",
+    "json"
+  ],
+  "license": "http://www.apache.org/licenses/LICENSE-2.0",
+  "ignore": [
+    "**/.*",
+    "node_modules",
+    "bower_components",
+    "test",
+    "tests"
+  ]
+}
diff --git a/examples/biojson-doc/css/docson.css b/examples/biojson-doc/css/docson.css
new file mode 100755 (executable)
index 0000000..1627e74
--- /dev/null
@@ -0,0 +1,476 @@
+/*
+ * Copyright 2013 Laurent Bovet <laurent.bovet@windmaster.ch>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+.docson {
+    font-family: 'Droid Sans',verdana,helvetica;
+    font-size: 13px;
+    padding: 6px 6px 6px 6px;
+}
+
+.docson .box {
+    position: relative;
+    float: left;
+    background-color:rgba(255, 255, 255, 0.2);
+    border: 1px solid lightgrey;
+    border-radius: 4px;
+    -moz-border-radius: 4px;
+    -webkit-border-radius: 4px;
+    padding-bottom: 10px;
+    -moz-box-shadow:    1px 1px 1px darkgray;
+    -webkit-box-shadow: 1px 1px 1px darkgray;
+    box-shadow:         1px 1px 1px darkgray;
+}
+
+.docson .expand-button {
+    position: absolute;
+    margin-top: 15px;
+    padding: 2px;
+    right: 2px;
+    float: right;
+    width: 18px;
+    text-align: center;
+    cursor: pointer;
+    font-weight: bold;
+    font-family: "Lucida Console", Monaco, monospace;
+    font-size: 15px;
+    color: darkgray;
+    display: none;
+}
+
+.docson .source-button {
+    position: absolute;
+    padding: 2px;
+    margin-top: 3px;
+    right: 2px;
+    width: 18px;
+    text-align: center;
+    cursor: pointer;
+    font-weight: bold;
+    font-family: "Lucida Console", Monaco, monospace;
+    font-size: 10px;
+    color: darkgray;
+    display: none;
+}
+
+.docson .box-header {
+    padding: 6px;
+    border-top-left-radius: 4px;
+    border-top-right-radius: 4px;
+    border-bottom: 1px solid lightgrey;
+    background: whitesmoke;
+   /* background: -webkit-linear-gradient(ghostwhite, whitesmoke, whitesmoke, gainsboro);
+    background: -moz-linear-gradient(ghostwhite, whitesmoke, whitesmoke, gainsboro);*/
+}
+
+.docson .box-name {
+    color: darkblue;
+    padding: 5px 40px 2px 3px;
+    float: left;
+}
+
+.docson .title {
+    margin-top: -3px;
+    font-size: 120%;
+}
+
+.docson .link {
+    text-decoration: underline;
+}
+
+.docson .box-description {
+    color: dimgray;
+    float: left;
+    max-width: 600px;
+}
+
+.docson .end {
+    clear: both;
+}
+
+.docson .error {
+    color: red;
+}
+
+.docson .box-body {
+    padding-left: 10px;
+    padding-right: 28px;
+    clear: both;
+}
+
+.docson .box-1 {
+    background: whitesmoke;/*
+    background: -webkit-linear-gradient(ghostwhite, whitesmoke, whitesmoke, gainsboro);
+    background: -moz-linear-gradient(ghostwhite, whitesmoke, whitesmoke, gainsboro);*/
+}
+
+.docson .box-2 {
+    background: beige;
+    background: -webkit-linear-gradient(white, beige, beige, gainsboro);
+    background: -moz-linear-gradient(white, beige, beige, gainsboro);
+}
+
+.docson .box-3 {
+    background: azure;
+    background: -webkit-linear-gradient(white, azure, azure, gainsboro);
+    background: -moz-linear-gradient(white, azure, azure, gainsboro);
+}
+
+.docson .box-4 {
+    background: mistyrose;
+    background: -webkit-linear-gradient(white, mistyrose, mistyrose, gainsboro);
+    background: -moz-linear-gradient(white, mistyrose, mistyrose, gainsboro);
+}
+
+.docson .box-5 {
+    background: #ddffee;
+    background: -webkit-linear-gradient(white, #ddffee, #ddffee, gainsboro);
+    background: -moz-linear-gradient(white, #ddffee, #ddffee, gainsboro);
+}
+
+.docson .box-6 {
+    background: ghostwhite;
+    background: -webkit-linear-gradient(white, ghostwhite, ghostwhite, gainsboro);
+    background: -moz-linear-gradient(white, ghostwhite, ghostwhite, gainsboro);
+}
+
+.docson .box-7 {
+    background: lavenderblush;
+    background: -webkit-linear-gradient(white, lavenderblush, lavenderblush, gainsboro);
+    background: -moz-linear-gradient(white, lavenderblush, lavenderblush, gainsboro);
+}
+
+.docson .box-8 {
+    background: aliceblue;
+    background: -webkit-linear-gradient(white, aliceblue, aliceblue, gainsboro);
+    background: -moz-linear-gradient(white, aliceblue, aliceblue, gainsboro);
+}
+
+.docson .signature {
+    padding-top: 5px;
+    clear: left;
+}
+
+.docson .signature-header {
+    padding-top: 3px;
+    height: 20px;
+    line-height: 24px;
+}
+
+.docson .property-name {
+    float: left;
+    font-family: "Lucida Console", Monaco, monospace;
+    min-width: 130px;
+}
+
+.docson .required {
+    font-weight: bold;
+}
+
+.docson .type-keyword {
+    font-size: 80%;
+    color: dimgray;
+}
+
+.docson .type-pattern {
+    font-size: 80%;
+    color: darkolivegreen;
+}
+
+.docson .type-enum {
+    color: purple;
+    font-family: "Lucida Console", Monaco, monospace;
+    font-size: 90%;
+    padding-left: 2px;
+}
+
+.docson .type-default {
+    color: darkslategrey;
+    font-family: "Lucida Console", Monaco, monospace;
+}
+
+.docson .signature-type {
+    padding-left: 6px;
+    float: left;
+    min-width: 160px;
+    max-width: 320px;
+}
+
+.docson .signature-type-any {
+    font-style: italic;
+}
+
+.docson .signature-type-string {
+    color: green;
+}
+
+.docson .signature-type-number {
+    color: blue;
+}
+
+.docson .signature-type-integer {
+    color: blueviolet;
+}
+
+.docson .signature-type-boolean {
+    color: orangered;
+}
+
+.docson .signature-type-null {
+    font-family: "Lucida Console", Monaco, monospace;
+    color: red;
+}
+
+.docson .signature-type-date-time {
+    color: #224466;
+}
+
+.docson .signature-type-email {
+    color: cornflowerblue;
+}
+
+.docson .signature-type-hostname {
+    color: darkolivegreen;
+}
+
+.docson .signature-type-ipv6 {
+    color: darkslateblue;
+}
+
+.docson .signature-type-ipv4 {
+    color: indigo;
+}
+
+.docson .signature-type-uri {
+    color: saddlebrown;
+}
+
+.docson .signature-button {
+    cursor: pointer;
+    padding: 4px;
+    border-radius: 4px;
+    border: 1px solid lightgrey;
+    -moz-border-radius: 4px;
+}
+
+.docson .signature-type-ref {
+    color: darkblue;
+}
+
+.docson .signature-type-expanded {
+    padding: 5px 3px 3px 5px;
+    vertical-align: -1px;
+    opacity: 0.6;
+    -moz-box-shadow:    inset 1px 1px 1px darkgray;
+    -webkit-box-shadow: inset 1px 1px 1px darkgray;
+    box-shadow:         inset 1px 1px 1px darkgray;
+}
+
+.docson .signature-description {
+    padding-left: 6px;
+    padding-bottom: 3px;
+    color: dimgray;
+    float: left;
+    max-width: 600px;
+}
+
+.docson .signature-box-container {
+    clear: both;
+}
+
+.docson .box-container {
+    float: left;
+    padding-top: 4px;
+    padding-left: 8px;
+    display: none;
+}
+
+.docson .button {
+    -webkit-touch-callout: none;
+    -webkit-user-select: none;
+    -khtml-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+}
+
+.docson .button:hover {
+    color: darkred;
+}
+
+@media all and (min-width: 20px) and (max-width: 500px) {
+    .docson .property-name {
+        min-width: 0px;
+    }
+    .docson .signature-type {
+        min-width: 0px;
+    }
+    .docson .source {
+        width: 100%;
+    }
+    .docson .box-container, .box {
+        width: 100%;
+    }
+}
+
+.docson .desc {
+    padding-left: 6px;
+    line-height: 17px;
+}
+
+.docson .desc p {
+    margin: 0;
+    margin-top: 3px;
+}
+
+.docson .desc code {
+    color: purple;
+    font-size: 90%;
+}
+
+
+.docson .desc table {
+    margin-top: 4px;
+    margin-bottom: 4px;
+    border-collapse:collapse;
+}
+
+.docson .desc th {
+    padding: 0px;
+    font-size: 80%;
+    font-weight: normal;
+    background: rgba(231, 231, 231, 0.5);
+}
+
+.docson .desc table,
+.docson .desc th,
+.docson .desc td {
+    border: 1px solid lightgrey;
+}
+
+.docson .desc tr > td {
+    padding: 2px 6px 2px 6px;
+}
+
+.docson .desc h1 {
+    font-size: 120%;
+    margin-top: 0px;
+    margin-bottom: 3px;
+}
+
+.docson .desc h2 {
+    font-size: 115%;
+    margin-top: 0px;
+    margin-bottom: 3px;
+}
+
+.docson .desc h3 {
+    font-size: 110%;
+    margin-top: 0px;
+    margin-bottom: 3px;
+}
+
+.docson .desc h4 {
+    font-size: 100%;
+    margin-top: 0px;
+    margin-bottom: 3px;
+}
+
+.docson .desc pre {
+    border: 1px solid lightgray;
+    border-radius: 4px;
+    -webkit-border-radius: 4px;
+    -moz-border-radius: 4px;
+    padding: 4px;
+    margin: 3px 0px;
+}
+
+.docson .desc ul {
+    padding-left: 16px;
+    margin: 3px 0px;
+}
+
+.docson .desc ol {
+    padding-left: 16px;
+    margin: 3px 0px;
+}
+
+.docson .desc blockquote {
+    margin: 3px 0px 3px 10px;
+    padding-left: 6px;
+    border-left: 1px solid lightgray;
+}
+
+.docson .desc img {
+    vertical-align: middle;
+}
+
+.docson .desc hr {
+    border: 0;
+    height: 1px;
+    background: lightgrey;
+    color: lightgrey;
+    width: 50%;
+}
+
+.docson .source {
+    display: none;
+    padding-left: 16px;
+    padding-right: 30px;
+}
+
+.docson .json, .json-schema {
+    font-family: "Lucida Console", Monaco, monospace;
+}
+
+.docson .json-punctuation {
+    font-weight: bold;
+}
+
+.docson .json-null, .json-true, .json-false {
+    font-weight: bold;
+}
+
+.docson .json-true {
+    color: #080;
+}
+
+.docson .json-false {
+    color: #800;
+}
+
+.docson .json-object-key {
+    color: #246;
+}
+
+.docson .json-keyword {
+    font-weight: bold;
+    color: #036;
+}
+
+.docson .json-number {
+    font-weight: bold;
+    color: #660;
+}
+
+.docson .json-string {
+    color: #800;
+}
+
+.docson .json-schema-map > .json-object-key {
+    color: #080;
+    font-style: italic;
+}
+
diff --git a/examples/biojson-doc/docson-swagger.js b/examples/biojson-doc/docson-swagger.js
new file mode 100755 (executable)
index 0000000..80ffaaf
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2013 Laurent Bovet <laurent.bovet@windmaster.ch>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var allDefinitions;
+var counter = 0;
+
+function createDoc(definitions, type) {
+    counter++;
+    var docson = "/docson/index.html";
+    if(!allDefinitions) {
+        allDefinitions = {};
+        function receiveMessage(event) {
+            if (event.data.id && event.data.id == "docson") {
+                var frame = $("#docson-"+event.data.url.split("$")[2]);
+                if (event.data.action == "resized") {
+                    frame.get(0).width = event.data.width + 18;
+                    frame.get(0).height = event.data.height + 36;
+                    frame.parents("td").width(event.data.width + 24)
+                }
+                if (event.data.action == "ready") {
+                    frame.get(0).contentWindow.postMessage({ id: "docson", action: "load", definitions: allDefinitions, type: event.data.url.split("$")[1]}, "*");
+                }
+            }
+        }
+        window.addEventListener("message", receiveMessage, false);
+    }
+    $.extend(allDefinitions, definitions);
+    return "<iframe class='docson-frame' id='docson-" + counter + "' style='padding: 0; border: 0; width:100%; background: transparent' src='" + docson + "#$" + type + "$"+counter+"'></iframe>"
+}
+
+SwaggerOperation.prototype.getSignature = function(type, models) {
+    var collectionType, isPrimitive;
+    if(this.isCollectionType) {
+        collectionType = this.isCollectionType(type);
+    } else {
+        collectionType = this.isListType(type);
+    }
+    isPrimitive = ((collectionType != null) && models[collectionType]) || (models[type] != null) ? false : true;
+    if (isPrimitive) {
+        return type;
+    } else {
+        if (collectionType != null) {
+            return "<p class='stronger'>" + type + "</p>" + createDoc(this.resource.rawModels, collectionType);
+        } else {
+            return createDoc(this.resource.rawModels, type);
+        }
+    }
+};
+
+$(document).on("click", ".toggleOperation", function() {
+    $(this).parents(".operations").find(".docson-frame").each(function(k, frame) {
+        frame.contentWindow.postMessage({id: "docson", action: "resize"}, "*");
+    });
+});
diff --git a/examples/biojson-doc/docson.js b/examples/biojson-doc/docson.js
new file mode 100755 (executable)
index 0000000..93d7d09
--- /dev/null
@@ -0,0 +1,512 @@
+/*
+ * Copyright 2013 Laurent Bovet <laurent.bovet@windmaster.ch>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var docson = docson || {};
+
+docson.templateBaseUrl="templates";
+
+define(["lib/jquery", "lib/handlebars", "lib/highlight", "lib/jsonpointer", "lib/marked", "lib/traverse"], function(jquery, handlebars, highlight, jsonpointer, marked) {
+
+    var ready = $.Deferred();
+    var boxTemplate;
+    var signatureTemplate;
+    var source;
+    var stack = [];
+    var boxes=[];
+
+    Handlebars.registerHelper('scope', function(schema, options) {
+        var result;
+        boxes.push([]);
+        if(schema && (schema.id || schema.root)) {
+            stack.push( schema );
+            result = options.fn(this);
+            stack.pop();
+        } else {
+            result = options.fn(this);
+        }
+        boxes.pop();
+        return result;
+    });
+
+    Handlebars.registerHelper('source', function(schema) {
+        delete schema.root;
+        delete schema.__boxId;
+        delete schema.__name;
+        delete schema.__ref;
+        return JSON.stringify(schema, null, 2);
+    });
+
+    Handlebars.registerHelper('desc', function(schema) {
+        var description = schema.description;
+
+        if( !description ) return "";
+        var text = description;
+        if(marked) {
+            marked.setOptions({gfm: true, breaks: true})
+            return new Handlebars.SafeString(marked(text));
+        } else {
+            return text;
+        }
+    });
+
+    Handlebars.registerHelper('equals', function(lvalue, rvalue, options) {
+        if (arguments.length < 3)
+            throw new Error("Handlebars Helper equals needs 2 parameters");
+        if( lvalue!=rvalue ) {
+            return options.inverse(this);
+        } else {
+            return options.fn(this);
+        }
+    });
+
+    Handlebars.registerHelper('contains', function(arr, item, options) {;
+        if(arr && arr instanceof Array && arr.indexOf(item) != -1) {
+            return options.fn(this);
+        }
+    });
+
+    Handlebars.registerHelper('primitive', function(schema, options) {
+        if(schema.type && schema.type != "object" && schema.type != "array" || schema.enum) {
+            return withType(this, options, true)
+        }
+    });
+
+    Handlebars.registerHelper('exists', function(value, options) {
+        if(value !== undefined) {
+            value = value === null ? "null": value;
+            value = value === true ? "true": value;
+            value = value === false ? "false": value;
+            value = typeof value === "object" ? JSON.stringify(value): value;
+            this.__default = value;
+            var result = options.fn(this);
+            delete this.__default;
+            return result;
+        }
+    });
+
+    Handlebars.registerHelper('range', function(from, to, replFrom, replTo, exclFrom, exclTo, sep) {
+        var result = "";
+        if(from !== undefined || to !== undefined) {
+            result += exclFrom ? "]" : "[";
+            result += from !== undefined ? from : replFrom;
+            if( (from || replFrom) !== (to || replTo)) {
+                result += (from !== undefined || replFrom !== null) && (to !== undefined || replTo !== null) ? sep : "";
+                result += to !== undefined ? to : replTo;
+            }
+            result += exclTo ? "[" : "]";
+            return result;
+        }
+    });
+
+    var sub = function(schema) {
+        return schema.type == "array" || schema.allOf || schema.anyOf || schema.oneOf || schema.not;
+    }
+
+    Handlebars.registerHelper('sub', function(schema, options) {
+        if(sub(schema) || (schema.type && schema.type != "object" && schema.type != "array") || schema.enum) {
+            return options.fn(this);
+        }
+    });
+
+    Handlebars.registerHelper('main', function(schema, options) {
+        if(!sub(schema)) {
+            return options.fn(this);
+        }
+    });
+
+    var simpleSchema = function(schema) {
+        var result = schema.description===undefined && schema.title===undefined && schema.id===undefined;
+        result &= schema.properties===undefined;
+        return result;
+    };
+
+    Handlebars.registerHelper('simple', function(schema, options) {
+        if(simpleSchema(schema) && !schema.$ref) {
+            return withType(schema, options, true);
+        }
+    });
+
+    var withType = function(schema, options, hideAny) {
+        schema.__type = schema.type;
+        if(!schema.type && !hideAny) {
+            schema.__type="any";
+        }
+        if(schema.format) {
+            schema.__type=schema.format;
+        }
+        if( (schema.__type == "any" || schema.__type == "object") && schema.title) {
+            schema.__type = schema.title;
+        }
+        var result = options.fn(schema);
+        delete schema.__type;
+        return result;
+    }
+
+    Handlebars.registerHelper('complex', function(schema, options) {
+        if(!simpleSchema(schema) && !schema.$ref || schema.properties) {
+            return withType(schema, options);
+        }
+    });
+
+    Handlebars.registerHelper('enum', function(schema) {
+        if(schema.enum) {
+            return (schema.enum.length > 1) ? "enum": "constant";
+        }
+    });
+
+    Handlebars.registerHelper('obj', function(schema, options) {
+        if(schema.properties || schema.type == "object") {
+            return withType(schema, options);
+        }
+    });
+
+    var pushBox = function(schema) {
+        boxes[boxes.length-1].push(schema);
+    }
+
+    Handlebars.registerHelper('box', function(schema, options) {
+        if(schema) {
+            pushBox(schema);
+            return options.fn(schema);
+        }
+    });
+
+    Handlebars.registerHelper('boxId', function() {
+        return boxes[boxes.length-1].length
+    });
+
+    Handlebars.registerHelper('boxes', function(options) {
+        var result="";
+        $.each(boxes[boxes.length-1], function(k, box) {
+            box.__boxId = k+1;
+            result=result+options.fn(box);
+        });
+        boxes[boxes.length-1] = []
+        return result;
+    });
+
+    var resolveIdRef = function(ref) {
+        if(stack) {
+            var i;
+            for(i=stack.length-1; i>=0; i--) {
+                if(stack[i][ref]) {
+                    return stack[i][ref];
+                }
+            }
+        }
+        return null;
+    }
+
+    var resolvePointerRef = function(ref) {
+        var root = stack[1];
+        if(ref=="#") {
+            return root;
+        }
+        try {
+            return jsonpointer.get(stack[1], ref);
+        } catch(e) {
+            console.log(e);
+            return null;
+        }
+    }
+
+    var resolveRef = function(ref) {
+        if(ref.indexOf("#") == 0) {
+            return resolvePointerRef(ref);
+        } else {
+            return resolveIdRef(ref);
+        }
+    }
+
+    var getName = function(schema) {
+        if(!schema) {
+            return "<error>";
+        }
+        var name = schema.title;
+        name = !name && schema.id ? schema.id: name;
+        name = !name ? schema.__name: name;
+        return name;
+    }
+
+    Handlebars.registerHelper('name', function(schema, options) {
+        schema.__name = getName(schema);
+        if(schema.__name) {
+            return options.fn(schema);
+        }
+    });
+
+    var refName = function(ref) {
+        var name = getName(resolveRef(ref));
+        if(!name) {
+            if(ref == "#") {
+                name = "<root>";
+            } else {
+                name = ref.replace("#", "/")
+            }
+        }
+        var segments = name.split("/");
+        name = segments[segments.length-1];
+        return name;
+    }
+
+    function renderSchema(schema) {
+        if(stack.indexOf(schema) == -1) { // avoid recursion
+            stack.push(schema);
+            var ret = new Handlebars.SafeString(boxTemplate(schema));
+            stack.pop();
+            return ret;
+        } else {
+            return new Handlebars.SafeString(boxTemplate({"description": "_circular reference_"}));
+        }
+    }
+
+    Handlebars.registerHelper('ref', function(schema, options) {
+        if(schema.$ref) {
+            var target = resolveRef(schema.$ref);
+            if(target) {
+                target.__name = refName(schema.$ref);
+                target.__ref = schema.$ref.replace("#", "");
+            }
+            var result;
+            if(target) {
+                result = options.fn(target);
+            } else {
+                result = new Handlebars.SafeString("<span class='signature-type-ref'>"+schema.$ref+"</span>");
+            }
+            if(target) {
+                delete target.__ref;
+            }
+            return result;
+        }
+    });
+
+    Handlebars.registerHelper('schema', function(schema) {
+        return renderSchema(schema);
+    });
+
+    Handlebars.registerHelper('signature', function(schema, keyword, schemas) {
+        if(!schemas) {
+            schemas = []
+        }
+        schemas = schemas instanceof Array ? schemas : [schemas];
+        return new Handlebars.SafeString(signatureTemplate({ schema: schema, keyword: keyword, schemas: schemas}));
+    });
+
+    Handlebars.registerHelper('l', function(context) {
+        console.log(context);
+    });
+
+    function init() {
+        $.when( $.get(docson.templateBaseUrl+"/box.html").done(function(content) {
+            source = content
+            boxTemplate = Handlebars.compile(source);
+        }), $.get(docson.templateBaseUrl+"/signature.html").done(function(content) {
+            source = content
+            signatureTemplate = Handlebars.compile(source);
+        })).always(function() {
+            ready.resolve();
+        });
+    };
+
+    docson.doc = function(element, schema, ref, baseUrl) {
+        var d = $.Deferred();
+        if(baseUrl === undefined) baseUrl='';
+        init();
+        ready.done(function() {
+            if(typeof element == "string") {
+                element = $("#"+element);
+            }
+            if(typeof schema == "string") {
+                schema = JSON.parse(schema);
+            }
+
+            var refsPromise = $.Deferred().resolve().promise();
+            var refs = {};
+
+
+            var renderBox = function() {
+                stack.push(refs);
+                var target = schema;
+                if(ref) {
+                    ref = ref[0] !== '/' ? '/'+ref : ref;
+                    target = jsonpointer.get(schema, ref);
+                    stack.push( schema );
+                }
+                target.root = true;
+                target.__ref = "<root>";
+                var html = boxTemplate(target);
+
+                if(ref) {
+                    stack.pop();
+                }
+                stack.pop();
+
+                element.addClass("docson").html(html);
+
+                var resizeHandler = element.get(0).onresize;
+                function resized() {
+                    if(resizeHandler) {
+                        var box = element.find(".box").first();
+                        element.get(0).onresize(box.outerWidth(), box.outerHeight());
+                    }
+                }
+                element.get(0).resized = resized;
+                resized();
+
+                if(highlight) {
+                    element.find(".json-schema").each(function(k, schemaElement) {
+                        highlight.highlightSchema(schemaElement);
+                    });
+                }
+                element.find(".box-title").each(function() {
+                   var ref = $(this).attr("ref");
+                   if(ref) {
+                       if(window.location.href.indexOf("docson/index.html") > -1) {
+                           $(this).find(".box-name").css("cursor", "pointer").attr("title", "Open in new window")
+                           .hover(
+                               function(){ $(this).addClass('link') },
+                               function(){ $(this).removeClass('link') })
+                           .click(function() {
+                                var url = window.location.href+"$$expand";
+                                if(ref !=="<root>") {
+                                   url = url.replace(/(docson\/index.html#[^\$]*).*/, "$1$"+ref+"$$expand");
+                                }
+                                var w;
+                                function receiveMessage(event) {
+                                   if (event.data.id && event.data.id == "docson" && event.data.action == "ready") {
+                                       w.postMessage({ id: "docson", action: "load", definitions: schema, type: event.data.url.split("$")[1], expand: true}, "*");
+                                   }
+                                }
+                                window.addEventListener("message", receiveMessage, false);
+                                w = window.open(url, "_blank");
+                           });
+                       }
+                   }
+                });
+                element.find(".box").mouseenter(function() {
+                    $(this).children(".source-button").fadeIn(300);
+                    $(this).children(".box-body").children(".expand-button").fadeIn(300);
+                });
+                element.find(".box").mouseleave(function() {
+                    $(this).children(".source-button").fadeOut(300);
+                    $(this).children(".box-body").children(".expand-button").fadeOut(300);
+                });
+                element.find(".signature-type-expandable").click(function() {
+                    var boxId = $(this).attr("boxid");
+                    $(this).toggleClass("signature-type-expanded");
+                    $(this).parent().parent().parent().children(".signature-box-container").
+                        children("[boxid='"+boxId+"']").toggle(resizeHandler ? 0 : 300);
+                    resized();
+                });
+                element.find(".expand-button").click(function() {
+                    if($(this).attr("expanded")) {
+                        $(this).parent().parent().find(".expand-button").html(" + ").attr("title", "Expand all");
+                        $(this).parent().parent().find(".signature-type-expandable").removeClass("signature-type-expanded");
+                        $(this).parent().parent().find(".box-container").hide( resizeHandler ? 0 : 300);
+                        $(this).parent().parent().find(".expand-button").removeAttr("expanded");
+                        resized();
+                    } else {
+                        $(this).parent().parent().find(".expand-button").html(" - ").attr("title", "Collapse all");
+                        $(this).parent().parent().find(".signature-type-expandable").addClass("signature-type-expanded");
+                        $(this).parent().parent().find(".box-container").show(resizeHandler ? 0 : 300);
+                        $(this).parent().parent().find(".expand-button").attr("expanded", true);
+                        resized();
+                    }
+                });
+                element.find(".source-button").click(function() {
+                    $(this).parent().children(".box-body").toggle();
+                    $(this).parent().children(".source").toggle();
+                    resized();
+                });
+            };
+
+            var resolveRefsReentrant = function(schema){
+                traverse(schema).forEach(function(item) {
+                    // Fix Swagger weird generation for array.
+                    if(item && item.$ref == "array") {
+                        delete item.$ref;
+                        item.type ="array";
+                    }
+
+                    // Fetch external schema
+                    if(this.key === "$ref") {
+                        var external = false;
+                        //Local meaning local to this server, but not in this file.
+                        var local = false;
+                        if((/^https?:\/\//).test(item)) {
+                            external = true;
+                        }
+                        else if((/^[^#]/).test(item)) {
+                            local = true;
+                        } else if(item.indexOf('#') > 0) {
+                            //Internal reference
+                            //Turning relative refs to absolute ones
+                            external = true;
+                            item = baseUrl + item;
+                            this.update(item);
+                        }
+                        if(external){
+                            //External reference, fetch it.
+                            var segments = item.split("#");
+                            refs[item] = null;
+                            var p = $.get(segments[0]).then(function(content) {
+                                if(typeof content != "object") {
+                                    try {
+                                        content = JSON.parse(content);
+                                    } catch(e) {
+                                        console.error("Unable to parse "+segments[0], e);
+                                    }
+                                }
+                                if(content) {
+                                    refs[item] = content;
+                                    renderBox();
+                                    resolveRefsReentrant(content); 
+                                }
+                            });
+                        }
+                        else if(local) {
+                            //Local to this server, fetch relative
+                            var segments = item.split("#");
+                            refs[item] = null;
+                            var p = $.get(baseUrl + segments[0]).then(function(content) {
+                                if(typeof content != "object") {
+                                    try {
+                                        content = JSON.parse(content);
+                                    } catch(e) {
+                                        console.error("Unable to parse "+segments[0], e);
+                                    }
+                                }
+                                if(content) {
+                                    refs[item] = content;
+                                    renderBox();
+                                    resolveRefsReentrant(content);
+                                }
+                            });
+                        }
+                    }
+                });
+            };
+            
+            resolveRefsReentrant(schema);
+            renderBox();
+            
+            d.resolve();
+        })
+        return d.promise();
+    }
+
+    return docson;
+});
diff --git a/examples/biojson-doc/index.html b/examples/biojson-doc/index.html
new file mode 100755 (executable)
index 0000000..7c82aaf
--- /dev/null
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>Docson Example</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/docson.css">
+    <script src="lib/require.js"></script></head>
+<body>
+<div id="doc"></div>
+<script charset="utf-8">
+    require.config({ baseUrl: ""});
+    require(["docson", "lib/jquery"], function(docson) {
+        $(function() {
+            var schema =
+            {"$schema":"http://json-schema.org/draft-04/schema#","id":"http://jsonschema.net","type":"object","properties":{"seqs":{"id":"http://jsonschema.net/seqs","type":"array","items":{"id":"http://jsonschema.net/seqs/0","type":"object","properties":{"name":{"id":"http://jsonschema.net/seqs/0/name","type":"string","description":"Sequence name"},"start":{"id":"http://jsonschema.net/seqs/0/start","type":"integer","description":"Start residue position"},"svid":{"id":"http://jsonschema.net/seqs/0/svid","type":"string","description":"Serial version id for sequence object"},"end":{"id":"http://jsonschema.net/seqs/0/end","type":"integer","description":"End residue position"},"id":{"id":"http://jsonschema.net/seqs/0/id","type":"string","description":"Sequence unique identifier"},"seq":{"id":"http://jsonschema.net/seqs/0/seq","type":"string","description":"Sequence Residues"},"order":{"id":"http://jsonschema.net/seqs/0/order","type":"integer","description":"Sequence order in an alignment space"}},"required":["name","start","svid","end","id","seq"]},"required":["0"],"description":"Sequences in the Alignemnt","minItems":"1","maxItems":"*"},"appSettings":{"id":"http://jsonschema.net/appSettings","type":"object","properties":{"globalColorScheme":{"id":"http://jsonschema.net/appSettings/globalColorScheme","type":"string","description":"Global colour schem for the alignment"},"webStartUrl":{"id":"http://jsonschema.net/appSettings/webStartUrl","type":"string","description":"Jalview specific setting which points to a url for launching Jalview"},"application":{"id":"http://jsonschema.net/appSettings/application","type":"string","description":"Application which generated the Json"},"showSeqFeatures":{"id":"http://jsonschema.net/appSettings/showSeqFeatures","type":"string","description":"Determines if sequence features are visible or not"},"version":{"id":"http://jsonschema.net/appSettings/version","type":"string","description":"Verion of the application which generated the JSON"},"hiddenCols":{"id":"http://jsonschema.net/appSettings/hiddenCols","type":"string","description":"Delimited lists of hidden colums ranges i.e [2-3,5-5,11-23]"}},"description":"Application specific settings"},"seqGroups":{"id":"http://jsonschema.net/seqGroups","type":"array","items":[{"id":"http://jsonschema.net/seqGroups/0","type":"object","properties":{"displayText":{"id":"http://jsonschema.net/seqGroups/0/displayText","type":"boolean","description":"Determines if the texts of the group is displayed or not"},"startRes":{"id":"http://jsonschema.net/seqGroups/0/startRes","type":"integer","description":"Start residue position for a given group"},"groupName":{"id":"http://jsonschema.net/seqGroups/0/groupName","type":"string","description":"Group name"},"endRes":{"id":"http://jsonschema.net/seqGroups/0/endRes","type":"integer","description":"End residue position for a given group"},"colourText":{"id":"http://jsonschema.net/seqGroups/0/colourText","type":"boolean","description":"Determines if the Residues text for the group is coloured"},"seqsHash":{"id":"http://jsonschema.net/seqGroups/0/seqsHash","type":"array","items":[],"minItems":"0","maxItems":"*","description":"The id's of the sequences which belongs to the group"},"svid":{"id":"http://jsonschema.net/seqGroups/0/svid","type":"string","description":"Serial version id for a given group"},"showNonconserved":{"id":"http://jsonschema.net/seqGroups/0/showNonconserved","type":"boolean","description":"Determines if non conserved regions of a group is shown or not"},"colourScheme":{"id":"http://jsonschema.net/seqGroups/0/colourScheme","type":"string","description":"Colour Scheme for the sequence group"},"displayBoxes":{"id":"http://jsonschema.net/seqGroups/0/displayBoxes","type":"boolean","description":"Determines if the group border should be visible or not"}}}],"description":"Sequence groups in the Alignment","minItems":"0","maxItems":"*"},"alignAnnotation":{"id":"http://jsonschema.net/alignAnnotation","type":"array","items":{"id":"http://jsonschema.net/alignAnnotation/0","type":"object","properties":{"svid":{"id":"http://jsonschema.net/alignAnnotation/0/svid","type":"string","description":"Serial version id for the annotation object"},"annotations":{"id":"http://jsonschema.net/alignAnnotation/0/annotations","type":"array","items":[{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0","type":"object","properties":{"displayCharacter":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0/displayCharacter","type":"string","description":"Display character to denote the given annotation"},"value":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0/value","type":"integer","description":"Value of the annotation"},"secondaryStructure":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0/secondaryStructure","type":"string","description":"Secondary structure symbol for the given annotation"}}},{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1","type":"object","properties":{"displayCharacter":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1/displayCharacter","type":"string"},"value":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1/value","type":"integer"},"secondaryStructure":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1/secondaryStructure","type":"string"}}},{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2","type":"object","properties":{"displayCharacter":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2/displayCharacter","type":"string"},"value":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2/value","type":"integer"},"secondaryStructure":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2/secondaryStructure","type":"string"}}}]},"description":{"id":"http://jsonschema.net/alignAnnotation/0/description","type":"string","description":"Description of the Alignment Annotation"},"label":{"id":"http://jsonschema.net/alignAnnotation/0/label","type":"string","description":"Label for the Annotation"}}},"description":"Alignment Annotations","minItems":"0","maxItems":"*"},"svid":{"id":"http://jsonschema.net/svid","type":"string","description":"Serial version id"},"seqFeatures":{"id":"http://jsonschema.net/seqFeatures","type":"array","items":{"id":"http://jsonschema.net/seqFeatures/0","type":"object","properties":{"fillColor":{"id":"http://jsonschema.net/seqFeatures/0/fillColor","type":"string","description":"Fill colour"},"score":{"id":"http://jsonschema.net/seqFeatures/0/score","type":"integer","description":"Score"},"sequenceRef":{"id":"http://jsonschema.net/seqFeatures/0/sequenceRef","type":"string","description":"Reference to the Sequence in the alignement (More like a foreign key)"},"featureGroup":{"id":"http://jsonschema.net/seqFeatures/0/featureGroup","type":"string","description":"Feature Group"},"svid":{"id":"http://jsonschema.net/seqFeatures/0/svid","type":"string","description":"Serial version id for the SeqFeature object"},"description":{"id":"http://jsonschema.net/seqFeatures/0/description","type":"string","description":"Description of Feature"},"xStart":{"id":"http://jsonschema.net/seqFeatures/0/xStart","type":"integer","description":"Start residue position for the sequence feature"},"xEnd":{"id":"http://jsonschema.net/seqFeatures/0/xEnd","type":"integer","description":"End residue position for the sequence feature"},"type":{"id":"http://jsonschema.net/seqFeatures/0/type","type":"string","description":"The name of the SequenceFeature"}}},"minItems":"0","maxItems":"*","description":"Sequence Features within the alignment"}},"required":["seqs","appSettings","seqGroups","alignAnnotation","svid","seqFeatures"]}
+            docson.templateBaseUrl="templates";
+            docson.doc("doc", schema);
+        });
+    });
+</script>
+</body>
+</html>
diff --git a/examples/biojson-doc/lib/handlebars.js b/examples/biojson-doc/lib/handlebars.js
new file mode 100755 (executable)
index 0000000..ba71792
--- /dev/null
@@ -0,0 +1,2595 @@
+/*!
+
+ handlebars v1.1.2
+
+Copyright (C) 2011 by Yehuda Katz
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+@license
+*/
+var Handlebars = (function() {
+// handlebars/safe-string.js
+var __module4__ = (function() {
+  "use strict";
+  var __exports__;
+  // Build out our basic SafeString type
+  function SafeString(string) {
+    this.string = string;
+  }
+
+  SafeString.prototype.toString = function() {
+    return "" + this.string;
+  };
+
+  __exports__ = SafeString;
+  return __exports__;
+})();
+
+// handlebars/utils.js
+var __module3__ = (function(__dependency1__) {
+  "use strict";
+  var __exports__ = {};
+  var SafeString = __dependency1__;
+
+  var escape = {
+    "&": "&amp;",
+    "<": "&lt;",
+    ">": "&gt;",
+    '"': "&quot;",
+    "'": "&#x27;",
+    "`": "&#x60;"
+  };
+
+  var badChars = /[&<>"'`]/g;
+  var possible = /[&<>"'`]/;
+
+  function escapeChar(chr) {
+    return escape[chr] || "&amp;";
+  }
+
+  function extend(obj, value) {
+    for(var key in value) {
+      if(value.hasOwnProperty(key)) {
+        obj[key] = value[key];
+      }
+    }
+  }
+
+  __exports__.extend = extend;var toString = Object.prototype.toString;
+  __exports__.toString = toString;
+  // Sourced from lodash
+  // https://github.com/bestiejs/lodash/blob/master/LICENSE.txt
+  var isFunction = function(value) {
+    return typeof value === 'function';
+  };
+  // fallback for older versions of Chrome and Safari
+  if (isFunction(/x/)) {
+    isFunction = function(value) {
+      return typeof value === 'function' && toString.call(value) === '[object Function]';
+    };
+  }
+  var isFunction;
+  __exports__.isFunction = isFunction;
+  var isArray = Array.isArray || function(value) {
+    return (value && typeof value === 'object') ? toString.call(value) === '[object Array]' : false;
+  };
+  __exports__.isArray = isArray;
+
+  function escapeExpression(string) {
+    // don't escape SafeStrings, since they're already safe
+    if (string instanceof SafeString) {
+      return string.toString();
+    } else if (!string && string !== 0) {
+      return "";
+    }
+
+    // Force a string conversion as this will be done by the append regardless and
+    // the regex test will do this transparently behind the scenes, causing issues if
+    // an object's to string has escaped characters in it.
+    string = "" + string;
+
+    if(!possible.test(string)) { return string; }
+    return string.replace(badChars, escapeChar);
+  }
+
+  __exports__.escapeExpression = escapeExpression;function isEmpty(value) {
+    if (!value && value !== 0) {
+      return true;
+    } else if (isArray(value) && value.length === 0) {
+      return true;
+    } else {
+      return false;
+    }
+  }
+
+  __exports__.isEmpty = isEmpty;
+  return __exports__;
+})(__module4__);
+
+// handlebars/exception.js
+var __module5__ = (function() {
+  "use strict";
+  var __exports__;
+
+  var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];
+
+  function Exception(/* message */) {
+    var tmp = Error.prototype.constructor.apply(this, arguments);
+
+    // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.
+    for (var idx = 0; idx < errorProps.length; idx++) {
+      this[errorProps[idx]] = tmp[errorProps[idx]];
+    }
+  }
+
+  Exception.prototype = new Error();
+
+  __exports__ = Exception;
+  return __exports__;
+})();
+
+// handlebars/base.js
+var __module2__ = (function(__dependency1__, __dependency2__) {
+  "use strict";
+  var __exports__ = {};
+  /*globals Exception, Utils */
+  var Utils = __dependency1__;
+  var Exception = __dependency2__;
+
+  var VERSION = "1.1.2";
+  __exports__.VERSION = VERSION;var COMPILER_REVISION = 4;
+  __exports__.COMPILER_REVISION = COMPILER_REVISION;
+  var REVISION_CHANGES = {
+    1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it
+    2: '== 1.0.0-rc.3',
+    3: '== 1.0.0-rc.4',
+    4: '>= 1.0.0'
+  };
+  __exports__.REVISION_CHANGES = REVISION_CHANGES;
+  var isArray = Utils.isArray,
+      isFunction = Utils.isFunction,
+      toString = Utils.toString,
+      objectType = '[object Object]';
+
+  function HandlebarsEnvironment(helpers, partials) {
+    this.helpers = helpers || {};
+    this.partials = partials || {};
+
+    registerDefaultHelpers(this);
+  }
+
+  __exports__.HandlebarsEnvironment = HandlebarsEnvironment;HandlebarsEnvironment.prototype = {
+    constructor: HandlebarsEnvironment,
+
+    logger: logger,
+    log: log,
+
+    registerHelper: function(name, fn, inverse) {
+      if (toString.call(name) === objectType) {
+        if (inverse || fn) { throw new Exception('Arg not supported with multiple helpers'); }
+        Utils.extend(this.helpers, name);
+      } else {
+        if (inverse) { fn.not = inverse; }
+        this.helpers[name] = fn;
+      }
+    },
+
+    registerPartial: function(name, str) {
+      if (toString.call(name) === objectType) {
+        Utils.extend(this.partials,  name);
+      } else {
+        this.partials[name] = str;
+      }
+    }
+  };
+
+  function registerDefaultHelpers(instance) {
+    instance.registerHelper('helperMissing', function(arg) {
+      if(arguments.length === 2) {
+        return undefined;
+      } else {
+        throw new Error("Missing helper: '" + arg + "'");
+      }
+    });
+
+    instance.registerHelper('blockHelperMissing', function(context, options) {
+      var inverse = options.inverse || function() {}, fn = options.fn;
+
+      if (isFunction(context)) { context = context.call(this); }
+
+      if(context === true) {
+        return fn(this);
+      } else if(context === false || context == null) {
+        return inverse(this);
+      } else if (isArray(context)) {
+        if(context.length > 0) {
+          return instance.helpers.each(context, options);
+        } else {
+          return inverse(this);
+        }
+      } else {
+        return fn(context);
+      }
+    });
+
+    instance.registerHelper('each', function(context, options) {
+      var fn = options.fn, inverse = options.inverse;
+      var i = 0, ret = "", data;
+
+      if (isFunction(context)) { context = context.call(this); }
+
+      if (options.data) {
+        data = createFrame(options.data);
+      }
+
+      if(context && typeof context === 'object') {
+        if (isArray(context)) {
+          for(var j = context.length; i<j; i++) {
+            if (data) {
+              data.index = i;
+              data.first = (i === 0)
+              data.last  = (i === (context.length-1));
+            }
+            ret = ret + fn(context[i], { data: data });
+          }
+        } else {
+          for(var key in context) {
+            if(context.hasOwnProperty(key)) {
+              if(data) { data.key = key; }
+              ret = ret + fn(context[key], {data: data});
+              i++;
+            }
+          }
+        }
+      }
+
+      if(i === 0){
+        ret = inverse(this);
+      }
+
+      return ret;
+    });
+
+    instance.registerHelper('if', function(conditional, options) {
+      if (isFunction(conditional)) { conditional = conditional.call(this); }
+
+      // Default behavior is to render the positive path if the value is truthy and not empty.
+      // The `includeZero` option may be set to treat the condtional as purely not empty based on the
+      // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.
+      if ((!options.hash.includeZero && !conditional) || Utils.isEmpty(conditional)) {
+        return options.inverse(this);
+      } else {
+        return options.fn(this);
+      }
+    });
+
+    instance.registerHelper('unless', function(conditional, options) {
+      return instance.helpers['if'].call(this, conditional, {fn: options.inverse, inverse: options.fn, hash: options.hash});
+    });
+
+    instance.registerHelper('with', function(context, options) {
+      if (isFunction(context)) { context = context.call(this); }
+
+      if (!Utils.isEmpty(context)) return options.fn(context);
+    });
+
+    instance.registerHelper('log', function(context, options) {
+      var level = options.data && options.data.level != null ? parseInt(options.data.level, 10) : 1;
+      instance.log(level, context);
+    });
+  }
+
+  var logger = {
+    methodMap: { 0: 'debug', 1: 'info', 2: 'warn', 3: 'error' },
+
+    // State enum
+    DEBUG: 0,
+    INFO: 1,
+    WARN: 2,
+    ERROR: 3,
+    level: 3,
+
+    // can be overridden in the host environment
+    log: function(level, obj) {
+      if (logger.level <= level) {
+        var method = logger.methodMap[level];
+        if (typeof console !== 'undefined' && console[method]) {
+          console[method].call(console, obj);
+        }
+      }
+    }
+  };
+  __exports__.logger = logger;
+  function log(level, obj) { logger.log(level, obj); }
+
+  __exports__.log = log;var createFrame = function(object) {
+    var obj = {};
+    Utils.extend(obj, object);
+    return obj;
+  };
+  __exports__.createFrame = createFrame;
+  return __exports__;
+})(__module3__, __module5__);
+
+// handlebars/runtime.js
+var __module6__ = (function(__dependency1__, __dependency2__, __dependency3__) {
+  "use strict";
+  var __exports__ = {};
+  /*global Utils */
+  var Utils = __dependency1__;
+  var Exception = __dependency2__;
+  var COMPILER_REVISION = __dependency3__.COMPILER_REVISION;
+  var REVISION_CHANGES = __dependency3__.REVISION_CHANGES;
+
+  function checkRevision(compilerInfo) {
+    var compilerRevision = compilerInfo && compilerInfo[0] || 1,
+        currentRevision = COMPILER_REVISION;
+
+    if (compilerRevision !== currentRevision) {
+      if (compilerRevision < currentRevision) {
+        var runtimeVersions = REVISION_CHANGES[currentRevision],
+            compilerVersions = REVISION_CHANGES[compilerRevision];
+        throw new Error("Template was precompiled with an older version of Handlebars than the current runtime. "+
+              "Please update your precompiler to a newer version ("+runtimeVersions+") or downgrade your runtime to an older version ("+compilerVersions+").");
+      } else {
+        // Use the embedded version info since the runtime doesn't know about this revision yet
+        throw new Error("Template was precompiled with a newer version of Handlebars than the current runtime. "+
+              "Please update your runtime to a newer version ("+compilerInfo[1]+").");
+      }
+    }
+  }
+
+  // TODO: Remove this line and break up compilePartial
+
+  function template(templateSpec, env) {
+    if (!env) {
+      throw new Error("No environment passed to template");
+    }
+
+    var invokePartialWrapper;
+    if (env.compile) {
+      invokePartialWrapper = function(partial, name, context, helpers, partials, data) {
+        // TODO : Check this for all inputs and the options handling (partial flag, etc). This feels
+        // like there should be a common exec path
+        var result = invokePartial.apply(this, arguments);
+        if (result) { return result; }
+
+        var options = { helpers: helpers, partials: partials, data: data };
+        partials[name] = env.compile(partial, { data: data !== undefined }, env);
+        return partials[name](context, options);
+      };
+    } else {
+      invokePartialWrapper = function(partial, name /* , context, helpers, partials, data */) {
+        var result = invokePartial.apply(this, arguments);
+        if (result) { return result; }
+        throw new Exception("The partial " + name + " could not be compiled when running in runtime-only mode");
+      };
+    }
+
+    // Just add water
+    var container = {
+      escapeExpression: Utils.escapeExpression,
+      invokePartial: invokePartialWrapper,
+      programs: [],
+      program: function(i, fn, data) {
+        var programWrapper = this.programs[i];
+        if(data) {
+          programWrapper = program(i, fn, data);
+        } else if (!programWrapper) {
+          programWrapper = this.programs[i] = program(i, fn);
+        }
+        return programWrapper;
+      },
+      merge: function(param, common) {
+        var ret = param || common;
+
+        if (param && common && (param !== common)) {
+          ret = {};
+          Utils.extend(ret, common);
+          Utils.extend(ret, param);
+        }
+        return ret;
+      },
+      programWithDepth: programWithDepth,
+      noop: noop,
+      compilerInfo: null
+    };
+
+    return function(context, options) {
+      options = options || {};
+      var namespace = options.partial ? options : env,
+          helpers,
+          partials;
+
+      if (!options.partial) {
+        helpers = options.helpers;
+        partials = options.partials;
+      }
+      var result = templateSpec.call(
+            container,
+            namespace, context,
+            helpers,
+            partials,
+            options.data);
+
+      if (!options.partial) {
+        checkRevision(container.compilerInfo);
+      }
+
+      return result;
+    };
+  }
+
+  __exports__.template = template;function programWithDepth(i, fn, data /*, $depth */) {
+    var args = Array.prototype.slice.call(arguments, 3);
+
+    var prog = function(context, options) {
+      options = options || {};
+
+      return fn.apply(this, [context, options.data || data].concat(args));
+    };
+    prog.program = i;
+    prog.depth = args.length;
+    return prog;
+  }
+
+  __exports__.programWithDepth = programWithDepth;function program(i, fn, data) {
+    var prog = function(context, options) {
+      options = options || {};
+
+      return fn(context, options.data || data);
+    };
+    prog.program = i;
+    prog.depth = 0;
+    return prog;
+  }
+
+  __exports__.program = program;function invokePartial(partial, name, context, helpers, partials, data) {
+    var options = { partial: true, helpers: helpers, partials: partials, data: data };
+
+    if(partial === undefined) {
+      throw new Exception("The partial " + name + " could not be found");
+    } else if(partial instanceof Function) {
+      return partial(context, options);
+    }
+  }
+
+  __exports__.invokePartial = invokePartial;function noop() { return ""; }
+
+  __exports__.noop = noop;
+  return __exports__;
+})(__module3__, __module5__, __module2__);
+
+// handlebars.runtime.js
+var __module1__ = (function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__) {
+  "use strict";
+  var __exports__;
+  var base = __dependency1__;
+
+  // Each of these augment the Handlebars object. No need to setup here.
+  // (This is done to easily share code between commonjs and browse envs)
+  var SafeString = __dependency2__;
+  var Exception = __dependency3__;
+  var Utils = __dependency4__;
+  var runtime = __dependency5__;
+
+  // For compatibility and usage outside of module systems, make the Handlebars object a namespace
+  var create = function() {
+    var hb = new base.HandlebarsEnvironment();
+
+    Utils.extend(hb, base);
+    hb.SafeString = SafeString;
+    hb.Exception = Exception;
+    hb.Utils = Utils;
+
+    hb.VM = runtime;
+    hb.template = function(spec) {
+      return runtime.template(spec, hb);
+    };
+
+    return hb;
+  };
+
+  var Handlebars = create();
+  Handlebars.create = create;
+
+  __exports__ = Handlebars;
+  return __exports__;
+})(__module2__, __module4__, __module5__, __module3__, __module6__);
+
+// handlebars/compiler/ast.js
+var __module7__ = (function(__dependency1__) {
+  "use strict";
+  var __exports__ = {};
+  var Exception = __dependency1__;
+
+  function ProgramNode(statements, inverseStrip, inverse) {
+    this.type = "program";
+    this.statements = statements;
+    this.strip = {};
+
+    if(inverse) {
+      this.inverse = new ProgramNode(inverse, inverseStrip);
+      this.strip.right = inverseStrip.left;
+    } else if (inverseStrip) {
+      this.strip.left = inverseStrip.right;
+    }
+  }
+
+  __exports__.ProgramNode = ProgramNode;function MustacheNode(rawParams, hash, open, strip) {
+    this.type = "mustache";
+    this.hash = hash;
+    this.strip = strip;
+
+    var escapeFlag = open[3] || open[2];
+    this.escaped = escapeFlag !== '{' && escapeFlag !== '&';
+
+    var id = this.id = rawParams[0];
+    var params = this.params = rawParams.slice(1);
+
+    // a mustache is an eligible helper if:
+    // * its id is simple (a single part, not `this` or `..`)
+    var eligibleHelper = this.eligibleHelper = id.isSimple;
+
+    // a mustache is definitely a helper if:
+    // * it is an eligible helper, and
+    // * it has at least one parameter or hash segment
+    this.isHelper = eligibleHelper && (params.length || hash);
+
+    // if a mustache is an eligible helper but not a definite
+    // helper, it is ambiguous, and will be resolved in a later
+    // pass or at runtime.
+  }
+
+  __exports__.MustacheNode = MustacheNode;function PartialNode(partialName, context, strip) {
+    this.type         = "partial";
+    this.partialName  = partialName;
+    this.context      = context;
+    this.strip = strip;
+  }
+
+  __exports__.PartialNode = PartialNode;function BlockNode(mustache, program, inverse, close) {
+    if(mustache.id.original !== close.path.original) {
+      throw new Exception(mustache.id.original + " doesn't match " + close.path.original);
+    }
+
+    this.type = "block";
+    this.mustache = mustache;
+    this.program  = program;
+    this.inverse  = inverse;
+
+    this.strip = {
+      left: mustache.strip.left,
+      right: close.strip.right
+    };
+
+    (program || inverse).strip.left = mustache.strip.right;
+    (inverse || program).strip.right = close.strip.left;
+
+    if (inverse && !program) {
+      this.isInverse = true;
+    }
+  }
+
+  __exports__.BlockNode = BlockNode;function ContentNode(string) {
+    this.type = "content";
+    this.string = string;
+  }
+
+  __exports__.ContentNode = ContentNode;function HashNode(pairs) {
+    this.type = "hash";
+    this.pairs = pairs;
+  }
+
+  __exports__.HashNode = HashNode;function IdNode(parts) {
+    this.type = "ID";
+
+    var original = "",
+        dig = [],
+        depth = 0;
+
+    for(var i=0,l=parts.length; i<l; i++) {
+      var part = parts[i].part;
+      original += (parts[i].separator || '') + part;
+
+      if (part === ".." || part === "." || part === "this") {
+        if (dig.length > 0) { throw new Exception("Invalid path: " + original); }
+        else if (part === "..") { depth++; }
+        else { this.isScoped = true; }
+      }
+      else { dig.push(part); }
+    }
+
+    this.original = original;
+    this.parts    = dig;
+    this.string   = dig.join('.');
+    this.depth    = depth;
+
+    // an ID is simple if it only has one part, and that part is not
+    // `..` or `this`.
+    this.isSimple = parts.length === 1 && !this.isScoped && depth === 0;
+
+    this.stringModeValue = this.string;
+  }
+
+  __exports__.IdNode = IdNode;function PartialNameNode(name) {
+    this.type = "PARTIAL_NAME";
+    this.name = name.original;
+  }
+
+  __exports__.PartialNameNode = PartialNameNode;function DataNode(id) {
+    this.type = "DATA";
+    this.id = id;
+  }
+
+  __exports__.DataNode = DataNode;function StringNode(string) {
+    this.type = "STRING";
+    this.original =
+      this.string =
+      this.stringModeValue = string;
+  }
+
+  __exports__.StringNode = StringNode;function IntegerNode(integer) {
+    this.type = "INTEGER";
+    this.original =
+      this.integer = integer;
+    this.stringModeValue = Number(integer);
+  }
+
+  __exports__.IntegerNode = IntegerNode;function BooleanNode(bool) {
+    this.type = "BOOLEAN";
+    this.bool = bool;
+    this.stringModeValue = bool === "true";
+  }
+
+  __exports__.BooleanNode = BooleanNode;function CommentNode(comment) {
+    this.type = "comment";
+    this.comment = comment;
+  }
+
+  __exports__.CommentNode = CommentNode;
+  return __exports__;
+})(__module5__);
+
+// handlebars/compiler/parser.js
+var __module9__ = (function() {
+  "use strict";
+  var __exports__;
+  /* Jison generated parser */
+  var handlebars = (function(){
+  var parser = {trace: function trace() { },
+  yy: {},
+  symbols_: {"error":2,"root":3,"statements":4,"EOF":5,"program":6,"simpleInverse":7,"statement":8,"openInverse":9,"closeBlock":10,"openBlock":11,"mustache":12,"partial":13,"CONTENT":14,"COMMENT":15,"OPEN_BLOCK":16,"inMustache":17,"CLOSE":18,"OPEN_INVERSE":19,"OPEN_ENDBLOCK":20,"path":21,"OPEN":22,"OPEN_UNESCAPED":23,"CLOSE_UNESCAPED":24,"OPEN_PARTIAL":25,"partialName":26,"partial_option0":27,"inMustache_repetition0":28,"inMustache_option0":29,"dataName":30,"param":31,"STRING":32,"INTEGER":33,"BOOLEAN":34,"hash":35,"hash_repetition_plus0":36,"hashSegment":37,"ID":38,"EQUALS":39,"DATA":40,"pathSegments":41,"SEP":42,"$accept":0,"$end":1},
+  terminals_: {2:"error",5:"EOF",14:"CONTENT",15:"COMMENT",16:"OPEN_BLOCK",18:"CLOSE",19:"OPEN_INVERSE",20:"OPEN_ENDBLOCK",22:"OPEN",23:"OPEN_UNESCAPED",24:"CLOSE_UNESCAPED",25:"OPEN_PARTIAL",32:"STRING",33:"INTEGER",34:"BOOLEAN",38:"ID",39:"EQUALS",40:"DATA",42:"SEP"},
+  productions_: [0,[3,2],[3,1],[6,2],[6,3],[6,2],[6,1],[6,1],[6,0],[4,1],[4,2],[8,3],[8,3],[8,1],[8,1],[8,1],[8,1],[11,3],[9,3],[10,3],[12,3],[12,3],[13,4],[7,2],[17,3],[17,1],[31,1],[31,1],[31,1],[31,1],[31,1],[35,1],[37,3],[26,1],[26,1],[26,1],[30,2],[21,1],[41,3],[41,1],[27,0],[27,1],[28,0],[28,2],[29,0],[29,1],[36,1],[36,2]],
+  performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {
+
+  var $0 = $$.length - 1;
+  switch (yystate) {
+  case 1: return new yy.ProgramNode($$[$0-1]); 
+  break;
+  case 2: return new yy.ProgramNode([]); 
+  break;
+  case 3:this.$ = new yy.ProgramNode([], $$[$0-1], $$[$0]);
+  break;
+  case 4:this.$ = new yy.ProgramNode($$[$0-2], $$[$0-1], $$[$0]);
+  break;
+  case 5:this.$ = new yy.ProgramNode($$[$0-1], $$[$0], []);
+  break;
+  case 6:this.$ = new yy.ProgramNode($$[$0]);
+  break;
+  case 7:this.$ = new yy.ProgramNode([]);
+  break;
+  case 8:this.$ = new yy.ProgramNode([]);
+  break;
+  case 9:this.$ = [$$[$0]];
+  break;
+  case 10: $$[$0-1].push($$[$0]); this.$ = $$[$0-1]; 
+  break;
+  case 11:this.$ = new yy.BlockNode($$[$0-2], $$[$0-1].inverse, $$[$0-1], $$[$0]);
+  break;
+  case 12:this.$ = new yy.BlockNode($$[$0-2], $$[$0-1], $$[$0-1].inverse, $$[$0]);
+  break;
+  case 13:this.$ = $$[$0];
+  break;
+  case 14:this.$ = $$[$0];
+  break;
+  case 15:this.$ = new yy.ContentNode($$[$0]);
+  break;
+  case 16:this.$ = new yy.CommentNode($$[$0]);
+  break;
+  case 17:this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], $$[$0-2], stripFlags($$[$0-2], $$[$0]));
+  break;
+  case 18:this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], $$[$0-2], stripFlags($$[$0-2], $$[$0]));
+  break;
+  case 19:this.$ = {path: $$[$0-1], strip: stripFlags($$[$0-2], $$[$0])};
+  break;
+  case 20:this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], $$[$0-2], stripFlags($$[$0-2], $$[$0]));
+  break;
+  case 21:this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], $$[$0-2], stripFlags($$[$0-2], $$[$0]));
+  break;
+  case 22:this.$ = new yy.PartialNode($$[$0-2], $$[$0-1], stripFlags($$[$0-3], $$[$0]));
+  break;
+  case 23:this.$ = stripFlags($$[$0-1], $$[$0]);
+  break;
+  case 24:this.$ = [[$$[$0-2]].concat($$[$0-1]), $$[$0]];
+  break;
+  case 25:this.$ = [[$$[$0]], null];
+  break;
+  case 26:this.$ = $$[$0];
+  break;
+  case 27:this.$ = new yy.StringNode($$[$0]);
+  break;
+  case 28:this.$ = new yy.IntegerNode($$[$0]);
+  break;
+  case 29:this.$ = new yy.BooleanNode($$[$0]);
+  break;
+  case 30:this.$ = $$[$0];
+  break;
+  case 31:this.$ = new yy.HashNode($$[$0]);
+  break;
+  case 32:this.$ = [$$[$0-2], $$[$0]];
+  break;
+  case 33:this.$ = new yy.PartialNameNode($$[$0]);
+  break;
+  case 34:this.$ = new yy.PartialNameNode(new yy.StringNode($$[$0]));
+  break;
+  case 35:this.$ = new yy.PartialNameNode(new yy.IntegerNode($$[$0]));
+  break;
+  case 36:this.$ = new yy.DataNode($$[$0]);
+  break;
+  case 37:this.$ = new yy.IdNode($$[$0]);
+  break;
+  case 38: $$[$0-2].push({part: $$[$0], separator: $$[$0-1]}); this.$ = $$[$0-2]; 
+  break;
+  case 39:this.$ = [{part: $$[$0]}];
+  break;
+  case 42:this.$ = [];
+  break;
+  case 43:$$[$0-1].push($$[$0]);
+  break;
+  case 46:this.$ = [$$[$0]];
+  break;
+  case 47:$$[$0-1].push($$[$0]);
+  break;
+  }
+  },
+  table: [{3:1,4:2,5:[1,3],8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],25:[1,15]},{1:[3]},{5:[1,16],8:17,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],25:[1,15]},{1:[2,2]},{5:[2,9],14:[2,9],15:[2,9],16:[2,9],19:[2,9],20:[2,9],22:[2,9],23:[2,9],25:[2,9]},{4:20,6:18,7:19,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,21],20:[2,8],22:[1,13],23:[1,14],25:[1,15]},{4:20,6:22,7:19,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,21],20:[2,8],22:[1,13],23:[1,14],25:[1,15]},{5:[2,13],14:[2,13],15:[2,13],16:[2,13],19:[2,13],20:[2,13],22:[2,13],23:[2,13],25:[2,13]},{5:[2,14],14:[2,14],15:[2,14],16:[2,14],19:[2,14],20:[2,14],22:[2,14],23:[2,14],25:[2,14]},{5:[2,15],14:[2,15],15:[2,15],16:[2,15],19:[2,15],20:[2,15],22:[2,15],23:[2,15],25:[2,15]},{5:[2,16],14:[2,16],15:[2,16],16:[2,16],19:[2,16],20:[2,16],22:[2,16],23:[2,16],25:[2,16]},{17:23,21:24,30:25,38:[1,28],40:[1,27],41:26},{17:29,21:24,30:25,38:[1,28],40:[1,27],41:26},{17:30,21:24,30:25,38:[1,28],40:[1,27],41:26},{17:31,21:24,30:25,38:[1,28],40:[1,27],41:26},{21:33,26:32,32:[1,34],33:[1,35],38:[1,28],41:26},{1:[2,1]},{5:[2,10],14:[2,10],15:[2,10],16:[2,10],19:[2,10],20:[2,10],22:[2,10],23:[2,10],25:[2,10]},{10:36,20:[1,37]},{4:38,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,7],22:[1,13],23:[1,14],25:[1,15]},{7:39,8:17,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,21],20:[2,6],22:[1,13],23:[1,14],25:[1,15]},{17:23,18:[1,40],21:24,30:25,38:[1,28],40:[1,27],41:26},{10:41,20:[1,37]},{18:[1,42]},{18:[2,42],24:[2,42],28:43,32:[2,42],33:[2,42],34:[2,42],38:[2,42],40:[2,42]},{18:[2,25],24:[2,25]},{18:[2,37],24:[2,37],32:[2,37],33:[2,37],34:[2,37],38:[2,37],40:[2,37],42:[1,44]},{21:45,38:[1,28],41:26},{18:[2,39],24:[2,39],32:[2,39],33:[2,39],34:[2,39],38:[2,39],40:[2,39],42:[2,39]},{18:[1,46]},{18:[1,47]},{24:[1,48]},{18:[2,40],21:50,27:49,38:[1,28],41:26},{18:[2,33],38:[2,33]},{18:[2,34],38:[2,34]},{18:[2,35],38:[2,35]},{5:[2,11],14:[2,11],15:[2,11],16:[2,11],19:[2,11],20:[2,11],22:[2,11],23:[2,11],25:[2,11]},{21:51,38:[1,28],41:26},{8:17,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,3],22:[1,13],23:[1,14],25:[1,15]},{4:52,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,5],22:[1,13],23:[1,14],25:[1,15]},{14:[2,23],15:[2,23],16:[2,23],19:[2,23],20:[2,23],22:[2,23],23:[2,23],25:[2,23]},{5:[2,12],14:[2,12],15:[2,12],16:[2,12],19:[2,12],20:[2,12],22:[2,12],23:[2,12],25:[2,12]},{14:[2,18],15:[2,18],16:[2,18],19:[2,18],20:[2,18],22:[2,18],23:[2,18],25:[2,18]},{18:[2,44],21:56,24:[2,44],29:53,30:60,31:54,32:[1,57],33:[1,58],34:[1,59],35:55,36:61,37:62,38:[1,63],40:[1,27],41:26},{38:[1,64]},{18:[2,36],24:[2,36],32:[2,36],33:[2,36],34:[2,36],38:[2,36],40:[2,36]},{14:[2,17],15:[2,17],16:[2,17],19:[2,17],20:[2,17],22:[2,17],23:[2,17],25:[2,17]},{5:[2,20],14:[2,20],15:[2,20],16:[2,20],19:[2,20],20:[2,20],22:[2,20],23:[2,20],25:[2,20]},{5:[2,21],14:[2,21],15:[2,21],16:[2,21],19:[2,21],20:[2,21],22:[2,21],23:[2,21],25:[2,21]},{18:[1,65]},{18:[2,41]},{18:[1,66]},{8:17,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],25:[1,15]},{18:[2,24],24:[2,24]},{18:[2,43],24:[2,43],32:[2,43],33:[2,43],34:[2,43],38:[2,43],40:[2,43]},{18:[2,45],24:[2,45]},{18:[2,26],24:[2,26],32:[2,26],33:[2,26],34:[2,26],38:[2,26],40:[2,26]},{18:[2,27],24:[2,27],32:[2,27],33:[2,27],34:[2,27],38:[2,27],40:[2,27]},{18:[2,28],24:[2,28],32:[2,28],33:[2,28],34:[2,28],38:[2,28],40:[2,28]},{18:[2,29],24:[2,29],32:[2,29],33:[2,29],34:[2,29],38:[2,29],40:[2,29]},{18:[2,30],24:[2,30],32:[2,30],33:[2,30],34:[2,30],38:[2,30],40:[2,30]},{18:[2,31],24:[2,31],37:67,38:[1,68]},{18:[2,46],24:[2,46],38:[2,46]},{18:[2,39],24:[2,39],32:[2,39],33:[2,39],34:[2,39],38:[2,39],39:[1,69],40:[2,39],42:[2,39]},{18:[2,38],24:[2,38],32:[2,38],33:[2,38],34:[2,38],38:[2,38],40:[2,38],42:[2,38]},{5:[2,22],14:[2,22],15:[2,22],16:[2,22],19:[2,22],20:[2,22],22:[2,22],23:[2,22],25:[2,22]},{5:[2,19],14:[2,19],15:[2,19],16:[2,19],19:[2,19],20:[2,19],22:[2,19],23:[2,19],25:[2,19]},{18:[2,47],24:[2,47],38:[2,47]},{39:[1,69]},{21:56,30:60,31:70,32:[1,57],33:[1,58],34:[1,59],38:[1,28],40:[1,27],41:26},{18:[2,32],24:[2,32],38:[2,32]}],
+  defaultActions: {3:[2,2],16:[2,1],50:[2,41]},
+  parseError: function parseError(str, hash) {
+      throw new Error(str);
+  },
+  parse: function parse(input) {
+      var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
+      this.lexer.setInput(input);
+      this.lexer.yy = this.yy;
+      this.yy.lexer = this.lexer;
+      this.yy.parser = this;
+      if (typeof this.lexer.yylloc == "undefined")
+          this.lexer.yylloc = {};
+      var yyloc = this.lexer.yylloc;
+      lstack.push(yyloc);
+      var ranges = this.lexer.options && this.lexer.options.ranges;
+      if (typeof this.yy.parseError === "function")
+          this.parseError = this.yy.parseError;
+      function popStack(n) {
+          stack.length = stack.length - 2 * n;
+          vstack.length = vstack.length - n;
+          lstack.length = lstack.length - n;
+      }
+      function lex() {
+          var token;
+          token = self.lexer.lex() || 1;
+          if (typeof token !== "number") {
+              token = self.symbols_[token] || token;
+          }
+          return token;
+      }
+      var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
+      while (true) {
+          state = stack[stack.length - 1];
+          if (this.defaultActions[state]) {
+              action = this.defaultActions[state];
+          } else {
+              if (symbol === null || typeof symbol == "undefined") {
+                  symbol = lex();
+              }
+              action = table[state] && table[state][symbol];
+          }
+          if (typeof action === "undefined" || !action.length || !action[0]) {
+              var errStr = "";
+              if (!recovering) {
+                  expected = [];
+                  for (p in table[state])
+                      if (this.terminals_[p] && p > 2) {
+                          expected.push("'" + this.terminals_[p] + "'");
+                      }
+                  if (this.lexer.showPosition) {
+                      errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+                  } else {
+                      errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1?"end of input":"'" + (this.terminals_[symbol] || symbol) + "'");
+                  }
+                  this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});
+              }
+          }
+          if (action[0] instanceof Array && action.length > 1) {
+              throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+          }
+          switch (action[0]) {
+          case 1:
+              stack.push(symbol);
+              vstack.push(this.lexer.yytext);
+              lstack.push(this.lexer.yylloc);
+              stack.push(action[1]);
+              symbol = null;
+              if (!preErrorSymbol) {
+                  yyleng = this.lexer.yyleng;
+                  yytext = this.lexer.yytext;
+                  yylineno = this.lexer.yylineno;
+                  yyloc = this.lexer.yylloc;
+                  if (recovering > 0)
+                      recovering--;
+              } else {
+                  symbol = preErrorSymbol;
+                  preErrorSymbol = null;
+              }
+              break;
+          case 2:
+              len = this.productions_[action[1]][1];
+              yyval.$ = vstack[vstack.length - len];
+              yyval._$ = {first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column};
+              if (ranges) {
+                  yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
+              }
+              r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);
+              if (typeof r !== "undefined") {
+                  return r;
+              }
+              if (len) {
+                  stack = stack.slice(0, -1 * len * 2);
+                  vstack = vstack.slice(0, -1 * len);
+                  lstack = lstack.slice(0, -1 * len);
+              }
+              stack.push(this.productions_[action[1]][0]);
+              vstack.push(yyval.$);
+              lstack.push(yyval._$);
+              newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+              stack.push(newState);
+              break;
+          case 3:
+              return true;
+          }
+      }
+      return true;
+  }
+  };
+
+
+  function stripFlags(open, close) {
+    return {
+      left: open[2] === '~',
+      right: close[0] === '~' || close[1] === '~'
+    };
+  }
+
+  /* Jison generated lexer */
+  var lexer = (function(){
+  var lexer = ({EOF:1,
+  parseError:function parseError(str, hash) {
+          if (this.yy.parser) {
+              this.yy.parser.parseError(str, hash);
+          } else {
+              throw new Error(str);
+          }
+      },
+  setInput:function (input) {
+          this._input = input;
+          this._more = this._less = this.done = false;
+          this.yylineno = this.yyleng = 0;
+          this.yytext = this.matched = this.match = '';
+          this.conditionStack = ['INITIAL'];
+          this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};
+          if (this.options.ranges) this.yylloc.range = [0,0];
+          this.offset = 0;
+          return this;
+      },
+  input:function () {
+          var ch = this._input[0];
+          this.yytext += ch;
+          this.yyleng++;
+          this.offset++;
+          this.match += ch;
+          this.matched += ch;
+          var lines = ch.match(/(?:\r\n?|\n).*/g);
+          if (lines) {
+              this.yylineno++;
+              this.yylloc.last_line++;
+          } else {
+              this.yylloc.last_column++;
+          }
+          if (this.options.ranges) this.yylloc.range[1]++;
+
+          this._input = this._input.slice(1);
+          return ch;
+      },
+  unput:function (ch) {
+          var len = ch.length;
+          var lines = ch.split(/(?:\r\n?|\n)/g);
+
+          this._input = ch + this._input;
+          this.yytext = this.yytext.substr(0, this.yytext.length-len-1);
+          //this.yyleng -= len;
+          this.offset -= len;
+          var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+          this.match = this.match.substr(0, this.match.length-1);
+          this.matched = this.matched.substr(0, this.matched.length-1);
+
+          if (lines.length-1) this.yylineno -= lines.length-1;
+          var r = this.yylloc.range;
+
+          this.yylloc = {first_line: this.yylloc.first_line,
+            last_line: this.yylineno+1,
+            first_column: this.yylloc.first_column,
+            last_column: lines ?
+                (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length:
+                this.yylloc.first_column - len
+            };
+
+          if (this.options.ranges) {
+              this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+          }
+          return this;
+      },
+  more:function () {
+          this._more = true;
+          return this;
+      },
+  less:function (n) {
+          this.unput(this.match.slice(n));
+      },
+  pastInput:function () {
+          var past = this.matched.substr(0, this.matched.length - this.match.length);
+          return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
+      },
+  upcomingInput:function () {
+          var next = this.match;
+          if (next.length < 20) {
+              next += this._input.substr(0, 20-next.length);
+          }
+          return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\n/g, "");
+      },
+  showPosition:function () {
+          var pre = this.pastInput();
+          var c = new Array(pre.length + 1).join("-");
+          return pre + this.upcomingInput() + "\n" + c+"^";
+      },
+  next:function () {
+          if (this.done) {
+              return this.EOF;
+          }
+          if (!this._input) this.done = true;
+
+          var token,
+              match,
+              tempMatch,
+              index,
+              col,
+              lines;
+          if (!this._more) {
+              this.yytext = '';
+              this.match = '';
+          }
+          var rules = this._currentRules();
+          for (var i=0;i < rules.length; i++) {
+              tempMatch = this._input.match(this.rules[rules[i]]);
+              if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+                  match = tempMatch;
+                  index = i;
+                  if (!this.options.flex) break;
+              }
+          }
+          if (match) {
+              lines = match[0].match(/(?:\r\n?|\n).*/g);
+              if (lines) this.yylineno += lines.length;
+              this.yylloc = {first_line: this.yylloc.last_line,
+                             last_line: this.yylineno+1,
+                             first_column: this.yylloc.last_column,
+                             last_column: lines ? lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length};
+              this.yytext += match[0];
+              this.match += match[0];
+              this.matches = match;
+              this.yyleng = this.yytext.length;
+              if (this.options.ranges) {
+                  this.yylloc.range = [this.offset, this.offset += this.yyleng];
+              }
+              this._more = false;
+              this._input = this._input.slice(match[0].length);
+              this.matched += match[0];
+              token = this.performAction.call(this, this.yy, this, rules[index],this.conditionStack[this.conditionStack.length-1]);
+              if (this.done && this._input) this.done = false;
+              if (token) return token;
+              else return;
+          }
+          if (this._input === "") {
+              return this.EOF;
+          } else {
+              return this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(),
+                      {text: "", token: null, line: this.yylineno});
+          }
+      },
+  lex:function lex() {
+          var r = this.next();
+          if (typeof r !== 'undefined') {
+              return r;
+          } else {
+              return this.lex();
+          }
+      },
+  begin:function begin(condition) {
+          this.conditionStack.push(condition);
+      },
+  popState:function popState() {
+          return this.conditionStack.pop();
+      },
+  _currentRules:function _currentRules() {
+          return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;
+      },
+  topState:function () {
+          return this.conditionStack[this.conditionStack.length-2];
+      },
+  pushState:function begin(condition) {
+          this.begin(condition);
+      }});
+  lexer.options = {};
+  lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
+
+
+  function strip(start, end) {
+    return yy_.yytext = yy_.yytext.substr(start, yy_.yyleng-end);
+  }
+
+
+  var YYSTATE=YY_START
+  switch($avoiding_name_collisions) {
+  case 0:
+                                     if(yy_.yytext.slice(-2) === "\\\\") {
+                                       strip(0,1);
+                                       this.begin("mu");
+                                     } else if(yy_.yytext.slice(-1) === "\\") {
+                                       strip(0,1);
+                                       this.begin("emu");
+                                     } else {
+                                       this.begin("mu");
+                                     }
+                                     if(yy_.yytext) return 14;
+                                   
+  break;
+  case 1:return 14;
+  break;
+  case 2:
+                                     if(yy_.yytext.slice(-1) !== "\\") this.popState();
+                                     if(yy_.yytext.slice(-1) === "\\") strip(0,1);
+                                     return 14;
+                                   
+  break;
+  case 3:strip(0,4); this.popState(); return 15;
+  break;
+  case 4:return 25;
+  break;
+  case 5:return 16;
+  break;
+  case 6:return 20;
+  break;
+  case 7:return 19;
+  break;
+  case 8:return 19;
+  break;
+  case 9:return 23;
+  break;
+  case 10:return 22;
+  break;
+  case 11:this.popState(); this.begin('com');
+  break;
+  case 12:strip(3,5); this.popState(); return 15;
+  break;
+  case 13:return 22;
+  break;
+  case 14:return 39;
+  break;
+  case 15:return 38;
+  break;
+  case 16:return 38;
+  break;
+  case 17:return 42;
+  break;
+  case 18:/*ignore whitespace*/
+  break;
+  case 19:this.popState(); return 24;
+  break;
+  case 20:this.popState(); return 18;
+  break;
+  case 21:yy_.yytext = strip(1,2).replace(/\\"/g,'"'); return 32;
+  break;
+  case 22:yy_.yytext = strip(1,2).replace(/\\'/g,"'"); return 32;
+  break;
+  case 23:return 40;
+  break;
+  case 24:return 34;
+  break;
+  case 25:return 34;
+  break;
+  case 26:return 33;
+  break;
+  case 27:return 38;
+  break;
+  case 28:yy_.yytext = strip(1,2); return 38;
+  break;
+  case 29:return 'INVALID';
+  break;
+  case 30:return 5;
+  break;
+  }
+  };
+  lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|$)))/,/^(?:[\s\S]*?--\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{!--)/,/^(?:\{\{![\s\S]*?\}\})/,/^(?:\{\{(~)?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s])))/,/^(?:false(?=([~}\s])))/,/^(?:-?[0-9]+(?=([~}\s])))/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.]))))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/];
+  lexer.conditions = {"mu":{"rules":[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30],"inclusive":false},"emu":{"rules":[2],"inclusive":false},"com":{"rules":[3],"inclusive":false},"INITIAL":{"rules":[0,1,30],"inclusive":true}};
+  return lexer;})()
+  parser.lexer = lexer;
+  function Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser;
+  return new Parser;
+  })();__exports__ = handlebars;
+  return __exports__;
+})();
+
+// handlebars/compiler/base.js
+var __module8__ = (function(__dependency1__, __dependency2__) {
+  "use strict";
+  var __exports__ = {};
+  var parser = __dependency1__;
+  var AST = __dependency2__;
+
+  __exports__.parser = parser;
+
+  function parse(input) {
+    // Just return if an already-compile AST was passed in.
+    if(input.constructor === AST.ProgramNode) { return input; }
+
+    parser.yy = AST;
+    return parser.parse(input);
+  }
+
+  __exports__.parse = parse;
+  return __exports__;
+})(__module9__, __module7__);
+
+// handlebars/compiler/javascript-compiler.js
+var __module11__ = (function(__dependency1__) {
+  "use strict";
+  var __exports__;
+  var COMPILER_REVISION = __dependency1__.COMPILER_REVISION;
+  var REVISION_CHANGES = __dependency1__.REVISION_CHANGES;
+  var log = __dependency1__.log;
+
+  function Literal(value) {
+    this.value = value;
+  }
+
+  function JavaScriptCompiler() {}
+
+  JavaScriptCompiler.prototype = {
+    // PUBLIC API: You can override these methods in a subclass to provide
+    // alternative compiled forms for name lookup and buffering semantics
+    nameLookup: function(parent, name /* , type*/) {
+      var wrap,
+          ret;
+      if (parent.indexOf('depth') === 0) {
+        wrap = true;
+      }
+
+      if (/^[0-9]+$/.test(name)) {
+        ret = parent + "[" + name + "]";
+      } else if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) {
+        ret = parent + "." + name;
+      }
+      else {
+        ret = parent + "['" + name + "']";
+      }
+
+      if (wrap) {
+        return '(' + parent + ' && ' + ret + ')';
+      } else {
+        return ret;
+      }
+    },
+
+    appendToBuffer: function(string) {
+      if (this.environment.isSimple) {
+        return "return " + string + ";";
+      } else {
+        return {
+          appendToBuffer: true,
+          content: string,
+          toString: function() { return "buffer += " + string + ";"; }
+        };
+      }
+    },
+
+    initializeBuffer: function() {
+      return this.quotedString("");
+    },
+
+    namespace: "Handlebars",
+    // END PUBLIC API
+
+    compile: function(environment, options, context, asObject) {
+      this.environment = environment;
+      this.options = options || {};
+
+      log('debug', this.environment.disassemble() + "\n\n");
+
+      this.name = this.environment.name;
+      this.isChild = !!context;
+      this.context = context || {
+        programs: [],
+        environments: [],
+        aliases: { }
+      };
+
+      this.preamble();
+
+      this.stackSlot = 0;
+      this.stackVars = [];
+      this.registers = { list: [] };
+      this.compileStack = [];
+      this.inlineStack = [];
+
+      this.compileChildren(environment, options);
+
+      var opcodes = environment.opcodes, opcode;
+
+      this.i = 0;
+
+      for(var l=opcodes.length; this.i<l; this.i++) {
+        opcode = opcodes[this.i];
+
+        if(opcode.opcode === 'DECLARE') {
+          this[opcode.name] = opcode.value;
+        } else {
+          this[opcode.opcode].apply(this, opcode.args);
+        }
+
+        // Reset the stripNext flag if it was not set by this operation.
+        if (opcode.opcode !== this.stripNext) {
+          this.stripNext = false;
+        }
+      }
+
+      // Flush any trailing content that might be pending.
+      this.pushSource('');
+
+      return this.createFunctionContext(asObject);
+    },
+
+    preamble: function() {
+      var out = [];
+
+      if (!this.isChild) {
+        var namespace = this.namespace;
+
+        var copies = "helpers = this.merge(helpers, " + namespace + ".helpers);";
+        if (this.environment.usePartial) { copies = copies + " partials = this.merge(partials, " + namespace + ".partials);"; }
+        if (this.options.data) { copies = copies + " data = data || {};"; }
+        out.push(copies);
+      } else {
+        out.push('');
+      }
+
+      if (!this.environment.isSimple) {
+        out.push(", buffer = " + this.initializeBuffer());
+      } else {
+        out.push("");
+      }
+
+      // track the last context pushed into place to allow skipping the
+      // getContext opcode when it would be a noop
+      this.lastContext = 0;
+      this.source = out;
+    },
+
+    createFunctionContext: function(asObject) {
+      var locals = this.stackVars.concat(this.registers.list);
+
+      if(locals.length > 0) {
+        this.source[1] = this.source[1] + ", " + locals.join(", ");
+      }
+
+      // Generate minimizer alias mappings
+      if (!this.isChild) {
+        for (var alias in this.context.aliases) {
+          if (this.context.aliases.hasOwnProperty(alias)) {
+            this.source[1] = this.source[1] + ', ' + alias + '=' + this.context.aliases[alias];
+          }
+        }
+      }
+
+      if (this.source[1]) {
+        this.source[1] = "var " + this.source[1].substring(2) + ";";
+      }
+
+      // Merge children
+      if (!this.isChild) {
+        this.source[1] += '\n' + this.context.programs.join('\n') + '\n';
+      }
+
+      if (!this.environment.isSimple) {
+        this.pushSource("return buffer;");
+      }
+
+      var params = this.isChild ? ["depth0", "data"] : ["Handlebars", "depth0", "helpers", "partials", "data"];
+
+      for(var i=0, l=this.environment.depths.list.length; i<l; i++) {
+        params.push("depth" + this.environment.depths.list[i]);
+      }
+
+      // Perform a second pass over the output to merge content when possible
+      var source = this.mergeSource();
+
+      if (!this.isChild) {
+        var revision = COMPILER_REVISION,
+            versions = REVISION_CHANGES[revision];
+        source = "this.compilerInfo = ["+revision+",'"+versions+"'];\n"+source;
+      }
+
+      if (asObject) {
+        params.push(source);
+
+        return Function.apply(this, params);
+      } else {
+        var functionSource = 'function ' + (this.name || '') + '(' + params.join(',') + ') {\n  ' + source + '}';
+        log('debug', functionSource + "\n\n");
+        return functionSource;
+      }
+    },
+    mergeSource: function() {
+      // WARN: We are not handling the case where buffer is still populated as the source should
+      // not have buffer append operations as their final action.
+      var source = '',
+          buffer;
+      for (var i = 0, len = this.source.length; i < len; i++) {
+        var line = this.source[i];
+        if (line.appendToBuffer) {
+          if (buffer) {
+            buffer = buffer + '\n    + ' + line.content;
+          } else {
+            buffer = line.content;
+          }
+        } else {
+          if (buffer) {
+            source += 'buffer += ' + buffer + ';\n  ';
+            buffer = undefined;
+          }
+          source += line + '\n  ';
+        }
+      }
+      return source;
+    },
+
+    // [blockValue]
+    //
+    // On stack, before: hash, inverse, program, value
+    // On stack, after: return value of blockHelperMissing
+    //
+    // The purpose of this opcode is to take a block of the form
+    // `{{#foo}}...{{/foo}}`, resolve the value of `foo`, and
+    // replace it on the stack with the result of properly
+    // invoking blockHelperMissing.
+    blockValue: function() {
+      this.context.aliases.blockHelperMissing = 'helpers.blockHelperMissing';
+
+      var params = ["depth0"];
+      this.setupParams(0, params);
+
+      this.replaceStack(function(current) {
+        params.splice(1, 0, current);
+        return "blockHelperMissing.call(" + params.join(", ") + ")";
+      });
+    },
+
+    // [ambiguousBlockValue]
+    //
+    // On stack, before: hash, inverse, program, value
+    // Compiler value, before: lastHelper=value of last found helper, if any
+    // On stack, after, if no lastHelper: same as [blockValue]
+    // On stack, after, if lastHelper: value
+    ambiguousBlockValue: function() {
+      this.context.aliases.blockHelperMissing = 'helpers.blockHelperMissing';
+
+      var params = ["depth0"];
+      this.setupParams(0, params);
+
+      var current = this.topStack();
+      params.splice(1, 0, current);
+
+      // Use the options value generated from the invocation
+      params[params.length-1] = 'options';
+
+      this.pushSource("if (!" + this.lastHelper + ") { " + current + " = blockHelperMissing.call(" + params.join(", ") + "); }");
+    },
+
+    // [appendContent]
+    //
+    // On stack, before: ...
+    // On stack, after: ...
+    //
+    // Appends the string value of `content` to the current buffer
+    appendContent: function(content) {
+      if (this.pendingContent) {
+        content = this.pendingContent + content;
+      }
+      if (this.stripNext) {
+        content = content.replace(/^\s+/, '');
+      }
+
+      this.pendingContent = content;
+    },
+
+    // [strip]
+    //
+    // On stack, before: ...
+    // On stack, after: ...
+    //
+    // Removes any trailing whitespace from the prior content node and flags
+    // the next operation for stripping if it is a content node.
+    strip: function() {
+      if (this.pendingContent) {
+        this.pendingContent = this.pendingContent.replace(/\s+$/, '');
+      }
+      this.stripNext = 'strip';
+    },
+
+    // [append]
+    //
+    // On stack, before: value, ...
+    // On stack, after: ...
+    //
+    // Coerces `value` to a String and appends it to the current buffer.
+    //
+    // If `value` is truthy, or 0, it is coerced into a string and appended
+    // Otherwise, the empty string is appended
+    append: function() {
+      // Force anything that is inlined onto the stack so we don't have duplication
+      // when we examine local
+      this.flushInline();
+      var local = this.popStack();
+      this.pushSource("if(" + local + " || " + local + " === 0) { " + this.appendToBuffer(local) + " }");
+      if (this.environment.isSimple) {
+        this.pushSource("else { " + this.appendToBuffer("''") + " }");
+      }
+    },
+
+    // [appendEscaped]
+    //
+    // On stack, before: value, ...
+    // On stack, after: ...
+    //
+    // Escape `value` and append it to the buffer
+    appendEscaped: function() {
+      this.context.aliases.escapeExpression = 'this.escapeExpression';
+
+      this.pushSource(this.appendToBuffer("escapeExpression(" + this.popStack() + ")"));
+    },
+
+    // [getContext]
+    //
+    // On stack, before: ...
+    // On stack, after: ...
+    // Compiler value, after: lastContext=depth
+    //
+    // Set the value of the `lastContext` compiler value to the depth
+    getContext: function(depth) {
+      if(this.lastContext !== depth) {
+        this.lastContext = depth;
+      }
+    },
+
+    // [lookupOnContext]
+    //
+    // On stack, before: ...
+    // On stack, after: currentContext[name], ...
+    //
+    // Looks up the value of `name` on the current context and pushes
+    // it onto the stack.
+    lookupOnContext: function(name) {
+      this.push(this.nameLookup('depth' + this.lastContext, name, 'context'));
+    },
+
+    // [pushContext]
+    //
+    // On stack, before: ...
+    // On stack, after: currentContext, ...
+    //
+    // Pushes the value of the current context onto the stack.
+    pushContext: function() {
+      this.pushStackLiteral('depth' + this.lastContext);
+    },
+
+    // [resolvePossibleLambda]
+    //
+    // On stack, before: value, ...
+    // On stack, after: resolved value, ...
+    //
+    // If the `value` is a lambda, replace it on the stack by
+    // the return value of the lambda
+    resolvePossibleLambda: function() {
+      this.context.aliases.functionType = '"function"';
+
+      this.replaceStack(function(current) {
+        return "typeof " + current + " === functionType ? " + current + ".apply(depth0) : " + current;
+      });
+    },
+
+    // [lookup]
+    //
+    // On stack, before: value, ...
+    // On stack, after: value[name], ...
+    //
+    // Replace the value on the stack with the result of looking
+    // up `name` on `value`
+    lookup: function(name) {
+      this.replaceStack(function(current) {
+        return current + " == null || " + current + " === false ? " + current + " : " + this.nameLookup(current, name, 'context');
+      });
+    },
+
+    // [lookupData]
+    //
+    // On stack, before: ...
+    // On stack, after: data, ...
+    //
+    // Push the data lookup operator
+    lookupData: function() {
+      this.push('data');
+    },
+
+    // [pushStringParam]
+    //
+    // On stack, before: ...
+    // On stack, after: string, currentContext, ...
+    //
+    // This opcode is designed for use in string mode, which
+    // provides the string value of a parameter along with its
+    // depth rather than resolving it immediately.
+    pushStringParam: function(string, type) {
+      this.pushStackLiteral('depth' + this.lastContext);
+
+      this.pushString(type);
+
+      if (typeof string === 'string') {
+        this.pushString(string);
+      } else {
+        this.pushStackLiteral(string);
+      }
+    },
+
+    emptyHash: function() {
+      this.pushStackLiteral('{}');
+
+      if (this.options.stringParams) {
+        this.register('hashTypes', '{}');
+        this.register('hashContexts', '{}');
+      }
+    },
+    pushHash: function() {
+      this.hash = {values: [], types: [], contexts: []};
+    },
+    popHash: function() {
+      var hash = this.hash;
+      this.hash = undefined;
+
+      if (this.options.stringParams) {
+        this.register('hashContexts', '{' + hash.contexts.join(',') + '}');
+        this.register('hashTypes', '{' + hash.types.join(',') + '}');
+      }
+      this.push('{\n    ' + hash.values.join(',\n    ') + '\n  }');
+    },
+
+    // [pushString]
+    //
+    // On stack, before: ...
+    // On stack, after: quotedString(string), ...
+    //
+    // Push a quoted version of `string` onto the stack
+    pushString: function(string) {
+      this.pushStackLiteral(this.quotedString(string));
+    },
+
+    // [push]
+    //
+    // On stack, before: ...
+    // On stack, after: expr, ...
+    //
+    // Push an expression onto the stack
+    push: function(expr) {
+      this.inlineStack.push(expr);
+      return expr;
+    },
+
+    // [pushLiteral]
+    //
+    // On stack, before: ...
+    // On stack, after: value, ...
+    //
+    // Pushes a value onto the stack. This operation prevents
+    // the compiler from creating a temporary variable to hold
+    // it.
+    pushLiteral: function(value) {
+      this.pushStackLiteral(value);
+    },
+
+    // [pushProgram]
+    //
+    // On stack, before: ...
+    // On stack, after: program(guid), ...
+    //
+    // Push a program expression onto the stack. This takes
+    // a compile-time guid and converts it into a runtime-accessible
+    // expression.
+    pushProgram: function(guid) {
+      if (guid != null) {
+        this.pushStackLiteral(this.programExpression(guid));
+      } else {
+        this.pushStackLiteral(null);
+      }
+    },
+
+    // [invokeHelper]
+    //
+    // On stack, before: hash, inverse, program, params..., ...
+    // On stack, after: result of helper invocation
+    //
+    // Pops off the helper's parameters, invokes the helper,
+    // and pushes the helper's return value onto the stack.
+    //
+    // If the helper is not found, `helperMissing` is called.
+    invokeHelper: function(paramSize, name) {
+      this.context.aliases.helperMissing = 'helpers.helperMissing';
+
+      var helper = this.lastHelper = this.setupHelper(paramSize, name, true);
+      var nonHelper = this.nameLookup('depth' + this.lastContext, name, 'context');
+
+      this.push(helper.name + ' || ' + nonHelper);
+      this.replaceStack(function(name) {
+        return name + ' ? ' + name + '.call(' +
+            helper.callParams + ") " + ": helperMissing.call(" +
+            helper.helperMissingParams + ")";
+      });
+    },
+
+    // [invokeKnownHelper]
+    //
+    // On stack, before: hash, inverse, program, params..., ...
+    // On stack, after: result of helper invocation
+    //
+    // This operation is used when the helper is known to exist,
+    // so a `helperMissing` fallback is not required.
+    invokeKnownHelper: function(paramSize, name) {
+      var helper = this.setupHelper(paramSize, name);
+      this.push(helper.name + ".call(" + helper.callParams + ")");
+    },
+
+    // [invokeAmbiguous]
+    //
+    // On stack, before: hash, inverse, program, params..., ...
+    // On stack, after: result of disambiguation
+    //
+    // This operation is used when an expression like `{{foo}}`
+    // is provided, but we don't know at compile-time whether it
+    // is a helper or a path.
+    //
+    // This operation emits more code than the other options,
+    // and can be avoided by passing the `knownHelpers` and
+    // `knownHelpersOnly` flags at compile-time.
+    invokeAmbiguous: function(name, helperCall) {
+      this.context.aliases.functionType = '"function"';
+
+      this.pushStackLiteral('{}');    // Hash value
+      var helper = this.setupHelper(0, name, helperCall);
+
+      var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper');
+
+      var nonHelper = this.nameLookup('depth' + this.lastContext, name, 'context');
+      var nextStack = this.nextStack();
+
+      this.pushSource('if (' + nextStack + ' = ' + helperName + ') { ' + nextStack + ' = ' + nextStack + '.call(' + helper.callParams + '); }');
+      this.pushSource('else { ' + nextStack + ' = ' + nonHelper + '; ' + nextStack + ' = typeof ' + nextStack + ' === functionType ? ' + nextStack + '.call(' + helper.callParams + ') : ' + nextStack + '; }');
+    },
+
+    // [invokePartial]
+    //
+    // On stack, before: context, ...
+    // On stack after: result of partial invocation
+    //
+    // This operation pops off a context, invokes a partial with that context,
+    // and pushes the result of the invocation back.
+    invokePartial: function(name) {
+      var params = [this.nameLookup('partials', name, 'partial'), "'" + name + "'", this.popStack(), "helpers", "partials"];
+
+      if (this.options.data) {
+        params.push("data");
+      }
+
+      this.context.aliases.self = "this";
+      this.push("self.invokePartial(" + params.join(", ") + ")");
+    },
+
+    // [assignToHash]
+    //
+    // On stack, before: value, hash, ...
+    // On stack, after: hash, ...
+    //
+    // Pops a value and hash off the stack, assigns `hash[key] = value`
+    // and pushes the hash back onto the stack.
+    assignToHash: function(key) {
+      var value = this.popStack(),
+          context,
+          type;
+
+      if (this.options.stringParams) {
+        type = this.popStack();
+        context = this.popStack();
+      }
+
+      var hash = this.hash;
+      if (context) {
+        hash.contexts.push("'" + key + "': " + context);
+      }
+      if (type) {
+        hash.types.push("'" + key + "': " + type);
+      }
+      hash.values.push("'" + key + "': (" + value + ")");
+    },
+
+    // HELPERS
+
+    compiler: JavaScriptCompiler,
+
+    compileChildren: function(environment, options) {
+      var children = environment.children, child, compiler;
+
+      for(var i=0, l=children.length; i<l; i++) {
+        child = children[i];
+        compiler = new this.compiler();
+
+        var index = this.matchExistingProgram(child);
+
+        if (index == null) {
+          this.context.programs.push('');     // Placeholder to prevent name conflicts for nested children
+          index = this.context.programs.length;
+          child.index = index;
+          child.name = 'program' + index;
+          this.context.programs[index] = compiler.compile(child, options, this.context);
+          this.context.environments[index] = child;
+        } else {
+          child.index = index;
+          child.name = 'program' + index;
+        }
+      }
+    },
+    matchExistingProgram: function(child) {
+      for (var i = 0, len = this.context.environments.length; i < len; i++) {
+        var environment = this.context.environments[i];
+        if (environment && environment.equals(child)) {
+          return i;
+        }
+      }
+    },
+
+    programExpression: function(guid) {
+      this.context.aliases.self = "this";
+
+      if(guid == null) {
+        return "self.noop";
+      }
+
+      var child = this.environment.children[guid],
+          depths = child.depths.list, depth;
+
+      var programParams = [child.index, child.name, "data"];
+
+      for(var i=0, l = depths.length; i<l; i++) {
+        depth = depths[i];
+
+        if(depth === 1) { programParams.push("depth0"); }
+        else { programParams.push("depth" + (depth - 1)); }
+      }
+
+      return (depths.length === 0 ? "self.program(" : "self.programWithDepth(") + programParams.join(", ") + ")";
+    },
+
+    register: function(name, val) {
+      this.useRegister(name);
+      this.pushSource(name + " = " + val + ";");
+    },
+
+    useRegister: function(name) {
+      if(!this.registers[name]) {
+        this.registers[name] = true;
+        this.registers.list.push(name);
+      }
+    },
+
+    pushStackLiteral: function(item) {
+      return this.push(new Literal(item));
+    },
+
+    pushSource: function(source) {
+      if (this.pendingContent) {
+        this.source.push(this.appendToBuffer(this.quotedString(this.pendingContent)));
+        this.pendingContent = undefined;
+      }
+
+      if (source) {
+        this.source.push(source);
+      }
+    },
+
+    pushStack: function(item) {
+      this.flushInline();
+
+      var stack = this.incrStack();
+      if (item) {
+        this.pushSource(stack + " = " + item + ";");
+      }
+      this.compileStack.push(stack);
+      return stack;
+    },
+
+    replaceStack: function(callback) {
+      var prefix = '',
+          inline = this.isInline(),
+          stack;
+
+      // If we are currently inline then we want to merge the inline statement into the
+      // replacement statement via ','
+      if (inline) {
+        var top = this.popStack(true);
+
+        if (top instanceof Literal) {
+          // Literals do not need to be inlined
+          stack = top.value;
+        } else {
+          // Get or create the current stack name for use by the inline
+          var name = this.stackSlot ? this.topStackName() : this.incrStack();
+
+          prefix = '(' + this.push(name) + ' = ' + top + '),';
+          stack = this.topStack();
+        }
+      } else {
+        stack = this.topStack();
+      }
+
+      var item = callback.call(this, stack);
+
+      if (inline) {
+        if (this.inlineStack.length || this.compileStack.length) {
+          this.popStack();
+        }
+        this.push('(' + prefix + item + ')');
+      } else {
+        // Prevent modification of the context depth variable. Through replaceStack
+        if (!/^stack/.test(stack)) {
+          stack = this.nextStack();
+        }
+
+        this.pushSource(stack + " = (" + prefix + item + ");");
+      }
+      return stack;
+    },
+
+    nextStack: function() {
+      return this.pushStack();
+    },
+
+    incrStack: function() {
+      this.stackSlot++;
+      if(this.stackSlot > this.stackVars.length) { this.stackVars.push("stack" + this.stackSlot); }
+      return this.topStackName();
+    },
+    topStackName: function() {
+      return "stack" + this.stackSlot;
+    },
+    flushInline: function() {
+      var inlineStack = this.inlineStack;
+      if (inlineStack.length) {
+        this.inlineStack = [];
+        for (var i = 0, len = inlineStack.length; i < len; i++) {
+          var entry = inlineStack[i];
+          if (entry instanceof Literal) {
+            this.compileStack.push(entry);
+          } else {
+            this.pushStack(entry);
+          }
+        }
+      }
+    },
+    isInline: function() {
+      return this.inlineStack.length;
+    },
+
+    popStack: function(wrapped) {
+      var inline = this.isInline(),
+          item = (inline ? this.inlineStack : this.compileStack).pop();
+
+      if (!wrapped && (item instanceof Literal)) {
+        return item.value;
+      } else {
+        if (!inline) {
+          this.stackSlot--;
+        }
+        return item;
+      }
+    },
+
+    topStack: function(wrapped) {
+      var stack = (this.isInline() ? this.inlineStack : this.compileStack),
+          item = stack[stack.length - 1];
+
+      if (!wrapped && (item instanceof Literal)) {
+        return item.value;
+      } else {
+        return item;
+      }
+    },
+
+    quotedString: function(str) {
+      return '"' + str
+        .replace(/\\/g, '\\\\')
+        .replace(/"/g, '\\"')
+        .replace(/\n/g, '\\n')
+        .replace(/\r/g, '\\r')
+        .replace(/\u2028/g, '\\u2028')   // Per Ecma-262 7.3 + 7.8.4
+        .replace(/\u2029/g, '\\u2029') + '"';
+    },
+
+    setupHelper: function(paramSize, name, missingParams) {
+      var params = [];
+      this.setupParams(paramSize, params, missingParams);
+      var foundHelper = this.nameLookup('helpers', name, 'helper');
+
+      return {
+        params: params,
+        name: foundHelper,
+        callParams: ["depth0"].concat(params).join(", "),
+        helperMissingParams: missingParams && ["depth0", this.quotedString(name)].concat(params).join(", ")
+      };
+    },
+
+    // the params and contexts arguments are passed in arrays
+    // to fill in
+    setupParams: function(paramSize, params, useRegister) {
+      var options = [], contexts = [], types = [], param, inverse, program;
+
+      options.push("hash:" + this.popStack());
+
+      inverse = this.popStack();
+      program = this.popStack();
+
+      // Avoid setting fn and inverse if neither are set. This allows
+      // helpers to do a check for `if (options.fn)`
+      if (program || inverse) {
+        if (!program) {
+          this.context.aliases.self = "this";
+          program = "self.noop";
+        }
+
+        if (!inverse) {
+         this.context.aliases.self = "this";
+          inverse = "self.noop";
+        }
+
+        options.push("inverse:" + inverse);
+        options.push("fn:" + program);
+      }
+
+      for(var i=0; i<paramSize; i++) {
+        param = this.popStack();
+        params.push(param);
+
+        if(this.options.stringParams) {
+          types.push(this.popStack());
+          contexts.push(this.popStack());
+        }
+      }
+
+      if (this.options.stringParams) {
+        options.push("contexts:[" + contexts.join(",") + "]");
+        options.push("types:[" + types.join(",") + "]");
+        options.push("hashContexts:hashContexts");
+        options.push("hashTypes:hashTypes");
+      }
+
+      if(this.options.data) {
+        options.push("data:data");
+      }
+
+      options = "{" + options.join(",") + "}";
+      if (useRegister) {
+        this.register('options', options);
+        params.push('options');
+      } else {
+        params.push(options);
+      }
+      return params.join(", ");
+    }
+  };
+
+  var reservedWords = (
+    "break else new var" +
+    " case finally return void" +
+    " catch for switch while" +
+    " continue function this with" +
+    " default if throw" +
+    " delete in try" +
+    " do instanceof typeof" +
+    " abstract enum int short" +
+    " boolean export interface static" +
+    " byte extends long super" +
+    " char final native synchronized" +
+    " class float package throws" +
+    " const goto private transient" +
+    " debugger implements protected volatile" +
+    " double import public let yield"
+  ).split(" ");
+
+  var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {};
+
+  for(var i=0, l=reservedWords.length; i<l; i++) {
+    compilerWords[reservedWords[i]] = true;
+  }
+
+  JavaScriptCompiler.isValidJavaScriptVariableName = function(name) {
+    if(!JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]+$/.test(name)) {
+      return true;
+    }
+    return false;
+  };
+
+  __exports__ = JavaScriptCompiler;
+  return __exports__;
+})(__module2__);
+
+// handlebars/compiler/compiler.js
+var __module10__ = (function(__dependency1__, __dependency2__, __dependency3__, __dependency4__) {
+  "use strict";
+  var __exports__ = {};
+  var Exception = __dependency1__;
+  var parse = __dependency2__.parse;
+  var JavaScriptCompiler = __dependency3__;
+  var AST = __dependency4__;
+
+  function Compiler() {}
+
+  __exports__.Compiler = Compiler;// the foundHelper register will disambiguate helper lookup from finding a
+  // function in a context. This is necessary for mustache compatibility, which
+  // requires that context functions in blocks are evaluated by blockHelperMissing,
+  // and then proceed as if the resulting value was provided to blockHelperMissing.
+
+  Compiler.prototype = {
+    compiler: Compiler,
+
+    disassemble: function() {
+      var opcodes = this.opcodes, opcode, out = [], params, param;
+
+      for (var i=0, l=opcodes.length; i<l; i++) {
+        opcode = opcodes[i];
+
+        if (opcode.opcode === 'DECLARE') {
+          out.push("DECLARE " + opcode.name + "=" + opcode.value);
+        } else {
+          params = [];
+          for (var j=0; j<opcode.args.length; j++) {
+            param = opcode.args[j];
+            if (typeof param === "string") {
+              param = "\"" + param.replace("\n", "\\n") + "\"";
+            }
+            params.push(param);
+          }
+          out.push(opcode.opcode + " " + params.join(" "));
+        }
+      }
+
+      return out.join("\n");
+    },
+
+    equals: function(other) {
+      var len = this.opcodes.length;
+      if (other.opcodes.length !== len) {
+        return false;
+      }
+
+      for (var i = 0; i < len; i++) {
+        var opcode = this.opcodes[i],
+            otherOpcode = other.opcodes[i];
+        if (opcode.opcode !== otherOpcode.opcode || opcode.args.length !== otherOpcode.args.length) {
+          return false;
+        }
+        for (var j = 0; j < opcode.args.length; j++) {
+          if (opcode.args[j] !== otherOpcode.args[j]) {
+            return false;
+          }
+        }
+      }
+
+      len = this.children.length;
+      if (other.children.length !== len) {
+        return false;
+      }
+      for (i = 0; i < len; i++) {
+        if (!this.children[i].equals(other.children[i])) {
+          return false;
+        }
+      }
+
+      return true;
+    },
+
+    guid: 0,
+
+    compile: function(program, options) {
+      this.opcodes = [];
+      this.children = [];
+      this.depths = {list: []};
+      this.options = options;
+
+      // These changes will propagate to the other compiler components
+      var knownHelpers = this.options.knownHelpers;
+      this.options.knownHelpers = {
+        'helperMissing': true,
+        'blockHelperMissing': true,
+        'each': true,
+        'if': true,
+        'unless': true,
+        'with': true,
+        'log': true
+      };
+      if (knownHelpers) {
+        for (var name in knownHelpers) {
+          this.options.knownHelpers[name] = knownHelpers[name];
+        }
+      }
+
+      return this.accept(program);
+    },
+
+    accept: function(node) {
+      var strip = node.strip || {},
+          ret;
+      if (strip.left) {
+        this.opcode('strip');
+      }
+
+      ret = this[node.type](node);
+
+      if (strip.right) {
+        this.opcode('strip');
+      }
+
+      return ret;
+    },
+
+    program: function(program) {
+      var statements = program.statements;
+
+      for(var i=0, l=statements.length; i<l; i++) {
+        this.accept(statements[i]);
+      }
+      this.isSimple = l === 1;
+
+      this.depths.list = this.depths.list.sort(function(a, b) {
+        return a - b;
+      });
+
+      return this;
+    },
+
+    compileProgram: function(program) {
+      var result = new this.compiler().compile(program, this.options);
+      var guid = this.guid++, depth;
+
+      this.usePartial = this.usePartial || result.usePartial;
+
+      this.children[guid] = result;
+
+      for(var i=0, l=result.depths.list.length; i<l; i++) {
+        depth = result.depths.list[i];
+
+        if(depth < 2) { continue; }
+        else { this.addDepth(depth - 1); }
+      }
+
+      return guid;
+    },
+
+    block: function(block) {
+      var mustache = block.mustache,
+          program = block.program,
+          inverse = block.inverse;
+
+      if (program) {
+        program = this.compileProgram(program);
+      }
+
+      if (inverse) {
+        inverse = this.compileProgram(inverse);
+      }
+
+      var type = this.classifyMustache(mustache);
+
+      if (type === "helper") {
+        this.helperMustache(mustache, program, inverse);
+      } else if (type === "simple") {
+        this.simpleMustache(mustache);
+
+        // now that the simple mustache is resolved, we need to
+        // evaluate it by executing `blockHelperMissing`
+        this.opcode('pushProgram', program);
+        this.opcode('pushProgram', inverse);
+        this.opcode('emptyHash');
+        this.opcode('blockValue');
+      } else {
+        this.ambiguousMustache(mustache, program, inverse);
+
+        // now that the simple mustache is resolved, we need to
+        // evaluate it by executing `blockHelperMissing`
+        this.opcode('pushProgram', program);
+        this.opcode('pushProgram', inverse);
+        this.opcode('emptyHash');
+        this.opcode('ambiguousBlockValue');
+      }
+
+      this.opcode('append');
+    },
+
+    hash: function(hash) {
+      var pairs = hash.pairs, pair, val;
+
+      this.opcode('pushHash');
+
+      for(var i=0, l=pairs.length; i<l; i++) {
+        pair = pairs[i];
+        val  = pair[1];
+
+        if (this.options.stringParams) {
+          if(val.depth) {
+            this.addDepth(val.depth);
+          }
+          this.opcode('getContext', val.depth || 0);
+          this.opcode('pushStringParam', val.stringModeValue, val.type);
+        } else {
+          this.accept(val);
+        }
+
+        this.opcode('assignToHash', pair[0]);
+      }
+      this.opcode('popHash');
+    },
+
+    partial: function(partial) {
+      var partialName = partial.partialName;
+      this.usePartial = true;
+
+      if(partial.context) {
+        this.ID(partial.context);
+      } else {
+        this.opcode('push', 'depth0');
+      }
+
+      this.opcode('invokePartial', partialName.name);
+      this.opcode('append');
+    },
+
+    content: function(content) {
+      this.opcode('appendContent', content.string);
+    },
+
+    mustache: function(mustache) {
+      var options = this.options;
+      var type = this.classifyMustache(mustache);
+
+      if (type === "simple") {
+        this.simpleMustache(mustache);
+      } else if (type === "helper") {
+        this.helperMustache(mustache);
+      } else {
+        this.ambiguousMustache(mustache);
+      }
+
+      if(mustache.escaped && !options.noEscape) {
+        this.opcode('appendEscaped');
+      } else {
+        this.opcode('append');
+      }
+    },
+
+    ambiguousMustache: function(mustache, program, inverse) {
+      var id = mustache.id,
+          name = id.parts[0],
+          isBlock = program != null || inverse != null;
+
+      this.opcode('getContext', id.depth);
+
+      this.opcode('pushProgram', program);
+      this.opcode('pushProgram', inverse);
+
+      this.opcode('invokeAmbiguous', name, isBlock);
+    },
+
+    simpleMustache: function(mustache) {
+      var id = mustache.id;
+
+      if (id.type === 'DATA') {
+        this.DATA(id);
+      } else if (id.parts.length) {
+        this.ID(id);
+      } else {
+        // Simplified ID for `this`
+        this.addDepth(id.depth);
+        this.opcode('getContext', id.depth);
+        this.opcode('pushContext');
+      }
+
+      this.opcode('resolvePossibleLambda');
+    },
+
+    helperMustache: function(mustache, program, inverse) {
+      var params = this.setupFullMustacheParams(mustache, program, inverse),
+          name = mustache.id.parts[0];
+
+      if (this.options.knownHelpers[name]) {
+        this.opcode('invokeKnownHelper', params.length, name);
+      } else if (this.options.knownHelpersOnly) {
+        throw new Error("You specified knownHelpersOnly, but used the unknown helper " + name);
+      } else {
+        this.opcode('invokeHelper', params.length, name);
+      }
+    },
+
+    ID: function(id) {
+      this.addDepth(id.depth);
+      this.opcode('getContext', id.depth);
+
+      var name = id.parts[0];
+      if (!name) {
+        this.opcode('pushContext');
+      } else {
+        this.opcode('lookupOnContext', id.parts[0]);
+      }
+
+      for(var i=1, l=id.parts.length; i<l; i++) {
+        this.opcode('lookup', id.parts[i]);
+      }
+    },
+
+    DATA: function(data) {
+      this.options.data = true;
+      if (data.id.isScoped || data.id.depth) {
+        throw new Exception('Scoped data references are not supported: ' + data.original);
+      }
+
+      this.opcode('lookupData');
+      var parts = data.id.parts;
+      for(var i=0, l=parts.length; i<l; i++) {
+        this.opcode('lookup', parts[i]);
+      }
+    },
+
+    STRING: function(string) {
+      this.opcode('pushString', string.string);
+    },
+
+    INTEGER: function(integer) {
+      this.opcode('pushLiteral', integer.integer);
+    },
+
+    BOOLEAN: function(bool) {
+      this.opcode('pushLiteral', bool.bool);
+    },
+
+    comment: function() {},
+
+    // HELPERS
+    opcode: function(name) {
+      this.opcodes.push({ opcode: name, args: [].slice.call(arguments, 1) });
+    },
+
+    declare: function(name, value) {
+      this.opcodes.push({ opcode: 'DECLARE', name: name, value: value });
+    },
+
+    addDepth: function(depth) {
+      if(isNaN(depth)) { throw new Error("EWOT"); }
+      if(depth === 0) { return; }
+
+      if(!this.depths[depth]) {
+        this.depths[depth] = true;
+        this.depths.list.push(depth);
+      }
+    },
+
+    classifyMustache: function(mustache) {
+      var isHelper   = mustache.isHelper;
+      var isEligible = mustache.eligibleHelper;
+      var options    = this.options;
+
+      // if ambiguous, we can possibly resolve the ambiguity now
+      if (isEligible && !isHelper) {
+        var name = mustache.id.parts[0];
+
+        if (options.knownHelpers[name]) {
+          isHelper = true;
+        } else if (options.knownHelpersOnly) {
+          isEligible = false;
+        }
+      }
+
+      if (isHelper) { return "helper"; }
+      else if (isEligible) { return "ambiguous"; }
+      else { return "simple"; }
+    },
+
+    pushParams: function(params) {
+      var i = params.length, param;
+
+      while(i--) {
+        param = params[i];
+
+        if(this.options.stringParams) {
+          if(param.depth) {
+            this.addDepth(param.depth);
+          }
+
+          this.opcode('getContext', param.depth || 0);
+          this.opcode('pushStringParam', param.stringModeValue, param.type);
+        } else {
+          this[param.type](param);
+        }
+      }
+    },
+
+    setupMustacheParams: function(mustache) {
+      var params = mustache.params;
+      this.pushParams(params);
+
+      if(mustache.hash) {
+        this.hash(mustache.hash);
+      } else {
+        this.opcode('emptyHash');
+      }
+
+      return params;
+    },
+
+    // this will replace setupMustacheParams when we're done
+    setupFullMustacheParams: function(mustache, program, inverse) {
+      var params = mustache.params;
+      this.pushParams(params);
+
+      this.opcode('pushProgram', program);
+      this.opcode('pushProgram', inverse);
+
+      if(mustache.hash) {
+        this.hash(mustache.hash);
+      } else {
+        this.opcode('emptyHash');
+      }
+
+      return params;
+    }
+  };
+
+  function precompile(input, options) {
+    if (input == null || (typeof input !== 'string' && input.constructor !== AST.ProgramNode)) {
+      throw new Exception("You must pass a string or Handlebars AST to Handlebars.precompile. You passed " + input);
+    }
+
+    options = options || {};
+    if (!('data' in options)) {
+      options.data = true;
+    }
+
+    var ast = parse(input);
+    var environment = new Compiler().compile(ast, options);
+    return new JavaScriptCompiler().compile(environment, options);
+  }
+
+  __exports__.precompile = precompile;function compile(input, options, env) {
+    if (input == null || (typeof input !== 'string' && input.constructor !== AST.ProgramNode)) {
+      throw new Exception("You must pass a string or Handlebars AST to Handlebars.compile. You passed " + input);
+    }
+
+    options = options || {};
+
+    if (!('data' in options)) {
+      options.data = true;
+    }
+
+    var compiled;
+
+    function compileInput() {
+      var ast = parse(input);
+      var environment = new Compiler().compile(ast, options);
+      var templateSpec = new JavaScriptCompiler().compile(environment, options, undefined, true);
+      return env.template(templateSpec);
+    }
+
+    // Template is only compiled on first use and cached after that point.
+    return function(context, options) {
+      if (!compiled) {
+        compiled = compileInput();
+      }
+      return compiled.call(this, context, options);
+    };
+  }
+
+  __exports__.compile = compile;
+  return __exports__;
+})(__module5__, __module8__, __module11__, __module7__);
+
+// handlebars.js
+var __module0__ = (function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__) {
+  "use strict";
+  var __exports__;
+  var Handlebars = __dependency1__;
+
+  // Compiler imports
+  var AST = __dependency2__;
+  var Parser = __dependency3__.parser;
+  var parse = __dependency3__.parse;
+  var Compiler = __dependency4__.Compiler;
+  var compile = __dependency4__.compile;
+  var precompile = __dependency4__.precompile;
+  var JavaScriptCompiler = __dependency5__;
+
+  var _create = Handlebars.create;
+  var create = function() {
+    var hb = _create();
+
+    hb.compile = function(input, options) {
+      return compile(input, options, hb);
+    };
+    hb.precompile = precompile;
+
+    hb.AST = AST;
+    hb.Compiler = Compiler;
+    hb.JavaScriptCompiler = JavaScriptCompiler;
+    hb.Parser = Parser;
+    hb.parse = parse;
+
+    return hb;
+  };
+
+  Handlebars = create();
+  Handlebars.create = create;
+
+  __exports__ = Handlebars;
+  return __exports__;
+})(__module1__, __module7__, __module8__, __module10__, __module11__);
+
+  return __module0__;
+})();
diff --git a/examples/biojson-doc/lib/highlight.js b/examples/biojson-doc/lib/highlight.js
new file mode 100755 (executable)
index 0000000..6a266ad
--- /dev/null
@@ -0,0 +1,302 @@
+
+/*
+ * Copyright 2013 Geraint Luff <http://geraintluff.github.io/tv4/>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+define(function() {
+
+    var highlight = {};
+
+    var REGEX = {
+        whitespace: /^([ \r\n\t]|&nbsp;)*/,
+        number: /^-?[0-9]+(\.[0-9]+)?([eE][+\-]?[0-9]+)?/
+    };
+
+    function Highlighter(stringData) {
+        this.remaining = stringData;
+        this.html = "";
+    }
+    Highlighter.prototype = {
+        unshift: function (next) {
+            this.remaining = next + this.remaining;
+        },
+        next: function () {
+            this.whitespace();
+            return this.nextCharacter();
+        },
+        nextCharacter: function () {
+            if (this.remaining.length == 0) {
+                throw new Error("Unexpected end of input");
+            }
+            if (this.remaining[0] == "&") {
+                var endIndex = this.remaining.indexOf(";") + 1;
+                if (endIndex == -1) {
+                    endIndex = 1;
+                }
+                var result = this.remaining.substring(0, endIndex);
+                this.remaining = this.remaining.substring(endIndex);
+                return result;
+            }
+            var result = this.remaining[0];
+            this.remaining = this.remaining.substring(1);
+            return result;
+        },
+        whitespace: function () {
+            var ws = this.remaining.match(REGEX.whitespace)[0];
+            this.html += ws;
+            this.remaining = this.remaining.substring(ws.length);
+        },
+        highlightJson: function (keywords) {
+            if (keywords != undefined) {
+                this.html += keywords.wrapper[0];
+            }
+            this.whitespace();
+            var next = this.next();
+            if (next == "{") {
+                this.highlightObject(keywords);
+            } else if (next == '[') {
+                this.highlightArray(keywords);
+            } else if (next == '"' || next == "&quot;") {
+                this.highlightString();
+            } else if ((next + this.remaining).match(REGEX.number)) {
+                var numberString = (next + this.remaining).match(REGEX.number)[0];
+                this.html += '<span class="json-number">' + numberString + '</span>';
+                this.remaining = this.remaining.substring(numberString.length - 1);
+            } else if (next == "n" && this.remaining.substring(0, 3) == "ull") {
+                this.remaining = this.remaining.substring(3);
+                this.html += '<span class="json-null">null</span>';
+            } else if (next == "t" && this.remaining.substring(0, 3) == "rue") {
+                this.remaining = this.remaining.substring(3);
+                this.html += '<span class="json-true">true</span>';
+            } else if (next == "f" && this.remaining.substring(0, 4) == "alse") {
+                this.remaining = this.remaining.substring(4);
+                this.html += '<span class="json-false">false</span>';
+            } else {
+                this.html += next;
+                this.highlightJson(keywords);
+            }
+            if (keywords != undefined) {
+                this.html += keywords.wrapper[1];
+            }
+        },
+        highlightObject: function (keywords) {
+            this.html += '<span class="json-punctuation">{</span>';
+            var next = this.next();
+            while (next != "}") {
+                if (next == '"' || next == "&quot;") {
+                    var keyHtml = "";
+                    next = this.next();
+                    while (next != '"' && next != '&quot') {
+                        if (next == "\\") {
+                            keyHtml += next;
+                            next = this.nextCharacter();
+                        }
+                        keyHtml += next;
+                        next = this.next();
+                    }
+                    if (keywords != undefined && keywords.isKeyword(keyHtml)) {
+                        this.html += '<span class="json-keyword">&quot;'
+                            + keyHtml
+                            + '&quot;</span>';
+                    } else {
+                        this.html += '<span class="json-object-key">&quot;'
+                            + keyHtml
+                            + '&quot;</span>';
+                    }
+                    next = this.next();
+                    while (next != ":") {
+                        this.html += next;
+                        next = this.next();
+                    }
+                    this.html += '<span class="json-punctuation">:</span>';
+                    var nextKeywords = null;
+                    if (keywords != undefined) {
+                        nextKeywords = keywords.forKey(keyHtml);
+                    }
+                    this.highlightJson(nextKeywords);
+                    next = this.next();
+                    if (next == ",") {
+                        this.html += '<span class="json-punctuation">,</span>';
+                        next = this.next();
+                        continue;
+                    } else while (next != "}") {
+                        this.html += next;
+                        next = this.next();
+                    }
+                } else {
+                    this.html += next;
+                    next = this.next();
+                }
+            }
+            this.html += '<span class="json-punctuation">}</span>';
+        },
+        highlightArray: function (keywords) {
+            this.html += '<span class="json-punctuation">[</span>';
+            var next = this.next();
+            var i = 0;
+            while (next != "]") {
+                this.unshift(next);
+                this.highlightJson(keywords != undefined ? keywords.forItem(i) : null);
+                next = this.next();
+                if (next == ",") {
+                    this.html += '<span class="json-punctuation">,</span>';
+                    next = this.next();
+                    i++;
+                    continue;
+                } else while (next != "]") {
+                    this.html += next;
+                    next = this.next();
+                }
+            }
+            this.html += '<span class="json-punctuation">]</span>';
+        },
+        highlightString: function () {
+            this.html += '<span class="json-punctuation">&quot;</span><span class="json-string">';
+            next = this.next();
+            while (next != '"' && next != '&quot') {
+                if (next == "\\") {
+                    this.html += next;
+                    next = this.nextCharacter();
+                }
+                this.html += next;
+                next = this.next();
+            }
+            this.html += '</span><span class="json-punctuation">&quot;</span>';
+        }
+    };
+
+    function KeywordMap() {
+    }
+    KeywordMap.prototype = {
+        wrapper: ["<span>", "</span>"],
+        keywords: {},
+        isKeyword: function (keyHtml) {
+            return this.keywords[keyHtml] !== undefined;
+        },
+        forKey: function (keyHtml) {
+            return this.keywords[keyHtml];
+        },
+        forItem: function (keyHtml) {
+            return null;
+        }
+    };
+    var schema = new KeywordMap();
+    var schemaMedia = new KeywordMap();
+    var mapToSchemas = new KeywordMap();
+    var links = new KeywordMap();
+    schema.keywords = {
+        // from v3
+        type: null,
+        properties: mapToSchemas,
+        patternProperties: mapToSchemas,
+        additionalProperties: schema,
+        items: schema,
+        additionalItems: schema,
+        required: null,
+        dependencies: mapToSchemas,
+        minimum: null,
+        maximum: null,
+        exclusiveMinimum: null,
+        exclusiveMaximum: null,
+        minItems: null,
+        maxItems: null,
+        uniqueItems: null,
+        pattern: null,
+        minLength: null,
+        maxLength: null,
+        "enum": null,
+        "default": null,
+        title: null,
+        description: null,
+        format: null,
+        divisibleBy: null,
+        disallow: schema,
+        "extends": schema,
+        "id": null,
+        "$ref": null,
+        "$schema": null,
+        // from v4 core
+        multipleOf: null,
+        maxProperties: null,
+        minProperties: null,
+        allOf: schema,
+        anyOf: schema,
+        oneOf: schema,
+        not: schema,
+        definitions: mapToSchemas,
+        // from v4 hyper-schema
+        media: schemaMedia,
+        links: links,
+        pathStart: null,
+        fragmentResolution: null
+    };
+    schema.forItem = function () {
+        return schema;
+    };
+    schemaMedia.keywords = {
+        binaryEncoding: null,
+        type: null
+    };
+    mapToSchemas.wrapper = ['<span class="json-schema-map">', '</span>'];
+    mapToSchemas.forKey = function () {
+        return schema;
+    };
+    links.keywords = {
+        rel: null,
+        href:null,
+        method: null,
+        encType: null,
+        pathStart: null,
+        schema: schema,
+        targetSchema: schema
+    };
+    links.forItem = function () {
+        return links;
+    };
+
+    function highlightElement(element, keywords) {
+        var highlighter = new Highlighter(element.innerHTML);
+        try {
+            highlighter.highlightJson(keywords);
+        } catch (e) {
+            throw e;
+        }
+        element.innerHTML = highlighter.html + highlighter.remaining;
+    }
+
+    if (document.getElementsByClassName == undefined) {
+        document.getElementsByClassName = function(className)
+        {
+            var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)");
+            var allElements = document.getElementsByTagName("*");
+            var results = [];
+
+            var element;
+            for (var i = 0; (element = allElements[i]) != null; i++) {
+                var elementClass = element.className;
+                if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass))
+                    results.push(element);
+            }
+
+            return results;
+        }
+    }
+
+    highlight.highlightSchema = function(element) {
+        highlightElement(element, schema);
+    }
+
+    return highlight;
+});
diff --git a/examples/biojson-doc/lib/jquery.js b/examples/biojson-doc/lib/jquery.js
new file mode 100755 (executable)
index 0000000..da41706
--- /dev/null
@@ -0,0 +1,6 @@
+/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
+//@ sourceMappingURL=jquery-1.10.2.min.map
+*/
+(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav></:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t
+}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Ct=/^(?:checkbox|radio)$/i,Nt=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle);
+u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}x.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("<div>").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window);
diff --git a/examples/biojson-doc/lib/jsonpointer.js b/examples/biojson-doc/lib/jsonpointer.js
new file mode 100755 (executable)
index 0000000..3a662e7
--- /dev/null
@@ -0,0 +1,343 @@
+/**
+ * @author Alexey Kuzmin <alex.s.kuzmin@gmail.com>
+ * @fileoverview JavaScript implementation of JSON Pointer.
+ * @see http://tools.ietf.org/html/rfc6901
+ */
+
+
+
+;(function() {
+  'use strict';
+
+  /**
+   * List of special characters and their escape sequences.
+   * Special characters will be unescaped in order they are listed.
+   * Section 3 of spec.
+   * @type {Array.<Array.<string>>}
+   * @const
+   */
+  var SPECIAL_CHARACTERS = [
+    ['/', '~1'],
+    ['~', '~0']
+  ];
+
+
+  /**
+   * Tokens' separator in JSON pointer string.
+   * Section 3 of spec.
+   * @type {string}
+   * @const
+   */
+  var TOKENS_SEPARATOR = '/';
+
+
+  /**
+   * Prefix for error messages.
+   * @type {string}
+   * @const
+   */
+  var ERROR_MESSAGE_PREFIX = 'JSON Pointer: ';
+
+
+  /**
+   * Validates non-empty pointer string.
+   * @type {RegExp}
+   * @const
+   */
+  var NON_EMPTY_POINTER_REGEXP = /(\/[^\/]*)+/;
+
+
+  /**
+   * List of error messages.
+   * Please keep it in alphabetical order.
+   * @enum {string}
+   */
+  var ErrorMessage = {
+    HYPHEN_IS_NOT_SUPPORTED_IN_ARRAY_CONTEXT:
+        'Implementation does not support "-" token for arrays.',
+    INVALID_DOCUMENT: 'JSON document is not valid.',
+    INVALID_DOCUMENT_TYPE: 'JSON document must be a string or object.',
+    INVALID_POINTER: 'Pointer is not valid.',
+    NON_NUMBER_TOKEN_IN_ARRAY_CONTEXT:
+        'Non-number tokens cannot be used in array context.',
+    TOKEN_WITH_LEADING_ZERO_IN_ARRAY_CONTEXT:
+        'Token with leading zero cannot be used in array context.'
+  };
+
+
+  /**
+   * Returns |target| object's value pointed by |opt_pointer|, returns undefined
+   * if |opt_pointer| points to non-existing value.
+   * If pointer is not provided, validates first argument and returns
+   * evaluator function that takes pointer as argument.
+   * @param {(string|Object|Array)} target Evaluation target.
+   * @param {string=} opt_pointer JSON Pointer string.
+   * @returns {*} Some value.
+   */
+  function getPointedValue(target, opt_pointer) {
+    // .get() method implementation.
+
+    // First argument must be either string or object.
+    if (isString(target)) {
+
+      // If string it must be valid JSON document.
+      try {
+        // Let's try to parse it as JSON.
+        target = JSON.parse(target);
+      }
+      catch (e) {
+        // If parsing failed, an exception will be thrown.
+        throw getError(ErrorMessage.INVALID_DOCUMENT);
+      }
+    }
+    else if (!isObject(target)) {
+      // If not object or string, an exception will be thrown.
+      throw getError(ErrorMessage.INVALID_DOCUMENT_TYPE);
+    }
+
+    // |target| is already parsed, let's create evaluator function for it.
+    var evaluator = createPointerEvaluator(target);
+
+    if (isUndefined(opt_pointer)) {
+      // If pointer was not provided, return evaluator function.
+      return evaluator;
+    }
+    else {
+      // If pointer is provided, return evaluation result.
+      return evaluator(opt_pointer);
+    }
+  }
+
+
+  /**
+   * Returns function that takes JSON Pointer as single argument
+   * and evaluates it in given |target| context.
+   * Returned function throws an exception if pointer is not valid
+   * or any error occurs during evaluation.
+   * @param {*} target Evaluation target.
+   * @returns {Function}
+   */
+  function createPointerEvaluator(target) {
+
+    // Use cache to store already received values.
+    var cache = {};
+
+    return function(pointer) {
+
+      if (!isValidJSONPointer(pointer)) {
+        // If it's not, an exception will be thrown.
+        throw getError(ErrorMessage.INVALID_POINTER);
+      }
+
+      // First, look up in the cache.
+      if (cache.hasOwnProperty(pointer)) {
+        // If cache entry exists, return it's value.
+        return cache[pointer];
+      }
+
+      // Now, when all arguments are valid, we can start evaluation.
+      // First of all, let's convert JSON pointer string to tokens list.
+      var tokensList = parsePointer(pointer);
+      var token;
+      var value = target;
+
+      // Evaluation will be continued till tokens list is not empty
+      // and returned value is not an undefined.
+      while (!isUndefined(value) && !isUndefined(token = tokensList.pop())) {
+        // Let's evaluate token in current context.
+        // `getValue()` might throw an exception, but we won't handle it.
+        value = getValue(value, token);
+      }
+
+      // Pointer evaluation is done, save value in the cache and return it.
+      cache[pointer] = value;
+      return value;
+    };
+  }
+
+
+  /**
+   * Returns true if given |pointer| is valid, returns false otherwise.
+   * @param {!string} pointer
+   * @returns {boolean} Whether pointer is valid.
+   */
+  function isValidJSONPointer(pointer) {
+    // Validates JSON pointer string.
+
+    if (!isString(pointer)) {
+      // If it's not a string, it obviously is not valid.
+      return false;
+    }
+
+    if ('' === pointer) {
+      // If it is string and is an empty string, it's valid.
+      return true;
+    }
+
+    // If it is non-empty string, it must match spec defined format.
+    // Check Section 3 of specification for concrete syntax.
+    return NON_EMPTY_POINTER_REGEXP.test(pointer);
+  }
+
+
+  /**
+   * Returns tokens list for given |pointer|. List is reversed, e.g.
+   *     '/simple/path' -> ['path', 'simple']
+   * @param {!string} pointer JSON pointer string.
+   * @returns {Array} List of tokens.
+   */
+  function parsePointer(pointer) {
+    // Converts JSON pointer string into tokens list.
+
+    // Let's split pointer string by tokens' separator character.
+    // Also we will reverse resulting array to simplify it's further usage.
+    var tokens = pointer.split(TOKENS_SEPARATOR).reverse();
+
+    // Last item in resulting array is always an empty string,
+    // we don't need it, let's remove it.
+    tokens.pop();
+
+    // Now tokens' array is ready to use, let's return it.
+    return tokens;
+  }
+
+
+  /**
+   * Decodes all escape sequences in given |rawReferenceToken|.
+   * @param {!string} rawReferenceToken
+   * @returns {string} Unescaped reference token.
+   */
+  function unescapeReferenceToken(rawReferenceToken) {
+    // Unescapes reference token. See Section 3 of specification.
+
+    var referenceToken = rawReferenceToken;
+    var character;
+    var escapeSequence;
+    var replaceRegExp;
+
+    // Order of unescaping does matter.
+    // That's why an array is used here and not hash.
+    SPECIAL_CHARACTERS.forEach(function(pair) {
+      character = pair[0];
+      escapeSequence = pair[1];
+      replaceRegExp = new RegExp(escapeSequence, 'g');
+      referenceToken = referenceToken.replace(replaceRegExp, character);
+    });
+
+    return referenceToken;
+  }
+
+
+  /**
+   * Returns value pointed by |token| in evaluation |context|.
+   * Throws an exception if any error occurs.
+   * @param {*} context Current evaluation context.
+   * @param {!string} token Unescaped reference token.
+   * @returns {*} Some value or undefined if value if not found.
+   */
+  function getValue(context, token) {
+    // Reference token evaluation. See Section 4 of spec.
+
+    // First of all we should unescape all special characters in token.
+    token = unescapeReferenceToken(token);
+
+    // Further actions depend of context of evaluation.
+
+    if (isArray(context)) {
+      // In array context there are more strict requirements
+      // for token value.
+
+      if ('-' === token) {
+        // Token cannot be a "-" character,
+        // it has no sense in current implementation.
+        throw getError(ErrorMessage.HYPHEN_IS_NOT_SUPPORTED_IN_ARRAY_CONTEXT);
+      }
+      if (!isNumber(token)) {
+        // Token cannot be non-number.
+        throw getError(ErrorMessage.NON_NUMBER_TOKEN_IN_ARRAY_CONTEXT);
+      }
+      if (token.length > 1 && '0' === token[0]) {
+        // Token cannot be non-zero number with leading zero.
+        throw getError(ErrorMessage.TOKEN_WITH_LEADING_ZERO_IN_ARRAY_CONTEXT);
+      }
+      // If all conditions are met, simply return element
+      // with token's value index.
+      // It might be undefined, but it's ok.
+      return context[token];
+    }
+
+    if (isObject(context)) {
+      // In object context we can simply return element w/ key equal to token.
+      // It might be undefined, but it's ok.
+      return context[token];
+    }
+
+    // If context is not an array or an object,
+    // token evaluation is not possible.
+    // This is the expected situation and so we won't throw an error,
+    // undefined value is perfectly suitable here.
+    return;
+  }
+
+
+  /**
+   * Returns Error instance for throwing.
+   * @param {string} message Error message.
+   * @returns {Error}
+   */
+  function getError(message) {
+    return new Error(ERROR_MESSAGE_PREFIX + message);
+  }
+
+
+  function isObject(o) {
+    return 'object' === typeof o && null !== o;
+  }
+
+
+  function isArray(a) {
+    return Array.isArray(a);
+  }
+
+
+  function isNumber(n) {
+    return !isNaN(Number(n));
+  }
+
+
+  function isString(s) {
+    return 'string' === typeof s || s instanceof String;
+  }
+
+
+  function isUndefined(v) {
+    return 'undefined' === typeof v;
+  }
+
+
+  // Let's expose API to the world.
+
+  var jsonpointer = {
+    get: getPointedValue
+  };
+
+  if ('object' === typeof exports) {
+    // If `exports` is an object, we are in Node.js context.
+    // We are supposed to act as Node.js package.
+    module.exports = jsonpointer;
+  } else if ('function' === typeof define && define.amd) {
+    // If there is global function `define()` and `define.amd` is defined,
+    // we are supposed to act as AMD module.
+    define(function() {
+      return jsonpointer;
+    });
+  } else {
+    // Last resort.
+    // Let's create global `jsonpointer` object.
+    this.jsonpointer = jsonpointer;
+  }
+
+}).call((function() {
+  'use strict';
+  return (typeof window !== 'undefined' ? window : global);
+})());
diff --git a/examples/biojson-doc/lib/marked.js b/examples/biojson-doc/lib/marked.js
new file mode 100755 (executable)
index 0000000..da025bd
--- /dev/null
@@ -0,0 +1,1194 @@
+/*
+ * Copyright 2013 Laurent Bovet <laurent.bovet@windmaster.ch>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+;(function() {
+
+    /**
+     * Block-Level Grammar
+     */
+
+    var block = {
+        newline: /^\n+/,
+        code: /^( {4}[^\n]+\n*)+/,
+        fences: noop,
+        hr: /^( *[-*_]){3,} *(?:\n+|$)/,
+        heading: /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,
+        nptable: noop,
+        lheading: /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,
+        blockquote: /^( *>[^\n]+(\n[^\n]+)*\n*)+/,
+        list: /^( *)(bull) [\s\S]+?(?:hr|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,
+        html: /^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,
+        def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,
+        table: noop,
+        paragraph: /^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,
+        text: /^[^\n]+/
+    };
+
+    block.bullet = /(?:[*+-]|\d+\.)/;
+    block.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;
+    block.item = replace(block.item, 'gm')
+        (/bull/g, block.bullet)
+        ();
+
+    block.list = replace(block.list)
+        (/bull/g, block.bullet)
+        ('hr', /\n+(?=(?: *[-*_]){3,} *(?:\n+|$))/)
+        ();
+
+    block._tag = '(?!(?:'
+        + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code'
+        + '|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo'
+        + '|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|@)\\b';
+
+    block.html = replace(block.html)
+        ('comment', /<!--[\s\S]*?-->/)
+        ('closed', /<(tag)[\s\S]+?<\/\1>/)
+        ('closing', /<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)
+        (/tag/g, block._tag)
+        ();
+
+    block.paragraph = replace(block.paragraph)
+        ('hr', block.hr)
+        ('heading', block.heading)
+        ('lheading', block.lheading)
+        ('blockquote', block.blockquote)
+        ('tag', '<' + block._tag)
+        ('def', block.def)
+        ();
+
+    /**
+     * Normal Block Grammar
+     */
+
+    block.normal = merge({}, block);
+
+    /**
+     * GFM Block Grammar
+     */
+
+    block.gfm = merge({}, block.normal, {
+        fences: /^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,
+        paragraph: /^/
+    });
+
+    block.gfm.paragraph = replace(block.paragraph)
+        ('(?!', '(?!'
+            + block.gfm.fences.source.replace('\\1', '\\2') + '|'
+            + block.list.source.replace('\\1', '\\3') + '|')
+        ();
+
+    /**
+     * GFM + Tables Block Grammar
+     */
+
+    block.tables = merge({}, block.gfm, {
+        nptable: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,
+        table: /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/
+    });
+
+    /**
+     * Block Lexer
+     */
+
+    function Lexer(options) {
+        this.tokens = [];
+        this.tokens.links = {};
+        this.options = options || marked.defaults;
+        this.rules = block.normal;
+
+        if (this.options.gfm) {
+            if (this.options.tables) {
+                this.rules = block.tables;
+            } else {
+                this.rules = block.gfm;
+            }
+        }
+    }
+
+    /**
+     * Expose Block Rules
+     */
+
+    Lexer.rules = block;
+
+    /**
+     * Static Lex Method
+     */
+
+    Lexer.lex = function(src, options) {
+        var lexer = new Lexer(options);
+        return lexer.lex(src);
+    };
+
+    /**
+     * Preprocessing
+     */
+
+    Lexer.prototype.lex = function(src) {
+        src = src
+            .replace(/\r\n|\r/g, '\n')
+            .replace(/\t/g, '    ')
+            .replace(/\u00a0/g, ' ')
+            .replace(/\u2424/g, '\n');
+
+        return this.token(src, true);
+    };
+
+    /**
+     * Lexing
+     */
+
+    Lexer.prototype.token = function(src, top) {
+        var src = src.replace(/^ +$/gm, '')
+            , next
+            , loose
+            , cap
+            , bull
+            , b
+            , item
+            , space
+            , i
+            , l;
+
+        while (src) {
+            // newline
+            if (cap = this.rules.newline.exec(src)) {
+                src = src.substring(cap[0].length);
+                if (cap[0].length > 1) {
+                    this.tokens.push({
+                        type: 'space'
+                    });
+                }
+            }
+
+            // code
+            if (cap = this.rules.code.exec(src)) {
+                src = src.substring(cap[0].length);
+                cap = cap[0].replace(/^ {4}/gm, '');
+                this.tokens.push({
+                    type: 'code',
+                    text: !this.options.pedantic
+                        ? cap.replace(/\n+$/, '')
+                        : cap
+                });
+                continue;
+            }
+
+            // fences (gfm)
+            if (cap = this.rules.fences.exec(src)) {
+                src = src.substring(cap[0].length);
+                this.tokens.push({
+                    type: 'code',
+                    lang: cap[2],
+                    text: cap[3]
+                });
+                continue;
+            }
+
+            // heading
+            if (cap = this.rules.heading.exec(src)) {
+                src = src.substring(cap[0].length);
+                this.tokens.push({
+                    type: 'heading',
+                    depth: cap[1].length,
+                    text: cap[2]
+                });
+                continue;
+            }
+
+            // table no leading pipe (gfm)
+            if (top && (cap = this.rules.nptable.exec(src))) {
+                src = src.substring(cap[0].length);
+
+                item = {
+                    type: 'table',
+                    header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */),
+                    align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
+                    cells: cap[3].replace(/\n$/, '').split('\n')
+                };
+
+                for (i = 0; i < item.align.length; i++) {
+                    if (/^ *-+: *$/.test(item.align[i])) {
+                        item.align[i] = 'right';
+                    } else if (/^ *:-+: *$/.test(item.align[i])) {
+                        item.align[i] = 'center';
+                    } else if (/^ *:-+ *$/.test(item.align[i])) {
+                        item.align[i] = 'left';
+                    } else {
+                        item.align[i] = null;
+                    }
+                }
+
+                for (i = 0; i < item.cells.length; i++) {
+                    item.cells[i] = item.cells[i].split(/ *\| */);
+                }
+
+                this.tokens.push(item);
+
+                continue;
+            }
+
+            // lheading
+            if (cap = this.rules.lheading.exec(src)) {
+                src = src.substring(cap[0].length);
+                this.tokens.push({
+                    type: 'heading',
+                    depth: cap[2] === '=' ? 1 : 2,
+                    text: cap[1]
+                });
+                continue;
+            }
+
+            // hr
+            if (cap = this.rules.hr.exec(src)) {
+                src = src.substring(cap[0].length);
+                this.tokens.push({
+                    type: 'hr'
+                });
+                continue;
+            }
+
+            // blockquote
+            if (cap = this.rules.blockquote.exec(src)) {
+                src = src.substring(cap[0].length);
+
+                this.tokens.push({
+                    type: 'blockquote_start'
+                });
+
+                cap = cap[0].replace(/^ *> ?/gm, '');
+
+                // Pass `top` to keep the current
+                // "toplevel" state. This is exactly
+                // how markdown.pl works.
+                this.token(cap, top);
+
+                this.tokens.push({
+                    type: 'blockquote_end'
+                });
+
+                continue;
+            }
+
+            // list
+            if (cap = this.rules.list.exec(src)) {
+                src = src.substring(cap[0].length);
+                bull = cap[2];
+
+                this.tokens.push({
+                    type: 'list_start',
+                    ordered: bull.length > 1
+                });
+
+                // Get each top-level item.
+                cap = cap[0].match(this.rules.item);
+
+                next = false;
+                l = cap.length;
+                i = 0;
+
+                for (; i < l; i++) {
+                    item = cap[i];
+
+                    // Remove the list item's bullet
+                    // so it is seen as the next token.
+                    space = item.length;
+                    item = item.replace(/^ *([*+-]|\d+\.) +/, '');
+
+                    // Outdent whatever the
+                    // list item contains. Hacky.
+                    if (~item.indexOf('\n ')) {
+                        space -= item.length;
+                        item = !this.options.pedantic
+                            ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '')
+                            : item.replace(/^ {1,4}/gm, '');
+                    }
+
+                    // Determine whether the next list item belongs here.
+                    // Backpedal if it does not belong in this list.
+                    if (this.options.smartLists && i !== l - 1) {
+                        b = block.bullet.exec(cap[i + 1])[0];
+                        if (bull !== b && !(bull.length > 1 && b.length > 1)) {
+                            src = cap.slice(i + 1).join('\n') + src;
+                            i = l - 1;
+                        }
+                    }
+
+                    // Determine whether item is loose or not.
+                    // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/
+                    // for discount behavior.
+                    loose = next || /\n\n(?!\s*$)/.test(item);
+                    if (i !== l - 1) {
+                        next = item.charAt(item.length - 1) === '\n';
+                        if (!loose) loose = next;
+                    }
+
+                    this.tokens.push({
+                        type: loose
+                            ? 'loose_item_start'
+                            : 'list_item_start'
+                    });
+
+                    // Recurse.
+                    this.token(item, false);
+
+                    this.tokens.push({
+                        type: 'list_item_end'
+                    });
+                }
+
+                this.tokens.push({
+                    type: 'list_end'
+                });
+
+                continue;
+            }
+
+            // html
+            if (cap = this.rules.html.exec(src)) {
+                src = src.substring(cap[0].length);
+                this.tokens.push({
+                    type: this.options.sanitize
+                        ? 'paragraph'
+                        : 'html',
+                    pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',
+                    text: cap[0]
+                });
+                continue;
+            }
+
+            // def
+            if (top && (cap = this.rules.def.exec(src))) {
+                src = src.substring(cap[0].length);
+                this.tokens.links[cap[1].toLowerCase()] = {
+                    href: cap[2],
+                    title: cap[3]
+                };
+                continue;
+            }
+
+            // table (gfm)
+            if (top && (cap = this.rules.table.exec(src))) {
+                src = src.substring(cap[0].length);
+
+                item = {
+                    type: 'table',
+                    header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */),
+                    align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
+                    cells: cap[3].replace(/(?: *\| *)?\n$/, '').split('\n')
+                };
+
+                for (i = 0; i < item.align.length; i++) {
+                    if (/^ *-+: *$/.test(item.align[i])) {
+                        item.align[i] = 'right';
+                    } else if (/^ *:-+: *$/.test(item.align[i])) {
+                        item.align[i] = 'center';
+                    } else if (/^ *:-+ *$/.test(item.align[i])) {
+                        item.align[i] = 'left';
+                    } else {
+                        item.align[i] = null;
+                    }
+                }
+
+                for (i = 0; i < item.cells.length; i++) {
+                    item.cells[i] = item.cells[i]
+                        .replace(/^ *\| *| *\| *$/g, '')
+                        .split(/ *\| */);
+                }
+
+                this.tokens.push(item);
+
+                continue;
+            }
+
+            // top-level paragraph
+            if (top && (cap = this.rules.paragraph.exec(src))) {
+                src = src.substring(cap[0].length);
+                this.tokens.push({
+                    type: 'paragraph',
+                    text: cap[1].charAt(cap[1].length - 1) === '\n'
+                        ? cap[1].slice(0, -1)
+                        : cap[1]
+                });
+                continue;
+            }
+
+            // text
+            if (cap = this.rules.text.exec(src)) {
+                // Top-level should never reach here.
+                src = src.substring(cap[0].length);
+                this.tokens.push({
+                    type: 'text',
+                    text: cap[0]
+                });
+                continue;
+            }
+
+            if (src) {
+                throw new
+                    Error('Infinite loop on byte: ' + src.charCodeAt(0));
+            }
+        }
+
+        return this.tokens;
+    };
+
+    /**
+     * Inline-Level Grammar
+     */
+
+    var inline = {
+        escape: /^\\([\\`*{}\[\]()#+\-.!_>])/,
+        autolink: /^<([^ >]+(@|:\/)[^ >]+)>/,
+        url: noop,
+        tag: /^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,
+        link: /^!?\[(inside)\]\(href\)/,
+        reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/,
+        nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,
+        strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,
+        em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
+        code: /^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,
+        br: /^ {2,}\n(?!\s*$)/,
+        del: noop,
+        text: /^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/
+    };
+
+    inline._inside = /(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/;
+    inline._href = /\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;
+
+    inline.link = replace(inline.link)
+        ('inside', inline._inside)
+        ('href', inline._href)
+        ();
+
+    inline.reflink = replace(inline.reflink)
+        ('inside', inline._inside)
+        ();
+
+    /**
+     * Normal Inline Grammar
+     */
+
+    inline.normal = merge({}, inline);
+
+    /**
+     * Pedantic Inline Grammar
+     */
+
+    inline.pedantic = merge({}, inline.normal, {
+        strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
+        em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/
+    });
+
+    /**
+     * GFM Inline Grammar
+     */
+
+    inline.gfm = merge({}, inline.normal, {
+        escape: replace(inline.escape)('])', '~|])')(),
+        url: /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,
+        del: /^~~(?=\S)([\s\S]*?\S)~~/,
+        text: replace(inline.text)
+            (']|', '~]|')
+            ('|', '|https?://|')
+            ()
+    });
+
+    /**
+     * GFM + Line Breaks Inline Grammar
+     */
+
+    inline.breaks = merge({}, inline.gfm, {
+        br: replace(inline.br)('{2,}', '*')(),
+        text: replace(inline.gfm.text)('{2,}', '*')()
+    });
+
+    /**
+     * Inline Lexer & Compiler
+     */
+
+    function InlineLexer(links, options) {
+        this.options = options || marked.defaults;
+        this.links = links;
+        this.rules = inline.normal;
+        this.renderer = this.options.renderer || new Renderer;
+
+        if (!this.links) {
+            throw new
+                Error('Tokens array requires a `links` property.');
+        }
+
+        if (this.options.gfm) {
+            if (this.options.breaks) {
+                this.rules = inline.breaks;
+            } else {
+                this.rules = inline.gfm;
+            }
+        } else if (this.options.pedantic) {
+            this.rules = inline.pedantic;
+        }
+    }
+
+    /**
+     * Expose Inline Rules
+     */
+
+    InlineLexer.rules = inline;
+
+    /**
+     * Static Lexing/Compiling Method
+     */
+
+    InlineLexer.output = function(src, links, options) {
+        var inline = new InlineLexer(links, options);
+        return inline.output(src);
+    };
+
+    /**
+     * Lexing/Compiling
+     */
+
+    InlineLexer.prototype.output = function(src) {
+        var out = ''
+            , link
+            , text
+            , href
+            , cap;
+
+        while (src) {
+            // escape
+            if (cap = this.rules.escape.exec(src)) {
+                src = src.substring(cap[0].length);
+                out += cap[1];
+                continue;
+            }
+
+            // autolink
+            if (cap = this.rules.autolink.exec(src)) {
+                src = src.substring(cap[0].length);
+                if (cap[2] === '@') {
+                    text = cap[1].charAt(6) === ':'
+                        ? this.mangle(cap[1].substring(7))
+                        : this.mangle(cap[1]);
+                    href = this.mangle('mailto:') + text;
+                } else {
+                    text = escape(cap[1]);
+                    href = text;
+                }
+                out += this.renderer.link(href, null, text);
+                continue;
+            }
+
+            // url (gfm)
+            if (cap = this.rules.url.exec(src)) {
+                src = src.substring(cap[0].length);
+                text = escape(cap[1]);
+                href = text;
+                out += this.renderer.link(href, null, text);
+                continue;
+            }
+
+            // tag
+            if (cap = this.rules.tag.exec(src)) {
+                src = src.substring(cap[0].length);
+                out += this.options.sanitize
+                    ? escape(cap[0])
+                    : cap[0];
+                continue;
+            }
+
+            // link
+            if (cap = this.rules.link.exec(src)) {
+                src = src.substring(cap[0].length);
+                out += this.outputLink(cap, {
+                    href: cap[2],
+                    title: cap[3]
+                });
+                continue;
+            }
+
+            // reflink, nolink
+            if ((cap = this.rules.reflink.exec(src))
+                || (cap = this.rules.nolink.exec(src))) {
+                src = src.substring(cap[0].length);
+                link = (cap[2] || cap[1]).replace(/\s+/g, ' ');
+                link = this.links[link.toLowerCase()];
+                if (!link || !link.href) {
+                    out += cap[0].charAt(0);
+                    src = cap[0].substring(1) + src;
+                    continue;
+                }
+                out += this.outputLink(cap, link);
+                continue;
+            }
+
+            // strong
+            if (cap = this.rules.strong.exec(src)) {
+                src = src.substring(cap[0].length);
+                out += this.renderer.strong(this.output(cap[2] || cap[1]));
+                continue;
+            }
+
+            // em
+            if (cap = this.rules.em.exec(src)) {
+                src = src.substring(cap[0].length);
+                out += this.renderer.em(this.output(cap[2] || cap[1]));
+                continue;
+            }
+
+            // code
+            if (cap = this.rules.code.exec(src)) {
+                src = src.substring(cap[0].length);
+                out += this.renderer.codespan(escape(cap[2], true));
+                continue;
+            }
+
+            // br
+            if (cap = this.rules.br.exec(src)) {
+                src = src.substring(cap[0].length);
+                out += this.renderer.br();
+                continue;
+            }
+
+            // del (gfm)
+            if (cap = this.rules.del.exec(src)) {
+                src = src.substring(cap[0].length);
+                out += this.renderer.del(this.output(cap[1]));
+                continue;
+            }
+
+            // text
+            if (cap = this.rules.text.exec(src)) {
+                src = src.substring(cap[0].length);
+                out += escape(this.smartypants(cap[0]));
+                continue;
+            }
+
+            if (src) {
+                throw new
+                    Error('Infinite loop on byte: ' + src.charCodeAt(0));
+            }
+        }
+
+        return out;
+    };
+
+    /**
+     * Compile Link
+     */
+
+    InlineLexer.prototype.outputLink = function(cap, link) {
+        var href = escape(link.href)
+            , title = link.title ? escape(link.title) : null;
+
+        if (cap[0].charAt(0) !== '!') {
+            return this.renderer.link(href, title, this.output(cap[1]));
+        } else {
+            return this.renderer.image(href, title, escape(cap[1]));
+        }
+    };
+
+    /**
+     * Smartypants Transformations
+     */
+
+    InlineLexer.prototype.smartypants = function(text) {
+        if (!this.options.smartypants) return text;
+        return text
+            // em-dashes
+            .replace(/--/g, '\u2014')
+            // opening singles
+            .replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018')
+            // closing singles & apostrophes
+            .replace(/'/g, '\u2019')
+            // opening doubles
+            .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1\u201c')
+            // closing doubles
+            .replace(/"/g, '\u201d')
+            // ellipses
+            .replace(/\.{3}/g, '\u2026');
+    };
+
+    /**
+     * Mangle Links
+     */
+
+    InlineLexer.prototype.mangle = function(text) {
+        var out = ''
+            , l = text.length
+            , i = 0
+            , ch;
+
+        for (; i < l; i++) {
+            ch = text.charCodeAt(i);
+            if (Math.random() > 0.5) {
+                ch = 'x' + ch.toString(16);
+            }
+            out += '&#' + ch + ';';
+        }
+
+        return out;
+    };
+
+    /**
+     * Renderer
+     */
+
+    function Renderer() {}
+
+    Renderer.prototype.code = function(code, lang) {
+        if (!lang) {
+            return '<pre><code>'
+                + escape(code, true)
+                + '\n</code></pre>';
+        }
+
+        return '<pre><code class="'
+            + 'lang-'
+            + lang
+            + '">'
+            + escape(code)
+            + '\n</code></pre>\n';
+    };
+
+    Renderer.prototype.blockquote = function(quote) {
+        return '<blockquote>\n' + quote + '</blockquote>\n';
+    };
+
+    Renderer.prototype.html = function(html) {
+        return html;
+    };
+
+    Renderer.prototype.heading = function(text, level, raw, options) {
+        return '<h'
+            + level
+            + '>'
+            + text
+            + '</h'
+            + level
+            + '>\n';
+    };
+
+    Renderer.prototype.hr = function() {
+        return '<hr>\n';
+    };
+
+    Renderer.prototype.list = function(body, ordered) {
+        var type = ordered ? 'ol' : 'ul';
+        return '<' + type + '>\n' + body + '</' + type + '>\n';
+    };
+
+    Renderer.prototype.listitem = function(text) {
+        return '<li>' + text + '</li>\n';
+    };
+
+    Renderer.prototype.paragraph = function(text) {
+        return '<p>' + text + '</p>\n';
+    };
+
+    Renderer.prototype.table = function(header, body) {
+        return '<table>\n'
+            + '<thead>\n'
+            + header
+            + '</thead>\n'
+            + '<tbody>\n'
+            + body
+            + '</tbody>\n'
+            + '</table>\n';
+    };
+
+    Renderer.prototype.tablerow = function(content) {
+        return '<tr>\n' + content + '</tr>\n';
+    };
+
+    Renderer.prototype.tablecell = function(content, flags) {
+        var type = flags.header ? 'th' : 'td';
+        var tag = flags.align
+            ? '<' + type + ' style="text-align:' + flags.align + '">'
+            : '<' + type + '>';
+        return tag + content + '</' + type + '>\n';
+    };
+
+// span level renderer
+    Renderer.prototype.strong = function(text) {
+        return '<strong>' + text + '</strong>';
+    };
+
+    Renderer.prototype.em = function(text) {
+        return '<em>' + text + '</em>';
+    };
+
+    Renderer.prototype.codespan = function(text) {
+        return '<code>' + text + '</code>';
+    };
+
+    Renderer.prototype.br = function() {
+        return '<br>';
+    };
+
+    Renderer.prototype.del = function(text) {
+        return '<del>' + text + '</del>';
+    };
+
+    Renderer.prototype.link = function(href, title, text) {
+        var out = '<a href="' + href + '"';
+        if (title) {
+            out += ' title="' + title + '"';
+        }
+        out += '>' + text + '</a>';
+        return out;
+    };
+
+    Renderer.prototype.image = function(href, title, text) {
+        var out = '<img src="' + href + '" alt="' + text + '"';
+        if (title) {
+            out += ' title="' + title + '"';
+        }
+        out += '>';
+        return out;
+    };
+
+    /**
+     * Parsing & Compiling
+     */
+
+    function Parser(options) {
+        this.tokens = [];
+        this.token = null;
+        this.options = options || marked.defaults;
+        this.options.renderer = this.options.renderer || new Renderer;
+        this.renderer = this.options.renderer;
+    }
+
+    /**
+     * Static Parse Method
+     */
+
+    Parser.parse = function(src, options, renderer) {
+        var parser = new Parser(options, renderer);
+        return parser.parse(src);
+    };
+
+    /**
+     * Parse Loop
+     */
+
+    Parser.prototype.parse = function(src) {
+        this.inline = new InlineLexer(src.links, this.options, this.renderer);
+        this.tokens = src.reverse();
+
+        var out = '';
+        while (this.next()) {
+            out += this.tok();
+        }
+
+        return out;
+    };
+
+    /**
+     * Next Token
+     */
+
+    Parser.prototype.next = function() {
+        return this.token = this.tokens.pop();
+    };
+
+    /**
+     * Preview Next Token
+     */
+
+    Parser.prototype.peek = function() {
+        return this.tokens[this.tokens.length - 1] || 0;
+    };
+
+    /**
+     * Parse Text Tokens
+     */
+
+    Parser.prototype.parseText = function() {
+        var body = this.token.text;
+
+        while (this.peek().type === 'text') {
+            body += '\n' + this.next().text;
+        }
+
+        return this.inline.output(body);
+    };
+
+    /**
+     * Parse Current Token
+     */
+
+    Parser.prototype.tok = function() {
+        switch (this.token.type) {
+            case 'space': {
+                return '';
+            }
+            case 'hr': {
+                return this.renderer.hr();
+            }
+            case 'heading': {
+                return this.renderer.heading(
+                    this.inline.output(this.token.text),
+                    this.token.depth
+                );
+            }
+            case 'code': {
+                return this.renderer.code(this.token.text, this.token.lang);
+            }
+            case 'table': {
+                var header = ''
+                    , body = ''
+                    , i
+                    , row
+                    , cell
+                    , flags
+                    , j;
+
+                // header
+                cell = '';
+                for (i = 0; i < this.token.header.length; i++) {
+                    flags = { header: true, align: this.token.align[i] };
+                    cell += this.renderer.tablecell(
+                        this.inline.output(this.token.header[i]),
+                        { header: true, align: this.token.align[i] }
+                    );
+                }
+                header += this.renderer.tablerow(cell);
+
+                for (i = 0; i < this.token.cells.length; i++) {
+                    row = this.token.cells[i];
+
+                    cell = '';
+                    for (j = 0; j < row.length; j++) {
+                        cell += this.renderer.tablecell(
+                            this.inline.output(row[j]),
+                            { header: false, align: this.token.align[j] }
+                        );
+                    }
+
+                    body += this.renderer.tablerow(cell);
+                }
+                return this.renderer.table(header, body);
+            }
+            case 'blockquote_start': {
+                var body = '';
+
+                while (this.next().type !== 'blockquote_end') {
+                    body += this.tok();
+                }
+
+                return this.renderer.blockquote(body);
+            }
+            case 'list_start': {
+                var body = ''
+                    , ordered = this.token.ordered;
+
+                while (this.next().type !== 'list_end') {
+                    body += this.tok();
+                }
+
+                return this.renderer.list(body, ordered);
+            }
+            case 'list_item_start': {
+                var body = '';
+
+                while (this.next().type !== 'list_item_end') {
+                    body += this.token.type === 'text'
+                        ? this.parseText()
+                        : this.tok();
+                }
+
+                return this.renderer.listitem(body);
+            }
+            case 'loose_item_start': {
+                var body = '';
+
+                while (this.next().type !== 'list_item_end') {
+                    body += this.tok();
+                }
+
+                return this.renderer.listitem(body);
+            }
+            case 'html': {
+                var html = !this.token.pre && !this.options.pedantic
+                    ? this.inline.output(this.token.text)
+                    : this.token.text;
+                return this.renderer.html(html);
+            }
+            case 'paragraph': {
+                return this.renderer.paragraph(this.inline.output(this.token.text));
+            }
+            case 'text': {
+                return this.renderer.paragraph(this.parseText());
+            }
+        }
+    };
+
+    /**
+     * Helpers
+     */
+
+    function escape(html, encode) {
+        return html
+            .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&amp;')
+            .replace(/</g, '&lt;')
+            .replace(/>/g, '&gt;')
+            .replace(/"/g, '&quot;')
+            .replace(/'/g, '&#39;');
+    }
+
+    function replace(regex, opt) {
+        regex = regex.source;
+        opt = opt || '';
+        return function self(name, val) {
+            if (!name) return new RegExp(regex, opt);
+            val = val.source || val;
+            val = val.replace(/(^|[^\[])\^/g, '$1');
+            regex = regex.replace(name, val);
+            return self;
+        };
+    }
+
+    function noop() {}
+    noop.exec = noop;
+
+    function merge(obj) {
+        var i = 1
+            , target
+            , key;
+
+        for (; i < arguments.length; i++) {
+            target = arguments[i];
+            for (key in target) {
+                if (Object.prototype.hasOwnProperty.call(target, key)) {
+                    obj[key] = target[key];
+                }
+            }
+        }
+
+        return obj;
+    }
+
+
+    /**
+     * Marked
+     */
+
+    function marked(src, opt, callback) {
+        if (callback || typeof opt === 'function') {
+            if (!callback) {
+                callback = opt;
+                opt = null;
+            }
+
+            opt = merge({}, marked.defaults, opt || {});
+
+            var highlight = opt.highlight
+                , tokens
+                , pending
+                , i = 0;
+
+            try {
+                tokens = Lexer.lex(src, opt)
+            } catch (e) {
+                return callback(e);
+            }
+
+            pending = tokens.length;
+
+            var done = function() {
+                var out, err;
+
+                try {
+                    out = Parser.parse(tokens, opt);
+                } catch (e) {
+                    err = e;
+                }
+
+                opt.highlight = highlight;
+
+                return err
+                    ? callback(err)
+                    : callback(null, out);
+            };
+
+            return done();
+        }
+        try {
+            if (opt) opt = merge({}, marked.defaults, opt);
+            return Parser.parse(Lexer.lex(src, opt), opt);
+        } catch (e) {
+            e.message += '\nPlease report this to https://github.com/chjj/marked.';
+            if ((opt || marked.defaults).silent) {
+                return '<p>An error occured:</p><pre>'
+                    + escape(e.message + '', true)
+                    + '</pre>';
+            }
+            throw e;
+        }
+    }
+
+    /**
+     * Options
+     */
+
+    marked.options =
+        marked.setOptions = function(opt) {
+            merge(marked.defaults, opt);
+            return marked;
+        };
+
+    marked.defaults = {
+        gfm: true,
+        tables: true,
+        breaks: false,
+        pedantic: false,
+        sanitize: false,
+        smartLists: false,
+        silent: false,
+        smartypants: false,
+        renderer: new Renderer
+    };
+
+    /**
+     * Expose
+     */
+
+    marked.Parser = Parser;
+    marked.parser = Parser.parse;
+
+    marked.Renderer = Renderer;
+
+    marked.Lexer = Lexer;
+    marked.lexer = Lexer.lex;
+
+    marked.InlineLexer = InlineLexer;
+    marked.inlineLexer = InlineLexer.output;
+
+    marked.parse = marked;
+
+    if (typeof exports === 'object') {
+        module.exports = marked;
+    } else if (typeof define === 'function' && define.amd) {
+        define(function() { return marked; });
+    } else {
+        this.marked = marked;
+    }
+
+}).call(function() {
+        return this || (typeof window !== 'undefined' ? window : global);
+    }());
diff --git a/examples/biojson-doc/lib/require.js b/examples/biojson-doc/lib/require.js
new file mode 100755 (executable)
index 0000000..ee9999f
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ RequireJS 2.1.9 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
+ Available via the MIT or new BSD license.
+ see: http://github.com/jrburke/requirejs for details
+*/
+var requirejs,require,define;
+(function(Z){function H(b){return"[object Function]"===L.call(b)}function I(b){return"[object Array]"===L.call(b)}function y(b,c){if(b){var e;for(e=0;e<b.length&&(!b[e]||!c(b[e],e,b));e+=1);}}function M(b,c){if(b){var e;for(e=b.length-1;-1<e&&(!b[e]||!c(b[e],e,b));e-=1);}}function t(b,c){return ga.call(b,c)}function l(b,c){return t(b,c)&&b[c]}function F(b,c){for(var e in b)if(t(b,e)&&c(b[e],e))break}function Q(b,c,e,h){c&&F(c,function(c,j){if(e||!t(b,j))h&&"string"!==typeof c?(b[j]||(b[j]={}),Q(b[j],
+c,e,h)):b[j]=c});return b}function u(b,c){return function(){return c.apply(b,arguments)}}function aa(b){throw b;}function ba(b){if(!b)return b;var c=Z;y(b.split("."),function(b){c=c[b]});return c}function A(b,c,e,h){c=Error(c+"\nhttp://requirejs.org/docs/errors.html#"+b);c.requireType=b;c.requireModules=h;e&&(c.originalError=e);return c}function ha(b){function c(a,f,b){var d,m,c,g,e,h,j,i=f&&f.split("/");d=i;var n=k.map,p=n&&n["*"];if(a&&"."===a.charAt(0))if(f){d=l(k.pkgs,f)?i=[f]:i.slice(0,i.length-
+1);f=a=d.concat(a.split("/"));for(d=0;f[d];d+=1)if(m=f[d],"."===m)f.splice(d,1),d-=1;else if(".."===m)if(1===d&&(".."===f[2]||".."===f[0]))break;else 0<d&&(f.splice(d-1,2),d-=2);d=l(k.pkgs,f=a[0]);a=a.join("/");d&&a===f+"/"+d.main&&(a=f)}else 0===a.indexOf("./")&&(a=a.substring(2));if(b&&n&&(i||p)){f=a.split("/");for(d=f.length;0<d;d-=1){c=f.slice(0,d).join("/");if(i)for(m=i.length;0<m;m-=1)if(b=l(n,i.slice(0,m).join("/")))if(b=l(b,c)){g=b;e=d;break}if(g)break;!h&&(p&&l(p,c))&&(h=l(p,c),j=d)}!g&&
+h&&(g=h,e=j);g&&(f.splice(0,e,g),a=f.join("/"))}return a}function e(a){z&&y(document.getElementsByTagName("script"),function(f){if(f.getAttribute("data-requiremodule")===a&&f.getAttribute("data-requirecontext")===i.contextName)return f.parentNode.removeChild(f),!0})}function h(a){var f=l(k.paths,a);if(f&&I(f)&&1<f.length)return f.shift(),i.require.undef(a),i.require([a]),!0}function $(a){var f,b=a?a.indexOf("!"):-1;-1<b&&(f=a.substring(0,b),a=a.substring(b+1,a.length));return[f,a]}function n(a,f,
+b,d){var m,B,g=null,e=f?f.name:null,h=a,j=!0,k="";a||(j=!1,a="_@r"+(L+=1));a=$(a);g=a[0];a=a[1];g&&(g=c(g,e,d),B=l(r,g));a&&(g?k=B&&B.normalize?B.normalize(a,function(a){return c(a,e,d)}):c(a,e,d):(k=c(a,e,d),a=$(k),g=a[0],k=a[1],b=!0,m=i.nameToUrl(k)));b=g&&!B&&!b?"_unnormalized"+(M+=1):"";return{prefix:g,name:k,parentMap:f,unnormalized:!!b,url:m,originalName:h,isDefine:j,id:(g?g+"!"+k:k)+b}}function q(a){var f=a.id,b=l(p,f);b||(b=p[f]=new i.Module(a));return b}function s(a,f,b){var d=a.id,m=l(p,
+d);if(t(r,d)&&(!m||m.defineEmitComplete))"defined"===f&&b(r[d]);else if(m=q(a),m.error&&"error"===f)b(m.error);else m.on(f,b)}function v(a,f){var b=a.requireModules,d=!1;if(f)f(a);else if(y(b,function(f){if(f=l(p,f))f.error=a,f.events.error&&(d=!0,f.emit("error",a))}),!d)j.onError(a)}function w(){R.length&&(ia.apply(G,[G.length-1,0].concat(R)),R=[])}function x(a){delete p[a];delete T[a]}function E(a,f,b){var d=a.map.id;a.error?a.emit("error",a.error):(f[d]=!0,y(a.depMaps,function(d,c){var g=d.id,
+e=l(p,g);e&&(!a.depMatched[c]&&!b[g])&&(l(f,g)?(a.defineDep(c,r[g]),a.check()):E(e,f,b))}),b[d]=!0)}function C(){var a,f,b,d,m=(b=1E3*k.waitSeconds)&&i.startTime+b<(new Date).getTime(),c=[],g=[],j=!1,l=!0;if(!U){U=!0;F(T,function(b){a=b.map;f=a.id;if(b.enabled&&(a.isDefine||g.push(b),!b.error))if(!b.inited&&m)h(f)?j=d=!0:(c.push(f),e(f));else if(!b.inited&&(b.fetched&&a.isDefine)&&(j=!0,!a.prefix))return l=!1});if(m&&c.length)return b=A("timeout","Load timeout for modules: "+c,null,c),b.contextName=
+i.contextName,v(b);l&&y(g,function(a){E(a,{},{})});if((!m||d)&&j)if((z||da)&&!V)V=setTimeout(function(){V=0;C()},50);U=!1}}function D(a){t(r,a[0])||q(n(a[0],null,!0)).init(a[1],a[2])}function J(a){var a=a.currentTarget||a.srcElement,b=i.onScriptLoad;a.detachEvent&&!W?a.detachEvent("onreadystatechange",b):a.removeEventListener("load",b,!1);b=i.onScriptError;(!a.detachEvent||W)&&a.removeEventListener("error",b,!1);return{node:a,id:a&&a.getAttribute("data-requiremodule")}}function K(){var a;for(w();G.length;){a=
+G.shift();if(null===a[0])return v(A("mismatch","Mismatched anonymous define() module: "+a[a.length-1]));D(a)}}var U,X,i,N,V,k={waitSeconds:7,baseUrl:"./",paths:{},pkgs:{},shim:{},config:{}},p={},T={},Y={},G=[],r={},S={},L=1,M=1;N={require:function(a){return a.require?a.require:a.require=i.makeRequire(a.map)},exports:function(a){a.usingExports=!0;if(a.map.isDefine)return a.exports?a.exports:a.exports=r[a.map.id]={}},module:function(a){return a.module?a.module:a.module={id:a.map.id,uri:a.map.url,config:function(){var b=
+l(k.pkgs,a.map.id);return(b?l(k.config,a.map.id+"/"+b.main):l(k.config,a.map.id))||{}},exports:r[a.map.id]}}};X=function(a){this.events=l(Y,a.id)||{};this.map=a;this.shim=l(k.shim,a.id);this.depExports=[];this.depMaps=[];this.depMatched=[];this.pluginMaps={};this.depCount=0};X.prototype={init:function(a,b,c,d){d=d||{};if(!this.inited){this.factory=b;if(c)this.on("error",c);else this.events.error&&(c=u(this,function(a){this.emit("error",a)}));this.depMaps=a&&a.slice(0);this.errback=c;this.inited=!0;
+this.ignore=d.ignore;d.enabled||this.enabled?this.enable():this.check()}},defineDep:function(a,b){this.depMatched[a]||(this.depMatched[a]=!0,this.depCount-=1,this.depExports[a]=b)},fetch:function(){if(!this.fetched){this.fetched=!0;i.startTime=(new Date).getTime();var a=this.map;if(this.shim)i.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],u(this,function(){return a.prefix?this.callPlugin():this.load()}));else return a.prefix?this.callPlugin():this.load()}},load:function(){var a=
+this.map.url;S[a]||(S[a]=!0,i.load(this.map.id,a))},check:function(){if(this.enabled&&!this.enabling){var a,b,c=this.map.id;b=this.depExports;var d=this.exports,m=this.factory;if(this.inited)if(this.error)this.emit("error",this.error);else{if(!this.defining){this.defining=!0;if(1>this.depCount&&!this.defined){if(H(m)){if(this.events.error&&this.map.isDefine||j.onError!==aa)try{d=i.execCb(c,m,b,d)}catch(e){a=e}else d=i.execCb(c,m,b,d);this.map.isDefine&&((b=this.module)&&void 0!==b.exports&&b.exports!==
+this.exports?d=b.exports:void 0===d&&this.usingExports&&(d=this.exports));if(a)return a.requireMap=this.map,a.requireModules=this.map.isDefine?[this.map.id]:null,a.requireType=this.map.isDefine?"define":"require",v(this.error=a)}else d=m;this.exports=d;if(this.map.isDefine&&!this.ignore&&(r[c]=d,j.onResourceLoad))j.onResourceLoad(i,this.map,this.depMaps);x(c);this.defined=!0}this.defining=!1;this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=
+!0)}}else this.fetch()}},callPlugin:function(){var a=this.map,b=a.id,e=n(a.prefix);this.depMaps.push(e);s(e,"defined",u(this,function(d){var m,e;e=this.map.name;var g=this.map.parentMap?this.map.parentMap.name:null,h=i.makeRequire(a.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){if(d.normalize&&(e=d.normalize(e,function(a){return c(a,g,!0)})||""),d=n(a.prefix+"!"+e,this.map.parentMap),s(d,"defined",u(this,function(a){this.init([],function(){return a},null,{enabled:!0,ignore:!0})})),
+e=l(p,d.id)){this.depMaps.push(d);if(this.events.error)e.on("error",u(this,function(a){this.emit("error",a)}));e.enable()}}else m=u(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),m.error=u(this,function(a){this.inited=!0;this.error=a;a.requireModules=[b];F(p,function(a){0===a.map.id.indexOf(b+"_unnormalized")&&x(a.map.id)});v(a)}),m.fromText=u(this,function(d,c){var e=a.name,g=n(e),B=O;c&&(d=c);B&&(O=!1);q(g);t(k.config,b)&&(k.config[e]=k.config[b]);try{j.exec(d)}catch(ca){return v(A("fromtexteval",
+"fromText eval for "+b+" failed: "+ca,ca,[b]))}B&&(O=!0);this.depMaps.push(g);i.completeLoad(e);h([e],m)}),d.load(a.name,h,m,k)}));i.enable(e,this);this.pluginMaps[e.id]=e},enable:function(){T[this.map.id]=this;this.enabling=this.enabled=!0;y(this.depMaps,u(this,function(a,b){var c,d;if("string"===typeof a){a=n(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap);this.depMaps[b]=a;if(c=l(N,a.id)){this.depExports[b]=c(this);return}this.depCount+=1;s(a,"defined",u(this,function(a){this.defineDep(b,
+a);this.check()}));this.errback&&s(a,"error",u(this,this.errback))}c=a.id;d=p[c];!t(N,c)&&(d&&!d.enabled)&&i.enable(a,this)}));F(this.pluginMaps,u(this,function(a){var b=l(p,a.id);b&&!b.enabled&&i.enable(a,this)}));this.enabling=!1;this.check()},on:function(a,b){var c=this.events[a];c||(c=this.events[a]=[]);c.push(b)},emit:function(a,b){y(this.events[a],function(a){a(b)});"error"===a&&delete this.events[a]}};i={config:k,contextName:b,registry:p,defined:r,urlFetched:S,defQueue:G,Module:X,makeModuleMap:n,
+nextTick:j.nextTick,onError:v,configure:function(a){a.baseUrl&&"/"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+="/");var b=k.pkgs,c=k.shim,d={paths:!0,config:!0,map:!0};F(a,function(a,b){d[b]?"map"===b?(k.map||(k.map={}),Q(k[b],a,!0,!0)):Q(k[b],a,!0):k[b]=a});a.shim&&(F(a.shim,function(a,b){I(a)&&(a={deps:a});if((a.exports||a.init)&&!a.exportsFn)a.exportsFn=i.makeShimExports(a);c[b]=a}),k.shim=c);a.packages&&(y(a.packages,function(a){a="string"===typeof a?{name:a}:a;b[a.name]={name:a.name,
+location:a.location||a.name,main:(a.main||"main").replace(ja,"").replace(ea,"")}}),k.pkgs=b);F(p,function(a,b){!a.inited&&!a.map.unnormalized&&(a.map=n(b))});if(a.deps||a.callback)i.require(a.deps||[],a.callback)},makeShimExports:function(a){return function(){var b;a.init&&(b=a.init.apply(Z,arguments));return b||a.exports&&ba(a.exports)}},makeRequire:function(a,f){function h(d,c,e){var g,k;f.enableBuildCallback&&(c&&H(c))&&(c.__requireJsBuild=!0);if("string"===typeof d){if(H(c))return v(A("requireargs",
+"Invalid require call"),e);if(a&&t(N,d))return N[d](p[a.id]);if(j.get)return j.get(i,d,a,h);g=n(d,a,!1,!0);g=g.id;return!t(r,g)?v(A("notloaded",'Module name "'+g+'" has not been loaded yet for context: '+b+(a?"":". Use require([])"))):r[g]}K();i.nextTick(function(){K();k=q(n(null,a));k.skipMap=f.skipMap;k.init(d,c,e,{enabled:!0});C()});return h}f=f||{};Q(h,{isBrowser:z,toUrl:function(b){var f,e=b.lastIndexOf("."),g=b.split("/")[0];if(-1!==e&&(!("."===g||".."===g)||1<e))f=b.substring(e,b.length),b=
+b.substring(0,e);return i.nameToUrl(c(b,a&&a.id,!0),f,!0)},defined:function(b){return t(r,n(b,a,!1,!0).id)},specified:function(b){b=n(b,a,!1,!0).id;return t(r,b)||t(p,b)}});a||(h.undef=function(b){w();var c=n(b,a,!0),f=l(p,b);e(b);delete r[b];delete S[c.url];delete Y[b];f&&(f.events.defined&&(Y[b]=f.events),x(b))});return h},enable:function(a){l(p,a.id)&&q(a).enable()},completeLoad:function(a){var b,c,d=l(k.shim,a)||{},e=d.exports;for(w();G.length;){c=G.shift();if(null===c[0]){c[0]=a;if(b)break;b=
+!0}else c[0]===a&&(b=!0);D(c)}c=l(p,a);if(!b&&!t(r,a)&&c&&!c.inited){if(k.enforceDefine&&(!e||!ba(e)))return h(a)?void 0:v(A("nodefine","No define call for "+a,null,[a]));D([a,d.deps||[],d.exportsFn])}C()},nameToUrl:function(a,b,c){var d,e,h,g,i,n;if(j.jsExtRegExp.test(a))g=a+(b||"");else{d=k.paths;e=k.pkgs;g=a.split("/");for(i=g.length;0<i;i-=1)if(n=g.slice(0,i).join("/"),h=l(e,n),n=l(d,n)){I(n)&&(n=n[0]);g.splice(0,i,n);break}else if(h){a=a===h.name?h.location+"/"+h.main:h.location;g.splice(0,i,
+a);break}g=g.join("/");g+=b||(/^data\:|\?/.test(g)||c?"":".js");g=("/"===g.charAt(0)||g.match(/^[\w\+\.\-]+:/)?"":k.baseUrl)+g}return k.urlArgs?g+((-1===g.indexOf("?")?"?":"&")+k.urlArgs):g},load:function(a,b){j.load(i,a,b)},execCb:function(a,b,c,d){return b.apply(d,c)},onScriptLoad:function(a){if("load"===a.type||ka.test((a.currentTarget||a.srcElement).readyState))P=null,a=J(a),i.completeLoad(a.id)},onScriptError:function(a){var b=J(a);if(!h(b.id))return v(A("scripterror","Script error for: "+b.id,
+a,[b.id]))}};i.require=i.makeRequire();return i}var j,w,x,C,J,D,P,K,q,fa,la=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,ma=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,ea=/\.js$/,ja=/^\.\//;w=Object.prototype;var L=w.toString,ga=w.hasOwnProperty,ia=Array.prototype.splice,z=!!("undefined"!==typeof window&&"undefined"!==typeof navigator&&window.document),da=!z&&"undefined"!==typeof importScripts,ka=z&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,W="undefined"!==typeof opera&&
+"[object Opera]"===opera.toString(),E={},s={},R=[],O=!1;if("undefined"===typeof define){if("undefined"!==typeof requirejs){if(H(requirejs))return;s=requirejs;requirejs=void 0}"undefined"!==typeof require&&!H(require)&&(s=require,require=void 0);j=requirejs=function(b,c,e,h){var q,n="_";!I(b)&&"string"!==typeof b&&(q=b,I(c)?(b=c,c=e,e=h):b=[]);q&&q.context&&(n=q.context);(h=l(E,n))||(h=E[n]=j.s.newContext(n));q&&h.configure(q);return h.require(b,c,e)};j.config=function(b){return j(b)};j.nextTick="undefined"!==
+typeof setTimeout?function(b){setTimeout(b,4)}:function(b){b()};require||(require=j);j.version="2.1.9";j.jsExtRegExp=/^\/|:|\?|\.js$/;j.isBrowser=z;w=j.s={contexts:E,newContext:ha};j({});y(["toUrl","undef","defined","specified"],function(b){j[b]=function(){var c=E._;return c.require[b].apply(c,arguments)}});if(z&&(x=w.head=document.getElementsByTagName("head")[0],C=document.getElementsByTagName("base")[0]))x=w.head=C.parentNode;j.onError=aa;j.createNode=function(b){var c=b.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml",
+"html:script"):document.createElement("script");c.type=b.scriptType||"text/javascript";c.charset="utf-8";c.async=!0;return c};j.load=function(b,c,e){var h=b&&b.config||{};if(z)return h=j.createNode(h,c,e),h.setAttribute("data-requirecontext",b.contextName),h.setAttribute("data-requiremodule",c),h.attachEvent&&!(h.attachEvent.toString&&0>h.attachEvent.toString().indexOf("[native code"))&&!W?(O=!0,h.attachEvent("onreadystatechange",b.onScriptLoad)):(h.addEventListener("load",b.onScriptLoad,!1),h.addEventListener("error",
+b.onScriptError,!1)),h.src=e,K=h,C?x.insertBefore(h,C):x.appendChild(h),K=null,h;if(da)try{importScripts(e),b.completeLoad(c)}catch(l){b.onError(A("importscripts","importScripts failed for "+c+" at "+e,l,[c]))}};z&&!s.skipDataMain&&M(document.getElementsByTagName("script"),function(b){x||(x=b.parentNode);if(J=b.getAttribute("data-main"))return q=J,s.baseUrl||(D=q.split("/"),q=D.pop(),fa=D.length?D.join("/")+"/":"./",s.baseUrl=fa),q=q.replace(ea,""),j.jsExtRegExp.test(q)&&(q=J),s.deps=s.deps?s.deps.concat(q):
+[q],!0});define=function(b,c,e){var h,j;"string"!==typeof b&&(e=c,c=b,b=null);I(c)||(e=c,c=null);!c&&H(e)&&(c=[],e.length&&(e.toString().replace(la,"").replace(ma,function(b,e){c.push(e)}),c=(1===e.length?["require"]:["require","exports","module"]).concat(c)));if(O){if(!(h=K))P&&"interactive"===P.readyState||M(document.getElementsByTagName("script"),function(b){if("interactive"===b.readyState)return P=b}),h=P;h&&(b||(b=h.getAttribute("data-requiremodule")),j=E[h.getAttribute("data-requirecontext")])}(j?
+j.defQueue:R).push([b,c,e])};define.amd={jQuery:!0};j.exec=function(b){return eval(b)};j(s)}})(this);
diff --git a/examples/biojson-doc/lib/traverse.js b/examples/biojson-doc/lib/traverse.js
new file mode 100755 (executable)
index 0000000..bd2f937
--- /dev/null
@@ -0,0 +1,345 @@
+/*
+ Copyright 2010 James Halliday (mail@substack.net)
+
+ This project is free software released under the MIT/X11 license:
+ http://www.opensource.org/licenses/mit-license.php
+
+ Copyright 2010 James Halliday (mail@substack.net)
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+ */
+
+var traverse;
+
+(function(){
+    traverse = function (obj) {
+        return new Traverse(obj);
+    };
+
+    function Traverse (obj) {
+        this.value = obj;
+    }
+
+    Traverse.prototype.get = function (ps) {
+        var node = this.value;
+        for (var i = 0; i < ps.length; i ++) {
+            var key = ps[i];
+            if (!node || !hasOwnProperty.call(node, key)) {
+                node = undefined;
+                break;
+            }
+            node = node[key];
+        }
+        return node;
+    };
+
+    Traverse.prototype.has = function (ps) {
+        var node = this.value;
+        for (var i = 0; i < ps.length; i ++) {
+            var key = ps[i];
+            if (!node || !hasOwnProperty.call(node, key)) {
+                return false;
+            }
+            node = node[key];
+        }
+        return true;
+    };
+
+    Traverse.prototype.set = function (ps, value) {
+        var node = this.value;
+        for (var i = 0; i < ps.length - 1; i ++) {
+            var key = ps[i];
+            if (!hasOwnProperty.call(node, key)) node[key] = {};
+            node = node[key];
+        }
+        node[ps[i]] = value;
+        return value;
+    };
+
+    Traverse.prototype.map = function (cb) {
+        return walk(this.value, cb, true);
+    };
+
+    Traverse.prototype.forEach = function (cb) {
+        this.value = walk(this.value, cb, false);
+        return this.value;
+    };
+
+    Traverse.prototype.reduce = function (cb, init) {
+        var skip = arguments.length === 1;
+        var acc = skip ? this.value : init;
+        this.forEach(function (x) {
+            if (!this.isRoot || !skip) {
+                acc = cb.call(this, acc, x);
+            }
+        });
+        return acc;
+    };
+
+    Traverse.prototype.paths = function () {
+        var acc = [];
+        this.forEach(function (x) {
+            acc.push(this.path);
+        });
+        return acc;
+    };
+
+    Traverse.prototype.nodes = function () {
+        var acc = [];
+        this.forEach(function (x) {
+            acc.push(this.node);
+        });
+        return acc;
+    };
+
+    Traverse.prototype.clone = function () {
+        var parents = [], nodes = [];
+
+        return (function clone (src) {
+            for (var i = 0; i < parents.length; i++) {
+                if (parents[i] === src) {
+                    return nodes[i];
+                }
+            }
+
+            if (typeof src === 'object' && src !== null) {
+                var dst = copy(src);
+
+                parents.push(src);
+                nodes.push(dst);
+
+                forEach(objectKeys(src), function (key) {
+                    dst[key] = clone(src[key]);
+                });
+
+                parents.pop();
+                nodes.pop();
+                return dst;
+            }
+            else {
+                return src;
+            }
+        })(this.value);
+    };
+
+    function walk (root, cb, immutable) {
+        var path = [];
+        var parents = [];
+        var alive = true;
+
+        return (function walker (node_) {
+            var node = immutable ? copy(node_) : node_;
+            var modifiers = {};
+
+            var keepGoing = true;
+
+            var state = {
+                node : node,
+                node_ : node_,
+                path : [].concat(path),
+                parent : parents[parents.length - 1],
+                parents : parents,
+                key : path.slice(-1)[0],
+                isRoot : path.length === 0,
+                level : path.length,
+                circular : null,
+                update : function (x, stopHere) {
+                    if (!state.isRoot) {
+                        state.parent.node[state.key] = x;
+                    }
+                    state.node = x;
+                    if (stopHere) keepGoing = false;
+                },
+                'delete' : function (stopHere) {
+                    delete state.parent.node[state.key];
+                    if (stopHere) keepGoing = false;
+                },
+                remove : function (stopHere) {
+                    if (isArray(state.parent.node)) {
+                        state.parent.node.splice(state.key, 1);
+                    }
+                    else {
+                        delete state.parent.node[state.key];
+                    }
+                    if (stopHere) keepGoing = false;
+                },
+                keys : null,
+                before : function (f) { modifiers.before = f },
+                after : function (f) { modifiers.after = f },
+                pre : function (f) { modifiers.pre = f },
+                post : function (f) { modifiers.post = f },
+                stop : function () { alive = false },
+                block : function () { keepGoing = false }
+            };
+
+            if (!alive) return state;
+
+            function updateState() {
+                if (typeof state.node === 'object' && state.node !== null) {
+                    if (!state.keys || state.node_ !== state.node) {
+                        state.keys = objectKeys(state.node)
+                    }
+
+                    state.isLeaf = state.keys.length == 0;
+
+                    for (var i = 0; i < parents.length; i++) {
+                        if (parents[i].node_ === node_) {
+                            state.circular = parents[i];
+                            break;
+                        }
+                    }
+                }
+                else {
+                    state.isLeaf = true;
+                    state.keys = null;
+                }
+
+                state.notLeaf = !state.isLeaf;
+                state.notRoot = !state.isRoot;
+            }
+
+            updateState();
+
+            // use return values to update if defined
+            var ret = cb.call(state, state.node);
+            if (ret !== undefined && state.update) state.update(ret);
+
+            if (modifiers.before) modifiers.before.call(state, state.node);
+
+            if (!keepGoing) return state;
+
+            if (typeof state.node == 'object'
+                && state.node !== null && !state.circular) {
+                parents.push(state);
+
+                updateState();
+
+                forEach(state.keys, function (key, i) {
+                    path.push(key);
+
+                    if (modifiers.pre) modifiers.pre.call(state, state.node[key], key);
+
+                    var child = walker(state.node[key]);
+                    if (immutable && hasOwnProperty.call(state.node, key)) {
+                        state.node[key] = child.node;
+                    }
+
+                    child.isLast = i == state.keys.length - 1;
+                    child.isFirst = i == 0;
+
+                    if (modifiers.post) modifiers.post.call(state, child);
+
+                    path.pop();
+                });
+                parents.pop();
+            }
+
+            if (modifiers.after) modifiers.after.call(state, state.node);
+
+            return state;
+        })(root).node;
+    }
+
+    function copy (src) {
+        if (typeof src === 'object' && src !== null) {
+            var dst;
+
+            if (isArray(src)) {
+                dst = [];
+            }
+            else if (isDate(src)) {
+                dst = new Date(src.getTime ? src.getTime() : src);
+            }
+            else if (isRegExp(src)) {
+                dst = new RegExp(src);
+            }
+            else if (isError(src)) {
+                dst = { message: src.message };
+            }
+            else if (isBoolean(src)) {
+                dst = new Boolean(src);
+            }
+            else if (isNumber(src)) {
+                dst = new Number(src);
+            }
+            else if (isString(src)) {
+                dst = new String(src);
+            }
+            else if (Object.create && Object.getPrototypeOf) {
+                dst = Object.create(Object.getPrototypeOf(src));
+            }
+            else if (src.constructor === Object) {
+                dst = {};
+            }
+            else {
+                var proto =
+                        (src.constructor && src.constructor.prototype)
+                            || src.__proto__
+                            || {}
+                    ;
+                var T = function () {};
+                T.prototype = proto;
+                dst = new T;
+            }
+
+            forEach(objectKeys(src), function (key) {
+                dst[key] = src[key];
+            });
+            return dst;
+        }
+        else return src;
+    }
+
+    var objectKeys = Object.keys || function keys (obj) {
+        var res = [];
+        for (var key in obj) res.push(key)
+        return res;
+    };
+
+    function toS (obj) { return Object.prototype.toString.call(obj) }
+    function isDate (obj) { return toS(obj) === '[object Date]' }
+    function isRegExp (obj) { return toS(obj) === '[object RegExp]' }
+    function isError (obj) { return toS(obj) === '[object Error]' }
+    function isBoolean (obj) { return toS(obj) === '[object Boolean]' }
+    function isNumber (obj) { return toS(obj) === '[object Number]' }
+    function isString (obj) { return toS(obj) === '[object String]' }
+
+    var isArray = Array.isArray || function isArray (xs) {
+        return Object.prototype.toString.call(xs) === '[object Array]';
+    };
+
+    var forEach = function (xs, fn) {
+        if (xs.forEach) return xs.forEach(fn)
+        else for (var i = 0; i < xs.length; i++) {
+            fn(xs[i], i, xs);
+        }
+    };
+
+    forEach(objectKeys(Traverse.prototype), function (key) {
+        traverse[key] = function (obj) {
+            var args = [].slice.call(arguments, 1);
+            var t = new Traverse(obj);
+            return t[key].apply(t, args);
+        };
+    });
+
+    var hasOwnProperty = Object.hasOwnProperty || function (obj, key) {
+        return key in obj;
+    };
+})();
diff --git a/examples/biojson-doc/templates/box.html b/examples/biojson-doc/templates/box.html
new file mode 100755 (executable)
index 0000000..c39369d
--- /dev/null
@@ -0,0 +1,157 @@
+{{!
+ Copyright 2013 Laurent Bovet (laurent.bovet@windmaster.ch)
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+}}
+{{#scope this}}
+ <div class="box">
+    <div class="box-header box-{{__boxId}}">
+        <div class="box-title" ref="{{__ref}}">
+            {{#name this}}<div class="box-name {{#if root}}title{{/if}}">{{__name}}</div>{{/name}}
+            <div class="box-description desc">{{desc this}}</div>
+            <div class="end"></div>
+        </div>
+    </div>
+     <div class="source-button button" title="Source">{}</div>
+    <div class="box-body">
+        <div class="expand-button button" title="Expand all">+</div>
+        {{#sub this}}
+        <div class="signature">
+            <div class="signature-header">
+                <div class="signature-type">
+                    {{#primitive this}}
+                        {{signature this null this}}
+                    {{/primitive}}
+                    {{#equals type "array"}}
+                        {{signature this "array" items}}
+                    {{/equals}}
+                    {{#if allOf}}
+                        {{signature this "all of" allOf}}
+                    {{/if}}
+                    {{#if anyOf}}
+                        {{signature this "any of" anyOf}}
+                    {{/if}}
+                    {{#if oneOf}}
+                        {{signature this "one of" oneOf}}
+                    {{/if}}
+                    {{#if not}}
+                        {{signature this "not" not}}
+                    {{/if}}
+                </div>
+            </div>
+            <div class="signature-box-container">
+                {{#boxes}}
+                <div class="box-container" boxid="{{__boxId}}">
+                    {{schema this}}
+                </div>
+                {{/boxes}}
+            </div>
+        </div>
+        {{/sub}}
+        {{#if properties}}
+            {{#each properties}}
+            <div class="signature">
+                <div class="signature-header">
+                    <div class="property-name {{#contains ../required @key}}required{{/contains}}">{{@key}}</div>
+                    <div class="signature-type">
+                        {{#main this}}
+                            {{signature this null this}}
+                        {{/main}}
+                        {{#equals type "array"}}
+                            {{signature this "array" items}}
+                        {{/equals}}
+                        {{#if allOf}}
+                            {{signature this "all of" allOf}}
+                        {{/if}}
+                        {{#if anyOf}}
+                            {{signature this "any of" anyOf}}
+                        {{/if}}
+                        {{#if oneOf}}
+                            {{signature this "one of" oneOf}}
+                        {{/if}}
+                        {{#if additionalProperties}}
+                            {{signature this "map" additionalProperties}}
+                        {{/if}}
+                        {{#if not}}
+                            {{signature this "not" not}}
+                        {{/if}}
+                    </div>
+                    <div class="signature-description desc">{{desc this}}</div>
+                </div>
+                <div class="signature-box-container">
+                {{#boxes}}
+                    <div class="box-container" boxid="{{__boxId}}">
+                        {{schema this}}
+                    </div>
+                {{/boxes}}
+                </div>
+            </div>
+            {{/each}}
+        {{/if}}
+
+        {{#if patternProperties}}
+            {{#each patternProperties}}
+            <div class="signature">
+                <div class="signature-header">
+                    <div class="property-name type-pattern">{{@key}}</div>
+                    <div class="signature-type">
+                        {{#main this}}
+                        {{signature this null this}}
+                        {{/main}}
+                        {{#equals type "array"}}
+                        {{signature this "array" items}}
+                        {{/equals}}
+                        {{#if allOf}}
+                        {{signature this "all of" allOf}}
+                        {{/if}}
+                        {{#if anyOf}}
+                        {{signature this "any of" anyOf}}
+                        {{/if}}
+                        {{#if oneOf}}
+                        {{signature this "one of" oneOf}}
+                        {{/if}}
+                        {{#if not}}
+                        {{signature this "not" not}}
+                        {{/if}}
+                    </div>
+                    <div class="signature-description desc">{{desc this}}</div>
+                </div>
+                <div class="signature-box-container">
+                    {{#boxes}}
+                    <div class="box-container" boxid="{{__boxId}}">
+                        {{schema this}}
+                    </div>
+                    {{/boxes}}
+                </div>
+            </div>
+            {{/each}}
+        {{/if}}
+
+        {{#if additionalProperties}}
+        <div class="signature">
+            <div class="signature-header">
+                <div class="property-name type-pattern">additional</div>
+                <div class="signature-type">
+                    {{schema ../additionalProperties}}
+                </div>
+            </div>
+        </div>
+        {{/if}}
+    </div>
+    <div class="source">
+        <pre class="json-schema">
+{{source this}}</pre>
+    </div>
+</div>
+<div class="end"/>
+{{/scope}}
diff --git a/examples/biojson-doc/templates/signature.html b/examples/biojson-doc/templates/signature.html
new file mode 100755 (executable)
index 0000000..8412dbc
--- /dev/null
@@ -0,0 +1,86 @@
+{{!
+ Copyright 2013 Laurent Bovet (laurent.bovet@windmaster.ch)
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+}}
+{{#if keyword}}
+    <span class="type-keyword">{{keyword}}{{range schema.minItems schema.maxItems 0 "" false false ".."}}</span>
+    {{#each schemas}}
+        <span class="type-keyword">{{enum this}}</span>
+        {{#simple this}}
+            <span class="signature-type-{{__type}}">
+                {{__type}}
+            </span>
+            <span class="type-keyword">
+                {{range minLength maxLength "" "" false false ".."}}{{range minimum maximum "-∞" "∞" exclusiveMinimum exclusiveMaximum ";"}}
+            </span>
+        {{/simple}}
+        {{#complex this}}
+            {{#box this}}
+                <span boxid="{{boxId}}" class="box-{{boxId}} signature-type-{{__type}} signature-button signature-type-expandable button">{{__type}}</span>
+            {{/box}}
+        {{/complex}}
+        {{#ref this}}
+            {{#box this}}
+                <span boxid="{{boxId}}" class="box-{{boxId}} signature-type-ref signature-button signature-type-expandable button">{{__name}}</span>
+            {{/box}}
+        {{/ref}}
+        {{#if pattern}}
+            <span class="type-pattern">/{{pattern}}/</span>
+        {{/if}}
+        {{#if enum}}
+            {{#each enum}}
+                <span class="type-enum">{{this}}</span>
+            {{/each}}
+        {{/if}}
+        {{#exists default}}
+            <span class="type-keyword">default</span>
+            <span class="type-default">{{__default}}</span>
+        {{/exists}}
+    {{/each}}
+{{/if}}
+{{#unless keyword}}
+    {{#each schemas}}
+        <span class="type-keyword">{{enum this}}</span>
+        {{#primitive this}}
+           <span class="signature-type-{{__type}}">
+               {{__type}}
+            </span>
+            <span class="type-keyword">
+               {{range minLength maxLength "" "" false false ".."}}{{range minimum maximum "-∞" "∞" exclusiveMinimum exclusiveMaximum ";"}}
+            </span>
+        {{/primitive}}
+        {{#ref this}}
+            {{#box this}}
+                <span boxid="{{boxId}}" class="box-{{boxId}} signature-type-ref signature-button signature-type-expandable button">{{__name}}</span>
+            {{/box}}
+        {{/ref}}
+        {{#obj this}}
+            {{#box this}}
+                <span boxid="{{boxId}}" class="box-{{boxId}} signature-type-{{__type}} signature-button signature-type-expandable button">{{__type}}</span>
+            {{/box}}
+        {{/obj}}
+        {{#if pattern}}
+            <span class="type-pattern">/{{pattern}}/</span>
+        {{/if}}
+        {{#if enum}}
+            {{#each enum}}
+                <span class="type-enum">{{this}}</span>
+            {{/each}}
+        {{/if}}
+        {{#exists default}}
+            <span class="type-keyword">default</span>
+            <span class="type-default">{{__default}}</span>
+        {{/exists}}
+    {{/each}}
+{{/unless}}
diff --git a/examples/biojson-doc/tests/additionalItems.json b/examples/biojson-doc/tests/additionalItems.json
new file mode 100755 (executable)
index 0000000..521745c
--- /dev/null
@@ -0,0 +1,82 @@
+[
+    {
+        "description": "additionalItems as schema",
+        "schema": {
+            "items": [{}],
+            "additionalItems": {"type": "integer"}
+        },
+        "tests": [
+            {
+                "description": "additional items match schema",
+                "data": [ null, 2, 3, 4 ],
+                "valid": true
+            },
+            {
+                "description": "additional items do not match schema",
+                "data": [ null, 2, 3, "foo" ],
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "items is schema, no additionalItems",
+        "schema": {
+            "items": {},
+            "additionalItems": false
+        },
+        "tests": [
+            {
+                "description": "all items match schema",
+                "data": [ 1, 2, 3, 4, 5 ],
+                "valid": true
+            }
+        ]
+    },
+    {
+        "description": "array of items with no additionalItems",
+        "schema": {
+            "items": [{}, {}, {}],
+            "additionalItems": false
+        },
+        "tests": [
+            {
+                "description": "no additional items present",
+                "data": [ 1, 2, 3 ],
+                "valid": true
+            },
+            {
+                "description": "additional items are not permitted",
+                "data": [ 1, 2, 3, 4 ],
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "additionalItems as false without items",
+        "schema": {"additionalItems": false},
+        "tests": [
+            {
+                "description":
+                    "items defaults to empty schema so everything is valid",
+                "data": [ 1, 2, 3, 4, 5 ],
+                "valid": true
+            },
+            {
+                "description": "ignores non-arrays",
+                "data": {"foo" : "bar"},
+                "valid": true
+            }
+        ]
+    },
+    {
+        "description": "additionalItems are allowed by default",
+        "schema": {"items": [{"type": "integer"}]},
+        "tests": [
+            {
+                "description": "only the first item is validated",
+                "data": [1, "foo", false],
+                "valid": true
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/additionalProperties.json b/examples/biojson-doc/tests/additionalProperties.json
new file mode 100755 (executable)
index 0000000..eb334c9
--- /dev/null
@@ -0,0 +1,69 @@
+[
+    {
+        "description":
+            "additionalProperties being false does not allow other properties",
+        "schema": {
+            "properties": {"foo": {}, "bar": {}},
+            "patternProperties": { "^v": {} },
+            "additionalProperties": false
+        },
+        "tests": [
+            {
+                "description": "no additional properties is valid",
+                "data": {"foo": 1},
+                "valid": true
+            },
+            {
+                "description": "an additional property is invalid",
+                "data": {"foo" : 1, "bar" : 2, "quux" : "boom"},
+                "valid": false
+            },
+            {
+                "description": "ignores non-objects",
+                "data": [1, 2, 3],
+                "valid": true
+            },
+            {
+                "description": "patternProperties are not additional properties",
+                "data": {"foo":1, "vroom": 2},
+                "valid": true
+            }
+        ]
+    },
+    {
+        "description":
+            "additionalProperties allows a schema which should validate",
+        "schema": {
+            "properties": {"foo": {}, "bar": {}},
+            "additionalProperties": {"type": "boolean"}
+        },
+        "tests": [
+            {
+                "description": "no additional properties is valid",
+                "data": {"foo": 1},
+                "valid": true
+            },
+            {
+                "description": "an additional valid property is valid",
+                "data": {"foo" : 1, "bar" : 2, "quux" : true},
+                "valid": true
+            },
+            {
+                "description": "an additional invalid property is invalid",
+                "data": {"foo" : 1, "bar" : 2, "quux" : 12},
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "additionalProperties are allowed by default",
+        "schema": {"properties": {"foo": {}, "bar": {}}},
+        "tests": [
+            {
+                "description": "additional properties are allowed",
+                "data": {"foo": 1, "bar": 2, "quux": true},
+                "valid": true
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/address.json b/examples/biojson-doc/tests/address.json
new file mode 100755 (executable)
index 0000000..278728a
--- /dev/null
@@ -0,0 +1,33 @@
+[
+    {
+        "schema" : {
+            "$schema": "http://json-schema.org/draft-04/schema#",
+
+            "definitions": {
+                "address": {
+                    "type": "object",
+                    "properties": {
+                        "street_address": { "type": "string" },
+                        "city":           { "type": "string" },
+                        "state":          { "type": "string" }
+                    },
+                    "required": ["street_address", "city", "state"]
+                }
+            },
+
+            "type": "object",
+
+            "properties": {
+                "billing_address": { "$ref": "#/definitions/address" },
+                "shipping_address": {
+                    "allOf": [
+                        { "$ref": "#/definitions/address" },
+                        { "properties":
+                        { "type": { "enum": [ "residential", "business" ] } },
+                            "required": ["type"]
+                        }
+                    ]
+                }
+            }
+        }
+    }]
diff --git a/examples/biojson-doc/tests/allOf.json b/examples/biojson-doc/tests/allOf.json
new file mode 100755 (executable)
index 0000000..bbb5f89
--- /dev/null
@@ -0,0 +1,112 @@
+[
+    {
+        "description": "allOf",
+        "schema": {
+            "allOf": [
+                {
+                    "properties": {
+                        "bar": {"type": "integer"}
+                    },
+                    "required": ["bar"]
+                },
+                {
+                    "properties": {
+                        "foo": {"type": "string"}
+                    },
+                    "required": ["foo"]
+                }
+            ]
+        },
+        "tests": [
+            {
+                "description": "allOf",
+                "data": {"foo": "baz", "bar": 2},
+                "valid": true
+            },
+            {
+                "description": "mismatch second",
+                "data": {"foo": "baz"},
+                "valid": false
+            },
+            {
+                "description": "mismatch first",
+                "data": {"bar": 2},
+                "valid": false
+            },
+            {
+                "description": "wrong type",
+                "data": {"foo": "baz", "bar": "quux"},
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "allOf with base schema",
+        "schema": {
+            "properties": {"bar": {"type": "integer"}},
+            "required": ["bar"],
+            "allOf" : [
+                {
+                    "properties": {
+                        "foo": {"type": "string"}
+                    },
+                    "required": ["foo"]
+                },
+                {
+                    "properties": {
+                        "baz": {"type": "null"}
+                    },
+                    "required": ["baz"]
+                }
+            ]
+        },
+        "tests": [
+            {
+                "description": "valid",
+                "data": {"foo": "quux", "bar": 2, "baz": null},
+                "valid": true
+            },
+            {
+                "description": "mismatch base schema",
+                "data": {"foo": "quux", "baz": null},
+                "valid": false
+            },
+            {
+                "description": "mismatch first allOf",
+                "data": {"bar": 2, "baz": null},
+                "valid": false
+            },
+            {
+                "description": "mismatch second allOf",
+                "data": {"foo": "quux", "bar": 2},
+                "valid": false
+            },
+            {
+                "description": "mismatch both",
+                "data": {"bar": 2},
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "allOf simple types",
+        "schema": {
+            "allOf": [
+                {"maximum": 30},
+                {"minimum": 20}
+            ]
+        },
+        "tests": [
+            {
+                "description": "valid",
+                "data": 25,
+                "valid": true
+            },
+            {
+                "description": "mismatch one",
+                "data": 35,
+                "valid": false
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/anyOf.json b/examples/biojson-doc/tests/anyOf.json
new file mode 100755 (executable)
index 0000000..a58714a
--- /dev/null
@@ -0,0 +1,68 @@
+[
+    {
+        "description": "anyOf",
+        "schema": {
+            "anyOf": [
+                {
+                    "type": "integer"
+                },
+                {
+                    "minimum": 2
+                }
+            ]
+        },
+        "tests": [
+            {
+                "description": "first anyOf valid",
+                "data": 1,
+                "valid": true
+            },
+            {
+                "description": "second anyOf valid",
+                "data": 2.5,
+                "valid": true
+            },
+            {
+                "description": "both anyOf valid",
+                "data": 3,
+                "valid": true
+            },
+            {
+                "description": "neither anyOf valid",
+                "data": 1.5,
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "anyOf with base schema",
+        "schema": {
+            "type": "string",
+            "anyOf" : [
+                {
+                    "maxLength": 2
+                },
+                {
+                    "minLength": 4
+                }
+            ]
+        },
+        "tests": [
+            {
+                "description": "mismatch base schema",
+                "data": 3,
+                "valid": false
+            },
+            {
+                "description": "one anyOf valid",
+                "data": "foobar",
+                "valid": true
+            },
+            {
+                "description": "both anyOf invalid",
+                "data": "foo",
+                "valid": false
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/basic.json b/examples/biojson-doc/tests/basic.json
new file mode 100755 (executable)
index 0000000..c9569b2
--- /dev/null
@@ -0,0 +1,20 @@
+[{
+    "schema": {
+        "title": "Example Schema",
+        "type": "object",
+        "properties": {
+            "firstName": {
+                "type": "string"
+            },
+            "lastName": {
+                "type": "string"
+            },
+            "age": {
+                "description": "Age in years",
+                "type": "integer",
+                "minimum": 0
+            }
+        },
+        "required": ["firstName", "lastName"]
+    }
+}]
diff --git a/examples/biojson-doc/tests/definitions.json b/examples/biojson-doc/tests/definitions.json
new file mode 100755 (executable)
index 0000000..cf935a3
--- /dev/null
@@ -0,0 +1,32 @@
+[
+    {
+        "description": "valid definition",
+        "schema": {"$ref": "http://json-schema.org/draft-04/schema#"},
+        "tests": [
+            {
+                "description": "valid definition schema",
+                "data": {
+                    "definitions": {
+                        "foo": {"type": "integer"}
+                    }
+                },
+                "valid": true
+            }
+        ]
+    },
+    {
+        "description": "invalid definition",
+        "schema": {"$ref": "http://json-schema.org/draft-04/schema#"},
+        "tests": [
+            {
+                "description": "invalid definition schema",
+                "data": {
+                    "definitions": {
+                        "foo": {"type": 1}
+                    }
+                },
+                "valid": false
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/dependencies.json b/examples/biojson-doc/tests/dependencies.json
new file mode 100755 (executable)
index 0000000..7b9b16a
--- /dev/null
@@ -0,0 +1,113 @@
+[
+    {
+        "description": "dependencies",
+        "schema": {
+            "dependencies": {"bar": ["foo"]}
+        },
+        "tests": [
+            {
+                "description": "neither",
+                "data": {},
+                "valid": true
+            },
+            {
+                "description": "nondependant",
+                "data": {"foo": 1},
+                "valid": true
+            },
+            {
+                "description": "with dependency",
+                "data": {"foo": 1, "bar": 2},
+                "valid": true
+            },
+            {
+                "description": "missing dependency",
+                "data": {"bar": 2},
+                "valid": false
+            },
+            {
+                "description": "ignores non-objects",
+                "data": "foo",
+                "valid": true
+            }
+        ]
+    },
+    {
+        "description": "multiple dependencies",
+        "schema": {
+            "dependencies": {"quux": ["foo", "bar"]}
+        },
+        "tests": [
+            {
+                "description": "neither",
+                "data": {},
+                "valid": true
+            },
+            {
+                "description": "nondependants",
+                "data": {"foo": 1, "bar": 2},
+                "valid": true
+            },
+            {
+                "description": "with dependencies",
+                "data": {"foo": 1, "bar": 2, "quux": 3},
+                "valid": true
+            },
+            {
+                "description": "missing dependency",
+                "data": {"foo": 1, "quux": 2},
+                "valid": false
+            },
+            {
+                "description": "missing other dependency",
+                "data": {"bar": 1, "quux": 2},
+                "valid": false
+            },
+            {
+                "description": "missing both dependencies",
+                "data": {"quux": 1},
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "multiple dependencies subschema",
+        "schema": {
+            "dependencies": {
+                "bar": {
+                    "properties": {
+                        "foo": {"type": "integer"},
+                        "bar": {"type": "integer"}
+                    }
+                }
+            }
+        },
+        "tests": [
+            {
+                "description": "valid",
+                "data": {"foo": 1, "bar": 2},
+                "valid": true
+            },
+            {
+                "description": "no dependency",
+                "data": {"foo": "quux"},
+                "valid": true
+            },
+            {
+                "description": "wrong type",
+                "data": {"foo": "quux", "bar": 2},
+                "valid": false
+            },
+            {
+                "description": "wrong type other",
+                "data": {"foo": 2, "bar": "quux"},
+                "valid": false
+            },
+            {
+                "description": "wrong type both",
+                "data": {"foo": "quux", "bar": "quux"},
+                "valid": false
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/enum.json b/examples/biojson-doc/tests/enum.json
new file mode 100755 (executable)
index 0000000..a539edb
--- /dev/null
@@ -0,0 +1,39 @@
+[
+    {
+        "description": "simple enum validation",
+        "schema": {"enum": [1, 2, 3]},
+        "tests": [
+            {
+                "description": "one of the enum is valid",
+                "data": 1,
+                "valid": true
+            },
+            {
+                "description": "something else is invalid",
+                "data": 4,
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "heterogeneous enum validation",
+        "schema": {"enum": [6, "foo", [], true, {"foo": 12}]},
+        "tests": [
+            {
+                "description": "one of the enum is valid",
+                "data": [],
+                "valid": true
+            },
+            {
+                "description": "something else is invalid",
+                "data": null,
+                "valid": false
+            },
+            {
+                "description": "objects are deep compared",
+                "data": {"foo": false},
+                "valid": false
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/example2.json b/examples/biojson-doc/tests/example2.json
new file mode 100755 (executable)
index 0000000..d6d69ad
--- /dev/null
@@ -0,0 +1,49 @@
+[
+    {
+        "schema" : {
+            "$schema": "http://json-schema.org/draft-04/schema#",
+            "title": "Product set",
+            "type": "array",
+            "items": {
+                "title": "Product",
+                "type": "object",
+                "properties": {
+                    "id": {
+                        "description": "The unique identifier for a product",
+                        "type": "number"
+                    },
+                    "name": {
+                        "type": "string"
+                    },
+                    "price": {
+                        "type": "number",
+                        "minimum": 0,
+                        "exclusiveMinimum": true
+                    },
+                    "tags": {
+                        "type": "array",
+                        "items": {
+                            "type": "string"
+                        },
+                        "minItems": 1,
+                        "uniqueItems": true
+                    },
+                    "dimensions": {
+                        "type": "object",
+                        "properties": {
+                            "length": {"type": "number"},
+                            "width": {"type": "number"},
+                            "height": {"type": "number"}
+                        },
+                        "required": ["length", "width", "height"]
+                    },
+                    "warehouseLocation": {
+                        "description": "Coordinates of the warehouse with the product",
+                        "$ref": "http://localhost:8000/docson/tests/geo.json"
+                    }
+                },
+                "required": ["id", "name", "price"]
+            }
+        }
+    }
+]
diff --git a/examples/biojson-doc/tests/fstab.json b/examples/biojson-doc/tests/fstab.json
new file mode 100755 (executable)
index 0000000..bff452d
--- /dev/null
@@ -0,0 +1,87 @@
+[
+    {
+        "schema": {
+            "id": "http://some.site.somewhere/entry-schema#",
+            "$schema": "http://json-schema.org/draft-04/schema#",
+            "description": "schema for an fstab entry",
+            "type": "object",
+            "required": [ "storage" ],
+            "properties": {
+                "storage": {
+                    "type": "object",
+                    "oneOf": [
+                        { "$ref": "#/definitions/diskDevice" },
+                        { "$ref": "#/definitions/diskUUID" },
+                        { "$ref": "#/definitions/nfs" },
+                        { "$ref": "#/definitions/tmpfs" }
+                    ]
+                },
+                "fstype": {
+                    "enum": [ "ext3", "ext4", "btrfs" ],
+                    "default": "ext3"
+                },
+                "options": {
+                    "type": "array",
+                    "minItems": 1,
+                    "items": { "type": "string" },
+                    "uniqueItems": true
+                },
+                "readonly": { "type": "boolean" }
+            },
+            "definitions": {
+                "diskDevice": {
+                    "properties": {
+                        "type": { "enum": [ "disk" ] },
+                        "device": {
+                            "type": "string",
+                            "pattern": "^/dev/[^/]+(/[^/]+)*$"
+                        }
+                    },
+                    "required": [ "type", "device" ],
+                    "additionalProperties": false
+                },
+                "diskUUID": {
+                    "properties": {
+                        "type": { "enum": [ "disk" ] },
+                        "label": {
+                            "type": "string",
+                            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
+                        }
+                    },
+                    "required": [ "type", "label" ],
+                    "additionalProperties": false
+                },
+                "nfs": {
+                    "properties": {
+                        "type": { "enum": [ "nfs" ] },
+                        "remotePath": {
+                            "type": "string",
+                            "pattern": "^(/[^/]+)+$"
+                        },
+                        "server": {
+                            "type": "string",
+                            "oneOf": [
+                                { "format": "host-name" },
+                                { "format": "ipv4" },
+                                { "format": "ipv6" }
+                            ]
+                        }
+                    },
+                    "required": [ "type", "server", "remotePath" ],
+                    "additionalProperties": false
+                },
+                "tmpfs": {
+                    "properties": {
+                        "type": { "enum": [ "tmpfs" ] },
+                        "sizeInMB": {
+                            "type": "integer",
+                            "minimum": 16,
+                            "maximum": 512
+                        }
+                    },
+                    "required": [ "type", "sizeInMB" ],
+                    "additionalProperties": false
+                }
+            }
+        }
+    }]
diff --git a/examples/biojson-doc/tests/geo.json b/examples/biojson-doc/tests/geo.json
new file mode 100755 (executable)
index 0000000..05345b2
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "description": "A geographical coordinate",
+    "type": "object",
+    "properties": {
+        "latitude": { "type": "number" },
+        "longitude": { "type": "number" }
+    }
+}
diff --git a/examples/biojson-doc/tests/invoice.json b/examples/biojson-doc/tests/invoice.json
new file mode 100755 (executable)
index 0000000..6af4ed4
--- /dev/null
@@ -0,0 +1,98 @@
+[
+    {
+        "schema": {
+            "Invoice": {
+                "id": "Invoice",
+                "description": "Represents the document sent to the customer for payment.",
+                "properties": {
+                    "customer": {
+                        "description": "Who will pay?\nNot me! Ã©Ã Ã¨",
+                        "type": "string"
+                    },
+                    "lines": {
+                        "description": "Invoice content\n",
+                        "minItems": "1",
+                        "maxItems": "50",
+                        "type": "array",
+                        "items": {
+                            "$ref": "InvoiceLine"
+                        }
+                    },
+                    "dimension": {
+                        "description": "Total dimension of the order ",
+                        "$ref": "Dimension"
+                    }
+                }
+            },
+            "InvoiceLine": {
+                "id": "InvoiceLine",
+                "properties": {
+                    "product": {
+                        "$ref": "Product"
+                    },
+                    "quantity": {
+                        "minimum": "0",
+                        "exclusiveMinimum": "true",
+                        "maximum": "10",
+                        "exclusiveMaximum": "false",
+                        "type": "number"
+                    }
+                }
+            },
+            "Dimension": {
+                "id": "Dimension",
+                "properties": {
+                    "width": {
+                        "description": "Width in cm ",
+                        "type": "number"
+                    },
+                    "height": {
+                        "description": "Height in cm ",
+                        "type": "number"
+                    },
+                    "length": {
+                        "description": "Length in cm ",
+                        "type": "number"
+                    }
+                }
+            },
+            "Product": {
+                "id": "Product",
+                "properties": {
+                    "name": {
+                        "description": "Uniquely defines the product ",
+                        "type": "string"
+                    },
+                    "dimension": {
+                        "description": "How big it is ",
+                        "$ref": "Dimension"
+                    },
+                    "category": {
+                        "description": "Classification ",
+                        "$ref": "Category"
+                    }
+                }
+            },
+            "Category": {
+                "id": "Category",
+                "properties": {
+                    "name": {
+                        "description": "Uniquely identifies the category ",
+                        "type": "string"
+                    },
+                    "level": {
+                        "description": "Classification level from 1 to 5 (highest) ",
+                        "type": "number"
+                    }
+                }
+            },
+            "CategoryIndex": {
+                "id": "CategoryIndex",
+                "properties": {
+                    "categories": {},
+                    "products": {},
+                    "sizes": {}
+                }
+            }
+        }
+    }]
diff --git a/examples/biojson-doc/tests/items.json b/examples/biojson-doc/tests/items.json
new file mode 100755 (executable)
index 0000000..f5e18a1
--- /dev/null
@@ -0,0 +1,46 @@
+[
+    {
+        "description": "a schema given for items",
+        "schema": {
+            "items": {"type": "integer"}
+        },
+        "tests": [
+            {
+                "description": "valid items",
+                "data": [ 1, 2, 3 ],
+                "valid": true
+            },
+            {
+                "description": "wrong type of items",
+                "data": [1, "x"],
+                "valid": false
+            },
+            {
+                "description": "ignores non-arrays",
+                "data": {"foo" : "bar"},
+                "valid": true
+            }
+        ]
+    },
+    {
+        "description": "an array of schemas for items",
+        "schema": {
+            "items": [
+                {"type": "integer"},
+                {"type": "string"}
+            ]
+        },
+        "tests": [
+            {
+                "description": "correct types",
+                "data": [ 1, "foo" ],
+                "valid": true
+            },
+            {
+                "description": "wrong types",
+                "data": [ "foo", 1 ],
+                "valid": false
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/maxItems.json b/examples/biojson-doc/tests/maxItems.json
new file mode 100755 (executable)
index 0000000..3b53a6b
--- /dev/null
@@ -0,0 +1,28 @@
+[
+    {
+        "description": "maxItems validation",
+        "schema": {"maxItems": 2},
+        "tests": [
+            {
+                "description": "shorter is valid",
+                "data": [1],
+                "valid": true
+            },
+            {
+                "description": "exact length is valid",
+                "data": [1, 2],
+                "valid": true
+            },
+            {
+                "description": "too long is invalid",
+                "data": [1, 2, 3],
+                "valid": false
+            },
+            {
+                "description": "ignores non-arrays",
+                "data": "foobar",
+                "valid": true
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/maxLength.json b/examples/biojson-doc/tests/maxLength.json
new file mode 100755 (executable)
index 0000000..561767b
--- /dev/null
@@ -0,0 +1,28 @@
+[
+    {
+        "description": "maxLength validation",
+        "schema": {"maxLength": 2},
+        "tests": [
+            {
+                "description": "shorter is valid",
+                "data": "f",
+                "valid": true
+            },
+            {
+                "description": "exact length is valid",
+                "data": "fo",
+                "valid": true
+            },
+            {
+                "description": "too long is invalid",
+                "data": "foo",
+                "valid": false
+            },
+            {
+                "description": "ignores non-strings",
+                "data": 10,
+                "valid": true
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/maxProperties.json b/examples/biojson-doc/tests/maxProperties.json
new file mode 100755 (executable)
index 0000000..d282446
--- /dev/null
@@ -0,0 +1,28 @@
+[
+    {
+        "description": "maxProperties validation",
+        "schema": {"maxProperties": 2},
+        "tests": [
+            {
+                "description": "shorter is valid",
+                "data": {"foo": 1},
+                "valid": true
+            },
+            {
+                "description": "exact length is valid",
+                "data": {"foo": 1, "bar": 2},
+                "valid": true
+            },
+            {
+                "description": "too long is invalid",
+                "data": {"foo": 1, "bar": 2, "baz": 3},
+                "valid": false
+            },
+            {
+                "description": "ignores non-objects",
+                "data": "foobar",
+                "valid": true
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/maximum.json b/examples/biojson-doc/tests/maximum.json
new file mode 100755 (executable)
index 0000000..86c7b89
--- /dev/null
@@ -0,0 +1,42 @@
+[
+    {
+        "description": "maximum validation",
+        "schema": {"maximum": 3.0},
+        "tests": [
+            {
+                "description": "below the maximum is valid",
+                "data": 2.6,
+                "valid": true
+            },
+            {
+                "description": "above the maximum is invalid",
+                "data": 3.5,
+                "valid": false
+            },
+            {
+                "description": "ignores non-numbers",
+                "data": "x",
+                "valid": true
+            }
+        ]
+    },
+    {
+        "description": "exclusiveMaximum validation",
+        "schema": {
+            "maximum": 3.0,
+            "exclusiveMaximum": true
+        },
+        "tests": [
+            {
+                "description": "below the maximum is still valid",
+                "data": 2.2,
+                "valid": true
+            },
+            {
+                "description": "boundary point is invalid",
+                "data": 3.0,
+                "valid": false
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/minItems.json b/examples/biojson-doc/tests/minItems.json
new file mode 100755 (executable)
index 0000000..ed51188
--- /dev/null
@@ -0,0 +1,28 @@
+[
+    {
+        "description": "minItems validation",
+        "schema": {"minItems": 1},
+        "tests": [
+            {
+                "description": "longer is valid",
+                "data": [1, 2],
+                "valid": true
+            },
+            {
+                "description": "exact length is valid",
+                "data": [1],
+                "valid": true
+            },
+            {
+                "description": "too short is invalid",
+                "data": [],
+                "valid": false
+            },
+            {
+                "description": "ignores non-arrays",
+                "data": "",
+                "valid": true
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/minLength.json b/examples/biojson-doc/tests/minLength.json
new file mode 100755 (executable)
index 0000000..e9c14b1
--- /dev/null
@@ -0,0 +1,28 @@
+[
+    {
+        "description": "minLength validation",
+        "schema": {"minLength": 2},
+        "tests": [
+            {
+                "description": "longer is valid",
+                "data": "foo",
+                "valid": true
+            },
+            {
+                "description": "exact length is valid",
+                "data": "fo",
+                "valid": true
+            },
+            {
+                "description": "too short is invalid",
+                "data": "f",
+                "valid": false
+            },
+            {
+                "description": "ignores non-strings",
+                "data": 1,
+                "valid": true
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/minProperties.json b/examples/biojson-doc/tests/minProperties.json
new file mode 100755 (executable)
index 0000000..a72c7d2
--- /dev/null
@@ -0,0 +1,28 @@
+[
+    {
+        "description": "minProperties validation",
+        "schema": {"minProperties": 1},
+        "tests": [
+            {
+                "description": "longer is valid",
+                "data": {"foo": 1, "bar": 2},
+                "valid": true
+            },
+            {
+                "description": "exact length is valid",
+                "data": {"foo": 1},
+                "valid": true
+            },
+            {
+                "description": "too short is invalid",
+                "data": {},
+                "valid": false
+            },
+            {
+                "description": "ignores non-objects",
+                "data": "",
+                "valid": true
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/minimum.json b/examples/biojson-doc/tests/minimum.json
new file mode 100755 (executable)
index 0000000..d5bf000
--- /dev/null
@@ -0,0 +1,42 @@
+[
+    {
+        "description": "minimum validation",
+        "schema": {"minimum": 1.1},
+        "tests": [
+            {
+                "description": "above the minimum is valid",
+                "data": 2.6,
+                "valid": true
+            },
+            {
+                "description": "below the minimum is invalid",
+                "data": 0.6,
+                "valid": false
+            },
+            {
+                "description": "ignores non-numbers",
+                "data": "x",
+                "valid": true
+            }
+        ]
+    },
+    {
+        "description": "exclusiveMinimum validation",
+        "schema": {
+            "minimum": 1.1,
+            "exclusiveMinimum": true
+        },
+        "tests": [
+            {
+                "description": "above the minimum is still valid",
+                "data": 1.2,
+                "valid": true
+            },
+            {
+                "description": "boundary point is invalid",
+                "data": 1.1,
+                "valid": false
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/multipleOf.json b/examples/biojson-doc/tests/multipleOf.json
new file mode 100755 (executable)
index 0000000..ca3b761
--- /dev/null
@@ -0,0 +1,60 @@
+[
+    {
+        "description": "by int",
+        "schema": {"multipleOf": 2},
+        "tests": [
+            {
+                "description": "int by int",
+                "data": 10,
+                "valid": true
+            },
+            {
+                "description": "int by int fail",
+                "data": 7,
+                "valid": false
+            },
+            {
+                "description": "ignores non-numbers",
+                "data": "foo",
+                "valid": true
+            }
+        ]
+    },
+    {
+        "description": "by number",
+        "schema": {"multipleOf": 1.5},
+        "tests": [
+            {
+                "description": "zero is multiple of anything",
+                "data": 0,
+                "valid": true
+            },
+            {
+                "description": "4.5 is multiple of 1.5",
+                "data": 4.5,
+                "valid": true
+            },
+            {
+                "description": "35 is not multiple of 1.5",
+                "data": 35,
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "by small number",
+        "schema": {"multipleOf": 0.0001},
+        "tests": [
+            {
+                "description": "0.0075 is multiple of 0.0001",
+                "data": 0.0075,
+                "valid": true
+            },
+            {
+                "description": "0.00751 is not multiple of 0.0001",
+                "data": 0.00751,
+                "valid": false
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/not.json b/examples/biojson-doc/tests/not.json
new file mode 100755 (executable)
index 0000000..2cdc979
--- /dev/null
@@ -0,0 +1,73 @@
+[
+    {
+        "description": "not",
+        "schema": {
+            "not": {"type": "integer"}
+        },
+        "tests": [
+            {
+                "description": "allowed",
+                "data": "foo",
+                "valid": true
+            },
+            {
+                "description": "disallowed",
+                "data": 1,
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "not multiple types",
+        "schema": {
+            "not": {"type": ["integer", "boolean"]}
+        },
+        "tests": [
+            {
+                "description": "valid",
+                "data": "foo",
+                "valid": true
+            },
+            {
+                "description": "mismatch",
+                "data": 1,
+                "valid": false
+            },
+            {
+                "description": "other mismatch",
+                "data": true,
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "not more complex schema",
+        "schema": {
+            "not": {
+                "type": "object",
+                "properties": {
+                    "foo": {
+                        "type": "string"
+                    }
+                }
+             }
+        },
+        "tests": [
+            {
+                "description": "match",
+                "data": 1,
+                "valid": true
+            },
+            {
+                "description": "other match",
+                "data": {"foo": 1},
+                "valid": true
+            },
+            {
+                "description": "mismatch",
+                "data": {"foo": "bar"},
+                "valid": false
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/oneOf.json b/examples/biojson-doc/tests/oneOf.json
new file mode 100755 (executable)
index 0000000..1eaa4e4
--- /dev/null
@@ -0,0 +1,68 @@
+[
+    {
+        "description": "oneOf",
+        "schema": {
+            "oneOf": [
+                {
+                    "type": "integer"
+                },
+                {
+                    "minimum": 2
+                }
+            ]
+        },
+        "tests": [
+            {
+                "description": "first oneOf valid",
+                "data": 1,
+                "valid": true
+            },
+            {
+                "description": "second oneOf valid",
+                "data": 2.5,
+                "valid": true
+            },
+            {
+                "description": "both oneOf valid",
+                "data": 3,
+                "valid": false
+            },
+            {
+                "description": "neither oneOf valid",
+                "data": 1.5,
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "oneOf with base schema",
+        "schema": {
+            "type": "string",
+            "oneOf" : [
+                {
+                    "minLength": 2
+                },
+                {
+                    "maxLength": 4
+                }
+            ]
+        },
+        "tests": [
+            {
+                "description": "mismatch base schema",
+                "data": 3,
+                "valid": false
+            },
+            {
+                "description": "one oneOf valid",
+                "data": "foobar",
+                "valid": true
+            },
+            {
+                "description": "both oneOf valid",
+                "data": "foo",
+                "valid": false
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/pattern.json b/examples/biojson-doc/tests/pattern.json
new file mode 100755 (executable)
index 0000000..befc4b5
--- /dev/null
@@ -0,0 +1,23 @@
+[
+    {
+        "description": "pattern validation",
+        "schema": {"pattern": "^a*$"},
+        "tests": [
+            {
+                "description": "a matching pattern is valid",
+                "data": "aaa",
+                "valid": true
+            },
+            {
+                "description": "a non-matching pattern is invalid",
+                "data": "abc",
+                "valid": false
+            },
+            {
+                "description": "ignores non-strings",
+                "data": true,
+                "valid": true
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/patternProperties.json b/examples/biojson-doc/tests/patternProperties.json
new file mode 100755 (executable)
index 0000000..18586e5
--- /dev/null
@@ -0,0 +1,110 @@
+[
+    {
+        "description":
+            "patternProperties validates properties matching a regex",
+        "schema": {
+            "patternProperties": {
+                "f.*o": {"type": "integer"}
+            }
+        },
+        "tests": [
+            {
+                "description": "a single valid match is valid",
+                "data": {"foo": 1},
+                "valid": true
+            },
+            {
+                "description": "multiple valid matches is valid",
+                "data": {"foo": 1, "foooooo" : 2},
+                "valid": true
+            },
+            {
+                "description": "a single invalid match is invalid",
+                "data": {"foo": "bar", "fooooo": 2},
+                "valid": false
+            },
+            {
+                "description": "multiple invalid matches is invalid",
+                "data": {"foo": "bar", "foooooo" : "baz"},
+                "valid": false
+            },
+            {
+                "description": "ignores non-objects",
+                "data": 12,
+                "valid": true
+            }
+        ]
+    },
+    {
+        "description": "multiple simultaneous patternProperties are validated",
+        "schema": {
+            "patternProperties": {
+                "a*": {"type": "integer"},
+                "aaa*": {"maximum": 20}
+            }
+        },
+        "tests": [
+            {
+                "description": "a single valid match is valid",
+                "data": {"a": 21},
+                "valid": true
+            },
+            {
+                "description": "a simultaneous match is valid",
+                "data": {"aaaa": 18},
+                "valid": true
+            },
+            {
+                "description": "multiple matches is valid",
+                "data": {"a": 21, "aaaa": 18},
+                "valid": true
+            },
+            {
+                "description": "an invalid due to one is invalid",
+                "data": {"a": "bar"},
+                "valid": false
+            },
+            {
+                "description": "an invalid due to the other is invalid",
+                "data": {"aaaa": 31},
+                "valid": false
+            },
+            {
+                "description": "an invalid due to both is invalid",
+                "data": {"aaa": "foo", "aaaa": 31},
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "regexes are not anchored by default and are case sensitive",
+        "schema": {
+            "patternProperties": {
+                "[0-9]{2,}": { "type": "boolean" },
+                "X_": { "type": "string" }
+            }
+        },
+        "tests": [
+            {
+                "description": "non recognized members are ignored",
+                "data": { "answer 1": "42" },
+                "valid": true
+            },
+            {
+                "description": "recognized members are accounted for",
+                "data": { "a31b": null },
+                "valid": false
+            },
+            {
+                "description": "regexes are case sensitive",
+                "data": { "a_x_3": 3 },
+                "valid": true
+            },
+            {
+                "description": "regexes are case sensitive, 2",
+                "data": { "a_X_3": 3 },
+                "valid": false
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/properties.json b/examples/biojson-doc/tests/properties.json
new file mode 100755 (executable)
index 0000000..cd1644d
--- /dev/null
@@ -0,0 +1,92 @@
+[
+    {
+        "description": "object properties validation",
+        "schema": {
+            "properties": {
+                "foo": {"type": "integer"},
+                "bar": {"type": "string"}
+            }
+        },
+        "tests": [
+            {
+                "description": "both properties present and valid is valid",
+                "data": {"foo": 1, "bar": "baz"},
+                "valid": true
+            },
+            {
+                "description": "one property invalid is invalid",
+                "data": {"foo": 1, "bar": {}},
+                "valid": false
+            },
+            {
+                "description": "both properties invalid is invalid",
+                "data": {"foo": [], "bar": {}},
+                "valid": false
+            },
+            {
+                "description": "doesn't invalidate other properties",
+                "data": {"quux": []},
+                "valid": true
+            },
+            {
+                "description": "ignores non-objects",
+                "data": [],
+                "valid": true
+            }
+        ]
+    },
+    {
+        "description":
+            "properties, patternProperties, additionalProperties interaction",
+        "schema": {
+            "properties": {
+                "foo": {"type": "array", "maxItems": 3},
+                "bar": {"type": "array"}
+            },
+            "patternProperties": {"f.o": {"minItems": 2}},
+            "additionalProperties": {"type": "integer"}
+        },
+        "tests": [
+            {
+                "description": "property validates property",
+                "data": {"foo": [1, 2]},
+                "valid": true
+            },
+            {
+                "description": "property invalidates property",
+                "data": {"foo": [1, 2, 3, 4]},
+                "valid": false
+            },
+            {
+                "description": "patternProperty invalidates property",
+                "data": {"foo": []},
+                "valid": false
+            },
+            {
+                "description": "patternProperty validates nonproperty",
+                "data": {"fxo": [1, 2]},
+                "valid": true
+            },
+            {
+                "description": "patternProperty invalidates nonproperty",
+                "data": {"fxo": []},
+                "valid": false
+            },
+            {
+                "description": "additionalProperty ignores property",
+                "data": {"bar": []},
+                "valid": true
+            },
+            {
+                "description": "additionalProperty validates others",
+                "data": {"quux": 3},
+                "valid": true
+            },
+            {
+                "description": "additionalProperty invalidates others",
+                "data": {"quux": "foo"},
+                "valid": false
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/ref.json b/examples/biojson-doc/tests/ref.json
new file mode 100755 (executable)
index 0000000..543af83
--- /dev/null
@@ -0,0 +1,160 @@
+[
+    {
+        "description": "root pointer ref",
+        "schema": {
+            "properties": {
+                "foo": {"$ref": "#"}
+            },
+            "additionalProperties": false
+        },
+        "tests": [
+            {
+                "description": "match",
+                "data": {"foo": false},
+                "valid": true
+            },
+            {
+                "description": "recursive match",
+                "data": {"foo": {"foo": false}},
+                "valid": true
+            },
+            {
+                "description": "mismatch",
+                "data": {"bar": false},
+                "valid": false
+            },
+            {
+                "description": "recursive mismatch",
+                "data": {"foo": {"bar": false}},
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "relative pointer ref to object",
+        "schema": {
+            "properties": {
+                "foo": {"type": "integer"},
+                "bar": {"$ref": "#/properties/foo"}
+            }
+        },
+        "tests": [
+            {
+                "description": "match",
+                "data": {"bar": 3},
+                "valid": true
+            },
+            {
+                "description": "mismatch",
+                "data": {"bar": true},
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "relative pointer ref to array",
+        "schema": {
+            "items": [
+                {"type": "integer"},
+                {"$ref": "#/items/0"}
+            ]
+        },
+        "tests": [
+            {
+                "description": "match array",
+                "data": [1, 2],
+                "valid": true
+            },
+            {
+                "description": "mismatch array",
+                "data": [1, "foo"],
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "escaped pointer ref",
+        "schema": {
+            "tilda~field": {"type": "integer"},
+            "slash/field": {"type": "integer"},
+            "percent%field": {"type": "integer"},
+            "properties": {
+                "tilda": {"$ref": "#/tilda~0field"},
+                "slash": {"$ref": "#/slash~1field"},
+                "percent": {"$ref": "#/percent%25field"}
+            }
+        },
+        "tests": [
+            {
+                "description": "slash",
+                "data": {"slash": "aoeu"},
+                "valid": false
+            },
+            {
+                "description": "tilda",
+                "data": {"tilda": "aoeu"},
+                "valid": false
+            },
+            {
+                "description": "percent",
+                "data": {"percent": "aoeu"},
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "nested refs",
+        "schema": {
+            "definitions": {
+                "a": {"type": "integer"},
+                "b": {"$ref": "#/definitions/a"},
+                "c": {"$ref": "#/definitions/b"}
+            },
+            "$ref": "#/definitions/c"
+        },
+        "tests": [
+            {
+                "description": "nested ref valid",
+                "data": 5,
+                "valid": true
+            },
+            {
+                "description": "nested ref invalid",
+                "data": "a",
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "remote ref, containing refs itself",
+        "schema": {"$ref": "http://json-schema.org/draft-04/schema#"},
+        "tests": [
+            {
+                "description": "remote ref valid",
+                "data": {"minLength": 1},
+                "valid": true
+            },
+            {
+                "description": "remote ref invalid",
+                "data": {"minLength": -1},
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "circular refs",
+        "schema": {
+            "definitions": {
+                "a": {
+                    "properties": {
+                        "more": {"$ref": "#/definitions/a"}
+                    }
+                }
+            },
+            "properties": {
+                "prop": {"$ref": "#/definitions/a"}
+            }
+        },
+        "tests": []
+    }
+]
diff --git a/examples/biojson-doc/tests/refRemote.json b/examples/biojson-doc/tests/refRemote.json
new file mode 100755 (executable)
index 0000000..4ca8047
--- /dev/null
@@ -0,0 +1,74 @@
+[
+    {
+        "description": "remote ref",
+        "schema": {"$ref": "http://localhost:1234/integer.json"},
+        "tests": [
+            {
+                "description": "remote ref valid",
+                "data": 1,
+                "valid": true
+            },
+            {
+                "description": "remote ref invalid",
+                "data": "a",
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "fragment within remote ref",
+        "schema": {"$ref": "http://localhost:1234/subSchemas.json#/integer"},
+        "tests": [
+            {
+                "description": "remote fragment valid",
+                "data": 1,
+                "valid": true
+            },
+            {
+                "description": "remote fragment invalid",
+                "data": "a",
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "ref within remote ref",
+        "schema": {
+            "$ref": "http://localhost:1234/subSchemas.json#/refToInteger"
+        },
+        "tests": [
+            {
+                "description": "ref within ref valid",
+                "data": 1,
+                "valid": true
+            },
+            {
+                "description": "ref within ref invalid",
+                "data": "a",
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "change resolution scope",
+        "schema": {
+            "id": "http://localhost:1234/",
+            "items": {
+                "id": "folder/",
+                "items": {"$ref": "folderInteger.json"}
+            }
+        },
+        "tests": [
+            {
+                "description": "changed scope ref valid",
+                "data": [[1]],
+                "valid": true
+            },
+            {
+                "description": "changed scope ref invalid",
+                "data": [["a"]],
+                "valid": false
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/required.json b/examples/biojson-doc/tests/required.json
new file mode 100755 (executable)
index 0000000..612f73f
--- /dev/null
@@ -0,0 +1,39 @@
+[
+    {
+        "description": "required validation",
+        "schema": {
+            "properties": {
+                "foo": {},
+                "bar": {}
+            },
+            "required": ["foo"]
+        },
+        "tests": [
+            {
+                "description": "present required property is valid",
+                "data": {"foo": 1},
+                "valid": true
+            },
+            {
+                "description": "non-present required property is invalid",
+                "data": {"bar": 1},
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "required default validation",
+        "schema": {
+            "properties": {
+                "foo": {}
+            }
+        },
+        "tests": [
+            {
+                "description": "not required by default",
+                "data": {},
+                "valid": true
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/schema.json b/examples/biojson-doc/tests/schema.json
new file mode 100755 (executable)
index 0000000..7ddd475
--- /dev/null
@@ -0,0 +1,154 @@
+[
+    {
+        "schema": {
+            "id": "http://json-schema.org/draft-04/schema#",
+            "$schema": "http://json-schema.org/draft-04/schema#",
+            "description": "Core schema meta-schema",
+            "definitions": {
+                "schemaArray": {
+                    "type": "array",
+                    "minItems": 1,
+                    "items": { "$ref": "#" }
+                },
+                "positiveInteger": {
+                    "type": "integer",
+                    "minimum": 0
+                },
+                "positiveIntegerDefault0": {
+                    "allOf": [ { "$ref": "#/definitions/positiveInteger" }, { "default": 0 } ]
+                },
+                "simpleTypes": {
+                    "enum": [ "array", "boolean", "integer", "null", "number", "object", "string" ]
+                },
+                "stringArray": {
+                    "type": "array",
+                    "items": { "type": "string" },
+                    "minItems": 1,
+                    "uniqueItems": true
+                }
+            },
+            "type": "object",
+            "properties": {
+                "id": {
+                    "type": "string",
+                    "format": "uri"
+                },
+                "$schema": {
+                    "type": "string",
+                    "format": "uri"
+                },
+                "title": {
+                    "type": "string"
+                },
+                "description": {
+                    "type": "string"
+                },
+                "default": {},
+                "multipleOf": {
+                    "type": "number",
+                    "minimum": 0,
+                    "exclusiveMinimum": true
+                },
+                "maximum": {
+                    "type": "number"
+                },
+                "exclusiveMaximum": {
+                    "type": "boolean",
+                    "default": false
+                },
+                "minimum": {
+                    "type": "number"
+                },
+                "exclusiveMinimum": {
+                    "type": "boolean",
+                    "default": false
+                },
+                "maxLength": { "$ref": "#/definitions/positiveInteger" },
+                "minLength": { "$ref": "#/definitions/positiveIntegerDefault0" },
+                "pattern": {
+                    "type": "string",
+                    "format": "regex"
+                },
+                "additionalItems": {
+                    "anyOf": [
+                        { "type": "boolean" },
+                        { "$ref": "#" }
+                    ],
+                    "default": {}
+                },
+                "items": {
+                    "anyOf": [
+                        { "$ref": "#" },
+                        { "$ref": "#/definitions/schemaArray" }
+                    ],
+                    "default": {}
+                },
+                "maxItems": { "$ref": "#/definitions/positiveInteger" },
+                "minItems": { "$ref": "#/definitions/positiveIntegerDefault0" },
+                "uniqueItems": {
+                    "type": "boolean",
+                    "default": false
+                },
+                "maxProperties": { "$ref": "#/definitions/positiveInteger" },
+                "minProperties": { "$ref": "#/definitions/positiveIntegerDefault0" },
+                "required": { "$ref": "#/definitions/stringArray" },
+                "additionalProperties": {
+                    "anyOf": [
+                        { "type": "boolean" },
+                        { "$ref": "#" }
+                    ],
+                    "default": {}
+                },
+                "definitions": {
+                    "type": "object",
+                    "additionalProperties": { "$ref": "#" },
+                    "default": {}
+                },
+                "properties": {
+                    "type": "object",
+                    "additionalProperties": { "$ref": "#" },
+                    "default": {}
+                },
+                "patternProperties": {
+                    "type": "object",
+                    "additionalProperties": { "$ref": "#" },
+                    "default": {}
+                },
+                "dependencies": {
+                    "type": "object",
+                    "additionalProperties": {
+                        "anyOf": [
+                            { "$ref": "#" },
+                            { "$ref": "#/definitions/stringArray" }
+                        ]
+                    }
+                },
+                "enum": {
+                    "type": "array",
+                    "minItems": 1,
+                    "uniqueItems": true
+                },
+                "type": {
+                    "anyOf": [
+                        { "$ref": "#/definitions/simpleTypes" },
+                        {
+                            "type": "array",
+                            "items": { "$ref": "#/definitions/simpleTypes" },
+                            "minItems": 1,
+                            "uniqueItems": true
+                        }
+                    ]
+                },
+                "allOf": { "$ref": "#/definitions/schemaArray" },
+                "anyOf": { "$ref": "#/definitions/schemaArray" },
+                "oneOf": { "$ref": "#/definitions/schemaArray" },
+                "not": { "$ref": "#" }
+            },
+            "dependencies": {
+                "exclusiveMaximum": [ "maximum" ],
+                "exclusiveMinimum": [ "minimum" ]
+            },
+            "default": {}
+        }
+
+    }]
diff --git a/examples/biojson-doc/tests/test.html b/examples/biojson-doc/tests/test.html
new file mode 100755 (executable)
index 0000000..2cbbd50
--- /dev/null
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>Docson Test</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="../css/docson.css">
+    <script src="../lib/require.js"></script></head>
+    <style>
+        body {
+            font-family: verdana, helvetica;
+        }
+    </style>
+</head>
+<body>
+<script charset="utf-8">
+    var tests = [ "invoice$Invoice", "enum", "schema","additionalProperties", "address", "fstab", "basic", "not", "oneOf", "anyOf", "allOf", "example2", "properties", "ref"]
+    require.config({ baseUrl: ".."});
+    require(["docson", "lib/jquery"], function(docson) {
+        docson.templateBaseUrl="../templates";
+        $(function() {
+            $.each(tests, function(k, test) {
+                var block = $("<div/>");
+                var segments = test.split("$");
+                $("body").append("<h2>"+segments[0]+"</h2>");
+                $("body").append(block);
+                $.get(segments[0]+".json").done(function(items) {
+                    $.each(items, function(k, item) {
+                        var element = $("<div/>");
+                        block.append(element);
+                        if(!item.schema.description) {
+                            item.schema.description = item.description;
+                        }
+                        docson.doc(element, item.schema, segments[1]);
+                    });
+                });
+            });
+        });
+    });
+</script>
+</body>
+</html>
diff --git a/examples/biojson-doc/tests/type.json b/examples/biojson-doc/tests/type.json
new file mode 100755 (executable)
index 0000000..257f051
--- /dev/null
@@ -0,0 +1,330 @@
+[
+    {
+        "description": "integer type matches integers",
+        "schema": {"type": "integer"},
+        "tests": [
+            {
+                "description": "an integer is an integer",
+                "data": 1,
+                "valid": true
+            },
+            {
+                "description": "a float is not an integer",
+                "data": 1.1,
+                "valid": false
+            },
+            {
+                "description": "a string is not an integer",
+                "data": "foo",
+                "valid": false
+            },
+            {
+                "description": "an object is not an integer",
+                "data": {},
+                "valid": false
+            },
+            {
+                "description": "an array is not an integer",
+                "data": [],
+                "valid": false
+            },
+            {
+                "description": "a boolean is not an integer",
+                "data": true,
+                "valid": false
+            },
+            {
+                "description": "null is not an integer",
+                "data": null,
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "number type matches numbers",
+        "schema": {"type": "number"},
+        "tests": [
+            {
+                "description": "an integer is a number",
+                "data": 1,
+                "valid": true
+            },
+            {
+                "description": "a float is a number",
+                "data": 1.1,
+                "valid": true
+            },
+            {
+                "description": "a string is not a number",
+                "data": "foo",
+                "valid": false
+            },
+            {
+                "description": "an object is not a number",
+                "data": {},
+                "valid": false
+            },
+            {
+                "description": "an array is not a number",
+                "data": [],
+                "valid": false
+            },
+            {
+                "description": "a boolean is not a number",
+                "data": true,
+                "valid": false
+            },
+            {
+                "description": "null is not a number",
+                "data": null,
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "string type matches strings",
+        "schema": {"type": "string"},
+        "tests": [
+            {
+                "description": "1 is not a string",
+                "data": 1,
+                "valid": false
+            },
+            {
+                "description": "a float is not a string",
+                "data": 1.1,
+                "valid": false
+            },
+            {
+                "description": "a string is a string",
+                "data": "foo",
+                "valid": true
+            },
+            {
+                "description": "an object is not a string",
+                "data": {},
+                "valid": false
+            },
+            {
+                "description": "an array is not a string",
+                "data": [],
+                "valid": false
+            },
+            {
+                "description": "a boolean is not a string",
+                "data": true,
+                "valid": false
+            },
+            {
+                "description": "null is not a string",
+                "data": null,
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "object type matches objects",
+        "schema": {"type": "object"},
+        "tests": [
+            {
+                "description": "an integer is not an object",
+                "data": 1,
+                "valid": false
+            },
+            {
+                "description": "a float is not an object",
+                "data": 1.1,
+                "valid": false
+            },
+            {
+                "description": "a string is not an object",
+                "data": "foo",
+                "valid": false
+            },
+            {
+                "description": "an object is an object",
+                "data": {},
+                "valid": true
+            },
+            {
+                "description": "an array is not an object",
+                "data": [],
+                "valid": false
+            },
+            {
+                "description": "a boolean is not an object",
+                "data": true,
+                "valid": false
+            },
+            {
+                "description": "null is not an object",
+                "data": null,
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "array type matches arrays",
+        "schema": {"type": "array"},
+        "tests": [
+            {
+                "description": "an integer is not an array",
+                "data": 1,
+                "valid": false
+            },
+            {
+                "description": "a float is not an array",
+                "data": 1.1,
+                "valid": false
+            },
+            {
+                "description": "a string is not an array",
+                "data": "foo",
+                "valid": false
+            },
+            {
+                "description": "an object is not an array",
+                "data": {},
+                "valid": false
+            },
+            {
+                "description": "an array is not an array",
+                "data": [],
+                "valid": true
+            },
+            {
+                "description": "a boolean is not an array",
+                "data": true,
+                "valid": false
+            },
+            {
+                "description": "null is not an array",
+                "data": null,
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "boolean type matches booleans",
+        "schema": {"type": "boolean"},
+        "tests": [
+            {
+                "description": "an integer is not a boolean",
+                "data": 1,
+                "valid": false
+            },
+            {
+                "description": "a float is not a boolean",
+                "data": 1.1,
+                "valid": false
+            },
+            {
+                "description": "a string is not a boolean",
+                "data": "foo",
+                "valid": false
+            },
+            {
+                "description": "an object is not a boolean",
+                "data": {},
+                "valid": false
+            },
+            {
+                "description": "an array is not a boolean",
+                "data": [],
+                "valid": false
+            },
+            {
+                "description": "a boolean is not a boolean",
+                "data": true,
+                "valid": true
+            },
+            {
+                "description": "null is not a boolean",
+                "data": null,
+                "valid": false
+            }
+        ]
+    },
+    {
+        "description": "null type matches only the null object",
+        "schema": {"type": "null"},
+        "tests": [
+            {
+                "description": "an integer is not null",
+                "data": 1,
+                "valid": false
+            },
+            {
+                "description": "a float is not null",
+                "data": 1.1,
+                "valid": false
+            },
+            {
+                "description": "a string is not null",
+                "data": "foo",
+                "valid": false
+            },
+            {
+                "description": "an object is not null",
+                "data": {},
+                "valid": false
+            },
+            {
+                "description": "an array is not null",
+                "data": [],
+                "valid": false
+            },
+            {
+                "description": "a boolean is not null",
+                "data": true,
+                "valid": false
+            },
+            {
+                "description": "null is null",
+                "data": null,
+                "valid": true
+            }
+        ]
+    },
+    {
+        "description": "multiple types can be specified in an array",
+        "schema": {"type": ["integer", "string"]},
+        "tests": [
+            {
+                "description": "an integer is valid",
+                "data": 1,
+                "valid": true
+            },
+            {
+                "description": "a string is valid",
+                "data": "foo",
+                "valid": true
+            },
+            {
+                "description": "a float is invalid",
+                "data": 1.1,
+                "valid": false
+            },
+            {
+                "description": "an object is invalid",
+                "data": {},
+                "valid": false
+            },
+            {
+                "description": "an array is invalid",
+                "data": [],
+                "valid": false
+            },
+            {
+                "description": "a boolean is invalid",
+                "data": true,
+                "valid": false
+            },
+            {
+                "description": "null is invalid",
+                "data": null,
+                "valid": false
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/tests/uniqueItems.json b/examples/biojson-doc/tests/uniqueItems.json
new file mode 100755 (executable)
index 0000000..c1f4ab9
--- /dev/null
@@ -0,0 +1,79 @@
+[
+    {
+        "description": "uniqueItems validation",
+        "schema": {"uniqueItems": true},
+        "tests": [
+            {
+                "description": "unique array of integers is valid",
+                "data": [1, 2],
+                "valid": true
+            },
+            {
+                "description": "non-unique array of integers is invalid",
+                "data": [1, 1],
+                "valid": false
+            },
+            {
+                "description": "numbers are unique if mathematically unequal",
+                "data": [1.0, 1.00, 1],
+                "valid": false
+            },
+            {
+                "description": "unique array of objects is valid",
+                "data": [{"foo": "bar"}, {"foo": "baz"}],
+                "valid": true
+            },
+            {
+                "description": "non-unique array of objects is invalid",
+                "data": [{"foo": "bar"}, {"foo": "bar"}],
+                "valid": false
+            },
+            {
+                "description": "unique array of nested objects is valid",
+                "data": [
+                    {"foo": {"bar" : {"baz" : true}}},
+                    {"foo": {"bar" : {"baz" : false}}}
+                ],
+                "valid": true
+            },
+            {
+                "description": "non-unique array of nested objects is invalid",
+                "data": [
+                    {"foo": {"bar" : {"baz" : true}}},
+                    {"foo": {"bar" : {"baz" : true}}}
+                ],
+                "valid": false
+            },
+            {
+                "description": "unique array of arrays is valid",
+                "data": [["foo"], ["bar"]],
+                "valid": true
+            },
+            {
+                "description": "non-unique array of arrays is invalid",
+                "data": [["foo"], ["foo"]],
+                "valid": false
+            },
+            {
+                "description": "1 and true are unique",
+                "data": [1, true],
+                "valid": true
+            },
+            {
+                "description": "0 and false are unique",
+                "data": [0, false],
+                "valid": true
+            },
+            {
+                "description": "unique heterogeneous types are valid",
+                "data": [{}, [1], true, null, 1],
+                "valid": true
+            },
+            {
+                "description": "non-unique heterogeneous types are invalid",
+                "data": [{}, [1], true, null, {}, 1],
+                "valid": false
+            }
+        ]
+    }
+]
diff --git a/examples/biojson-doc/widget.js b/examples/biojson-doc/widget.js
new file mode 100755 (executable)
index 0000000..4c5c0a8
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2013 Laurent Bovet <laurent.bovet@windmaster.ch>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var scripts = document.getElementsByTagName('script');
+var script = scripts[ scripts.length - 1 ];
+
+if (script.attributes["data-schema"]) {
+    var docson;
+    if (script.attributes["data-docson"]) {
+        docson = script.attributes["data-docson"].value;
+    } else {
+        docson = script.src.replace("widget.js", "index.html");
+    }
+    document.write("<iframe id='" + script.attributes["data-schema"].value +
+        "' style='padding: 0; border: 0; width:100%; background: transparent' src='" +
+        docson + "#" +
+        script.attributes["data-schema"].value + "'></iframe>");
+    function receiveMessage(event) {
+        console.log("<", event)
+        if (event.data.id && event.data.id == "docson") {
+          var frame = document.getElementById(event.data.url);
+          if(event.data.action == "resized") {
+            frame.height = event.data.height + 18;
+          }
+          if(event.data.action == "ready") {
+            console.log(frame.parentNode)
+            frame.contentWindow.postMessage({ id: "docson", font: window.getComputedStyle(frame.parentNode).fontFamily}, "*");
+          }
+        }
+
+    }
+    window.addEventListener("message", receiveMessage, false);
+} else {
+    alert("<p style='color:red'>Missing data-schema (url to schema)</p>")
+}
diff --git a/examples/biojsonschema.json b/examples/biojsonschema.json
new file mode 100644 (file)
index 0000000..e6670d2
--- /dev/null
@@ -0,0 +1 @@
+{"$schema":"http://json-schema.org/draft-04/schema#","id":"http://jsonschema.net","type":"object","properties":{"seqs":{"id":"http://jsonschema.net/seqs","type":"array","items":{"id":"http://jsonschema.net/seqs/0","type":"object","properties":{"name":{"id":"http://jsonschema.net/seqs/0/name","type":"string","description":"Sequence name"},"start":{"id":"http://jsonschema.net/seqs/0/start","type":"integer","description":"Start residue position"},"svid":{"id":"http://jsonschema.net/seqs/0/svid","type":"string","description":"Serial version id for sequence object"},"end":{"id":"http://jsonschema.net/seqs/0/end","type":"integer","description":"End residue position"},"id":{"id":"http://jsonschema.net/seqs/0/id","type":"string","description":"Sequence unique identifier"},"seq":{"id":"http://jsonschema.net/seqs/0/seq","type":"string","description":"Sequence Residues"},"order":{"id":"http://jsonschema.net/seqs/0/order","type":"integer","description":"Sequence order in an alignment space"}},"required":["name","start","svid","end","id","seq"]},"required":["0"],"description":"Sequences in the Alignemnt","minItems":"1","maxItems":"*"},"appSettings":{"id":"http://jsonschema.net/appSettings","type":"object","properties":{"globalColorScheme":{"id":"http://jsonschema.net/appSettings/globalColorScheme","type":"string","description":"Global colour schem for the alignment"},"webStartUrl":{"id":"http://jsonschema.net/appSettings/webStartUrl","type":"string","description":"Jalview specific setting which points to a url for launching Jalview"},"application":{"id":"http://jsonschema.net/appSettings/application","type":"string","description":"Application which generated the Json"},"showSeqFeatures":{"id":"http://jsonschema.net/appSettings/showSeqFeatures","type":"string","description":"Determines if sequence features are visible or not"},"version":{"id":"http://jsonschema.net/appSettings/version","type":"string","description":"Verion of the application which generated the JSON"},"hiddenCols":{"id":"http://jsonschema.net/appSettings/hiddenCols","type":"string","description":"Delimited lists of hidden colums ranges i.e [2-3,5-5,11-23]"}},"description":"Application specific settings"},"seqGroups":{"id":"http://jsonschema.net/seqGroups","type":"array","items":[{"id":"http://jsonschema.net/seqGroups/0","type":"object","properties":{"displayText":{"id":"http://jsonschema.net/seqGroups/0/displayText","type":"boolean","description":"Determines if the texts of the group is displayed or not"},"startRes":{"id":"http://jsonschema.net/seqGroups/0/startRes","type":"integer","description":"Start residue position for a given group"},"groupName":{"id":"http://jsonschema.net/seqGroups/0/groupName","type":"string","description":"Group name"},"endRes":{"id":"http://jsonschema.net/seqGroups/0/endRes","type":"integer","description":"End residue position for a given group"},"colourText":{"id":"http://jsonschema.net/seqGroups/0/colourText","type":"boolean","description":"Determines if the Residues text for the group is coloured"},"seqsHash":{"id":"http://jsonschema.net/seqGroups/0/seqsHash","type":"array","items":[],"minItems":"0","maxItems":"*","description":"The id's of the sequences which belongs to the group"},"svid":{"id":"http://jsonschema.net/seqGroups/0/svid","type":"string","description":"Serial version id for a given group"},"showNonconserved":{"id":"http://jsonschema.net/seqGroups/0/showNonconserved","type":"boolean","description":"Determines if non conserved regions of a group is shown or not"},"colourScheme":{"id":"http://jsonschema.net/seqGroups/0/colourScheme","type":"string","description":"Colour Scheme for the sequence group"},"displayBoxes":{"id":"http://jsonschema.net/seqGroups/0/displayBoxes","type":"boolean","description":"Determines if the group border should be visible or not"}}}],"description":"Sequence groups in the Alignment","minItems":"0","maxItems":"*"},"alignAnnotation":{"id":"http://jsonschema.net/alignAnnotation","type":"array","items":{"id":"http://jsonschema.net/alignAnnotation/0","type":"object","properties":{"svid":{"id":"http://jsonschema.net/alignAnnotation/0/svid","type":"string","description":"Serial version id for the annotation object"},"annotations":{"id":"http://jsonschema.net/alignAnnotation/0/annotations","type":"array","items":[{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0","type":"object","properties":{"displayCharacter":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0/displayCharacter","type":"string","description":"Display character to denote the given annotation"},"value":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0/value","type":"integer","description":"Value of the annotation"},"secondaryStructure":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0/secondaryStructure","type":"string","description":"Secondary structure symbol for the given annotation"}}},{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1","type":"object","properties":{"displayCharacter":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1/displayCharacter","type":"string"},"value":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1/value","type":"integer"},"secondaryStructure":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1/secondaryStructure","type":"string"}}},{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2","type":"object","properties":{"displayCharacter":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2/displayCharacter","type":"string"},"value":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2/value","type":"integer"},"secondaryStructure":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2/secondaryStructure","type":"string"}}}]},"description":{"id":"http://jsonschema.net/alignAnnotation/0/description","type":"string","description":"Description of the Alignment Annotation"},"label":{"id":"http://jsonschema.net/alignAnnotation/0/label","type":"string","description":"Label for the Annotation"}}},"description":"Alignment Annotations","minItems":"0","maxItems":"*"},"svid":{"id":"http://jsonschema.net/svid","type":"string","description":"Serial version id"},"seqFeatures":{"id":"http://jsonschema.net/seqFeatures","type":"array","items":{"id":"http://jsonschema.net/seqFeatures/0","type":"object","properties":{"fillColor":{"id":"http://jsonschema.net/seqFeatures/0/fillColor","type":"string","description":"Fill colour"},"score":{"id":"http://jsonschema.net/seqFeatures/0/score","type":"integer","description":"Score"},"sequenceRef":{"id":"http://jsonschema.net/seqFeatures/0/sequenceRef","type":"string","description":"Reference to the Sequence in the alignement (More like a foreign key)"},"featureGroup":{"id":"http://jsonschema.net/seqFeatures/0/featureGroup","type":"string","description":"Feature Group"},"svid":{"id":"http://jsonschema.net/seqFeatures/0/svid","type":"string","description":"Serial version id for the SeqFeature object"},"description":{"id":"http://jsonschema.net/seqFeatures/0/description","type":"string","description":"Description of Feature"},"xStart":{"id":"http://jsonschema.net/seqFeatures/0/xStart","type":"integer","description":"Start residue position for the sequence feature"},"xEnd":{"id":"http://jsonschema.net/seqFeatures/0/xEnd","type":"integer","description":"End residue position for the sequence feature"},"type":{"id":"http://jsonschema.net/seqFeatures/0/type","type":"string","description":"The name of the SequenceFeature"}}},"minItems":"0","maxItems":"*","description":"Sequence Features within the alignment"}},"required":["seqs","appSettings","seqGroups","alignAnnotation","svid","seqFeatures"]}
\ No newline at end of file
index 47ea429..92d691b 100644 (file)
@@ -1 +1 @@
-{"seqs":[{"name":"FER_CAPAN/3-34","start":3,"end":34,"id":"FER_CAPAN_1580333149","seq":"SVSATMISTSFMPRKPAVTSL-KPIPNVGE--ALF","order":1},{"name":"FER1_SOLLC/3-34","start":3,"end":34,"id":"FER1_SOLLC_1952300006","seq":"SISGTMISTSFLPRKPAVTSL-KAISNVGE--ALF","order":2},{"name":"Q93XJ9_SOLTU/3-34","start":3,"end":34,"id":"Q93XJ9_SOLTU_1274067508","seq":"SISGTMISTSFLPRKPVVTSL-KAISNVGE--ALF","order":3},{"name":"FER1_PEA/6-37","start":6,"end":37,"id":"FER1_PEA_1823806146","seq":"ALYGTAVSTSFLRTQPMPMSV-TTTKAFSN--GFL","order":4},{"name":"Q7XA98_TRIPR/6-39","start":6,"end":39,"id":"Q7XA98_TRIPR_1024982041","seq":"ALYGTAVSTSFMRRQPVPMSV-ATTTTTKAFPSGF","order":5}],"seqGroups":[{"displayText":true,"startRes":21,"groupName":"JGroup:1883305585","endRes":29,"colourText":false,"seqsHash":["FER1_SOLLC_1952300006","Q93XJ9_SOLTU_1274067508","FER1_PEA_1823806146","Q7XA98_TRIPR_1024982041"],"showNonconserved":false,"colourScheme":"Zappo","displayBoxes":true}],"alignAnnotation":[{"annotations":[{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"}],"description":"New description","label":"Secondary Structure"}],"jalviewSettings":{"globalColorScheme":"foo","jalviewVersion":"Test","webStartUrl":"http://www.jalview.org/services/launchApp","showSeqFeatures":true,"wrapModeEnabled":false},"seqFeatures":[{"fillColor":"#ff0033","score":0,"sequenceRef":"Q93XJ9_SOLTU_1274067508","featureGroup":"Jalview","description":"desciption","xStart":3,"xEnd":13,"type":"feature_x"},{"fillColor":"#ff0033","score":0,"sequenceRef":"FER1_PEA_1823806146","featureGroup":"Jalview","description":"desciption","xStart":3,"xEnd":13,"type":"feature_x"},{"fillColor":"#ff0033","score":0,"sequenceRef":"Q7XA98_TRIPR_1024982041","featureGroup":"Jalview","description":"desciption","xStart":3,"xEnd":13,"type":"feature_x"}]}
\ No newline at end of file
+{"seqs":[{"name":"FER_CAPAN/3-34","start":3,"svid":"1.0","end":34,"id":"1665704504","seq":"SVSATMISTSFMPRKPAVTSL-KPIPNVGE--ALF","order":1},{"name":"FER1_SOLLC/3-34","start":3,"svid":"1.0","end":34,"id":"1003594867","seq":"SISGTMISTSFLPRKPAVTSL-KAISNVGE--ALF","order":2},{"name":"Q93XJ9_SOLTU/3-34","start":3,"svid":"1.0","end":34,"id":"1332961135","seq":"SISGTMISTSFLPRKPVVTSL-KAISNVGE--ALF","order":3},{"name":"FER1_PEA/6-37","start":6,"svid":"1.0","end":37,"id":"1335040546","seq":"ALYGTAVSTSFLRTQPMPMSV-TTTKAFSN--GFL","order":4},{"name":"Q7XA98_TRIPR/6-39","start":6,"svid":"1.0","end":39,"id":"1777084554","seq":"ALYGTAVSTSFMRRQPVPMSV-ATTTTTKAFPSGF","order":5},{"name":"FER_TOCH/3-34","start":3,"svid":"1.0","end":34,"id":"823528539","seq":"FILGTMISKSFLFRKPAVTSL-KAISNVGE--ALF","order":6}],"appSettings":{"globalColorScheme":"zappo","webStartUrl":"www.jalview.org/services/launchApp","application":"Jalview","hiddenSeqs":"823528539","showSeqFeatures":"true","version":"2.9","hiddenCols":"32-33;34-34"},"seqGroups":[{"displayText":true,"startRes":21,"groupName":"JGroup:1883305585","endRes":29,"colourText":false,"seqsHash":["1003594867","1332961135","1335040546","1777084554"],"svid":"1.0","showNonconserved":false,"colourScheme":"Zappo","displayBoxes":true}],"alignAnnotation":[{"svid":"1.0","annotations":[{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"}],"description":"New description","label":"Secondary Structure"}],"svid":"1.0","seqFeatures":[{"fillColor":"#7d1633","score":0,"sequenceRef":"1332961135","featureGroup":"Jalview","svid":"1.0","description":"desciption","xStart":3,"xEnd":13,"type":"feature_x"},{"fillColor":"#7d1633","score":0,"sequenceRef":"1335040546","featureGroup":"Jalview","svid":"1.0","description":"desciption","xStart":3,"xEnd":13,"type":"feature_x"},{"fillColor":"#7d1633","score":0,"sequenceRef":"1777084554","featureGroup":"Jalview","svid":"1.0","description":"desciption","xStart":3,"xEnd":13,"type":"feature_x"}]}
\ No newline at end of file
diff --git a/examples/testdata/test.aln b/examples/testdata/test.aln
new file mode 100644 (file)
index 0000000..08a7ac3
--- /dev/null
@@ -0,0 +1,53 @@
+CLUSTAL
+
+FER_CAPAA/1-97     -----------------------------------------------------------A
+FER_CAPAN/1-144    MA------SVSATMISTSFMPRKPAVTSL-KPIPNVGE--ALFGLKS-A--NGGKVTCMA
+FER1_SOLLC/1-144   MA------SISGTMISTSFLPRKPAVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMA
+Q93XJ9_SOLTU/1-144 MA------SISGTMISTSFLPRKPVVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMA
+FER1_PEA/1-149     MATT---PALYGTAVSTSFLRTQPMPMSV-TTTKAFSN--GFLGLKT-SLKRGDLAVAMA
+Q7XA98_TRIPR/1-152 MATT---PALYGTAVSTSFMRRQPVPMSV-ATTTTTKAFPSGFGLKSVSTKRGDLAVAMA
+FER1_MESCR/1-148   MAAT--TAALSGATMSTAFAPK--TPPMTAALPTNVGR--ALFGLKS-SASR-GRVTAMA
+FER1_SPIOL/1-147   MAAT--TTTMMG--MATTFVPKPQAPPMMAALPSNTGR--SLFGLKT-GSR--GGRMTMA
+FER3_RAPSA/1-96    -----------------------------------------------------------A
+FER1_ARATH/1-148   MAST----ALSSAIVGTSFIRRSPAPISLRSLPSANTQ--SLFGLKS-GTARGGRVTAMA
+FER_BRANA/1-96     -----------------------------------------------------------A
+FER2_ARATH/1-148   MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMA
+Q93Z60_ARATH/1-118 MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMA
+FER1_MAIZE/1-150   MATVLGSPRAPAFFFSSSSLRAAPAPTAV--ALPAAKV--GIMGRSA-SSRR--RLRAQA
+O80429_MAIZE/1-140 MAAT---------ALSMSILR---APPPCFSSPLRLRV--AVAKPLA-APMRRQLLRAQA
+1A70|/1-97         -----------------------------------------------------------A
+
+FER_CAPAA/1-97     SYKVKLITPDGPIEFDCPDDVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDG
+FER_CAPAN/1-144    SYKVKLITPDGPIEFDCPDNVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDG
+FER1_SOLLC/1-144   SYKVKLITPEGPIEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGSVDQSDG
+Q93XJ9_SOLTU/1-144 SYKVKLITPDGPIEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGTVDQSDG
+FER1_PEA/1-149     SYKVKLVTPDGTQEFECPSDVYILDHAEEVGIDLPYSCRAGSCSSCAGKVVGGEVDQSDG
+Q7XA98_TRIPR/1-152 TYKVKLITPEGPQEFDCPDDVYILDHAEEVGIELPYSCRAGSCSSCAGKVVNGNVNQEDG
+FER1_MESCR/1-148   AYKVTLVTPEGKQELECPDDVYILDAAEEAGIDLPYSCRAGSCSSCAGKVTSGSVNQDDG
+FER1_SPIOL/1-147   AYKVTLVTPTGNVEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQ
+FER3_RAPSA/1-96    TYKVKFITPEGEQEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQ
+FER1_ARATH/1-148   TYKVKFITPEGELEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQ
+FER_BRANA/1-96     TYKVKFITPEGEQEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGFVDQSDE
+FER2_ARATH/1-148   TYKVKFITPEGEQEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQ
+Q93Z60_ARATH/1-118 TYKVKFITPEGEQEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQ
+FER1_MAIZE/1-150   TYNVKLITPEGEVELQVPDDVYILDQAEEDGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQ
+O80429_MAIZE/1-140 TYNVKLITPEGEVELQVPDDVYILDFAEEEGIDLPFSCRAGSCSSCAGKVVSGSVDQSDQ
+1A70|/1-97         AYKVTLVTPTGNVEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQ
+
+FER_CAPAA/1-97     NFLDDDQLEEGWVLTCVAYPQSDVTIETHKEAELVG-
+FER_CAPAN/1-144    NFLDDDQLEEGWVLTCVAYPQSDVTIETHKEAELVG-
+FER1_SOLLC/1-144   NFLDEDQEAAGFVLTCVAYPKGDVTIETHKEEELTA-
+Q93XJ9_SOLTU/1-144 KFLDDDQEAAGFVLTCVAYPKCDVTIETHKEEELTA-
+FER1_PEA/1-149     SFLDDEQIEAGFVLTCVAYPTSDVVIETHKEEDLTA-
+Q7XA98_TRIPR/1-152 SFLDDEQIEGGWVLTCVAFPTSDVTIETHKEEELTA-
+FER1_MESCR/1-148   SFLDDDQIKEGWVLTCVAYPTGDVTIETHKEEELTA-
+FER1_SPIOL/1-147   SFLDDDQIDEGWVLTCAAYPVSDVTIETHKEEELTA-
+FER3_RAPSA/1-96    SFLDDDQIAEGFVLTCAAYPTSDVTIETHREEDMV--
+FER1_ARATH/1-148   SFLDDEQIGEGFVLTCAAYPTSDVTIETHKEEDIV--
+FER_BRANA/1-96     SFLDDDQIAEGFVLTCAAYPTSDVTIETHKEEELV--
+FER2_ARATH/1-148   SFLDDEQMSEGYVLTCVAYPTSDVVIETHKEEAIM--
+Q93Z60_ARATH/1-118 SFLDD--------------------------------
+FER1_MAIZE/1-150   SYLDDGQIADGWVLTCHAYPTSDVVIETHKEEELTGA
+O80429_MAIZE/1-140 SFLNDNQVADGWVLTCAAYPTSDVVIETHKEDDLL--
+1A70|/1-97         SFLDDDQIDEGWVLTCAAYPVSDVTIETHKKEELTA
+
diff --git a/examples/testdata/test.amsa b/examples/testdata/test.amsa
new file mode 100644 (file)
index 0000000..be456bf
--- /dev/null
@@ -0,0 +1,72 @@
+>FER_CAPAA Ferredoxin
+-----------------------------------------------------------ASYKVKLITPDGP
+IEFDCPDDVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDV
+TIETHKEAELVG-
+>FER_CAPAN Ferredoxin, chloroplast precursor
+MA------SVSATMISTSFMPRKPAVTSL-KPIPNVGE--ALFGLKS-A--NGGKVTCMASYKVKLITPDGP
+IEFDCPDNVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDV
+TIETHKEAELVG-
+>FER1_SOLLC Ferredoxin-1, chloroplast precursor
+MA------SISGTMISTSFLPRKPAVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPEGP
+IEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGSVDQSDGNFLDEDQEAAGFVLTCVAYPKGDV
+TIETHKEEELTA-
+>Q93XJ9_SOLTU Ferredoxin I precursor
+MA------SISGTMISTSFLPRKPVVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPDGP
+IEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGTVDQSDGKFLDDDQEAAGFVLTCVAYPKCDV
+TIETHKEEELTA-
+>FER1_PEA Ferredoxin-1, chloroplast precursor
+MATT---PALYGTAVSTSFLRTQPMPMSV-TTTKAFSN--GFLGLKT-SLKRGDLAVAMASYKVKLVTPDGT
+QEFECPSDVYILDHAEEVGIDLPYSCRAGSCSSCAGKVVGGEVDQSDGSFLDDEQIEAGFVLTCVAYPTSDV
+VIETHKEEDLTA-
+>Q7XA98_TRIPR Ferredoxin I
+MATT---PALYGTAVSTSFMRRQPVPMSV-ATTTTTKAFPSGFGLKSVSTKRGDLAVAMATYKVKLITPEGP
+QEFDCPDDVYILDHAEEVGIELPYSCRAGSCSSCAGKVVNGNVNQEDGSFLDDEQIEGGWVLTCVAFPTSDV
+TIETHKEEELTA-
+>FER1_MESCR Ferredoxin-1, chloroplast precursor
+MAAT--TAALSGATMSTAFAPK--TPPMTAALPTNVGR--ALFGLKS-SASR-GRVTAMAAYKVTLVTPEGK
+QELECPDDVYILDAAEEAGIDLPYSCRAGSCSSCAGKVTSGSVNQDDGSFLDDDQIKEGWVLTCVAYPTGDV
+TIETHKEEELTA-
+>FER1_SPIOL Ferredoxin-1, chloroplast precursor
+MAAT--TTTMMG--MATTFVPKPQAPPMMAALPSNTGR--SLFGLKT-GSR--GGRMTMAAYKVTLVTPTGN
+VEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLDDDQIDEGWVLTCAAYPVSDV
+TIETHKEEELTA-
+>FER3_RAPSA Ferredoxin, leaf L-A
+-----------------------------------------------------------ATYKVKFITPEGE
+QEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDDQIAEGFVLTCAAYPTSDV
+TIETHREEDMV--
+>FER1_ARATH Ferredoxin-1, chloroplast precursor
+MAST----ALSSAIVGTSFIRRSPAPISLRSLPSANTQ--SLFGLKS-GTARGGRVTAMATYKVKFITPEGE
+LEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDEQIGEGFVLTCAAYPTSDV
+TIETHKEEDIV--
+>FER_BRANA Ferredoxin
+-----------------------------------------------------------ATYKVKFITPEGE
+QEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGFVDQSDESFLDDDQIAEGFVLTCAAYPTSDV
+TIETHKEEELV--
+>FER2_ARATH Ferredoxin-2, chloroplast precursor
+MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGE
+QEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDDEQMSEGYVLTCVAYPTSDV
+VIETHKEEAIM--
+>Q93Z60_ARATH At1g10960/T19D16_12
+MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGE
+QEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDD-------------------
+-------------
+>FER1_MAIZE Ferredoxin-1, chloroplast precursor
+MATVLGSPRAPAFFFSSSSLRAAPAPTAV--ALPAAKV--GIMGRSA-SSRR--RLRAQATYNVKLITPEGE
+VELQVPDDVYILDQAEEDGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSYLDDGQIADGWVLTCHAYPTSDV
+VIETHKEEELTGA
+>O80429_MAIZE Ferredoxin
+MAAT---------ALSMSILR---APPPCFSSPLRLRV--AVAKPLA-APMRRQLLRAQATYNVKLITPEGE
+VELQVPDDVYILDFAEEEGIDLPFSCRAGSCSSCAGKVVSGSVDQSDQSFLNDNQVADGWVLTCAAYPTSDV
+VIETHKEDDLL--
+>1A70|
+-----------------------------------------------------------AAYKVTLVTPTGN
+VEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLDDDQIDEGWVLTCAAYPVSDV
+TIETHKKEELTA
+>#_Secondary Structure New description
+                                                               1    2
+    3          F    F  F 4     5          6 7   F     9
+         
+>#_Iron Sulphur Contacts New description
+                                                                        
+                         F    F  F                             F        
+             
diff --git a/examples/testdata/test.blc b/examples/testdata/test.blc
new file mode 100644 (file)
index 0000000..f419862
--- /dev/null
@@ -0,0 +1,175 @@
+>FER_CAPAA/1-97 Ferredoxin
+>FER_CAPAN/1-144 Ferredoxin, chloroplast precursor
+>FER1_SOLLC/1-144 Ferredoxin-1, chloroplast precursor
+>Q93XJ9_SOLTU/1-144 Ferredoxin I precursor
+>FER1_PEA/1-149 Ferredoxin-1, chloroplast precursor
+>Q7XA98_TRIPR/1-152 Ferredoxin I
+>FER1_MESCR/1-148 Ferredoxin-1, chloroplast precursor
+>FER1_SPIOL/1-147 Ferredoxin-1, chloroplast precursor
+>FER3_RAPSA/1-96 Ferredoxin, leaf L-A
+>FER1_ARATH/1-148 Ferredoxin-1, chloroplast precursor
+>FER_BRANA/1-96 Ferredoxin
+>FER2_ARATH/1-148 Ferredoxin-2, chloroplast precursor
+>Q93Z60_ARATH/1-118 At1g10960/T19D16_12
+>FER1_MAIZE/1-150 Ferredoxin-1, chloroplast precursor
+>O80429_MAIZE/1-140 Ferredoxin
+>1A70|/1-97
+* iteration 1
+-MMMMMMM-M-MMMM-
+-AAAAAAA-A-AAAA-
+----TTAA-S-SSTA-
+----TTTT-T-TTVT-
+-------------L--
+-------------G--
+------TT-----S--
+----PPAT-----P--
+-SSSAAAT-A-AAR--
+-VIILLLM-L-LLA--
+-SSSYYSM-S-SSP--
+-AGGGGGG-S-SSA--
+-TTTTTA--A-AAF--
+-MMMAAT--I-IIFA-
+-IIIVVMM-V-VVFL-
+-SSSSSSA-G-SSSS-
+-TTTTTTT-T-TTSM-
+-SSSSSAT-S-SSSS-
+-FFFFFFF-F-FFSI-
+-MLLLMAV-I-LLLL-
+-PPPRRPP-R-RRRR-
+-RRRTRKK-R-RRA--
+-KKKQQ-P-S-QQA--
+-PPPPP-Q-P-QQP--
+-AAVMVTA-A-TTAA-
+-VVVPPPP-P-PPPP-
+-TTTMMPP-I-IITP-
+-SSSSSMM-S-SSAP-
+-LLLVVTM-L-LLVC-
+------AA-R-RR-F-
+-KKKTAAA-S-SS-S-
+-PAATTLL-L-LLAS-
+-IIITTPP-P-PPLP-
+-PSSKTTS-S-FFPL-
+-NNNATNN-A-AAAR-
+-VVVFTVT-N-NNAL-
+-GGGSKGG-T-TTKR-
+-EEENARR-Q-QQVV-
+-----F----------
+-----P----------
+-AAAGSAS-S-SSGA-
+-LLLFGLL-L-LLIV-
+-FFFLFFF-F-FFMA-
+-GGGGGGG-G-GGGK-
+-LLLLLLL-L-LLRP-
+-KKKKKKK-K-KKSL-
+-SSSTSST-S-SSAA-
+-----V----------
+-AGGSSSG-G-SSSA-
+----LTAS-T-TTSP-
+----KKSR-A-AARM-
+-NRRRRR--R-RRRR-
+-GNNGG---G-GG-R-
+-GGGDDGG-G-GG-Q-
+-KRRLLRG-R-RRRL-
+-VIIAAVR-V-VVLL-
+-TTTVVTM-T-TTRR-
+-CCCAAAT-A-AAAA-
+-MMMMMMM-M-MMQQ-
+AAAAAAAAAAAAAAAA
+SSSSSTAATTTTTTTA
+YYYYYYYYYYYYYYYY
+KKKKKKKKKKKKKNNK
+VVVVVVVVVVVVVVVV
+KKKKKKTTKKKKKKKT
+LLLLLLLLFFFFFLLL
+IIIIVIVVIIIIIIIV
+TTTTTTTTTTTTTTTT
+PPPPPPPPPPPPPPPP
+DDEDDEETEEEEEEET
+GGGGGGGGGGGGGGGG
+PPPPTPKNEEEEEEEN
+IIIIQQQVQLQQQVVV
+EEEEEEEEEEEEEEEE
+FFFFFFLFVVVVVLLF
+DDEEEDEQEEEEEQQQ
+CCCCCCCCCCCCCVVC
+PPPPPPPPDDDEEPPP
+DDDDSDDDDDDEEDDD
+DNDDDDDDDDDDDDDD
+VVVVVVVVVVVVVVVV
+YYYYYYYYYYYYYYYY
+IIIIIIIIVVVVVIII
+LLLLLLLLLLLLLLLL
+DDDDDDDDDDDDDDDD
+QQQQHHAAAAAAAQFA
+AAAAAAAAAAAAAAAA
+EEEEEEEEEEEEEEEE
+EEEEEEEEEEEEEEEE
+AAEEVVAEAAAAADEE
+GGGGGGGGGGGGGGGG
+HHHHIIIIIIILLIII
+DDDDDEDDDDDDDDDD
+LLLLLLLLLLLLLLLL
+PPPPPPPPPPPPPPPP
+YYYYYYYYYYYYYYFY
+SSSSSSSSSSSSSSSS
+CCCCCCCCCCCCCCCC
+RRRRRRRRRRRRRRRR
+AAAAAAAAAAAAAAAA
+GGGGGGGGGGGGGGGG
+SSSSSSSSSSSSSSSS
+CCCCCCCCCCCCCCCC
+SSSSSSSSSSSSSSSS
+SSSSSSSSSSSSSSSS
+CCCCCCCCCCCCCCCC
+AAAAAAAAAAAAAAAA
+GGGGGGGGGGGGGGGG
+KKKKKKKKKKKKKKKK
+IIVVVVVLVVVVVVVL
+AATTVVTKVVVVVVVK
+GGAAGNSTSSSSSSST
+GGGGGGGGGGGGGGGG
+AASTENSSSSFSSSSS
+VVVVVVVLVVVIIVVL
+DDDDDNNNDDDDDDDN
+QQQQQQQQQQQQQQQQ
+TTSSSEDDSSSSSSSD
+DDDDDDDDDDDDDDDD
+GGGGGGGQQQEQQQQQ
+NNNKSSSSSSSSSSSS
+FFFFFFFFFFFFFYFF
+LLLLLLLLLLLLLLLL
+DDDDDDDDDDDDDDND
+DDEDDDDDDDDDDDDD
+DDDDEEDDDEDE-GND
+QQQQQQQQQQQQ-QQQ
+LLEEIIIIIIIM-IVI
+EEAAEEKDAGAS-AAD
+EEAAAGEEEEEE-DDE
+GGGGGGGGGGGG-GGG
+WWFFFWWWFFFY-WWW
+VVVVVVVVVVVV-VVV
+LLLLLLLLLLLL-LLL
+TTTTTTTTTTTT-TTT
+CCCCCCCCCCCC-CCC
+VVVVVVVAAAAV-HAA
+AAAAAAAAAAAA-AAA
+YYYYYFYYYYYY-YYY
+PPPPPPPPPPPP-PPP
+QQKKTTTVTTTT-TTV
+SSGCSSGSSSSS-SSS
+DDDDDDDDDDDD-DDD
+VVVVVVVVVVVV-VVV
+TTTTVTTTTTTV-VVT
+IIIIIIIIIIII-III
+EEEEEEEEEEEE-EEE
+TTTTTTTTTTTT-TTT
+HHHHHHHHHHHH-HHH
+KKKKKKKKRKKK-KKK
+EEEEEEEEEEEE-EEK
+AAEEEEEEEEEE-EDE
+EEEEDEEEDDEA-EDE
+LLLLLLLLMILI-LLL
+VVTTTTTTVVVM-TLT
+GGAAAAAA-----G-A
+-------------A--
+*
diff --git a/examples/testdata/test.html b/examples/testdata/test.html
new file mode 100644 (file)
index 0000000..229596c
--- /dev/null
@@ -0,0 +1,29 @@
+<html>
+<input type="hidden" name="seqData" id="seqData" value='{"seqs":[{"name":"FER_CAPAA/1-97","start":1,"svid":"1.0","end":97,"id":"4362914","seq":"-----------------------------------------------------------ASYKVKLITPDGPIEFDCPDDVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDVTIETHKEAELVG-","order":1},{"name":"FER_CAPAN/1-144","start":1,"svid":"1.0","end":144,"id":"87519910","seq":"MA------SVSATMISTSFMPRKPAVTSL-KPIPNVGE--ALFGLKS-A--NGGKVTCMASYKVKLITPDGPIEFDCPDNVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDVTIETHKEAELVG-","order":2},{"name":"FER1_SOLLC/1-144","start":1,"svid":"1.0","end":144,"id":"706449716","seq":"MA------SISGTMISTSFLPRKPAVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPEGPIEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGSVDQSDGNFLDEDQEAAGFVLTCVAYPKGDVTIETHKEEELTA-","order":3},{"name":"Q93XJ9_SOLTU/1-144","start":1,"svid":"1.0","end":144,"id":"1704607829","seq":"MA------SISGTMISTSFLPRKPVVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPDGPIEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGTVDQSDGKFLDDDQEAAGFVLTCVAYPKCDVTIETHKEEELTA-","order":4},{"name":"FER1_PEA/1-149","start":1,"svid":"1.0","end":149,"id":"1901660614","seq":"MATT---PALYGTAVSTSFLRTQPMPMSV-TTTKAFSN--GFLGLKT-SLKRGDLAVAMASYKVKLVTPDGTQEFECPSDVYILDHAEEVGIDLPYSCRAGSCSSCAGKVVGGEVDQSDGSFLDDEQIEAGFVLTCVAYPTSDVVIETHKEEDLTA-","order":5},{"name":"Q7XA98_TRIPR/1-152","start":1,"svid":"1.0","end":152,"id":"1329985289","seq":"MATT---PALYGTAVSTSFMRRQPVPMSV-ATTTTTKAFPSGFGLKSVSTKRGDLAVAMATYKVKLITPEGPQEFDCPDDVYILDHAEEVGIELPYSCRAGSCSSCAGKVVNGNVNQEDGSFLDDEQIEGGWVLTCVAFPTSDVTIETHKEEELTA-","order":6},{"name":"FER1_MESCR/1-148","start":1,"svid":"1.0","end":148,"id":"966876644","seq":"MAAT--TAALSGATMSTAFAPK--TPPMTAALPTNVGR--ALFGLKS-SASR-GRVTAMAAYKVTLVTPEGKQELECPDDVYILDAAEEAGIDLPYSCRAGSCSSCAGKVTSGSVNQDDGSFLDDDQIKEGWVLTCVAYPTGDVTIETHKEEELTA-","order":7},{"name":"FER1_SPIOL/1-147","start":1,"svid":"1.0","end":147,"id":"235809389","seq":"MAAT--TTTMMG--MATTFVPKPQAPPMMAALPSNTGR--SLFGLKT-GSR--GGRMTMAAYKVTLVTPTGNVEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLDDDQIDEGWVLTCAAYPVSDVTIETHKEEELTA-","order":8},{"name":"FER3_RAPSA/1-96","start":1,"svid":"1.0","end":96,"id":"924845395","seq":"-----------------------------------------------------------ATYKVKFITPEGEQEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDDQIAEGFVLTCAAYPTSDVTIETHREEDMV--","order":9},{"name":"FER1_ARATH/1-148","start":1,"svid":"1.0","end":148,"id":"1472020737","seq":"MAST----ALSSAIVGTSFIRRSPAPISLRSLPSANTQ--SLFGLKS-GTARGGRVTAMATYKVKFITPEGELEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDEQIGEGFVLTCAAYPTSDVTIETHKEEDIV--","order":10},{"name":"FER_BRANA/1-96","start":1,"svid":"1.0","end":96,"id":"1690335343","seq":"-----------------------------------------------------------ATYKVKFITPEGEQEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGFVDQSDESFLDDDQIAEGFVLTCAAYPTSDVTIETHKEEELV--","order":11},{"name":"FER2_ARATH/1-148","start":1,"svid":"1.0","end":148,"id":"467823576","seq":"MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGEQEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDDEQMSEGYVLTCVAYPTSDVVIETHKEEAIM--","order":12},{"name":"Q93Z60_ARATH/1-118","start":1,"svid":"1.0","end":118,"id":"752877418","seq":"MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGEQEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDD--------------------------------","order":13},{"name":"FER1_MAIZE/1-150","start":1,"svid":"1.0","end":150,"id":"299304633","seq":"MATVLGSPRAPAFFFSSSSLRAAPAPTAV--ALPAAKV--GIMGRSA-SSRR--RLRAQATYNVKLITPEGEVELQVPDDVYILDQAEEDGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSYLDDGQIADGWVLTCHAYPTSDVVIETHKEEELTGA","order":14},{"name":"O80429_MAIZE/1-140","start":1,"svid":"1.0","end":140,"id":"1991448556","seq":"MAAT---------ALSMSILR---APPPCFSSPLRLRV--AVAKPLA-APMRRQLLRAQATYNVKLITPEGEVELQVPDDVYILDFAEEEGIDLPFSCRAGSCSSCAGKVVSGSVDQSDQSFLNDNQVADGWVLTCAAYPTSDVVIETHKEDDLL--","order":15},{"name":"1A70|/1-97","start":1,"svid":"1.0","end":97,"id":"2114395721","seq":"-----------------------------------------------------------AAYKVTLVTPTGNVEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLDDDQIDEGWVLTCAAYPVSDVTIETHKKEELTA","order":16}],"appSettings":{"globalColorScheme":"foo","webStartUrl":"www.jalview.org/services/launchApp","application":"Jalview","hiddenSeqs":"2114395721","showSeqFeatures":"false","version":"2.9"},"seqGroups":[{"displayText":true,"startRes":59,"groupName":"ferredoxin","endRes":124,"colourText":false,"seqsHash":["1472020737","299304633","966876644","1901660614","706449716","235809389","467823576","924845395","1690335343","4362914","87519910","752877418","1329985289","1991448556","1704607829"],"svid":"1.0","showNonconserved":false,"colourScheme":"Zappo","displayBoxes":true}],"alignAnnotation":[{"svid":"1.0","annotations":[{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"1","value":1,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"2","value":2,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"3","value":3,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"description":"Fe","displayCharacter":"Fe","value":0,"secondaryStructure":" "},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"description":"Fe","displayCharacter":"Fe","value":0,"secondaryStructure":" "},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"description":"Fe","displayCharacter":"Fe","value":0,"secondaryStructure":" "},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"4","value":4,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"5","value":5,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"6","value":6,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"7","value":7,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"description":"Fe","displayCharacter":"Fe","value":0,"secondaryStructure":" "},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"9","value":9,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"}],"description":"New description","label":"Secondary Structure"},{"svid":"1.0","annotations":[{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"description":"Fe","displayCharacter":"Fe","value":0,"secondaryStructure":" "},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"description":"Fe","displayCharacter":"Fe","value":0,"secondaryStructure":" "},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"description":"Fe","displayCharacter":"Fe","value":0,"secondaryStructure":" "},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"description":"Fe","displayCharacter":"Fe","value":0,"secondaryStructure":" "},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"}],"description":"New description","label":"Iron Sulphur Contacts"}],"svid":"1.0","seqFeatures":[{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:   1  1a70 ","xStart":59,"xEnd":60,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:   2  1a70 ","xStart":60,"xEnd":61,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR:   3  1a70 ","xStart":61,"xEnd":62,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS:   4  1a70 ","xStart":62,"xEnd":63,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:   5  1a70 ","xStart":63,"xEnd":64,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:   6  1a70 ","xStart":64,"xEnd":65,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:   7  1a70 ","xStart":65,"xEnd":66,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:   8  1a70 ","xStart":66,"xEnd":67,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:   9  1a70 ","xStart":67,"xEnd":68,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO:  10  1a70 ","xStart":68,"xEnd":69,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:  11  1a70 ","xStart":69,"xEnd":70,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:  12  1a70 ","xStart":70,"xEnd":71,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASN:  13  1a70 ","xStart":71,"xEnd":72,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:  14  1a70 ","xStart":72,"xEnd":73,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:  15  1a70 ","xStart":73,"xEnd":74,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PHE:  16  1a70 ","xStart":74,"xEnd":75,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN:  17  1a70 ","xStart":75,"xEnd":76,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:  18  1a70 ","xStart":76,"xEnd":77,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO:  19  1a70 ","xStart":77,"xEnd":78,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:  20  1a70 ","xStart":78,"xEnd":79,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:  21  1a70 ","xStart":79,"xEnd":80,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:  22  1a70 ","xStart":80,"xEnd":81,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR:  23  1a70 ","xStart":81,"xEnd":82,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE:  24  1a70 ","xStart":82,"xEnd":83,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:  25  1a70 ","xStart":83,"xEnd":84,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:  26  1a70 ","xStart":84,"xEnd":85,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:  27  1a70 ","xStart":85,"xEnd":86,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:  28  1a70 ","xStart":86,"xEnd":87,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:  29  1a70 ","xStart":87,"xEnd":88,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:  30  1a70 ","xStart":88,"xEnd":89,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:  31  1a70 ","xStart":89,"xEnd":90,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:  32  1a70 ","xStart":90,"xEnd":91,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE:  33  1a70 ","xStart":91,"xEnd":92,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:  34  1a70 ","xStart":92,"xEnd":93,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:  35  1a70 ","xStart":93,"xEnd":94,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO:  36  1a70 ","xStart":94,"xEnd":95,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR:  37  1a70 ","xStart":95,"xEnd":96,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:  38  1a70 ","xStart":96,"xEnd":97,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:  39  1a70 ","xStart":97,"xEnd":98,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ARG:  40  1a70 ","xStart":98,"xEnd":99,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:  41  1a70 ","xStart":99,"xEnd":100,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:  42  1a70 ","xStart":100,"xEnd":101,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:  43  1a70 ","xStart":101,"xEnd":102,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:  44  1a70 ","xStart":102,"xEnd":103,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:  45  1a70 ","xStart":103,"xEnd":104,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:  46  1a70 ","xStart":104,"xEnd":105,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:  47  1a70 ","xStart":105,"xEnd":106,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:  48  1a70 ","xStart":106,"xEnd":107,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:  49  1a70 ","xStart":107,"xEnd":108,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS:  50  1a70 ","xStart":108,"xEnd":109,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:  51  1a70 ","xStart":109,"xEnd":110,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS:  52  1a70 ","xStart":110,"xEnd":111,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:  53  1a70 ","xStart":111,"xEnd":112,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:  54  1a70 ","xStart":112,"xEnd":113,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:  55  1a70 ","xStart":113,"xEnd":114,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:  56  1a70 ","xStart":114,"xEnd":115,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASN:  57  1a70 ","xStart":115,"xEnd":116,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN:  58  1a70 ","xStart":116,"xEnd":117,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:  59  1a70 ","xStart":117,"xEnd":118,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:  60  1a70 ","xStart":118,"xEnd":119,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN:  61  1a70 ","xStart":119,"xEnd":120,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:  62  1a70 ","xStart":120,"xEnd":121,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PHE:  63  1a70 ","xStart":121,"xEnd":122,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:  64  1a70 ","xStart":122,"xEnd":123,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:  65  1a70 ","xStart":123,"xEnd":124,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:  66  1a70 ","xStart":124,"xEnd":125,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:  67  1a70 ","xStart":125,"xEnd":126,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN:  68  1a70 ","xStart":126,"xEnd":127,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE:  69  1a70 ","xStart":127,"xEnd":128,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:  70  1a70 ","xStart":128,"xEnd":129,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:  71  1a70 ","xStart":129,"xEnd":130,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:  72  1a70 ","xStart":130,"xEnd":131,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TRP:  73  1a70 ","xStart":131,"xEnd":132,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:  74  1a70 ","xStart":132,"xEnd":133,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:  75  1a70 ","xStart":133,"xEnd":134,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:  76  1a70 ","xStart":134,"xEnd":135,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:  77  1a70 ","xStart":135,"xEnd":136,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:  78  1a70 ","xStart":136,"xEnd":137,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:  79  1a70 ","xStart":137,"xEnd":138,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR:  80  1a70 ","xStart":138,"xEnd":139,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO:  81  1a70 ","xStart":139,"xEnd":140,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:  82  1a70 ","xStart":140,"xEnd":141,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:  83  1a70 ","xStart":141,"xEnd":142,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:  84  1a70 ","xStart":142,"xEnd":143,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:  85  1a70 ","xStart":143,"xEnd":144,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:  86  1a70 ","xStart":144,"xEnd":145,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE:  87  1a70 ","xStart":145,"xEnd":146,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:  88  1a70 ","xStart":146,"xEnd":147,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:  89  1a70 ","xStart":147,"xEnd":148,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"HIS:  90  1a70 ","xStart":148,"xEnd":149,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS:  91  1a70 ","xStart":149,"xEnd":150,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:  93  1a70 ","xStart":151,"xEnd":152,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:  94  1a70 ","xStart":152,"xEnd":153,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:  95  1a70 ","xStart":153,"xEnd":154,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:  96  1a70 ","xStart":154,"xEnd":155,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:  97  1a70 ","xStart":155,"xEnd":156,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:1 1a70 ","xStart":59,"xEnd":60,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:2 1a70 ","xStart":60,"xEnd":61,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR:3 1a70 ","xStart":61,"xEnd":62,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS:4 1a70 ","xStart":62,"xEnd":63,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:5 1a70 ","xStart":63,"xEnd":64,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:6 1a70 ","xStart":64,"xEnd":65,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:7 1a70 ","xStart":65,"xEnd":66,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:8 1a70 ","xStart":66,"xEnd":67,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:9 1a70 ","xStart":67,"xEnd":68,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO:10 1a70 ","xStart":68,"xEnd":69,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:11 1a70 ","xStart":69,"xEnd":70,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:12 1a70 ","xStart":70,"xEnd":71,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASN:13 1a70 ","xStart":71,"xEnd":72,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:14 1a70 ","xStart":72,"xEnd":73,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:15 1a70 ","xStart":73,"xEnd":74,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PHE:16 1a70 ","xStart":74,"xEnd":75,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN:17 1a70 ","xStart":75,"xEnd":76,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:18 1a70 ","xStart":76,"xEnd":77,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO:19 1a70 ","xStart":77,"xEnd":78,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:20 1a70 ","xStart":78,"xEnd":79,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:21 1a70 ","xStart":79,"xEnd":80,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:22 1a70 ","xStart":80,"xEnd":81,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR:23 1a70 ","xStart":81,"xEnd":82,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE:24 1a70 ","xStart":82,"xEnd":83,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:25 1a70 ","xStart":83,"xEnd":84,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:26 1a70 ","xStart":84,"xEnd":85,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:27 1a70 ","xStart":85,"xEnd":86,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:28 1a70 ","xStart":86,"xEnd":87,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:29 1a70 ","xStart":87,"xEnd":88,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:30 1a70 ","xStart":88,"xEnd":89,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:31 1a70 ","xStart":89,"xEnd":90,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:32 1a70 ","xStart":90,"xEnd":91,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE:33 1a70 ","xStart":91,"xEnd":92,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:34 1a70 ","xStart":92,"xEnd":93,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:35 1a70 ","xStart":93,"xEnd":94,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO:36 1a70 ","xStart":94,"xEnd":95,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR:37 1a70 ","xStart":95,"xEnd":96,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:38 1a70 ","xStart":96,"xEnd":97,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:39 1a70 ","xStart":97,"xEnd":98,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ARG:40 1a70 ","xStart":98,"xEnd":99,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:41 1a70 ","xStart":99,"xEnd":100,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:42 1a70 ","xStart":100,"xEnd":101,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:43 1a70 ","xStart":101,"xEnd":102,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:44 1a70 ","xStart":102,"xEnd":103,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:45 1a70 ","xStart":103,"xEnd":104,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:46 1a70 ","xStart":104,"xEnd":105,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:47 1a70 ","xStart":105,"xEnd":106,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:48 1a70 ","xStart":106,"xEnd":107,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:49 1a70 ","xStart":107,"xEnd":108,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS:50 1a70 ","xStart":108,"xEnd":109,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:51 1a70 ","xStart":109,"xEnd":110,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS:52 1a70 ","xStart":110,"xEnd":111,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:53 1a70 ","xStart":111,"xEnd":112,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:54 1a70 ","xStart":112,"xEnd":113,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:55 1a70 ","xStart":113,"xEnd":114,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:56 1a70 ","xStart":114,"xEnd":115,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASN:57 1a70 ","xStart":115,"xEnd":116,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN:58 1a70 ","xStart":116,"xEnd":117,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:59 1a70 ","xStart":117,"xEnd":118,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:60 1a70 ","xStart":118,"xEnd":119,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN:61 1a70 ","xStart":119,"xEnd":120,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:62 1a70 ","xStart":120,"xEnd":121,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PHE:63 1a70 ","xStart":121,"xEnd":122,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:64 1a70 ","xStart":122,"xEnd":123,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:65 1a70 ","xStart":123,"xEnd":124,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:66 1a70 ","xStart":124,"xEnd":125,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:67 1a70 ","xStart":125,"xEnd":126,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN:68 1a70 ","xStart":126,"xEnd":127,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE:69 1a70 ","xStart":127,"xEnd":128,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:70 1a70 ","xStart":128,"xEnd":129,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:71 1a70 ","xStart":129,"xEnd":130,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:72 1a70 ","xStart":130,"xEnd":131,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TRP:73 1a70 ","xStart":131,"xEnd":132,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:74 1a70 ","xStart":132,"xEnd":133,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:75 1a70 ","xStart":133,"xEnd":134,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:76 1a70 ","xStart":134,"xEnd":135,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:77 1a70 ","xStart":135,"xEnd":136,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:78 1a70 ","xStart":136,"xEnd":137,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:79 1a70 ","xStart":137,"xEnd":138,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR:80 1a70 ","xStart":138,"xEnd":139,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO:81 1a70 ","xStart":139,"xEnd":140,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:82 1a70 ","xStart":140,"xEnd":141,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:83 1a70 ","xStart":141,"xEnd":142,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:84 1a70 ","xStart":142,"xEnd":143,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:85 1a70 ","xStart":143,"xEnd":144,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:86 1a70 ","xStart":144,"xEnd":145,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE:87 1a70 ","xStart":145,"xEnd":146,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:88 1a70 ","xStart":146,"xEnd":147,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:89 1a70 ","xStart":147,"xEnd":148,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"HIS:90 1a70 ","xStart":148,"xEnd":149,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS:91 1a70 ","xStart":149,"xEnd":150,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:93 1a70 ","xStart":151,"xEnd":152,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:94 1a70 ","xStart":152,"xEnd":153,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:95 1a70 ","xStart":153,"xEnd":154,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:96 1a70 ","xStart":154,"xEnd":155,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:97 1a70 ","xStart":155,"xEnd":156,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ALA:   1  1a70 ","xStart":59,"xEnd":60,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ALA:   2  1a70 ","xStart":60,"xEnd":61,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"TYR:   3  1a70 ","xStart":61,"xEnd":62,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LYS:   4  1a70 ","xStart":62,"xEnd":63,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"VAL:   5  1a70 ","xStart":63,"xEnd":64,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"THR:   6  1a70 ","xStart":64,"xEnd":65,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LEU:   7  1a70 ","xStart":65,"xEnd":66,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"VAL:   8  1a70 ","xStart":66,"xEnd":67,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"THR:   9  1a70 ","xStart":67,"xEnd":68,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"PRO:  10  1a70 ","xStart":68,"xEnd":69,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"THR:  11  1a70 ","xStart":69,"xEnd":70,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLY:  12  1a70 ","xStart":70,"xEnd":71,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASN:  13  1a70 ","xStart":71,"xEnd":72,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"VAL:  14  1a70 ","xStart":72,"xEnd":73,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLU:  15  1a70 ","xStart":73,"xEnd":74,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"PHE:  16  1a70 ","xStart":74,"xEnd":75,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLN:  17  1a70 ","xStart":75,"xEnd":76,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"CYS:  18  1a70 ","xStart":76,"xEnd":77,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"PRO:  19  1a70 ","xStart":77,"xEnd":78,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASP:  20  1a70 ","xStart":78,"xEnd":79,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASP:  21  1a70 ","xStart":79,"xEnd":80,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"VAL:  22  1a70 ","xStart":80,"xEnd":81,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"TYR:  23  1a70 ","xStart":81,"xEnd":82,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ILE:  24  1a70 ","xStart":82,"xEnd":83,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LEU:  25  1a70 ","xStart":83,"xEnd":84,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASP:  26  1a70 ","xStart":84,"xEnd":85,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ALA:  27  1a70 ","xStart":85,"xEnd":86,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ALA:  28  1a70 ","xStart":86,"xEnd":87,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLU:  29  1a70 ","xStart":87,"xEnd":88,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLU:  30  1a70 ","xStart":88,"xEnd":89,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLU:  31  1a70 ","xStart":89,"xEnd":90,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLY:  32  1a70 ","xStart":90,"xEnd":91,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ILE:  33  1a70 ","xStart":91,"xEnd":92,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASP:  34  1a70 ","xStart":92,"xEnd":93,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LEU:  35  1a70 ","xStart":93,"xEnd":94,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"PRO:  36  1a70 ","xStart":94,"xEnd":95,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"TYR:  37  1a70 ","xStart":95,"xEnd":96,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"SER:  38  1a70 ","xStart":96,"xEnd":97,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"CYS:  39  1a70 ","xStart":97,"xEnd":98,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ARG:  40  1a70 ","xStart":98,"xEnd":99,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ALA:  41  1a70 ","xStart":99,"xEnd":100,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLY:  42  1a70 ","xStart":100,"xEnd":101,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"SER:  43  1a70 ","xStart":101,"xEnd":102,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"CYS:  44  1a70 ","xStart":102,"xEnd":103,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"SER:  45  1a70 ","xStart":103,"xEnd":104,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"SER:  46  1a70 ","xStart":104,"xEnd":105,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"CYS:  47  1a70 ","xStart":105,"xEnd":106,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ALA:  48  1a70 ","xStart":106,"xEnd":107,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLY:  49  1a70 ","xStart":107,"xEnd":108,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LYS:  50  1a70 ","xStart":108,"xEnd":109,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LEU:  51  1a70 ","xStart":109,"xEnd":110,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LYS:  52  1a70 ","xStart":110,"xEnd":111,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"THR:  53  1a70 ","xStart":111,"xEnd":112,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLY:  54  1a70 ","xStart":112,"xEnd":113,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"SER:  55  1a70 ","xStart":113,"xEnd":114,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LEU:  56  1a70 ","xStart":114,"xEnd":115,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASN:  57  1a70 ","xStart":115,"xEnd":116,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLN:  58  1a70 ","xStart":116,"xEnd":117,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASP:  59  1a70 ","xStart":117,"xEnd":118,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASP:  60  1a70 ","xStart":118,"xEnd":119,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLN:  61  1a70 ","xStart":119,"xEnd":120,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"SER:  62  1a70 ","xStart":120,"xEnd":121,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"PHE:  63  1a70 ","xStart":121,"xEnd":122,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LEU:  64  1a70 ","xStart":122,"xEnd":123,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASP:  65  1a70 ","xStart":123,"xEnd":124,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASP:  66  1a70 ","xStart":124,"xEnd":125,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASP:  67  1a70 ","xStart":125,"xEnd":126,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLN:  68  1a70 ","xStart":126,"xEnd":127,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ILE:  69  1a70 ","xStart":127,"xEnd":128,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASP:  70  1a70 ","xStart":128,"xEnd":129,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLU:  71  1a70 ","xStart":129,"xEnd":130,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLY:  72  1a70 ","xStart":130,"xEnd":131,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"TRP:  73  1a70 ","xStart":131,"xEnd":132,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"VAL:  74  1a70 ","xStart":132,"xEnd":133,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LEU:  75  1a70 ","xStart":133,"xEnd":134,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"THR:  76  1a70 ","xStart":134,"xEnd":135,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"CYS:  77  1a70 ","xStart":135,"xEnd":136,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ALA:  78  1a70 ","xStart":136,"xEnd":137,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ALA:  79  1a70 ","xStart":137,"xEnd":138,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"TYR:  80  1a70 ","xStart":138,"xEnd":139,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"PRO:  81  1a70 ","xStart":139,"xEnd":140,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"VAL:  82  1a70 ","xStart":140,"xEnd":141,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"SER:  83  1a70 ","xStart":141,"xEnd":142,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASP:  84  1a70 ","xStart":142,"xEnd":143,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"VAL:  85  1a70 ","xStart":143,"xEnd":144,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"THR:  86  1a70 ","xStart":144,"xEnd":145,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ILE:  87  1a70 ","xStart":145,"xEnd":146,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLU:  88  1a70 ","xStart":146,"xEnd":147,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"THR:  89  1a70 ","xStart":147,"xEnd":148,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"HIS:  90  1a70 ","xStart":148,"xEnd":149,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LYS:  91  1a70 ","xStart":149,"xEnd":150,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LYS:  92  1a70 ","xStart":150,"xEnd":151,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLU:  93  1a70 ","xStart":151,"xEnd":152,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLU:  94  1a70 ","xStart":152,"xEnd":153,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LEU:  95  1a70 ","xStart":153,"xEnd":154,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"THR:  96  1a70 ","xStart":154,"xEnd":155,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ALA:  97  1a70 ","xStart":155,"xEnd":156,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:1 1a70 ","xStart":59,"xEnd":60,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:2 1a70 ","xStart":60,"xEnd":61,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR:3 1a70 ","xStart":61,"xEnd":62,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS:4 1a70 ","xStart":62,"xEnd":63,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:5 1a70 ","xStart":63,"xEnd":64,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:6 1a70 ","xStart":64,"xEnd":65,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:7 1a70 ","xStart":65,"xEnd":66,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:8 1a70 ","xStart":66,"xEnd":67,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:9 1a70 ","xStart":67,"xEnd":68,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO:10 1a70 ","xStart":68,"xEnd":69,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:11 1a70 ","xStart":69,"xEnd":70,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:12 1a70 ","xStart":70,"xEnd":71,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASN:13 1a70 ","xStart":71,"xEnd":72,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:14 1a70 ","xStart":72,"xEnd":73,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:15 1a70 ","xStart":73,"xEnd":74,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PHE:16 1a70 ","xStart":74,"xEnd":75,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN:17 1a70 ","xStart":75,"xEnd":76,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:18 1a70 ","xStart":76,"xEnd":77,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO:19 1a70 ","xStart":77,"xEnd":78,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:20 1a70 ","xStart":78,"xEnd":79,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:21 1a70 ","xStart":79,"xEnd":80,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:22 1a70 ","xStart":80,"xEnd":81,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR:23 1a70 ","xStart":81,"xEnd":82,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE:24 1a70 ","xStart":82,"xEnd":83,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:25 1a70 ","xStart":83,"xEnd":84,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:26 1a70 ","xStart":84,"xEnd":85,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:27 1a70 ","xStart":85,"xEnd":86,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:28 1a70 ","xStart":86,"xEnd":87,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:29 1a70 ","xStart":87,"xEnd":88,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:30 1a70 ","xStart":88,"xEnd":89,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:31 1a70 ","xStart":89,"xEnd":90,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:32 1a70 ","xStart":90,"xEnd":91,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE:33 1a70 ","xStart":91,"xEnd":92,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:34 1a70 ","xStart":92,"xEnd":93,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:35 1a70 ","xStart":93,"xEnd":94,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO:36 1a70 ","xStart":94,"xEnd":95,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR:37 1a70 ","xStart":95,"xEnd":96,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:38 1a70 ","xStart":96,"xEnd":97,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:39 1a70 ","xStart":97,"xEnd":98,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ARG:40 1a70 ","xStart":98,"xEnd":99,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:41 1a70 ","xStart":99,"xEnd":100,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:42 1a70 ","xStart":100,"xEnd":101,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:43 1a70 ","xStart":101,"xEnd":102,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:44 1a70 ","xStart":102,"xEnd":103,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:45 1a70 ","xStart":103,"xEnd":104,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:46 1a70 ","xStart":104,"xEnd":105,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:47 1a70 ","xStart":105,"xEnd":106,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:48 1a70 ","xStart":106,"xEnd":107,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:49 1a70 ","xStart":107,"xEnd":108,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS:50 1a70 ","xStart":108,"xEnd":109,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:51 1a70 ","xStart":109,"xEnd":110,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS:52 1a70 ","xStart":110,"xEnd":111,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:53 1a70 ","xStart":111,"xEnd":112,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:54 1a70 ","xStart":112,"xEnd":113,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:55 1a70 ","xStart":113,"xEnd":114,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:56 1a70 ","xStart":114,"xEnd":115,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASN:57 1a70 ","xStart":115,"xEnd":116,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN:58 1a70 ","xStart":116,"xEnd":117,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:59 1a70 ","xStart":117,"xEnd":118,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:60 1a70 ","xStart":118,"xEnd":119,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN:61 1a70 ","xStart":119,"xEnd":120,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:62 1a70 ","xStart":120,"xEnd":121,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PHE:63 1a70 ","xStart":121,"xEnd":122,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:64 1a70 ","xStart":122,"xEnd":123,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:65 1a70 ","xStart":123,"xEnd":124,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:66 1a70 ","xStart":124,"xEnd":125,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:67 1a70 ","xStart":125,"xEnd":126,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN:68 1a70 ","xStart":126,"xEnd":127,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE:69 1a70 ","xStart":127,"xEnd":128,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:70 1a70 ","xStart":128,"xEnd":129,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:71 1a70 ","xStart":129,"xEnd":130,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:72 1a70 ","xStart":130,"xEnd":131,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TRP:73 1a70 ","xStart":131,"xEnd":132,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:74 1a70 ","xStart":132,"xEnd":133,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:75 1a70 ","xStart":133,"xEnd":134,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:76 1a70 ","xStart":134,"xEnd":135,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:77 1a70 ","xStart":135,"xEnd":136,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:78 1a70 ","xStart":136,"xEnd":137,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:79 1a70 ","xStart":137,"xEnd":138,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR:80 1a70 ","xStart":138,"xEnd":139,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO:81 1a70 ","xStart":139,"xEnd":140,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:82 1a70 ","xStart":140,"xEnd":141,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:83 1a70 ","xStart":141,"xEnd":142,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:84 1a70 ","xStart":142,"xEnd":143,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:85 1a70 ","xStart":143,"xEnd":144,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:86 1a70 ","xStart":144,"xEnd":145,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE:87 1a70 ","xStart":145,"xEnd":146,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:88 1a70 ","xStart":146,"xEnd":147,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:89 1a70 ","xStart":147,"xEnd":148,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"HIS:90 1a70 ","xStart":148,"xEnd":149,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS:91 1a70 ","xStart":149,"xEnd":150,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS:92 1a70 ","xStart":150,"xEnd":151,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:93 1a70 ","xStart":151,"xEnd":152,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:94 1a70 ","xStart":152,"xEnd":153,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:95 1a70 ","xStart":153,"xEnd":154,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:96 1a70 ","xStart":154,"xEnd":155,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:97 1a70 ","xStart":155,"xEnd":156,"type":"RESNUM"}]}'>
+<style type="text/css"> div.parent{ width:100%;<!-- overflow: auto; -->}
+div.titlex{ width:11%; float: left; }
+div.align{ width:89%; float: right; }
+.sub-category-container {overflow-y: scroll; overflow-x: hidden; width: 100%; height: 100%;}
+object {pointer-events: none;}</style><div><div class="titlex"><div class="sub-category-container"> <?xml version="1.0"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:jfreesvg="http://www.jfree.org/jfreesvg/svg" width="1554" height="428" text-rendering="auto" shape-rendering="auto">
+<defs></defs>
+<rect x="0" y="0" width="1554" height="428" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,0)" /><rect x="0" y="0" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 11 L 2.38 3.77 L 6.42 3.77 L 6.26 4.54 L 3.25 4.54 L 2.77 6.96 L 5.29 6.96 L 5.14 7.72 L 2.61 7.72 L 1.96 11 M 0.93 11 M 5.93 11 L 7.38 3.77 L 11.42 3.77 L 11.26 4.54 L 8.25 4.54 L 7.79 6.86 L 10.31 6.86 L 10.16 7.62 L 7.63 7.62 L 7.11 10.23 L 10.33 10.23 L 10.18 11 M 5.93 11 M 10.93 11 L 12.38 3.77 L 14.57 3.77 Q 15.61 3.77 16.07 4.23 Q 16.53 4.69 16.36 5.57 Q 16.07 7.01 14.49 7.62 L 16.22 11 L 14.96 11 L 13.52 7.94 L 12.56 7.94 L 11.95 11 M 10.93 11 M 12.71 7.18 L 13.04 7.18 Q 14.98 7.18 15.28 5.66 Q 15.51 4.54 13.88 4.54 L 13.24 4.54 M 12.71 7.18 M 15.66 12.68 L 15.81 11.96 L 20.81 11.96 L 20.66 12.68 M 15.66 12.68 M 24.99 11.18 Q 23.31 11.18 22.59 10.19 Q 21.87 9.2 22.23 7.39 Q 22.59 5.58 23.73 4.59 Q 24.86 3.59 26.56 3.59 Q 27.53 3.59 28.77 3.91 L 28.58 4.87 Q 27.2 4.36 26.39 4.36 Q 25.21 4.36 24.41 5.16 Q 23.61 5.95 23.32 7.4 Q 23.04 8.78 23.57 9.58 Q 24.1 10.38 25.29 10.38 Q 26.31 10.38 27.61 9.75 L 27.44 10.63 Q 26.26 11.18 24.99 11.18 M 24.99 11.18 M 33.15 8.24 L 32.54 5.12 L 30.68 8.24 M 33.15 8.24 M 33.68 11 L 33.29 9 L 30.23 9 L 29.04 11 L 28.08 11 L 32.39 3.77 L 33.41 3.77 L 34.79 11 M 33.68 11 M 35.93 11 L 37.38 3.77 L 39.35 3.77 Q 40.65 3.77 41.14 4.22 Q 41.62 4.66 41.42 5.67 Q 41.19 6.82 40.28 7.47 Q 39.36 8.13 37.98 8.13 L 37.52 8.13 L 36.95 11 M 35.93 11 M 37.68 7.35 L 38.09 7.35 Q 39.01 7.35 39.59 6.93 Q 40.17 6.51 40.32 5.75 Q 40.45 5.1 40.12 4.82 Q 39.78 4.54 38.87 4.54 L 38.24 4.54 M 37.68 7.35 M 46.15 8.24 L 45.54 5.12 L 43.68 8.24 M 46.15 8.24 M 46.68 11 L 46.29 9 L 43.23 9 L 42.04 11 L 41.08 11 L 45.39 3.77 L 46.41 3.77 L 47.79 11 M 46.68 11 M 53.15 8.24 L 52.54 5.12 L 50.68 8.24 M 53.15 8.24 M 53.68 11 L 53.29 9 L 50.23 9 L 49.04 11 L 48.08 11 L 52.39 3.77 L 53.41 3.77 L 54.79 11 M 53.68 11 M 55.65 12.45 L 59.99 3.77 L 60.75 3.77 L 56.41 12.45 M 55.65 12.45 M 61.5 11 L 61.65 10.28 L 63.09 10.28 L 64.23 4.57 L 62.72 4.94 L 62.87 4.19 L 65.4 3.59 L 64.06 10.28 L 65.51 10.28 L 65.36 11 M 61.5 11 M 67.23 8.47 L 67.37 7.75 L 71.71 7.75 L 71.56 8.47 M 67.23 8.47 M 73.15 10.96 L 73.31 10.14 Q 74.16 10.46 74.81 10.46 Q 75.71 10.46 76.37 9.69 Q 77.02 8.93 77.3 7.57 Q 76.38 8.47 75.45 8.47 Q 74.54 8.47 74.04 7.8 Q 73.54 7.13 73.73 6.16 Q 73.95 5.05 74.77 4.32 Q 75.6 3.59 76.62 3.59 Q 77.8 3.59 78.29 4.54 Q 78.78 5.48 78.45 7.12 Q 78.08 8.99 77.03 10.08 Q 75.98 11.18 74.57 11.18 Q 74 11.18 73.15 10.96 M 73.15 10.96 M 74.73 5.97 Q 74.56 6.81 74.84 7.29 Q 75.12 7.78 75.76 7.78 Q 76.38 7.78 76.89 7.36 Q 77.41 6.95 77.52 6.36 Q 77.71 5.44 77.4 4.87 Q 77.1 4.31 76.42 4.31 Q 75.79 4.31 75.34 4.76 Q 74.88 5.2 74.73 5.97 M 74.73 5.97 M 79.5 11 Q 79.81 10.16 80.2 9.54 Q 80.58 8.92 81.46 7.85 L 84.07 4.68 L 80.35 4.68 L 80.53 3.77 L 85.17 3.77 L 84.99 4.68 Q 81.39 8.77 80.61 11 M 79.5 11"/></g><rect x="0" y="13" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 24 L 2.38 16.77 L 6.42 16.77 L 6.26 17.54 L 3.25 17.54 L 2.77 19.96 L 5.29 19.96 L 5.14 20.72 L 2.61 20.72 L 1.96 24 M 0.93 24 M 5.93 24 L 7.38 16.77 L 11.42 16.77 L 11.26 17.54 L 8.25 17.54 L 7.79 19.86 L 10.31 19.86 L 10.16 20.62 L 7.63 20.62 L 7.11 23.23 L 10.33 23.23 L 10.18 24 M 5.93 24 M 10.93 24 L 12.38 16.77 L 14.57 16.77 Q 15.61 16.77 16.07 17.23 Q 16.53 17.69 16.36 18.57 Q 16.07 20.01 14.49 20.62 L 16.22 24 L 14.96 24 L 13.52 20.94 L 12.56 20.94 L 11.95 24 M 10.93 24 M 12.71 20.18 L 13.04 20.18 Q 14.98 20.18 15.28 18.66 Q 15.51 17.54 13.88 17.54 L 13.24 17.54 M 12.71 20.18 M 15.66 25.68 L 15.81 24.96 L 20.81 24.96 L 20.66 25.68 M 15.66 25.68 M 24.99 24.18 Q 23.31 24.18 22.59 23.19 Q 21.87 22.2 22.23 20.39 Q 22.59 18.58 23.73 17.59 Q 24.86 16.59 26.56 16.59 Q 27.53 16.59 28.77 16.91 L 28.58 17.87 Q 27.2 17.36 26.39 17.36 Q 25.21 17.36 24.41 18.16 Q 23.61 18.95 23.32 20.4 Q 23.04 21.78 23.57 22.58 Q 24.1 23.38 25.29 23.38 Q 26.31 23.38 27.61 22.75 L 27.44 23.63 Q 26.26 24.18 24.99 24.18 M 24.99 24.18 M 33.15 21.24 L 32.54 18.12 L 30.68 21.24 M 33.15 21.24 M 33.68 24 L 33.29 22 L 30.23 22 L 29.04 24 L 28.08 24 L 32.39 16.77 L 33.41 16.77 L 34.79 24 M 33.68 24 M 35.93 24 L 37.38 16.77 L 39.35 16.77 Q 40.65 16.77 41.14 17.22 Q 41.62 17.66 41.42 18.67 Q 41.19 19.82 40.28 20.47 Q 39.36 21.13 37.98 21.13 L 37.52 21.13 L 36.95 24 M 35.93 24 M 37.68 20.35 L 38.09 20.35 Q 39.01 20.35 39.59 19.93 Q 40.17 19.51 40.32 18.75 Q 40.45 18.1 40.12 17.82 Q 39.78 17.54 38.87 17.54 L 38.24 17.54 M 37.68 20.35 M 46.15 21.24 L 45.54 18.12 L 43.68 21.24 M 46.15 21.24 M 46.68 24 L 46.29 22 L 43.23 22 L 42.04 24 L 41.08 24 L 45.39 16.77 L 46.41 16.77 L 47.79 24 M 46.68 24 M 48.93 24 L 50.38 16.77 L 51.38 16.77 L 53.91 22.35 L 55.02 16.77 L 55.9 16.77 L 54.46 24 L 53.45 24 L 50.93 18.42 L 49.81 24 M 48.93 24 M 55.65 25.45 L 59.99 16.77 L 60.75 16.77 L 56.41 25.45 M 55.65 25.45 M 61.5 24 L 61.65 23.28 L 63.09 23.28 L 64.23 17.57 L 62.72 17.94 L 62.87 17.19 L 65.4 16.59 L 64.06 23.28 L 65.51 23.28 L 65.36 24 M 61.5 24 M 67.23 21.47 L 67.37 20.75 L 71.71 20.75 L 71.56 21.47 M 67.23 21.47 M 73.5 24 L 73.65 23.28 L 75.09 23.28 L 76.23 17.57 L 74.72 17.94 L 74.87 17.19 L 77.4 16.59 L 76.06 23.28 L 77.51 23.28 L 77.36 24 M 73.5 24 M 81.76 24 L 82.17 21.95 L 78.92 21.95 L 79.07 21.23 L 83.21 16.77 L 84.11 16.77 L 83.23 21.17 L 84.2 21.17 L 84.04 21.95 L 83.08 21.95 L 82.67 24 M 81.76 24 M 80.02 21.17 L 82.39 21.17 L 83.04 17.96 M 80.02 21.17 M 87.76 24 L 88.17 21.95 L 84.92 21.95 L 85.07 21.23 L 89.21 16.77 L 90.11 16.77 L 89.23 21.17 L 90.2 21.17 L 90.04 21.95 L 89.08 21.95 L 88.67 24 M 87.76 24 M 86.02 21.17 L 88.39 21.17 L 89.04 17.96 M 86.02 21.17"/></g><rect x="0" y="26" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 37 L 2.38 29.77 L 6.42 29.77 L 6.26 30.54 L 3.25 30.54 L 2.77 32.96 L 5.29 32.96 L 5.14 33.72 L 2.61 33.72 L 1.96 37 M 0.93 37 M 5.93 37 L 7.38 29.77 L 11.42 29.77 L 11.26 30.54 L 8.25 30.54 L 7.79 32.86 L 10.31 32.86 L 10.16 33.62 L 7.63 33.62 L 7.11 36.23 L 10.33 36.23 L 10.18 37 M 5.93 37 M 10.93 37 L 12.38 29.77 L 14.57 29.77 Q 15.61 29.77 16.07 30.23 Q 16.53 30.69 16.36 31.57 Q 16.07 33.01 14.49 33.62 L 16.22 37 L 14.96 37 L 13.52 33.94 L 12.56 33.94 L 11.95 37 M 10.93 37 M 12.71 33.18 L 13.04 33.18 Q 14.98 33.18 15.28 31.66 Q 15.51 30.54 13.88 30.54 L 13.24 30.54 M 12.71 33.18 M 17.5 37 L 17.65 36.28 L 19.09 36.28 L 20.23 30.57 L 18.72 30.94 L 18.87 30.19 L 21.4 29.59 L 20.06 36.28 L 21.51 36.28 L 21.36 37 M 17.5 37 M 21.66 38.68 L 21.81 37.96 L 26.81 37.96 L 26.66 38.68 M 21.66 38.68 M 29.31 37.18 Q 28.58 37.18 27.52 36.86 L 27.72 35.85 Q 28.83 36.41 29.61 36.41 Q 30.22 36.41 30.65 36.1 Q 31.08 35.78 31.19 35.26 Q 31.27 34.84 31.09 34.54 Q 30.91 34.24 30.33 33.88 L 29.89 33.59 Q 29.07 33.06 28.79 32.59 Q 28.5 32.13 28.63 31.51 Q 28.79 30.67 29.51 30.13 Q 30.22 29.59 31.16 29.59 Q 31.99 29.59 32.86 29.87 L 32.68 30.81 Q 31.62 30.36 31.06 30.36 Q 30.53 30.36 30.13 30.64 Q 29.72 30.93 29.64 31.36 Q 29.57 31.72 29.76 32 Q 29.96 32.27 30.56 32.66 L 31.02 32.95 Q 31.85 33.48 32.12 33.96 Q 32.4 34.43 32.27 35.1 Q 32.08 36.04 31.27 36.61 Q 30.46 37.18 29.31 37.18 M 29.31 37.18 M 35.81 37.18 Q 34.3 37.18 33.6 36.14 Q 32.89 35.1 33.23 33.38 Q 33.58 31.66 34.7 30.63 Q 35.83 29.59 37.37 29.59 Q 38.9 29.59 39.62 30.62 Q 40.33 31.65 39.99 33.37 Q 39.64 35.12 38.51 36.15 Q 37.38 37.18 35.81 37.18 M 35.81 37.18 M 35.97 36.41 Q 37.08 36.41 37.85 35.62 Q 38.61 34.82 38.9 33.36 Q 39.19 31.95 38.74 31.16 Q 38.29 30.36 37.21 30.36 Q 36.14 30.36 35.37 31.16 Q 34.61 31.96 34.32 33.38 Q 34.04 34.79 34.48 35.6 Q 34.92 36.41 35.97 36.41 M 35.97 36.41 M 40.93 37 L 42.38 29.77 L 43.4 29.77 L 42.11 36.23 L 45.36 36.23 L 45.21 37 M 40.93 37 M 45.93 37 L 47.38 29.77 L 48.4 29.77 L 47.11 36.23 L 50.36 36.23 L 50.21 37 M 45.93 37 M 53.99 37.18 Q 52.31 37.18 51.59 36.19 Q 50.87 35.2 51.23 33.39 Q 51.59 31.58 52.73 30.59 Q 53.86 29.59 55.56 29.59 Q 56.53 29.59 57.77 29.91 L 57.58 30.87 Q 56.2 30.36 55.39 30.36 Q 54.21 30.36 53.41 31.16 Q 52.61 31.95 52.32 33.4 Q 52.04 34.78 52.57 35.58 Q 53.1 36.38 54.29 36.38 Q 55.31 36.38 56.61 35.75 L 56.44 36.63 Q 55.26 37.18 53.99 37.18 M 53.99 37.18 M 57.65 38.45 L 61.99 29.77 L 62.75 29.77 L 58.41 38.45 M 57.65 38.45 M 63.5 37 L 63.65 36.28 L 65.09 36.28 L 66.23 30.57 L 64.72 30.94 L 64.87 30.19 L 67.4 29.59 L 66.06 36.28 L 67.51 36.28 L 67.36 37 M 63.5 37 M 69.23 34.47 L 69.37 33.75 L 73.71 33.75 L 73.56 34.47 M 69.23 34.47 M 75.5 37 L 75.65 36.28 L 77.09 36.28 L 78.23 30.57 L 76.72 30.94 L 76.87 30.19 L 79.4 29.59 L 78.06 36.28 L 79.51 36.28 L 79.36 37 M 75.5 37 M 83.76 37 L 84.17 34.95 L 80.92 34.95 L 81.07 34.23 L 85.21 29.77 L 86.11 29.77 L 85.23 34.17 L 86.2 34.17 L 86.04 34.95 L 85.08 34.95 L 84.67 37 M 83.76 37 M 82.02 34.17 L 84.39 34.17 L 85.04 30.96 M 82.02 34.17 M 89.76 37 L 90.17 34.95 L 86.92 34.95 L 87.07 34.23 L 91.21 29.77 L 92.11 29.77 L 91.23 34.17 L 92.2 34.17 L 92.04 34.95 L 91.08 34.95 L 90.67 37 M 89.76 37 M 88.02 34.17 L 90.39 34.17 L 91.04 30.96 M 88.02 34.17"/></g><rect x="0" y="39" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 7.06 51.45 Q 5.47 50.89 4.47 50.13 Q 4 50.18 3.75 50.18 Q 2.29 50.18 1.59 49.13 Q 0.89 48.07 1.23 46.39 Q 1.58 44.66 2.7 43.63 Q 3.83 42.59 5.37 42.59 Q 6.91 42.59 7.62 43.63 Q 8.33 44.66 7.99 46.4 Q 7.49 48.89 5.45 49.85 Q 6.58 50.4 7.87 50.63 M 7.06 51.45 M 3.97 49.41 Q 5.08 49.41 5.85 48.62 Q 6.61 47.82 6.9 46.37 Q 7.19 44.96 6.74 44.16 Q 6.29 43.36 5.21 43.36 Q 4.14 43.36 3.37 44.16 Q 2.61 44.96 2.32 46.38 Q 2.04 47.79 2.48 48.6 Q 2.92 49.41 3.97 49.41 M 3.97 49.41 M 9.15 49.96 L 9.31 49.14 Q 10.16 49.46 10.81 49.46 Q 11.71 49.46 12.37 48.69 Q 13.02 47.93 13.3 46.57 Q 12.38 47.47 11.45 47.47 Q 10.54 47.47 10.04 46.8 Q 9.54 46.13 9.73 45.16 Q 9.95 44.05 10.77 43.32 Q 11.6 42.59 12.62 42.59 Q 13.8 42.59 14.29 43.54 Q 14.78 44.48 14.45 46.12 Q 14.08 47.99 13.03 49.08 Q 11.98 50.18 10.57 50.18 Q 10 50.18 9.15 49.96 M 9.15 49.96 M 10.73 44.97 Q 10.56 45.81 10.84 46.29 Q 11.12 46.78 11.76 46.78 Q 12.38 46.78 12.89 46.36 Q 13.41 45.95 13.52 45.36 Q 13.71 44.44 13.4 43.87 Q 13.1 43.31 12.42 43.31 Q 11.79 43.31 11.34 43.76 Q 10.88 44.2 10.73 44.97 M 10.73 44.97 M 15.03 49.95 L 15.21 49.05 Q 16.16 49.46 16.75 49.46 Q 17.44 49.46 17.96 49.06 Q 18.47 48.65 18.6 48.01 Q 18.9 46.49 16.77 46.49 L 16.39 46.49 L 16.52 45.84 L 16.85 45.83 Q 18.86 45.83 19.14 44.42 Q 19.36 43.32 18.04 43.32 Q 17.32 43.32 16.37 43.72 L 16.54 42.88 Q 17.45 42.59 18.25 42.59 Q 20.47 42.59 20.14 44.27 Q 19.88 45.54 18.26 46.08 Q 19.93 46.49 19.63 48 Q 19.43 49.02 18.64 49.6 Q 17.85 50.18 16.67 50.18 Q 16 50.18 15.03 49.95 M 15.03 49.95 M 20.08 50 L 23.2 46.37 L 21.64 42.77 L 22.85 42.77 L 24.04 45.5 L 26.42 42.77 L 27.38 42.77 L 24.38 46.26 L 26 50 L 24.79 50 L 23.52 47.13 L 21.05 50 M 20.08 50 M 24.83 51.34 L 25.01 50.43 Q 25.56 50.62 26.01 50.62 Q 26.6 50.62 26.9 50.29 Q 27.2 49.96 27.36 49.12 L 28.63 42.77 L 29.66 42.77 L 28.39 49.09 Q 27.92 51.45 25.69 51.45 Q 25.35 51.45 24.83 51.34 M 24.83 51.34 M 30.15 49.96 L 30.31 49.14 Q 31.16 49.46 31.81 49.46 Q 32.71 49.46 33.37 48.69 Q 34.02 47.93 34.3 46.57 Q 33.38 47.47 32.45 47.47 Q 31.54 47.47 31.04 46.8 Q 30.54 46.13 30.73 45.16 Q 30.95 44.05 31.77 43.32 Q 32.6 42.59 33.62 42.59 Q 34.8 42.59 35.29 43.54 Q 35.78 44.48 35.45 46.12 Q 35.08 47.99 34.03 49.08 Q 32.98 50.18 31.57 50.18 Q 31 50.18 30.15 49.96 M 30.15 49.96 M 31.73 44.97 Q 31.56 45.81 31.84 46.29 Q 32.12 46.78 32.76 46.78 Q 33.38 46.78 33.89 46.36 Q 34.41 45.95 34.52 45.36 Q 34.71 44.44 34.4 43.87 Q 34.1 43.31 33.42 43.31 Q 32.79 43.31 32.34 43.76 Q 31.88 44.2 31.73 44.97 M 31.73 44.97 M 34.66 51.68 L 34.81 50.96 L 39.81 50.96 L 39.66 51.68 M 34.66 51.68 M 42.31 50.18 Q 41.58 50.18 40.52 49.86 L 40.72 48.85 Q 41.83 49.41 42.61 49.41 Q 43.22 49.41 43.65 49.1 Q 44.08 48.78 44.19 48.26 Q 44.27 47.84 44.09 47.54 Q 43.91 47.24 43.33 46.88 L 42.89 46.59 Q 42.07 46.06 41.79 45.59 Q 41.5 45.13 41.63 44.51 Q 41.79 43.67 42.51 43.13 Q 43.22 42.59 44.16 42.59 Q 44.99 42.59 45.86 42.87 L 45.68 43.81 Q 44.62 43.36 44.06 43.36 Q 43.53 43.36 43.13 43.64 Q 42.72 43.93 42.64 44.36 Q 42.57 44.72 42.76 45 Q 42.96 45.27 43.56 45.66 L 44.02 45.95 Q 44.85 46.48 45.12 46.96 Q 45.4 47.43 45.27 48.1 Q 45.08 49.04 44.27 49.61 Q 43.46 50.18 42.31 50.18 M 42.31 50.18 M 48.81 50.18 Q 47.3 50.18 46.6 49.14 Q 45.89 48.1 46.23 46.38 Q 46.58 44.66 47.7 43.63 Q 48.83 42.59 50.37 42.59 Q 51.9 42.59 52.62 43.62 Q 53.33 44.65 52.99 46.37 Q 52.64 48.12 51.51 49.15 Q 50.38 50.18 48.81 50.18 M 48.81 50.18 M 48.97 49.41 Q 50.08 49.41 50.85 48.62 Q 51.61 47.82 51.9 46.36 Q 52.19 44.95 51.74 44.16 Q 51.29 43.36 50.21 43.36 Q 49.14 43.36 48.37 44.16 Q 47.61 44.96 47.32 46.38 Q 47.04 47.79 47.48 48.6 Q 47.92 49.41 48.97 49.41 M 48.97 49.41 M 53.93 50 L 55.38 42.77 L 56.4 42.77 L 55.11 49.23 L 58.36 49.23 L 58.21 50 M 53.93 50 M 60.65 50 L 61.94 43.54 L 59.38 43.54 L 59.53 42.77 L 65.69 42.77 L 65.53 43.54 L 62.97 43.54 L 61.68 50 M 60.65 50 M 66.32 42.77 L 67.34 42.77 L 66.43 47.33 Q 66.21 48.42 66.52 48.92 Q 66.82 49.41 67.7 49.41 Q 68.56 49.41 69.01 48.95 Q 69.46 48.48 69.69 47.37 L 70.61 42.77 L 71.5 42.77 L 70.59 47.35 Q 70.29 48.83 69.55 49.51 Q 68.81 50.18 67.48 50.18 Q 66.13 50.18 65.62 49.48 Q 65.12 48.78 65.41 47.32 M 66.32 42.77 M 71.65 51.45 L 75.99 42.77 L 76.75 42.77 L 72.41 51.45 M 71.65 51.45 M 77.5 50 L 77.65 49.28 L 79.09 49.28 L 80.23 43.57 L 78.72 43.94 L 78.87 43.19 L 81.4 42.59 L 80.06 49.28 L 81.51 49.28 L 81.36 50 M 77.5 50 M 83.23 47.47 L 83.37 46.75 L 87.71 46.75 L 87.56 47.47 M 83.23 47.47 M 89.5 50 L 89.65 49.28 L 91.09 49.28 L 92.23 43.57 L 90.72 43.94 L 90.87 43.19 L 93.4 42.59 L 92.06 49.28 L 93.51 49.28 L 93.36 50 M 89.5 50 M 97.76 50 L 98.17 47.95 L 94.92 47.95 L 95.07 47.23 L 99.21 42.77 L 100.11 42.77 L 99.23 47.17 L 100.2 47.17 L 100.04 47.95 L 99.08 47.95 L 98.67 50 M 97.76 50 M 96.02 47.17 L 98.39 47.17 L 99.04 43.96 M 96.02 47.17 M 103.76 50 L 104.17 47.95 L 100.92 47.95 L 101.07 47.23 L 105.21 42.77 L 106.11 42.77 L 105.23 47.17 L 106.2 47.17 L 106.04 47.95 L 105.08 47.95 L 104.67 50 M 103.76 50 M 102.02 47.17 L 104.39 47.17 L 105.04 43.96 M 102.02 47.17"/></g><rect x="0" y="52" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 63 L 2.38 55.77 L 6.42 55.77 L 6.26 56.54 L 3.25 56.54 L 2.77 58.96 L 5.29 58.96 L 5.14 59.72 L 2.61 59.72 L 1.96 63 M 0.93 63 M 5.93 63 L 7.38 55.77 L 11.42 55.77 L 11.26 56.54 L 8.25 56.54 L 7.79 58.86 L 10.31 58.86 L 10.16 59.62 L 7.63 59.62 L 7.11 62.23 L 10.33 62.23 L 10.18 63 M 5.93 63 M 10.93 63 L 12.38 55.77 L 14.57 55.77 Q 15.61 55.77 16.07 56.23 Q 16.53 56.69 16.36 57.57 Q 16.07 59.01 14.49 59.62 L 16.22 63 L 14.96 63 L 13.52 59.94 L 12.56 59.94 L 11.95 63 M 10.93 63 M 12.71 59.18 L 13.04 59.18 Q 14.98 59.18 15.28 57.66 Q 15.51 56.54 13.88 56.54 L 13.24 56.54 M 12.71 59.18 M 17.5 63 L 17.65 62.28 L 19.09 62.28 L 20.23 56.57 L 18.72 56.94 L 18.87 56.19 L 21.4 55.59 L 20.06 62.28 L 21.51 62.28 L 21.36 63 M 17.5 63 M 21.66 64.68 L 21.81 63.96 L 26.81 63.96 L 26.66 64.68 M 21.66 64.68 M 27.93 63 L 29.38 55.77 L 31.35 55.77 Q 32.65 55.77 33.14 56.22 Q 33.62 56.66 33.42 57.67 Q 33.19 58.82 32.28 59.47 Q 31.36 60.13 29.98 60.13 L 29.52 60.13 L 28.95 63 M 27.93 63 M 29.68 59.35 L 30.09 59.35 Q 31.01 59.35 31.59 58.93 Q 32.17 58.51 32.32 57.75 Q 32.45 57.1 32.12 56.82 Q 31.78 56.54 30.87 56.54 L 30.24 56.54 M 29.68 59.35 M 33.93 63 L 35.38 55.77 L 39.42 55.77 L 39.26 56.54 L 36.25 56.54 L 35.79 58.86 L 38.31 58.86 L 38.16 59.62 L 35.63 59.62 L 35.11 62.23 L 38.33 62.23 L 38.18 63 M 33.93 63 M 43.15 60.24 L 42.54 57.12 L 40.68 60.24 M 43.15 60.24 M 43.68 63 L 43.29 61 L 40.23 61 L 39.04 63 L 38.08 63 L 42.39 55.77 L 43.41 55.77 L 44.79 63 M 43.68 63 M 45.65 64.45 L 49.99 55.77 L 50.75 55.77 L 46.41 64.45 M 45.65 64.45 M 51.5 63 L 51.65 62.28 L 53.09 62.28 L 54.23 56.57 L 52.72 56.94 L 52.87 56.19 L 55.4 55.59 L 54.06 62.28 L 55.51 62.28 L 55.36 63 M 51.5 63 M 57.23 60.47 L 57.37 59.75 L 61.71 59.75 L 61.56 60.47 M 57.23 60.47 M 63.5 63 L 63.65 62.28 L 65.09 62.28 L 66.23 56.57 L 64.72 56.94 L 64.87 56.19 L 67.4 55.59 L 66.06 62.28 L 67.51 62.28 L 67.36 63 M 63.5 63 M 71.76 63 L 72.17 60.95 L 68.92 60.95 L 69.07 60.23 L 73.21 55.77 L 74.11 55.77 L 73.23 60.17 L 74.2 60.17 L 74.04 60.95 L 73.08 60.95 L 72.67 63 M 71.76 63 M 70.02 60.17 L 72.39 60.17 L 73.04 56.96 M 70.02 60.17 M 75.15 62.96 L 75.31 62.14 Q 76.16 62.46 76.81 62.46 Q 77.71 62.46 78.37 61.69 Q 79.02 60.93 79.3 59.57 Q 78.38 60.47 77.45 60.47 Q 76.54 60.47 76.04 59.8 Q 75.54 59.13 75.73 58.16 Q 75.95 57.05 76.77 56.32 Q 77.6 55.59 78.62 55.59 Q 79.8 55.59 80.29 56.54 Q 80.78 57.48 80.45 59.12 Q 80.08 60.99 79.03 62.08 Q 77.98 63.18 76.57 63.18 Q 76 63.18 75.15 62.96 M 75.15 62.96 M 76.73 57.97 Q 76.56 58.81 76.84 59.29 Q 77.12 59.78 77.76 59.78 Q 78.38 59.78 78.89 59.36 Q 79.41 58.95 79.52 58.36 Q 79.71 57.44 79.4 56.87 Q 79.1 56.31 78.42 56.31 Q 77.79 56.31 77.34 56.76 Q 76.88 57.2 76.73 57.97 M 76.73 57.97"/></g><rect x="0" y="65" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 7.06 77.45 Q 5.47 76.89 4.47 76.13 Q 4 76.18 3.75 76.18 Q 2.29 76.18 1.59 75.13 Q 0.89 74.07 1.23 72.39 Q 1.58 70.66 2.7 69.63 Q 3.83 68.59 5.37 68.59 Q 6.91 68.59 7.62 69.63 Q 8.33 70.66 7.99 72.4 Q 7.49 74.89 5.45 75.85 Q 6.58 76.4 7.87 76.63 M 7.06 77.45 M 3.97 75.41 Q 5.08 75.41 5.85 74.62 Q 6.61 73.82 6.9 72.37 Q 7.19 70.96 6.74 70.16 Q 6.29 69.36 5.21 69.36 Q 4.14 69.36 3.37 70.16 Q 2.61 70.96 2.32 72.38 Q 2.04 73.79 2.48 74.6 Q 2.92 75.41 3.97 75.41 M 3.97 75.41 M 9.5 76 Q 9.81 75.16 10.2 74.54 Q 10.58 73.92 11.46 72.85 L 14.07 69.68 L 10.35 69.68 L 10.53 68.77 L 15.17 68.77 L 14.99 69.68 Q 11.39 73.77 10.61 76 M 9.5 76 M 14.08 76 L 17.2 72.37 L 15.64 68.77 L 16.85 68.77 L 18.04 71.5 L 20.42 68.77 L 21.38 68.77 L 18.38 72.26 L 20 76 L 18.79 76 L 17.52 73.13 L 15.05 76 M 14.08 76 M 25.15 73.24 L 24.54 70.12 L 22.68 73.24 M 25.15 73.24 M 25.68 76 L 25.29 74 L 22.23 74 L 21.04 76 L 20.08 76 L 24.39 68.77 L 25.41 68.77 L 26.79 76 M 25.68 76 M 28.15 75.96 L 28.31 75.14 Q 29.16 75.46 29.81 75.46 Q 30.71 75.46 31.37 74.69 Q 32.02 73.93 32.3 72.57 Q 31.38 73.47 30.45 73.47 Q 29.54 73.47 29.04 72.8 Q 28.54 72.13 28.73 71.16 Q 28.95 70.05 29.77 69.32 Q 30.6 68.59 31.62 68.59 Q 32.8 68.59 33.29 69.54 Q 33.78 70.48 33.45 72.12 Q 33.08 73.99 32.03 75.08 Q 30.98 76.18 29.57 76.18 Q 29 76.18 28.15 75.96 M 28.15 75.96 M 29.73 70.97 Q 29.56 71.81 29.84 72.29 Q 30.12 72.78 30.76 72.78 Q 31.38 72.78 31.89 72.36 Q 32.41 71.95 32.52 71.36 Q 32.71 70.44 32.4 69.87 Q 32.1 69.31 31.42 69.31 Q 30.79 69.31 30.34 69.76 Q 29.88 70.2 29.73 70.97 M 29.73 70.97 M 36.09 72.06 Q 35.17 71.33 35.35 70.43 Q 35.52 69.61 36.22 69.1 Q 36.92 68.59 37.89 68.59 Q 38.78 68.59 39.25 69.02 Q 39.72 69.46 39.58 70.15 Q 39.37 71.2 37.85 72.06 Q 39.33 72.87 39.07 74.13 Q 38.89 75.04 38.09 75.61 Q 37.29 76.18 36.21 76.18 Q 35.14 76.18 34.59 75.64 Q 34.04 75.1 34.22 74.22 Q 34.48 72.92 36.09 72.06 M 36.09 72.06 M 37.37 71.76 Q 38.52 71.1 38.68 70.28 Q 38.77 69.85 38.48 69.58 Q 38.2 69.32 37.65 69.32 Q 37.12 69.32 36.73 69.58 Q 36.35 69.84 36.26 70.25 Q 36.18 70.66 36.42 70.98 Q 36.66 71.3 37.37 71.76 M 37.37 71.76 M 36.53 72.46 Q 35.86 72.9 35.59 73.24 Q 35.31 73.57 35.21 74.07 Q 35.09 74.69 35.41 75.07 Q 35.74 75.46 36.39 75.46 Q 37.02 75.46 37.48 75.13 Q 37.95 74.8 38.05 74.28 Q 38.13 73.86 37.95 73.57 Q 37.76 73.28 37.13 72.86 M 36.53 72.46 M 38.66 77.68 L 38.81 76.96 L 43.81 76.96 L 43.66 77.68 M 38.66 77.68 M 46.65 76 L 47.94 69.54 L 45.38 69.54 L 45.53 68.77 L 51.69 68.77 L 51.53 69.54 L 48.97 69.54 L 47.68 76 M 46.65 76 M 50.93 76 L 52.38 68.77 L 54.57 68.77 Q 55.61 68.77 56.07 69.23 Q 56.53 69.69 56.36 70.57 Q 56.07 72.01 54.49 72.62 L 56.22 76 L 54.96 76 L 53.52 72.94 L 52.56 72.94 L 51.95 76 M 50.93 76 M 52.71 72.18 L 53.04 72.18 Q 54.98 72.18 55.28 70.66 Q 55.51 69.54 53.88 69.54 L 53.24 69.54 M 52.71 72.18 M 56.93 76 L 58.37 68.77 L 59.4 68.77 L 57.95 76 M 56.93 76 M 59.93 76 L 61.38 68.77 L 63.35 68.77 Q 64.65 68.77 65.14 69.22 Q 65.62 69.66 65.42 70.67 Q 65.19 71.82 64.28 72.47 Q 63.36 73.13 61.98 73.13 L 61.52 73.13 L 60.95 76 M 59.93 76 M 61.68 72.35 L 62.09 72.35 Q 63.01 72.35 63.59 71.93 Q 64.17 71.51 64.32 70.75 Q 64.45 70.1 64.12 69.82 Q 63.78 69.54 62.87 69.54 L 62.24 69.54 M 61.68 72.35 M 65.93 76 L 67.38 68.77 L 69.57 68.77 Q 70.61 68.77 71.07 69.23 Q 71.53 69.69 71.36 70.57 Q 71.07 72.01 69.49 72.62 L 71.22 76 L 69.96 76 L 68.52 72.94 L 67.56 72.94 L 66.95 76 M 65.93 76 M 67.71 72.18 L 68.04 72.18 Q 69.98 72.18 70.28 70.66 Q 70.51 69.54 68.88 69.54 L 68.24 69.54 M 67.71 72.18 M 71.65 77.45 L 75.99 68.77 L 76.75 68.77 L 72.41 77.45 M 71.65 77.45 M 77.5 76 L 77.65 75.28 L 79.09 75.28 L 80.23 69.57 L 78.72 69.94 L 78.87 69.19 L 81.4 68.59 L 80.06 75.28 L 81.51 75.28 L 81.36 76 M 77.5 76 M 83.23 73.47 L 83.37 72.75 L 87.71 72.75 L 87.56 73.47 M 83.23 73.47 M 89.5 76 L 89.65 75.28 L 91.09 75.28 L 92.23 69.57 L 90.72 69.94 L 90.87 69.19 L 93.4 68.59 L 92.06 75.28 L 93.51 75.28 L 93.36 76 M 89.5 76 M 95.21 76.03 L 95.38 75.17 Q 96.04 75.46 96.69 75.46 Q 97.4 75.46 97.9 75.04 Q 98.39 74.62 98.54 73.88 Q 98.86 72.25 96.62 72.25 Q 96.37 72.25 96.08 72.29 L 96.78 68.77 L 100.44 68.77 L 100.27 69.61 L 97.46 69.61 L 97.08 71.52 Q 98.47 71.52 99.12 72.16 Q 99.78 72.8 99.55 73.93 Q 99.34 74.98 98.51 75.58 Q 97.68 76.18 96.42 76.18 Q 95.87 76.18 95.21 76.03 M 95.21 76.03 M 100.83 76 L 101 75.16 Q 101.62 74.17 103.13 73.02 L 103.78 72.52 Q 105.03 71.56 105.22 70.61 Q 105.34 70.01 105.05 69.66 Q 104.75 69.32 104.12 69.32 Q 103.37 69.32 102.23 69.9 L 102.4 69.05 Q 103.45 68.59 104.4 68.59 Q 105.42 68.59 105.92 69.14 Q 106.43 69.69 106.25 70.59 Q 106.12 71.24 105.71 71.74 Q 105.3 72.25 104.31 72.96 L 103.87 73.28 Q 102.52 74.26 102.16 75.16 L 105.3 75.16 L 105.13 76 M 100.83 76"/></g><rect x="0" y="78" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 89 L 2.38 81.77 L 6.42 81.77 L 6.26 82.54 L 3.25 82.54 L 2.77 84.96 L 5.29 84.96 L 5.14 85.72 L 2.61 85.72 L 1.96 89 M 0.93 89 M 5.93 89 L 7.38 81.77 L 11.42 81.77 L 11.26 82.54 L 8.25 82.54 L 7.79 84.86 L 10.31 84.86 L 10.16 85.62 L 7.63 85.62 L 7.11 88.23 L 10.33 88.23 L 10.18 89 M 5.93 89 M 10.93 89 L 12.38 81.77 L 14.57 81.77 Q 15.61 81.77 16.07 82.23 Q 16.53 82.69 16.36 83.57 Q 16.07 85.01 14.49 85.62 L 16.22 89 L 14.96 89 L 13.52 85.94 L 12.56 85.94 L 11.95 89 M 10.93 89 M 12.71 85.18 L 13.04 85.18 Q 14.98 85.18 15.28 83.66 Q 15.51 82.54 13.88 82.54 L 13.24 82.54 M 12.71 85.18 M 17.5 89 L 17.65 88.28 L 19.09 88.28 L 20.23 82.57 L 18.72 82.94 L 18.87 82.19 L 21.4 81.59 L 20.06 88.28 L 21.51 88.28 L 21.36 89 M 17.5 89 M 21.66 90.68 L 21.81 89.96 L 26.81 89.96 L 26.66 90.68 M 21.66 90.68 M 27.93 89 L 29.38 81.77 L 30.8 81.77 L 31.68 87.36 L 34.86 81.77 L 36.13 81.77 L 34.69 89 L 33.73 89 L 34.9 83.12 L 31.83 88.52 L 30.84 88.52 L 29.99 83.11 L 28.81 89 M 27.93 89 M 36.93 89 L 38.38 81.77 L 42.42 81.77 L 42.26 82.54 L 39.25 82.54 L 38.79 84.86 L 41.31 84.86 L 41.16 85.62 L 38.63 85.62 L 38.11 88.23 L 41.33 88.23 L 41.18 89 M 36.93 89 M 43.31 89.18 Q 42.58 89.18 41.52 88.86 L 41.72 87.85 Q 42.83 88.41 43.61 88.41 Q 44.22 88.41 44.65 88.1 Q 45.08 87.78 45.19 87.26 Q 45.27 86.84 45.09 86.54 Q 44.91 86.24 44.33 85.88 L 43.89 85.59 Q 43.07 85.06 42.79 84.59 Q 42.5 84.13 42.63 83.51 Q 42.79 82.67 43.51 82.13 Q 44.22 81.59 45.16 81.59 Q 45.99 81.59 46.86 81.87 L 46.68 82.81 Q 45.62 82.36 45.06 82.36 Q 44.53 82.36 44.13 82.64 Q 43.72 82.93 43.64 83.36 Q 43.57 83.72 43.76 84 Q 43.96 84.27 44.56 84.66 L 45.02 84.95 Q 45.85 85.48 46.12 85.96 Q 46.4 86.43 46.27 87.1 Q 46.08 88.04 45.27 88.61 Q 44.46 89.18 43.31 89.18 M 43.31 89.18 M 49.99 89.18 Q 48.31 89.18 47.59 88.19 Q 46.87 87.2 47.23 85.39 Q 47.59 83.58 48.73 82.59 Q 49.86 81.59 51.56 81.59 Q 52.53 81.59 53.77 81.91 L 53.58 82.87 Q 52.2 82.36 51.39 82.36 Q 50.21 82.36 49.41 83.16 Q 48.61 83.95 48.32 85.4 Q 48.04 86.78 48.57 87.58 Q 49.1 88.38 50.29 88.38 Q 51.31 88.38 52.61 87.75 L 52.44 88.63 Q 51.26 89.18 49.99 89.18 M 49.99 89.18 M 53.93 89 L 55.38 81.77 L 57.57 81.77 Q 58.61 81.77 59.07 82.23 Q 59.53 82.69 59.36 83.57 Q 59.07 85.01 57.49 85.62 L 59.22 89 L 57.96 89 L 56.52 85.94 L 55.56 85.94 L 54.95 89 M 53.93 89 M 55.71 85.18 L 56.04 85.18 Q 57.98 85.18 58.28 83.66 Q 58.51 82.54 56.88 82.54 L 56.24 82.54 M 55.71 85.18 M 59.65 90.45 L 63.99 81.77 L 64.75 81.77 L 60.41 90.45 M 59.65 90.45 M 65.5 89 L 65.65 88.28 L 67.09 88.28 L 68.23 82.57 L 66.72 82.94 L 66.87 82.19 L 69.4 81.59 L 68.06 88.28 L 69.51 88.28 L 69.36 89 M 65.5 89 M 71.23 86.47 L 71.37 85.75 L 75.71 85.75 L 75.56 86.47 M 71.23 86.47 M 77.5 89 L 77.65 88.28 L 79.09 88.28 L 80.23 82.57 L 78.72 82.94 L 78.87 82.19 L 81.4 81.59 L 80.06 88.28 L 81.51 88.28 L 81.36 89 M 77.5 89 M 85.76 89 L 86.17 86.95 L 82.92 86.95 L 83.07 86.23 L 87.21 81.77 L 88.11 81.77 L 87.23 86.17 L 88.2 86.17 L 88.04 86.95 L 87.08 86.95 L 86.67 89 M 85.76 89 M 84.02 86.17 L 86.39 86.17 L 87.04 82.96 M 84.02 86.17 M 91.09 85.06 Q 90.17 84.33 90.35 83.43 Q 90.52 82.61 91.22 82.1 Q 91.92 81.59 92.89 81.59 Q 93.78 81.59 94.25 82.02 Q 94.72 82.46 94.58 83.15 Q 94.37 84.2 92.85 85.06 Q 94.33 85.87 94.07 87.13 Q 93.89 88.04 93.09 88.61 Q 92.29 89.18 91.21 89.18 Q 90.14 89.18 89.59 88.64 Q 89.04 88.1 89.22 87.22 Q 89.48 85.92 91.09 85.06 M 91.09 85.06 M 92.37 84.76 Q 93.52 84.1 93.68 83.28 Q 93.77 82.85 93.48 82.58 Q 93.2 82.32 92.65 82.32 Q 92.12 82.32 91.73 82.58 Q 91.35 82.84 91.26 83.25 Q 91.18 83.66 91.42 83.98 Q 91.66 84.3 92.37 84.76 M 92.37 84.76 M 91.53 85.46 Q 90.86 85.9 90.59 86.24 Q 90.31 86.57 90.21 87.07 Q 90.09 87.69 90.41 88.07 Q 90.74 88.46 91.39 88.46 Q 92.02 88.46 92.48 88.13 Q 92.95 87.8 93.05 87.28 Q 93.13 86.86 92.95 86.57 Q 92.76 86.28 92.13 85.86 M 91.53 85.46"/></g><rect x="0" y="91" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 102 L 2.38 94.77 L 6.42 94.77 L 6.26 95.54 L 3.25 95.54 L 2.77 97.96 L 5.29 97.96 L 5.14 98.72 L 2.61 98.72 L 1.96 102 M 0.93 102 M 5.93 102 L 7.38 94.77 L 11.42 94.77 L 11.26 95.54 L 8.25 95.54 L 7.79 97.86 L 10.31 97.86 L 10.16 98.62 L 7.63 98.62 L 7.11 101.23 L 10.33 101.23 L 10.18 102 M 5.93 102 M 10.93 102 L 12.38 94.77 L 14.57 94.77 Q 15.61 94.77 16.07 95.23 Q 16.53 95.69 16.36 96.57 Q 16.07 98.01 14.49 98.62 L 16.22 102 L 14.96 102 L 13.52 98.94 L 12.56 98.94 L 11.95 102 M 10.93 102 M 12.71 98.18 L 13.04 98.18 Q 14.98 98.18 15.28 96.66 Q 15.51 95.54 13.88 95.54 L 13.24 95.54 M 12.71 98.18 M 17.5 102 L 17.65 101.28 L 19.09 101.28 L 20.23 95.57 L 18.72 95.94 L 18.87 95.19 L 21.4 94.59 L 20.06 101.28 L 21.51 101.28 L 21.36 102 M 17.5 102 M 21.66 103.68 L 21.81 102.96 L 26.81 102.96 L 26.66 103.68 M 21.66 103.68 M 29.31 102.18 Q 28.58 102.18 27.52 101.86 L 27.72 100.85 Q 28.83 101.41 29.61 101.41 Q 30.22 101.41 30.65 101.1 Q 31.08 100.78 31.19 100.26 Q 31.27 99.84 31.09 99.54 Q 30.91 99.24 30.33 98.88 L 29.89 98.59 Q 29.07 98.06 28.79 97.59 Q 28.5 97.13 28.63 96.51 Q 28.79 95.67 29.51 95.13 Q 30.22 94.59 31.16 94.59 Q 31.99 94.59 32.86 94.87 L 32.68 95.81 Q 31.62 95.36 31.06 95.36 Q 30.53 95.36 30.13 95.64 Q 29.72 95.93 29.64 96.36 Q 29.57 96.72 29.76 97 Q 29.96 97.27 30.56 97.66 L 31.02 97.95 Q 31.85 98.48 32.12 98.96 Q 32.4 99.43 32.27 100.1 Q 32.08 101.04 31.27 101.61 Q 30.46 102.18 29.31 102.18 M 29.31 102.18 M 32.93 102 L 34.38 94.77 L 36.35 94.77 Q 37.65 94.77 38.14 95.22 Q 38.62 95.66 38.42 96.67 Q 38.19 97.82 37.28 98.47 Q 36.36 99.13 34.98 99.13 L 34.52 99.13 L 33.95 102 M 32.93 102 M 34.68 98.35 L 35.09 98.35 Q 36.01 98.35 36.59 97.93 Q 37.17 97.51 37.32 96.75 Q 37.45 96.1 37.12 95.82 Q 36.78 95.54 35.87 95.54 L 35.24 95.54 M 34.68 98.35 M 38.93 102 L 40.37 94.77 L 41.4 94.77 L 39.95 102 M 38.93 102 M 44.81 102.18 Q 43.3 102.18 42.6 101.14 Q 41.89 100.1 42.23 98.38 Q 42.58 96.66 43.7 95.63 Q 44.83 94.59 46.37 94.59 Q 47.9 94.59 48.62 95.62 Q 49.33 96.65 48.99 98.37 Q 48.64 100.12 47.51 101.15 Q 46.38 102.18 44.81 102.18 M 44.81 102.18 M 44.97 101.41 Q 46.08 101.41 46.85 100.62 Q 47.61 99.82 47.9 98.36 Q 48.19 96.95 47.74 96.16 Q 47.29 95.36 46.21 95.36 Q 45.14 95.36 44.37 96.16 Q 43.61 96.96 43.32 98.38 Q 43.04 99.79 43.48 100.6 Q 43.92 101.41 44.97 101.41 M 44.97 101.41 M 49.93 102 L 51.38 94.77 L 52.4 94.77 L 51.11 101.23 L 54.36 101.23 L 54.21 102 M 49.93 102 M 54.65 103.45 L 58.99 94.77 L 59.75 94.77 L 55.41 103.45 M 54.65 103.45 M 60.5 102 L 60.65 101.28 L 62.09 101.28 L 63.23 95.57 L 61.72 95.94 L 61.87 95.19 L 64.4 94.59 L 63.06 101.28 L 64.51 101.28 L 64.36 102 M 60.5 102 M 66.23 99.47 L 66.37 98.75 L 70.71 98.75 L 70.56 99.47 M 66.23 99.47 M 72.5 102 L 72.65 101.28 L 74.09 101.28 L 75.23 95.57 L 73.72 95.94 L 73.87 95.19 L 76.4 94.59 L 75.06 101.28 L 76.51 101.28 L 76.36 102 M 72.5 102 M 80.76 102 L 81.17 99.95 L 77.92 99.95 L 78.07 99.23 L 82.21 94.77 L 83.11 94.77 L 82.23 99.17 L 83.2 99.17 L 83.04 99.95 L 82.08 99.95 L 81.67 102 M 80.76 102 M 79.02 99.17 L 81.39 99.17 L 82.04 95.96 M 79.02 99.17 M 84.5 102 Q 84.81 101.16 85.2 100.54 Q 85.58 99.92 86.46 98.85 L 89.07 95.68 L 85.35 95.68 L 85.53 94.77 L 90.17 94.77 L 89.99 95.68 Q 86.39 99.77 85.61 102 M 84.5 102"/></g><rect x="0" y="104" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 115 L 2.38 107.77 L 6.42 107.77 L 6.26 108.54 L 3.25 108.54 L 2.77 110.96 L 5.29 110.96 L 5.14 111.72 L 2.61 111.72 L 1.96 115 M 0.93 115 M 5.93 115 L 7.38 107.77 L 11.42 107.77 L 11.26 108.54 L 8.25 108.54 L 7.79 110.86 L 10.31 110.86 L 10.16 111.62 L 7.63 111.62 L 7.11 114.23 L 10.33 114.23 L 10.18 115 M 5.93 115 M 10.93 115 L 12.38 107.77 L 14.57 107.77 Q 15.61 107.77 16.07 108.23 Q 16.53 108.69 16.36 109.57 Q 16.07 111.01 14.49 111.62 L 16.22 115 L 14.96 115 L 13.52 111.94 L 12.56 111.94 L 11.95 115 M 10.93 115 M 12.71 111.18 L 13.04 111.18 Q 14.98 111.18 15.28 109.66 Q 15.51 108.54 13.88 108.54 L 13.24 108.54 M 12.71 111.18 M 17.03 114.95 L 17.21 114.05 Q 18.16 114.46 18.75 114.46 Q 19.44 114.46 19.96 114.06 Q 20.47 113.65 20.6 113.01 Q 20.9 111.49 18.77 111.49 L 18.39 111.49 L 18.52 110.84 L 18.85 110.83 Q 20.86 110.83 21.14 109.42 Q 21.36 108.32 20.04 108.32 Q 19.32 108.32 18.37 108.72 L 18.54 107.88 Q 19.45 107.59 20.25 107.59 Q 22.47 107.59 22.14 109.27 Q 21.88 110.54 20.26 111.08 Q 21.93 111.49 21.63 113 Q 21.43 114.02 20.64 114.6 Q 19.85 115.18 18.67 115.18 Q 18 115.18 17.03 114.95 M 17.03 114.95 M 21.66 116.68 L 21.81 115.96 L 26.81 115.96 L 26.66 116.68 M 21.66 116.68 M 27.93 115 L 29.38 107.77 L 31.57 107.77 Q 32.61 107.77 33.07 108.23 Q 33.53 108.69 33.36 109.57 Q 33.07 111.01 31.49 111.62 L 33.22 115 L 31.96 115 L 30.52 111.94 L 29.56 111.94 L 28.95 115 M 27.93 115 M 29.71 111.18 L 30.04 111.18 Q 31.98 111.18 32.28 109.66 Q 32.51 108.54 30.88 108.54 L 30.24 108.54 M 29.71 111.18 M 38.15 112.24 L 37.54 109.12 L 35.68 112.24 M 38.15 112.24 M 38.68 115 L 38.29 113 L 35.23 113 L 34.04 115 L 33.08 115 L 37.39 107.77 L 38.41 107.77 L 39.79 115 M 38.68 115 M 40.93 115 L 42.38 107.77 L 44.35 107.77 Q 45.65 107.77 46.14 108.22 Q 46.62 108.66 46.42 109.67 Q 46.19 110.82 45.28 111.47 Q 44.36 112.13 42.98 112.13 L 42.52 112.13 L 41.95 115 M 40.93 115 M 42.68 111.35 L 43.09 111.35 Q 44.01 111.35 44.59 110.93 Q 45.17 110.51 45.32 109.75 Q 45.45 109.1 45.12 108.82 Q 44.78 108.54 43.87 108.54 L 43.24 108.54 M 42.68 111.35 M 48.31 115.18 Q 47.58 115.18 46.52 114.86 L 46.72 113.85 Q 47.83 114.41 48.61 114.41 Q 49.22 114.41 49.65 114.1 Q 50.08 113.78 50.19 113.26 Q 50.27 112.84 50.09 112.54 Q 49.91 112.24 49.33 111.88 L 48.89 111.59 Q 48.07 111.06 47.79 110.59 Q 47.5 110.13 47.63 109.51 Q 47.79 108.67 48.51 108.13 Q 49.22 107.59 50.16 107.59 Q 50.99 107.59 51.86 107.87 L 51.68 108.81 Q 50.62 108.36 50.06 108.36 Q 49.53 108.36 49.13 108.64 Q 48.72 108.93 48.64 109.36 Q 48.57 109.72 48.76 110 Q 48.96 110.27 49.56 110.66 L 50.02 110.95 Q 50.85 111.48 51.12 111.96 Q 51.4 112.43 51.27 113.1 Q 51.08 114.04 50.27 114.61 Q 49.46 115.18 48.31 115.18 M 48.31 115.18 M 56.15 112.24 L 55.54 109.12 L 53.68 112.24 M 56.15 112.24 M 56.68 115 L 56.29 113 L 53.23 113 L 52.04 115 L 51.08 115 L 55.39 107.77 L 56.41 107.77 L 57.79 115 M 56.68 115 M 58.65 116.45 L 62.99 107.77 L 63.75 107.77 L 59.41 116.45 M 58.65 116.45 M 64.5 115 L 64.65 114.28 L 66.09 114.28 L 67.23 108.57 L 65.72 108.94 L 65.87 108.19 L 68.4 107.59 L 67.06 114.28 L 68.51 114.28 L 68.36 115 M 64.5 115 M 70.23 112.47 L 70.37 111.75 L 74.71 111.75 L 74.56 112.47 M 70.23 112.47 M 76.15 114.96 L 76.31 114.14 Q 77.16 114.46 77.81 114.46 Q 78.71 114.46 79.37 113.69 Q 80.02 112.93 80.3 111.57 Q 79.38 112.47 78.45 112.47 Q 77.54 112.47 77.04 111.8 Q 76.54 111.13 76.73 110.16 Q 76.95 109.05 77.77 108.32 Q 78.6 107.59 79.62 107.59 Q 80.8 107.59 81.29 108.54 Q 81.78 109.48 81.45 111.12 Q 81.08 112.99 80.03 114.08 Q 78.98 115.18 77.57 115.18 Q 77 115.18 76.15 114.96 M 76.15 114.96 M 77.73 109.97 Q 77.56 110.81 77.84 111.29 Q 78.12 111.78 78.76 111.78 Q 79.38 111.78 79.89 111.36 Q 80.41 110.95 80.52 110.36 Q 80.71 109.44 80.4 108.87 Q 80.1 108.31 79.42 108.31 Q 78.79 108.31 78.34 108.76 Q 77.88 109.2 77.73 109.97 M 77.73 109.97 M 83.47 111.25 Q 84.33 110.36 85.38 110.36 Q 86.33 110.36 86.8 110.99 Q 87.28 111.62 87.09 112.6 Q 86.86 113.73 86.04 114.45 Q 85.22 115.18 84.18 115.18 Q 82.98 115.18 82.5 114.22 Q 82.02 113.26 82.36 111.55 Q 82.74 109.67 83.72 108.63 Q 84.7 107.59 86.11 107.59 Q 86.75 107.59 87.66 107.86 L 87.49 108.7 Q 86.55 108.31 85.9 108.31 Q 84.06 108.31 83.47 111.25 M 83.47 111.25 M 86.08 112.81 Q 86.24 111.99 85.97 111.52 Q 85.69 111.05 85.04 111.05 Q 84.43 111.05 83.9 111.46 Q 83.38 111.88 83.27 112.45 Q 83.09 113.36 83.39 113.91 Q 83.7 114.46 84.39 114.46 Q 85.01 114.46 85.47 114.01 Q 85.93 113.56 86.08 112.81 M 86.08 112.81"/></g><rect x="0" y="117" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 128 L 2.38 120.77 L 6.42 120.77 L 6.26 121.54 L 3.25 121.54 L 2.77 123.96 L 5.29 123.96 L 5.14 124.72 L 2.61 124.72 L 1.96 128 M 0.93 128 M 5.93 128 L 7.38 120.77 L 11.42 120.77 L 11.26 121.54 L 8.25 121.54 L 7.79 123.86 L 10.31 123.86 L 10.16 124.62 L 7.63 124.62 L 7.11 127.23 L 10.33 127.23 L 10.18 128 M 5.93 128 M 10.93 128 L 12.38 120.77 L 14.57 120.77 Q 15.61 120.77 16.07 121.23 Q 16.53 121.69 16.36 122.57 Q 16.07 124.01 14.49 124.62 L 16.22 128 L 14.96 128 L 13.52 124.94 L 12.56 124.94 L 11.95 128 M 10.93 128 M 12.71 124.18 L 13.04 124.18 Q 14.98 124.18 15.28 122.66 Q 15.51 121.54 13.88 121.54 L 13.24 121.54 M 12.71 124.18 M 17.5 128 L 17.65 127.28 L 19.09 127.28 L 20.23 121.57 L 18.72 121.94 L 18.87 121.19 L 21.4 120.59 L 20.06 127.28 L 21.51 127.28 L 21.36 128 M 17.5 128 M 21.66 129.68 L 21.81 128.96 L 26.81 128.96 L 26.66 129.68 M 21.66 129.68 M 32.15 125.24 L 31.54 122.12 L 29.68 125.24 M 32.15 125.24 M 32.68 128 L 32.29 126 L 29.23 126 L 28.04 128 L 27.08 128 L 31.39 120.77 L 32.41 120.77 L 33.79 128 M 32.68 128 M 34.93 128 L 36.38 120.77 L 38.57 120.77 Q 39.61 120.77 40.07 121.23 Q 40.53 121.69 40.36 122.57 Q 40.07 124.01 38.49 124.62 L 40.22 128 L 38.96 128 L 37.52 124.94 L 36.56 124.94 L 35.95 128 M 34.93 128 M 36.71 124.18 L 37.04 124.18 Q 38.98 124.18 39.28 122.66 Q 39.51 121.54 37.88 121.54 L 37.24 121.54 M 36.71 124.18 M 45.15 125.24 L 44.54 122.12 L 42.68 125.24 M 45.15 125.24 M 45.68 128 L 45.29 126 L 42.23 126 L 41.04 128 L 40.08 128 L 44.39 120.77 L 45.41 120.77 L 46.79 128 M 45.68 128 M 49.65 128 L 50.94 121.54 L 48.38 121.54 L 48.53 120.77 L 54.69 120.77 L 54.53 121.54 L 51.97 121.54 L 50.68 128 M 49.65 128 M 53.93 128 L 55.38 120.77 L 56.4 120.77 L 55.79 123.82 L 59.23 123.82 L 59.84 120.77 L 60.87 120.77 L 59.42 128 L 58.4 128 L 59.08 124.59 L 55.64 124.59 L 54.96 128 M 53.93 128 M 60.65 129.45 L 64.99 120.77 L 65.75 120.77 L 61.41 129.45 M 60.65 129.45 M 66.5 128 L 66.65 127.28 L 68.09 127.28 L 69.23 121.57 L 67.72 121.94 L 67.87 121.19 L 70.4 120.59 L 69.06 127.28 L 70.51 127.28 L 70.36 128 M 66.5 128 M 72.23 125.47 L 72.37 124.75 L 76.71 124.75 L 76.56 125.47 M 72.23 125.47 M 78.5 128 L 78.65 127.28 L 80.09 127.28 L 81.23 121.57 L 79.72 121.94 L 79.87 121.19 L 82.4 120.59 L 81.06 127.28 L 82.51 127.28 L 82.36 128 M 78.5 128 M 86.76 128 L 87.17 125.95 L 83.92 125.95 L 84.07 125.23 L 88.21 120.77 L 89.11 120.77 L 88.23 125.17 L 89.2 125.17 L 89.04 125.95 L 88.08 125.95 L 87.67 128 M 86.76 128 M 85.02 125.17 L 87.39 125.17 L 88.04 121.96 M 85.02 125.17 M 92.09 124.06 Q 91.17 123.33 91.35 122.43 Q 91.52 121.61 92.22 121.1 Q 92.92 120.59 93.89 120.59 Q 94.78 120.59 95.25 121.02 Q 95.72 121.46 95.58 122.15 Q 95.37 123.2 93.85 124.06 Q 95.33 124.87 95.07 126.13 Q 94.89 127.04 94.09 127.61 Q 93.29 128.18 92.21 128.18 Q 91.14 128.18 90.59 127.64 Q 90.04 127.1 90.22 126.22 Q 90.48 124.92 92.09 124.06 M 92.09 124.06 M 93.37 123.76 Q 94.52 123.1 94.68 122.28 Q 94.77 121.85 94.48 121.58 Q 94.2 121.32 93.65 121.32 Q 93.12 121.32 92.73 121.58 Q 92.35 121.84 92.26 122.25 Q 92.18 122.66 92.42 122.98 Q 92.66 123.3 93.37 123.76 M 93.37 123.76 M 92.53 124.46 Q 91.86 124.9 91.59 125.24 Q 91.31 125.57 91.21 126.07 Q 91.09 126.69 91.41 127.07 Q 91.74 127.46 92.39 127.46 Q 93.02 127.46 93.48 127.13 Q 93.95 126.8 94.05 126.28 Q 94.13 125.86 93.95 125.57 Q 93.76 125.28 93.13 124.86 M 92.53 124.46"/></g><rect x="0" y="130" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 141 L 2.38 133.77 L 6.42 133.77 L 6.26 134.54 L 3.25 134.54 L 2.77 136.96 L 5.29 136.96 L 5.14 137.72 L 2.61 137.72 L 1.96 141 M 0.93 141 M 5.93 141 L 7.38 133.77 L 11.42 133.77 L 11.26 134.54 L 8.25 134.54 L 7.79 136.86 L 10.31 136.86 L 10.16 137.62 L 7.63 137.62 L 7.11 140.23 L 10.33 140.23 L 10.18 141 M 5.93 141 M 10.93 141 L 12.38 133.77 L 14.57 133.77 Q 15.61 133.77 16.07 134.23 Q 16.53 134.69 16.36 135.57 Q 16.07 137.01 14.49 137.62 L 16.22 141 L 14.96 141 L 13.52 137.94 L 12.56 137.94 L 11.95 141 M 10.93 141 M 12.71 137.18 L 13.04 137.18 Q 14.98 137.18 15.28 135.66 Q 15.51 134.54 13.88 134.54 L 13.24 134.54 M 12.71 137.18 M 15.66 142.68 L 15.81 141.96 L 20.81 141.96 L 20.66 142.68 M 15.66 142.68 M 21.93 141 L 23.38 133.77 L 25.25 133.77 Q 26.34 133.77 26.83 134.18 Q 27.33 134.59 27.18 135.37 Q 26.91 136.68 25.32 137.24 Q 26.98 137.78 26.7 139.19 Q 26.52 140.07 25.84 140.54 Q 25.17 141 24.06 141 M 21.93 141 M 23.1 140.23 L 23.31 140.23 Q 24.44 140.23 24.8 140.09 Q 25.49 139.82 25.63 139.1 Q 25.76 138.45 25.27 138.02 Q 24.78 137.6 23.92 137.6 L 23.63 137.6 M 23.1 140.23 M 23.76 136.95 L 24.09 136.95 Q 24.91 136.95 25.43 136.6 Q 25.95 136.24 26.08 135.6 Q 26.29 134.54 24.64 134.54 L 24.24 134.54 M 23.76 136.95 M 27.93 141 L 29.38 133.77 L 31.57 133.77 Q 32.61 133.77 33.07 134.23 Q 33.53 134.69 33.36 135.57 Q 33.07 137.01 31.49 137.62 L 33.22 141 L 31.96 141 L 30.52 137.94 L 29.56 137.94 L 28.95 141 M 27.93 141 M 29.71 137.18 L 30.04 137.18 Q 31.98 137.18 32.28 135.66 Q 32.51 134.54 30.88 134.54 L 30.24 134.54 M 29.71 137.18 M 38.15 138.24 L 37.54 135.12 L 35.68 138.24 M 38.15 138.24 M 38.68 141 L 38.29 139 L 35.23 139 L 34.04 141 L 33.08 141 L 37.39 133.77 L 38.41 133.77 L 39.79 141 M 38.68 141 M 40.93 141 L 42.38 133.77 L 43.38 133.77 L 45.91 139.35 L 47.02 133.77 L 47.9 133.77 L 46.46 141 L 45.45 141 L 42.93 135.42 L 41.81 141 M 40.93 141 M 52.15 138.24 L 51.54 135.12 L 49.68 138.24 M 52.15 138.24 M 52.68 141 L 52.29 139 L 49.23 139 L 48.04 141 L 47.08 141 L 51.39 133.77 L 52.41 133.77 L 53.79 141 M 52.68 141 M 54.65 142.45 L 58.99 133.77 L 59.75 133.77 L 55.41 142.45 M 54.65 142.45 M 60.5 141 L 60.65 140.28 L 62.09 140.28 L 63.23 134.57 L 61.72 134.94 L 61.87 134.19 L 64.4 133.59 L 63.06 140.28 L 64.51 140.28 L 64.36 141 M 60.5 141 M 66.23 138.47 L 66.37 137.75 L 70.71 137.75 L 70.56 138.47 M 66.23 138.47 M 72.15 140.96 L 72.31 140.14 Q 73.16 140.46 73.81 140.46 Q 74.71 140.46 75.37 139.69 Q 76.02 138.93 76.3 137.57 Q 75.38 138.47 74.45 138.47 Q 73.54 138.47 73.04 137.8 Q 72.54 137.13 72.73 136.16 Q 72.95 135.05 73.77 134.32 Q 74.6 133.59 75.62 133.59 Q 76.8 133.59 77.29 134.54 Q 77.78 135.48 77.45 137.12 Q 77.08 138.99 76.03 140.08 Q 74.98 141.18 73.57 141.18 Q 73 141.18 72.15 140.96 M 72.15 140.96 M 73.73 135.97 Q 73.56 136.81 73.84 137.29 Q 74.12 137.78 74.76 137.78 Q 75.38 137.78 75.89 137.36 Q 76.41 136.95 76.52 136.36 Q 76.71 135.44 76.4 134.87 Q 76.1 134.31 75.42 134.31 Q 74.79 134.31 74.34 134.76 Q 73.88 135.2 73.73 135.97 M 73.73 135.97 M 79.47 137.25 Q 80.33 136.36 81.38 136.36 Q 82.33 136.36 82.8 136.99 Q 83.28 137.62 83.09 138.6 Q 82.86 139.73 82.04 140.45 Q 81.22 141.18 80.18 141.18 Q 78.98 141.18 78.5 140.22 Q 78.02 139.26 78.36 137.55 Q 78.74 135.67 79.72 134.63 Q 80.7 133.59 82.11 133.59 Q 82.75 133.59 83.66 133.86 L 83.49 134.7 Q 82.55 134.31 81.9 134.31 Q 80.06 134.31 79.47 137.25 M 79.47 137.25 M 82.08 138.81 Q 82.24 137.99 81.97 137.52 Q 81.69 137.05 81.04 137.05 Q 80.43 137.05 79.9 137.46 Q 79.38 137.88 79.27 138.45 Q 79.09 139.36 79.39 139.91 Q 79.7 140.46 80.39 140.46 Q 81.01 140.46 81.47 140.01 Q 81.93 139.56 82.08 138.81 M 82.08 138.81"/></g><rect x="0" y="143" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 154 L 2.38 146.77 L 6.42 146.77 L 6.26 147.54 L 3.25 147.54 L 2.77 149.96 L 5.29 149.96 L 5.14 150.72 L 2.61 150.72 L 1.96 154 M 0.93 154 M 5.93 154 L 7.38 146.77 L 11.42 146.77 L 11.26 147.54 L 8.25 147.54 L 7.79 149.86 L 10.31 149.86 L 10.16 150.62 L 7.63 150.62 L 7.11 153.23 L 10.33 153.23 L 10.18 154 M 5.93 154 M 10.93 154 L 12.38 146.77 L 14.57 146.77 Q 15.61 146.77 16.07 147.23 Q 16.53 147.69 16.36 148.57 Q 16.07 150.01 14.49 150.62 L 16.22 154 L 14.96 154 L 13.52 150.94 L 12.56 150.94 L 11.95 154 M 10.93 154 M 12.71 150.18 L 13.04 150.18 Q 14.98 150.18 15.28 148.66 Q 15.51 147.54 13.88 147.54 L 13.24 147.54 M 12.71 150.18 M 16.83 154 L 17 153.16 Q 17.62 152.17 19.13 151.02 L 19.78 150.52 Q 21.03 149.56 21.22 148.61 Q 21.34 148.01 21.05 147.66 Q 20.75 147.32 20.12 147.32 Q 19.37 147.32 18.23 147.9 L 18.4 147.05 Q 19.45 146.59 20.4 146.59 Q 21.42 146.59 21.92 147.14 Q 22.43 147.69 22.25 148.59 Q 22.12 149.24 21.71 149.74 Q 21.3 150.25 20.31 150.96 L 19.87 151.28 Q 18.52 152.26 18.16 153.16 L 21.3 153.16 L 21.13 154 M 16.83 154 M 21.66 155.68 L 21.81 154.96 L 26.81 154.96 L 26.66 155.68 M 21.66 155.68 M 32.15 151.24 L 31.54 148.12 L 29.68 151.24 M 32.15 151.24 M 32.68 154 L 32.29 152 L 29.23 152 L 28.04 154 L 27.08 154 L 31.39 146.77 L 32.41 146.77 L 33.79 154 M 32.68 154 M 34.93 154 L 36.38 146.77 L 38.57 146.77 Q 39.61 146.77 40.07 147.23 Q 40.53 147.69 40.36 148.57 Q 40.07 150.01 38.49 150.62 L 40.22 154 L 38.96 154 L 37.52 150.94 L 36.56 150.94 L 35.95 154 M 34.93 154 M 36.71 150.18 L 37.04 150.18 Q 38.98 150.18 39.28 148.66 Q 39.51 147.54 37.88 147.54 L 37.24 147.54 M 36.71 150.18 M 45.15 151.24 L 44.54 148.12 L 42.68 151.24 M 45.15 151.24 M 45.68 154 L 45.29 152 L 42.23 152 L 41.04 154 L 40.08 154 L 44.39 146.77 L 45.41 146.77 L 46.79 154 M 45.68 154 M 49.65 154 L 50.94 147.54 L 48.38 147.54 L 48.53 146.77 L 54.69 146.77 L 54.53 147.54 L 51.97 147.54 L 50.68 154 M 49.65 154 M 53.93 154 L 55.38 146.77 L 56.4 146.77 L 55.79 149.82 L 59.23 149.82 L 59.84 146.77 L 60.87 146.77 L 59.42 154 L 58.4 154 L 59.08 150.59 L 55.64 150.59 L 54.96 154 M 53.93 154 M 60.65 155.45 L 64.99 146.77 L 65.75 146.77 L 61.41 155.45 M 60.65 155.45 M 66.5 154 L 66.65 153.28 L 68.09 153.28 L 69.23 147.57 L 67.72 147.94 L 67.87 147.19 L 70.4 146.59 L 69.06 153.28 L 70.51 153.28 L 70.36 154 M 66.5 154 M 72.23 151.47 L 72.37 150.75 L 76.71 150.75 L 76.56 151.47 M 72.23 151.47 M 78.5 154 L 78.65 153.28 L 80.09 153.28 L 81.23 147.57 L 79.72 147.94 L 79.87 147.19 L 82.4 146.59 L 81.06 153.28 L 82.51 153.28 L 82.36 154 M 78.5 154 M 86.76 154 L 87.17 151.95 L 83.92 151.95 L 84.07 151.23 L 88.21 146.77 L 89.11 146.77 L 88.23 151.17 L 89.2 151.17 L 89.04 151.95 L 88.08 151.95 L 87.67 154 M 86.76 154 M 85.02 151.17 L 87.39 151.17 L 88.04 147.96 M 85.02 151.17 M 92.09 150.06 Q 91.17 149.33 91.35 148.43 Q 91.52 147.61 92.22 147.1 Q 92.92 146.59 93.89 146.59 Q 94.78 146.59 95.25 147.02 Q 95.72 147.46 95.58 148.15 Q 95.37 149.2 93.85 150.06 Q 95.33 150.87 95.07 152.13 Q 94.89 153.04 94.09 153.61 Q 93.29 154.18 92.21 154.18 Q 91.14 154.18 90.59 153.64 Q 90.04 153.1 90.22 152.22 Q 90.48 150.92 92.09 150.06 M 92.09 150.06 M 93.37 149.76 Q 94.52 149.1 94.68 148.28 Q 94.77 147.85 94.48 147.58 Q 94.2 147.32 93.65 147.32 Q 93.12 147.32 92.73 147.58 Q 92.35 147.84 92.26 148.25 Q 92.18 148.66 92.42 148.98 Q 92.66 149.3 93.37 149.76 M 93.37 149.76 M 92.53 150.46 Q 91.86 150.9 91.59 151.24 Q 91.31 151.57 91.21 152.07 Q 91.09 152.69 91.41 153.07 Q 91.74 153.46 92.39 153.46 Q 93.02 153.46 93.48 153.13 Q 93.95 152.8 94.05 152.28 Q 94.13 151.86 93.95 151.57 Q 93.76 151.28 93.13 150.86 M 92.53 150.46"/></g><rect x="0" y="156" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 7.06 168.45 Q 5.47 167.89 4.47 167.13 Q 4 167.18 3.75 167.18 Q 2.29 167.18 1.59 166.13 Q 0.89 165.07 1.23 163.39 Q 1.58 161.66 2.7 160.63 Q 3.83 159.59 5.37 159.59 Q 6.91 159.59 7.62 160.63 Q 8.33 161.66 7.99 163.4 Q 7.49 165.89 5.45 166.85 Q 6.58 167.4 7.87 167.63 M 7.06 168.45 M 3.97 166.41 Q 5.08 166.41 5.85 165.62 Q 6.61 164.82 6.9 163.37 Q 7.19 161.96 6.74 161.16 Q 6.29 160.36 5.21 160.36 Q 4.14 160.36 3.37 161.16 Q 2.61 161.96 2.32 163.38 Q 2.04 164.79 2.48 165.6 Q 2.92 166.41 3.97 166.41 M 3.97 166.41 M 9.15 166.96 L 9.31 166.14 Q 10.16 166.46 10.81 166.46 Q 11.71 166.46 12.37 165.69 Q 13.02 164.93 13.3 163.57 Q 12.38 164.47 11.45 164.47 Q 10.54 164.47 10.04 163.8 Q 9.54 163.13 9.73 162.16 Q 9.95 161.05 10.77 160.32 Q 11.6 159.59 12.62 159.59 Q 13.8 159.59 14.29 160.54 Q 14.78 161.48 14.45 163.12 Q 14.08 164.99 13.03 166.08 Q 11.98 167.18 10.57 167.18 Q 10 167.18 9.15 166.96 M 9.15 166.96 M 10.73 161.97 Q 10.56 162.81 10.84 163.29 Q 11.12 163.78 11.76 163.78 Q 12.38 163.78 12.89 163.36 Q 13.41 162.95 13.52 162.36 Q 13.71 161.44 13.4 160.87 Q 13.1 160.31 12.42 160.31 Q 11.79 160.31 11.34 160.76 Q 10.88 161.2 10.73 161.97 M 10.73 161.97 M 15.03 166.95 L 15.21 166.05 Q 16.16 166.46 16.75 166.46 Q 17.44 166.46 17.96 166.06 Q 18.47 165.65 18.6 165.01 Q 18.9 163.49 16.77 163.49 L 16.39 163.49 L 16.52 162.84 L 16.85 162.83 Q 18.86 162.83 19.14 161.42 Q 19.36 160.32 18.04 160.32 Q 17.32 160.32 16.37 160.72 L 16.54 159.88 Q 17.45 159.59 18.25 159.59 Q 20.47 159.59 20.14 161.27 Q 19.88 162.54 18.26 163.08 Q 19.93 163.49 19.63 165 Q 19.43 166.02 18.64 166.6 Q 17.85 167.18 16.67 167.18 Q 16 167.18 15.03 166.95 M 15.03 166.95 M 20.46 167 L 20.63 166.18 L 25.64 160.54 L 22 160.54 L 22.15 159.77 L 27.02 159.77 L 26.87 160.54 L 21.86 166.18 L 25.74 166.18 L 25.58 167 M 20.46 167 M 28.47 163.25 Q 29.33 162.36 30.38 162.36 Q 31.33 162.36 31.8 162.99 Q 32.28 163.62 32.09 164.6 Q 31.86 165.73 31.04 166.45 Q 30.22 167.18 29.18 167.18 Q 27.98 167.18 27.5 166.22 Q 27.02 165.26 27.36 163.55 Q 27.74 161.67 28.72 160.63 Q 29.7 159.59 31.11 159.59 Q 31.75 159.59 32.66 159.86 L 32.49 160.7 Q 31.55 160.31 30.9 160.31 Q 29.06 160.31 28.47 163.25 M 28.47 163.25 M 31.08 164.81 Q 31.24 163.99 30.97 163.52 Q 30.69 163.05 30.04 163.05 Q 29.43 163.05 28.9 163.46 Q 28.38 163.88 28.27 164.45 Q 28.09 165.36 28.39 165.91 Q 28.7 166.46 29.39 166.46 Q 30.01 166.46 30.47 166.01 Q 30.93 165.56 31.08 164.81 M 31.08 164.81 M 35.1 167.18 Q 33.98 167.18 33.5 166.13 Q 33.02 165.08 33.36 163.38 Q 33.7 161.67 34.6 160.63 Q 35.51 159.59 36.65 159.59 Q 37.78 159.59 38.27 160.63 Q 38.76 161.67 38.42 163.37 Q 38.07 165.11 37.17 166.14 Q 36.27 167.18 35.1 167.18 M 35.1 167.18 M 35.25 166.46 Q 36.78 166.46 37.4 163.35 Q 38.01 160.32 36.5 160.32 Q 35 160.32 34.38 163.38 Q 33.77 166.46 35.25 166.46 M 35.25 166.46 M 37.66 168.68 L 37.81 167.96 L 42.81 167.96 L 42.66 168.68 M 37.66 168.68 M 48.15 164.24 L 47.54 161.12 L 45.68 164.24 M 48.15 164.24 M 48.68 167 L 48.29 165 L 45.23 165 L 44.04 167 L 43.08 167 L 47.39 159.77 L 48.41 159.77 L 49.79 167 M 48.68 167 M 50.93 167 L 52.38 159.77 L 54.57 159.77 Q 55.61 159.77 56.07 160.23 Q 56.53 160.69 56.36 161.57 Q 56.07 163.01 54.49 163.62 L 56.22 167 L 54.96 167 L 53.52 163.94 L 52.56 163.94 L 51.95 167 M 50.93 167 M 52.71 163.18 L 53.04 163.18 Q 54.98 163.18 55.28 161.66 Q 55.51 160.54 53.88 160.54 L 53.24 160.54 M 52.71 163.18 M 61.15 164.24 L 60.54 161.12 L 58.68 164.24 M 61.15 164.24 M 61.68 167 L 61.29 165 L 58.23 165 L 57.04 167 L 56.08 167 L 60.39 159.77 L 61.41 159.77 L 62.79 167 M 61.68 167 M 65.65 167 L 66.94 160.54 L 64.38 160.54 L 64.53 159.77 L 70.69 159.77 L 70.53 160.54 L 67.97 160.54 L 66.68 167 M 65.65 167 M 69.93 167 L 71.38 159.77 L 72.4 159.77 L 71.79 162.82 L 75.23 162.82 L 75.84 159.77 L 76.87 159.77 L 75.42 167 L 74.4 167 L 75.08 163.59 L 71.64 163.59 L 70.96 167 M 69.93 167 M 76.65 168.45 L 80.99 159.77 L 81.75 159.77 L 77.41 168.45 M 76.65 168.45 M 82.5 167 L 82.65 166.28 L 84.09 166.28 L 85.23 160.57 L 83.72 160.94 L 83.87 160.19 L 86.4 159.59 L 85.06 166.28 L 86.51 166.28 L 86.36 167 M 82.5 167 M 88.23 164.47 L 88.37 163.75 L 92.71 163.75 L 92.56 164.47 M 88.23 164.47 M 94.5 167 L 94.65 166.28 L 96.09 166.28 L 97.23 160.57 L 95.72 160.94 L 95.87 160.19 L 98.4 159.59 L 97.06 166.28 L 98.51 166.28 L 98.36 167 M 94.5 167 M 100.5 167 L 100.65 166.28 L 102.09 166.28 L 103.23 160.57 L 101.72 160.94 L 101.87 160.19 L 104.4 159.59 L 103.06 166.28 L 104.51 166.28 L 104.36 167 M 100.5 167 M 108.09 163.06 Q 107.17 162.33 107.35 161.43 Q 107.52 160.61 108.22 160.1 Q 108.92 159.59 109.89 159.59 Q 110.78 159.59 111.25 160.02 Q 111.72 160.46 111.58 161.15 Q 111.37 162.2 109.85 163.06 Q 111.33 163.87 111.07 165.13 Q 110.89 166.04 110.09 166.61 Q 109.29 167.18 108.21 167.18 Q 107.14 167.18 106.59 166.64 Q 106.04 166.1 106.22 165.22 Q 106.48 163.92 108.09 163.06 M 108.09 163.06 M 109.37 162.76 Q 110.52 162.1 110.68 161.28 Q 110.77 160.85 110.48 160.58 Q 110.2 160.32 109.65 160.32 Q 109.12 160.32 108.73 160.58 Q 108.35 160.84 108.26 161.25 Q 108.18 161.66 108.42 161.98 Q 108.66 162.3 109.37 162.76 M 109.37 162.76 M 108.53 163.46 Q 107.86 163.9 107.59 164.24 Q 107.31 164.57 107.21 165.07 Q 107.09 165.69 107.41 166.07 Q 107.74 166.46 108.39 166.46 Q 109.02 166.46 109.48 166.13 Q 109.95 165.8 110.05 165.28 Q 110.13 164.86 109.95 164.57 Q 109.76 164.28 109.13 163.86 M 108.53 163.46"/></g><rect x="0" y="169" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 180 L 2.38 172.77 L 6.42 172.77 L 6.26 173.54 L 3.25 173.54 L 2.77 175.96 L 5.29 175.96 L 5.14 176.72 L 2.61 176.72 L 1.96 180 M 0.93 180 M 5.93 180 L 7.38 172.77 L 11.42 172.77 L 11.26 173.54 L 8.25 173.54 L 7.79 175.86 L 10.31 175.86 L 10.16 176.62 L 7.63 176.62 L 7.11 179.23 L 10.33 179.23 L 10.18 180 M 5.93 180 M 10.93 180 L 12.38 172.77 L 14.57 172.77 Q 15.61 172.77 16.07 173.23 Q 16.53 173.69 16.36 174.57 Q 16.07 176.01 14.49 176.62 L 16.22 180 L 14.96 180 L 13.52 176.94 L 12.56 176.94 L 11.95 180 M 10.93 180 M 12.71 176.18 L 13.04 176.18 Q 14.98 176.18 15.28 174.66 Q 15.51 173.54 13.88 173.54 L 13.24 173.54 M 12.71 176.18 M 17.5 180 L 17.65 179.28 L 19.09 179.28 L 20.23 173.57 L 18.72 173.94 L 18.87 173.19 L 21.4 172.59 L 20.06 179.28 L 21.51 179.28 L 21.36 180 M 17.5 180 M 21.66 181.68 L 21.81 180.96 L 26.81 180.96 L 26.66 181.68 M 21.66 181.68 M 27.93 180 L 29.38 172.77 L 30.8 172.77 L 31.68 178.36 L 34.86 172.77 L 36.13 172.77 L 34.69 180 L 33.73 180 L 34.9 174.12 L 31.83 179.52 L 30.84 179.52 L 29.99 174.11 L 28.81 180 M 27.93 180 M 41.15 177.24 L 40.54 174.12 L 38.68 177.24 M 41.15 177.24 M 41.68 180 L 41.29 178 L 38.23 178 L 37.04 180 L 36.08 180 L 40.39 172.77 L 41.41 172.77 L 42.79 180 M 41.68 180 M 43.93 180 L 45.37 172.77 L 46.4 172.77 L 44.95 180 M 43.93 180 M 46.46 180 L 46.63 179.18 L 51.64 173.54 L 48 173.54 L 48.15 172.77 L 53.02 172.77 L 52.87 173.54 L 47.86 179.18 L 51.74 179.18 L 51.58 180 M 46.46 180 M 52.93 180 L 54.38 172.77 L 58.42 172.77 L 58.26 173.54 L 55.25 173.54 L 54.79 175.86 L 57.31 175.86 L 57.16 176.62 L 54.63 176.62 L 54.11 179.23 L 57.33 179.23 L 57.18 180 M 52.93 180 M 57.65 181.45 L 61.99 172.77 L 62.75 172.77 L 58.41 181.45 M 57.65 181.45 M 63.5 180 L 63.65 179.28 L 65.09 179.28 L 66.23 173.57 L 64.72 173.94 L 64.87 173.19 L 67.4 172.59 L 66.06 179.28 L 67.51 179.28 L 67.36 180 M 63.5 180 M 69.23 177.47 L 69.37 176.75 L 73.71 176.75 L 73.56 177.47 M 69.23 177.47 M 75.5 180 L 75.65 179.28 L 77.09 179.28 L 78.23 173.57 L 76.72 173.94 L 76.87 173.19 L 79.4 172.59 L 78.06 179.28 L 79.51 179.28 L 79.36 180 M 75.5 180 M 81.21 180.03 L 81.38 179.17 Q 82.04 179.46 82.69 179.46 Q 83.4 179.46 83.9 179.04 Q 84.39 178.62 84.54 177.88 Q 84.86 176.25 82.62 176.25 Q 82.37 176.25 82.08 176.29 L 82.78 172.77 L 86.44 172.77 L 86.27 173.61 L 83.46 173.61 L 83.08 175.52 Q 84.47 175.52 85.12 176.16 Q 85.78 176.8 85.55 177.93 Q 85.34 178.98 84.51 179.58 Q 83.68 180.18 82.42 180.18 Q 81.87 180.18 81.21 180.03 M 81.21 180.03 M 89.1 180.18 Q 87.98 180.18 87.5 179.13 Q 87.02 178.08 87.36 176.38 Q 87.7 174.67 88.6 173.63 Q 89.51 172.59 90.65 172.59 Q 91.78 172.59 92.27 173.63 Q 92.76 174.67 92.42 176.37 Q 92.07 178.11 91.17 179.14 Q 90.27 180.18 89.1 180.18 M 89.1 180.18 M 89.25 179.46 Q 90.78 179.46 91.4 176.35 Q 92.01 173.32 90.5 173.32 Q 89 173.32 88.38 176.38 Q 87.77 179.46 89.25 179.46 M 89.25 179.46"/></g><rect x="0" y="182" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 3.81 193.18 Q 2.3 193.18 1.6 192.14 Q 0.89 191.1 1.23 189.38 Q 1.58 187.66 2.7 186.63 Q 3.83 185.59 5.37 185.59 Q 6.9 185.59 7.62 186.62 Q 8.33 187.65 7.99 189.37 Q 7.64 191.12 6.51 192.15 Q 5.38 193.18 3.81 193.18 M 3.81 193.18 M 3.97 192.41 Q 5.08 192.41 5.85 191.62 Q 6.61 190.82 6.9 189.36 Q 7.19 187.95 6.74 187.16 Q 6.29 186.36 5.21 186.36 Q 4.14 186.36 3.37 187.16 Q 2.61 187.96 2.32 189.38 Q 2.04 190.79 2.48 191.6 Q 2.92 192.41 3.97 192.41 M 3.97 192.41 M 11.09 189.06 Q 10.17 188.33 10.35 187.43 Q 10.52 186.61 11.22 186.1 Q 11.92 185.59 12.89 185.59 Q 13.78 185.59 14.25 186.02 Q 14.72 186.46 14.58 187.15 Q 14.37 188.2 12.85 189.06 Q 14.33 189.87 14.07 191.13 Q 13.89 192.04 13.09 192.61 Q 12.29 193.18 11.21 193.18 Q 10.14 193.18 9.59 192.64 Q 9.04 192.1 9.22 191.22 Q 9.48 189.92 11.09 189.06 M 11.09 189.06 M 12.37 188.76 Q 13.52 188.1 13.68 187.28 Q 13.77 186.85 13.48 186.58 Q 13.2 186.32 12.65 186.32 Q 12.12 186.32 11.73 186.58 Q 11.35 186.84 11.26 187.25 Q 11.18 187.66 11.42 187.98 Q 11.66 188.3 12.37 188.76 M 12.37 188.76 M 11.53 189.46 Q 10.86 189.9 10.59 190.24 Q 10.31 190.57 10.21 191.07 Q 10.09 191.69 10.41 192.07 Q 10.74 192.46 11.39 192.46 Q 12.02 192.46 12.48 192.13 Q 12.95 191.8 13.05 191.28 Q 13.13 190.86 12.95 190.57 Q 12.76 190.28 12.13 189.86 M 11.53 189.46 M 17.1 193.18 Q 15.98 193.18 15.5 192.13 Q 15.02 191.08 15.36 189.38 Q 15.7 187.67 16.6 186.63 Q 17.51 185.59 18.65 185.59 Q 19.78 185.59 20.27 186.63 Q 20.76 187.67 20.42 189.37 Q 20.07 191.11 19.17 192.14 Q 18.27 193.18 17.1 193.18 M 17.1 193.18 M 17.25 192.46 Q 18.78 192.46 19.4 189.35 Q 20.01 186.32 18.5 186.32 Q 17 186.32 16.38 189.38 Q 15.77 192.46 17.25 192.46 M 17.25 192.46 M 23.76 193 L 24.17 190.95 L 20.92 190.95 L 21.07 190.23 L 25.21 185.77 L 26.11 185.77 L 25.23 190.17 L 26.2 190.17 L 26.04 190.95 L 25.08 190.95 L 24.67 193 M 23.76 193 M 22.02 190.17 L 24.39 190.17 L 25.04 186.96 M 22.02 190.17 M 26.83 193 L 27 192.16 Q 27.62 191.17 29.13 190.02 L 29.78 189.52 Q 31.03 188.56 31.22 187.61 Q 31.34 187.01 31.05 186.66 Q 30.75 186.32 30.12 186.32 Q 29.37 186.32 28.23 186.9 L 28.4 186.05 Q 29.45 185.59 30.4 185.59 Q 31.42 185.59 31.92 186.14 Q 32.43 186.69 32.25 187.59 Q 32.12 188.24 31.71 188.74 Q 31.3 189.25 30.31 189.96 L 29.87 190.28 Q 28.52 191.26 28.16 192.16 L 31.3 192.16 L 31.13 193 M 26.83 193 M 33.15 192.96 L 33.31 192.14 Q 34.16 192.46 34.81 192.46 Q 35.71 192.46 36.37 191.69 Q 37.02 190.93 37.3 189.57 Q 36.38 190.47 35.45 190.47 Q 34.54 190.47 34.04 189.8 Q 33.54 189.13 33.73 188.16 Q 33.95 187.05 34.77 186.32 Q 35.6 185.59 36.62 185.59 Q 37.8 185.59 38.29 186.54 Q 38.78 187.48 38.45 189.12 Q 38.08 190.99 37.03 192.08 Q 35.98 193.18 34.57 193.18 Q 34 193.18 33.15 192.96 M 33.15 192.96 M 34.73 187.97 Q 34.56 188.81 34.84 189.29 Q 35.12 189.78 35.76 189.78 Q 36.38 189.78 36.89 189.36 Q 37.41 188.95 37.52 188.36 Q 37.71 187.44 37.4 186.87 Q 37.1 186.31 36.42 186.31 Q 35.79 186.31 35.34 186.76 Q 34.88 187.2 34.73 187.97 M 34.73 187.97 M 37.66 194.68 L 37.81 193.96 L 42.81 193.96 L 42.66 194.68 M 37.66 194.68 M 43.93 193 L 45.38 185.77 L 46.8 185.77 L 47.68 191.36 L 50.86 185.77 L 52.13 185.77 L 50.69 193 L 49.73 193 L 50.9 187.12 L 47.83 192.52 L 46.84 192.52 L 45.99 187.11 L 44.81 193 M 43.93 193 M 57.15 190.24 L 56.54 187.12 L 54.68 190.24 M 57.15 190.24 M 57.68 193 L 57.29 191 L 54.23 191 L 53.04 193 L 52.08 193 L 56.39 185.77 L 57.41 185.77 L 58.79 193 M 57.68 193 M 59.93 193 L 61.37 185.77 L 62.4 185.77 L 60.95 193 M 59.93 193 M 62.46 193 L 62.63 192.18 L 67.64 186.54 L 64 186.54 L 64.15 185.77 L 69.02 185.77 L 68.87 186.54 L 63.86 192.18 L 67.74 192.18 L 67.58 193 M 62.46 193 M 68.93 193 L 70.38 185.77 L 74.42 185.77 L 74.26 186.54 L 71.25 186.54 L 70.79 188.86 L 73.31 188.86 L 73.16 189.62 L 70.63 189.62 L 70.11 192.23 L 73.33 192.23 L 73.18 193 M 68.93 193 M 73.65 194.45 L 77.99 185.77 L 78.75 185.77 L 74.41 194.45 M 73.65 194.45 M 79.5 193 L 79.65 192.28 L 81.09 192.28 L 82.23 186.57 L 80.72 186.94 L 80.87 186.19 L 83.4 185.59 L 82.06 192.28 L 83.51 192.28 L 83.36 193 M 79.5 193 M 85.23 190.47 L 85.37 189.75 L 89.71 189.75 L 89.56 190.47 M 85.23 190.47 M 91.5 193 L 91.65 192.28 L 93.09 192.28 L 94.23 186.57 L 92.72 186.94 L 92.87 186.19 L 95.4 185.59 L 94.06 192.28 L 95.51 192.28 L 95.36 193 M 91.5 193 M 99.76 193 L 100.17 190.95 L 96.92 190.95 L 97.07 190.23 L 101.21 185.77 L 102.11 185.77 L 101.23 190.17 L 102.2 190.17 L 102.04 190.95 L 101.08 190.95 L 100.67 193 M 99.76 193 M 98.02 190.17 L 100.39 190.17 L 101.04 186.96 M 98.02 190.17 M 105.1 193.18 Q 103.98 193.18 103.5 192.13 Q 103.02 191.08 103.36 189.38 Q 103.7 187.67 104.6 186.63 Q 105.51 185.59 106.65 185.59 Q 107.78 185.59 108.27 186.63 Q 108.76 187.67 108.42 189.37 Q 108.07 191.11 107.17 192.14 Q 106.27 193.18 105.1 193.18 M 105.1 193.18 M 105.25 192.46 Q 106.78 192.46 107.4 189.35 Q 108.01 186.32 106.5 186.32 Q 105 186.32 104.38 189.38 Q 103.77 192.46 105.25 192.46 M 105.25 192.46"/></g><rect x="0" y="0" width="141" height="201" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,-3,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,-3,214)" ><path d="M 44.35 18.18 Q 43.62 18.18 42.49 17.86 L 42.49 16.85 Q 43.71 17.41 44.5 17.41 Q 45.1 17.41 45.47 17.1 Q 45.84 16.78 45.84 16.26 Q 45.84 15.84 45.6 15.54 Q 45.35 15.24 44.71 14.88 L 44.21 14.59 Q 43.28 14.06 42.91 13.59 Q 42.53 13.13 42.53 12.51 Q 42.53 11.67 43.13 11.13 Q 43.74 10.59 44.68 10.59 Q 45.51 10.59 46.44 10.87 L 46.44 11.81 Q 45.3 11.36 44.73 11.36 Q 44.2 11.36 43.86 11.64 Q 43.51 11.93 43.51 12.36 Q 43.51 12.72 43.76 13 Q 44.02 13.27 44.69 13.66 L 45.21 13.95 Q 46.15 14.48 46.52 14.96 Q 46.89 15.43 46.89 16.1 Q 46.89 17.04 46.19 17.61 Q 45.5 18.18 44.35 18.18 M 44.35 18.18 M 51.85 17.83 Q 50.88 18.12 50.19 18.12 Q 49.02 18.12 48.28 17.34 Q 47.54 16.56 47.54 15.32 Q 47.54 14.12 48.19 13.35 Q 48.85 12.58 49.86 12.58 Q 50.82 12.58 51.35 13.26 Q 51.87 13.94 51.87 15.2 L 51.87 15.5 L 48.52 15.5 Q 48.73 17.39 50.37 17.39 Q 50.97 17.39 51.85 17.07 M 51.85 17.83 M 48.57 14.78 L 50.91 14.78 Q 50.91 13.3 49.8 13.3 Q 48.69 13.3 48.57 14.78 M 48.57 14.78 M 56.03 18.12 Q 54.96 18.12 54.25 17.33 Q 53.54 16.53 53.54 15.32 Q 53.54 14.03 54.24 13.3 Q 54.94 12.58 56.2 12.58 Q 56.82 12.58 57.58 12.75 L 57.58 13.56 Q 56.77 13.32 56.26 13.32 Q 55.52 13.32 55.07 13.87 Q 54.63 14.43 54.63 15.35 Q 54.63 16.24 55.08 16.79 Q 55.54 17.35 56.29 17.35 Q 56.95 17.35 57.64 17.01 L 57.64 17.84 Q 56.71 18.12 56.03 18.12 M 56.03 18.12 M 61.04 18.12 Q 59.9 18.12 59.22 17.37 Q 58.54 16.61 58.54 15.35 Q 58.54 14.07 59.22 13.32 Q 59.9 12.58 61.07 12.58 Q 62.24 12.58 62.92 13.32 Q 63.6 14.07 63.6 15.34 Q 63.6 16.64 62.92 17.38 Q 62.23 18.12 61.04 18.12 M 61.04 18.12 M 61.05 17.4 Q 62.58 17.4 62.58 15.34 Q 62.58 13.3 61.07 13.3 Q 59.57 13.3 59.57 15.35 Q 59.57 17.4 61.05 17.4 M 61.05 17.4 M 64.96 18 L 64.96 12.7 L 65.92 12.7 L 65.92 13.69 Q 66.69 12.58 67.79 12.58 Q 68.48 12.58 68.89 13.02 Q 69.3 13.45 69.3 14.19 L 69.3 18 L 68.34 18 L 68.34 14.5 Q 68.34 13.91 68.16 13.66 Q 67.99 13.41 67.59 13.41 Q 66.71 13.41 65.92 14.57 L 65.92 18 M 64.96 18 M 74.37 18 L 74.37 17 Q 73.78 18.12 72.6 18.12 Q 71.64 18.12 71.09 17.42 Q 70.54 16.73 70.54 15.51 Q 70.54 14.19 71.16 13.39 Q 71.79 12.58 72.8 12.58 Q 73.75 12.58 74.37 13.3 L 74.37 10.29 L 75.33 10.29 L 75.33 18 M 74.37 18 M 74.37 13.96 Q 73.62 13.3 72.95 13.3 Q 71.57 13.3 71.57 15.42 Q 71.57 17.28 72.8 17.28 Q 73.6 17.28 74.37 16.4 M 74.37 13.96 M 79.7 17.33 Q 78.83 18.12 78.03 18.12 Q 77.37 18.12 76.94 17.71 Q 76.5 17.3 76.5 16.67 Q 76.5 15.8 77.23 15.33 Q 77.96 14.87 79.33 14.87 L 79.55 14.87 L 79.55 14.23 Q 79.55 13.3 78.61 13.3 Q 77.85 13.3 76.96 13.77 L 76.96 12.98 Q 77.93 12.58 78.78 12.58 Q 79.67 12.58 80.09 12.98 Q 80.52 13.38 80.52 14.23 L 80.52 16.63 Q 80.52 17.45 81.02 17.45 Q 81.09 17.45 81.21 17.43 L 81.28 17.97 Q 80.95 18.12 80.56 18.12 Q 79.88 18.12 79.7 17.33 M 79.7 17.33 M 79.55 16.8 L 79.55 15.43 L 79.23 15.42 Q 78.44 15.42 77.95 15.72 Q 77.46 16.02 77.46 16.51 Q 77.46 16.86 77.71 17.1 Q 77.95 17.34 78.3 17.34 Q 78.91 17.34 79.55 16.8 M 79.55 16.8 M 82.96 18 L 82.96 12.7 L 83.92 12.7 L 83.92 13.69 Q 84.5 12.58 85.58 12.58 Q 85.73 12.58 85.89 12.6 L 85.89 13.5 Q 85.64 13.42 85.45 13.42 Q 84.54 13.42 83.92 14.5 L 83.92 18 M 82.96 18 M 87.27 19.93 L 88.13 18 L 86.08 12.7 L 87.12 12.7 L 88.64 16.69 L 90.26 12.7 L 91.17 12.7 L 88.27 19.93 M 87.27 19.93 M 96.35 18.18 Q 95.62 18.18 94.49 17.86 L 94.49 16.85 Q 95.71 17.41 96.5 17.41 Q 97.1 17.41 97.47 17.1 Q 97.84 16.78 97.84 16.26 Q 97.84 15.84 97.6 15.54 Q 97.35 15.24 96.71 14.88 L 96.21 14.59 Q 95.28 14.06 94.91 13.59 Q 94.53 13.13 94.53 12.51 Q 94.53 11.67 95.13 11.13 Q 95.74 10.59 96.68 10.59 Q 97.51 10.59 98.44 10.87 L 98.44 11.81 Q 97.3 11.36 96.73 11.36 Q 96.2 11.36 95.86 11.64 Q 95.51 11.93 95.51 12.36 Q 95.51 12.72 95.76 13 Q 96.02 13.27 96.69 13.66 L 97.21 13.95 Q 98.15 14.48 98.52 14.96 Q 98.89 15.43 98.89 16.1 Q 98.89 17.04 98.19 17.61 Q 97.5 18.18 96.35 18.18 M 96.35 18.18 M 101.55 18.12 Q 100.82 18.12 100.41 17.7 Q 100 17.28 100 16.54 L 100 13.42 L 99.34 13.42 L 99.34 12.7 L 100 12.7 L 100 11.74 L 100.96 11.64 L 100.96 12.7 L 102.35 12.7 L 102.35 13.42 L 100.96 13.42 L 100.96 16.36 Q 100.96 17.4 101.86 17.4 Q 102.05 17.4 102.33 17.34 L 102.33 18 Q 101.88 18.12 101.55 18.12 M 101.55 18.12 M 103.96 18 L 103.96 12.7 L 104.92 12.7 L 104.92 13.69 Q 105.5 12.58 106.58 12.58 Q 106.73 12.58 106.89 12.6 L 106.89 13.5 Q 106.64 13.42 106.45 13.42 Q 105.54 13.42 104.92 14.5 L 104.92 18 M 103.96 18 M 111.28 18 L 111.28 17 Q 110.51 18.12 109.42 18.12 Q 108.72 18.12 108.31 17.69 Q 107.9 17.25 107.9 16.51 L 107.9 12.7 L 108.87 12.7 L 108.87 16.19 Q 108.87 16.79 109.04 17.04 Q 109.21 17.29 109.62 17.29 Q 110.5 17.29 111.28 16.13 L 111.28 12.7 L 112.24 12.7 L 112.24 18 M 111.28 18 M 116.03 18.12 Q 114.96 18.12 114.25 17.33 Q 113.54 16.53 113.54 15.32 Q 113.54 14.03 114.24 13.3 Q 114.94 12.58 116.2 12.58 Q 116.82 12.58 117.58 12.75 L 117.58 13.56 Q 116.77 13.32 116.26 13.32 Q 115.52 13.32 115.07 13.87 Q 114.63 14.43 114.63 15.35 Q 114.63 16.24 115.08 16.79 Q 115.54 17.35 116.29 17.35 Q 116.95 17.35 117.64 17.01 L 117.64 17.84 Q 116.71 18.12 116.03 18.12 M 116.03 18.12 M 120.55 18.12 Q 119.82 18.12 119.41 17.7 Q 119 17.28 119 16.54 L 119 13.42 L 118.34 13.42 L 118.34 12.7 L 119 12.7 L 119 11.74 L 119.96 11.64 L 119.96 12.7 L 121.35 12.7 L 121.35 13.42 L 119.96 13.42 L 119.96 16.36 Q 119.96 17.4 120.86 17.4 Q 121.05 17.4 121.33 17.34 L 121.33 18 Q 120.88 18.12 120.55 18.12 M 120.55 18.12 M 126.28 18 L 126.28 17 Q 125.51 18.12 124.42 18.12 Q 123.72 18.12 123.31 17.69 Q 122.9 17.25 122.9 16.51 L 122.9 12.7 L 123.87 12.7 L 123.87 16.19 Q 123.87 16.79 124.04 17.04 Q 124.21 17.29 124.62 17.29 Q 125.5 17.29 126.28 16.13 L 126.28 12.7 L 127.24 12.7 L 127.24 18 M 126.28 18 M 128.96 18 L 128.96 12.7 L 129.92 12.7 L 129.92 13.69 Q 130.5 12.58 131.58 12.58 Q 131.73 12.58 131.89 12.6 L 131.89 13.5 Q 131.64 13.42 131.45 13.42 Q 130.54 13.42 129.92 14.5 L 129.92 18 M 128.96 18 M 136.85 17.83 Q 135.88 18.12 135.19 18.12 Q 134.02 18.12 133.28 17.34 Q 132.54 16.56 132.54 15.32 Q 132.54 14.12 133.19 13.35 Q 133.85 12.58 134.86 12.58 Q 135.82 12.58 136.35 13.26 Q 136.87 13.94 136.87 15.2 L 136.87 15.5 L 133.52 15.5 Q 133.73 17.39 135.37 17.39 Q 135.97 17.39 136.85 17.07 M 136.85 17.83 M 133.57 14.78 L 135.91 14.78 Q 135.91 13.3 134.8 13.3 Q 133.69 13.3 133.57 14.78 M 133.57 14.78"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,-3,214)" ><path d="M 34.93 39 L 34.93 31.77 L 35.95 31.77 L 35.95 39 M 34.93 39 M 37.96 39 L 37.96 33.7 L 38.92 33.7 L 38.92 34.69 Q 39.5 33.58 40.58 33.58 Q 40.73 33.58 40.89 33.6 L 40.89 34.5 Q 40.64 34.42 40.45 34.42 Q 39.54 34.42 38.92 35.5 L 38.92 39 M 37.96 39 M 44.04 39.12 Q 42.9 39.12 42.22 38.37 Q 41.54 37.61 41.54 36.35 Q 41.54 35.07 42.22 34.32 Q 42.9 33.58 44.07 33.58 Q 45.24 33.58 45.92 34.32 Q 46.6 35.07 46.6 36.34 Q 46.6 37.64 45.92 38.38 Q 45.23 39.12 44.04 39.12 M 44.04 39.12 M 44.05 38.4 Q 45.58 38.4 45.58 36.34 Q 45.58 34.3 44.07 34.3 Q 42.57 34.3 42.57 36.35 Q 42.57 38.4 44.05 38.4 M 44.05 38.4 M 47.96 39 L 47.96 33.7 L 48.92 33.7 L 48.92 34.69 Q 49.69 33.58 50.79 33.58 Q 51.48 33.58 51.89 34.02 Q 52.3 34.45 52.3 35.19 L 52.3 39 L 51.34 39 L 51.34 35.5 Q 51.34 34.91 51.16 34.66 Q 50.99 34.41 50.59 34.41 Q 49.71 34.41 48.92 35.57 L 48.92 39 M 47.96 39 M 58.35 39.18 Q 57.62 39.18 56.49 38.86 L 56.49 37.85 Q 57.71 38.41 58.5 38.41 Q 59.1 38.41 59.47 38.1 Q 59.84 37.78 59.84 37.26 Q 59.84 36.84 59.6 36.54 Q 59.35 36.24 58.71 35.88 L 58.21 35.59 Q 57.28 35.06 56.91 34.59 Q 56.53 34.13 56.53 33.51 Q 56.53 32.67 57.13 32.13 Q 57.74 31.59 58.68 31.59 Q 59.51 31.59 60.44 31.87 L 60.44 32.81 Q 59.3 32.36 58.73 32.36 Q 58.2 32.36 57.86 32.64 Q 57.51 32.93 57.51 33.36 Q 57.51 33.72 57.76 34 Q 58.02 34.27 58.69 34.66 L 59.21 34.95 Q 60.15 35.48 60.52 35.96 Q 60.89 36.43 60.89 37.1 Q 60.89 38.04 60.19 38.61 Q 59.5 39.18 58.35 39.18 M 58.35 39.18 M 65.28 39 L 65.28 38 Q 64.51 39.12 63.42 39.12 Q 62.72 39.12 62.31 38.69 Q 61.9 38.25 61.9 37.51 L 61.9 33.7 L 62.87 33.7 L 62.87 37.19 Q 62.87 37.79 63.04 38.04 Q 63.21 38.29 63.62 38.29 Q 64.5 38.29 65.28 37.13 L 65.28 33.7 L 66.24 33.7 L 66.24 39 M 65.28 39 M 67.96 39 L 67.96 31.29 L 68.92 31.29 L 68.92 39 M 67.96 39 M 70.96 40.93 L 70.96 33.7 L 71.92 33.7 L 71.92 34.69 Q 72.51 33.58 73.7 33.58 Q 74.65 33.58 75.2 34.28 Q 75.75 34.98 75.75 36.19 Q 75.75 37.51 75.13 38.31 Q 74.51 39.12 73.49 39.12 Q 72.55 39.12 71.92 38.4 L 71.92 40.93 M 70.96 40.93 M 71.92 37.74 Q 72.67 38.4 73.34 38.4 Q 74.73 38.4 74.73 36.29 Q 74.73 34.42 73.5 34.42 Q 72.69 34.42 71.92 35.29 M 71.92 37.74 M 76.96 39 L 76.96 31.29 L 77.92 31.29 L 77.92 34.69 Q 78.69 33.58 79.79 33.58 Q 80.48 33.58 80.89 34.02 Q 81.3 34.45 81.3 35.19 L 81.3 39 L 80.34 39 L 80.34 35.5 Q 80.34 34.91 80.16 34.66 Q 79.99 34.41 79.59 34.41 Q 78.71 34.41 77.92 35.57 L 77.92 39 M 76.96 39 M 86.28 39 L 86.28 38 Q 85.51 39.12 84.42 39.12 Q 83.72 39.12 83.31 38.69 Q 82.9 38.25 82.9 37.51 L 82.9 33.7 L 83.87 33.7 L 83.87 37.19 Q 83.87 37.79 84.04 38.04 Q 84.21 38.29 84.62 38.29 Q 85.5 38.29 86.28 37.13 L 86.28 33.7 L 87.24 33.7 L 87.24 39 M 86.28 39 M 88.96 39 L 88.96 33.7 L 89.92 33.7 L 89.92 34.69 Q 90.5 33.58 91.58 33.58 Q 91.73 33.58 91.89 33.6 L 91.89 34.5 Q 91.64 34.42 91.45 34.42 Q 90.54 34.42 89.92 35.5 L 89.92 39 M 88.96 39 M 99.03 39.18 Q 97.34 39.18 96.43 38.19 Q 95.51 37.2 95.51 35.39 Q 95.51 33.58 96.44 32.59 Q 97.38 31.59 99.08 31.59 Q 100.05 31.59 101.35 31.91 L 101.35 32.87 Q 99.87 32.36 99.06 32.36 Q 97.89 32.36 97.24 33.16 Q 96.6 33.95 96.6 35.4 Q 96.6 36.78 97.29 37.58 Q 97.97 38.38 99.17 38.38 Q 100.19 38.38 101.36 37.75 L 101.36 38.63 Q 100.29 39.18 99.03 39.18 M 99.03 39.18 M 105.04 39.12 Q 103.9 39.12 103.22 38.37 Q 102.54 37.61 102.54 36.35 Q 102.54 35.07 103.22 34.32 Q 103.9 33.58 105.07 33.58 Q 106.24 33.58 106.92 34.32 Q 107.6 35.07 107.6 36.34 Q 107.6 37.64 106.92 38.38 Q 106.23 39.12 105.04 39.12 M 105.04 39.12 M 105.05 38.4 Q 106.58 38.4 106.58 36.34 Q 106.58 34.3 105.07 34.3 Q 103.57 34.3 103.57 36.35 Q 103.57 38.4 105.05 38.4 M 105.05 38.4 M 108.96 39 L 108.96 33.7 L 109.92 33.7 L 109.92 34.69 Q 110.69 33.58 111.79 33.58 Q 112.48 33.58 112.89 34.02 Q 113.3 34.45 113.3 35.19 L 113.3 39 L 112.34 39 L 112.34 35.5 Q 112.34 34.91 112.16 34.66 Q 111.99 34.41 111.59 34.41 Q 110.71 34.41 109.92 35.57 L 109.92 39 M 108.96 39 M 116.55 39.12 Q 115.82 39.12 115.41 38.7 Q 115 38.28 115 37.54 L 115 34.42 L 114.34 34.42 L 114.34 33.7 L 115 33.7 L 115 32.74 L 115.96 32.64 L 115.96 33.7 L 117.35 33.7 L 117.35 34.42 L 115.96 34.42 L 115.96 37.36 Q 115.96 38.4 116.86 38.4 Q 117.05 38.4 117.33 38.34 L 117.33 39 Q 116.88 39.12 116.55 39.12 M 116.55 39.12 M 121.7 38.33 Q 120.83 39.12 120.03 39.12 Q 119.37 39.12 118.94 38.71 Q 118.5 38.3 118.5 37.67 Q 118.5 36.8 119.23 36.33 Q 119.96 35.87 121.33 35.87 L 121.55 35.87 L 121.55 35.23 Q 121.55 34.3 120.61 34.3 Q 119.85 34.3 118.96 34.77 L 118.96 33.98 Q 119.93 33.58 120.78 33.58 Q 121.67 33.58 122.09 33.98 Q 122.52 34.38 122.52 35.23 L 122.52 37.63 Q 122.52 38.45 123.02 38.45 Q 123.09 38.45 123.21 38.43 L 123.28 38.97 Q 122.95 39.12 122.56 39.12 Q 121.88 39.12 121.7 38.33 M 121.7 38.33 M 121.55 37.8 L 121.55 36.43 L 121.23 36.42 Q 120.44 36.42 119.95 36.72 Q 119.46 37.02 119.46 37.51 Q 119.46 37.86 119.71 38.1 Q 119.95 38.34 120.3 38.34 Q 120.91 38.34 121.55 37.8 M 121.55 37.8 M 127.03 39.12 Q 125.96 39.12 125.25 38.33 Q 124.54 37.53 124.54 36.32 Q 124.54 35.03 125.24 34.3 Q 125.94 33.58 127.2 33.58 Q 127.82 33.58 128.58 33.75 L 128.58 34.56 Q 127.77 34.32 127.26 34.32 Q 126.52 34.32 126.07 34.87 Q 125.63 35.43 125.63 36.35 Q 125.63 37.24 126.08 37.79 Q 126.54 38.35 127.29 38.35 Q 127.95 38.35 128.64 38.01 L 128.64 38.84 Q 127.71 39.12 127.03 39.12 M 127.03 39.12 M 131.55 39.12 Q 130.82 39.12 130.41 38.7 Q 130 38.28 130 37.54 L 130 34.42 L 129.34 34.42 L 129.34 33.7 L 130 33.7 L 130 32.74 L 130.96 32.64 L 130.96 33.7 L 132.35 33.7 L 132.35 34.42 L 130.96 34.42 L 130.96 37.36 Q 130.96 38.4 131.86 38.4 Q 132.05 38.4 132.33 38.34 L 132.33 39 Q 131.88 39.12 131.55 39.12 M 131.55 39.12 M 135.37 39.12 Q 134.71 39.12 133.77 38.81 L 133.77 37.93 Q 134.71 38.4 135.41 38.4 Q 135.82 38.4 136.1 38.17 Q 136.37 37.95 136.37 37.61 Q 136.37 37.12 135.6 36.8 L 135.04 36.56 Q 133.8 36.04 133.8 35.07 Q 133.8 34.38 134.29 33.98 Q 134.78 33.58 135.63 33.58 Q 136.08 33.58 136.73 33.7 L 136.93 33.74 L 136.93 34.54 Q 136.12 34.3 135.65 34.3 Q 134.72 34.3 134.72 34.98 Q 134.72 35.41 135.43 35.71 L 135.89 35.9 Q 136.68 36.24 137 36.6 Q 137.33 36.97 137.33 37.53 Q 137.33 38.22 136.78 38.67 Q 136.23 39.12 135.37 39.12 M 135.37 39.12"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,-3,214)" ><path d="M 78.03 72.18 Q 76.34 72.18 75.43 71.19 Q 74.51 70.2 74.51 68.39 Q 74.51 66.58 75.44 65.59 Q 76.38 64.59 78.08 64.59 Q 79.05 64.59 80.35 64.91 L 80.35 65.87 Q 78.87 65.36 78.06 65.36 Q 76.89 65.36 76.24 66.16 Q 75.6 66.95 75.6 68.4 Q 75.6 69.78 76.29 70.58 Q 76.97 71.38 78.17 71.38 Q 79.19 71.38 80.36 70.75 L 80.36 71.63 Q 79.29 72.18 78.03 72.18 M 78.03 72.18 M 84.04 72.12 Q 82.9 72.12 82.22 71.37 Q 81.54 70.61 81.54 69.35 Q 81.54 68.07 82.22 67.32 Q 82.9 66.58 84.07 66.58 Q 85.24 66.58 85.92 67.32 Q 86.6 68.07 86.6 69.34 Q 86.6 70.64 85.92 71.38 Q 85.23 72.12 84.04 72.12 M 84.04 72.12 M 84.05 71.4 Q 85.58 71.4 85.58 69.34 Q 85.58 67.3 84.07 67.3 Q 82.57 67.3 82.57 69.35 Q 82.57 71.4 84.05 71.4 M 84.05 71.4 M 87.96 72 L 87.96 66.7 L 88.92 66.7 L 88.92 67.69 Q 89.69 66.58 90.79 66.58 Q 91.48 66.58 91.89 67.02 Q 92.3 67.45 92.3 68.19 L 92.3 72 L 91.34 72 L 91.34 68.5 Q 91.34 67.91 91.16 67.66 Q 90.99 67.41 90.59 67.41 Q 89.71 67.41 88.92 68.57 L 88.92 72 M 87.96 72 M 95.37 72.12 Q 94.71 72.12 93.77 71.81 L 93.77 70.93 Q 94.71 71.4 95.41 71.4 Q 95.82 71.4 96.1 71.17 Q 96.37 70.95 96.37 70.61 Q 96.37 70.12 95.6 69.8 L 95.04 69.56 Q 93.8 69.04 93.8 68.07 Q 93.8 67.38 94.29 66.98 Q 94.78 66.58 95.63 66.58 Q 96.08 66.58 96.73 66.7 L 96.93 66.74 L 96.93 67.54 Q 96.12 67.3 95.65 67.3 Q 94.72 67.3 94.72 67.98 Q 94.72 68.41 95.43 68.71 L 95.89 68.9 Q 96.68 69.24 97 69.6 Q 97.33 69.97 97.33 70.53 Q 97.33 71.22 96.78 71.67 Q 96.23 72.12 95.37 72.12 M 95.37 72.12 M 102.85 71.83 Q 101.88 72.12 101.19 72.12 Q 100.02 72.12 99.28 71.34 Q 98.54 70.56 98.54 69.32 Q 98.54 68.12 99.19 67.35 Q 99.85 66.58 100.86 66.58 Q 101.82 66.58 102.35 67.26 Q 102.87 67.94 102.87 69.2 L 102.87 69.5 L 99.52 69.5 Q 99.73 71.39 101.37 71.39 Q 101.97 71.39 102.85 71.07 M 102.85 71.83 M 99.57 68.78 L 101.91 68.78 Q 101.91 67.3 100.8 67.3 Q 99.69 67.3 99.57 68.78 M 99.57 68.78 M 104.96 72 L 104.96 66.7 L 105.92 66.7 L 105.92 67.69 Q 106.5 66.58 107.58 66.58 Q 107.73 66.58 107.89 66.6 L 107.89 67.5 Q 107.64 67.42 107.45 67.42 Q 106.54 67.42 105.92 68.5 L 105.92 72 M 104.96 72 M 110.06 72 L 108.09 66.7 L 109.05 66.7 L 110.59 70.82 L 112.22 66.7 L 113.12 66.7 L 111.02 72 M 110.06 72 M 116.7 71.33 Q 115.83 72.12 115.03 72.12 Q 114.37 72.12 113.94 71.71 Q 113.5 71.3 113.5 70.67 Q 113.5 69.8 114.23 69.33 Q 114.96 68.87 116.33 68.87 L 116.55 68.87 L 116.55 68.23 Q 116.55 67.3 115.61 67.3 Q 114.85 67.3 113.96 67.77 L 113.96 66.98 Q 114.93 66.58 115.78 66.58 Q 116.67 66.58 117.09 66.98 Q 117.52 67.38 117.52 68.23 L 117.52 70.63 Q 117.52 71.45 118.02 71.45 Q 118.09 71.45 118.21 71.43 L 118.28 71.97 Q 117.95 72.12 117.56 72.12 Q 116.88 72.12 116.7 71.33 M 116.7 71.33 M 116.55 70.8 L 116.55 69.43 L 116.23 69.42 Q 115.44 69.42 114.95 69.72 Q 114.46 70.02 114.46 70.51 Q 114.46 70.86 114.71 71.1 Q 114.95 71.34 115.3 71.34 Q 115.91 71.34 116.55 70.8 M 116.55 70.8 M 121.55 72.12 Q 120.82 72.12 120.41 71.7 Q 120 71.28 120 70.54 L 120 67.42 L 119.34 67.42 L 119.34 66.7 L 120 66.7 L 120 65.74 L 120.96 65.64 L 120.96 66.7 L 122.35 66.7 L 122.35 67.42 L 120.96 67.42 L 120.96 70.36 Q 120.96 71.4 121.86 71.4 Q 122.05 71.4 122.33 71.34 L 122.33 72 Q 121.88 72.12 121.55 72.12 M 121.55 72.12 M 123.96 72 L 123.96 66.7 L 124.92 66.7 L 124.92 72 M 123.96 72 M 123.96 65.74 L 123.96 64.77 L 124.92 64.77 L 124.92 65.74 M 123.96 65.74 M 129.04 72.12 Q 127.9 72.12 127.22 71.37 Q 126.54 70.61 126.54 69.35 Q 126.54 68.07 127.22 67.32 Q 127.9 66.58 129.07 66.58 Q 130.24 66.58 130.92 67.32 Q 131.6 68.07 131.6 69.34 Q 131.6 70.64 130.92 71.38 Q 130.23 72.12 129.04 72.12 M 129.04 72.12 M 129.05 71.4 Q 130.58 71.4 130.58 69.34 Q 130.58 67.3 129.07 67.3 Q 127.57 67.3 127.57 69.35 Q 127.57 71.4 129.05 71.4 M 129.05 71.4 M 132.96 72 L 132.96 66.7 L 133.92 66.7 L 133.92 67.69 Q 134.69 66.58 135.79 66.58 Q 136.48 66.58 136.89 67.02 Q 137.3 67.45 137.3 68.19 L 137.3 72 L 136.34 72 L 136.34 68.5 Q 136.34 67.91 136.16 67.66 Q 135.99 67.41 135.59 67.41 Q 134.71 67.41 133.92 68.57 L 133.92 72 M 132.96 72"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,-3,214)" ><path d="M 110.35 126.45 Q 108.64 125.89 107.49 125.13 Q 107.03 125.18 106.78 125.18 Q 105.33 125.18 104.42 124.13 Q 103.51 123.07 103.51 121.39 Q 103.51 119.66 104.43 118.63 Q 105.35 117.59 106.89 117.59 Q 108.43 117.59 109.35 118.63 Q 110.27 119.66 110.27 121.4 Q 110.27 123.89 108.42 124.85 Q 109.66 125.4 111 125.63 M 110.35 126.45 M 106.86 124.41 Q 107.97 124.41 108.57 123.62 Q 109.18 122.82 109.18 121.37 Q 109.18 119.96 108.57 119.16 Q 107.97 118.36 106.89 118.36 Q 105.81 118.36 105.2 119.16 Q 104.6 119.96 104.6 121.38 Q 104.6 122.79 105.2 123.6 Q 105.8 124.41 106.86 124.41 M 106.86 124.41 M 115.28 125 L 115.28 124 Q 114.51 125.12 113.42 125.12 Q 112.72 125.12 112.31 124.69 Q 111.9 124.25 111.9 123.51 L 111.9 119.7 L 112.87 119.7 L 112.87 123.19 Q 112.87 123.79 113.04 124.04 Q 113.21 124.29 113.62 124.29 Q 114.5 124.29 115.28 123.13 L 115.28 119.7 L 116.24 119.7 L 116.24 125 M 115.28 125 M 120.7 124.33 Q 119.83 125.12 119.03 125.12 Q 118.37 125.12 117.94 124.71 Q 117.5 124.3 117.5 123.67 Q 117.5 122.8 118.23 122.33 Q 118.96 121.87 120.33 121.87 L 120.55 121.87 L 120.55 121.23 Q 120.55 120.3 119.61 120.3 Q 118.85 120.3 117.96 120.77 L 117.96 119.98 Q 118.93 119.58 119.78 119.58 Q 120.67 119.58 121.09 119.98 Q 121.52 120.38 121.52 121.23 L 121.52 123.63 Q 121.52 124.45 122.02 124.45 Q 122.09 124.45 122.21 124.43 L 122.28 124.97 Q 121.95 125.12 121.56 125.12 Q 120.88 125.12 120.7 124.33 M 120.7 124.33 M 120.55 123.8 L 120.55 122.43 L 120.23 122.42 Q 119.44 122.42 118.95 122.72 Q 118.46 123.02 118.46 123.51 Q 118.46 123.86 118.71 124.1 Q 118.95 124.34 119.3 124.34 Q 119.91 124.34 120.55 123.8 M 120.55 123.8 M 123.96 125 L 123.96 117.29 L 124.92 117.29 L 124.92 125 M 123.96 125 M 126.96 125 L 126.96 119.7 L 127.92 119.7 L 127.92 125 M 126.96 125 M 126.96 118.74 L 126.96 117.77 L 127.92 117.77 L 127.92 118.74 M 126.96 118.74 M 131.55 125.12 Q 130.82 125.12 130.41 124.7 Q 130 124.28 130 123.54 L 130 120.42 L 129.34 120.42 L 129.34 119.7 L 130 119.7 L 130 118.74 L 130.96 118.64 L 130.96 119.7 L 132.35 119.7 L 132.35 120.42 L 130.96 120.42 L 130.96 123.36 Q 130.96 124.4 131.86 124.4 Q 132.05 124.4 132.33 124.34 L 132.33 125 Q 131.88 125.12 131.55 125.12 M 131.55 125.12 M 134.27 126.93 L 135.13 125 L 133.08 119.7 L 134.12 119.7 L 135.64 123.69 L 137.26 119.7 L 138.17 119.7 L 135.27 126.93 M 134.27 126.93"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,-3,214)" ><path d="M 90.03 178.18 Q 88.34 178.18 87.43 177.19 Q 86.51 176.2 86.51 174.39 Q 86.51 172.58 87.44 171.59 Q 88.38 170.59 90.08 170.59 Q 91.05 170.59 92.35 170.91 L 92.35 171.87 Q 90.87 171.36 90.06 171.36 Q 88.89 171.36 88.24 172.16 Q 87.6 172.95 87.6 174.4 Q 87.6 175.78 88.29 176.58 Q 88.97 177.38 90.17 177.38 Q 91.19 177.38 92.36 176.75 L 92.36 177.63 Q 91.29 178.18 90.03 178.18 M 90.03 178.18 M 96.04 178.12 Q 94.9 178.12 94.22 177.37 Q 93.54 176.61 93.54 175.35 Q 93.54 174.07 94.22 173.32 Q 94.9 172.58 96.07 172.58 Q 97.24 172.58 97.92 173.32 Q 98.6 174.07 98.6 175.34 Q 98.6 176.64 97.92 177.38 Q 97.23 178.12 96.04 178.12 M 96.04 178.12 M 96.05 177.4 Q 97.58 177.4 97.58 175.34 Q 97.58 173.3 96.07 173.3 Q 94.57 173.3 94.57 175.35 Q 94.57 177.4 96.05 177.4 M 96.05 177.4 M 99.96 178 L 99.96 172.7 L 100.92 172.7 L 100.92 173.69 Q 101.69 172.58 102.79 172.58 Q 103.48 172.58 103.89 173.02 Q 104.3 173.45 104.3 174.19 L 104.3 178 L 103.34 178 L 103.34 174.5 Q 103.34 173.91 103.16 173.66 Q 102.99 173.41 102.59 173.41 Q 101.71 173.41 100.92 174.57 L 100.92 178 M 99.96 178 M 107.37 178.12 Q 106.71 178.12 105.77 177.81 L 105.77 176.93 Q 106.71 177.4 107.41 177.4 Q 107.82 177.4 108.1 177.17 Q 108.37 176.95 108.37 176.61 Q 108.37 176.12 107.6 175.8 L 107.04 175.56 Q 105.8 175.04 105.8 174.07 Q 105.8 173.38 106.29 172.98 Q 106.78 172.58 107.63 172.58 Q 108.08 172.58 108.73 172.7 L 108.93 172.74 L 108.93 173.54 Q 108.12 173.3 107.65 173.3 Q 106.72 173.3 106.72 173.98 Q 106.72 174.41 107.43 174.71 L 107.89 174.9 Q 108.68 175.24 109 175.6 Q 109.33 175.97 109.33 176.53 Q 109.33 177.22 108.78 177.67 Q 108.23 178.12 107.37 178.12 M 107.37 178.12 M 114.85 177.83 Q 113.88 178.12 113.19 178.12 Q 112.02 178.12 111.28 177.34 Q 110.54 176.56 110.54 175.32 Q 110.54 174.12 111.19 173.35 Q 111.85 172.58 112.86 172.58 Q 113.82 172.58 114.35 173.26 Q 114.87 173.94 114.87 175.2 L 114.87 175.5 L 111.52 175.5 Q 111.73 177.39 113.37 177.39 Q 113.97 177.39 114.85 177.07 M 114.85 177.83 M 111.57 174.78 L 113.91 174.78 Q 113.91 173.3 112.8 173.3 Q 111.69 173.3 111.57 174.78 M 111.57 174.78 M 116.96 178 L 116.96 172.7 L 117.92 172.7 L 117.92 173.69 Q 118.69 172.58 119.79 172.58 Q 120.48 172.58 120.89 173.02 Q 121.3 173.45 121.3 174.19 L 121.3 178 L 120.34 178 L 120.34 174.5 Q 120.34 173.91 120.16 173.66 Q 119.99 173.41 119.59 173.41 Q 118.71 173.41 117.92 174.57 L 117.92 178 M 116.96 178 M 124.37 178.12 Q 123.71 178.12 122.77 177.81 L 122.77 176.93 Q 123.71 177.4 124.41 177.4 Q 124.82 177.4 125.1 177.17 Q 125.37 176.95 125.37 176.61 Q 125.37 176.12 124.6 175.8 L 124.04 175.56 Q 122.8 175.04 122.8 174.07 Q 122.8 173.38 123.29 172.98 Q 123.78 172.58 124.63 172.58 Q 125.08 172.58 125.73 172.7 L 125.93 172.74 L 125.93 173.54 Q 125.12 173.3 124.65 173.3 Q 123.72 173.3 123.72 173.98 Q 123.72 174.41 124.43 174.71 L 124.89 174.9 Q 125.68 175.24 126 175.6 Q 126.33 175.97 126.33 176.53 Q 126.33 177.22 125.78 177.67 Q 125.23 178.12 124.37 178.12 M 124.37 178.12 M 131.28 178 L 131.28 177 Q 130.51 178.12 129.42 178.12 Q 128.72 178.12 128.31 177.69 Q 127.9 177.25 127.9 176.51 L 127.9 172.7 L 128.87 172.7 L 128.87 176.19 Q 128.87 176.79 129.04 177.04 Q 129.21 177.29 129.62 177.29 Q 130.5 177.29 131.28 176.13 L 131.28 172.7 L 132.24 172.7 L 132.24 178 M 131.28 178 M 135.37 178.12 Q 134.71 178.12 133.77 177.81 L 133.77 176.93 Q 134.71 177.4 135.41 177.4 Q 135.82 177.4 136.1 177.17 Q 136.37 176.95 136.37 176.61 Q 136.37 176.12 135.6 175.8 L 135.04 175.56 Q 133.8 175.04 133.8 174.07 Q 133.8 173.38 134.29 172.98 Q 134.78 172.58 135.63 172.58 Q 136.08 172.58 136.73 172.7 L 136.93 172.74 L 136.93 173.54 Q 136.12 173.3 135.65 173.3 Q 134.72 173.3 134.72 173.98 Q 134.72 174.41 135.43 174.71 L 135.89 174.9 Q 136.68 175.24 137 175.6 Q 137.33 175.97 137.33 176.53 Q 137.33 177.22 136.78 177.67 Q 136.23 178.12 135.37 178.12 M 135.37 178.12"/></g></svg>
+</div></div>
+
+<!-- ========================================================================================== -->
+
+<div class="align" ><div class="sub-category-container"> <div style="overflow-x: scroll;"><?xml version="1.0"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:jfreesvg="http://www.jfree.org/jfreesvg/svg" width="1554" height="428" text-rendering="auto" shape-rendering="auto">
+<defs></defs>
+<rect x="0" y="0" width="1413" height="16" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,0)" /><line x1="40" y1="13" x2="40" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 82.5 10 L 82.5 9.28 L 83.95 9.28 L 83.95 3.57 L 82.5 3.94 L 82.5 3.19 L 84.92 2.59 L 84.92 9.28 L 86.36 9.28 L 86.36 10 M 82.5 10 M 90.13 10.18 Q 89.02 10.18 88.33 9.13 Q 87.63 8.08 87.63 6.38 Q 87.63 4.67 88.33 3.63 Q 89.03 2.59 90.16 2.59 Q 91.3 2.59 92 3.63 Q 92.69 4.67 92.69 6.37 Q 92.69 8.11 92 9.14 Q 91.3 10.18 90.13 10.18 M 90.13 10.18 M 90.14 9.46 Q 91.67 9.46 91.67 6.35 Q 91.67 3.32 90.16 3.32 Q 88.66 3.32 88.66 6.38 Q 88.66 9.46 90.14 9.46 M 90.14 9.46"/></g><line x1="85" y1="12" x2="85" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="130" y1="13" x2="130" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 171.83 10 L 171.83 9.16 Q 172.25 8.17 173.53 7.02 L 174.08 6.52 Q 175.15 5.56 175.15 4.61 Q 175.15 4.01 174.78 3.66 Q 174.42 3.32 173.78 3.32 Q 173.03 3.32 172.01 3.9 L 172.01 3.05 Q 172.97 2.59 173.92 2.59 Q 174.94 2.59 175.55 3.14 Q 176.17 3.69 176.17 4.59 Q 176.17 5.24 175.86 5.74 Q 175.55 6.25 174.7 6.96 L 174.33 7.28 Q 173.17 8.26 172.99 9.16 L 176.13 9.16 L 176.13 10 M 171.83 10 M 180.13 10.18 Q 179.02 10.18 178.33 9.13 Q 177.63 8.08 177.63 6.38 Q 177.63 4.67 178.33 3.63 Q 179.03 2.59 180.16 2.59 Q 181.3 2.59 182 3.63 Q 182.69 4.67 182.69 6.37 Q 182.69 8.11 182 9.14 Q 181.3 10.18 180.13 10.18 M 180.13 10.18 M 180.14 9.46 Q 181.67 9.46 181.67 6.35 Q 181.67 3.32 180.16 3.32 Q 178.66 3.32 178.66 6.38 Q 178.66 9.46 180.14 9.46 M 180.14 9.46"/></g><line x1="175" y1="12" x2="175" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="220" y1="13" x2="220" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 262.02 9.95 L 262.02 9.05 Q 263.05 9.46 263.65 9.46 Q 264.33 9.46 264.77 9.06 Q 265.2 8.65 265.2 8.01 Q 265.2 6.49 263.07 6.49 L 262.68 6.49 L 262.68 5.84 L 263.02 5.83 Q 265.02 5.83 265.02 4.42 Q 265.02 3.32 263.71 3.32 Q 262.98 3.32 262.11 3.72 L 262.11 2.88 Q 262.97 2.59 263.77 2.59 Q 265.99 2.59 265.99 4.27 Q 265.99 5.54 264.48 6.08 Q 266.23 6.49 266.23 8 Q 266.23 9.02 265.56 9.6 Q 264.88 10.18 263.71 10.18 Q 263.04 10.18 262.02 9.95 M 262.02 9.95 M 270.13 10.18 Q 269.02 10.18 268.33 9.13 Q 267.63 8.08 267.63 6.38 Q 267.63 4.67 268.33 3.63 Q 269.03 2.59 270.16 2.59 Q 271.3 2.59 272 3.63 Q 272.69 4.67 272.69 6.37 Q 272.69 8.11 272 9.14 Q 271.3 10.18 270.13 10.18 M 270.13 10.18 M 270.14 9.46 Q 271.67 9.46 271.67 6.35 Q 271.67 3.32 270.16 3.32 Q 268.66 3.32 268.66 6.38 Q 268.66 9.46 270.14 9.46 M 270.14 9.46"/></g><line x1="265" y1="12" x2="265" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="310" y1="13" x2="310" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 354.76 10 L 354.76 7.95 L 351.51 7.95 L 351.51 7.23 L 354.76 2.77 L 355.67 2.77 L 355.67 7.17 L 356.63 7.17 L 356.63 7.95 L 355.67 7.95 L 355.67 10 M 354.76 10 M 352.46 7.17 L 354.83 7.17 L 354.83 3.96 M 352.46 7.17 M 360.13 10.18 Q 359.02 10.18 358.33 9.13 Q 357.63 8.08 357.63 6.38 Q 357.63 4.67 358.33 3.63 Q 359.03 2.59 360.16 2.59 Q 361.3 2.59 362 3.63 Q 362.69 4.67 362.69 6.37 Q 362.69 8.11 362 9.14 Q 361.3 10.18 360.13 10.18 M 360.13 10.18 M 360.14 9.46 Q 361.67 9.46 361.67 6.35 Q 361.67 3.32 360.16 3.32 Q 358.66 3.32 358.66 6.38 Q 358.66 9.46 360.14 9.46 M 360.14 9.46"/></g><line x1="355" y1="12" x2="355" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="400" y1="13" x2="400" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 442.22 10.03 L 442.22 9.17 Q 442.93 9.46 443.58 9.46 Q 444.3 9.46 444.7 9.04 Q 445.11 8.62 445.11 7.88 Q 445.11 6.25 442.87 6.25 Q 442.62 6.25 442.34 6.29 L 442.34 2.77 L 446 2.77 L 446 3.61 L 443.18 3.61 L 443.18 5.52 Q 444.57 5.52 445.36 6.16 Q 446.14 6.8 446.14 7.93 Q 446.14 8.98 445.43 9.58 Q 444.72 10.18 443.46 10.18 Q 442.91 10.18 442.22 10.03 M 442.22 10.03 M 450.13 10.18 Q 449.02 10.18 448.33 9.13 Q 447.63 8.08 447.63 6.38 Q 447.63 4.67 448.33 3.63 Q 449.03 2.59 450.16 2.59 Q 451.3 2.59 452 3.63 Q 452.69 4.67 452.69 6.37 Q 452.69 8.11 452 9.14 Q 451.3 10.18 450.13 10.18 M 450.13 10.18 M 450.14 9.46 Q 451.67 9.46 451.67 6.35 Q 451.67 3.32 450.16 3.32 Q 448.66 3.32 448.66 6.38 Q 448.66 9.46 450.14 9.46 M 450.14 9.46"/></g><line x1="445" y1="12" x2="445" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="490" y1="13" x2="490" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 532.72 6.25 Q 533.41 5.36 534.45 5.36 Q 535.4 5.36 536 5.99 Q 536.61 6.62 536.61 7.6 Q 536.61 8.73 535.93 9.45 Q 535.25 10.18 534.21 10.18 Q 533.02 10.18 532.34 9.22 Q 531.67 8.26 531.67 6.55 Q 531.67 4.67 532.44 3.63 Q 533.22 2.59 534.62 2.59 Q 535.27 2.59 536.23 2.86 L 536.23 3.7 Q 535.21 3.31 534.56 3.31 Q 532.72 3.31 532.72 6.25 M 532.72 6.25 M 535.64 7.81 Q 535.64 6.99 535.27 6.52 Q 534.9 6.05 534.25 6.05 Q 533.64 6.05 533.2 6.46 Q 532.76 6.88 532.76 7.45 Q 532.76 8.36 533.18 8.91 Q 533.59 9.46 534.28 9.46 Q 534.9 9.46 535.27 9.01 Q 535.64 8.56 535.64 7.81 M 535.64 7.81 M 540.13 10.18 Q 539.02 10.18 538.33 9.13 Q 537.63 8.08 537.63 6.38 Q 537.63 4.67 538.33 3.63 Q 539.03 2.59 540.16 2.59 Q 541.3 2.59 542 3.63 Q 542.69 4.67 542.69 6.37 Q 542.69 8.11 542 9.14 Q 541.3 10.18 540.13 10.18 M 540.13 10.18 M 540.14 9.46 Q 541.67 9.46 541.67 6.35 Q 541.67 3.32 540.16 3.32 Q 538.66 3.32 538.66 6.38 Q 538.66 9.46 540.14 9.46 M 540.14 9.46"/></g><line x1="535" y1="12" x2="535" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="580" y1="13" x2="580" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 622.5 10 Q 622.65 9.16 622.91 8.54 Q 623.17 7.92 623.83 6.85 L 625.8 3.68 L 622.08 3.68 L 622.08 2.77 L 626.72 2.77 L 626.72 3.68 Q 623.94 7.77 623.61 10 M 622.5 10 M 630.13 10.18 Q 629.02 10.18 628.33 9.13 Q 627.63 8.08 627.63 6.38 Q 627.63 4.67 628.33 3.63 Q 629.03 2.59 630.16 2.59 Q 631.3 2.59 632 3.63 Q 632.69 4.67 632.69 6.37 Q 632.69 8.11 632 9.14 Q 631.3 10.18 630.13 10.18 M 630.13 10.18 M 630.14 9.46 Q 631.67 9.46 631.67 6.35 Q 631.67 3.32 630.16 3.32 Q 628.66 3.32 628.66 6.38 Q 628.66 9.46 630.14 9.46 M 630.14 9.46"/></g><line x1="625" y1="12" x2="625" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="670" y1="13" x2="670" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 713.3 6.06 Q 712.24 5.33 712.24 4.43 Q 712.24 3.61 712.84 3.1 Q 713.44 2.59 714.41 2.59 Q 715.3 2.59 715.86 3.02 Q 716.41 3.46 716.41 4.15 Q 716.41 5.2 715.06 6.06 Q 716.7 6.87 716.7 8.13 Q 716.7 9.04 716.01 9.61 Q 715.33 10.18 714.24 10.18 Q 713.18 10.18 712.52 9.64 Q 711.86 9.1 711.86 8.22 Q 711.86 6.92 713.3 6.06 M 713.3 6.06 M 714.53 5.76 Q 715.54 5.1 715.54 4.28 Q 715.54 3.85 715.2 3.58 Q 714.86 3.32 714.31 3.32 Q 713.78 3.32 713.45 3.58 Q 713.11 3.84 713.11 4.25 Q 713.11 4.66 713.41 4.98 Q 713.71 5.3 714.53 5.76 M 714.53 5.76 M 713.82 6.46 Q 713.24 6.9 713.03 7.24 Q 712.83 7.57 712.83 8.07 Q 712.83 8.69 713.23 9.07 Q 713.63 9.46 714.28 9.46 Q 714.91 9.46 715.31 9.13 Q 715.71 8.8 715.71 8.28 Q 715.71 7.86 715.46 7.57 Q 715.21 7.28 714.51 6.86 M 713.82 6.46 M 720.13 10.18 Q 719.02 10.18 718.33 9.13 Q 717.63 8.08 717.63 6.38 Q 717.63 4.67 718.33 3.63 Q 719.03 2.59 720.16 2.59 Q 721.3 2.59 722 3.63 Q 722.69 4.67 722.69 6.37 Q 722.69 8.11 722 9.14 Q 721.3 10.18 720.13 10.18 M 720.13 10.18 M 720.14 9.46 Q 721.67 9.46 721.67 6.35 Q 721.67 3.32 720.16 3.32 Q 718.66 3.32 718.66 6.38 Q 718.66 9.46 720.14 9.46 M 720.14 9.46"/></g><line x1="715" y1="12" x2="715" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="760" y1="13" x2="760" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 802.14 9.96 L 802.14 9.14 Q 803.06 9.46 803.7 9.46 Q 804.6 9.46 805.1 8.69 Q 805.61 7.93 805.61 6.57 Q 804.88 7.47 803.94 7.47 Q 803.03 7.47 802.4 6.8 Q 801.76 6.13 801.76 5.16 Q 801.76 4.05 802.44 3.32 Q 803.11 2.59 804.14 2.59 Q 805.32 2.59 806 3.54 Q 806.67 4.48 806.67 6.12 Q 806.67 7.99 805.85 9.08 Q 805.02 10.18 803.61 10.18 Q 803.04 10.18 802.14 9.96 M 802.14 9.96 M 802.72 4.97 Q 802.72 5.81 803.1 6.29 Q 803.47 6.78 804.12 6.78 Q 804.73 6.78 805.16 6.36 Q 805.59 5.95 805.59 5.36 Q 805.59 4.44 805.18 3.87 Q 804.76 3.31 804.08 3.31 Q 803.45 3.31 803.09 3.76 Q 802.72 4.2 802.72 4.97 M 802.72 4.97 M 810.13 10.18 Q 809.02 10.18 808.33 9.13 Q 807.63 8.08 807.63 6.38 Q 807.63 4.67 808.33 3.63 Q 809.03 2.59 810.16 2.59 Q 811.3 2.59 812 3.63 Q 812.69 4.67 812.69 6.37 Q 812.69 8.11 812 9.14 Q 811.3 10.18 810.13 10.18 M 810.13 10.18 M 810.14 9.46 Q 811.67 9.46 811.67 6.35 Q 811.67 3.32 810.16 3.32 Q 808.66 3.32 808.66 6.38 Q 808.66 9.46 810.14 9.46 M 810.14 9.46"/></g><line x1="805" y1="12" x2="805" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="850" y1="13" x2="850" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 892.5 10 L 892.5 9.28 L 893.95 9.28 L 893.95 3.57 L 892.5 3.94 L 892.5 3.19 L 894.92 2.59 L 894.92 9.28 L 896.36 9.28 L 896.36 10 M 892.5 10 M 900.13 10.18 Q 899.02 10.18 898.33 9.13 Q 897.63 8.08 897.63 6.38 Q 897.63 4.67 898.33 3.63 Q 899.03 2.59 900.16 2.59 Q 901.3 2.59 902 3.63 Q 902.69 4.67 902.69 6.37 Q 902.69 8.11 902 9.14 Q 901.3 10.18 900.13 10.18 M 900.13 10.18 M 900.14 9.46 Q 901.67 9.46 901.67 6.35 Q 901.67 3.32 900.16 3.32 Q 898.66 3.32 898.66 6.38 Q 898.66 9.46 900.14 9.46 M 900.14 9.46 M 906.13 10.18 Q 905.02 10.18 904.33 9.13 Q 903.63 8.08 903.63 6.38 Q 903.63 4.67 904.33 3.63 Q 905.03 2.59 906.16 2.59 Q 907.3 2.59 908 3.63 Q 908.69 4.67 908.69 6.37 Q 908.69 8.11 908 9.14 Q 907.3 10.18 906.13 10.18 M 906.13 10.18 M 906.14 9.46 Q 907.67 9.46 907.67 6.35 Q 907.67 3.32 906.16 3.32 Q 904.66 3.32 904.66 6.38 Q 904.66 9.46 906.14 9.46 M 906.14 9.46"/></g><line x1="895" y1="12" x2="895" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="940" y1="13" x2="940" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 982.5 10 L 982.5 9.28 L 983.95 9.28 L 983.95 3.57 L 982.5 3.94 L 982.5 3.19 L 984.92 2.59 L 984.92 9.28 L 986.36 9.28 L 986.36 10 M 982.5 10 M 988.5 10 L 988.5 9.28 L 989.95 9.28 L 989.95 3.57 L 988.5 3.94 L 988.5 3.19 L 990.92 2.59 L 990.92 9.28 L 992.36 9.28 L 992.36 10 M 988.5 10 M 996.13 10.18 Q 995.02 10.18 994.33 9.13 Q 993.63 8.08 993.63 6.38 Q 993.63 4.67 994.33 3.63 Q 995.03 2.59 996.16 2.59 Q 997.3 2.59 998 3.63 Q 998.69 4.67 998.69 6.37 Q 998.69 8.11 998 9.14 Q 997.3 10.18 996.13 10.18 M 996.13 10.18 M 996.14 9.46 Q 997.67 9.46 997.67 6.35 Q 997.67 3.32 996.16 3.32 Q 994.66 3.32 994.66 6.38 Q 994.66 9.46 996.14 9.46 M 996.14 9.46"/></g><line x1="985" y1="12" x2="985" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="1030" y1="13" x2="1030" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 1072.5 10 L 1072.5 9.28 L 1073.95 9.28 L 1073.95 3.57 L 1072.5 3.94 L 1072.5 3.19 L 1074.92 2.59 L 1074.92 9.28 L 1076.36 9.28 L 1076.36 10 M 1072.5 10 M 1077.83 10 L 1077.83 9.16 Q 1078.25 8.17 1079.53 7.02 L 1080.08 6.52 Q 1081.15 5.56 1081.15 4.61 Q 1081.15 4.01 1080.78 3.66 Q 1080.42 3.32 1079.78 3.32 Q 1079.03 3.32 1078.01 3.9 L 1078.01 3.05 Q 1078.97 2.59 1079.92 2.59 Q 1080.94 2.59 1081.55 3.14 Q 1082.17 3.69 1082.17 4.59 Q 1082.17 5.24 1081.86 5.74 Q 1081.55 6.25 1080.7 6.96 L 1080.33 7.28 Q 1079.17 8.26 1078.99 9.16 L 1082.13 9.16 L 1082.13 10 M 1077.83 10 M 1086.13 10.18 Q 1085.02 10.18 1084.33 9.13 Q 1083.63 8.08 1083.63 6.38 Q 1083.63 4.67 1084.33 3.63 Q 1085.03 2.59 1086.16 2.59 Q 1087.3 2.59 1088 3.63 Q 1088.69 4.67 1088.69 6.37 Q 1088.69 8.11 1088 9.14 Q 1087.3 10.18 1086.13 10.18 M 1086.13 10.18 M 1086.14 9.46 Q 1087.67 9.46 1087.67 6.35 Q 1087.67 3.32 1086.16 3.32 Q 1084.66 3.32 1084.66 6.38 Q 1084.66 9.46 1086.14 9.46 M 1086.14 9.46"/></g><line x1="1075" y1="12" x2="1075" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="1120" y1="13" x2="1120" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 1162.5 10 L 1162.5 9.28 L 1163.95 9.28 L 1163.95 3.57 L 1162.5 3.94 L 1162.5 3.19 L 1164.92 2.59 L 1164.92 9.28 L 1166.36 9.28 L 1166.36 10 M 1162.5 10 M 1168.02 9.95 L 1168.02 9.05 Q 1169.05 9.46 1169.65 9.46 Q 1170.33 9.46 1170.77 9.06 Q 1171.2 8.65 1171.2 8.01 Q 1171.2 6.49 1169.07 6.49 L 1168.68 6.49 L 1168.68 5.84 L 1169.02 5.83 Q 1171.02 5.83 1171.02 4.42 Q 1171.02 3.32 1169.71 3.32 Q 1168.98 3.32 1168.11 3.72 L 1168.11 2.88 Q 1168.97 2.59 1169.77 2.59 Q 1171.99 2.59 1171.99 4.27 Q 1171.99 5.54 1170.48 6.08 Q 1172.23 6.49 1172.23 8 Q 1172.23 9.02 1171.56 9.6 Q 1170.88 10.18 1169.71 10.18 Q 1169.04 10.18 1168.02 9.95 M 1168.02 9.95 M 1176.13 10.18 Q 1175.02 10.18 1174.33 9.13 Q 1173.63 8.08 1173.63 6.38 Q 1173.63 4.67 1174.33 3.63 Q 1175.03 2.59 1176.16 2.59 Q 1177.3 2.59 1178 3.63 Q 1178.69 4.67 1178.69 6.37 Q 1178.69 8.11 1178 9.14 Q 1177.3 10.18 1176.13 10.18 M 1176.13 10.18 M 1176.14 9.46 Q 1177.67 9.46 1177.67 6.35 Q 1177.67 3.32 1176.16 3.32 Q 1174.66 3.32 1174.66 6.38 Q 1174.66 9.46 1176.14 9.46 M 1176.14 9.46"/></g><line x1="1165" y1="12" x2="1165" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="1210" y1="13" x2="1210" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 1252.5 10 L 1252.5 9.28 L 1253.95 9.28 L 1253.95 3.57 L 1252.5 3.94 L 1252.5 3.19 L 1254.92 2.59 L 1254.92 9.28 L 1256.36 9.28 L 1256.36 10 M 1252.5 10 M 1260.76 10 L 1260.76 7.95 L 1257.51 7.95 L 1257.51 7.23 L 1260.76 2.77 L 1261.67 2.77 L 1261.67 7.17 L 1262.63 7.17 L 1262.63 7.95 L 1261.67 7.95 L 1261.67 10 M 1260.76 10 M 1258.46 7.17 L 1260.83 7.17 L 1260.83 3.96 M 1258.46 7.17 M 1266.13 10.18 Q 1265.02 10.18 1264.33 9.13 Q 1263.63 8.08 1263.63 6.38 Q 1263.63 4.67 1264.33 3.63 Q 1265.03 2.59 1266.16 2.59 Q 1267.3 2.59 1268 3.63 Q 1268.69 4.67 1268.69 6.37 Q 1268.69 8.11 1268 9.14 Q 1267.3 10.18 1266.13 10.18 M 1266.13 10.18 M 1266.14 9.46 Q 1267.67 9.46 1267.67 6.35 Q 1267.67 3.32 1266.16 3.32 Q 1264.66 3.32 1264.66 6.38 Q 1264.66 9.46 1266.14 9.46 M 1266.14 9.46"/></g><line x1="1255" y1="12" x2="1255" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="1300" y1="13" x2="1300" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 1342.5 10 L 1342.5 9.28 L 1343.95 9.28 L 1343.95 3.57 L 1342.5 3.94 L 1342.5 3.19 L 1344.92 2.59 L 1344.92 9.28 L 1346.36 9.28 L 1346.36 10 M 1342.5 10 M 1348.22 10.03 L 1348.22 9.17 Q 1348.93 9.46 1349.58 9.46 Q 1350.3 9.46 1350.7 9.04 Q 1351.11 8.62 1351.11 7.88 Q 1351.11 6.25 1348.87 6.25 Q 1348.62 6.25 1348.34 6.29 L 1348.34 2.77 L 1352 2.77 L 1352 3.61 L 1349.18 3.61 L 1349.18 5.52 Q 1350.57 5.52 1351.36 6.16 Q 1352.14 6.8 1352.14 7.93 Q 1352.14 8.98 1351.43 9.58 Q 1350.72 10.18 1349.46 10.18 Q 1348.91 10.18 1348.22 10.03 M 1348.22 10.03 M 1356.13 10.18 Q 1355.02 10.18 1354.33 9.13 Q 1353.63 8.08 1353.63 6.38 Q 1353.63 4.67 1354.33 3.63 Q 1355.03 2.59 1356.16 2.59 Q 1357.3 2.59 1358 3.63 Q 1358.69 4.67 1358.69 6.37 Q 1358.69 8.11 1358 9.14 Q 1357.3 10.18 1356.13 10.18 M 1356.13 10.18 M 1356.14 9.46 Q 1357.67 9.46 1357.67 6.35 Q 1357.67 3.32 1356.16 3.32 Q 1354.66 3.32 1354.66 6.38 Q 1354.66 9.46 1356.14 9.46 M 1356.14 9.46"/></g><line x1="1345" y1="12" x2="1345" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="1390" y1="13" x2="1390" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><rect x="0" y="0" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="0" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="0" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="0" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="0" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="0" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="0" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="0" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="0" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="0" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="0" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="0" width="18" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="0" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="0" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="0" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="0" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="0" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="0" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="702" y="0" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="0" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="0" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="0" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="0" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="0" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="774" y="0" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="0" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="801" y="0" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="0" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="0" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="0" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="0" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="0" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="0" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="0" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="0" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="0" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="0" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="0" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="0" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="0" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="0" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="0" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="0" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="0" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="0" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="0" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="0" width="18" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="0" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="0" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="0" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="0" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="0" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1080" y="0" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="0" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="0" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="0" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="0" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1.72 8.47 L 1.72 7.75 L 6.06 7.75 L 6.06 8.47 M 1.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 10.72 8.47 L 10.72 7.75 L 15.06 7.75 L 15.06 8.47 M 10.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 19.72 8.47 L 19.72 7.75 L 24.06 7.75 L 24.06 8.47 M 19.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 28.72 8.47 L 28.72 7.75 L 33.06 7.75 L 33.06 8.47 M 28.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 8.47 L 37.72 7.75 L 42.06 7.75 L 42.06 8.47 M 37.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 8.47 L 46.72 7.75 L 51.06 7.75 L 51.06 8.47 M 46.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 8.47 L 55.72 7.75 L 60.06 7.75 L 60.06 8.47 M 55.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.72 8.47 L 64.72 7.75 L 69.06 7.75 L 69.06 8.47 M 64.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 73.72 8.47 L 73.72 7.75 L 78.06 7.75 L 78.06 8.47 M 73.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 82.72 8.47 L 82.72 7.75 L 87.06 7.75 L 87.06 8.47 M 82.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 91.72 8.47 L 91.72 7.75 L 96.06 7.75 L 96.06 8.47 M 91.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 100.72 8.47 L 100.72 7.75 L 105.06 7.75 L 105.06 8.47 M 100.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 109.72 8.47 L 109.72 7.75 L 114.06 7.75 L 114.06 8.47 M 109.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 118.72 8.47 L 118.72 7.75 L 123.06 7.75 L 123.06 8.47 M 118.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 127.72 8.47 L 127.72 7.75 L 132.06 7.75 L 132.06 8.47 M 127.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 136.72 8.47 L 136.72 7.75 L 141.06 7.75 L 141.06 8.47 M 136.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 145.72 8.47 L 145.72 7.75 L 150.06 7.75 L 150.06 8.47 M 145.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 154.72 8.47 L 154.72 7.75 L 159.06 7.75 L 159.06 8.47 M 154.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 163.72 8.47 L 163.72 7.75 L 168.06 7.75 L 168.06 8.47 M 163.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 172.72 8.47 L 172.72 7.75 L 177.06 7.75 L 177.06 8.47 M 172.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.72 8.47 L 181.72 7.75 L 186.06 7.75 L 186.06 8.47 M 181.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.72 8.47 L 190.72 7.75 L 195.06 7.75 L 195.06 8.47 M 190.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 199.72 8.47 L 199.72 7.75 L 204.06 7.75 L 204.06 8.47 M 199.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.72 8.47 L 208.72 7.75 L 213.06 7.75 L 213.06 8.47 M 208.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 217.72 8.47 L 217.72 7.75 L 222.06 7.75 L 222.06 8.47 M 217.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.72 8.47 L 226.72 7.75 L 231.06 7.75 L 231.06 8.47 M 226.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 235.72 8.47 L 235.72 7.75 L 240.06 7.75 L 240.06 8.47 M 235.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 244.72 8.47 L 244.72 7.75 L 249.06 7.75 L 249.06 8.47 M 244.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 253.72 8.47 L 253.72 7.75 L 258.06 7.75 L 258.06 8.47 M 253.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.72 8.47 L 262.72 7.75 L 267.06 7.75 L 267.06 8.47 M 262.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 271.72 8.47 L 271.72 7.75 L 276.06 7.75 L 276.06 8.47 M 271.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 280.72 8.47 L 280.72 7.75 L 285.06 7.75 L 285.06 8.47 M 280.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 289.72 8.47 L 289.72 7.75 L 294.06 7.75 L 294.06 8.47 M 289.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 298.72 8.47 L 298.72 7.75 L 303.06 7.75 L 303.06 8.47 M 298.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 307.72 8.47 L 307.72 7.75 L 312.06 7.75 L 312.06 8.47 M 307.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 316.72 8.47 L 316.72 7.75 L 321.06 7.75 L 321.06 8.47 M 316.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 325.72 8.47 L 325.72 7.75 L 330.06 7.75 L 330.06 8.47 M 325.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 334.72 8.47 L 334.72 7.75 L 339.06 7.75 L 339.06 8.47 M 334.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 8.47 L 343.72 7.75 L 348.06 7.75 L 348.06 8.47 M 343.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 8.47 L 352.72 7.75 L 357.06 7.75 L 357.06 8.47 M 352.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 361.72 8.47 L 361.72 7.75 L 366.06 7.75 L 366.06 8.47 M 361.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 370.72 8.47 L 370.72 7.75 L 375.06 7.75 L 375.06 8.47 M 370.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 379.72 8.47 L 379.72 7.75 L 384.06 7.75 L 384.06 8.47 M 379.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 388.72 8.47 L 388.72 7.75 L 393.06 7.75 L 393.06 8.47 M 388.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 397.72 8.47 L 397.72 7.75 L 402.06 7.75 L 402.06 8.47 M 397.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.72 8.47 L 406.72 7.75 L 411.06 7.75 L 411.06 8.47 M 406.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 415.72 8.47 L 415.72 7.75 L 420.06 7.75 L 420.06 8.47 M 415.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 8.47 L 424.72 7.75 L 429.06 7.75 L 429.06 8.47 M 424.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 433.72 8.47 L 433.72 7.75 L 438.06 7.75 L 438.06 8.47 M 433.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 442.72 8.47 L 442.72 7.75 L 447.06 7.75 L 447.06 8.47 M 442.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 451.72 8.47 L 451.72 7.75 L 456.06 7.75 L 456.06 8.47 M 451.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.72 8.47 L 460.72 7.75 L 465.06 7.75 L 465.06 8.47 M 460.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 469.72 8.47 L 469.72 7.75 L 474.06 7.75 L 474.06 8.47 M 469.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 478.72 8.47 L 478.72 7.75 L 483.06 7.75 L 483.06 8.47 M 478.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 487.72 8.47 L 487.72 7.75 L 492.06 7.75 L 492.06 8.47 M 487.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 496.72 8.47 L 496.72 7.75 L 501.06 7.75 L 501.06 8.47 M 496.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 505.72 8.47 L 505.72 7.75 L 510.06 7.75 L 510.06 8.47 M 505.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 514.72 8.47 L 514.72 7.75 L 519.06 7.75 L 519.06 8.47 M 514.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 523.72 8.47 L 523.72 7.75 L 528.06 7.75 L 528.06 8.47 M 523.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 8.24 L 535.36 5.12 L 534.13 8.24 M 536.59 8.24 M 537.68 11 L 536.89 9 L 533.83 9 L 533.04 11 L 532.08 11 L 534.95 3.77 L 535.96 3.77 L 538.79 11 M 537.68 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 544.35 11.18 Q 543.62 11.18 542.49 10.86 L 542.49 9.85 Q 543.71 10.41 544.5 10.41 Q 545.1 10.41 545.47 10.1 Q 545.84 9.78 545.84 9.26 Q 545.84 8.84 545.6 8.54 Q 545.35 8.24 544.71 7.88 L 544.21 7.59 Q 543.28 7.06 542.91 6.59 Q 542.53 6.13 542.53 5.51 Q 542.53 4.67 543.13 4.13 Q 543.74 3.59 544.68 3.59 Q 545.51 3.59 546.44 3.87 L 546.44 4.81 Q 545.3 4.36 544.73 4.36 Q 544.2 4.36 543.86 4.64 Q 543.51 4.93 543.51 5.36 Q 543.51 5.72 543.76 6 Q 544.02 6.27 544.69 6.66 L 545.21 6.95 Q 546.15 7.48 546.52 7.96 Q 546.89 8.43 546.89 9.1 Q 546.89 10.04 546.19 10.61 Q 545.5 11.18 544.35 11.18 M 544.35 11.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 11 L 552.5 7.98 L 550.08 3.77 L 551.25 3.77 L 553.13 7.04 L 555.15 3.77 L 556.1 3.77 L 553.52 7.96 L 553.52 11 M 552.5 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 11 L 559.93 3.77 L 560.89 3.77 L 560.89 7.33 L 563.82 3.77 L 564.85 3.77 L 562.02 7.22 L 565.35 11 L 564.05 11 L 560.89 7.34 L 560.89 11 M 559.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 11 L 568.18 3.77 L 569.2 3.77 L 571.44 9.69 L 573.6 3.77 L 574.49 3.77 L 571.87 11 M 570.91 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 11 L 577.93 3.77 L 578.89 3.77 L 578.89 7.33 L 581.82 3.77 L 582.85 3.77 L 580.02 7.22 L 583.35 11 L 582.05 11 L 578.89 7.34 L 578.89 11 M 577.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 11 L 587.93 3.77 L 588.96 3.77 L 588.96 10.23 L 592.21 10.23 L 592.21 11 M 587.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 11 L 597.93 3.77 L 598.95 3.77 L 598.95 11 M 597.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 11 L 606.65 4.54 L 604.09 4.54 L 604.09 3.77 L 610.24 3.77 L 610.24 4.54 L 607.68 4.54 L 607.68 11 M 606.65 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 11 L 613.93 3.77 L 615.9 3.77 Q 617.21 3.77 617.78 4.22 Q 618.35 4.66 618.35 5.67 Q 618.35 6.82 617.57 7.47 Q 616.79 8.13 615.4 8.13 L 614.95 8.13 L 614.95 11 M 613.93 11 M 614.95 7.35 L 615.36 7.35 Q 616.28 7.35 616.77 6.93 Q 617.27 6.51 617.27 5.75 Q 617.27 5.1 616.88 4.82 Q 616.49 4.54 615.58 4.54 L 614.95 4.54 M 614.95 7.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 622.93 11 L 622.93 3.77 L 625.33 3.77 Q 626.41 3.77 627.07 4.01 Q 627.73 4.25 628.22 4.82 Q 628.98 5.73 628.98 7.22 Q 628.98 9.02 628.03 10.01 Q 627.08 11 625.35 11 M 622.93 11 M 623.96 10.23 L 625.27 10.23 Q 626.68 10.23 627.26 9.48 Q 627.89 8.67 627.89 7.31 Q 627.89 6.04 627.27 5.31 Q 626.9 4.87 626.38 4.7 Q 625.85 4.54 624.8 4.54 L 623.96 4.54 M 623.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 10.8 Q 636.05 11.18 635.07 11.18 Q 633.35 11.18 632.43 10.2 Q 631.51 9.22 631.51 7.39 Q 631.51 5.59 632.44 4.59 Q 633.37 3.59 635.06 3.59 Q 636.16 3.59 637.35 3.92 L 637.35 4.87 Q 635.86 4.36 635.06 4.36 Q 633.89 4.36 633.24 5.16 Q 632.6 5.95 632.6 7.4 Q 632.6 8.83 633.29 9.62 Q 633.98 10.41 635.23 10.41 Q 635.75 10.41 636.34 10.23 L 636.34 7.88 L 637.36 7.88 M 637.36 10.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 640.93 11 L 640.93 3.77 L 642.9 3.77 Q 644.21 3.77 644.78 4.22 Q 645.35 4.66 645.35 5.67 Q 645.35 6.82 644.57 7.47 Q 643.79 8.13 642.4 8.13 L 641.95 8.13 L 641.95 11 M 640.93 11 M 641.95 7.35 L 642.36 7.35 Q 643.28 7.35 643.77 6.93 Q 644.27 6.51 644.27 5.75 Q 644.27 5.1 643.88 4.82 Q 643.49 4.54 642.58 4.54 L 641.95 4.54 M 641.95 7.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 651.93 11 L 651.93 3.77 L 652.95 3.77 L 652.95 11 M 651.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 11 L 659.93 3.77 L 663.97 3.77 L 663.97 4.54 L 660.96 4.54 L 660.96 6.86 L 663.48 6.86 L 663.48 7.62 L 660.96 7.62 L 660.96 10.23 L 664.18 10.23 L 664.18 11 M 659.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 668.93 11 L 668.93 3.77 L 672.97 3.77 L 672.97 4.54 L 669.96 4.54 L 669.96 6.96 L 672.49 6.96 L 672.49 7.72 L 669.96 7.72 L 669.96 11 M 668.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 676.93 11 L 676.93 3.77 L 679.33 3.77 Q 680.41 3.77 681.07 4.01 Q 681.73 4.25 682.22 4.82 Q 682.98 5.73 682.98 7.22 Q 682.98 9.02 682.03 10.01 Q 681.08 11 679.35 11 M 676.93 11 M 677.96 10.23 L 679.27 10.23 Q 680.68 10.23 681.26 9.48 Q 681.89 8.67 681.89 7.31 Q 681.89 6.04 681.27 5.31 Q 680.9 4.87 680.38 4.7 Q 679.85 4.54 678.8 4.54 L 677.96 4.54 M 677.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 11.18 Q 687.34 11.18 686.43 10.19 Q 685.51 9.2 685.51 7.39 Q 685.51 5.58 686.44 4.59 Q 687.38 3.59 689.08 3.59 Q 690.05 3.59 691.35 3.91 L 691.35 4.87 Q 689.87 4.36 689.06 4.36 Q 687.89 4.36 687.24 5.16 Q 686.6 5.95 686.6 7.4 Q 686.6 8.78 687.29 9.58 Q 687.97 10.38 689.17 10.38 Q 690.19 10.38 691.36 9.75 L 691.36 10.63 Q 690.29 11.18 689.03 11.18 M 689.03 11.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 11 L 694.93 3.77 L 696.9 3.77 Q 698.21 3.77 698.78 4.22 Q 699.35 4.66 699.35 5.67 Q 699.35 6.82 698.57 7.47 Q 697.79 8.13 696.4 8.13 L 695.95 8.13 L 695.95 11 M 694.93 11 M 695.95 7.35 L 696.36 7.35 Q 697.28 7.35 697.77 6.93 Q 698.27 6.51 698.27 5.75 Q 698.27 5.1 697.88 4.82 Q 697.49 4.54 696.58 4.54 L 695.95 4.54 M 695.95 7.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 11 L 703.93 3.77 L 706.33 3.77 Q 707.41 3.77 708.07 4.01 Q 708.73 4.25 709.22 4.82 Q 709.98 5.73 709.98 7.22 Q 709.98 9.02 709.03 10.01 Q 708.08 11 706.35 11 M 703.93 11 M 704.96 10.23 L 706.27 10.23 Q 707.68 10.23 708.26 9.48 Q 708.89 8.67 708.89 7.31 Q 708.89 6.04 708.27 5.31 Q 707.9 4.87 707.38 4.7 Q 706.85 4.54 705.8 4.54 L 704.96 4.54 M 704.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 11 L 712.93 3.77 L 715.33 3.77 Q 716.41 3.77 717.07 4.01 Q 717.73 4.25 718.22 4.82 Q 718.98 5.73 718.98 7.22 Q 718.98 9.02 718.03 10.01 Q 717.08 11 715.35 11 M 712.93 11 M 713.96 10.23 L 715.27 10.23 Q 716.68 10.23 717.26 9.48 Q 717.89 8.67 717.89 7.31 Q 717.89 6.04 717.27 5.31 Q 716.9 4.87 716.38 4.7 Q 715.85 4.54 714.8 4.54 L 713.96 4.54 M 713.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 11 L 721.18 3.77 L 722.2 3.77 L 724.44 9.69 L 726.6 3.77 L 727.49 3.77 L 724.87 11 M 723.91 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 11 L 732.5 7.98 L 730.08 3.77 L 731.25 3.77 L 733.13 7.04 L 735.15 3.77 L 736.1 3.77 L 733.52 7.96 L 733.52 11 M 732.5 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.93 11 L 741.93 3.77 L 742.95 3.77 L 742.95 11 M 741.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 11 L 749.93 3.77 L 750.96 3.77 L 750.96 10.23 L 754.21 10.23 L 754.21 11 M 749.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 11 L 757.93 3.77 L 760.33 3.77 Q 761.41 3.77 762.07 4.01 Q 762.73 4.25 763.22 4.82 Q 763.98 5.73 763.98 7.22 Q 763.98 9.02 763.03 10.01 Q 762.08 11 760.35 11 M 757.93 11 M 758.96 10.23 L 760.27 10.23 Q 761.68 10.23 762.26 9.48 Q 762.89 8.67 762.89 7.31 Q 762.89 6.04 762.27 5.31 Q 761.9 4.87 761.38 4.7 Q 760.85 4.54 759.8 4.54 L 758.96 4.54 M 758.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 772.35 12.45 Q 770.64 11.89 769.49 11.13 Q 769.03 11.18 768.78 11.18 Q 767.33 11.18 766.42 10.13 Q 765.51 9.07 765.51 7.39 Q 765.51 5.66 766.43 4.63 Q 767.35 3.59 768.89 3.59 Q 770.43 3.59 771.35 4.63 Q 772.27 5.66 772.27 7.4 Q 772.27 9.89 770.42 10.85 Q 771.66 11.4 773 11.63 M 772.35 12.45 M 768.86 10.41 Q 769.97 10.41 770.57 9.62 Q 771.18 8.82 771.18 7.37 Q 771.18 5.96 770.57 5.16 Q 769.97 4.36 768.89 4.36 Q 767.81 4.36 767.2 5.16 Q 766.6 5.96 766.6 7.38 Q 766.6 8.79 767.2 9.6 Q 767.8 10.41 768.86 10.41 M 768.86 10.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 8.24 L 778.36 5.12 L 777.13 8.24 M 779.59 8.24 M 780.68 11 L 779.89 9 L 776.83 9 L 776.04 11 L 775.08 11 L 777.95 3.77 L 778.96 3.77 L 781.79 11 M 780.68 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 11 L 785.93 3.77 L 789.97 3.77 L 789.97 4.54 L 786.96 4.54 L 786.96 6.86 L 789.48 6.86 L 789.48 7.62 L 786.96 7.62 L 786.96 10.23 L 790.18 10.23 L 790.18 11 M 785.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 11 L 794.93 3.77 L 798.97 3.77 L 798.97 4.54 L 795.96 4.54 L 795.96 6.86 L 798.48 6.86 L 798.48 7.62 L 795.96 7.62 L 795.96 10.23 L 799.18 10.23 L 799.18 11 M 794.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 806.59 8.24 L 805.36 5.12 L 804.13 8.24 M 806.59 8.24 M 807.68 11 L 806.89 9 L 803.83 9 L 803.04 11 L 802.08 11 L 804.95 3.77 L 805.96 3.77 L 808.79 11 M 807.68 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 10.8 Q 816.05 11.18 815.07 11.18 Q 813.35 11.18 812.43 10.2 Q 811.51 9.22 811.51 7.39 Q 811.51 5.59 812.44 4.59 Q 813.37 3.59 815.06 3.59 Q 816.16 3.59 817.35 3.92 L 817.35 4.87 Q 815.86 4.36 815.06 4.36 Q 813.89 4.36 813.24 5.16 Q 812.6 5.95 812.6 7.4 Q 812.6 8.83 813.29 9.62 Q 813.98 10.41 815.23 10.41 Q 815.75 10.41 816.34 10.23 L 816.34 7.88 L 817.36 7.88 M 817.36 10.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 820.93 11 L 820.93 3.77 L 821.96 3.77 L 821.96 6.82 L 825.4 6.82 L 825.4 3.77 L 826.42 3.77 L 826.42 11 L 825.4 11 L 825.4 7.59 L 821.96 7.59 L 821.96 11 M 820.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 11 L 829.93 3.77 L 832.33 3.77 Q 833.41 3.77 834.07 4.01 Q 834.73 4.25 835.22 4.82 Q 835.98 5.73 835.98 7.22 Q 835.98 9.02 835.03 10.01 Q 834.08 11 832.35 11 M 829.93 11 M 830.96 10.23 L 832.27 10.23 Q 833.68 10.23 834.26 9.48 Q 834.89 8.67 834.89 7.31 Q 834.89 6.04 834.27 5.31 Q 833.9 4.87 833.38 4.7 Q 832.85 4.54 831.8 4.54 L 830.96 4.54 M 830.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 11 L 839.93 3.77 L 840.96 3.77 L 840.96 10.23 L 844.21 10.23 L 844.21 11 M 839.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 11 L 847.93 3.77 L 849.9 3.77 Q 851.21 3.77 851.78 4.22 Q 852.35 4.66 852.35 5.67 Q 852.35 6.82 851.57 7.47 Q 850.79 8.13 849.4 8.13 L 848.95 8.13 L 848.95 11 M 847.93 11 M 848.95 7.35 L 849.36 7.35 Q 850.28 7.35 850.77 6.93 Q 851.27 6.51 851.27 5.75 Q 851.27 5.1 850.88 4.82 Q 850.49 4.54 849.58 4.54 L 848.95 4.54 M 848.95 7.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 11 L 858.5 7.98 L 856.08 3.77 L 857.25 3.77 L 859.13 7.04 L 861.15 3.77 L 862.1 3.77 L 859.52 7.96 L 859.52 11 M 858.5 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 11.18 Q 867.62 11.18 866.49 10.86 L 866.49 9.85 Q 867.71 10.41 868.5 10.41 Q 869.1 10.41 869.47 10.1 Q 869.84 9.78 869.84 9.26 Q 869.84 8.84 869.6 8.54 Q 869.35 8.24 868.71 7.88 L 868.21 7.59 Q 867.28 7.06 866.91 6.59 Q 866.53 6.13 866.53 5.51 Q 866.53 4.67 867.13 4.13 Q 867.74 3.59 868.68 3.59 Q 869.51 3.59 870.44 3.87 L 870.44 4.81 Q 869.3 4.36 868.73 4.36 Q 868.2 4.36 867.86 4.64 Q 867.51 4.93 867.51 5.36 Q 867.51 5.72 867.76 6 Q 868.02 6.27 868.69 6.66 L 869.21 6.95 Q 870.15 7.48 870.52 7.96 Q 870.89 8.43 870.89 9.1 Q 870.89 10.04 870.19 10.61 Q 869.5 11.18 868.35 11.18 M 868.35 11.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 11.18 Q 876.34 11.18 875.43 10.19 Q 874.51 9.2 874.51 7.39 Q 874.51 5.58 875.44 4.59 Q 876.38 3.59 878.08 3.59 Q 879.05 3.59 880.35 3.91 L 880.35 4.87 Q 878.87 4.36 878.06 4.36 Q 876.89 4.36 876.24 5.16 Q 875.6 5.95 875.6 7.4 Q 875.6 8.78 876.29 9.58 Q 876.97 10.38 878.17 10.38 Q 879.19 10.38 880.36 9.75 L 880.36 10.63 Q 879.29 11.18 878.03 11.18 M 878.03 11.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 11 L 883.93 3.77 L 886.12 3.77 Q 887.16 3.77 887.71 4.23 Q 888.27 4.69 888.27 5.57 Q 888.27 7.01 886.81 7.62 L 889.22 11 L 887.96 11 L 885.91 7.94 L 884.95 7.94 L 884.95 11 M 883.93 11 M 884.95 7.18 L 885.28 7.18 Q 887.21 7.18 887.21 5.66 Q 887.21 4.54 885.59 4.54 L 884.95 4.54 M 884.95 7.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 8.24 L 895.36 5.12 L 894.13 8.24 M 896.59 8.24 M 897.68 11 L 896.89 9 L 893.83 9 L 893.04 11 L 892.08 11 L 894.95 3.77 L 895.96 3.77 L 898.79 11 M 897.68 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 10.8 Q 906.05 11.18 905.07 11.18 Q 903.35 11.18 902.43 10.2 Q 901.51 9.22 901.51 7.39 Q 901.51 5.59 902.44 4.59 Q 903.37 3.59 905.06 3.59 Q 906.16 3.59 907.35 3.92 L 907.35 4.87 Q 905.86 4.36 905.06 4.36 Q 903.89 4.36 903.24 5.16 Q 902.6 5.95 902.6 7.4 Q 902.6 8.83 903.29 9.62 Q 903.98 10.41 905.23 10.41 Q 905.75 10.41 906.34 10.23 L 906.34 7.88 L 907.36 7.88 M 907.36 10.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 11.18 Q 912.62 11.18 911.49 10.86 L 911.49 9.85 Q 912.71 10.41 913.5 10.41 Q 914.1 10.41 914.47 10.1 Q 914.84 9.78 914.84 9.26 Q 914.84 8.84 914.6 8.54 Q 914.35 8.24 913.71 7.88 L 913.21 7.59 Q 912.28 7.06 911.91 6.59 Q 911.53 6.13 911.53 5.51 Q 911.53 4.67 912.13 4.13 Q 912.74 3.59 913.68 3.59 Q 914.51 3.59 915.44 3.87 L 915.44 4.81 Q 914.3 4.36 913.73 4.36 Q 913.2 4.36 912.86 4.64 Q 912.51 4.93 912.51 5.36 Q 912.51 5.72 912.76 6 Q 913.02 6.27 913.69 6.66 L 914.21 6.95 Q 915.15 7.48 915.52 7.96 Q 915.89 8.43 915.89 9.1 Q 915.89 10.04 915.19 10.61 Q 914.5 11.18 913.35 11.18 M 913.35 11.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 11.18 Q 921.34 11.18 920.43 10.19 Q 919.51 9.2 919.51 7.39 Q 919.51 5.58 920.44 4.59 Q 921.38 3.59 923.08 3.59 Q 924.05 3.59 925.35 3.91 L 925.35 4.87 Q 923.87 4.36 923.06 4.36 Q 921.89 4.36 921.24 5.16 Q 920.6 5.95 920.6 7.4 Q 920.6 8.78 921.29 9.58 Q 921.97 10.38 923.17 10.38 Q 924.19 10.38 925.36 9.75 L 925.36 10.63 Q 924.29 11.18 923.03 11.18 M 923.03 11.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 11.18 Q 930.62 11.18 929.49 10.86 L 929.49 9.85 Q 930.71 10.41 931.5 10.41 Q 932.1 10.41 932.47 10.1 Q 932.84 9.78 932.84 9.26 Q 932.84 8.84 932.6 8.54 Q 932.35 8.24 931.71 7.88 L 931.21 7.59 Q 930.28 7.06 929.91 6.59 Q 929.53 6.13 929.53 5.51 Q 929.53 4.67 930.13 4.13 Q 930.74 3.59 931.68 3.59 Q 932.51 3.59 933.44 3.87 L 933.44 4.81 Q 932.3 4.36 931.73 4.36 Q 931.2 4.36 930.86 4.64 Q 930.51 4.93 930.51 5.36 Q 930.51 5.72 930.76 6 Q 931.02 6.27 931.69 6.66 L 932.21 6.95 Q 933.15 7.48 933.52 7.96 Q 933.89 8.43 933.89 9.1 Q 933.89 10.04 933.19 10.61 Q 932.5 11.18 931.35 11.18 M 931.35 11.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 11.18 Q 939.62 11.18 938.49 10.86 L 938.49 9.85 Q 939.71 10.41 940.5 10.41 Q 941.1 10.41 941.47 10.1 Q 941.84 9.78 941.84 9.26 Q 941.84 8.84 941.6 8.54 Q 941.35 8.24 940.71 7.88 L 940.21 7.59 Q 939.28 7.06 938.91 6.59 Q 938.53 6.13 938.53 5.51 Q 938.53 4.67 939.13 4.13 Q 939.74 3.59 940.68 3.59 Q 941.51 3.59 942.44 3.87 L 942.44 4.81 Q 941.3 4.36 940.73 4.36 Q 940.2 4.36 939.86 4.64 Q 939.51 4.93 939.51 5.36 Q 939.51 5.72 939.76 6 Q 940.02 6.27 940.69 6.66 L 941.21 6.95 Q 942.15 7.48 942.52 7.96 Q 942.89 8.43 942.89 9.1 Q 942.89 10.04 942.19 10.61 Q 941.5 11.18 940.35 11.18 M 940.35 11.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 11.18 Q 948.34 11.18 947.43 10.19 Q 946.51 9.2 946.51 7.39 Q 946.51 5.58 947.44 4.59 Q 948.38 3.59 950.08 3.59 Q 951.05 3.59 952.35 3.91 L 952.35 4.87 Q 950.87 4.36 950.06 4.36 Q 948.89 4.36 948.24 5.16 Q 947.6 5.95 947.6 7.4 Q 947.6 8.78 948.29 9.58 Q 948.97 10.38 950.17 10.38 Q 951.19 10.38 952.36 9.75 L 952.36 10.63 Q 951.29 11.18 950.03 11.18 M 950.03 11.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 8.24 L 958.36 5.12 L 957.13 8.24 M 959.59 8.24 M 960.68 11 L 959.89 9 L 956.83 9 L 956.04 11 L 955.08 11 L 957.95 3.77 L 958.96 3.77 L 961.79 11 M 960.68 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 10.8 Q 969.05 11.18 968.07 11.18 Q 966.35 11.18 965.43 10.2 Q 964.51 9.22 964.51 7.39 Q 964.51 5.59 965.44 4.59 Q 966.37 3.59 968.06 3.59 Q 969.16 3.59 970.35 3.92 L 970.35 4.87 Q 968.86 4.36 968.06 4.36 Q 966.89 4.36 966.24 5.16 Q 965.6 5.95 965.6 7.4 Q 965.6 8.83 966.29 9.62 Q 966.98 10.41 968.23 10.41 Q 968.75 10.41 969.34 10.23 L 969.34 7.88 L 970.36 7.88 M 970.36 10.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 11 L 973.93 3.77 L 974.89 3.77 L 974.89 7.33 L 977.82 3.77 L 978.85 3.77 L 976.02 7.22 L 979.35 11 L 978.05 11 L 974.89 7.34 L 974.89 11 M 973.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.93 11 L 984.93 3.77 L 985.95 3.77 L 985.95 11 M 984.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 995.59 8.24 L 994.36 5.12 L 993.13 8.24 M 995.59 8.24 M 996.68 11 L 995.89 9 L 992.83 9 L 992.04 11 L 991.08 11 L 993.95 3.77 L 994.96 3.77 L 997.79 11 M 996.68 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1006.36 10.8 Q 1005.05 11.18 1004.07 11.18 Q 1002.35 11.18 1001.43 10.2 Q 1000.51 9.22 1000.51 7.39 Q 1000.51 5.59 1001.44 4.59 Q 1002.37 3.59 1004.06 3.59 Q 1005.16 3.59 1006.35 3.92 L 1006.35 4.87 Q 1004.86 4.36 1004.06 4.36 Q 1002.89 4.36 1002.24 5.16 Q 1001.6 5.95 1001.6 7.4 Q 1001.6 8.83 1002.29 9.62 Q 1002.98 10.41 1004.23 10.41 Q 1004.75 10.41 1005.34 10.23 L 1005.34 7.88 L 1006.36 7.88 M 1006.36 10.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 10.8 Q 1014.05 11.18 1013.07 11.18 Q 1011.35 11.18 1010.43 10.2 Q 1009.51 9.22 1009.51 7.39 Q 1009.51 5.59 1010.44 4.59 Q 1011.37 3.59 1013.06 3.59 Q 1014.16 3.59 1015.35 3.92 L 1015.35 4.87 Q 1013.86 4.36 1013.06 4.36 Q 1011.89 4.36 1011.24 5.16 Q 1010.6 5.95 1010.6 7.4 Q 1010.6 8.83 1011.29 9.62 Q 1011.98 10.41 1013.23 10.41 Q 1013.75 10.41 1014.34 10.23 L 1014.34 7.88 L 1015.36 7.88 M 1015.36 10.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1022.59 8.24 L 1021.36 5.12 L 1020.13 8.24 M 1022.59 8.24 M 1023.68 11 L 1022.89 9 L 1019.83 9 L 1019.04 11 L 1018.08 11 L 1020.95 3.77 L 1021.96 3.77 L 1024.79 11 M 1023.68 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 11 L 1027.18 3.77 L 1028.2 3.77 L 1030.44 9.69 L 1032.6 3.77 L 1033.49 3.77 L 1030.87 11 M 1029.91 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 11 L 1036.93 3.77 L 1039.33 3.77 Q 1040.41 3.77 1041.07 4.01 Q 1041.73 4.25 1042.22 4.82 Q 1042.98 5.73 1042.98 7.22 Q 1042.98 9.02 1042.03 10.01 Q 1041.08 11 1039.35 11 M 1036.93 11 M 1037.96 10.23 L 1039.27 10.23 Q 1040.68 10.23 1041.26 9.48 Q 1041.89 8.67 1041.89 7.31 Q 1041.89 6.04 1041.27 5.31 Q 1040.9 4.87 1040.38 4.7 Q 1039.85 4.54 1038.8 4.54 L 1037.96 4.54 M 1037.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 12.45 Q 1049.64 11.89 1048.49 11.13 Q 1048.03 11.18 1047.78 11.18 Q 1046.33 11.18 1045.42 10.13 Q 1044.51 9.07 1044.51 7.39 Q 1044.51 5.66 1045.43 4.63 Q 1046.35 3.59 1047.89 3.59 Q 1049.43 3.59 1050.35 4.63 Q 1051.27 5.66 1051.27 7.4 Q 1051.27 9.89 1049.42 10.85 Q 1050.66 11.4 1052 11.63 M 1051.35 12.45 M 1047.86 10.41 Q 1048.97 10.41 1049.57 9.62 Q 1050.18 8.82 1050.18 7.37 Q 1050.18 5.96 1049.57 5.16 Q 1048.97 4.36 1047.89 4.36 Q 1046.81 4.36 1046.2 5.16 Q 1045.6 5.96 1045.6 7.38 Q 1045.6 8.79 1046.2 9.6 Q 1046.8 10.41 1047.86 10.41 M 1047.86 10.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1056.65 11 L 1056.65 4.54 L 1054.09 4.54 L 1054.09 3.77 L 1060.24 3.77 L 1060.24 4.54 L 1057.68 4.54 L 1057.68 11 M 1056.65 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 11 L 1063.93 3.77 L 1066.33 3.77 Q 1067.41 3.77 1068.07 4.01 Q 1068.73 4.25 1069.22 4.82 Q 1069.98 5.73 1069.98 7.22 Q 1069.98 9.02 1069.03 10.01 Q 1068.08 11 1066.35 11 M 1063.93 11 M 1064.96 10.23 L 1066.27 10.23 Q 1067.68 10.23 1068.26 9.48 Q 1068.89 8.67 1068.89 7.31 Q 1068.89 6.04 1068.27 5.31 Q 1067.9 4.87 1067.38 4.7 Q 1066.85 4.54 1065.8 4.54 L 1064.96 4.54 M 1064.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.36 10.8 Q 1077.05 11.18 1076.07 11.18 Q 1074.35 11.18 1073.43 10.2 Q 1072.51 9.22 1072.51 7.39 Q 1072.51 5.59 1073.44 4.59 Q 1074.37 3.59 1076.06 3.59 Q 1077.16 3.59 1078.35 3.92 L 1078.35 4.87 Q 1076.86 4.36 1076.06 4.36 Q 1074.89 4.36 1074.24 5.16 Q 1073.6 5.95 1073.6 7.4 Q 1073.6 8.83 1074.29 9.62 Q 1074.98 10.41 1076.23 10.41 Q 1076.75 10.41 1077.34 10.23 L 1077.34 7.88 L 1078.36 7.88 M 1078.36 10.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1081.93 11 L 1081.93 3.77 L 1082.94 3.77 L 1086.58 9.35 L 1086.58 3.77 L 1087.46 3.77 L 1087.46 11 L 1086.45 11 L 1082.81 5.42 L 1082.81 11 M 1081.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 11 L 1091.93 3.77 L 1095.97 3.77 L 1095.97 4.54 L 1092.96 4.54 L 1092.96 6.96 L 1095.49 6.96 L 1095.49 7.72 L 1092.96 7.72 L 1092.96 11 M 1091.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 11 L 1100.93 3.77 L 1101.96 3.77 L 1101.96 10.23 L 1105.21 10.23 L 1105.21 11 M 1100.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 11 L 1108.93 3.77 L 1111.33 3.77 Q 1112.41 3.77 1113.07 4.01 Q 1113.73 4.25 1114.22 4.82 Q 1114.98 5.73 1114.98 7.22 Q 1114.98 9.02 1114.03 10.01 Q 1113.08 11 1111.35 11 M 1108.93 11 M 1109.96 10.23 L 1111.27 10.23 Q 1112.68 10.23 1113.26 9.48 Q 1113.89 8.67 1113.89 7.31 Q 1113.89 6.04 1113.27 5.31 Q 1112.9 4.87 1112.38 4.7 Q 1111.85 4.54 1110.8 4.54 L 1109.96 4.54 M 1109.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 11 L 1117.93 3.77 L 1120.33 3.77 Q 1121.41 3.77 1122.07 4.01 Q 1122.73 4.25 1123.22 4.82 Q 1123.98 5.73 1123.98 7.22 Q 1123.98 9.02 1123.03 10.01 Q 1122.08 11 1120.35 11 M 1117.93 11 M 1118.96 10.23 L 1120.27 10.23 Q 1121.68 10.23 1122.26 9.48 Q 1122.89 8.67 1122.89 7.31 Q 1122.89 6.04 1122.27 5.31 Q 1121.9 4.87 1121.38 4.7 Q 1120.85 4.54 1119.8 4.54 L 1118.96 4.54 M 1118.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1126.93 11 L 1126.93 3.77 L 1129.33 3.77 Q 1130.41 3.77 1131.07 4.01 Q 1131.73 4.25 1132.22 4.82 Q 1132.98 5.73 1132.98 7.22 Q 1132.98 9.02 1132.03 10.01 Q 1131.08 11 1129.35 11 M 1126.93 11 M 1127.96 10.23 L 1129.27 10.23 Q 1130.68 10.23 1131.26 9.48 Q 1131.89 8.67 1131.89 7.31 Q 1131.89 6.04 1131.27 5.31 Q 1130.9 4.87 1130.38 4.7 Q 1129.85 4.54 1128.8 4.54 L 1127.96 4.54 M 1127.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 12.45 Q 1139.64 11.89 1138.49 11.13 Q 1138.03 11.18 1137.78 11.18 Q 1136.33 11.18 1135.42 10.13 Q 1134.51 9.07 1134.51 7.39 Q 1134.51 5.66 1135.43 4.63 Q 1136.35 3.59 1137.89 3.59 Q 1139.43 3.59 1140.35 4.63 Q 1141.27 5.66 1141.27 7.4 Q 1141.27 9.89 1139.42 10.85 Q 1140.66 11.4 1142 11.63 M 1141.35 12.45 M 1137.86 10.41 Q 1138.97 10.41 1139.57 9.62 Q 1140.18 8.82 1140.18 7.37 Q 1140.18 5.96 1139.57 5.16 Q 1138.97 4.36 1137.89 4.36 Q 1136.81 4.36 1136.2 5.16 Q 1135.6 5.96 1135.6 7.38 Q 1135.6 8.79 1136.2 9.6 Q 1136.8 10.41 1137.86 10.41 M 1137.86 10.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1145.93 11 L 1145.93 3.77 L 1146.96 3.77 L 1146.96 10.23 L 1150.21 10.23 L 1150.21 11 M 1145.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1154.93 11 L 1154.93 3.77 L 1158.97 3.77 L 1158.97 4.54 L 1155.96 4.54 L 1155.96 6.86 L 1158.48 6.86 L 1158.48 7.62 L 1155.96 7.62 L 1155.96 10.23 L 1159.18 10.23 L 1159.18 11 M 1154.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1163.93 11 L 1163.93 3.77 L 1167.97 3.77 L 1167.97 4.54 L 1164.96 4.54 L 1164.96 6.86 L 1167.48 6.86 L 1167.48 7.62 L 1164.96 7.62 L 1164.96 10.23 L 1168.18 10.23 L 1168.18 11 M 1163.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 10.8 Q 1176.05 11.18 1175.07 11.18 Q 1173.35 11.18 1172.43 10.2 Q 1171.51 9.22 1171.51 7.39 Q 1171.51 5.59 1172.44 4.59 Q 1173.37 3.59 1175.06 3.59 Q 1176.16 3.59 1177.35 3.92 L 1177.35 4.87 Q 1175.86 4.36 1175.06 4.36 Q 1173.89 4.36 1173.24 5.16 Q 1172.6 5.95 1172.6 7.4 Q 1172.6 8.83 1173.29 9.62 Q 1173.98 10.41 1175.23 10.41 Q 1175.75 10.41 1176.34 10.23 L 1176.34 7.88 L 1177.36 7.88 M 1177.36 10.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1180.87 11 L 1179.01 3.77 L 1180 3.77 L 1181.48 9.48 L 1182.84 3.77 L 1183.82 3.77 L 1185.11 9.4 L 1186.71 3.77 L 1187.54 3.77 L 1185.51 11 L 1184.49 11 L 1183.22 5.43 L 1181.89 11 M 1180.87 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 11 L 1189.18 3.77 L 1190.2 3.77 L 1192.44 9.69 L 1194.6 3.77 L 1195.49 3.77 L 1192.87 11 M 1191.91 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 11 L 1199.93 3.77 L 1200.96 3.77 L 1200.96 10.23 L 1204.21 10.23 L 1204.21 11 M 1199.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 11 L 1209.65 4.54 L 1207.09 4.54 L 1207.09 3.77 L 1213.24 3.77 L 1213.24 4.54 L 1210.68 4.54 L 1210.68 11 M 1209.65 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 11.18 Q 1218.34 11.18 1217.43 10.19 Q 1216.51 9.2 1216.51 7.39 Q 1216.51 5.58 1217.44 4.59 Q 1218.38 3.59 1220.08 3.59 Q 1221.05 3.59 1222.35 3.91 L 1222.35 4.87 Q 1220.87 4.36 1220.06 4.36 Q 1218.89 4.36 1218.24 5.16 Q 1217.6 5.95 1217.6 7.4 Q 1217.6 8.78 1218.29 9.58 Q 1218.97 10.38 1220.17 10.38 Q 1221.19 10.38 1222.36 9.75 L 1222.36 10.63 Q 1221.29 11.18 1220.03 11.18 M 1220.03 11.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1227.91 11 L 1225.18 3.77 L 1226.2 3.77 L 1228.44 9.69 L 1230.6 3.77 L 1231.49 3.77 L 1228.87 11 M 1227.91 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 8.24 L 1237.36 5.12 L 1236.13 8.24 M 1238.59 8.24 M 1239.68 11 L 1238.89 9 L 1235.83 9 L 1235.04 11 L 1234.08 11 L 1236.95 3.77 L 1237.96 3.77 L 1240.79 11 M 1239.68 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 11 L 1245.5 7.98 L 1243.08 3.77 L 1244.25 3.77 L 1246.13 7.04 L 1248.15 3.77 L 1249.1 3.77 L 1246.52 7.96 L 1246.52 11 M 1245.5 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 11 L 1252.93 3.77 L 1254.9 3.77 Q 1256.21 3.77 1256.78 4.22 Q 1257.35 4.66 1257.35 5.67 Q 1257.35 6.82 1256.57 7.47 Q 1255.79 8.13 1254.4 8.13 L 1253.95 8.13 L 1253.95 11 M 1252.93 11 M 1253.95 7.35 L 1254.36 7.35 Q 1255.28 7.35 1255.77 6.93 Q 1256.27 6.51 1256.27 5.75 Q 1256.27 5.1 1255.88 4.82 Q 1255.49 4.54 1254.58 4.54 L 1253.95 4.54 M 1253.95 7.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1267.35 12.45 Q 1265.64 11.89 1264.49 11.13 Q 1264.03 11.18 1263.78 11.18 Q 1262.33 11.18 1261.42 10.13 Q 1260.51 9.07 1260.51 7.39 Q 1260.51 5.66 1261.43 4.63 Q 1262.35 3.59 1263.89 3.59 Q 1265.43 3.59 1266.35 4.63 Q 1267.27 5.66 1267.27 7.4 Q 1267.27 9.89 1265.42 10.85 Q 1266.66 11.4 1268 11.63 M 1267.35 12.45 M 1263.86 10.41 Q 1264.97 10.41 1265.57 9.62 Q 1266.18 8.82 1266.18 7.37 Q 1266.18 5.96 1265.57 5.16 Q 1264.97 4.36 1263.89 4.36 Q 1262.81 4.36 1262.2 5.16 Q 1261.6 5.96 1261.6 7.38 Q 1261.6 8.79 1262.2 9.6 Q 1262.8 10.41 1263.86 10.41 M 1263.86 10.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1273.35 11.18 Q 1272.62 11.18 1271.49 10.86 L 1271.49 9.85 Q 1272.71 10.41 1273.5 10.41 Q 1274.1 10.41 1274.47 10.1 Q 1274.84 9.78 1274.84 9.26 Q 1274.84 8.84 1274.6 8.54 Q 1274.35 8.24 1273.71 7.88 L 1273.21 7.59 Q 1272.28 7.06 1271.91 6.59 Q 1271.53 6.13 1271.53 5.51 Q 1271.53 4.67 1272.13 4.13 Q 1272.74 3.59 1273.68 3.59 Q 1274.51 3.59 1275.44 3.87 L 1275.44 4.81 Q 1274.3 4.36 1273.73 4.36 Q 1273.2 4.36 1272.86 4.64 Q 1272.51 4.93 1272.51 5.36 Q 1272.51 5.72 1272.76 6 Q 1273.02 6.27 1273.69 6.66 L 1274.21 6.95 Q 1275.15 7.48 1275.52 7.96 Q 1275.89 8.43 1275.89 9.1 Q 1275.89 10.04 1275.19 10.61 Q 1274.5 11.18 1273.35 11.18 M 1273.35 11.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 11 L 1279.93 3.77 L 1282.33 3.77 Q 1283.41 3.77 1284.07 4.01 Q 1284.73 4.25 1285.22 4.82 Q 1285.98 5.73 1285.98 7.22 Q 1285.98 9.02 1285.03 10.01 Q 1284.08 11 1282.35 11 M 1279.93 11 M 1280.96 10.23 L 1282.27 10.23 Q 1283.68 10.23 1284.26 9.48 Q 1284.89 8.67 1284.89 7.31 Q 1284.89 6.04 1284.27 5.31 Q 1283.9 4.87 1283.38 4.7 Q 1282.85 4.54 1281.8 4.54 L 1280.96 4.54 M 1280.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 11 L 1288.18 3.77 L 1289.2 3.77 L 1291.44 9.69 L 1293.6 3.77 L 1294.49 3.77 L 1291.87 11 M 1290.91 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.65 11 L 1299.65 4.54 L 1297.09 4.54 L 1297.09 3.77 L 1303.24 3.77 L 1303.24 4.54 L 1300.68 4.54 L 1300.68 11 M 1299.65 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 11 L 1308.93 3.77 L 1309.95 3.77 L 1309.95 11 M 1308.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 11 L 1316.93 3.77 L 1320.97 3.77 L 1320.97 4.54 L 1317.96 4.54 L 1317.96 6.86 L 1320.48 6.86 L 1320.48 7.62 L 1317.96 7.62 L 1317.96 10.23 L 1321.18 10.23 L 1321.18 11 M 1316.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 11 L 1326.65 4.54 L 1324.09 4.54 L 1324.09 3.77 L 1330.24 3.77 L 1330.24 4.54 L 1327.68 4.54 L 1327.68 11 M 1326.65 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 11 L 1333.93 3.77 L 1334.96 3.77 L 1334.96 6.82 L 1338.4 6.82 L 1338.4 3.77 L 1339.42 3.77 L 1339.42 11 L 1338.4 11 L 1338.4 7.59 L 1334.96 7.59 L 1334.96 11 M 1333.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 11 L 1342.93 3.77 L 1343.89 3.77 L 1343.89 7.33 L 1346.82 3.77 L 1347.85 3.77 L 1345.02 7.22 L 1348.35 11 L 1347.05 11 L 1343.89 7.34 L 1343.89 11 M 1342.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 11 L 1352.93 3.77 L 1356.97 3.77 L 1356.97 4.54 L 1353.96 4.54 L 1353.96 6.86 L 1356.48 6.86 L 1356.48 7.62 L 1353.96 7.62 L 1353.96 10.23 L 1357.18 10.23 L 1357.18 11 M 1352.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1364.59 8.24 L 1363.36 5.12 L 1362.13 8.24 M 1364.59 8.24 M 1365.68 11 L 1364.89 9 L 1361.83 9 L 1361.04 11 L 1360.08 11 L 1362.95 3.77 L 1363.96 3.77 L 1366.79 11 M 1365.68 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1370.93 11 L 1370.93 3.77 L 1374.97 3.77 L 1374.97 4.54 L 1371.96 4.54 L 1371.96 6.86 L 1374.48 6.86 L 1374.48 7.62 L 1371.96 7.62 L 1371.96 10.23 L 1375.18 10.23 L 1375.18 11 M 1370.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1379.93 11 L 1379.93 3.77 L 1380.96 3.77 L 1380.96 10.23 L 1384.21 10.23 L 1384.21 11 M 1379.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.91 11 L 1387.18 3.77 L 1388.2 3.77 L 1390.44 9.69 L 1392.6 3.77 L 1393.49 3.77 L 1390.87 11 M 1389.91 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1402.36 10.8 Q 1401.05 11.18 1400.07 11.18 Q 1398.35 11.18 1397.43 10.2 Q 1396.51 9.22 1396.51 7.39 Q 1396.51 5.59 1397.44 4.59 Q 1398.37 3.59 1400.06 3.59 Q 1401.16 3.59 1402.35 3.92 L 1402.35 4.87 Q 1400.86 4.36 1400.06 4.36 Q 1398.89 4.36 1398.24 5.16 Q 1397.6 5.95 1397.6 7.4 Q 1397.6 8.83 1398.29 9.62 Q 1398.98 10.41 1400.23 10.41 Q 1400.75 10.41 1401.34 10.23 L 1401.34 7.88 L 1402.36 7.88 M 1402.36 10.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 8.47 L 1405.72 7.75 L 1410.06 7.75 L 1410.06 8.47 M 1405.72 8.47"/></g><rect x="0" y="13" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="13" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="13" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="13" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="13" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="13" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="13" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="13" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="13" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="13" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="13" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="13" width="18" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="13" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="13" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="13" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="13" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="13" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="13" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="702" y="13" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="711" y="13" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="13" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="13" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="13" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="13" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="13" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="774" y="13" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="13" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="801" y="13" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="13" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="13" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="13" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="13" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="13" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="13" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="13" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="13" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="13" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="13" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="13" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="13" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="13" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="13" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="13" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="13" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="13" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="13" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="13" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="13" width="18" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="13" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="13" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="13" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="13" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="13" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1080" y="13" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="13" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="13" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="13" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="13" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 24 L 0.93 16.77 L 2.35 16.77 L 4.36 22.36 L 6.42 16.77 L 7.69 16.77 L 7.69 24 L 6.73 24 L 6.73 18.12 L 4.74 23.52 L 3.75 23.52 L 1.81 18.11 L 1.81 24 M 0.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 21.24 L 13.36 18.12 L 12.13 21.24 M 14.59 21.24 M 15.68 24 L 14.89 22 L 11.83 22 L 11.04 24 L 10.08 24 L 12.95 16.77 L 13.96 16.77 L 16.79 24 M 15.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 19.72 21.47 L 19.72 20.75 L 24.06 20.75 L 24.06 21.47 M 19.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 28.72 21.47 L 28.72 20.75 L 33.06 20.75 L 33.06 21.47 M 28.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 21.47 L 37.72 20.75 L 42.06 20.75 L 42.06 21.47 M 37.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 21.47 L 46.72 20.75 L 51.06 20.75 L 51.06 21.47 M 46.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 21.47 L 55.72 20.75 L 60.06 20.75 L 60.06 21.47 M 55.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.72 21.47 L 64.72 20.75 L 69.06 20.75 L 69.06 21.47 M 64.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 76.35 24.18 Q 75.62 24.18 74.49 23.86 L 74.49 22.85 Q 75.71 23.41 76.5 23.41 Q 77.1 23.41 77.47 23.1 Q 77.84 22.78 77.84 22.26 Q 77.84 21.84 77.6 21.54 Q 77.35 21.24 76.71 20.88 L 76.21 20.59 Q 75.28 20.06 74.91 19.59 Q 74.53 19.13 74.53 18.51 Q 74.53 17.67 75.13 17.13 Q 75.74 16.59 76.68 16.59 Q 77.51 16.59 78.44 16.87 L 78.44 17.81 Q 77.3 17.36 76.73 17.36 Q 76.2 17.36 75.86 17.64 Q 75.51 17.93 75.51 18.36 Q 75.51 18.72 75.76 19 Q 76.02 19.27 76.69 19.66 L 77.21 19.95 Q 78.15 20.48 78.52 20.96 Q 78.89 21.43 78.89 22.1 Q 78.89 23.04 78.19 23.61 Q 77.5 24.18 76.35 24.18 M 76.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 84.91 24 L 82.18 16.77 L 83.2 16.77 L 85.44 22.69 L 87.6 16.77 L 88.49 16.77 L 85.87 24 M 84.91 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 94.35 24.18 Q 93.62 24.18 92.49 23.86 L 92.49 22.85 Q 93.71 23.41 94.5 23.41 Q 95.1 23.41 95.47 23.1 Q 95.84 22.78 95.84 22.26 Q 95.84 21.84 95.6 21.54 Q 95.35 21.24 94.71 20.88 L 94.21 20.59 Q 93.28 20.06 92.91 19.59 Q 92.53 19.13 92.53 18.51 Q 92.53 17.67 93.13 17.13 Q 93.74 16.59 94.68 16.59 Q 95.51 16.59 96.44 16.87 L 96.44 17.81 Q 95.3 17.36 94.73 17.36 Q 94.2 17.36 93.86 17.64 Q 93.51 17.93 93.51 18.36 Q 93.51 18.72 93.76 19 Q 94.02 19.27 94.69 19.66 L 95.21 19.95 Q 96.15 20.48 96.52 20.96 Q 96.89 21.43 96.89 22.1 Q 96.89 23.04 96.19 23.61 Q 95.5 24.18 94.35 24.18 M 94.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 104.59 21.24 L 103.36 18.12 L 102.13 21.24 M 104.59 21.24 M 105.68 24 L 104.89 22 L 101.83 22 L 101.04 24 L 100.08 24 L 102.95 16.77 L 103.96 16.77 L 106.79 24 M 105.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 111.65 24 L 111.65 17.54 L 109.09 17.54 L 109.09 16.77 L 115.24 16.77 L 115.24 17.54 L 112.68 17.54 L 112.68 24 M 111.65 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 117.93 24 L 117.93 16.77 L 119.35 16.77 L 121.36 22.36 L 123.42 16.77 L 124.69 16.77 L 124.69 24 L 123.73 24 L 123.73 18.12 L 121.74 23.52 L 120.75 23.52 L 118.81 18.11 L 118.81 24 M 117.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 129.93 24 L 129.93 16.77 L 130.95 16.77 L 130.95 24 M 129.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 139.35 24.18 Q 138.62 24.18 137.49 23.86 L 137.49 22.85 Q 138.71 23.41 139.5 23.41 Q 140.1 23.41 140.47 23.1 Q 140.84 22.78 140.84 22.26 Q 140.84 21.84 140.6 21.54 Q 140.35 21.24 139.71 20.88 L 139.21 20.59 Q 138.28 20.06 137.91 19.59 Q 137.53 19.13 137.53 18.51 Q 137.53 17.67 138.13 17.13 Q 138.74 16.59 139.68 16.59 Q 140.51 16.59 141.44 16.87 L 141.44 17.81 Q 140.3 17.36 139.73 17.36 Q 139.2 17.36 138.86 17.64 Q 138.51 17.93 138.51 18.36 Q 138.51 18.72 138.76 19 Q 139.02 19.27 139.69 19.66 L 140.21 19.95 Q 141.15 20.48 141.52 20.96 Q 141.89 21.43 141.89 22.1 Q 141.89 23.04 141.19 23.61 Q 140.5 24.18 139.35 24.18 M 139.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 147.65 24 L 147.65 17.54 L 145.09 17.54 L 145.09 16.77 L 151.24 16.77 L 151.24 17.54 L 148.68 17.54 L 148.68 24 M 147.65 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 157.35 24.18 Q 156.62 24.18 155.49 23.86 L 155.49 22.85 Q 156.71 23.41 157.5 23.41 Q 158.1 23.41 158.47 23.1 Q 158.84 22.78 158.84 22.26 Q 158.84 21.84 158.6 21.54 Q 158.35 21.24 157.71 20.88 L 157.21 20.59 Q 156.28 20.06 155.91 19.59 Q 155.53 19.13 155.53 18.51 Q 155.53 17.67 156.13 17.13 Q 156.74 16.59 157.68 16.59 Q 158.51 16.59 159.44 16.87 L 159.44 17.81 Q 158.3 17.36 157.73 17.36 Q 157.2 17.36 156.86 17.64 Q 156.51 17.93 156.51 18.36 Q 156.51 18.72 156.76 19 Q 157.02 19.27 157.69 19.66 L 158.21 19.95 Q 159.15 20.48 159.52 20.96 Q 159.89 21.43 159.89 22.1 Q 159.89 23.04 159.19 23.61 Q 158.5 24.18 157.35 24.18 M 157.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 164.93 24 L 164.93 16.77 L 168.97 16.77 L 168.97 17.54 L 165.96 17.54 L 165.96 19.96 L 168.49 19.96 L 168.49 20.72 L 165.96 20.72 L 165.96 24 M 164.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 171.93 24 L 171.93 16.77 L 173.35 16.77 L 175.36 22.36 L 177.42 16.77 L 178.69 16.77 L 178.69 24 L 177.73 24 L 177.73 18.12 L 175.74 23.52 L 174.75 23.52 L 172.81 18.11 L 172.81 24 M 171.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 24 L 181.93 16.77 L 183.9 16.77 Q 185.21 16.77 185.78 17.22 Q 186.35 17.66 186.35 18.67 Q 186.35 19.82 185.57 20.47 Q 184.79 21.13 183.4 21.13 L 182.95 21.13 L 182.95 24 M 181.93 24 M 182.95 20.35 L 183.36 20.35 Q 184.28 20.35 184.77 19.93 Q 185.27 19.51 185.27 18.75 Q 185.27 18.1 184.88 17.82 Q 184.49 17.54 183.58 17.54 L 182.95 17.54 M 182.95 20.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.93 24 L 190.93 16.77 L 193.12 16.77 Q 194.16 16.77 194.71 17.23 Q 195.27 17.69 195.27 18.57 Q 195.27 20.01 193.81 20.62 L 196.22 24 L 194.96 24 L 192.91 20.94 L 191.95 20.94 L 191.95 24 M 190.93 24 M 191.95 20.18 L 192.28 20.18 Q 194.21 20.18 194.21 18.66 Q 194.21 17.54 192.59 17.54 L 191.95 17.54 M 191.95 20.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 199.93 24 L 199.93 16.77 L 200.89 16.77 L 200.89 20.33 L 203.82 16.77 L 204.85 16.77 L 202.02 20.22 L 205.35 24 L 204.05 24 L 200.89 20.34 L 200.89 24 M 199.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.93 24 L 208.93 16.77 L 210.9 16.77 Q 212.21 16.77 212.78 17.22 Q 213.35 17.66 213.35 18.67 Q 213.35 19.82 212.57 20.47 Q 211.79 21.13 210.4 21.13 L 209.95 21.13 L 209.95 24 M 208.93 24 M 209.95 20.35 L 210.36 20.35 Q 211.28 20.35 211.77 19.93 Q 212.27 19.51 212.27 18.75 Q 212.27 18.1 211.88 17.82 Q 211.49 17.54 210.58 17.54 L 209.95 17.54 M 209.95 20.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 221.59 21.24 L 220.36 18.12 L 219.13 21.24 M 221.59 21.24 M 222.68 24 L 221.89 22 L 218.83 22 L 218.04 24 L 217.08 24 L 219.95 16.77 L 220.96 16.77 L 223.79 24 M 222.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 228.91 24 L 226.18 16.77 L 227.2 16.77 L 229.44 22.69 L 231.6 16.77 L 232.49 16.77 L 229.87 24 M 228.91 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 237.65 24 L 237.65 17.54 L 235.09 17.54 L 235.09 16.77 L 241.24 16.77 L 241.24 17.54 L 238.68 17.54 L 238.68 24 M 237.65 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 247.35 24.18 Q 246.62 24.18 245.49 23.86 L 245.49 22.85 Q 246.71 23.41 247.5 23.41 Q 248.1 23.41 248.47 23.1 Q 248.84 22.78 248.84 22.26 Q 248.84 21.84 248.6 21.54 Q 248.35 21.24 247.71 20.88 L 247.21 20.59 Q 246.28 20.06 245.91 19.59 Q 245.53 19.13 245.53 18.51 Q 245.53 17.67 246.13 17.13 Q 246.74 16.59 247.68 16.59 Q 248.51 16.59 249.44 16.87 L 249.44 17.81 Q 248.3 17.36 247.73 17.36 Q 247.2 17.36 246.86 17.64 Q 246.51 17.93 246.51 18.36 Q 246.51 18.72 246.76 19 Q 247.02 19.27 247.69 19.66 L 248.21 19.95 Q 249.15 20.48 249.52 20.96 Q 249.89 21.43 249.89 22.1 Q 249.89 23.04 249.19 23.61 Q 248.5 24.18 247.35 24.18 M 247.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 254.93 24 L 254.93 16.77 L 255.96 16.77 L 255.96 23.23 L 259.21 23.23 L 259.21 24 M 254.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.72 21.47 L 262.72 20.75 L 267.06 20.75 L 267.06 21.47 M 262.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 271.93 24 L 271.93 16.77 L 272.89 16.77 L 272.89 20.33 L 275.82 16.77 L 276.85 16.77 L 274.02 20.22 L 277.35 24 L 276.05 24 L 272.89 20.34 L 272.89 24 M 271.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 280.93 24 L 280.93 16.77 L 282.9 16.77 Q 284.21 16.77 284.78 17.22 Q 285.35 17.66 285.35 18.67 Q 285.35 19.82 284.57 20.47 Q 283.79 21.13 282.4 21.13 L 281.95 21.13 L 281.95 24 M 280.93 24 M 281.95 20.35 L 282.36 20.35 Q 283.28 20.35 283.77 19.93 Q 284.27 19.51 284.27 18.75 Q 284.27 18.1 283.88 17.82 Q 283.49 17.54 282.58 17.54 L 281.95 17.54 M 281.95 20.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 291.93 24 L 291.93 16.77 L 292.95 16.77 L 292.95 24 M 291.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 298.93 24 L 298.93 16.77 L 300.9 16.77 Q 302.21 16.77 302.78 17.22 Q 303.35 17.66 303.35 18.67 Q 303.35 19.82 302.57 20.47 Q 301.79 21.13 300.4 21.13 L 299.95 21.13 L 299.95 24 M 298.93 24 M 299.95 20.35 L 300.36 20.35 Q 301.28 20.35 301.77 19.93 Q 302.27 19.51 302.27 18.75 Q 302.27 18.1 301.88 17.82 Q 301.49 17.54 300.58 17.54 L 299.95 17.54 M 299.95 20.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 307.93 24 L 307.93 16.77 L 308.94 16.77 L 312.58 22.35 L 312.58 16.77 L 313.46 16.77 L 313.46 24 L 312.45 24 L 308.81 18.42 L 308.81 24 M 307.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 318.91 24 L 316.18 16.77 L 317.2 16.77 L 319.44 22.69 L 321.6 16.77 L 322.49 16.77 L 319.87 24 M 318.91 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 331.36 23.8 Q 330.05 24.18 329.07 24.18 Q 327.35 24.18 326.43 23.2 Q 325.51 22.22 325.51 20.39 Q 325.51 18.59 326.44 17.59 Q 327.37 16.59 329.06 16.59 Q 330.16 16.59 331.35 16.92 L 331.35 17.87 Q 329.86 17.36 329.06 17.36 Q 327.89 17.36 327.24 18.16 Q 326.6 18.95 326.6 20.4 Q 326.6 21.83 327.29 22.62 Q 327.98 23.41 329.23 23.41 Q 329.75 23.41 330.34 23.23 L 330.34 20.88 L 331.36 20.88 M 331.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 335.93 24 L 335.93 16.77 L 339.97 16.77 L 339.97 17.54 L 336.96 17.54 L 336.96 19.86 L 339.48 19.86 L 339.48 20.62 L 336.96 20.62 L 336.96 23.23 L 340.18 23.23 L 340.18 24 M 335.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 21.47 L 343.72 20.75 L 348.06 20.75 L 348.06 21.47 M 343.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 21.47 L 352.72 20.75 L 357.06 20.75 L 357.06 21.47 M 352.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 365.59 21.24 L 364.36 18.12 L 363.13 21.24 M 365.59 21.24 M 366.68 24 L 365.89 22 L 362.83 22 L 362.04 24 L 361.08 24 L 363.95 16.77 L 364.96 16.77 L 367.79 24 M 366.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 371.93 24 L 371.93 16.77 L 372.96 16.77 L 372.96 23.23 L 376.21 23.23 L 376.21 24 M 371.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 380.93 24 L 380.93 16.77 L 384.97 16.77 L 384.97 17.54 L 381.96 17.54 L 381.96 19.96 L 384.49 19.96 L 384.49 20.72 L 381.96 20.72 L 381.96 24 M 380.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 394.36 23.8 Q 393.05 24.18 392.07 24.18 Q 390.35 24.18 389.43 23.2 Q 388.51 22.22 388.51 20.39 Q 388.51 18.59 389.44 17.59 Q 390.37 16.59 392.06 16.59 Q 393.16 16.59 394.35 16.92 L 394.35 17.87 Q 392.86 17.36 392.06 17.36 Q 390.89 17.36 390.24 18.16 Q 389.6 18.95 389.6 20.4 Q 389.6 21.83 390.29 22.62 Q 390.98 23.41 392.23 23.41 Q 392.75 23.41 393.34 23.23 L 393.34 20.88 L 394.36 20.88 M 394.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 398.93 24 L 398.93 16.77 L 399.96 16.77 L 399.96 23.23 L 403.21 23.23 L 403.21 24 M 398.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.93 24 L 406.93 16.77 L 407.89 16.77 L 407.89 20.33 L 410.82 16.77 L 411.85 16.77 L 409.02 20.22 L 412.35 24 L 411.05 24 L 407.89 20.34 L 407.89 24 M 406.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 418.35 24.18 Q 417.62 24.18 416.49 23.86 L 416.49 22.85 Q 417.71 23.41 418.5 23.41 Q 419.1 23.41 419.47 23.1 Q 419.84 22.78 419.84 22.26 Q 419.84 21.84 419.6 21.54 Q 419.35 21.24 418.71 20.88 L 418.21 20.59 Q 417.28 20.06 416.91 19.59 Q 416.53 19.13 416.53 18.51 Q 416.53 17.67 417.13 17.13 Q 417.74 16.59 418.68 16.59 Q 419.51 16.59 420.44 16.87 L 420.44 17.81 Q 419.3 17.36 418.73 17.36 Q 418.2 17.36 417.86 17.64 Q 417.51 17.93 417.51 18.36 Q 417.51 18.72 417.76 19 Q 418.02 19.27 418.69 19.66 L 419.21 19.95 Q 420.15 20.48 420.52 20.96 Q 420.89 21.43 420.89 22.1 Q 420.89 23.04 420.19 23.61 Q 419.5 24.18 418.35 24.18 M 418.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 21.47 L 424.72 20.75 L 429.06 20.75 L 429.06 21.47 M 424.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 437.59 21.24 L 436.36 18.12 L 435.13 21.24 M 437.59 21.24 M 438.68 24 L 437.89 22 L 434.83 22 L 434.04 24 L 433.08 24 L 435.95 16.77 L 436.96 16.77 L 439.79 24 M 438.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 442.72 21.47 L 442.72 20.75 L 447.06 20.75 L 447.06 21.47 M 442.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 451.72 21.47 L 451.72 20.75 L 456.06 20.75 L 456.06 21.47 M 451.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.93 24 L 460.93 16.77 L 461.94 16.77 L 465.58 22.35 L 465.58 16.77 L 466.46 16.77 L 466.46 24 L 465.45 24 L 461.81 18.42 L 461.81 24 M 460.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 475.36 23.8 Q 474.05 24.18 473.07 24.18 Q 471.35 24.18 470.43 23.2 Q 469.51 22.22 469.51 20.39 Q 469.51 18.59 470.44 17.59 Q 471.37 16.59 473.06 16.59 Q 474.16 16.59 475.35 16.92 L 475.35 17.87 Q 473.86 17.36 473.06 17.36 Q 471.89 17.36 471.24 18.16 Q 470.6 18.95 470.6 20.4 Q 470.6 21.83 471.29 22.62 Q 471.98 23.41 473.23 23.41 Q 473.75 23.41 474.34 23.23 L 474.34 20.88 L 475.36 20.88 M 475.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 484.36 23.8 Q 483.05 24.18 482.07 24.18 Q 480.35 24.18 479.43 23.2 Q 478.51 22.22 478.51 20.39 Q 478.51 18.59 479.44 17.59 Q 480.37 16.59 482.06 16.59 Q 483.16 16.59 484.35 16.92 L 484.35 17.87 Q 482.86 17.36 482.06 17.36 Q 480.89 17.36 480.24 18.16 Q 479.6 18.95 479.6 20.4 Q 479.6 21.83 480.29 22.62 Q 480.98 23.41 482.23 23.41 Q 482.75 23.41 483.34 23.23 L 483.34 20.88 L 484.36 20.88 M 484.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 487.93 24 L 487.93 16.77 L 488.89 16.77 L 488.89 20.33 L 491.82 16.77 L 492.85 16.77 L 490.02 20.22 L 493.35 24 L 492.05 24 L 488.89 20.34 L 488.89 24 M 487.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 498.91 24 L 496.18 16.77 L 497.2 16.77 L 499.44 22.69 L 501.6 16.77 L 502.49 16.77 L 499.87 24 M 498.91 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 507.65 24 L 507.65 17.54 L 505.09 17.54 L 505.09 16.77 L 511.24 16.77 L 511.24 17.54 L 508.68 17.54 L 508.68 24 M 507.65 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 518.03 24.18 Q 516.34 24.18 515.43 23.19 Q 514.51 22.2 514.51 20.39 Q 514.51 18.58 515.44 17.59 Q 516.38 16.59 518.08 16.59 Q 519.05 16.59 520.35 16.91 L 520.35 17.87 Q 518.87 17.36 518.06 17.36 Q 516.89 17.36 516.24 18.16 Q 515.6 18.95 515.6 20.4 Q 515.6 21.78 516.29 22.58 Q 516.97 23.38 518.17 23.38 Q 519.19 23.38 520.36 22.75 L 520.36 23.63 Q 519.29 24.18 518.03 24.18 M 518.03 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 522.93 24 L 522.93 16.77 L 524.35 16.77 L 526.36 22.36 L 528.42 16.77 L 529.69 16.77 L 529.69 24 L 528.73 24 L 528.73 18.12 L 526.74 23.52 L 525.75 23.52 L 523.81 18.11 L 523.81 24 M 522.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 21.24 L 535.36 18.12 L 534.13 21.24 M 536.59 21.24 M 537.68 24 L 536.89 22 L 533.83 22 L 533.04 24 L 532.08 24 L 534.95 16.77 L 535.96 16.77 L 538.79 24 M 537.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 544.35 24.18 Q 543.62 24.18 542.49 23.86 L 542.49 22.85 Q 543.71 23.41 544.5 23.41 Q 545.1 23.41 545.47 23.1 Q 545.84 22.78 545.84 22.26 Q 545.84 21.84 545.6 21.54 Q 545.35 21.24 544.71 20.88 L 544.21 20.59 Q 543.28 20.06 542.91 19.59 Q 542.53 19.13 542.53 18.51 Q 542.53 17.67 543.13 17.13 Q 543.74 16.59 544.68 16.59 Q 545.51 16.59 546.44 16.87 L 546.44 17.81 Q 545.3 17.36 544.73 17.36 Q 544.2 17.36 543.86 17.64 Q 543.51 17.93 543.51 18.36 Q 543.51 18.72 543.76 19 Q 544.02 19.27 544.69 19.66 L 545.21 19.95 Q 546.15 20.48 546.52 20.96 Q 546.89 21.43 546.89 22.1 Q 546.89 23.04 546.19 23.61 Q 545.5 24.18 544.35 24.18 M 544.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 24 L 552.5 20.98 L 550.08 16.77 L 551.25 16.77 L 553.13 20.04 L 555.15 16.77 L 556.1 16.77 L 553.52 20.96 L 553.52 24 M 552.5 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 24 L 559.93 16.77 L 560.89 16.77 L 560.89 20.33 L 563.82 16.77 L 564.85 16.77 L 562.02 20.22 L 565.35 24 L 564.05 24 L 560.89 20.34 L 560.89 24 M 559.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 24 L 568.18 16.77 L 569.2 16.77 L 571.44 22.69 L 573.6 16.77 L 574.49 16.77 L 571.87 24 M 570.91 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 24 L 577.93 16.77 L 578.89 16.77 L 578.89 20.33 L 581.82 16.77 L 582.85 16.77 L 580.02 20.22 L 583.35 24 L 582.05 24 L 578.89 20.34 L 578.89 24 M 577.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 24 L 587.93 16.77 L 588.96 16.77 L 588.96 23.23 L 592.21 23.23 L 592.21 24 M 587.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 24 L 597.93 16.77 L 598.95 16.77 L 598.95 24 M 597.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 24 L 606.65 17.54 L 604.09 17.54 L 604.09 16.77 L 610.24 16.77 L 610.24 17.54 L 607.68 17.54 L 607.68 24 M 606.65 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 24 L 613.93 16.77 L 615.9 16.77 Q 617.21 16.77 617.78 17.22 Q 618.35 17.66 618.35 18.67 Q 618.35 19.82 617.57 20.47 Q 616.79 21.13 615.4 21.13 L 614.95 21.13 L 614.95 24 M 613.93 24 M 614.95 20.35 L 615.36 20.35 Q 616.28 20.35 616.77 19.93 Q 617.27 19.51 617.27 18.75 Q 617.27 18.1 616.88 17.82 Q 616.49 17.54 615.58 17.54 L 614.95 17.54 M 614.95 20.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 622.93 24 L 622.93 16.77 L 625.33 16.77 Q 626.41 16.77 627.07 17.01 Q 627.73 17.25 628.22 17.82 Q 628.98 18.73 628.98 20.22 Q 628.98 22.02 628.03 23.01 Q 627.08 24 625.35 24 M 622.93 24 M 623.96 23.23 L 625.27 23.23 Q 626.68 23.23 627.26 22.48 Q 627.89 21.67 627.89 20.31 Q 627.89 19.04 627.27 18.31 Q 626.9 17.87 626.38 17.7 Q 625.85 17.54 624.8 17.54 L 623.96 17.54 M 623.96 23.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 23.8 Q 636.05 24.18 635.07 24.18 Q 633.35 24.18 632.43 23.2 Q 631.51 22.22 631.51 20.39 Q 631.51 18.59 632.44 17.59 Q 633.37 16.59 635.06 16.59 Q 636.16 16.59 637.35 16.92 L 637.35 17.87 Q 635.86 17.36 635.06 17.36 Q 633.89 17.36 633.24 18.16 Q 632.6 18.95 632.6 20.4 Q 632.6 21.83 633.29 22.62 Q 633.98 23.41 635.23 23.41 Q 635.75 23.41 636.34 23.23 L 636.34 20.88 L 637.36 20.88 M 637.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 640.93 24 L 640.93 16.77 L 642.9 16.77 Q 644.21 16.77 644.78 17.22 Q 645.35 17.66 645.35 18.67 Q 645.35 19.82 644.57 20.47 Q 643.79 21.13 642.4 21.13 L 641.95 21.13 L 641.95 24 M 640.93 24 M 641.95 20.35 L 642.36 20.35 Q 643.28 20.35 643.77 19.93 Q 644.27 19.51 644.27 18.75 Q 644.27 18.1 643.88 17.82 Q 643.49 17.54 642.58 17.54 L 641.95 17.54 M 641.95 20.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 651.93 24 L 651.93 16.77 L 652.95 16.77 L 652.95 24 M 651.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 24 L 659.93 16.77 L 663.97 16.77 L 663.97 17.54 L 660.96 17.54 L 660.96 19.86 L 663.48 19.86 L 663.48 20.62 L 660.96 20.62 L 660.96 23.23 L 664.18 23.23 L 664.18 24 M 659.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 668.93 24 L 668.93 16.77 L 672.97 16.77 L 672.97 17.54 L 669.96 17.54 L 669.96 19.96 L 672.49 19.96 L 672.49 20.72 L 669.96 20.72 L 669.96 24 M 668.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 676.93 24 L 676.93 16.77 L 679.33 16.77 Q 680.41 16.77 681.07 17.01 Q 681.73 17.25 682.22 17.82 Q 682.98 18.73 682.98 20.22 Q 682.98 22.02 682.03 23.01 Q 681.08 24 679.35 24 M 676.93 24 M 677.96 23.23 L 679.27 23.23 Q 680.68 23.23 681.26 22.48 Q 681.89 21.67 681.89 20.31 Q 681.89 19.04 681.27 18.31 Q 680.9 17.87 680.38 17.7 Q 679.85 17.54 678.8 17.54 L 677.96 17.54 M 677.96 23.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 24.18 Q 687.34 24.18 686.43 23.19 Q 685.51 22.2 685.51 20.39 Q 685.51 18.58 686.44 17.59 Q 687.38 16.59 689.08 16.59 Q 690.05 16.59 691.35 16.91 L 691.35 17.87 Q 689.87 17.36 689.06 17.36 Q 687.89 17.36 687.24 18.16 Q 686.6 18.95 686.6 20.4 Q 686.6 21.78 687.29 22.58 Q 687.97 23.38 689.17 23.38 Q 690.19 23.38 691.36 22.75 L 691.36 23.63 Q 690.29 24.18 689.03 24.18 M 689.03 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 24 L 694.93 16.77 L 696.9 16.77 Q 698.21 16.77 698.78 17.22 Q 699.35 17.66 699.35 18.67 Q 699.35 19.82 698.57 20.47 Q 697.79 21.13 696.4 21.13 L 695.95 21.13 L 695.95 24 M 694.93 24 M 695.95 20.35 L 696.36 20.35 Q 697.28 20.35 697.77 19.93 Q 698.27 19.51 698.27 18.75 Q 698.27 18.1 697.88 17.82 Q 697.49 17.54 696.58 17.54 L 695.95 17.54 M 695.95 20.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 24 L 703.93 16.77 L 706.33 16.77 Q 707.41 16.77 708.07 17.01 Q 708.73 17.25 709.22 17.82 Q 709.98 18.73 709.98 20.22 Q 709.98 22.02 709.03 23.01 Q 708.08 24 706.35 24 M 703.93 24 M 704.96 23.23 L 706.27 23.23 Q 707.68 23.23 708.26 22.48 Q 708.89 21.67 708.89 20.31 Q 708.89 19.04 708.27 18.31 Q 707.9 17.87 707.38 17.7 Q 706.85 17.54 705.8 17.54 L 704.96 17.54 M 704.96 23.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 24 L 712.93 16.77 L 713.94 16.77 L 717.58 22.35 L 717.58 16.77 L 718.46 16.77 L 718.46 24 L 717.45 24 L 713.81 18.42 L 713.81 24 M 712.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 24 L 721.18 16.77 L 722.2 16.77 L 724.44 22.69 L 726.6 16.77 L 727.49 16.77 L 724.87 24 M 723.91 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 24 L 732.5 20.98 L 730.08 16.77 L 731.25 16.77 L 733.13 20.04 L 735.15 16.77 L 736.1 16.77 L 733.52 20.96 L 733.52 24 M 732.5 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.93 24 L 741.93 16.77 L 742.95 16.77 L 742.95 24 M 741.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 24 L 749.93 16.77 L 750.96 16.77 L 750.96 23.23 L 754.21 23.23 L 754.21 24 M 749.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 24 L 757.93 16.77 L 760.33 16.77 Q 761.41 16.77 762.07 17.01 Q 762.73 17.25 763.22 17.82 Q 763.98 18.73 763.98 20.22 Q 763.98 22.02 763.03 23.01 Q 762.08 24 760.35 24 M 757.93 24 M 758.96 23.23 L 760.27 23.23 Q 761.68 23.23 762.26 22.48 Q 762.89 21.67 762.89 20.31 Q 762.89 19.04 762.27 18.31 Q 761.9 17.87 761.38 17.7 Q 760.85 17.54 759.8 17.54 L 758.96 17.54 M 758.96 23.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 772.35 25.45 Q 770.64 24.89 769.49 24.13 Q 769.03 24.18 768.78 24.18 Q 767.33 24.18 766.42 23.13 Q 765.51 22.07 765.51 20.39 Q 765.51 18.66 766.43 17.63 Q 767.35 16.59 768.89 16.59 Q 770.43 16.59 771.35 17.63 Q 772.27 18.66 772.27 20.4 Q 772.27 22.89 770.42 23.85 Q 771.66 24.4 773 24.63 M 772.35 25.45 M 768.86 23.41 Q 769.97 23.41 770.57 22.62 Q 771.18 21.82 771.18 20.37 Q 771.18 18.96 770.57 18.16 Q 769.97 17.36 768.89 17.36 Q 767.81 17.36 767.2 18.16 Q 766.6 18.96 766.6 20.38 Q 766.6 21.79 767.2 22.6 Q 767.8 23.41 768.86 23.41 M 768.86 23.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 21.24 L 778.36 18.12 L 777.13 21.24 M 779.59 21.24 M 780.68 24 L 779.89 22 L 776.83 22 L 776.04 24 L 775.08 24 L 777.95 16.77 L 778.96 16.77 L 781.79 24 M 780.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 24 L 785.93 16.77 L 789.97 16.77 L 789.97 17.54 L 786.96 17.54 L 786.96 19.86 L 789.48 19.86 L 789.48 20.62 L 786.96 20.62 L 786.96 23.23 L 790.18 23.23 L 790.18 24 M 785.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 24 L 794.93 16.77 L 798.97 16.77 L 798.97 17.54 L 795.96 17.54 L 795.96 19.86 L 798.48 19.86 L 798.48 20.62 L 795.96 20.62 L 795.96 23.23 L 799.18 23.23 L 799.18 24 M 794.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 806.59 21.24 L 805.36 18.12 L 804.13 21.24 M 806.59 21.24 M 807.68 24 L 806.89 22 L 803.83 22 L 803.04 24 L 802.08 24 L 804.95 16.77 L 805.96 16.77 L 808.79 24 M 807.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 23.8 Q 816.05 24.18 815.07 24.18 Q 813.35 24.18 812.43 23.2 Q 811.51 22.22 811.51 20.39 Q 811.51 18.59 812.44 17.59 Q 813.37 16.59 815.06 16.59 Q 816.16 16.59 817.35 16.92 L 817.35 17.87 Q 815.86 17.36 815.06 17.36 Q 813.89 17.36 813.24 18.16 Q 812.6 18.95 812.6 20.4 Q 812.6 21.83 813.29 22.62 Q 813.98 23.41 815.23 23.41 Q 815.75 23.41 816.34 23.23 L 816.34 20.88 L 817.36 20.88 M 817.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 820.93 24 L 820.93 16.77 L 821.96 16.77 L 821.96 19.82 L 825.4 19.82 L 825.4 16.77 L 826.42 16.77 L 826.42 24 L 825.4 24 L 825.4 20.59 L 821.96 20.59 L 821.96 24 M 820.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 24 L 829.93 16.77 L 832.33 16.77 Q 833.41 16.77 834.07 17.01 Q 834.73 17.25 835.22 17.82 Q 835.98 18.73 835.98 20.22 Q 835.98 22.02 835.03 23.01 Q 834.08 24 832.35 24 M 829.93 24 M 830.96 23.23 L 832.27 23.23 Q 833.68 23.23 834.26 22.48 Q 834.89 21.67 834.89 20.31 Q 834.89 19.04 834.27 18.31 Q 833.9 17.87 833.38 17.7 Q 832.85 17.54 831.8 17.54 L 830.96 17.54 M 830.96 23.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 24 L 839.93 16.77 L 840.96 16.77 L 840.96 23.23 L 844.21 23.23 L 844.21 24 M 839.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 24 L 847.93 16.77 L 849.9 16.77 Q 851.21 16.77 851.78 17.22 Q 852.35 17.66 852.35 18.67 Q 852.35 19.82 851.57 20.47 Q 850.79 21.13 849.4 21.13 L 848.95 21.13 L 848.95 24 M 847.93 24 M 848.95 20.35 L 849.36 20.35 Q 850.28 20.35 850.77 19.93 Q 851.27 19.51 851.27 18.75 Q 851.27 18.1 850.88 17.82 Q 850.49 17.54 849.58 17.54 L 848.95 17.54 M 848.95 20.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 24 L 858.5 20.98 L 856.08 16.77 L 857.25 16.77 L 859.13 20.04 L 861.15 16.77 L 862.1 16.77 L 859.52 20.96 L 859.52 24 M 858.5 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 24.18 Q 867.62 24.18 866.49 23.86 L 866.49 22.85 Q 867.71 23.41 868.5 23.41 Q 869.1 23.41 869.47 23.1 Q 869.84 22.78 869.84 22.26 Q 869.84 21.84 869.6 21.54 Q 869.35 21.24 868.71 20.88 L 868.21 20.59 Q 867.28 20.06 866.91 19.59 Q 866.53 19.13 866.53 18.51 Q 866.53 17.67 867.13 17.13 Q 867.74 16.59 868.68 16.59 Q 869.51 16.59 870.44 16.87 L 870.44 17.81 Q 869.3 17.36 868.73 17.36 Q 868.2 17.36 867.86 17.64 Q 867.51 17.93 867.51 18.36 Q 867.51 18.72 867.76 19 Q 868.02 19.27 868.69 19.66 L 869.21 19.95 Q 870.15 20.48 870.52 20.96 Q 870.89 21.43 870.89 22.1 Q 870.89 23.04 870.19 23.61 Q 869.5 24.18 868.35 24.18 M 868.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 24.18 Q 876.34 24.18 875.43 23.19 Q 874.51 22.2 874.51 20.39 Q 874.51 18.58 875.44 17.59 Q 876.38 16.59 878.08 16.59 Q 879.05 16.59 880.35 16.91 L 880.35 17.87 Q 878.87 17.36 878.06 17.36 Q 876.89 17.36 876.24 18.16 Q 875.6 18.95 875.6 20.4 Q 875.6 21.78 876.29 22.58 Q 876.97 23.38 878.17 23.38 Q 879.19 23.38 880.36 22.75 L 880.36 23.63 Q 879.29 24.18 878.03 24.18 M 878.03 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 24 L 883.93 16.77 L 886.12 16.77 Q 887.16 16.77 887.71 17.23 Q 888.27 17.69 888.27 18.57 Q 888.27 20.01 886.81 20.62 L 889.22 24 L 887.96 24 L 885.91 20.94 L 884.95 20.94 L 884.95 24 M 883.93 24 M 884.95 20.18 L 885.28 20.18 Q 887.21 20.18 887.21 18.66 Q 887.21 17.54 885.59 17.54 L 884.95 17.54 M 884.95 20.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 21.24 L 895.36 18.12 L 894.13 21.24 M 896.59 21.24 M 897.68 24 L 896.89 22 L 893.83 22 L 893.04 24 L 892.08 24 L 894.95 16.77 L 895.96 16.77 L 898.79 24 M 897.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 23.8 Q 906.05 24.18 905.07 24.18 Q 903.35 24.18 902.43 23.2 Q 901.51 22.22 901.51 20.39 Q 901.51 18.59 902.44 17.59 Q 903.37 16.59 905.06 16.59 Q 906.16 16.59 907.35 16.92 L 907.35 17.87 Q 905.86 17.36 905.06 17.36 Q 903.89 17.36 903.24 18.16 Q 902.6 18.95 902.6 20.4 Q 902.6 21.83 903.29 22.62 Q 903.98 23.41 905.23 23.41 Q 905.75 23.41 906.34 23.23 L 906.34 20.88 L 907.36 20.88 M 907.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 24.18 Q 912.62 24.18 911.49 23.86 L 911.49 22.85 Q 912.71 23.41 913.5 23.41 Q 914.1 23.41 914.47 23.1 Q 914.84 22.78 914.84 22.26 Q 914.84 21.84 914.6 21.54 Q 914.35 21.24 913.71 20.88 L 913.21 20.59 Q 912.28 20.06 911.91 19.59 Q 911.53 19.13 911.53 18.51 Q 911.53 17.67 912.13 17.13 Q 912.74 16.59 913.68 16.59 Q 914.51 16.59 915.44 16.87 L 915.44 17.81 Q 914.3 17.36 913.73 17.36 Q 913.2 17.36 912.86 17.64 Q 912.51 17.93 912.51 18.36 Q 912.51 18.72 912.76 19 Q 913.02 19.27 913.69 19.66 L 914.21 19.95 Q 915.15 20.48 915.52 20.96 Q 915.89 21.43 915.89 22.1 Q 915.89 23.04 915.19 23.61 Q 914.5 24.18 913.35 24.18 M 913.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 24.18 Q 921.34 24.18 920.43 23.19 Q 919.51 22.2 919.51 20.39 Q 919.51 18.58 920.44 17.59 Q 921.38 16.59 923.08 16.59 Q 924.05 16.59 925.35 16.91 L 925.35 17.87 Q 923.87 17.36 923.06 17.36 Q 921.89 17.36 921.24 18.16 Q 920.6 18.95 920.6 20.4 Q 920.6 21.78 921.29 22.58 Q 921.97 23.38 923.17 23.38 Q 924.19 23.38 925.36 22.75 L 925.36 23.63 Q 924.29 24.18 923.03 24.18 M 923.03 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 24.18 Q 930.62 24.18 929.49 23.86 L 929.49 22.85 Q 930.71 23.41 931.5 23.41 Q 932.1 23.41 932.47 23.1 Q 932.84 22.78 932.84 22.26 Q 932.84 21.84 932.6 21.54 Q 932.35 21.24 931.71 20.88 L 931.21 20.59 Q 930.28 20.06 929.91 19.59 Q 929.53 19.13 929.53 18.51 Q 929.53 17.67 930.13 17.13 Q 930.74 16.59 931.68 16.59 Q 932.51 16.59 933.44 16.87 L 933.44 17.81 Q 932.3 17.36 931.73 17.36 Q 931.2 17.36 930.86 17.64 Q 930.51 17.93 930.51 18.36 Q 930.51 18.72 930.76 19 Q 931.02 19.27 931.69 19.66 L 932.21 19.95 Q 933.15 20.48 933.52 20.96 Q 933.89 21.43 933.89 22.1 Q 933.89 23.04 933.19 23.61 Q 932.5 24.18 931.35 24.18 M 931.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 24.18 Q 939.62 24.18 938.49 23.86 L 938.49 22.85 Q 939.71 23.41 940.5 23.41 Q 941.1 23.41 941.47 23.1 Q 941.84 22.78 941.84 22.26 Q 941.84 21.84 941.6 21.54 Q 941.35 21.24 940.71 20.88 L 940.21 20.59 Q 939.28 20.06 938.91 19.59 Q 938.53 19.13 938.53 18.51 Q 938.53 17.67 939.13 17.13 Q 939.74 16.59 940.68 16.59 Q 941.51 16.59 942.44 16.87 L 942.44 17.81 Q 941.3 17.36 940.73 17.36 Q 940.2 17.36 939.86 17.64 Q 939.51 17.93 939.51 18.36 Q 939.51 18.72 939.76 19 Q 940.02 19.27 940.69 19.66 L 941.21 19.95 Q 942.15 20.48 942.52 20.96 Q 942.89 21.43 942.89 22.1 Q 942.89 23.04 942.19 23.61 Q 941.5 24.18 940.35 24.18 M 940.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 24.18 Q 948.34 24.18 947.43 23.19 Q 946.51 22.2 946.51 20.39 Q 946.51 18.58 947.44 17.59 Q 948.38 16.59 950.08 16.59 Q 951.05 16.59 952.35 16.91 L 952.35 17.87 Q 950.87 17.36 950.06 17.36 Q 948.89 17.36 948.24 18.16 Q 947.6 18.95 947.6 20.4 Q 947.6 21.78 948.29 22.58 Q 948.97 23.38 950.17 23.38 Q 951.19 23.38 952.36 22.75 L 952.36 23.63 Q 951.29 24.18 950.03 24.18 M 950.03 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 21.24 L 958.36 18.12 L 957.13 21.24 M 959.59 21.24 M 960.68 24 L 959.89 22 L 956.83 22 L 956.04 24 L 955.08 24 L 957.95 16.77 L 958.96 16.77 L 961.79 24 M 960.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 23.8 Q 969.05 24.18 968.07 24.18 Q 966.35 24.18 965.43 23.2 Q 964.51 22.22 964.51 20.39 Q 964.51 18.59 965.44 17.59 Q 966.37 16.59 968.06 16.59 Q 969.16 16.59 970.35 16.92 L 970.35 17.87 Q 968.86 17.36 968.06 17.36 Q 966.89 17.36 966.24 18.16 Q 965.6 18.95 965.6 20.4 Q 965.6 21.83 966.29 22.62 Q 966.98 23.41 968.23 23.41 Q 968.75 23.41 969.34 23.23 L 969.34 20.88 L 970.36 20.88 M 970.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 24 L 973.93 16.77 L 974.89 16.77 L 974.89 20.33 L 977.82 16.77 L 978.85 16.77 L 976.02 20.22 L 979.35 24 L 978.05 24 L 974.89 20.34 L 974.89 24 M 973.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.93 24 L 984.93 16.77 L 985.95 16.77 L 985.95 24 M 984.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 995.59 21.24 L 994.36 18.12 L 993.13 21.24 M 995.59 21.24 M 996.68 24 L 995.89 22 L 992.83 22 L 992.04 24 L 991.08 24 L 993.95 16.77 L 994.96 16.77 L 997.79 24 M 996.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1006.36 23.8 Q 1005.05 24.18 1004.07 24.18 Q 1002.35 24.18 1001.43 23.2 Q 1000.51 22.22 1000.51 20.39 Q 1000.51 18.59 1001.44 17.59 Q 1002.37 16.59 1004.06 16.59 Q 1005.16 16.59 1006.35 16.92 L 1006.35 17.87 Q 1004.86 17.36 1004.06 17.36 Q 1002.89 17.36 1002.24 18.16 Q 1001.6 18.95 1001.6 20.4 Q 1001.6 21.83 1002.29 22.62 Q 1002.98 23.41 1004.23 23.41 Q 1004.75 23.41 1005.34 23.23 L 1005.34 20.88 L 1006.36 20.88 M 1006.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 23.8 Q 1014.05 24.18 1013.07 24.18 Q 1011.35 24.18 1010.43 23.2 Q 1009.51 22.22 1009.51 20.39 Q 1009.51 18.59 1010.44 17.59 Q 1011.37 16.59 1013.06 16.59 Q 1014.16 16.59 1015.35 16.92 L 1015.35 17.87 Q 1013.86 17.36 1013.06 17.36 Q 1011.89 17.36 1011.24 18.16 Q 1010.6 18.95 1010.6 20.4 Q 1010.6 21.83 1011.29 22.62 Q 1011.98 23.41 1013.23 23.41 Q 1013.75 23.41 1014.34 23.23 L 1014.34 20.88 L 1015.36 20.88 M 1015.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1022.59 21.24 L 1021.36 18.12 L 1020.13 21.24 M 1022.59 21.24 M 1023.68 24 L 1022.89 22 L 1019.83 22 L 1019.04 24 L 1018.08 24 L 1020.95 16.77 L 1021.96 16.77 L 1024.79 24 M 1023.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 24 L 1027.18 16.77 L 1028.2 16.77 L 1030.44 22.69 L 1032.6 16.77 L 1033.49 16.77 L 1030.87 24 M 1029.91 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 24 L 1036.93 16.77 L 1039.33 16.77 Q 1040.41 16.77 1041.07 17.01 Q 1041.73 17.25 1042.22 17.82 Q 1042.98 18.73 1042.98 20.22 Q 1042.98 22.02 1042.03 23.01 Q 1041.08 24 1039.35 24 M 1036.93 24 M 1037.96 23.23 L 1039.27 23.23 Q 1040.68 23.23 1041.26 22.48 Q 1041.89 21.67 1041.89 20.31 Q 1041.89 19.04 1041.27 18.31 Q 1040.9 17.87 1040.38 17.7 Q 1039.85 17.54 1038.8 17.54 L 1037.96 17.54 M 1037.96 23.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 25.45 Q 1049.64 24.89 1048.49 24.13 Q 1048.03 24.18 1047.78 24.18 Q 1046.33 24.18 1045.42 23.13 Q 1044.51 22.07 1044.51 20.39 Q 1044.51 18.66 1045.43 17.63 Q 1046.35 16.59 1047.89 16.59 Q 1049.43 16.59 1050.35 17.63 Q 1051.27 18.66 1051.27 20.4 Q 1051.27 22.89 1049.42 23.85 Q 1050.66 24.4 1052 24.63 M 1051.35 25.45 M 1047.86 23.41 Q 1048.97 23.41 1049.57 22.62 Q 1050.18 21.82 1050.18 20.37 Q 1050.18 18.96 1049.57 18.16 Q 1048.97 17.36 1047.89 17.36 Q 1046.81 17.36 1046.2 18.16 Q 1045.6 18.96 1045.6 20.38 Q 1045.6 21.79 1046.2 22.6 Q 1046.8 23.41 1047.86 23.41 M 1047.86 23.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1056.65 24 L 1056.65 17.54 L 1054.09 17.54 L 1054.09 16.77 L 1060.24 16.77 L 1060.24 17.54 L 1057.68 17.54 L 1057.68 24 M 1056.65 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 24 L 1063.93 16.77 L 1066.33 16.77 Q 1067.41 16.77 1068.07 17.01 Q 1068.73 17.25 1069.22 17.82 Q 1069.98 18.73 1069.98 20.22 Q 1069.98 22.02 1069.03 23.01 Q 1068.08 24 1066.35 24 M 1063.93 24 M 1064.96 23.23 L 1066.27 23.23 Q 1067.68 23.23 1068.26 22.48 Q 1068.89 21.67 1068.89 20.31 Q 1068.89 19.04 1068.27 18.31 Q 1067.9 17.87 1067.38 17.7 Q 1066.85 17.54 1065.8 17.54 L 1064.96 17.54 M 1064.96 23.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.36 23.8 Q 1077.05 24.18 1076.07 24.18 Q 1074.35 24.18 1073.43 23.2 Q 1072.51 22.22 1072.51 20.39 Q 1072.51 18.59 1073.44 17.59 Q 1074.37 16.59 1076.06 16.59 Q 1077.16 16.59 1078.35 16.92 L 1078.35 17.87 Q 1076.86 17.36 1076.06 17.36 Q 1074.89 17.36 1074.24 18.16 Q 1073.6 18.95 1073.6 20.4 Q 1073.6 21.83 1074.29 22.62 Q 1074.98 23.41 1076.23 23.41 Q 1076.75 23.41 1077.34 23.23 L 1077.34 20.88 L 1078.36 20.88 M 1078.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1081.93 24 L 1081.93 16.77 L 1082.94 16.77 L 1086.58 22.35 L 1086.58 16.77 L 1087.46 16.77 L 1087.46 24 L 1086.45 24 L 1082.81 18.42 L 1082.81 24 M 1081.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 24 L 1091.93 16.77 L 1095.97 16.77 L 1095.97 17.54 L 1092.96 17.54 L 1092.96 19.96 L 1095.49 19.96 L 1095.49 20.72 L 1092.96 20.72 L 1092.96 24 M 1091.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 24 L 1100.93 16.77 L 1101.96 16.77 L 1101.96 23.23 L 1105.21 23.23 L 1105.21 24 M 1100.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 24 L 1108.93 16.77 L 1111.33 16.77 Q 1112.41 16.77 1113.07 17.01 Q 1113.73 17.25 1114.22 17.82 Q 1114.98 18.73 1114.98 20.22 Q 1114.98 22.02 1114.03 23.01 Q 1113.08 24 1111.35 24 M 1108.93 24 M 1109.96 23.23 L 1111.27 23.23 Q 1112.68 23.23 1113.26 22.48 Q 1113.89 21.67 1113.89 20.31 Q 1113.89 19.04 1113.27 18.31 Q 1112.9 17.87 1112.38 17.7 Q 1111.85 17.54 1110.8 17.54 L 1109.96 17.54 M 1109.96 23.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 24 L 1117.93 16.77 L 1120.33 16.77 Q 1121.41 16.77 1122.07 17.01 Q 1122.73 17.25 1123.22 17.82 Q 1123.98 18.73 1123.98 20.22 Q 1123.98 22.02 1123.03 23.01 Q 1122.08 24 1120.35 24 M 1117.93 24 M 1118.96 23.23 L 1120.27 23.23 Q 1121.68 23.23 1122.26 22.48 Q 1122.89 21.67 1122.89 20.31 Q 1122.89 19.04 1122.27 18.31 Q 1121.9 17.87 1121.38 17.7 Q 1120.85 17.54 1119.8 17.54 L 1118.96 17.54 M 1118.96 23.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1126.93 24 L 1126.93 16.77 L 1129.33 16.77 Q 1130.41 16.77 1131.07 17.01 Q 1131.73 17.25 1132.22 17.82 Q 1132.98 18.73 1132.98 20.22 Q 1132.98 22.02 1132.03 23.01 Q 1131.08 24 1129.35 24 M 1126.93 24 M 1127.96 23.23 L 1129.27 23.23 Q 1130.68 23.23 1131.26 22.48 Q 1131.89 21.67 1131.89 20.31 Q 1131.89 19.04 1131.27 18.31 Q 1130.9 17.87 1130.38 17.7 Q 1129.85 17.54 1128.8 17.54 L 1127.96 17.54 M 1127.96 23.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 25.45 Q 1139.64 24.89 1138.49 24.13 Q 1138.03 24.18 1137.78 24.18 Q 1136.33 24.18 1135.42 23.13 Q 1134.51 22.07 1134.51 20.39 Q 1134.51 18.66 1135.43 17.63 Q 1136.35 16.59 1137.89 16.59 Q 1139.43 16.59 1140.35 17.63 Q 1141.27 18.66 1141.27 20.4 Q 1141.27 22.89 1139.42 23.85 Q 1140.66 24.4 1142 24.63 M 1141.35 25.45 M 1137.86 23.41 Q 1138.97 23.41 1139.57 22.62 Q 1140.18 21.82 1140.18 20.37 Q 1140.18 18.96 1139.57 18.16 Q 1138.97 17.36 1137.89 17.36 Q 1136.81 17.36 1136.2 18.16 Q 1135.6 18.96 1135.6 20.38 Q 1135.6 21.79 1136.2 22.6 Q 1136.8 23.41 1137.86 23.41 M 1137.86 23.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1145.93 24 L 1145.93 16.77 L 1146.96 16.77 L 1146.96 23.23 L 1150.21 23.23 L 1150.21 24 M 1145.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1154.93 24 L 1154.93 16.77 L 1158.97 16.77 L 1158.97 17.54 L 1155.96 17.54 L 1155.96 19.86 L 1158.48 19.86 L 1158.48 20.62 L 1155.96 20.62 L 1155.96 23.23 L 1159.18 23.23 L 1159.18 24 M 1154.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1163.93 24 L 1163.93 16.77 L 1167.97 16.77 L 1167.97 17.54 L 1164.96 17.54 L 1164.96 19.86 L 1167.48 19.86 L 1167.48 20.62 L 1164.96 20.62 L 1164.96 23.23 L 1168.18 23.23 L 1168.18 24 M 1163.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 23.8 Q 1176.05 24.18 1175.07 24.18 Q 1173.35 24.18 1172.43 23.2 Q 1171.51 22.22 1171.51 20.39 Q 1171.51 18.59 1172.44 17.59 Q 1173.37 16.59 1175.06 16.59 Q 1176.16 16.59 1177.35 16.92 L 1177.35 17.87 Q 1175.86 17.36 1175.06 17.36 Q 1173.89 17.36 1173.24 18.16 Q 1172.6 18.95 1172.6 20.4 Q 1172.6 21.83 1173.29 22.62 Q 1173.98 23.41 1175.23 23.41 Q 1175.75 23.41 1176.34 23.23 L 1176.34 20.88 L 1177.36 20.88 M 1177.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1180.87 24 L 1179.01 16.77 L 1180 16.77 L 1181.48 22.48 L 1182.84 16.77 L 1183.82 16.77 L 1185.11 22.4 L 1186.71 16.77 L 1187.54 16.77 L 1185.51 24 L 1184.49 24 L 1183.22 18.43 L 1181.89 24 M 1180.87 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 24 L 1189.18 16.77 L 1190.2 16.77 L 1192.44 22.69 L 1194.6 16.77 L 1195.49 16.77 L 1192.87 24 M 1191.91 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 24 L 1199.93 16.77 L 1200.96 16.77 L 1200.96 23.23 L 1204.21 23.23 L 1204.21 24 M 1199.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 24 L 1209.65 17.54 L 1207.09 17.54 L 1207.09 16.77 L 1213.24 16.77 L 1213.24 17.54 L 1210.68 17.54 L 1210.68 24 M 1209.65 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 24.18 Q 1218.34 24.18 1217.43 23.19 Q 1216.51 22.2 1216.51 20.39 Q 1216.51 18.58 1217.44 17.59 Q 1218.38 16.59 1220.08 16.59 Q 1221.05 16.59 1222.35 16.91 L 1222.35 17.87 Q 1220.87 17.36 1220.06 17.36 Q 1218.89 17.36 1218.24 18.16 Q 1217.6 18.95 1217.6 20.4 Q 1217.6 21.78 1218.29 22.58 Q 1218.97 23.38 1220.17 23.38 Q 1221.19 23.38 1222.36 22.75 L 1222.36 23.63 Q 1221.29 24.18 1220.03 24.18 M 1220.03 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1227.91 24 L 1225.18 16.77 L 1226.2 16.77 L 1228.44 22.69 L 1230.6 16.77 L 1231.49 16.77 L 1228.87 24 M 1227.91 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 21.24 L 1237.36 18.12 L 1236.13 21.24 M 1238.59 21.24 M 1239.68 24 L 1238.89 22 L 1235.83 22 L 1235.04 24 L 1234.08 24 L 1236.95 16.77 L 1237.96 16.77 L 1240.79 24 M 1239.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 24 L 1245.5 20.98 L 1243.08 16.77 L 1244.25 16.77 L 1246.13 20.04 L 1248.15 16.77 L 1249.1 16.77 L 1246.52 20.96 L 1246.52 24 M 1245.5 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 24 L 1252.93 16.77 L 1254.9 16.77 Q 1256.21 16.77 1256.78 17.22 Q 1257.35 17.66 1257.35 18.67 Q 1257.35 19.82 1256.57 20.47 Q 1255.79 21.13 1254.4 21.13 L 1253.95 21.13 L 1253.95 24 M 1252.93 24 M 1253.95 20.35 L 1254.36 20.35 Q 1255.28 20.35 1255.77 19.93 Q 1256.27 19.51 1256.27 18.75 Q 1256.27 18.1 1255.88 17.82 Q 1255.49 17.54 1254.58 17.54 L 1253.95 17.54 M 1253.95 20.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1267.35 25.45 Q 1265.64 24.89 1264.49 24.13 Q 1264.03 24.18 1263.78 24.18 Q 1262.33 24.18 1261.42 23.13 Q 1260.51 22.07 1260.51 20.39 Q 1260.51 18.66 1261.43 17.63 Q 1262.35 16.59 1263.89 16.59 Q 1265.43 16.59 1266.35 17.63 Q 1267.27 18.66 1267.27 20.4 Q 1267.27 22.89 1265.42 23.85 Q 1266.66 24.4 1268 24.63 M 1267.35 25.45 M 1263.86 23.41 Q 1264.97 23.41 1265.57 22.62 Q 1266.18 21.82 1266.18 20.37 Q 1266.18 18.96 1265.57 18.16 Q 1264.97 17.36 1263.89 17.36 Q 1262.81 17.36 1262.2 18.16 Q 1261.6 18.96 1261.6 20.38 Q 1261.6 21.79 1262.2 22.6 Q 1262.8 23.41 1263.86 23.41 M 1263.86 23.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1273.35 24.18 Q 1272.62 24.18 1271.49 23.86 L 1271.49 22.85 Q 1272.71 23.41 1273.5 23.41 Q 1274.1 23.41 1274.47 23.1 Q 1274.84 22.78 1274.84 22.26 Q 1274.84 21.84 1274.6 21.54 Q 1274.35 21.24 1273.71 20.88 L 1273.21 20.59 Q 1272.28 20.06 1271.91 19.59 Q 1271.53 19.13 1271.53 18.51 Q 1271.53 17.67 1272.13 17.13 Q 1272.74 16.59 1273.68 16.59 Q 1274.51 16.59 1275.44 16.87 L 1275.44 17.81 Q 1274.3 17.36 1273.73 17.36 Q 1273.2 17.36 1272.86 17.64 Q 1272.51 17.93 1272.51 18.36 Q 1272.51 18.72 1272.76 19 Q 1273.02 19.27 1273.69 19.66 L 1274.21 19.95 Q 1275.15 20.48 1275.52 20.96 Q 1275.89 21.43 1275.89 22.1 Q 1275.89 23.04 1275.19 23.61 Q 1274.5 24.18 1273.35 24.18 M 1273.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 24 L 1279.93 16.77 L 1282.33 16.77 Q 1283.41 16.77 1284.07 17.01 Q 1284.73 17.25 1285.22 17.82 Q 1285.98 18.73 1285.98 20.22 Q 1285.98 22.02 1285.03 23.01 Q 1284.08 24 1282.35 24 M 1279.93 24 M 1280.96 23.23 L 1282.27 23.23 Q 1283.68 23.23 1284.26 22.48 Q 1284.89 21.67 1284.89 20.31 Q 1284.89 19.04 1284.27 18.31 Q 1283.9 17.87 1283.38 17.7 Q 1282.85 17.54 1281.8 17.54 L 1280.96 17.54 M 1280.96 23.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 24 L 1288.18 16.77 L 1289.2 16.77 L 1291.44 22.69 L 1293.6 16.77 L 1294.49 16.77 L 1291.87 24 M 1290.91 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.65 24 L 1299.65 17.54 L 1297.09 17.54 L 1297.09 16.77 L 1303.24 16.77 L 1303.24 17.54 L 1300.68 17.54 L 1300.68 24 M 1299.65 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 24 L 1308.93 16.77 L 1309.95 16.77 L 1309.95 24 M 1308.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 24 L 1316.93 16.77 L 1320.97 16.77 L 1320.97 17.54 L 1317.96 17.54 L 1317.96 19.86 L 1320.48 19.86 L 1320.48 20.62 L 1317.96 20.62 L 1317.96 23.23 L 1321.18 23.23 L 1321.18 24 M 1316.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 24 L 1326.65 17.54 L 1324.09 17.54 L 1324.09 16.77 L 1330.24 16.77 L 1330.24 17.54 L 1327.68 17.54 L 1327.68 24 M 1326.65 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 24 L 1333.93 16.77 L 1334.96 16.77 L 1334.96 19.82 L 1338.4 19.82 L 1338.4 16.77 L 1339.42 16.77 L 1339.42 24 L 1338.4 24 L 1338.4 20.59 L 1334.96 20.59 L 1334.96 24 M 1333.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 24 L 1342.93 16.77 L 1343.89 16.77 L 1343.89 20.33 L 1346.82 16.77 L 1347.85 16.77 L 1345.02 20.22 L 1348.35 24 L 1347.05 24 L 1343.89 20.34 L 1343.89 24 M 1342.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 24 L 1352.93 16.77 L 1356.97 16.77 L 1356.97 17.54 L 1353.96 17.54 L 1353.96 19.86 L 1356.48 19.86 L 1356.48 20.62 L 1353.96 20.62 L 1353.96 23.23 L 1357.18 23.23 L 1357.18 24 M 1352.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1364.59 21.24 L 1363.36 18.12 L 1362.13 21.24 M 1364.59 21.24 M 1365.68 24 L 1364.89 22 L 1361.83 22 L 1361.04 24 L 1360.08 24 L 1362.95 16.77 L 1363.96 16.77 L 1366.79 24 M 1365.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1370.93 24 L 1370.93 16.77 L 1374.97 16.77 L 1374.97 17.54 L 1371.96 17.54 L 1371.96 19.86 L 1374.48 19.86 L 1374.48 20.62 L 1371.96 20.62 L 1371.96 23.23 L 1375.18 23.23 L 1375.18 24 M 1370.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1379.93 24 L 1379.93 16.77 L 1380.96 16.77 L 1380.96 23.23 L 1384.21 23.23 L 1384.21 24 M 1379.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.91 24 L 1387.18 16.77 L 1388.2 16.77 L 1390.44 22.69 L 1392.6 16.77 L 1393.49 16.77 L 1390.87 24 M 1389.91 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1402.36 23.8 Q 1401.05 24.18 1400.07 24.18 Q 1398.35 24.18 1397.43 23.2 Q 1396.51 22.22 1396.51 20.39 Q 1396.51 18.59 1397.44 17.59 Q 1398.37 16.59 1400.06 16.59 Q 1401.16 16.59 1402.35 16.92 L 1402.35 17.87 Q 1400.86 17.36 1400.06 17.36 Q 1398.89 17.36 1398.24 18.16 Q 1397.6 18.95 1397.6 20.4 Q 1397.6 21.83 1398.29 22.62 Q 1398.98 23.41 1400.23 23.41 Q 1400.75 23.41 1401.34 23.23 L 1401.34 20.88 L 1402.36 20.88 M 1402.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 21.47 L 1405.72 20.75 L 1410.06 20.75 L 1410.06 21.47 M 1405.72 21.47"/></g><rect x="0" y="26" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="26" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="26" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="26" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="26" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="26" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="26" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="26" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="26" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="26" width="18" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="26" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="26" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="26" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="26" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="26" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="702" y="26" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="26" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="26" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="26" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="26" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="774" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="26" width="27" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="26" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="26" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="26" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="26" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="26" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="26" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="26" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="26" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="26" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="26" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="26" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="26" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="26" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="26" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="26" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="990" y="26" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="26" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="26" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="26" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="26" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="26" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="26" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1080" y="26" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="26" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="26" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="26" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 37 L 0.93 29.77 L 2.35 29.77 L 4.36 35.36 L 6.42 29.77 L 7.69 29.77 L 7.69 37 L 6.73 37 L 6.73 31.12 L 4.74 36.52 L 3.75 36.52 L 1.81 31.11 L 1.81 37 M 0.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 34.24 L 13.36 31.12 L 12.13 34.24 M 14.59 34.24 M 15.68 37 L 14.89 35 L 11.83 35 L 11.04 37 L 10.08 37 L 12.95 29.77 L 13.96 29.77 L 16.79 37 M 15.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 19.72 34.47 L 19.72 33.75 L 24.06 33.75 L 24.06 34.47 M 19.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 28.72 34.47 L 28.72 33.75 L 33.06 33.75 L 33.06 34.47 M 28.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 34.47 L 37.72 33.75 L 42.06 33.75 L 42.06 34.47 M 37.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 34.47 L 46.72 33.75 L 51.06 33.75 L 51.06 34.47 M 46.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 34.47 L 55.72 33.75 L 60.06 33.75 L 60.06 34.47 M 55.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.72 34.47 L 64.72 33.75 L 69.06 33.75 L 69.06 34.47 M 64.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 76.35 37.18 Q 75.62 37.18 74.49 36.86 L 74.49 35.85 Q 75.71 36.41 76.5 36.41 Q 77.1 36.41 77.47 36.1 Q 77.84 35.78 77.84 35.26 Q 77.84 34.84 77.6 34.54 Q 77.35 34.24 76.71 33.88 L 76.21 33.59 Q 75.28 33.06 74.91 32.59 Q 74.53 32.13 74.53 31.51 Q 74.53 30.67 75.13 30.13 Q 75.74 29.59 76.68 29.59 Q 77.51 29.59 78.44 29.87 L 78.44 30.81 Q 77.3 30.36 76.73 30.36 Q 76.2 30.36 75.86 30.64 Q 75.51 30.93 75.51 31.36 Q 75.51 31.72 75.76 32 Q 76.02 32.27 76.69 32.66 L 77.21 32.95 Q 78.15 33.48 78.52 33.96 Q 78.89 34.43 78.89 35.1 Q 78.89 36.04 78.19 36.61 Q 77.5 37.18 76.35 37.18 M 76.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 84.93 37 L 84.93 29.77 L 85.95 29.77 L 85.95 37 M 84.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 94.35 37.18 Q 93.62 37.18 92.49 36.86 L 92.49 35.85 Q 93.71 36.41 94.5 36.41 Q 95.1 36.41 95.47 36.1 Q 95.84 35.78 95.84 35.26 Q 95.84 34.84 95.6 34.54 Q 95.35 34.24 94.71 33.88 L 94.21 33.59 Q 93.28 33.06 92.91 32.59 Q 92.53 32.13 92.53 31.51 Q 92.53 30.67 93.13 30.13 Q 93.74 29.59 94.68 29.59 Q 95.51 29.59 96.44 29.87 L 96.44 30.81 Q 95.3 30.36 94.73 30.36 Q 94.2 30.36 93.86 30.64 Q 93.51 30.93 93.51 31.36 Q 93.51 31.72 93.76 32 Q 94.02 32.27 94.69 32.66 L 95.21 32.95 Q 96.15 33.48 96.52 33.96 Q 96.89 34.43 96.89 35.1 Q 96.89 36.04 96.19 36.61 Q 95.5 37.18 94.35 37.18 M 94.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 106.36 36.8 Q 105.05 37.18 104.07 37.18 Q 102.35 37.18 101.43 36.2 Q 100.51 35.22 100.51 33.39 Q 100.51 31.59 101.44 30.59 Q 102.37 29.59 104.06 29.59 Q 105.16 29.59 106.35 29.92 L 106.35 30.87 Q 104.86 30.36 104.06 30.36 Q 102.89 30.36 102.24 31.16 Q 101.6 31.95 101.6 33.4 Q 101.6 34.83 102.29 35.62 Q 102.98 36.41 104.23 36.41 Q 104.75 36.41 105.34 36.23 L 105.34 33.88 L 106.36 33.88 M 106.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 111.65 37 L 111.65 30.54 L 109.09 30.54 L 109.09 29.77 L 115.24 29.77 L 115.24 30.54 L 112.68 30.54 L 112.68 37 M 111.65 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 117.93 37 L 117.93 29.77 L 119.35 29.77 L 121.36 35.36 L 123.42 29.77 L 124.69 29.77 L 124.69 37 L 123.73 37 L 123.73 31.12 L 121.74 36.52 L 120.75 36.52 L 118.81 31.11 L 118.81 37 M 117.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 129.93 37 L 129.93 29.77 L 130.95 29.77 L 130.95 37 M 129.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 139.35 37.18 Q 138.62 37.18 137.49 36.86 L 137.49 35.85 Q 138.71 36.41 139.5 36.41 Q 140.1 36.41 140.47 36.1 Q 140.84 35.78 140.84 35.26 Q 140.84 34.84 140.6 34.54 Q 140.35 34.24 139.71 33.88 L 139.21 33.59 Q 138.28 33.06 137.91 32.59 Q 137.53 32.13 137.53 31.51 Q 137.53 30.67 138.13 30.13 Q 138.74 29.59 139.68 29.59 Q 140.51 29.59 141.44 29.87 L 141.44 30.81 Q 140.3 30.36 139.73 30.36 Q 139.2 30.36 138.86 30.64 Q 138.51 30.93 138.51 31.36 Q 138.51 31.72 138.76 32 Q 139.02 32.27 139.69 32.66 L 140.21 32.95 Q 141.15 33.48 141.52 33.96 Q 141.89 34.43 141.89 35.1 Q 141.89 36.04 141.19 36.61 Q 140.5 37.18 139.35 37.18 M 139.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 147.65 37 L 147.65 30.54 L 145.09 30.54 L 145.09 29.77 L 151.24 29.77 L 151.24 30.54 L 148.68 30.54 L 148.68 37 M 147.65 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 157.35 37.18 Q 156.62 37.18 155.49 36.86 L 155.49 35.85 Q 156.71 36.41 157.5 36.41 Q 158.1 36.41 158.47 36.1 Q 158.84 35.78 158.84 35.26 Q 158.84 34.84 158.6 34.54 Q 158.35 34.24 157.71 33.88 L 157.21 33.59 Q 156.28 33.06 155.91 32.59 Q 155.53 32.13 155.53 31.51 Q 155.53 30.67 156.13 30.13 Q 156.74 29.59 157.68 29.59 Q 158.51 29.59 159.44 29.87 L 159.44 30.81 Q 158.3 30.36 157.73 30.36 Q 157.2 30.36 156.86 30.64 Q 156.51 30.93 156.51 31.36 Q 156.51 31.72 156.76 32 Q 157.02 32.27 157.69 32.66 L 158.21 32.95 Q 159.15 33.48 159.52 33.96 Q 159.89 34.43 159.89 35.1 Q 159.89 36.04 159.19 36.61 Q 158.5 37.18 157.35 37.18 M 157.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 164.93 37 L 164.93 29.77 L 168.97 29.77 L 168.97 30.54 L 165.96 30.54 L 165.96 32.96 L 168.49 32.96 L 168.49 33.72 L 165.96 33.72 L 165.96 37 M 164.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 173.93 37 L 173.93 29.77 L 174.96 29.77 L 174.96 36.23 L 178.21 36.23 L 178.21 37 M 173.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 37 L 181.93 29.77 L 183.9 29.77 Q 185.21 29.77 185.78 30.22 Q 186.35 30.66 186.35 31.67 Q 186.35 32.82 185.57 33.47 Q 184.79 34.13 183.4 34.13 L 182.95 34.13 L 182.95 37 M 181.93 37 M 182.95 33.35 L 183.36 33.35 Q 184.28 33.35 184.77 32.93 Q 185.27 32.51 185.27 31.75 Q 185.27 31.1 184.88 30.82 Q 184.49 30.54 183.58 30.54 L 182.95 30.54 M 182.95 33.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.93 37 L 190.93 29.77 L 193.12 29.77 Q 194.16 29.77 194.71 30.23 Q 195.27 30.69 195.27 31.57 Q 195.27 33.01 193.81 33.62 L 196.22 37 L 194.96 37 L 192.91 33.94 L 191.95 33.94 L 191.95 37 M 190.93 37 M 191.95 33.18 L 192.28 33.18 Q 194.21 33.18 194.21 31.66 Q 194.21 30.54 192.59 30.54 L 191.95 30.54 M 191.95 33.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 199.93 37 L 199.93 29.77 L 200.89 29.77 L 200.89 33.33 L 203.82 29.77 L 204.85 29.77 L 202.02 33.22 L 205.35 37 L 204.05 37 L 200.89 33.34 L 200.89 37 M 199.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.93 37 L 208.93 29.77 L 210.9 29.77 Q 212.21 29.77 212.78 30.22 Q 213.35 30.66 213.35 31.67 Q 213.35 32.82 212.57 33.47 Q 211.79 34.13 210.4 34.13 L 209.95 34.13 L 209.95 37 M 208.93 37 M 209.95 33.35 L 210.36 33.35 Q 211.28 33.35 211.77 32.93 Q 212.27 32.51 212.27 31.75 Q 212.27 31.1 211.88 30.82 Q 211.49 30.54 210.58 30.54 L 209.95 30.54 M 209.95 33.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 221.59 34.24 L 220.36 31.12 L 219.13 34.24 M 221.59 34.24 M 222.68 37 L 221.89 35 L 218.83 35 L 218.04 37 L 217.08 37 L 219.95 29.77 L 220.96 29.77 L 223.79 37 M 222.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 228.91 37 L 226.18 29.77 L 227.2 29.77 L 229.44 35.69 L 231.6 29.77 L 232.49 29.77 L 229.87 37 M 228.91 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 237.65 37 L 237.65 30.54 L 235.09 30.54 L 235.09 29.77 L 241.24 29.77 L 241.24 30.54 L 238.68 30.54 L 238.68 37 M 237.65 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 247.35 37.18 Q 246.62 37.18 245.49 36.86 L 245.49 35.85 Q 246.71 36.41 247.5 36.41 Q 248.1 36.41 248.47 36.1 Q 248.84 35.78 248.84 35.26 Q 248.84 34.84 248.6 34.54 Q 248.35 34.24 247.71 33.88 L 247.21 33.59 Q 246.28 33.06 245.91 32.59 Q 245.53 32.13 245.53 31.51 Q 245.53 30.67 246.13 30.13 Q 246.74 29.59 247.68 29.59 Q 248.51 29.59 249.44 29.87 L 249.44 30.81 Q 248.3 30.36 247.73 30.36 Q 247.2 30.36 246.86 30.64 Q 246.51 30.93 246.51 31.36 Q 246.51 31.72 246.76 32 Q 247.02 32.27 247.69 32.66 L 248.21 32.95 Q 249.15 33.48 249.52 33.96 Q 249.89 34.43 249.89 35.1 Q 249.89 36.04 249.19 36.61 Q 248.5 37.18 247.35 37.18 M 247.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 254.93 37 L 254.93 29.77 L 255.96 29.77 L 255.96 36.23 L 259.21 36.23 L 259.21 37 M 254.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.72 34.47 L 262.72 33.75 L 267.06 33.75 L 267.06 34.47 M 262.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 271.93 37 L 271.93 29.77 L 272.89 29.77 L 272.89 33.33 L 275.82 29.77 L 276.85 29.77 L 274.02 33.22 L 277.35 37 L 276.05 37 L 272.89 33.34 L 272.89 37 M 271.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 284.59 34.24 L 283.36 31.12 L 282.13 34.24 M 284.59 34.24 M 285.68 37 L 284.89 35 L 281.83 35 L 281.04 37 L 280.08 37 L 282.95 29.77 L 283.96 29.77 L 286.79 37 M 285.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 291.93 37 L 291.93 29.77 L 292.95 29.77 L 292.95 37 M 291.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 301.35 37.18 Q 300.62 37.18 299.49 36.86 L 299.49 35.85 Q 300.71 36.41 301.5 36.41 Q 302.1 36.41 302.47 36.1 Q 302.84 35.78 302.84 35.26 Q 302.84 34.84 302.6 34.54 Q 302.35 34.24 301.71 33.88 L 301.21 33.59 Q 300.28 33.06 299.91 32.59 Q 299.53 32.13 299.53 31.51 Q 299.53 30.67 300.13 30.13 Q 300.74 29.59 301.68 29.59 Q 302.51 29.59 303.44 29.87 L 303.44 30.81 Q 302.3 30.36 301.73 30.36 Q 301.2 30.36 300.86 30.64 Q 300.51 30.93 300.51 31.36 Q 300.51 31.72 300.76 32 Q 301.02 32.27 301.69 32.66 L 302.21 32.95 Q 303.15 33.48 303.52 33.96 Q 303.89 34.43 303.89 35.1 Q 303.89 36.04 303.19 36.61 Q 302.5 37.18 301.35 37.18 M 301.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 307.93 37 L 307.93 29.77 L 308.94 29.77 L 312.58 35.35 L 312.58 29.77 L 313.46 29.77 L 313.46 37 L 312.45 37 L 308.81 31.42 L 308.81 37 M 307.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 318.91 37 L 316.18 29.77 L 317.2 29.77 L 319.44 35.69 L 321.6 29.77 L 322.49 29.77 L 319.87 37 M 318.91 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 331.36 36.8 Q 330.05 37.18 329.07 37.18 Q 327.35 37.18 326.43 36.2 Q 325.51 35.22 325.51 33.39 Q 325.51 31.59 326.44 30.59 Q 327.37 29.59 329.06 29.59 Q 330.16 29.59 331.35 29.92 L 331.35 30.87 Q 329.86 30.36 329.06 30.36 Q 327.89 30.36 327.24 31.16 Q 326.6 31.95 326.6 33.4 Q 326.6 34.83 327.29 35.62 Q 327.98 36.41 329.23 36.41 Q 329.75 36.41 330.34 36.23 L 330.34 33.88 L 331.36 33.88 M 331.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 335.93 37 L 335.93 29.77 L 339.97 29.77 L 339.97 30.54 L 336.96 30.54 L 336.96 32.86 L 339.48 32.86 L 339.48 33.62 L 336.96 33.62 L 336.96 36.23 L 340.18 36.23 L 340.18 37 M 335.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 34.47 L 343.72 33.75 L 348.06 33.75 L 348.06 34.47 M 343.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 34.47 L 352.72 33.75 L 357.06 33.75 L 357.06 34.47 M 352.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 365.59 34.24 L 364.36 31.12 L 363.13 34.24 M 365.59 34.24 M 366.68 37 L 365.89 35 L 362.83 35 L 362.04 37 L 361.08 37 L 363.95 29.77 L 364.96 29.77 L 367.79 37 M 366.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 371.93 37 L 371.93 29.77 L 372.96 29.77 L 372.96 36.23 L 376.21 36.23 L 376.21 37 M 371.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 380.93 37 L 380.93 29.77 L 384.97 29.77 L 384.97 30.54 L 381.96 30.54 L 381.96 32.96 L 384.49 32.96 L 384.49 33.72 L 381.96 33.72 L 381.96 37 M 380.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 394.36 36.8 Q 393.05 37.18 392.07 37.18 Q 390.35 37.18 389.43 36.2 Q 388.51 35.22 388.51 33.39 Q 388.51 31.59 389.44 30.59 Q 390.37 29.59 392.06 29.59 Q 393.16 29.59 394.35 29.92 L 394.35 30.87 Q 392.86 30.36 392.06 30.36 Q 390.89 30.36 390.24 31.16 Q 389.6 31.95 389.6 33.4 Q 389.6 34.83 390.29 35.62 Q 390.98 36.41 392.23 36.41 Q 392.75 36.41 393.34 36.23 L 393.34 33.88 L 394.36 33.88 M 394.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 398.93 37 L 398.93 29.77 L 399.96 29.77 L 399.96 36.23 L 403.21 36.23 L 403.21 37 M 398.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.93 37 L 406.93 29.77 L 407.89 29.77 L 407.89 33.33 L 410.82 29.77 L 411.85 29.77 L 409.02 33.22 L 412.35 37 L 411.05 37 L 407.89 33.34 L 407.89 37 M 406.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 418.35 37.18 Q 417.62 37.18 416.49 36.86 L 416.49 35.85 Q 417.71 36.41 418.5 36.41 Q 419.1 36.41 419.47 36.1 Q 419.84 35.78 419.84 35.26 Q 419.84 34.84 419.6 34.54 Q 419.35 34.24 418.71 33.88 L 418.21 33.59 Q 417.28 33.06 416.91 32.59 Q 416.53 32.13 416.53 31.51 Q 416.53 30.67 417.13 30.13 Q 417.74 29.59 418.68 29.59 Q 419.51 29.59 420.44 29.87 L 420.44 30.81 Q 419.3 30.36 418.73 30.36 Q 418.2 30.36 417.86 30.64 Q 417.51 30.93 417.51 31.36 Q 417.51 31.72 417.76 32 Q 418.02 32.27 418.69 32.66 L 419.21 32.95 Q 420.15 33.48 420.52 33.96 Q 420.89 34.43 420.89 35.1 Q 420.89 36.04 420.19 36.61 Q 419.5 37.18 418.35 37.18 M 418.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 34.47 L 424.72 33.75 L 429.06 33.75 L 429.06 34.47 M 424.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 439.36 36.8 Q 438.05 37.18 437.07 37.18 Q 435.35 37.18 434.43 36.2 Q 433.51 35.22 433.51 33.39 Q 433.51 31.59 434.44 30.59 Q 435.37 29.59 437.06 29.59 Q 438.16 29.59 439.35 29.92 L 439.35 30.87 Q 437.86 30.36 437.06 30.36 Q 435.89 30.36 435.24 31.16 Q 434.6 31.95 434.6 33.4 Q 434.6 34.83 435.29 35.62 Q 435.98 36.41 437.23 36.41 Q 437.75 36.41 438.34 36.23 L 438.34 33.88 L 439.36 33.88 M 439.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 442.72 34.47 L 442.72 33.75 L 447.06 33.75 L 447.06 34.47 M 442.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 451.72 34.47 L 451.72 33.75 L 456.06 33.75 L 456.06 34.47 M 451.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.93 37 L 460.93 29.77 L 463.12 29.77 Q 464.16 29.77 464.71 30.23 Q 465.27 30.69 465.27 31.57 Q 465.27 33.01 463.81 33.62 L 466.22 37 L 464.96 37 L 462.91 33.94 L 461.95 33.94 L 461.95 37 M 460.93 37 M 461.95 33.18 L 462.28 33.18 Q 464.21 33.18 464.21 31.66 Q 464.21 30.54 462.59 30.54 L 461.95 30.54 M 461.95 33.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 469.93 37 L 469.93 29.77 L 470.94 29.77 L 474.58 35.35 L 474.58 29.77 L 475.46 29.77 L 475.46 37 L 474.45 37 L 470.81 31.42 L 470.81 37 M 469.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 484.36 36.8 Q 483.05 37.18 482.07 37.18 Q 480.35 37.18 479.43 36.2 Q 478.51 35.22 478.51 33.39 Q 478.51 31.59 479.44 30.59 Q 480.37 29.59 482.06 29.59 Q 483.16 29.59 484.35 29.92 L 484.35 30.87 Q 482.86 30.36 482.06 30.36 Q 480.89 30.36 480.24 31.16 Q 479.6 31.95 479.6 33.4 Q 479.6 34.83 480.29 35.62 Q 480.98 36.41 482.23 36.41 Q 482.75 36.41 483.34 36.23 L 483.34 33.88 L 484.36 33.88 M 484.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 487.93 37 L 487.93 29.77 L 490.12 29.77 Q 491.16 29.77 491.71 30.23 Q 492.27 30.69 492.27 31.57 Q 492.27 33.01 490.81 33.62 L 493.22 37 L 491.96 37 L 489.91 33.94 L 488.95 33.94 L 488.95 37 M 487.93 37 M 488.95 33.18 L 489.28 33.18 Q 491.21 33.18 491.21 31.66 Q 491.21 30.54 489.59 30.54 L 488.95 30.54 M 488.95 33.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 498.93 37 L 498.93 29.77 L 499.95 29.77 L 499.95 37 M 498.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 507.65 37 L 507.65 30.54 L 505.09 30.54 L 505.09 29.77 L 511.24 29.77 L 511.24 30.54 L 508.68 30.54 L 508.68 37 M 507.65 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 518.03 37.18 Q 516.34 37.18 515.43 36.19 Q 514.51 35.2 514.51 33.39 Q 514.51 31.58 515.44 30.59 Q 516.38 29.59 518.08 29.59 Q 519.05 29.59 520.35 29.91 L 520.35 30.87 Q 518.87 30.36 518.06 30.36 Q 516.89 30.36 516.24 31.16 Q 515.6 31.95 515.6 33.4 Q 515.6 34.78 516.29 35.58 Q 516.97 36.38 518.17 36.38 Q 519.19 36.38 520.36 35.75 L 520.36 36.63 Q 519.29 37.18 518.03 37.18 M 518.03 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 522.93 37 L 522.93 29.77 L 524.35 29.77 L 526.36 35.36 L 528.42 29.77 L 529.69 29.77 L 529.69 37 L 528.73 37 L 528.73 31.12 L 526.74 36.52 L 525.75 36.52 L 523.81 31.11 L 523.81 37 M 522.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 34.24 L 535.36 31.12 L 534.13 34.24 M 536.59 34.24 M 537.68 37 L 536.89 35 L 533.83 35 L 533.04 37 L 532.08 37 L 534.95 29.77 L 535.96 29.77 L 538.79 37 M 537.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 544.35 37.18 Q 543.62 37.18 542.49 36.86 L 542.49 35.85 Q 543.71 36.41 544.5 36.41 Q 545.1 36.41 545.47 36.1 Q 545.84 35.78 545.84 35.26 Q 545.84 34.84 545.6 34.54 Q 545.35 34.24 544.71 33.88 L 544.21 33.59 Q 543.28 33.06 542.91 32.59 Q 542.53 32.13 542.53 31.51 Q 542.53 30.67 543.13 30.13 Q 543.74 29.59 544.68 29.59 Q 545.51 29.59 546.44 29.87 L 546.44 30.81 Q 545.3 30.36 544.73 30.36 Q 544.2 30.36 543.86 30.64 Q 543.51 30.93 543.51 31.36 Q 543.51 31.72 543.76 32 Q 544.02 32.27 544.69 32.66 L 545.21 32.95 Q 546.15 33.48 546.52 33.96 Q 546.89 34.43 546.89 35.1 Q 546.89 36.04 546.19 36.61 Q 545.5 37.18 544.35 37.18 M 544.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 37 L 552.5 33.98 L 550.08 29.77 L 551.25 29.77 L 553.13 33.04 L 555.15 29.77 L 556.1 29.77 L 553.52 33.96 L 553.52 37 M 552.5 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 37 L 559.93 29.77 L 560.89 29.77 L 560.89 33.33 L 563.82 29.77 L 564.85 29.77 L 562.02 33.22 L 565.35 37 L 564.05 37 L 560.89 33.34 L 560.89 37 M 559.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 37 L 568.18 29.77 L 569.2 29.77 L 571.44 35.69 L 573.6 29.77 L 574.49 29.77 L 571.87 37 M 570.91 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 37 L 577.93 29.77 L 578.89 29.77 L 578.89 33.33 L 581.82 29.77 L 582.85 29.77 L 580.02 33.22 L 583.35 37 L 582.05 37 L 578.89 33.34 L 578.89 37 M 577.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 37 L 587.93 29.77 L 588.96 29.77 L 588.96 36.23 L 592.21 36.23 L 592.21 37 M 587.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 37 L 597.93 29.77 L 598.95 29.77 L 598.95 37 M 597.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 37 L 606.65 30.54 L 604.09 30.54 L 604.09 29.77 L 610.24 29.77 L 610.24 30.54 L 607.68 30.54 L 607.68 37 M 606.65 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 37 L 613.93 29.77 L 615.9 29.77 Q 617.21 29.77 617.78 30.22 Q 618.35 30.66 618.35 31.67 Q 618.35 32.82 617.57 33.47 Q 616.79 34.13 615.4 34.13 L 614.95 34.13 L 614.95 37 M 613.93 37 M 614.95 33.35 L 615.36 33.35 Q 616.28 33.35 616.77 32.93 Q 617.27 32.51 617.27 31.75 Q 617.27 31.1 616.88 30.82 Q 616.49 30.54 615.58 30.54 L 614.95 30.54 M 614.95 33.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 623.93 37 L 623.93 29.77 L 627.97 29.77 L 627.97 30.54 L 624.96 30.54 L 624.96 32.86 L 627.48 32.86 L 627.48 33.62 L 624.96 33.62 L 624.96 36.23 L 628.18 36.23 L 628.18 37 M 623.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 36.8 Q 636.05 37.18 635.07 37.18 Q 633.35 37.18 632.43 36.2 Q 631.51 35.22 631.51 33.39 Q 631.51 31.59 632.44 30.59 Q 633.37 29.59 635.06 29.59 Q 636.16 29.59 637.35 29.92 L 637.35 30.87 Q 635.86 30.36 635.06 30.36 Q 633.89 30.36 633.24 31.16 Q 632.6 31.95 632.6 33.4 Q 632.6 34.83 633.29 35.62 Q 633.98 36.41 635.23 36.41 Q 635.75 36.41 636.34 36.23 L 636.34 33.88 L 637.36 33.88 M 637.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 640.93 37 L 640.93 29.77 L 642.9 29.77 Q 644.21 29.77 644.78 30.22 Q 645.35 30.66 645.35 31.67 Q 645.35 32.82 644.57 33.47 Q 643.79 34.13 642.4 34.13 L 641.95 34.13 L 641.95 37 M 640.93 37 M 641.95 33.35 L 642.36 33.35 Q 643.28 33.35 643.77 32.93 Q 644.27 32.51 644.27 31.75 Q 644.27 31.1 643.88 30.82 Q 643.49 30.54 642.58 30.54 L 641.95 30.54 M 641.95 33.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 651.93 37 L 651.93 29.77 L 652.95 29.77 L 652.95 37 M 651.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 37 L 659.93 29.77 L 663.97 29.77 L 663.97 30.54 L 660.96 30.54 L 660.96 32.86 L 663.48 32.86 L 663.48 33.62 L 660.96 33.62 L 660.96 36.23 L 664.18 36.23 L 664.18 37 M 659.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 668.93 37 L 668.93 29.77 L 672.97 29.77 L 672.97 30.54 L 669.96 30.54 L 669.96 32.96 L 672.49 32.96 L 672.49 33.72 L 669.96 33.72 L 669.96 37 M 668.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 677.93 37 L 677.93 29.77 L 681.97 29.77 L 681.97 30.54 L 678.96 30.54 L 678.96 32.86 L 681.48 32.86 L 681.48 33.62 L 678.96 33.62 L 678.96 36.23 L 682.18 36.23 L 682.18 37 M 677.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 37.18 Q 687.34 37.18 686.43 36.19 Q 685.51 35.2 685.51 33.39 Q 685.51 31.58 686.44 30.59 Q 687.38 29.59 689.08 29.59 Q 690.05 29.59 691.35 29.91 L 691.35 30.87 Q 689.87 30.36 689.06 30.36 Q 687.89 30.36 687.24 31.16 Q 686.6 31.95 686.6 33.4 Q 686.6 34.78 687.29 35.58 Q 687.97 36.38 689.17 36.38 Q 690.19 36.38 691.36 35.75 L 691.36 36.63 Q 690.29 37.18 689.03 37.18 M 689.03 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 37 L 694.93 29.77 L 696.9 29.77 Q 698.21 29.77 698.78 30.22 Q 699.35 30.66 699.35 31.67 Q 699.35 32.82 698.57 33.47 Q 697.79 34.13 696.4 34.13 L 695.95 34.13 L 695.95 37 M 694.93 37 M 695.95 33.35 L 696.36 33.35 Q 697.28 33.35 697.77 32.93 Q 698.27 32.51 698.27 31.75 Q 698.27 31.1 697.88 30.82 Q 697.49 30.54 696.58 30.54 L 695.95 30.54 M 695.95 33.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 37 L 703.93 29.77 L 706.33 29.77 Q 707.41 29.77 708.07 30.01 Q 708.73 30.25 709.22 30.82 Q 709.98 31.73 709.98 33.22 Q 709.98 35.02 709.03 36.01 Q 708.08 37 706.35 37 M 703.93 37 M 704.96 36.23 L 706.27 36.23 Q 707.68 36.23 708.26 35.48 Q 708.89 34.67 708.89 33.31 Q 708.89 32.04 708.27 31.31 Q 707.9 30.87 707.38 30.7 Q 706.85 30.54 705.8 30.54 L 704.96 30.54 M 704.96 36.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 37 L 712.93 29.77 L 715.33 29.77 Q 716.41 29.77 717.07 30.01 Q 717.73 30.25 718.22 30.82 Q 718.98 31.73 718.98 33.22 Q 718.98 35.02 718.03 36.01 Q 717.08 37 715.35 37 M 712.93 37 M 713.96 36.23 L 715.27 36.23 Q 716.68 36.23 717.26 35.48 Q 717.89 34.67 717.89 33.31 Q 717.89 32.04 717.27 31.31 Q 716.9 30.87 716.38 30.7 Q 715.85 30.54 714.8 30.54 L 713.96 30.54 M 713.96 36.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 37 L 721.18 29.77 L 722.2 29.77 L 724.44 35.69 L 726.6 29.77 L 727.49 29.77 L 724.87 37 M 723.91 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 37 L 732.5 33.98 L 730.08 29.77 L 731.25 29.77 L 733.13 33.04 L 735.15 29.77 L 736.1 29.77 L 733.52 33.96 L 733.52 37 M 732.5 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.93 37 L 741.93 29.77 L 742.95 29.77 L 742.95 37 M 741.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 37 L 749.93 29.77 L 750.96 29.77 L 750.96 36.23 L 754.21 36.23 L 754.21 37 M 749.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 37 L 757.93 29.77 L 760.33 29.77 Q 761.41 29.77 762.07 30.01 Q 762.73 30.25 763.22 30.82 Q 763.98 31.73 763.98 33.22 Q 763.98 35.02 763.03 36.01 Q 762.08 37 760.35 37 M 757.93 37 M 758.96 36.23 L 760.27 36.23 Q 761.68 36.23 762.26 35.48 Q 762.89 34.67 762.89 33.31 Q 762.89 32.04 762.27 31.31 Q 761.9 30.87 761.38 30.7 Q 760.85 30.54 759.8 30.54 L 758.96 30.54 M 758.96 36.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 772.35 38.45 Q 770.64 37.89 769.49 37.13 Q 769.03 37.18 768.78 37.18 Q 767.33 37.18 766.42 36.13 Q 765.51 35.07 765.51 33.39 Q 765.51 31.66 766.43 30.63 Q 767.35 29.59 768.89 29.59 Q 770.43 29.59 771.35 30.63 Q 772.27 31.66 772.27 33.4 Q 772.27 35.89 770.42 36.85 Q 771.66 37.4 773 37.63 M 772.35 38.45 M 768.86 36.41 Q 769.97 36.41 770.57 35.62 Q 771.18 34.82 771.18 33.37 Q 771.18 31.96 770.57 31.16 Q 769.97 30.36 768.89 30.36 Q 767.81 30.36 767.2 31.16 Q 766.6 31.96 766.6 33.38 Q 766.6 34.79 767.2 35.6 Q 767.8 36.41 768.86 36.41 M 768.86 36.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 34.24 L 778.36 31.12 L 777.13 34.24 M 779.59 34.24 M 780.68 37 L 779.89 35 L 776.83 35 L 776.04 37 L 775.08 37 L 777.95 29.77 L 778.96 29.77 L 781.79 37 M 780.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 37 L 785.93 29.77 L 789.97 29.77 L 789.97 30.54 L 786.96 30.54 L 786.96 32.86 L 789.48 32.86 L 789.48 33.62 L 786.96 33.62 L 786.96 36.23 L 790.18 36.23 L 790.18 37 M 785.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 37 L 794.93 29.77 L 798.97 29.77 L 798.97 30.54 L 795.96 30.54 L 795.96 32.86 L 798.48 32.86 L 798.48 33.62 L 795.96 33.62 L 795.96 36.23 L 799.18 36.23 L 799.18 37 M 794.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 803.93 37 L 803.93 29.77 L 807.97 29.77 L 807.97 30.54 L 804.96 30.54 L 804.96 32.86 L 807.48 32.86 L 807.48 33.62 L 804.96 33.62 L 804.96 36.23 L 808.18 36.23 L 808.18 37 M 803.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 36.8 Q 816.05 37.18 815.07 37.18 Q 813.35 37.18 812.43 36.2 Q 811.51 35.22 811.51 33.39 Q 811.51 31.59 812.44 30.59 Q 813.37 29.59 815.06 29.59 Q 816.16 29.59 817.35 29.92 L 817.35 30.87 Q 815.86 30.36 815.06 30.36 Q 813.89 30.36 813.24 31.16 Q 812.6 31.95 812.6 33.4 Q 812.6 34.83 813.29 35.62 Q 813.98 36.41 815.23 36.41 Q 815.75 36.41 816.34 36.23 L 816.34 33.88 L 817.36 33.88 M 817.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 820.93 37 L 820.93 29.77 L 821.96 29.77 L 821.96 32.82 L 825.4 32.82 L 825.4 29.77 L 826.42 29.77 L 826.42 37 L 825.4 37 L 825.4 33.59 L 821.96 33.59 L 821.96 37 M 820.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 37 L 829.93 29.77 L 832.33 29.77 Q 833.41 29.77 834.07 30.01 Q 834.73 30.25 835.22 30.82 Q 835.98 31.73 835.98 33.22 Q 835.98 35.02 835.03 36.01 Q 834.08 37 832.35 37 M 829.93 37 M 830.96 36.23 L 832.27 36.23 Q 833.68 36.23 834.26 35.48 Q 834.89 34.67 834.89 33.31 Q 834.89 32.04 834.27 31.31 Q 833.9 30.87 833.38 30.7 Q 832.85 30.54 831.8 30.54 L 830.96 30.54 M 830.96 36.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 37 L 839.93 29.77 L 840.96 29.77 L 840.96 36.23 L 844.21 36.23 L 844.21 37 M 839.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 37 L 847.93 29.77 L 849.9 29.77 Q 851.21 29.77 851.78 30.22 Q 852.35 30.66 852.35 31.67 Q 852.35 32.82 851.57 33.47 Q 850.79 34.13 849.4 34.13 L 848.95 34.13 L 848.95 37 M 847.93 37 M 848.95 33.35 L 849.36 33.35 Q 850.28 33.35 850.77 32.93 Q 851.27 32.51 851.27 31.75 Q 851.27 31.1 850.88 30.82 Q 850.49 30.54 849.58 30.54 L 848.95 30.54 M 848.95 33.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 37 L 858.5 33.98 L 856.08 29.77 L 857.25 29.77 L 859.13 33.04 L 861.15 29.77 L 862.1 29.77 L 859.52 33.96 L 859.52 37 M 858.5 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 37.18 Q 867.62 37.18 866.49 36.86 L 866.49 35.85 Q 867.71 36.41 868.5 36.41 Q 869.1 36.41 869.47 36.1 Q 869.84 35.78 869.84 35.26 Q 869.84 34.84 869.6 34.54 Q 869.35 34.24 868.71 33.88 L 868.21 33.59 Q 867.28 33.06 866.91 32.59 Q 866.53 32.13 866.53 31.51 Q 866.53 30.67 867.13 30.13 Q 867.74 29.59 868.68 29.59 Q 869.51 29.59 870.44 29.87 L 870.44 30.81 Q 869.3 30.36 868.73 30.36 Q 868.2 30.36 867.86 30.64 Q 867.51 30.93 867.51 31.36 Q 867.51 31.72 867.76 32 Q 868.02 32.27 868.69 32.66 L 869.21 32.95 Q 870.15 33.48 870.52 33.96 Q 870.89 34.43 870.89 35.1 Q 870.89 36.04 870.19 36.61 Q 869.5 37.18 868.35 37.18 M 868.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 37.18 Q 876.34 37.18 875.43 36.19 Q 874.51 35.2 874.51 33.39 Q 874.51 31.58 875.44 30.59 Q 876.38 29.59 878.08 29.59 Q 879.05 29.59 880.35 29.91 L 880.35 30.87 Q 878.87 30.36 878.06 30.36 Q 876.89 30.36 876.24 31.16 Q 875.6 31.95 875.6 33.4 Q 875.6 34.78 876.29 35.58 Q 876.97 36.38 878.17 36.38 Q 879.19 36.38 880.36 35.75 L 880.36 36.63 Q 879.29 37.18 878.03 37.18 M 878.03 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 37 L 883.93 29.77 L 886.12 29.77 Q 887.16 29.77 887.71 30.23 Q 888.27 30.69 888.27 31.57 Q 888.27 33.01 886.81 33.62 L 889.22 37 L 887.96 37 L 885.91 33.94 L 884.95 33.94 L 884.95 37 M 883.93 37 M 884.95 33.18 L 885.28 33.18 Q 887.21 33.18 887.21 31.66 Q 887.21 30.54 885.59 30.54 L 884.95 30.54 M 884.95 33.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 34.24 L 895.36 31.12 L 894.13 34.24 M 896.59 34.24 M 897.68 37 L 896.89 35 L 893.83 35 L 893.04 37 L 892.08 37 L 894.95 29.77 L 895.96 29.77 L 898.79 37 M 897.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 36.8 Q 906.05 37.18 905.07 37.18 Q 903.35 37.18 902.43 36.2 Q 901.51 35.22 901.51 33.39 Q 901.51 31.59 902.44 30.59 Q 903.37 29.59 905.06 29.59 Q 906.16 29.59 907.35 29.92 L 907.35 30.87 Q 905.86 30.36 905.06 30.36 Q 903.89 30.36 903.24 31.16 Q 902.6 31.95 902.6 33.4 Q 902.6 34.83 903.29 35.62 Q 903.98 36.41 905.23 36.41 Q 905.75 36.41 906.34 36.23 L 906.34 33.88 L 907.36 33.88 M 907.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 37.18 Q 912.62 37.18 911.49 36.86 L 911.49 35.85 Q 912.71 36.41 913.5 36.41 Q 914.1 36.41 914.47 36.1 Q 914.84 35.78 914.84 35.26 Q 914.84 34.84 914.6 34.54 Q 914.35 34.24 913.71 33.88 L 913.21 33.59 Q 912.28 33.06 911.91 32.59 Q 911.53 32.13 911.53 31.51 Q 911.53 30.67 912.13 30.13 Q 912.74 29.59 913.68 29.59 Q 914.51 29.59 915.44 29.87 L 915.44 30.81 Q 914.3 30.36 913.73 30.36 Q 913.2 30.36 912.86 30.64 Q 912.51 30.93 912.51 31.36 Q 912.51 31.72 912.76 32 Q 913.02 32.27 913.69 32.66 L 914.21 32.95 Q 915.15 33.48 915.52 33.96 Q 915.89 34.43 915.89 35.1 Q 915.89 36.04 915.19 36.61 Q 914.5 37.18 913.35 37.18 M 913.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 37.18 Q 921.34 37.18 920.43 36.19 Q 919.51 35.2 919.51 33.39 Q 919.51 31.58 920.44 30.59 Q 921.38 29.59 923.08 29.59 Q 924.05 29.59 925.35 29.91 L 925.35 30.87 Q 923.87 30.36 923.06 30.36 Q 921.89 30.36 921.24 31.16 Q 920.6 31.95 920.6 33.4 Q 920.6 34.78 921.29 35.58 Q 921.97 36.38 923.17 36.38 Q 924.19 36.38 925.36 35.75 L 925.36 36.63 Q 924.29 37.18 923.03 37.18 M 923.03 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 37.18 Q 930.62 37.18 929.49 36.86 L 929.49 35.85 Q 930.71 36.41 931.5 36.41 Q 932.1 36.41 932.47 36.1 Q 932.84 35.78 932.84 35.26 Q 932.84 34.84 932.6 34.54 Q 932.35 34.24 931.71 33.88 L 931.21 33.59 Q 930.28 33.06 929.91 32.59 Q 929.53 32.13 929.53 31.51 Q 929.53 30.67 930.13 30.13 Q 930.74 29.59 931.68 29.59 Q 932.51 29.59 933.44 29.87 L 933.44 30.81 Q 932.3 30.36 931.73 30.36 Q 931.2 30.36 930.86 30.64 Q 930.51 30.93 930.51 31.36 Q 930.51 31.72 930.76 32 Q 931.02 32.27 931.69 32.66 L 932.21 32.95 Q 933.15 33.48 933.52 33.96 Q 933.89 34.43 933.89 35.1 Q 933.89 36.04 933.19 36.61 Q 932.5 37.18 931.35 37.18 M 931.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 37.18 Q 939.62 37.18 938.49 36.86 L 938.49 35.85 Q 939.71 36.41 940.5 36.41 Q 941.1 36.41 941.47 36.1 Q 941.84 35.78 941.84 35.26 Q 941.84 34.84 941.6 34.54 Q 941.35 34.24 940.71 33.88 L 940.21 33.59 Q 939.28 33.06 938.91 32.59 Q 938.53 32.13 938.53 31.51 Q 938.53 30.67 939.13 30.13 Q 939.74 29.59 940.68 29.59 Q 941.51 29.59 942.44 29.87 L 942.44 30.81 Q 941.3 30.36 940.73 30.36 Q 940.2 30.36 939.86 30.64 Q 939.51 30.93 939.51 31.36 Q 939.51 31.72 939.76 32 Q 940.02 32.27 940.69 32.66 L 941.21 32.95 Q 942.15 33.48 942.52 33.96 Q 942.89 34.43 942.89 35.1 Q 942.89 36.04 942.19 36.61 Q 941.5 37.18 940.35 37.18 M 940.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 37.18 Q 948.34 37.18 947.43 36.19 Q 946.51 35.2 946.51 33.39 Q 946.51 31.58 947.44 30.59 Q 948.38 29.59 950.08 29.59 Q 951.05 29.59 952.35 29.91 L 952.35 30.87 Q 950.87 30.36 950.06 30.36 Q 948.89 30.36 948.24 31.16 Q 947.6 31.95 947.6 33.4 Q 947.6 34.78 948.29 35.58 Q 948.97 36.38 950.17 36.38 Q 951.19 36.38 952.36 35.75 L 952.36 36.63 Q 951.29 37.18 950.03 37.18 M 950.03 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 34.24 L 958.36 31.12 L 957.13 34.24 M 959.59 34.24 M 960.68 37 L 959.89 35 L 956.83 35 L 956.04 37 L 955.08 37 L 957.95 29.77 L 958.96 29.77 L 961.79 37 M 960.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 36.8 Q 969.05 37.18 968.07 37.18 Q 966.35 37.18 965.43 36.2 Q 964.51 35.22 964.51 33.39 Q 964.51 31.59 965.44 30.59 Q 966.37 29.59 968.06 29.59 Q 969.16 29.59 970.35 29.92 L 970.35 30.87 Q 968.86 30.36 968.06 30.36 Q 966.89 30.36 966.24 31.16 Q 965.6 31.95 965.6 33.4 Q 965.6 34.83 966.29 35.62 Q 966.98 36.41 968.23 36.41 Q 968.75 36.41 969.34 36.23 L 969.34 33.88 L 970.36 33.88 M 970.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 37 L 973.93 29.77 L 974.89 29.77 L 974.89 33.33 L 977.82 29.77 L 978.85 29.77 L 976.02 33.22 L 979.35 37 L 978.05 37 L 974.89 33.34 L 974.89 37 M 973.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 37 L 982.18 29.77 L 983.2 29.77 L 985.44 35.69 L 987.6 29.77 L 988.49 29.77 L 985.87 37 M 984.91 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.65 37 L 993.65 30.54 L 991.09 30.54 L 991.09 29.77 L 997.24 29.77 L 997.24 30.54 L 994.68 30.54 L 994.68 37 M 993.65 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1004.59 34.24 L 1003.36 31.12 L 1002.13 34.24 M 1004.59 34.24 M 1005.68 37 L 1004.89 35 L 1001.83 35 L 1001.04 37 L 1000.08 37 L 1002.95 29.77 L 1003.96 29.77 L 1006.79 37 M 1005.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 36.8 Q 1014.05 37.18 1013.07 37.18 Q 1011.35 37.18 1010.43 36.2 Q 1009.51 35.22 1009.51 33.39 Q 1009.51 31.59 1010.44 30.59 Q 1011.37 29.59 1013.06 29.59 Q 1014.16 29.59 1015.35 29.92 L 1015.35 30.87 Q 1013.86 30.36 1013.06 30.36 Q 1011.89 30.36 1011.24 31.16 Q 1010.6 31.95 1010.6 33.4 Q 1010.6 34.83 1011.29 35.62 Q 1011.98 36.41 1013.23 36.41 Q 1013.75 36.41 1014.34 36.23 L 1014.34 33.88 L 1015.36 33.88 M 1015.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1021.35 37.18 Q 1020.62 37.18 1019.49 36.86 L 1019.49 35.85 Q 1020.71 36.41 1021.5 36.41 Q 1022.1 36.41 1022.47 36.1 Q 1022.84 35.78 1022.84 35.26 Q 1022.84 34.84 1022.6 34.54 Q 1022.35 34.24 1021.71 33.88 L 1021.21 33.59 Q 1020.28 33.06 1019.91 32.59 Q 1019.53 32.13 1019.53 31.51 Q 1019.53 30.67 1020.13 30.13 Q 1020.74 29.59 1021.68 29.59 Q 1022.51 29.59 1023.44 29.87 L 1023.44 30.81 Q 1022.3 30.36 1021.73 30.36 Q 1021.2 30.36 1020.86 30.64 Q 1020.51 30.93 1020.51 31.36 Q 1020.51 31.72 1020.76 32 Q 1021.02 32.27 1021.69 32.66 L 1022.21 32.95 Q 1023.15 33.48 1023.52 33.96 Q 1023.89 34.43 1023.89 35.1 Q 1023.89 36.04 1023.19 36.61 Q 1022.5 37.18 1021.35 37.18 M 1021.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 37 L 1027.18 29.77 L 1028.2 29.77 L 1030.44 35.69 L 1032.6 29.77 L 1033.49 29.77 L 1030.87 37 M 1029.91 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 37 L 1036.93 29.77 L 1039.33 29.77 Q 1040.41 29.77 1041.07 30.01 Q 1041.73 30.25 1042.22 30.82 Q 1042.98 31.73 1042.98 33.22 Q 1042.98 35.02 1042.03 36.01 Q 1041.08 37 1039.35 37 M 1036.93 37 M 1037.96 36.23 L 1039.27 36.23 Q 1040.68 36.23 1041.26 35.48 Q 1041.89 34.67 1041.89 33.31 Q 1041.89 32.04 1041.27 31.31 Q 1040.9 30.87 1040.38 30.7 Q 1039.85 30.54 1038.8 30.54 L 1037.96 30.54 M 1037.96 36.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 38.45 Q 1049.64 37.89 1048.49 37.13 Q 1048.03 37.18 1047.78 37.18 Q 1046.33 37.18 1045.42 36.13 Q 1044.51 35.07 1044.51 33.39 Q 1044.51 31.66 1045.43 30.63 Q 1046.35 29.59 1047.89 29.59 Q 1049.43 29.59 1050.35 30.63 Q 1051.27 31.66 1051.27 33.4 Q 1051.27 35.89 1049.42 36.85 Q 1050.66 37.4 1052 37.63 M 1051.35 38.45 M 1047.86 36.41 Q 1048.97 36.41 1049.57 35.62 Q 1050.18 34.82 1050.18 33.37 Q 1050.18 31.96 1049.57 31.16 Q 1048.97 30.36 1047.89 30.36 Q 1046.81 30.36 1046.2 31.16 Q 1045.6 31.96 1045.6 33.38 Q 1045.6 34.79 1046.2 35.6 Q 1046.8 36.41 1047.86 36.41 M 1047.86 36.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1057.35 37.18 Q 1056.62 37.18 1055.49 36.86 L 1055.49 35.85 Q 1056.71 36.41 1057.5 36.41 Q 1058.1 36.41 1058.47 36.1 Q 1058.84 35.78 1058.84 35.26 Q 1058.84 34.84 1058.6 34.54 Q 1058.35 34.24 1057.71 33.88 L 1057.21 33.59 Q 1056.28 33.06 1055.91 32.59 Q 1055.53 32.13 1055.53 31.51 Q 1055.53 30.67 1056.13 30.13 Q 1056.74 29.59 1057.68 29.59 Q 1058.51 29.59 1059.44 29.87 L 1059.44 30.81 Q 1058.3 30.36 1057.73 30.36 Q 1057.2 30.36 1056.86 30.64 Q 1056.51 30.93 1056.51 31.36 Q 1056.51 31.72 1056.76 32 Q 1057.02 32.27 1057.69 32.66 L 1058.21 32.95 Q 1059.15 33.48 1059.52 33.96 Q 1059.89 34.43 1059.89 35.1 Q 1059.89 36.04 1059.19 36.61 Q 1058.5 37.18 1057.35 37.18 M 1057.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 37 L 1063.93 29.77 L 1066.33 29.77 Q 1067.41 29.77 1068.07 30.01 Q 1068.73 30.25 1069.22 30.82 Q 1069.98 31.73 1069.98 33.22 Q 1069.98 35.02 1069.03 36.01 Q 1068.08 37 1066.35 37 M 1063.93 37 M 1064.96 36.23 L 1066.27 36.23 Q 1067.68 36.23 1068.26 35.48 Q 1068.89 34.67 1068.89 33.31 Q 1068.89 32.04 1068.27 31.31 Q 1067.9 30.87 1067.38 30.7 Q 1066.85 30.54 1065.8 30.54 L 1064.96 30.54 M 1064.96 36.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.36 36.8 Q 1077.05 37.18 1076.07 37.18 Q 1074.35 37.18 1073.43 36.2 Q 1072.51 35.22 1072.51 33.39 Q 1072.51 31.59 1073.44 30.59 Q 1074.37 29.59 1076.06 29.59 Q 1077.16 29.59 1078.35 29.92 L 1078.35 30.87 Q 1076.86 30.36 1076.06 30.36 Q 1074.89 30.36 1074.24 31.16 Q 1073.6 31.95 1073.6 33.4 Q 1073.6 34.83 1074.29 35.62 Q 1074.98 36.41 1076.23 36.41 Q 1076.75 36.41 1077.34 36.23 L 1077.34 33.88 L 1078.36 33.88 M 1078.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1081.93 37 L 1081.93 29.77 L 1082.94 29.77 L 1086.58 35.35 L 1086.58 29.77 L 1087.46 29.77 L 1087.46 37 L 1086.45 37 L 1082.81 31.42 L 1082.81 37 M 1081.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 37 L 1091.93 29.77 L 1095.97 29.77 L 1095.97 30.54 L 1092.96 30.54 L 1092.96 32.96 L 1095.49 32.96 L 1095.49 33.72 L 1092.96 33.72 L 1092.96 37 M 1091.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 37 L 1100.93 29.77 L 1101.96 29.77 L 1101.96 36.23 L 1105.21 36.23 L 1105.21 37 M 1100.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 37 L 1108.93 29.77 L 1111.33 29.77 Q 1112.41 29.77 1113.07 30.01 Q 1113.73 30.25 1114.22 30.82 Q 1114.98 31.73 1114.98 33.22 Q 1114.98 35.02 1114.03 36.01 Q 1113.08 37 1111.35 37 M 1108.93 37 M 1109.96 36.23 L 1111.27 36.23 Q 1112.68 36.23 1113.26 35.48 Q 1113.89 34.67 1113.89 33.31 Q 1113.89 32.04 1113.27 31.31 Q 1112.9 30.87 1112.38 30.7 Q 1111.85 30.54 1110.8 30.54 L 1109.96 30.54 M 1109.96 36.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1118.93 37 L 1118.93 29.77 L 1122.97 29.77 L 1122.97 30.54 L 1119.96 30.54 L 1119.96 32.86 L 1122.48 32.86 L 1122.48 33.62 L 1119.96 33.62 L 1119.96 36.23 L 1123.18 36.23 L 1123.18 37 M 1118.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1126.93 37 L 1126.93 29.77 L 1129.33 29.77 Q 1130.41 29.77 1131.07 30.01 Q 1131.73 30.25 1132.22 30.82 Q 1132.98 31.73 1132.98 33.22 Q 1132.98 35.02 1132.03 36.01 Q 1131.08 37 1129.35 37 M 1126.93 37 M 1127.96 36.23 L 1129.27 36.23 Q 1130.68 36.23 1131.26 35.48 Q 1131.89 34.67 1131.89 33.31 Q 1131.89 32.04 1131.27 31.31 Q 1130.9 30.87 1130.38 30.7 Q 1129.85 30.54 1128.8 30.54 L 1127.96 30.54 M 1127.96 36.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 38.45 Q 1139.64 37.89 1138.49 37.13 Q 1138.03 37.18 1137.78 37.18 Q 1136.33 37.18 1135.42 36.13 Q 1134.51 35.07 1134.51 33.39 Q 1134.51 31.66 1135.43 30.63 Q 1136.35 29.59 1137.89 29.59 Q 1139.43 29.59 1140.35 30.63 Q 1141.27 31.66 1141.27 33.4 Q 1141.27 35.89 1139.42 36.85 Q 1140.66 37.4 1142 37.63 M 1141.35 38.45 M 1137.86 36.41 Q 1138.97 36.41 1139.57 35.62 Q 1140.18 34.82 1140.18 33.37 Q 1140.18 31.96 1139.57 31.16 Q 1138.97 30.36 1137.89 30.36 Q 1136.81 30.36 1136.2 31.16 Q 1135.6 31.96 1135.6 33.38 Q 1135.6 34.79 1136.2 35.6 Q 1136.8 36.41 1137.86 36.41 M 1137.86 36.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1145.93 37 L 1145.93 29.77 L 1149.97 29.77 L 1149.97 30.54 L 1146.96 30.54 L 1146.96 32.86 L 1149.48 32.86 L 1149.48 33.62 L 1146.96 33.62 L 1146.96 36.23 L 1150.18 36.23 L 1150.18 37 M 1145.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1157.59 34.24 L 1156.36 31.12 L 1155.13 34.24 M 1157.59 34.24 M 1158.68 37 L 1157.89 35 L 1154.83 35 L 1154.04 37 L 1153.08 37 L 1155.95 29.77 L 1156.96 29.77 L 1159.79 37 M 1158.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1166.59 34.24 L 1165.36 31.12 L 1164.13 34.24 M 1166.59 34.24 M 1167.68 37 L 1166.89 35 L 1163.83 35 L 1163.04 37 L 1162.08 37 L 1164.95 29.77 L 1165.96 29.77 L 1168.79 37 M 1167.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 36.8 Q 1176.05 37.18 1175.07 37.18 Q 1173.35 37.18 1172.43 36.2 Q 1171.51 35.22 1171.51 33.39 Q 1171.51 31.59 1172.44 30.59 Q 1173.37 29.59 1175.06 29.59 Q 1176.16 29.59 1177.35 29.92 L 1177.35 30.87 Q 1175.86 30.36 1175.06 30.36 Q 1173.89 30.36 1173.24 31.16 Q 1172.6 31.95 1172.6 33.4 Q 1172.6 34.83 1173.29 35.62 Q 1173.98 36.41 1175.23 36.41 Q 1175.75 36.41 1176.34 36.23 L 1176.34 33.88 L 1177.36 33.88 M 1177.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1181.93 37 L 1181.93 29.77 L 1185.97 29.77 L 1185.97 30.54 L 1182.96 30.54 L 1182.96 32.96 L 1185.49 32.96 L 1185.49 33.72 L 1182.96 33.72 L 1182.96 37 M 1181.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 37 L 1189.18 29.77 L 1190.2 29.77 L 1192.44 35.69 L 1194.6 29.77 L 1195.49 29.77 L 1192.87 37 M 1191.91 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 37 L 1199.93 29.77 L 1200.96 29.77 L 1200.96 36.23 L 1204.21 36.23 L 1204.21 37 M 1199.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 37 L 1209.65 30.54 L 1207.09 30.54 L 1207.09 29.77 L 1213.24 29.77 L 1213.24 30.54 L 1210.68 30.54 L 1210.68 37 M 1209.65 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 37.18 Q 1218.34 37.18 1217.43 36.19 Q 1216.51 35.2 1216.51 33.39 Q 1216.51 31.58 1217.44 30.59 Q 1218.38 29.59 1220.08 29.59 Q 1221.05 29.59 1222.35 29.91 L 1222.35 30.87 Q 1220.87 30.36 1220.06 30.36 Q 1218.89 30.36 1218.24 31.16 Q 1217.6 31.95 1217.6 33.4 Q 1217.6 34.78 1218.29 35.58 Q 1218.97 36.38 1220.17 36.38 Q 1221.19 36.38 1222.36 35.75 L 1222.36 36.63 Q 1221.29 37.18 1220.03 37.18 M 1220.03 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1227.91 37 L 1225.18 29.77 L 1226.2 29.77 L 1228.44 35.69 L 1230.6 29.77 L 1231.49 29.77 L 1228.87 37 M 1227.91 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 34.24 L 1237.36 31.12 L 1236.13 34.24 M 1238.59 34.24 M 1239.68 37 L 1238.89 35 L 1235.83 35 L 1235.04 37 L 1234.08 37 L 1236.95 29.77 L 1237.96 29.77 L 1240.79 37 M 1239.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 37 L 1245.5 33.98 L 1243.08 29.77 L 1244.25 29.77 L 1246.13 33.04 L 1248.15 29.77 L 1249.1 29.77 L 1246.52 33.96 L 1246.52 37 M 1245.5 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 37 L 1252.93 29.77 L 1254.9 29.77 Q 1256.21 29.77 1256.78 30.22 Q 1257.35 30.66 1257.35 31.67 Q 1257.35 32.82 1256.57 33.47 Q 1255.79 34.13 1254.4 34.13 L 1253.95 34.13 L 1253.95 37 M 1252.93 37 M 1253.95 33.35 L 1254.36 33.35 Q 1255.28 33.35 1255.77 32.93 Q 1256.27 32.51 1256.27 31.75 Q 1256.27 31.1 1255.88 30.82 Q 1255.49 30.54 1254.58 30.54 L 1253.95 30.54 M 1253.95 33.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1261.93 37 L 1261.93 29.77 L 1262.89 29.77 L 1262.89 33.33 L 1265.82 29.77 L 1266.85 29.77 L 1264.02 33.22 L 1267.35 37 L 1266.05 37 L 1262.89 33.34 L 1262.89 37 M 1261.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1276.36 36.8 Q 1275.05 37.18 1274.07 37.18 Q 1272.35 37.18 1271.43 36.2 Q 1270.51 35.22 1270.51 33.39 Q 1270.51 31.59 1271.44 30.59 Q 1272.37 29.59 1274.06 29.59 Q 1275.16 29.59 1276.35 29.92 L 1276.35 30.87 Q 1274.86 30.36 1274.06 30.36 Q 1272.89 30.36 1272.24 31.16 Q 1271.6 31.95 1271.6 33.4 Q 1271.6 34.83 1272.29 35.62 Q 1272.98 36.41 1274.23 36.41 Q 1274.75 36.41 1275.34 36.23 L 1275.34 33.88 L 1276.36 33.88 M 1276.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 37 L 1279.93 29.77 L 1282.33 29.77 Q 1283.41 29.77 1284.07 30.01 Q 1284.73 30.25 1285.22 30.82 Q 1285.98 31.73 1285.98 33.22 Q 1285.98 35.02 1285.03 36.01 Q 1284.08 37 1282.35 37 M 1279.93 37 M 1280.96 36.23 L 1282.27 36.23 Q 1283.68 36.23 1284.26 35.48 Q 1284.89 34.67 1284.89 33.31 Q 1284.89 32.04 1284.27 31.31 Q 1283.9 30.87 1283.38 30.7 Q 1282.85 30.54 1281.8 30.54 L 1280.96 30.54 M 1280.96 36.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 37 L 1288.18 29.77 L 1289.2 29.77 L 1291.44 35.69 L 1293.6 29.77 L 1294.49 29.77 L 1291.87 37 M 1290.91 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.65 37 L 1299.65 30.54 L 1297.09 30.54 L 1297.09 29.77 L 1303.24 29.77 L 1303.24 30.54 L 1300.68 30.54 L 1300.68 37 M 1299.65 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 37 L 1308.93 29.77 L 1309.95 29.77 L 1309.95 37 M 1308.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 37 L 1316.93 29.77 L 1320.97 29.77 L 1320.97 30.54 L 1317.96 30.54 L 1317.96 32.86 L 1320.48 32.86 L 1320.48 33.62 L 1317.96 33.62 L 1317.96 36.23 L 1321.18 36.23 L 1321.18 37 M 1316.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 37 L 1326.65 30.54 L 1324.09 30.54 L 1324.09 29.77 L 1330.24 29.77 L 1330.24 30.54 L 1327.68 30.54 L 1327.68 37 M 1326.65 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 37 L 1333.93 29.77 L 1334.96 29.77 L 1334.96 32.82 L 1338.4 32.82 L 1338.4 29.77 L 1339.42 29.77 L 1339.42 37 L 1338.4 37 L 1338.4 33.59 L 1334.96 33.59 L 1334.96 37 M 1333.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 37 L 1342.93 29.77 L 1343.89 29.77 L 1343.89 33.33 L 1346.82 29.77 L 1347.85 29.77 L 1345.02 33.22 L 1348.35 37 L 1347.05 37 L 1343.89 33.34 L 1343.89 37 M 1342.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 37 L 1352.93 29.77 L 1356.97 29.77 L 1356.97 30.54 L 1353.96 30.54 L 1353.96 32.86 L 1356.48 32.86 L 1356.48 33.62 L 1353.96 33.62 L 1353.96 36.23 L 1357.18 36.23 L 1357.18 37 M 1352.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1361.93 37 L 1361.93 29.77 L 1365.97 29.77 L 1365.97 30.54 L 1362.96 30.54 L 1362.96 32.86 L 1365.48 32.86 L 1365.48 33.62 L 1362.96 33.62 L 1362.96 36.23 L 1366.18 36.23 L 1366.18 37 M 1361.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1370.93 37 L 1370.93 29.77 L 1374.97 29.77 L 1374.97 30.54 L 1371.96 30.54 L 1371.96 32.86 L 1374.48 32.86 L 1374.48 33.62 L 1371.96 33.62 L 1371.96 36.23 L 1375.18 36.23 L 1375.18 37 M 1370.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1379.93 37 L 1379.93 29.77 L 1380.96 29.77 L 1380.96 36.23 L 1384.21 36.23 L 1384.21 37 M 1379.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.65 37 L 1389.65 30.54 L 1387.09 30.54 L 1387.09 29.77 L 1393.24 29.77 L 1393.24 30.54 L 1390.68 30.54 L 1390.68 37 M 1389.65 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1400.59 34.24 L 1399.36 31.12 L 1398.13 34.24 M 1400.59 34.24 M 1401.68 37 L 1400.89 35 L 1397.83 35 L 1397.04 37 L 1396.08 37 L 1398.95 29.77 L 1399.96 29.77 L 1402.79 37 M 1401.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 34.47 L 1405.72 33.75 L 1410.06 33.75 L 1410.06 34.47 M 1405.72 34.47"/></g><rect x="0" y="39" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="39" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="39" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="39" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="39" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="39" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="39" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="39" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="39" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="39" width="18" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="39" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="39" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="39" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="39" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="39" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="702" y="39" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="39" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="39" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="39" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="39" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="774" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="39" width="27" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="39" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="39" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="39" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="39" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="39" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="39" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="39" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="39" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="39" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="39" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="39" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="39" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="39" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="39" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="39" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="990" y="39" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="39" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="39" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="39" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="39" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="39" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="39" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1080" y="39" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="39" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="39" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="39" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 50 L 0.93 42.77 L 2.35 42.77 L 4.36 48.36 L 6.42 42.77 L 7.69 42.77 L 7.69 50 L 6.73 50 L 6.73 44.12 L 4.74 49.52 L 3.75 49.52 L 1.81 44.11 L 1.81 50 M 0.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 47.24 L 13.36 44.12 L 12.13 47.24 M 14.59 47.24 M 15.68 50 L 14.89 48 L 11.83 48 L 11.04 50 L 10.08 50 L 12.95 42.77 L 13.96 42.77 L 16.79 50 M 15.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 19.72 47.47 L 19.72 46.75 L 24.06 46.75 L 24.06 47.47 M 19.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 28.72 47.47 L 28.72 46.75 L 33.06 46.75 L 33.06 47.47 M 28.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 47.47 L 37.72 46.75 L 42.06 46.75 L 42.06 47.47 M 37.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 47.47 L 46.72 46.75 L 51.06 46.75 L 51.06 47.47 M 46.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 47.47 L 55.72 46.75 L 60.06 46.75 L 60.06 47.47 M 55.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.72 47.47 L 64.72 46.75 L 69.06 46.75 L 69.06 47.47 M 64.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 76.35 50.18 Q 75.62 50.18 74.49 49.86 L 74.49 48.85 Q 75.71 49.41 76.5 49.41 Q 77.1 49.41 77.47 49.1 Q 77.84 48.78 77.84 48.26 Q 77.84 47.84 77.6 47.54 Q 77.35 47.24 76.71 46.88 L 76.21 46.59 Q 75.28 46.06 74.91 45.59 Q 74.53 45.13 74.53 44.51 Q 74.53 43.67 75.13 43.13 Q 75.74 42.59 76.68 42.59 Q 77.51 42.59 78.44 42.87 L 78.44 43.81 Q 77.3 43.36 76.73 43.36 Q 76.2 43.36 75.86 43.64 Q 75.51 43.93 75.51 44.36 Q 75.51 44.72 75.76 45 Q 76.02 45.27 76.69 45.66 L 77.21 45.95 Q 78.15 46.48 78.52 46.96 Q 78.89 47.43 78.89 48.1 Q 78.89 49.04 78.19 49.61 Q 77.5 50.18 76.35 50.18 M 76.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 84.93 50 L 84.93 42.77 L 85.95 42.77 L 85.95 50 M 84.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 94.35 50.18 Q 93.62 50.18 92.49 49.86 L 92.49 48.85 Q 93.71 49.41 94.5 49.41 Q 95.1 49.41 95.47 49.1 Q 95.84 48.78 95.84 48.26 Q 95.84 47.84 95.6 47.54 Q 95.35 47.24 94.71 46.88 L 94.21 46.59 Q 93.28 46.06 92.91 45.59 Q 92.53 45.13 92.53 44.51 Q 92.53 43.67 93.13 43.13 Q 93.74 42.59 94.68 42.59 Q 95.51 42.59 96.44 42.87 L 96.44 43.81 Q 95.3 43.36 94.73 43.36 Q 94.2 43.36 93.86 43.64 Q 93.51 43.93 93.51 44.36 Q 93.51 44.72 93.76 45 Q 94.02 45.27 94.69 45.66 L 95.21 45.95 Q 96.15 46.48 96.52 46.96 Q 96.89 47.43 96.89 48.1 Q 96.89 49.04 96.19 49.61 Q 95.5 50.18 94.35 50.18 M 94.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 106.36 49.8 Q 105.05 50.18 104.07 50.18 Q 102.35 50.18 101.43 49.2 Q 100.51 48.22 100.51 46.39 Q 100.51 44.59 101.44 43.59 Q 102.37 42.59 104.06 42.59 Q 105.16 42.59 106.35 42.92 L 106.35 43.87 Q 104.86 43.36 104.06 43.36 Q 102.89 43.36 102.24 44.16 Q 101.6 44.95 101.6 46.4 Q 101.6 47.83 102.29 48.62 Q 102.98 49.41 104.23 49.41 Q 104.75 49.41 105.34 49.23 L 105.34 46.88 L 106.36 46.88 M 106.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 111.65 50 L 111.65 43.54 L 109.09 43.54 L 109.09 42.77 L 115.24 42.77 L 115.24 43.54 L 112.68 43.54 L 112.68 50 M 111.65 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 117.93 50 L 117.93 42.77 L 119.35 42.77 L 121.36 48.36 L 123.42 42.77 L 124.69 42.77 L 124.69 50 L 123.73 50 L 123.73 44.12 L 121.74 49.52 L 120.75 49.52 L 118.81 44.11 L 118.81 50 M 117.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 129.93 50 L 129.93 42.77 L 130.95 42.77 L 130.95 50 M 129.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 139.35 50.18 Q 138.62 50.18 137.49 49.86 L 137.49 48.85 Q 138.71 49.41 139.5 49.41 Q 140.1 49.41 140.47 49.1 Q 140.84 48.78 140.84 48.26 Q 140.84 47.84 140.6 47.54 Q 140.35 47.24 139.71 46.88 L 139.21 46.59 Q 138.28 46.06 137.91 45.59 Q 137.53 45.13 137.53 44.51 Q 137.53 43.67 138.13 43.13 Q 138.74 42.59 139.68 42.59 Q 140.51 42.59 141.44 42.87 L 141.44 43.81 Q 140.3 43.36 139.73 43.36 Q 139.2 43.36 138.86 43.64 Q 138.51 43.93 138.51 44.36 Q 138.51 44.72 138.76 45 Q 139.02 45.27 139.69 45.66 L 140.21 45.95 Q 141.15 46.48 141.52 46.96 Q 141.89 47.43 141.89 48.1 Q 141.89 49.04 141.19 49.61 Q 140.5 50.18 139.35 50.18 M 139.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 147.65 50 L 147.65 43.54 L 145.09 43.54 L 145.09 42.77 L 151.24 42.77 L 151.24 43.54 L 148.68 43.54 L 148.68 50 M 147.65 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 157.35 50.18 Q 156.62 50.18 155.49 49.86 L 155.49 48.85 Q 156.71 49.41 157.5 49.41 Q 158.1 49.41 158.47 49.1 Q 158.84 48.78 158.84 48.26 Q 158.84 47.84 158.6 47.54 Q 158.35 47.24 157.71 46.88 L 157.21 46.59 Q 156.28 46.06 155.91 45.59 Q 155.53 45.13 155.53 44.51 Q 155.53 43.67 156.13 43.13 Q 156.74 42.59 157.68 42.59 Q 158.51 42.59 159.44 42.87 L 159.44 43.81 Q 158.3 43.36 157.73 43.36 Q 157.2 43.36 156.86 43.64 Q 156.51 43.93 156.51 44.36 Q 156.51 44.72 156.76 45 Q 157.02 45.27 157.69 45.66 L 158.21 45.95 Q 159.15 46.48 159.52 46.96 Q 159.89 47.43 159.89 48.1 Q 159.89 49.04 159.19 49.61 Q 158.5 50.18 157.35 50.18 M 157.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 164.93 50 L 164.93 42.77 L 168.97 42.77 L 168.97 43.54 L 165.96 43.54 L 165.96 45.96 L 168.49 45.96 L 168.49 46.72 L 165.96 46.72 L 165.96 50 M 164.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 173.93 50 L 173.93 42.77 L 174.96 42.77 L 174.96 49.23 L 178.21 49.23 L 178.21 50 M 173.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 50 L 181.93 42.77 L 183.9 42.77 Q 185.21 42.77 185.78 43.22 Q 186.35 43.66 186.35 44.67 Q 186.35 45.82 185.57 46.47 Q 184.79 47.13 183.4 47.13 L 182.95 47.13 L 182.95 50 M 181.93 50 M 182.95 46.35 L 183.36 46.35 Q 184.28 46.35 184.77 45.93 Q 185.27 45.51 185.27 44.75 Q 185.27 44.1 184.88 43.82 Q 184.49 43.54 183.58 43.54 L 182.95 43.54 M 182.95 46.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.93 50 L 190.93 42.77 L 193.12 42.77 Q 194.16 42.77 194.71 43.23 Q 195.27 43.69 195.27 44.57 Q 195.27 46.01 193.81 46.62 L 196.22 50 L 194.96 50 L 192.91 46.94 L 191.95 46.94 L 191.95 50 M 190.93 50 M 191.95 46.18 L 192.28 46.18 Q 194.21 46.18 194.21 44.66 Q 194.21 43.54 192.59 43.54 L 191.95 43.54 M 191.95 46.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 199.93 50 L 199.93 42.77 L 200.89 42.77 L 200.89 46.33 L 203.82 42.77 L 204.85 42.77 L 202.02 46.22 L 205.35 50 L 204.05 50 L 200.89 46.34 L 200.89 50 M 199.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.93 50 L 208.93 42.77 L 210.9 42.77 Q 212.21 42.77 212.78 43.22 Q 213.35 43.66 213.35 44.67 Q 213.35 45.82 212.57 46.47 Q 211.79 47.13 210.4 47.13 L 209.95 47.13 L 209.95 50 M 208.93 50 M 209.95 46.35 L 210.36 46.35 Q 211.28 46.35 211.77 45.93 Q 212.27 45.51 212.27 44.75 Q 212.27 44.1 211.88 43.82 Q 211.49 43.54 210.58 43.54 L 209.95 43.54 M 209.95 46.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 219.91 50 L 217.18 42.77 L 218.2 42.77 L 220.44 48.69 L 222.6 42.77 L 223.49 42.77 L 220.87 50 M 219.91 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 228.91 50 L 226.18 42.77 L 227.2 42.77 L 229.44 48.69 L 231.6 42.77 L 232.49 42.77 L 229.87 50 M 228.91 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 237.65 50 L 237.65 43.54 L 235.09 43.54 L 235.09 42.77 L 241.24 42.77 L 241.24 43.54 L 238.68 43.54 L 238.68 50 M 237.65 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 247.35 50.18 Q 246.62 50.18 245.49 49.86 L 245.49 48.85 Q 246.71 49.41 247.5 49.41 Q 248.1 49.41 248.47 49.1 Q 248.84 48.78 248.84 48.26 Q 248.84 47.84 248.6 47.54 Q 248.35 47.24 247.71 46.88 L 247.21 46.59 Q 246.28 46.06 245.91 45.59 Q 245.53 45.13 245.53 44.51 Q 245.53 43.67 246.13 43.13 Q 246.74 42.59 247.68 42.59 Q 248.51 42.59 249.44 42.87 L 249.44 43.81 Q 248.3 43.36 247.73 43.36 Q 247.2 43.36 246.86 43.64 Q 246.51 43.93 246.51 44.36 Q 246.51 44.72 246.76 45 Q 247.02 45.27 247.69 45.66 L 248.21 45.95 Q 249.15 46.48 249.52 46.96 Q 249.89 47.43 249.89 48.1 Q 249.89 49.04 249.19 49.61 Q 248.5 50.18 247.35 50.18 M 247.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 254.93 50 L 254.93 42.77 L 255.96 42.77 L 255.96 49.23 L 259.21 49.23 L 259.21 50 M 254.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.72 47.47 L 262.72 46.75 L 267.06 46.75 L 267.06 47.47 M 262.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 271.93 50 L 271.93 42.77 L 272.89 42.77 L 272.89 46.33 L 275.82 42.77 L 276.85 42.77 L 274.02 46.22 L 277.35 50 L 276.05 50 L 272.89 46.34 L 272.89 50 M 271.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 284.59 47.24 L 283.36 44.12 L 282.13 47.24 M 284.59 47.24 M 285.68 50 L 284.89 48 L 281.83 48 L 281.04 50 L 280.08 50 L 282.95 42.77 L 283.96 42.77 L 286.79 50 M 285.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 291.93 50 L 291.93 42.77 L 292.95 42.77 L 292.95 50 M 291.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 301.35 50.18 Q 300.62 50.18 299.49 49.86 L 299.49 48.85 Q 300.71 49.41 301.5 49.41 Q 302.1 49.41 302.47 49.1 Q 302.84 48.78 302.84 48.26 Q 302.84 47.84 302.6 47.54 Q 302.35 47.24 301.71 46.88 L 301.21 46.59 Q 300.28 46.06 299.91 45.59 Q 299.53 45.13 299.53 44.51 Q 299.53 43.67 300.13 43.13 Q 300.74 42.59 301.68 42.59 Q 302.51 42.59 303.44 42.87 L 303.44 43.81 Q 302.3 43.36 301.73 43.36 Q 301.2 43.36 300.86 43.64 Q 300.51 43.93 300.51 44.36 Q 300.51 44.72 300.76 45 Q 301.02 45.27 301.69 45.66 L 302.21 45.95 Q 303.15 46.48 303.52 46.96 Q 303.89 47.43 303.89 48.1 Q 303.89 49.04 303.19 49.61 Q 302.5 50.18 301.35 50.18 M 301.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 307.93 50 L 307.93 42.77 L 308.94 42.77 L 312.58 48.35 L 312.58 42.77 L 313.46 42.77 L 313.46 50 L 312.45 50 L 308.81 44.42 L 308.81 50 M 307.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 318.91 50 L 316.18 42.77 L 317.2 42.77 L 319.44 48.69 L 321.6 42.77 L 322.49 42.77 L 319.87 50 M 318.91 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 331.36 49.8 Q 330.05 50.18 329.07 50.18 Q 327.35 50.18 326.43 49.2 Q 325.51 48.22 325.51 46.39 Q 325.51 44.59 326.44 43.59 Q 327.37 42.59 329.06 42.59 Q 330.16 42.59 331.35 42.92 L 331.35 43.87 Q 329.86 43.36 329.06 43.36 Q 327.89 43.36 327.24 44.16 Q 326.6 44.95 326.6 46.4 Q 326.6 47.83 327.29 48.62 Q 327.98 49.41 329.23 49.41 Q 329.75 49.41 330.34 49.23 L 330.34 46.88 L 331.36 46.88 M 331.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 335.93 50 L 335.93 42.77 L 339.97 42.77 L 339.97 43.54 L 336.96 43.54 L 336.96 45.86 L 339.48 45.86 L 339.48 46.62 L 336.96 46.62 L 336.96 49.23 L 340.18 49.23 L 340.18 50 M 335.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 47.47 L 343.72 46.75 L 348.06 46.75 L 348.06 47.47 M 343.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 47.47 L 352.72 46.75 L 357.06 46.75 L 357.06 47.47 M 352.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 365.59 47.24 L 364.36 44.12 L 363.13 47.24 M 365.59 47.24 M 366.68 50 L 365.89 48 L 362.83 48 L 362.04 50 L 361.08 50 L 363.95 42.77 L 364.96 42.77 L 367.79 50 M 366.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 371.93 50 L 371.93 42.77 L 372.96 42.77 L 372.96 49.23 L 376.21 49.23 L 376.21 50 M 371.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 380.93 50 L 380.93 42.77 L 384.97 42.77 L 384.97 43.54 L 381.96 43.54 L 381.96 45.96 L 384.49 45.96 L 384.49 46.72 L 381.96 46.72 L 381.96 50 M 380.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 394.36 49.8 Q 393.05 50.18 392.07 50.18 Q 390.35 50.18 389.43 49.2 Q 388.51 48.22 388.51 46.39 Q 388.51 44.59 389.44 43.59 Q 390.37 42.59 392.06 42.59 Q 393.16 42.59 394.35 42.92 L 394.35 43.87 Q 392.86 43.36 392.06 43.36 Q 390.89 43.36 390.24 44.16 Q 389.6 44.95 389.6 46.4 Q 389.6 47.83 390.29 48.62 Q 390.98 49.41 392.23 49.41 Q 392.75 49.41 393.34 49.23 L 393.34 46.88 L 394.36 46.88 M 394.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 398.93 50 L 398.93 42.77 L 399.96 42.77 L 399.96 49.23 L 403.21 49.23 L 403.21 50 M 398.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.93 50 L 406.93 42.77 L 407.89 42.77 L 407.89 46.33 L 410.82 42.77 L 411.85 42.77 L 409.02 46.22 L 412.35 50 L 411.05 50 L 407.89 46.34 L 407.89 50 M 406.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 418.35 50.18 Q 417.62 50.18 416.49 49.86 L 416.49 48.85 Q 417.71 49.41 418.5 49.41 Q 419.1 49.41 419.47 49.1 Q 419.84 48.78 419.84 48.26 Q 419.84 47.84 419.6 47.54 Q 419.35 47.24 418.71 46.88 L 418.21 46.59 Q 417.28 46.06 416.91 45.59 Q 416.53 45.13 416.53 44.51 Q 416.53 43.67 417.13 43.13 Q 417.74 42.59 418.68 42.59 Q 419.51 42.59 420.44 42.87 L 420.44 43.81 Q 419.3 43.36 418.73 43.36 Q 418.2 43.36 417.86 43.64 Q 417.51 43.93 417.51 44.36 Q 417.51 44.72 417.76 45 Q 418.02 45.27 418.69 45.66 L 419.21 45.95 Q 420.15 46.48 420.52 46.96 Q 420.89 47.43 420.89 48.1 Q 420.89 49.04 420.19 49.61 Q 419.5 50.18 418.35 50.18 M 418.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 47.47 L 424.72 46.75 L 429.06 46.75 L 429.06 47.47 M 424.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 439.36 49.8 Q 438.05 50.18 437.07 50.18 Q 435.35 50.18 434.43 49.2 Q 433.51 48.22 433.51 46.39 Q 433.51 44.59 434.44 43.59 Q 435.37 42.59 437.06 42.59 Q 438.16 42.59 439.35 42.92 L 439.35 43.87 Q 437.86 43.36 437.06 43.36 Q 435.89 43.36 435.24 44.16 Q 434.6 44.95 434.6 46.4 Q 434.6 47.83 435.29 48.62 Q 435.98 49.41 437.23 49.41 Q 437.75 49.41 438.34 49.23 L 438.34 46.88 L 439.36 46.88 M 439.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 442.72 47.47 L 442.72 46.75 L 447.06 46.75 L 447.06 47.47 M 442.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 451.72 47.47 L 451.72 46.75 L 456.06 46.75 L 456.06 47.47 M 451.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.93 50 L 460.93 42.77 L 463.12 42.77 Q 464.16 42.77 464.71 43.23 Q 465.27 43.69 465.27 44.57 Q 465.27 46.01 463.81 46.62 L 466.22 50 L 464.96 50 L 462.91 46.94 L 461.95 46.94 L 461.95 50 M 460.93 50 M 461.95 46.18 L 462.28 46.18 Q 464.21 46.18 464.21 44.66 Q 464.21 43.54 462.59 43.54 L 461.95 43.54 M 461.95 46.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 469.93 50 L 469.93 42.77 L 470.94 42.77 L 474.58 48.35 L 474.58 42.77 L 475.46 42.77 L 475.46 50 L 474.45 50 L 470.81 44.42 L 470.81 50 M 469.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 484.36 49.8 Q 483.05 50.18 482.07 50.18 Q 480.35 50.18 479.43 49.2 Q 478.51 48.22 478.51 46.39 Q 478.51 44.59 479.44 43.59 Q 480.37 42.59 482.06 42.59 Q 483.16 42.59 484.35 42.92 L 484.35 43.87 Q 482.86 43.36 482.06 43.36 Q 480.89 43.36 480.24 44.16 Q 479.6 44.95 479.6 46.4 Q 479.6 47.83 480.29 48.62 Q 480.98 49.41 482.23 49.41 Q 482.75 49.41 483.34 49.23 L 483.34 46.88 L 484.36 46.88 M 484.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 487.93 50 L 487.93 42.77 L 490.12 42.77 Q 491.16 42.77 491.71 43.23 Q 492.27 43.69 492.27 44.57 Q 492.27 46.01 490.81 46.62 L 493.22 50 L 491.96 50 L 489.91 46.94 L 488.95 46.94 L 488.95 50 M 487.93 50 M 488.95 46.18 L 489.28 46.18 Q 491.21 46.18 491.21 44.66 Q 491.21 43.54 489.59 43.54 L 488.95 43.54 M 488.95 46.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 498.93 50 L 498.93 42.77 L 499.95 42.77 L 499.95 50 M 498.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 507.65 50 L 507.65 43.54 L 505.09 43.54 L 505.09 42.77 L 511.24 42.77 L 511.24 43.54 L 508.68 43.54 L 508.68 50 M 507.65 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 518.03 50.18 Q 516.34 50.18 515.43 49.19 Q 514.51 48.2 514.51 46.39 Q 514.51 44.58 515.44 43.59 Q 516.38 42.59 518.08 42.59 Q 519.05 42.59 520.35 42.91 L 520.35 43.87 Q 518.87 43.36 518.06 43.36 Q 516.89 43.36 516.24 44.16 Q 515.6 44.95 515.6 46.4 Q 515.6 47.78 516.29 48.58 Q 516.97 49.38 518.17 49.38 Q 519.19 49.38 520.36 48.75 L 520.36 49.63 Q 519.29 50.18 518.03 50.18 M 518.03 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 522.93 50 L 522.93 42.77 L 524.35 42.77 L 526.36 48.36 L 528.42 42.77 L 529.69 42.77 L 529.69 50 L 528.73 50 L 528.73 44.12 L 526.74 49.52 L 525.75 49.52 L 523.81 44.11 L 523.81 50 M 522.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 47.24 L 535.36 44.12 L 534.13 47.24 M 536.59 47.24 M 537.68 50 L 536.89 48 L 533.83 48 L 533.04 50 L 532.08 50 L 534.95 42.77 L 535.96 42.77 L 538.79 50 M 537.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 544.35 50.18 Q 543.62 50.18 542.49 49.86 L 542.49 48.85 Q 543.71 49.41 544.5 49.41 Q 545.1 49.41 545.47 49.1 Q 545.84 48.78 545.84 48.26 Q 545.84 47.84 545.6 47.54 Q 545.35 47.24 544.71 46.88 L 544.21 46.59 Q 543.28 46.06 542.91 45.59 Q 542.53 45.13 542.53 44.51 Q 542.53 43.67 543.13 43.13 Q 543.74 42.59 544.68 42.59 Q 545.51 42.59 546.44 42.87 L 546.44 43.81 Q 545.3 43.36 544.73 43.36 Q 544.2 43.36 543.86 43.64 Q 543.51 43.93 543.51 44.36 Q 543.51 44.72 543.76 45 Q 544.02 45.27 544.69 45.66 L 545.21 45.95 Q 546.15 46.48 546.52 46.96 Q 546.89 47.43 546.89 48.1 Q 546.89 49.04 546.19 49.61 Q 545.5 50.18 544.35 50.18 M 544.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 50 L 552.5 46.98 L 550.08 42.77 L 551.25 42.77 L 553.13 46.04 L 555.15 42.77 L 556.1 42.77 L 553.52 46.96 L 553.52 50 M 552.5 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 50 L 559.93 42.77 L 560.89 42.77 L 560.89 46.33 L 563.82 42.77 L 564.85 42.77 L 562.02 46.22 L 565.35 50 L 564.05 50 L 560.89 46.34 L 560.89 50 M 559.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 50 L 568.18 42.77 L 569.2 42.77 L 571.44 48.69 L 573.6 42.77 L 574.49 42.77 L 571.87 50 M 570.91 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 50 L 577.93 42.77 L 578.89 42.77 L 578.89 46.33 L 581.82 42.77 L 582.85 42.77 L 580.02 46.22 L 583.35 50 L 582.05 50 L 578.89 46.34 L 578.89 50 M 577.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 50 L 587.93 42.77 L 588.96 42.77 L 588.96 49.23 L 592.21 49.23 L 592.21 50 M 587.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 50 L 597.93 42.77 L 598.95 42.77 L 598.95 50 M 597.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 50 L 606.65 43.54 L 604.09 43.54 L 604.09 42.77 L 610.24 42.77 L 610.24 43.54 L 607.68 43.54 L 607.68 50 M 606.65 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 50 L 613.93 42.77 L 615.9 42.77 Q 617.21 42.77 617.78 43.22 Q 618.35 43.66 618.35 44.67 Q 618.35 45.82 617.57 46.47 Q 616.79 47.13 615.4 47.13 L 614.95 47.13 L 614.95 50 M 613.93 50 M 614.95 46.35 L 615.36 46.35 Q 616.28 46.35 616.77 45.93 Q 617.27 45.51 617.27 44.75 Q 617.27 44.1 616.88 43.82 Q 616.49 43.54 615.58 43.54 L 614.95 43.54 M 614.95 46.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 622.93 50 L 622.93 42.77 L 625.33 42.77 Q 626.41 42.77 627.07 43.01 Q 627.73 43.25 628.22 43.82 Q 628.98 44.73 628.98 46.22 Q 628.98 48.02 628.03 49.01 Q 627.08 50 625.35 50 M 622.93 50 M 623.96 49.23 L 625.27 49.23 Q 626.68 49.23 627.26 48.48 Q 627.89 47.67 627.89 46.31 Q 627.89 45.04 627.27 44.31 Q 626.9 43.87 626.38 43.7 Q 625.85 43.54 624.8 43.54 L 623.96 43.54 M 623.96 49.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 49.8 Q 636.05 50.18 635.07 50.18 Q 633.35 50.18 632.43 49.2 Q 631.51 48.22 631.51 46.39 Q 631.51 44.59 632.44 43.59 Q 633.37 42.59 635.06 42.59 Q 636.16 42.59 637.35 42.92 L 637.35 43.87 Q 635.86 43.36 635.06 43.36 Q 633.89 43.36 633.24 44.16 Q 632.6 44.95 632.6 46.4 Q 632.6 47.83 633.29 48.62 Q 633.98 49.41 635.23 49.41 Q 635.75 49.41 636.34 49.23 L 636.34 46.88 L 637.36 46.88 M 637.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 640.93 50 L 640.93 42.77 L 642.9 42.77 Q 644.21 42.77 644.78 43.22 Q 645.35 43.66 645.35 44.67 Q 645.35 45.82 644.57 46.47 Q 643.79 47.13 642.4 47.13 L 641.95 47.13 L 641.95 50 M 640.93 50 M 641.95 46.35 L 642.36 46.35 Q 643.28 46.35 643.77 45.93 Q 644.27 45.51 644.27 44.75 Q 644.27 44.1 643.88 43.82 Q 643.49 43.54 642.58 43.54 L 641.95 43.54 M 641.95 46.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 651.93 50 L 651.93 42.77 L 652.95 42.77 L 652.95 50 M 651.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 50 L 659.93 42.77 L 663.97 42.77 L 663.97 43.54 L 660.96 43.54 L 660.96 45.86 L 663.48 45.86 L 663.48 46.62 L 660.96 46.62 L 660.96 49.23 L 664.18 49.23 L 664.18 50 M 659.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 668.93 50 L 668.93 42.77 L 672.97 42.77 L 672.97 43.54 L 669.96 43.54 L 669.96 45.96 L 672.49 45.96 L 672.49 46.72 L 669.96 46.72 L 669.96 50 M 668.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 677.93 50 L 677.93 42.77 L 681.97 42.77 L 681.97 43.54 L 678.96 43.54 L 678.96 45.86 L 681.48 45.86 L 681.48 46.62 L 678.96 46.62 L 678.96 49.23 L 682.18 49.23 L 682.18 50 M 677.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 50.18 Q 687.34 50.18 686.43 49.19 Q 685.51 48.2 685.51 46.39 Q 685.51 44.58 686.44 43.59 Q 687.38 42.59 689.08 42.59 Q 690.05 42.59 691.35 42.91 L 691.35 43.87 Q 689.87 43.36 689.06 43.36 Q 687.89 43.36 687.24 44.16 Q 686.6 44.95 686.6 46.4 Q 686.6 47.78 687.29 48.58 Q 687.97 49.38 689.17 49.38 Q 690.19 49.38 691.36 48.75 L 691.36 49.63 Q 690.29 50.18 689.03 50.18 M 689.03 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 50 L 694.93 42.77 L 696.9 42.77 Q 698.21 42.77 698.78 43.22 Q 699.35 43.66 699.35 44.67 Q 699.35 45.82 698.57 46.47 Q 697.79 47.13 696.4 47.13 L 695.95 47.13 L 695.95 50 M 694.93 50 M 695.95 46.35 L 696.36 46.35 Q 697.28 46.35 697.77 45.93 Q 698.27 45.51 698.27 44.75 Q 698.27 44.1 697.88 43.82 Q 697.49 43.54 696.58 43.54 L 695.95 43.54 M 695.95 46.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 50 L 703.93 42.77 L 706.33 42.77 Q 707.41 42.77 708.07 43.01 Q 708.73 43.25 709.22 43.82 Q 709.98 44.73 709.98 46.22 Q 709.98 48.02 709.03 49.01 Q 708.08 50 706.35 50 M 703.93 50 M 704.96 49.23 L 706.27 49.23 Q 707.68 49.23 708.26 48.48 Q 708.89 47.67 708.89 46.31 Q 708.89 45.04 708.27 44.31 Q 707.9 43.87 707.38 43.7 Q 706.85 43.54 705.8 43.54 L 704.96 43.54 M 704.96 49.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 50 L 712.93 42.77 L 715.33 42.77 Q 716.41 42.77 717.07 43.01 Q 717.73 43.25 718.22 43.82 Q 718.98 44.73 718.98 46.22 Q 718.98 48.02 718.03 49.01 Q 717.08 50 715.35 50 M 712.93 50 M 713.96 49.23 L 715.27 49.23 Q 716.68 49.23 717.26 48.48 Q 717.89 47.67 717.89 46.31 Q 717.89 45.04 717.27 44.31 Q 716.9 43.87 716.38 43.7 Q 715.85 43.54 714.8 43.54 L 713.96 43.54 M 713.96 49.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 50 L 721.18 42.77 L 722.2 42.77 L 724.44 48.69 L 726.6 42.77 L 727.49 42.77 L 724.87 50 M 723.91 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 50 L 732.5 46.98 L 730.08 42.77 L 731.25 42.77 L 733.13 46.04 L 735.15 42.77 L 736.1 42.77 L 733.52 46.96 L 733.52 50 M 732.5 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.93 50 L 741.93 42.77 L 742.95 42.77 L 742.95 50 M 741.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 50 L 749.93 42.77 L 750.96 42.77 L 750.96 49.23 L 754.21 49.23 L 754.21 50 M 749.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 50 L 757.93 42.77 L 760.33 42.77 Q 761.41 42.77 762.07 43.01 Q 762.73 43.25 763.22 43.82 Q 763.98 44.73 763.98 46.22 Q 763.98 48.02 763.03 49.01 Q 762.08 50 760.35 50 M 757.93 50 M 758.96 49.23 L 760.27 49.23 Q 761.68 49.23 762.26 48.48 Q 762.89 47.67 762.89 46.31 Q 762.89 45.04 762.27 44.31 Q 761.9 43.87 761.38 43.7 Q 760.85 43.54 759.8 43.54 L 758.96 43.54 M 758.96 49.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 772.35 51.45 Q 770.64 50.89 769.49 50.13 Q 769.03 50.18 768.78 50.18 Q 767.33 50.18 766.42 49.13 Q 765.51 48.07 765.51 46.39 Q 765.51 44.66 766.43 43.63 Q 767.35 42.59 768.89 42.59 Q 770.43 42.59 771.35 43.63 Q 772.27 44.66 772.27 46.4 Q 772.27 48.89 770.42 49.85 Q 771.66 50.4 773 50.63 M 772.35 51.45 M 768.86 49.41 Q 769.97 49.41 770.57 48.62 Q 771.18 47.82 771.18 46.37 Q 771.18 44.96 770.57 44.16 Q 769.97 43.36 768.89 43.36 Q 767.81 43.36 767.2 44.16 Q 766.6 44.96 766.6 46.38 Q 766.6 47.79 767.2 48.6 Q 767.8 49.41 768.86 49.41 M 768.86 49.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 47.24 L 778.36 44.12 L 777.13 47.24 M 779.59 47.24 M 780.68 50 L 779.89 48 L 776.83 48 L 776.04 50 L 775.08 50 L 777.95 42.77 L 778.96 42.77 L 781.79 50 M 780.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 50 L 785.93 42.77 L 789.97 42.77 L 789.97 43.54 L 786.96 43.54 L 786.96 45.86 L 789.48 45.86 L 789.48 46.62 L 786.96 46.62 L 786.96 49.23 L 790.18 49.23 L 790.18 50 M 785.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 50 L 794.93 42.77 L 798.97 42.77 L 798.97 43.54 L 795.96 43.54 L 795.96 45.86 L 798.48 45.86 L 798.48 46.62 L 795.96 46.62 L 795.96 49.23 L 799.18 49.23 L 799.18 50 M 794.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 803.93 50 L 803.93 42.77 L 807.97 42.77 L 807.97 43.54 L 804.96 43.54 L 804.96 45.86 L 807.48 45.86 L 807.48 46.62 L 804.96 46.62 L 804.96 49.23 L 808.18 49.23 L 808.18 50 M 803.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 49.8 Q 816.05 50.18 815.07 50.18 Q 813.35 50.18 812.43 49.2 Q 811.51 48.22 811.51 46.39 Q 811.51 44.59 812.44 43.59 Q 813.37 42.59 815.06 42.59 Q 816.16 42.59 817.35 42.92 L 817.35 43.87 Q 815.86 43.36 815.06 43.36 Q 813.89 43.36 813.24 44.16 Q 812.6 44.95 812.6 46.4 Q 812.6 47.83 813.29 48.62 Q 813.98 49.41 815.23 49.41 Q 815.75 49.41 816.34 49.23 L 816.34 46.88 L 817.36 46.88 M 817.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 820.93 50 L 820.93 42.77 L 821.96 42.77 L 821.96 45.82 L 825.4 45.82 L 825.4 42.77 L 826.42 42.77 L 826.42 50 L 825.4 50 L 825.4 46.59 L 821.96 46.59 L 821.96 50 M 820.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 50 L 829.93 42.77 L 832.33 42.77 Q 833.41 42.77 834.07 43.01 Q 834.73 43.25 835.22 43.82 Q 835.98 44.73 835.98 46.22 Q 835.98 48.02 835.03 49.01 Q 834.08 50 832.35 50 M 829.93 50 M 830.96 49.23 L 832.27 49.23 Q 833.68 49.23 834.26 48.48 Q 834.89 47.67 834.89 46.31 Q 834.89 45.04 834.27 44.31 Q 833.9 43.87 833.38 43.7 Q 832.85 43.54 831.8 43.54 L 830.96 43.54 M 830.96 49.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 50 L 839.93 42.77 L 840.96 42.77 L 840.96 49.23 L 844.21 49.23 L 844.21 50 M 839.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 50 L 847.93 42.77 L 849.9 42.77 Q 851.21 42.77 851.78 43.22 Q 852.35 43.66 852.35 44.67 Q 852.35 45.82 851.57 46.47 Q 850.79 47.13 849.4 47.13 L 848.95 47.13 L 848.95 50 M 847.93 50 M 848.95 46.35 L 849.36 46.35 Q 850.28 46.35 850.77 45.93 Q 851.27 45.51 851.27 44.75 Q 851.27 44.1 850.88 43.82 Q 850.49 43.54 849.58 43.54 L 848.95 43.54 M 848.95 46.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 50 L 858.5 46.98 L 856.08 42.77 L 857.25 42.77 L 859.13 46.04 L 861.15 42.77 L 862.1 42.77 L 859.52 46.96 L 859.52 50 M 858.5 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 50.18 Q 867.62 50.18 866.49 49.86 L 866.49 48.85 Q 867.71 49.41 868.5 49.41 Q 869.1 49.41 869.47 49.1 Q 869.84 48.78 869.84 48.26 Q 869.84 47.84 869.6 47.54 Q 869.35 47.24 868.71 46.88 L 868.21 46.59 Q 867.28 46.06 866.91 45.59 Q 866.53 45.13 866.53 44.51 Q 866.53 43.67 867.13 43.13 Q 867.74 42.59 868.68 42.59 Q 869.51 42.59 870.44 42.87 L 870.44 43.81 Q 869.3 43.36 868.73 43.36 Q 868.2 43.36 867.86 43.64 Q 867.51 43.93 867.51 44.36 Q 867.51 44.72 867.76 45 Q 868.02 45.27 868.69 45.66 L 869.21 45.95 Q 870.15 46.48 870.52 46.96 Q 870.89 47.43 870.89 48.1 Q 870.89 49.04 870.19 49.61 Q 869.5 50.18 868.35 50.18 M 868.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 50.18 Q 876.34 50.18 875.43 49.19 Q 874.51 48.2 874.51 46.39 Q 874.51 44.58 875.44 43.59 Q 876.38 42.59 878.08 42.59 Q 879.05 42.59 880.35 42.91 L 880.35 43.87 Q 878.87 43.36 878.06 43.36 Q 876.89 43.36 876.24 44.16 Q 875.6 44.95 875.6 46.4 Q 875.6 47.78 876.29 48.58 Q 876.97 49.38 878.17 49.38 Q 879.19 49.38 880.36 48.75 L 880.36 49.63 Q 879.29 50.18 878.03 50.18 M 878.03 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 50 L 883.93 42.77 L 886.12 42.77 Q 887.16 42.77 887.71 43.23 Q 888.27 43.69 888.27 44.57 Q 888.27 46.01 886.81 46.62 L 889.22 50 L 887.96 50 L 885.91 46.94 L 884.95 46.94 L 884.95 50 M 883.93 50 M 884.95 46.18 L 885.28 46.18 Q 887.21 46.18 887.21 44.66 Q 887.21 43.54 885.59 43.54 L 884.95 43.54 M 884.95 46.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 47.24 L 895.36 44.12 L 894.13 47.24 M 896.59 47.24 M 897.68 50 L 896.89 48 L 893.83 48 L 893.04 50 L 892.08 50 L 894.95 42.77 L 895.96 42.77 L 898.79 50 M 897.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 49.8 Q 906.05 50.18 905.07 50.18 Q 903.35 50.18 902.43 49.2 Q 901.51 48.22 901.51 46.39 Q 901.51 44.59 902.44 43.59 Q 903.37 42.59 905.06 42.59 Q 906.16 42.59 907.35 42.92 L 907.35 43.87 Q 905.86 43.36 905.06 43.36 Q 903.89 43.36 903.24 44.16 Q 902.6 44.95 902.6 46.4 Q 902.6 47.83 903.29 48.62 Q 903.98 49.41 905.23 49.41 Q 905.75 49.41 906.34 49.23 L 906.34 46.88 L 907.36 46.88 M 907.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 50.18 Q 912.62 50.18 911.49 49.86 L 911.49 48.85 Q 912.71 49.41 913.5 49.41 Q 914.1 49.41 914.47 49.1 Q 914.84 48.78 914.84 48.26 Q 914.84 47.84 914.6 47.54 Q 914.35 47.24 913.71 46.88 L 913.21 46.59 Q 912.28 46.06 911.91 45.59 Q 911.53 45.13 911.53 44.51 Q 911.53 43.67 912.13 43.13 Q 912.74 42.59 913.68 42.59 Q 914.51 42.59 915.44 42.87 L 915.44 43.81 Q 914.3 43.36 913.73 43.36 Q 913.2 43.36 912.86 43.64 Q 912.51 43.93 912.51 44.36 Q 912.51 44.72 912.76 45 Q 913.02 45.27 913.69 45.66 L 914.21 45.95 Q 915.15 46.48 915.52 46.96 Q 915.89 47.43 915.89 48.1 Q 915.89 49.04 915.19 49.61 Q 914.5 50.18 913.35 50.18 M 913.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 50.18 Q 921.34 50.18 920.43 49.19 Q 919.51 48.2 919.51 46.39 Q 919.51 44.58 920.44 43.59 Q 921.38 42.59 923.08 42.59 Q 924.05 42.59 925.35 42.91 L 925.35 43.87 Q 923.87 43.36 923.06 43.36 Q 921.89 43.36 921.24 44.16 Q 920.6 44.95 920.6 46.4 Q 920.6 47.78 921.29 48.58 Q 921.97 49.38 923.17 49.38 Q 924.19 49.38 925.36 48.75 L 925.36 49.63 Q 924.29 50.18 923.03 50.18 M 923.03 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 50.18 Q 930.62 50.18 929.49 49.86 L 929.49 48.85 Q 930.71 49.41 931.5 49.41 Q 932.1 49.41 932.47 49.1 Q 932.84 48.78 932.84 48.26 Q 932.84 47.84 932.6 47.54 Q 932.35 47.24 931.71 46.88 L 931.21 46.59 Q 930.28 46.06 929.91 45.59 Q 929.53 45.13 929.53 44.51 Q 929.53 43.67 930.13 43.13 Q 930.74 42.59 931.68 42.59 Q 932.51 42.59 933.44 42.87 L 933.44 43.81 Q 932.3 43.36 931.73 43.36 Q 931.2 43.36 930.86 43.64 Q 930.51 43.93 930.51 44.36 Q 930.51 44.72 930.76 45 Q 931.02 45.27 931.69 45.66 L 932.21 45.95 Q 933.15 46.48 933.52 46.96 Q 933.89 47.43 933.89 48.1 Q 933.89 49.04 933.19 49.61 Q 932.5 50.18 931.35 50.18 M 931.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 50.18 Q 939.62 50.18 938.49 49.86 L 938.49 48.85 Q 939.71 49.41 940.5 49.41 Q 941.1 49.41 941.47 49.1 Q 941.84 48.78 941.84 48.26 Q 941.84 47.84 941.6 47.54 Q 941.35 47.24 940.71 46.88 L 940.21 46.59 Q 939.28 46.06 938.91 45.59 Q 938.53 45.13 938.53 44.51 Q 938.53 43.67 939.13 43.13 Q 939.74 42.59 940.68 42.59 Q 941.51 42.59 942.44 42.87 L 942.44 43.81 Q 941.3 43.36 940.73 43.36 Q 940.2 43.36 939.86 43.64 Q 939.51 43.93 939.51 44.36 Q 939.51 44.72 939.76 45 Q 940.02 45.27 940.69 45.66 L 941.21 45.95 Q 942.15 46.48 942.52 46.96 Q 942.89 47.43 942.89 48.1 Q 942.89 49.04 942.19 49.61 Q 941.5 50.18 940.35 50.18 M 940.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 50.18 Q 948.34 50.18 947.43 49.19 Q 946.51 48.2 946.51 46.39 Q 946.51 44.58 947.44 43.59 Q 948.38 42.59 950.08 42.59 Q 951.05 42.59 952.35 42.91 L 952.35 43.87 Q 950.87 43.36 950.06 43.36 Q 948.89 43.36 948.24 44.16 Q 947.6 44.95 947.6 46.4 Q 947.6 47.78 948.29 48.58 Q 948.97 49.38 950.17 49.38 Q 951.19 49.38 952.36 48.75 L 952.36 49.63 Q 951.29 50.18 950.03 50.18 M 950.03 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 47.24 L 958.36 44.12 L 957.13 47.24 M 959.59 47.24 M 960.68 50 L 959.89 48 L 956.83 48 L 956.04 50 L 955.08 50 L 957.95 42.77 L 958.96 42.77 L 961.79 50 M 960.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 49.8 Q 969.05 50.18 968.07 50.18 Q 966.35 50.18 965.43 49.2 Q 964.51 48.22 964.51 46.39 Q 964.51 44.59 965.44 43.59 Q 966.37 42.59 968.06 42.59 Q 969.16 42.59 970.35 42.92 L 970.35 43.87 Q 968.86 43.36 968.06 43.36 Q 966.89 43.36 966.24 44.16 Q 965.6 44.95 965.6 46.4 Q 965.6 47.83 966.29 48.62 Q 966.98 49.41 968.23 49.41 Q 968.75 49.41 969.34 49.23 L 969.34 46.88 L 970.36 46.88 M 970.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 50 L 973.93 42.77 L 974.89 42.77 L 974.89 46.33 L 977.82 42.77 L 978.85 42.77 L 976.02 46.22 L 979.35 50 L 978.05 50 L 974.89 46.34 L 974.89 50 M 973.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 50 L 982.18 42.77 L 983.2 42.77 L 985.44 48.69 L 987.6 42.77 L 988.49 42.77 L 985.87 50 M 984.91 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.65 50 L 993.65 43.54 L 991.09 43.54 L 991.09 42.77 L 997.24 42.77 L 997.24 43.54 L 994.68 43.54 L 994.68 50 M 993.65 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1004.59 47.24 L 1003.36 44.12 L 1002.13 47.24 M 1004.59 47.24 M 1005.68 50 L 1004.89 48 L 1001.83 48 L 1001.04 50 L 1000.08 50 L 1002.95 42.77 L 1003.96 42.77 L 1006.79 50 M 1005.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 49.8 Q 1014.05 50.18 1013.07 50.18 Q 1011.35 50.18 1010.43 49.2 Q 1009.51 48.22 1009.51 46.39 Q 1009.51 44.59 1010.44 43.59 Q 1011.37 42.59 1013.06 42.59 Q 1014.16 42.59 1015.35 42.92 L 1015.35 43.87 Q 1013.86 43.36 1013.06 43.36 Q 1011.89 43.36 1011.24 44.16 Q 1010.6 44.95 1010.6 46.4 Q 1010.6 47.83 1011.29 48.62 Q 1011.98 49.41 1013.23 49.41 Q 1013.75 49.41 1014.34 49.23 L 1014.34 46.88 L 1015.36 46.88 M 1015.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1020.65 50 L 1020.65 43.54 L 1018.09 43.54 L 1018.09 42.77 L 1024.24 42.77 L 1024.24 43.54 L 1021.68 43.54 L 1021.68 50 M 1020.65 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 50 L 1027.18 42.77 L 1028.2 42.77 L 1030.44 48.69 L 1032.6 42.77 L 1033.49 42.77 L 1030.87 50 M 1029.91 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 50 L 1036.93 42.77 L 1039.33 42.77 Q 1040.41 42.77 1041.07 43.01 Q 1041.73 43.25 1042.22 43.82 Q 1042.98 44.73 1042.98 46.22 Q 1042.98 48.02 1042.03 49.01 Q 1041.08 50 1039.35 50 M 1036.93 50 M 1037.96 49.23 L 1039.27 49.23 Q 1040.68 49.23 1041.26 48.48 Q 1041.89 47.67 1041.89 46.31 Q 1041.89 45.04 1041.27 44.31 Q 1040.9 43.87 1040.38 43.7 Q 1039.85 43.54 1038.8 43.54 L 1037.96 43.54 M 1037.96 49.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 51.45 Q 1049.64 50.89 1048.49 50.13 Q 1048.03 50.18 1047.78 50.18 Q 1046.33 50.18 1045.42 49.13 Q 1044.51 48.07 1044.51 46.39 Q 1044.51 44.66 1045.43 43.63 Q 1046.35 42.59 1047.89 42.59 Q 1049.43 42.59 1050.35 43.63 Q 1051.27 44.66 1051.27 46.4 Q 1051.27 48.89 1049.42 49.85 Q 1050.66 50.4 1052 50.63 M 1051.35 51.45 M 1047.86 49.41 Q 1048.97 49.41 1049.57 48.62 Q 1050.18 47.82 1050.18 46.37 Q 1050.18 44.96 1049.57 44.16 Q 1048.97 43.36 1047.89 43.36 Q 1046.81 43.36 1046.2 44.16 Q 1045.6 44.96 1045.6 46.38 Q 1045.6 47.79 1046.2 48.6 Q 1046.8 49.41 1047.86 49.41 M 1047.86 49.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1057.35 50.18 Q 1056.62 50.18 1055.49 49.86 L 1055.49 48.85 Q 1056.71 49.41 1057.5 49.41 Q 1058.1 49.41 1058.47 49.1 Q 1058.84 48.78 1058.84 48.26 Q 1058.84 47.84 1058.6 47.54 Q 1058.35 47.24 1057.71 46.88 L 1057.21 46.59 Q 1056.28 46.06 1055.91 45.59 Q 1055.53 45.13 1055.53 44.51 Q 1055.53 43.67 1056.13 43.13 Q 1056.74 42.59 1057.68 42.59 Q 1058.51 42.59 1059.44 42.87 L 1059.44 43.81 Q 1058.3 43.36 1057.73 43.36 Q 1057.2 43.36 1056.86 43.64 Q 1056.51 43.93 1056.51 44.36 Q 1056.51 44.72 1056.76 45 Q 1057.02 45.27 1057.69 45.66 L 1058.21 45.95 Q 1059.15 46.48 1059.52 46.96 Q 1059.89 47.43 1059.89 48.1 Q 1059.89 49.04 1059.19 49.61 Q 1058.5 50.18 1057.35 50.18 M 1057.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 50 L 1063.93 42.77 L 1066.33 42.77 Q 1067.41 42.77 1068.07 43.01 Q 1068.73 43.25 1069.22 43.82 Q 1069.98 44.73 1069.98 46.22 Q 1069.98 48.02 1069.03 49.01 Q 1068.08 50 1066.35 50 M 1063.93 50 M 1064.96 49.23 L 1066.27 49.23 Q 1067.68 49.23 1068.26 48.48 Q 1068.89 47.67 1068.89 46.31 Q 1068.89 45.04 1068.27 44.31 Q 1067.9 43.87 1067.38 43.7 Q 1066.85 43.54 1065.8 43.54 L 1064.96 43.54 M 1064.96 49.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.36 49.8 Q 1077.05 50.18 1076.07 50.18 Q 1074.35 50.18 1073.43 49.2 Q 1072.51 48.22 1072.51 46.39 Q 1072.51 44.59 1073.44 43.59 Q 1074.37 42.59 1076.06 42.59 Q 1077.16 42.59 1078.35 42.92 L 1078.35 43.87 Q 1076.86 43.36 1076.06 43.36 Q 1074.89 43.36 1074.24 44.16 Q 1073.6 44.95 1073.6 46.4 Q 1073.6 47.83 1074.29 48.62 Q 1074.98 49.41 1076.23 49.41 Q 1076.75 49.41 1077.34 49.23 L 1077.34 46.88 L 1078.36 46.88 M 1078.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1081.93 50 L 1081.93 42.77 L 1082.89 42.77 L 1082.89 46.33 L 1085.82 42.77 L 1086.85 42.77 L 1084.02 46.22 L 1087.35 50 L 1086.05 50 L 1082.89 46.34 L 1082.89 50 M 1081.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 50 L 1091.93 42.77 L 1095.97 42.77 L 1095.97 43.54 L 1092.96 43.54 L 1092.96 45.96 L 1095.49 45.96 L 1095.49 46.72 L 1092.96 46.72 L 1092.96 50 M 1091.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 50 L 1100.93 42.77 L 1101.96 42.77 L 1101.96 49.23 L 1105.21 49.23 L 1105.21 50 M 1100.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 50 L 1108.93 42.77 L 1111.33 42.77 Q 1112.41 42.77 1113.07 43.01 Q 1113.73 43.25 1114.22 43.82 Q 1114.98 44.73 1114.98 46.22 Q 1114.98 48.02 1114.03 49.01 Q 1113.08 50 1111.35 50 M 1108.93 50 M 1109.96 49.23 L 1111.27 49.23 Q 1112.68 49.23 1113.26 48.48 Q 1113.89 47.67 1113.89 46.31 Q 1113.89 45.04 1113.27 44.31 Q 1112.9 43.87 1112.38 43.7 Q 1111.85 43.54 1110.8 43.54 L 1109.96 43.54 M 1109.96 49.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 50 L 1117.93 42.77 L 1120.33 42.77 Q 1121.41 42.77 1122.07 43.01 Q 1122.73 43.25 1123.22 43.82 Q 1123.98 44.73 1123.98 46.22 Q 1123.98 48.02 1123.03 49.01 Q 1122.08 50 1120.35 50 M 1117.93 50 M 1118.96 49.23 L 1120.27 49.23 Q 1121.68 49.23 1122.26 48.48 Q 1122.89 47.67 1122.89 46.31 Q 1122.89 45.04 1122.27 44.31 Q 1121.9 43.87 1121.38 43.7 Q 1120.85 43.54 1119.8 43.54 L 1118.96 43.54 M 1118.96 49.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1126.93 50 L 1126.93 42.77 L 1129.33 42.77 Q 1130.41 42.77 1131.07 43.01 Q 1131.73 43.25 1132.22 43.82 Q 1132.98 44.73 1132.98 46.22 Q 1132.98 48.02 1132.03 49.01 Q 1131.08 50 1129.35 50 M 1126.93 50 M 1127.96 49.23 L 1129.27 49.23 Q 1130.68 49.23 1131.26 48.48 Q 1131.89 47.67 1131.89 46.31 Q 1131.89 45.04 1131.27 44.31 Q 1130.9 43.87 1130.38 43.7 Q 1129.85 43.54 1128.8 43.54 L 1127.96 43.54 M 1127.96 49.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 51.45 Q 1139.64 50.89 1138.49 50.13 Q 1138.03 50.18 1137.78 50.18 Q 1136.33 50.18 1135.42 49.13 Q 1134.51 48.07 1134.51 46.39 Q 1134.51 44.66 1135.43 43.63 Q 1136.35 42.59 1137.89 42.59 Q 1139.43 42.59 1140.35 43.63 Q 1141.27 44.66 1141.27 46.4 Q 1141.27 48.89 1139.42 49.85 Q 1140.66 50.4 1142 50.63 M 1141.35 51.45 M 1137.86 49.41 Q 1138.97 49.41 1139.57 48.62 Q 1140.18 47.82 1140.18 46.37 Q 1140.18 44.96 1139.57 44.16 Q 1138.97 43.36 1137.89 43.36 Q 1136.81 43.36 1136.2 44.16 Q 1135.6 44.96 1135.6 46.38 Q 1135.6 47.79 1136.2 48.6 Q 1136.8 49.41 1137.86 49.41 M 1137.86 49.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1145.93 50 L 1145.93 42.77 L 1149.97 42.77 L 1149.97 43.54 L 1146.96 43.54 L 1146.96 45.86 L 1149.48 45.86 L 1149.48 46.62 L 1146.96 46.62 L 1146.96 49.23 L 1150.18 49.23 L 1150.18 50 M 1145.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1157.59 47.24 L 1156.36 44.12 L 1155.13 47.24 M 1157.59 47.24 M 1158.68 50 L 1157.89 48 L 1154.83 48 L 1154.04 50 L 1153.08 50 L 1155.95 42.77 L 1156.96 42.77 L 1159.79 50 M 1158.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1166.59 47.24 L 1165.36 44.12 L 1164.13 47.24 M 1166.59 47.24 M 1167.68 50 L 1166.89 48 L 1163.83 48 L 1163.04 50 L 1162.08 50 L 1164.95 42.77 L 1165.96 42.77 L 1168.79 50 M 1167.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 49.8 Q 1176.05 50.18 1175.07 50.18 Q 1173.35 50.18 1172.43 49.2 Q 1171.51 48.22 1171.51 46.39 Q 1171.51 44.59 1172.44 43.59 Q 1173.37 42.59 1175.06 42.59 Q 1176.16 42.59 1177.35 42.92 L 1177.35 43.87 Q 1175.86 43.36 1175.06 43.36 Q 1173.89 43.36 1173.24 44.16 Q 1172.6 44.95 1172.6 46.4 Q 1172.6 47.83 1173.29 48.62 Q 1173.98 49.41 1175.23 49.41 Q 1175.75 49.41 1176.34 49.23 L 1176.34 46.88 L 1177.36 46.88 M 1177.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1181.93 50 L 1181.93 42.77 L 1185.97 42.77 L 1185.97 43.54 L 1182.96 43.54 L 1182.96 45.96 L 1185.49 45.96 L 1185.49 46.72 L 1182.96 46.72 L 1182.96 50 M 1181.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 50 L 1189.18 42.77 L 1190.2 42.77 L 1192.44 48.69 L 1194.6 42.77 L 1195.49 42.77 L 1192.87 50 M 1191.91 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 50 L 1199.93 42.77 L 1200.96 42.77 L 1200.96 49.23 L 1204.21 49.23 L 1204.21 50 M 1199.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 50 L 1209.65 43.54 L 1207.09 43.54 L 1207.09 42.77 L 1213.24 42.77 L 1213.24 43.54 L 1210.68 43.54 L 1210.68 50 M 1209.65 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 50.18 Q 1218.34 50.18 1217.43 49.19 Q 1216.51 48.2 1216.51 46.39 Q 1216.51 44.58 1217.44 43.59 Q 1218.38 42.59 1220.08 42.59 Q 1221.05 42.59 1222.35 42.91 L 1222.35 43.87 Q 1220.87 43.36 1220.06 43.36 Q 1218.89 43.36 1218.24 44.16 Q 1217.6 44.95 1217.6 46.4 Q 1217.6 47.78 1218.29 48.58 Q 1218.97 49.38 1220.17 49.38 Q 1221.19 49.38 1222.36 48.75 L 1222.36 49.63 Q 1221.29 50.18 1220.03 50.18 M 1220.03 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1227.91 50 L 1225.18 42.77 L 1226.2 42.77 L 1228.44 48.69 L 1230.6 42.77 L 1231.49 42.77 L 1228.87 50 M 1227.91 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 47.24 L 1237.36 44.12 L 1236.13 47.24 M 1238.59 47.24 M 1239.68 50 L 1238.89 48 L 1235.83 48 L 1235.04 50 L 1234.08 50 L 1236.95 42.77 L 1237.96 42.77 L 1240.79 50 M 1239.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 50 L 1245.5 46.98 L 1243.08 42.77 L 1244.25 42.77 L 1246.13 46.04 L 1248.15 42.77 L 1249.1 42.77 L 1246.52 46.96 L 1246.52 50 M 1245.5 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 50 L 1252.93 42.77 L 1254.9 42.77 Q 1256.21 42.77 1256.78 43.22 Q 1257.35 43.66 1257.35 44.67 Q 1257.35 45.82 1256.57 46.47 Q 1255.79 47.13 1254.4 47.13 L 1253.95 47.13 L 1253.95 50 M 1252.93 50 M 1253.95 46.35 L 1254.36 46.35 Q 1255.28 46.35 1255.77 45.93 Q 1256.27 45.51 1256.27 44.75 Q 1256.27 44.1 1255.88 43.82 Q 1255.49 43.54 1254.58 43.54 L 1253.95 43.54 M 1253.95 46.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1261.93 50 L 1261.93 42.77 L 1262.89 42.77 L 1262.89 46.33 L 1265.82 42.77 L 1266.85 42.77 L 1264.02 46.22 L 1267.35 50 L 1266.05 50 L 1262.89 46.34 L 1262.89 50 M 1261.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1274.03 50.18 Q 1272.34 50.18 1271.43 49.19 Q 1270.51 48.2 1270.51 46.39 Q 1270.51 44.58 1271.44 43.59 Q 1272.38 42.59 1274.08 42.59 Q 1275.05 42.59 1276.35 42.91 L 1276.35 43.87 Q 1274.87 43.36 1274.06 43.36 Q 1272.89 43.36 1272.24 44.16 Q 1271.6 44.95 1271.6 46.4 Q 1271.6 47.78 1272.29 48.58 Q 1272.97 49.38 1274.17 49.38 Q 1275.19 49.38 1276.36 48.75 L 1276.36 49.63 Q 1275.29 50.18 1274.03 50.18 M 1274.03 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 50 L 1279.93 42.77 L 1282.33 42.77 Q 1283.41 42.77 1284.07 43.01 Q 1284.73 43.25 1285.22 43.82 Q 1285.98 44.73 1285.98 46.22 Q 1285.98 48.02 1285.03 49.01 Q 1284.08 50 1282.35 50 M 1279.93 50 M 1280.96 49.23 L 1282.27 49.23 Q 1283.68 49.23 1284.26 48.48 Q 1284.89 47.67 1284.89 46.31 Q 1284.89 45.04 1284.27 44.31 Q 1283.9 43.87 1283.38 43.7 Q 1282.85 43.54 1281.8 43.54 L 1280.96 43.54 M 1280.96 49.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 50 L 1288.18 42.77 L 1289.2 42.77 L 1291.44 48.69 L 1293.6 42.77 L 1294.49 42.77 L 1291.87 50 M 1290.91 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.65 50 L 1299.65 43.54 L 1297.09 43.54 L 1297.09 42.77 L 1303.24 42.77 L 1303.24 43.54 L 1300.68 43.54 L 1300.68 50 M 1299.65 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 50 L 1308.93 42.77 L 1309.95 42.77 L 1309.95 50 M 1308.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 50 L 1316.93 42.77 L 1320.97 42.77 L 1320.97 43.54 L 1317.96 43.54 L 1317.96 45.86 L 1320.48 45.86 L 1320.48 46.62 L 1317.96 46.62 L 1317.96 49.23 L 1321.18 49.23 L 1321.18 50 M 1316.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 50 L 1326.65 43.54 L 1324.09 43.54 L 1324.09 42.77 L 1330.24 42.77 L 1330.24 43.54 L 1327.68 43.54 L 1327.68 50 M 1326.65 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 50 L 1333.93 42.77 L 1334.96 42.77 L 1334.96 45.82 L 1338.4 45.82 L 1338.4 42.77 L 1339.42 42.77 L 1339.42 50 L 1338.4 50 L 1338.4 46.59 L 1334.96 46.59 L 1334.96 50 M 1333.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 50 L 1342.93 42.77 L 1343.89 42.77 L 1343.89 46.33 L 1346.82 42.77 L 1347.85 42.77 L 1345.02 46.22 L 1348.35 50 L 1347.05 50 L 1343.89 46.34 L 1343.89 50 M 1342.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 50 L 1352.93 42.77 L 1356.97 42.77 L 1356.97 43.54 L 1353.96 43.54 L 1353.96 45.86 L 1356.48 45.86 L 1356.48 46.62 L 1353.96 46.62 L 1353.96 49.23 L 1357.18 49.23 L 1357.18 50 M 1352.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1361.93 50 L 1361.93 42.77 L 1365.97 42.77 L 1365.97 43.54 L 1362.96 43.54 L 1362.96 45.86 L 1365.48 45.86 L 1365.48 46.62 L 1362.96 46.62 L 1362.96 49.23 L 1366.18 49.23 L 1366.18 50 M 1361.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1370.93 50 L 1370.93 42.77 L 1374.97 42.77 L 1374.97 43.54 L 1371.96 43.54 L 1371.96 45.86 L 1374.48 45.86 L 1374.48 46.62 L 1371.96 46.62 L 1371.96 49.23 L 1375.18 49.23 L 1375.18 50 M 1370.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1379.93 50 L 1379.93 42.77 L 1380.96 42.77 L 1380.96 49.23 L 1384.21 49.23 L 1384.21 50 M 1379.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.65 50 L 1389.65 43.54 L 1387.09 43.54 L 1387.09 42.77 L 1393.24 42.77 L 1393.24 43.54 L 1390.68 43.54 L 1390.68 50 M 1389.65 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1400.59 47.24 L 1399.36 44.12 L 1398.13 47.24 M 1400.59 47.24 M 1401.68 50 L 1400.89 48 L 1397.83 48 L 1397.04 50 L 1396.08 50 L 1398.95 42.77 L 1399.96 42.77 L 1402.79 50 M 1401.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 47.47 L 1405.72 46.75 L 1410.06 46.75 L 1410.06 47.47 M 1405.72 47.47"/></g><rect x="0" y="52" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="52" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="52" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="52" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="52" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="52" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="52" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="52" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="52" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="52" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="52" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="52" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="639" y="52" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="52" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="52" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="52" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="52" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="52" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="702" y="52" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="711" y="52" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="52" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="52" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="52" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="52" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="52" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="774" y="52" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="52" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="801" y="52" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="52" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="52" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="52" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="52" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="52" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="52" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="52" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="52" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="52" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="52" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="52" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="52" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="52" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="52" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="52" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="52" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="52" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="52" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="52" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="52" width="18" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="52" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="52" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="52" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="52" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="52" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="52" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1080" y="52" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="52" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="52" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="52" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="52" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 63 L 0.93 55.77 L 2.35 55.77 L 4.36 61.36 L 6.42 55.77 L 7.69 55.77 L 7.69 63 L 6.73 63 L 6.73 57.12 L 4.74 62.52 L 3.75 62.52 L 1.81 57.11 L 1.81 63 M 0.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 60.24 L 13.36 57.12 L 12.13 60.24 M 14.59 60.24 M 15.68 63 L 14.89 61 L 11.83 61 L 11.04 63 L 10.08 63 L 12.95 55.77 L 13.96 55.77 L 16.79 63 M 15.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 21.65 63 L 21.65 56.54 L 19.09 56.54 L 19.09 55.77 L 25.24 55.77 L 25.24 56.54 L 22.68 56.54 L 22.68 63 M 21.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 30.65 63 L 30.65 56.54 L 28.09 56.54 L 28.09 55.77 L 34.24 55.77 L 34.24 56.54 L 31.68 56.54 L 31.68 63 M 30.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 60.47 L 37.72 59.75 L 42.06 59.75 L 42.06 60.47 M 37.72 60.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 60.47 L 46.72 59.75 L 51.06 59.75 L 51.06 60.47 M 46.72 60.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 60.47 L 55.72 59.75 L 60.06 59.75 L 60.06 60.47 M 55.72 60.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.93 63 L 64.93 55.77 L 66.9 55.77 Q 68.21 55.77 68.78 56.22 Q 69.35 56.66 69.35 57.67 Q 69.35 58.82 68.57 59.47 Q 67.79 60.13 66.4 60.13 L 65.95 60.13 L 65.95 63 M 64.93 63 M 65.95 59.35 L 66.36 59.35 Q 67.28 59.35 67.77 58.93 Q 68.27 58.51 68.27 57.75 Q 68.27 57.1 67.88 56.82 Q 67.49 56.54 66.58 56.54 L 65.95 56.54 M 65.95 59.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 77.59 60.24 L 76.36 57.12 L 75.13 60.24 M 77.59 60.24 M 78.68 63 L 77.89 61 L 74.83 61 L 74.04 63 L 73.08 63 L 75.95 55.77 L 76.96 55.77 L 79.79 63 M 78.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 83.93 63 L 83.93 55.77 L 84.96 55.77 L 84.96 62.23 L 88.21 62.23 L 88.21 63 M 83.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 93.5 63 L 93.5 59.98 L 91.08 55.77 L 92.25 55.77 L 94.13 59.04 L 96.15 55.77 L 97.1 55.77 L 94.52 59.96 L 94.52 63 M 93.5 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 106.36 62.8 Q 105.05 63.18 104.07 63.18 Q 102.35 63.18 101.43 62.2 Q 100.51 61.22 100.51 59.39 Q 100.51 57.59 101.44 56.59 Q 102.37 55.59 104.06 55.59 Q 105.16 55.59 106.35 55.92 L 106.35 56.87 Q 104.86 56.36 104.06 56.36 Q 102.89 56.36 102.24 57.16 Q 101.6 57.95 101.6 59.4 Q 101.6 60.83 102.29 61.62 Q 102.98 62.41 104.23 62.41 Q 104.75 62.41 105.34 62.23 L 105.34 59.88 L 106.36 59.88 M 106.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 111.65 63 L 111.65 56.54 L 109.09 56.54 L 109.09 55.77 L 115.24 55.77 L 115.24 56.54 L 112.68 56.54 L 112.68 63 M 111.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 122.59 60.24 L 121.36 57.12 L 120.13 60.24 M 122.59 60.24 M 123.68 63 L 122.89 61 L 119.83 61 L 119.04 63 L 118.08 63 L 120.95 55.77 L 121.96 55.77 L 124.79 63 M 123.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 129.91 63 L 127.18 55.77 L 128.2 55.77 L 130.44 61.69 L 132.6 55.77 L 133.49 55.77 L 130.87 63 M 129.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 139.35 63.18 Q 138.62 63.18 137.49 62.86 L 137.49 61.85 Q 138.71 62.41 139.5 62.41 Q 140.1 62.41 140.47 62.1 Q 140.84 61.78 140.84 61.26 Q 140.84 60.84 140.6 60.54 Q 140.35 60.24 139.71 59.88 L 139.21 59.59 Q 138.28 59.06 137.91 58.59 Q 137.53 58.13 137.53 57.51 Q 137.53 56.67 138.13 56.13 Q 138.74 55.59 139.68 55.59 Q 140.51 55.59 141.44 55.87 L 141.44 56.81 Q 140.3 56.36 139.73 56.36 Q 139.2 56.36 138.86 56.64 Q 138.51 56.93 138.51 57.36 Q 138.51 57.72 138.76 58 Q 139.02 58.27 139.69 58.66 L 140.21 58.95 Q 141.15 59.48 141.52 59.96 Q 141.89 60.43 141.89 61.1 Q 141.89 62.04 141.19 62.61 Q 140.5 63.18 139.35 63.18 M 139.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 147.65 63 L 147.65 56.54 L 145.09 56.54 L 145.09 55.77 L 151.24 55.77 L 151.24 56.54 L 148.68 56.54 L 148.68 63 M 147.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 157.35 63.18 Q 156.62 63.18 155.49 62.86 L 155.49 61.85 Q 156.71 62.41 157.5 62.41 Q 158.1 62.41 158.47 62.1 Q 158.84 61.78 158.84 61.26 Q 158.84 60.84 158.6 60.54 Q 158.35 60.24 157.71 59.88 L 157.21 59.59 Q 156.28 59.06 155.91 58.59 Q 155.53 58.13 155.53 57.51 Q 155.53 56.67 156.13 56.13 Q 156.74 55.59 157.68 55.59 Q 158.51 55.59 159.44 55.87 L 159.44 56.81 Q 158.3 56.36 157.73 56.36 Q 157.2 56.36 156.86 56.64 Q 156.51 56.93 156.51 57.36 Q 156.51 57.72 156.76 58 Q 157.02 58.27 157.69 58.66 L 158.21 58.95 Q 159.15 59.48 159.52 59.96 Q 159.89 60.43 159.89 61.1 Q 159.89 62.04 159.19 62.61 Q 158.5 63.18 157.35 63.18 M 157.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 164.93 63 L 164.93 55.77 L 168.97 55.77 L 168.97 56.54 L 165.96 56.54 L 165.96 58.96 L 168.49 58.96 L 168.49 59.72 L 165.96 59.72 L 165.96 63 M 164.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 173.93 63 L 173.93 55.77 L 174.96 55.77 L 174.96 62.23 L 178.21 62.23 L 178.21 63 M 173.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 63 L 181.93 55.77 L 184.12 55.77 Q 185.16 55.77 185.71 56.23 Q 186.27 56.69 186.27 57.57 Q 186.27 59.01 184.81 59.62 L 187.22 63 L 185.96 63 L 183.91 59.94 L 182.95 59.94 L 182.95 63 M 181.93 63 M 182.95 59.18 L 183.28 59.18 Q 185.21 59.18 185.21 57.66 Q 185.21 56.54 183.59 56.54 L 182.95 56.54 M 182.95 59.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 192.65 63 L 192.65 56.54 L 190.09 56.54 L 190.09 55.77 L 196.24 55.77 L 196.24 56.54 L 193.68 56.54 L 193.68 63 M 192.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 205.35 64.45 Q 203.64 63.89 202.49 63.13 Q 202.03 63.18 201.78 63.18 Q 200.33 63.18 199.42 62.13 Q 198.51 61.07 198.51 59.39 Q 198.51 57.66 199.43 56.63 Q 200.35 55.59 201.89 55.59 Q 203.43 55.59 204.35 56.63 Q 205.27 57.66 205.27 59.4 Q 205.27 61.89 203.42 62.85 Q 204.66 63.4 206 63.63 M 205.35 64.45 M 201.86 62.41 Q 202.97 62.41 203.57 61.62 Q 204.18 60.82 204.18 59.37 Q 204.18 57.96 203.57 57.16 Q 202.97 56.36 201.89 56.36 Q 200.81 56.36 200.2 57.16 Q 199.6 57.96 199.6 59.38 Q 199.6 60.79 200.2 61.6 Q 200.8 62.41 201.86 62.41 M 201.86 62.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.93 63 L 208.93 55.77 L 210.9 55.77 Q 212.21 55.77 212.78 56.22 Q 213.35 56.66 213.35 57.67 Q 213.35 58.82 212.57 59.47 Q 211.79 60.13 210.4 60.13 L 209.95 60.13 L 209.95 63 M 208.93 63 M 209.95 59.35 L 210.36 59.35 Q 211.28 59.35 211.77 58.93 Q 212.27 58.51 212.27 57.75 Q 212.27 57.1 211.88 56.82 Q 211.49 56.54 210.58 56.54 L 209.95 56.54 M 209.95 59.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 216.93 63 L 216.93 55.77 L 218.35 55.77 L 220.36 61.36 L 222.42 55.77 L 223.69 55.77 L 223.69 63 L 222.73 63 L 222.73 57.12 L 220.74 62.52 L 219.75 62.52 L 217.81 57.11 L 217.81 63 M 216.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.93 63 L 226.93 55.77 L 228.9 55.77 Q 230.21 55.77 230.78 56.22 Q 231.35 56.66 231.35 57.67 Q 231.35 58.82 230.57 59.47 Q 229.79 60.13 228.4 60.13 L 227.95 60.13 L 227.95 63 M 226.93 63 M 227.95 59.35 L 228.36 59.35 Q 229.28 59.35 229.77 58.93 Q 230.27 58.51 230.27 57.75 Q 230.27 57.1 229.88 56.82 Q 229.49 56.54 228.58 56.54 L 227.95 56.54 M 227.95 59.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 234.93 63 L 234.93 55.77 L 236.35 55.77 L 238.36 61.36 L 240.42 55.77 L 241.69 55.77 L 241.69 63 L 240.73 63 L 240.73 57.12 L 238.74 62.52 L 237.75 62.52 L 235.81 57.11 L 235.81 63 M 234.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 247.35 63.18 Q 246.62 63.18 245.49 62.86 L 245.49 61.85 Q 246.71 62.41 247.5 62.41 Q 248.1 62.41 248.47 62.1 Q 248.84 61.78 248.84 61.26 Q 248.84 60.84 248.6 60.54 Q 248.35 60.24 247.71 59.88 L 247.21 59.59 Q 246.28 59.06 245.91 58.59 Q 245.53 58.13 245.53 57.51 Q 245.53 56.67 246.13 56.13 Q 246.74 55.59 247.68 55.59 Q 248.51 55.59 249.44 55.87 L 249.44 56.81 Q 248.3 56.36 247.73 56.36 Q 247.2 56.36 246.86 56.64 Q 246.51 56.93 246.51 57.36 Q 246.51 57.72 246.76 58 Q 247.02 58.27 247.69 58.66 L 248.21 58.95 Q 249.15 59.48 249.52 59.96 Q 249.89 60.43 249.89 61.1 Q 249.89 62.04 249.19 62.61 Q 248.5 63.18 247.35 63.18 M 247.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 255.91 63 L 253.18 55.77 L 254.2 55.77 L 256.44 61.69 L 258.6 55.77 L 259.49 55.77 L 256.87 63 M 255.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.72 60.47 L 262.72 59.75 L 267.06 59.75 L 267.06 60.47 M 262.72 60.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 273.65 63 L 273.65 56.54 L 271.09 56.54 L 271.09 55.77 L 277.24 55.77 L 277.24 56.54 L 274.68 56.54 L 274.68 63 M 273.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 282.65 63 L 282.65 56.54 L 280.09 56.54 L 280.09 55.77 L 286.24 55.77 L 286.24 56.54 L 283.68 56.54 L 283.68 63 M 282.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 291.65 63 L 291.65 56.54 L 289.09 56.54 L 289.09 55.77 L 295.24 55.77 L 295.24 56.54 L 292.68 56.54 L 292.68 63 M 291.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 298.93 63 L 298.93 55.77 L 299.89 55.77 L 299.89 59.33 L 302.82 55.77 L 303.85 55.77 L 301.02 59.22 L 304.35 63 L 303.05 63 L 299.89 59.34 L 299.89 63 M 298.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 311.59 60.24 L 310.36 57.12 L 309.13 60.24 M 311.59 60.24 M 312.68 63 L 311.89 61 L 308.83 61 L 308.04 63 L 307.08 63 L 309.95 55.77 L 310.96 55.77 L 313.79 63 M 312.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 317.93 63 L 317.93 55.77 L 321.97 55.77 L 321.97 56.54 L 318.96 56.54 L 318.96 58.96 L 321.49 58.96 L 321.49 59.72 L 318.96 59.72 L 318.96 63 M 317.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 328.35 63.18 Q 327.62 63.18 326.49 62.86 L 326.49 61.85 Q 327.71 62.41 328.5 62.41 Q 329.1 62.41 329.47 62.1 Q 329.84 61.78 329.84 61.26 Q 329.84 60.84 329.6 60.54 Q 329.35 60.24 328.71 59.88 L 328.21 59.59 Q 327.28 59.06 326.91 58.59 Q 326.53 58.13 326.53 57.51 Q 326.53 56.67 327.13 56.13 Q 327.74 55.59 328.68 55.59 Q 329.51 55.59 330.44 55.87 L 330.44 56.81 Q 329.3 56.36 328.73 56.36 Q 328.2 56.36 327.86 56.64 Q 327.51 56.93 327.51 57.36 Q 327.51 57.72 327.76 58 Q 328.02 58.27 328.69 58.66 L 329.21 58.95 Q 330.15 59.48 330.52 59.96 Q 330.89 60.43 330.89 61.1 Q 330.89 62.04 330.19 62.61 Q 329.5 63.18 328.35 63.18 M 328.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 334.93 63 L 334.93 55.77 L 335.94 55.77 L 339.58 61.35 L 339.58 55.77 L 340.46 55.77 L 340.46 63 L 339.45 63 L 335.81 57.42 L 335.81 63 M 334.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 60.47 L 343.72 59.75 L 348.06 59.75 L 348.06 60.47 M 343.72 60.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 60.47 L 352.72 59.75 L 357.06 59.75 L 357.06 60.47 M 352.72 60.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 367.36 62.8 Q 366.05 63.18 365.07 63.18 Q 363.35 63.18 362.43 62.2 Q 361.51 61.22 361.51 59.39 Q 361.51 57.59 362.44 56.59 Q 363.37 55.59 365.06 55.59 Q 366.16 55.59 367.35 55.92 L 367.35 56.87 Q 365.86 56.36 365.06 56.36 Q 363.89 56.36 363.24 57.16 Q 362.6 57.95 362.6 59.4 Q 362.6 60.83 363.29 61.62 Q 363.98 62.41 365.23 62.41 Q 365.75 62.41 366.34 62.23 L 366.34 59.88 L 367.36 59.88 M 367.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 371.93 63 L 371.93 55.77 L 375.97 55.77 L 375.97 56.54 L 372.96 56.54 L 372.96 58.96 L 375.49 58.96 L 375.49 59.72 L 372.96 59.72 L 372.96 63 M 371.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 380.93 63 L 380.93 55.77 L 381.96 55.77 L 381.96 62.23 L 385.21 62.23 L 385.21 63 M 380.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 394.36 62.8 Q 393.05 63.18 392.07 63.18 Q 390.35 63.18 389.43 62.2 Q 388.51 61.22 388.51 59.39 Q 388.51 57.59 389.44 56.59 Q 390.37 55.59 392.06 55.59 Q 393.16 55.59 394.35 55.92 L 394.35 56.87 Q 392.86 56.36 392.06 56.36 Q 390.89 56.36 390.24 57.16 Q 389.6 57.95 389.6 59.4 Q 389.6 60.83 390.29 61.62 Q 390.98 62.41 392.23 62.41 Q 392.75 62.41 393.34 62.23 L 393.34 59.88 L 394.36 59.88 M 394.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 398.93 63 L 398.93 55.77 L 399.96 55.77 L 399.96 62.23 L 403.21 62.23 L 403.21 63 M 398.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.93 63 L 406.93 55.77 L 407.89 55.77 L 407.89 59.33 L 410.82 55.77 L 411.85 55.77 L 409.02 59.22 L 412.35 63 L 411.05 63 L 407.89 59.34 L 407.89 63 M 406.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 417.65 63 L 417.65 56.54 L 415.09 56.54 L 415.09 55.77 L 421.24 55.77 L 421.24 56.54 L 418.68 56.54 L 418.68 63 M 417.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 60.47 L 424.72 59.75 L 429.06 59.75 L 429.06 60.47 M 424.72 60.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 436.35 63.18 Q 435.62 63.18 434.49 62.86 L 434.49 61.85 Q 435.71 62.41 436.5 62.41 Q 437.1 62.41 437.47 62.1 Q 437.84 61.78 437.84 61.26 Q 437.84 60.84 437.6 60.54 Q 437.35 60.24 436.71 59.88 L 436.21 59.59 Q 435.28 59.06 434.91 58.59 Q 434.53 58.13 434.53 57.51 Q 434.53 56.67 435.13 56.13 Q 435.74 55.59 436.68 55.59 Q 437.51 55.59 438.44 55.87 L 438.44 56.81 Q 437.3 56.36 436.73 56.36 Q 436.2 56.36 435.86 56.64 Q 435.51 56.93 435.51 57.36 Q 435.51 57.72 435.76 58 Q 436.02 58.27 436.69 58.66 L 437.21 58.95 Q 438.15 59.48 438.52 59.96 Q 438.89 60.43 438.89 61.1 Q 438.89 62.04 438.19 62.61 Q 437.5 63.18 436.35 63.18 M 436.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 443.93 63 L 443.93 55.77 L 444.96 55.77 L 444.96 62.23 L 448.21 62.23 L 448.21 63 M 443.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 451.93 63 L 451.93 55.77 L 452.89 55.77 L 452.89 59.33 L 455.82 55.77 L 456.85 55.77 L 454.02 59.22 L 457.35 63 L 456.05 63 L 452.89 59.34 L 452.89 63 M 451.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.93 63 L 460.93 55.77 L 463.12 55.77 Q 464.16 55.77 464.71 56.23 Q 465.27 56.69 465.27 57.57 Q 465.27 59.01 463.81 59.62 L 466.22 63 L 464.96 63 L 462.91 59.94 L 461.95 59.94 L 461.95 63 M 460.93 63 M 461.95 59.18 L 462.28 59.18 Q 464.21 59.18 464.21 57.66 Q 464.21 56.54 462.59 56.54 L 461.95 56.54 M 461.95 59.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 475.36 62.8 Q 474.05 63.18 473.07 63.18 Q 471.35 63.18 470.43 62.2 Q 469.51 61.22 469.51 59.39 Q 469.51 57.59 470.44 56.59 Q 471.37 55.59 473.06 55.59 Q 474.16 55.59 475.35 55.92 L 475.35 56.87 Q 473.86 56.36 473.06 56.36 Q 471.89 56.36 471.24 57.16 Q 470.6 57.95 470.6 59.4 Q 470.6 60.83 471.29 61.62 Q 471.98 62.41 473.23 62.41 Q 473.75 62.41 474.34 62.23 L 474.34 59.88 L 475.36 59.88 M 475.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 478.93 63 L 478.93 55.77 L 481.33 55.77 Q 482.41 55.77 483.07 56.01 Q 483.73 56.25 484.22 56.82 Q 484.98 57.73 484.98 59.22 Q 484.98 61.02 484.03 62.01 Q 483.08 63 481.35 63 M 478.93 63 M 479.96 62.23 L 481.27 62.23 Q 482.68 62.23 483.26 61.48 Q 483.89 60.67 483.89 59.31 Q 483.89 58.04 483.27 57.31 Q 482.9 56.87 482.38 56.7 Q 481.85 56.54 480.8 56.54 L 479.96 56.54 M 479.96 62.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 488.93 63 L 488.93 55.77 L 489.96 55.77 L 489.96 62.23 L 493.21 62.23 L 493.21 63 M 488.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 500.59 60.24 L 499.36 57.12 L 498.13 60.24 M 500.59 60.24 M 501.68 63 L 500.89 61 L 497.83 61 L 497.04 63 L 496.08 63 L 498.95 55.77 L 499.96 55.77 L 502.79 63 M 501.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 507.91 63 L 505.18 55.77 L 506.2 55.77 L 508.44 61.69 L 510.6 55.77 L 511.49 55.77 L 508.87 63 M 507.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 518.59 60.24 L 517.36 57.12 L 516.13 60.24 M 518.59 60.24 M 519.68 63 L 518.89 61 L 515.83 61 L 515.04 63 L 514.08 63 L 516.95 55.77 L 517.96 55.77 L 520.79 63 M 519.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 522.93 63 L 522.93 55.77 L 524.35 55.77 L 526.36 61.36 L 528.42 55.77 L 529.69 55.77 L 529.69 63 L 528.73 63 L 528.73 57.12 L 526.74 62.52 L 525.75 62.52 L 523.81 57.11 L 523.81 63 M 522.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 60.24 L 535.36 57.12 L 534.13 60.24 M 536.59 60.24 M 537.68 63 L 536.89 61 L 533.83 61 L 533.04 63 L 532.08 63 L 534.95 55.77 L 535.96 55.77 L 538.79 63 M 537.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 544.35 63.18 Q 543.62 63.18 542.49 62.86 L 542.49 61.85 Q 543.71 62.41 544.5 62.41 Q 545.1 62.41 545.47 62.1 Q 545.84 61.78 545.84 61.26 Q 545.84 60.84 545.6 60.54 Q 545.35 60.24 544.71 59.88 L 544.21 59.59 Q 543.28 59.06 542.91 58.59 Q 542.53 58.13 542.53 57.51 Q 542.53 56.67 543.13 56.13 Q 543.74 55.59 544.68 55.59 Q 545.51 55.59 546.44 55.87 L 546.44 56.81 Q 545.3 56.36 544.73 56.36 Q 544.2 56.36 543.86 56.64 Q 543.51 56.93 543.51 57.36 Q 543.51 57.72 543.76 58 Q 544.02 58.27 544.69 58.66 L 545.21 58.95 Q 546.15 59.48 546.52 59.96 Q 546.89 60.43 546.89 61.1 Q 546.89 62.04 546.19 62.61 Q 545.5 63.18 544.35 63.18 M 544.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 63 L 552.5 59.98 L 550.08 55.77 L 551.25 55.77 L 553.13 59.04 L 555.15 55.77 L 556.1 55.77 L 553.52 59.96 L 553.52 63 M 552.5 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 63 L 559.93 55.77 L 560.89 55.77 L 560.89 59.33 L 563.82 55.77 L 564.85 55.77 L 562.02 59.22 L 565.35 63 L 564.05 63 L 560.89 59.34 L 560.89 63 M 559.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 63 L 568.18 55.77 L 569.2 55.77 L 571.44 61.69 L 573.6 55.77 L 574.49 55.77 L 571.87 63 M 570.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 63 L 577.93 55.77 L 578.89 55.77 L 578.89 59.33 L 581.82 55.77 L 582.85 55.77 L 580.02 59.22 L 583.35 63 L 582.05 63 L 578.89 59.34 L 578.89 63 M 577.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 63 L 587.93 55.77 L 588.96 55.77 L 588.96 62.23 L 592.21 62.23 L 592.21 63 M 587.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.91 63 L 595.18 55.77 L 596.2 55.77 L 598.44 61.69 L 600.6 55.77 L 601.49 55.77 L 598.87 63 M 597.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 63 L 606.65 56.54 L 604.09 56.54 L 604.09 55.77 L 610.24 55.77 L 610.24 56.54 L 607.68 56.54 L 607.68 63 M 606.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 63 L 613.93 55.77 L 615.9 55.77 Q 617.21 55.77 617.78 56.22 Q 618.35 56.66 618.35 57.67 Q 618.35 58.82 617.57 59.47 Q 616.79 60.13 615.4 60.13 L 614.95 60.13 L 614.95 63 M 613.93 63 M 614.95 59.35 L 615.36 59.35 Q 616.28 59.35 616.77 58.93 Q 617.27 58.51 617.27 57.75 Q 617.27 57.1 616.88 56.82 Q 616.49 56.54 615.58 56.54 L 614.95 56.54 M 614.95 59.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 622.93 63 L 622.93 55.77 L 625.33 55.77 Q 626.41 55.77 627.07 56.01 Q 627.73 56.25 628.22 56.82 Q 628.98 57.73 628.98 59.22 Q 628.98 61.02 628.03 62.01 Q 627.08 63 625.35 63 M 622.93 63 M 623.96 62.23 L 625.27 62.23 Q 626.68 62.23 627.26 61.48 Q 627.89 60.67 627.89 59.31 Q 627.89 58.04 627.27 57.31 Q 626.9 56.87 626.38 56.7 Q 625.85 56.54 624.8 56.54 L 623.96 56.54 M 623.96 62.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 62.8 Q 636.05 63.18 635.07 63.18 Q 633.35 63.18 632.43 62.2 Q 631.51 61.22 631.51 59.39 Q 631.51 57.59 632.44 56.59 Q 633.37 55.59 635.06 55.59 Q 636.16 55.59 637.35 55.92 L 637.35 56.87 Q 635.86 56.36 635.06 56.36 Q 633.89 56.36 633.24 57.16 Q 632.6 57.95 632.6 59.4 Q 632.6 60.83 633.29 61.62 Q 633.98 62.41 635.23 62.41 Q 635.75 62.41 636.34 62.23 L 636.34 59.88 L 637.36 59.88 M 637.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 642.65 63 L 642.65 56.54 L 640.09 56.54 L 640.09 55.77 L 646.24 55.77 L 646.24 56.54 L 643.68 56.54 L 643.68 63 M 642.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 655.35 64.45 Q 653.64 63.89 652.49 63.13 Q 652.03 63.18 651.78 63.18 Q 650.33 63.18 649.42 62.13 Q 648.51 61.07 648.51 59.39 Q 648.51 57.66 649.43 56.63 Q 650.35 55.59 651.89 55.59 Q 653.43 55.59 654.35 56.63 Q 655.27 57.66 655.27 59.4 Q 655.27 61.89 653.42 62.85 Q 654.66 63.4 656 63.63 M 655.35 64.45 M 651.86 62.41 Q 652.97 62.41 653.57 61.62 Q 654.18 60.82 654.18 59.37 Q 654.18 57.96 653.57 57.16 Q 652.97 56.36 651.89 56.36 Q 650.81 56.36 650.2 57.16 Q 649.6 57.96 649.6 59.38 Q 649.6 60.79 650.2 61.6 Q 650.8 62.41 651.86 62.41 M 651.86 62.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 63 L 659.93 55.77 L 663.97 55.77 L 663.97 56.54 L 660.96 56.54 L 660.96 58.86 L 663.48 58.86 L 663.48 59.62 L 660.96 59.62 L 660.96 62.23 L 664.18 62.23 L 664.18 63 M 659.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 668.93 63 L 668.93 55.77 L 672.97 55.77 L 672.97 56.54 L 669.96 56.54 L 669.96 58.96 L 672.49 58.96 L 672.49 59.72 L 669.96 59.72 L 669.96 63 M 668.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 677.93 63 L 677.93 55.77 L 681.97 55.77 L 681.97 56.54 L 678.96 56.54 L 678.96 58.86 L 681.48 58.86 L 681.48 59.62 L 678.96 59.62 L 678.96 62.23 L 682.18 62.23 L 682.18 63 M 677.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 63.18 Q 687.34 63.18 686.43 62.19 Q 685.51 61.2 685.51 59.39 Q 685.51 57.58 686.44 56.59 Q 687.38 55.59 689.08 55.59 Q 690.05 55.59 691.35 55.91 L 691.35 56.87 Q 689.87 56.36 689.06 56.36 Q 687.89 56.36 687.24 57.16 Q 686.6 57.95 686.6 59.4 Q 686.6 60.78 687.29 61.58 Q 687.97 62.38 689.17 62.38 Q 690.19 62.38 691.36 61.75 L 691.36 62.63 Q 690.29 63.18 689.03 63.18 M 689.03 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 63 L 694.93 55.77 L 696.9 55.77 Q 698.21 55.77 698.78 56.22 Q 699.35 56.66 699.35 57.67 Q 699.35 58.82 698.57 59.47 Q 697.79 60.13 696.4 60.13 L 695.95 60.13 L 695.95 63 M 694.93 63 M 695.95 59.35 L 696.36 59.35 Q 697.28 59.35 697.77 58.93 Q 698.27 58.51 698.27 57.75 Q 698.27 57.1 697.88 56.82 Q 697.49 56.54 696.58 56.54 L 695.95 56.54 M 695.95 59.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 706.35 63.18 Q 705.62 63.18 704.49 62.86 L 704.49 61.85 Q 705.71 62.41 706.5 62.41 Q 707.1 62.41 707.47 62.1 Q 707.84 61.78 707.84 61.26 Q 707.84 60.84 707.6 60.54 Q 707.35 60.24 706.71 59.88 L 706.21 59.59 Q 705.28 59.06 704.91 58.59 Q 704.53 58.13 704.53 57.51 Q 704.53 56.67 705.13 56.13 Q 705.74 55.59 706.68 55.59 Q 707.51 55.59 708.44 55.87 L 708.44 56.81 Q 707.3 56.36 706.73 56.36 Q 706.2 56.36 705.86 56.64 Q 705.51 56.93 705.51 57.36 Q 705.51 57.72 705.76 58 Q 706.02 58.27 706.69 58.66 L 707.21 58.95 Q 708.15 59.48 708.52 59.96 Q 708.89 60.43 708.89 61.1 Q 708.89 62.04 708.19 62.61 Q 707.5 63.18 706.35 63.18 M 706.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 63 L 712.93 55.77 L 715.33 55.77 Q 716.41 55.77 717.07 56.01 Q 717.73 56.25 718.22 56.82 Q 718.98 57.73 718.98 59.22 Q 718.98 61.02 718.03 62.01 Q 717.08 63 715.35 63 M 712.93 63 M 713.96 62.23 L 715.27 62.23 Q 716.68 62.23 717.26 61.48 Q 717.89 60.67 717.89 59.31 Q 717.89 58.04 717.27 57.31 Q 716.9 56.87 716.38 56.7 Q 715.85 56.54 714.8 56.54 L 713.96 56.54 M 713.96 62.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 63 L 721.18 55.77 L 722.2 55.77 L 724.44 61.69 L 726.6 55.77 L 727.49 55.77 L 724.87 63 M 723.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 63 L 732.5 59.98 L 730.08 55.77 L 731.25 55.77 L 733.13 59.04 L 735.15 55.77 L 736.1 55.77 L 733.52 59.96 L 733.52 63 M 732.5 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.93 63 L 741.93 55.77 L 742.95 55.77 L 742.95 63 M 741.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 63 L 749.93 55.77 L 750.96 55.77 L 750.96 62.23 L 754.21 62.23 L 754.21 63 M 749.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 63 L 757.93 55.77 L 760.33 55.77 Q 761.41 55.77 762.07 56.01 Q 762.73 56.25 763.22 56.82 Q 763.98 57.73 763.98 59.22 Q 763.98 61.02 763.03 62.01 Q 762.08 63 760.35 63 M 757.93 63 M 758.96 62.23 L 760.27 62.23 Q 761.68 62.23 762.26 61.48 Q 762.89 60.67 762.89 59.31 Q 762.89 58.04 762.27 57.31 Q 761.9 56.87 761.38 56.7 Q 760.85 56.54 759.8 56.54 L 758.96 56.54 M 758.96 62.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 766.93 63 L 766.93 55.77 L 767.96 55.77 L 767.96 58.82 L 771.4 58.82 L 771.4 55.77 L 772.42 55.77 L 772.42 63 L 771.4 63 L 771.4 59.59 L 767.96 59.59 L 767.96 63 M 766.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 60.24 L 778.36 57.12 L 777.13 60.24 M 779.59 60.24 M 780.68 63 L 779.89 61 L 776.83 61 L 776.04 63 L 775.08 63 L 777.95 55.77 L 778.96 55.77 L 781.79 63 M 780.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 63 L 785.93 55.77 L 789.97 55.77 L 789.97 56.54 L 786.96 56.54 L 786.96 58.86 L 789.48 58.86 L 789.48 59.62 L 786.96 59.62 L 786.96 62.23 L 790.18 62.23 L 790.18 63 M 785.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 63 L 794.93 55.77 L 798.97 55.77 L 798.97 56.54 L 795.96 56.54 L 795.96 58.86 L 798.48 58.86 L 798.48 59.62 L 795.96 59.62 L 795.96 62.23 L 799.18 62.23 L 799.18 63 M 794.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 804.91 63 L 802.18 55.77 L 803.2 55.77 L 805.44 61.69 L 807.6 55.77 L 808.49 55.77 L 805.87 63 M 804.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 62.8 Q 816.05 63.18 815.07 63.18 Q 813.35 63.18 812.43 62.2 Q 811.51 61.22 811.51 59.39 Q 811.51 57.59 812.44 56.59 Q 813.37 55.59 815.06 55.59 Q 816.16 55.59 817.35 55.92 L 817.35 56.87 Q 815.86 56.36 815.06 56.36 Q 813.89 56.36 813.24 57.16 Q 812.6 57.95 812.6 59.4 Q 812.6 60.83 813.29 61.62 Q 813.98 62.41 815.23 62.41 Q 815.75 62.41 816.34 62.23 L 816.34 59.88 L 817.36 59.88 M 817.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 822.93 63 L 822.93 55.77 L 823.95 55.77 L 823.95 63 M 822.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 63 L 829.93 55.77 L 832.33 55.77 Q 833.41 55.77 834.07 56.01 Q 834.73 56.25 835.22 56.82 Q 835.98 57.73 835.98 59.22 Q 835.98 61.02 835.03 62.01 Q 834.08 63 832.35 63 M 829.93 63 M 830.96 62.23 L 832.27 62.23 Q 833.68 62.23 834.26 61.48 Q 834.89 60.67 834.89 59.31 Q 834.89 58.04 834.27 57.31 Q 833.9 56.87 833.38 56.7 Q 832.85 56.54 831.8 56.54 L 830.96 56.54 M 830.96 62.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 63 L 839.93 55.77 L 840.96 55.77 L 840.96 62.23 L 844.21 62.23 L 844.21 63 M 839.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 63 L 847.93 55.77 L 849.9 55.77 Q 851.21 55.77 851.78 56.22 Q 852.35 56.66 852.35 57.67 Q 852.35 58.82 851.57 59.47 Q 850.79 60.13 849.4 60.13 L 848.95 60.13 L 848.95 63 M 847.93 63 M 848.95 59.35 L 849.36 59.35 Q 850.28 59.35 850.77 58.93 Q 851.27 58.51 851.27 57.75 Q 851.27 57.1 850.88 56.82 Q 850.49 56.54 849.58 56.54 L 848.95 56.54 M 848.95 59.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 63 L 858.5 59.98 L 856.08 55.77 L 857.25 55.77 L 859.13 59.04 L 861.15 55.77 L 862.1 55.77 L 859.52 59.96 L 859.52 63 M 858.5 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 63.18 Q 867.62 63.18 866.49 62.86 L 866.49 61.85 Q 867.71 62.41 868.5 62.41 Q 869.1 62.41 869.47 62.1 Q 869.84 61.78 869.84 61.26 Q 869.84 60.84 869.6 60.54 Q 869.35 60.24 868.71 59.88 L 868.21 59.59 Q 867.28 59.06 866.91 58.59 Q 866.53 58.13 866.53 57.51 Q 866.53 56.67 867.13 56.13 Q 867.74 55.59 868.68 55.59 Q 869.51 55.59 870.44 55.87 L 870.44 56.81 Q 869.3 56.36 868.73 56.36 Q 868.2 56.36 867.86 56.64 Q 867.51 56.93 867.51 57.36 Q 867.51 57.72 867.76 58 Q 868.02 58.27 868.69 58.66 L 869.21 58.95 Q 870.15 59.48 870.52 59.96 Q 870.89 60.43 870.89 61.1 Q 870.89 62.04 870.19 62.61 Q 869.5 63.18 868.35 63.18 M 868.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 63.18 Q 876.34 63.18 875.43 62.19 Q 874.51 61.2 874.51 59.39 Q 874.51 57.58 875.44 56.59 Q 876.38 55.59 878.08 55.59 Q 879.05 55.59 880.35 55.91 L 880.35 56.87 Q 878.87 56.36 878.06 56.36 Q 876.89 56.36 876.24 57.16 Q 875.6 57.95 875.6 59.4 Q 875.6 60.78 876.29 61.58 Q 876.97 62.38 878.17 62.38 Q 879.19 62.38 880.36 61.75 L 880.36 62.63 Q 879.29 63.18 878.03 63.18 M 878.03 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 63 L 883.93 55.77 L 886.12 55.77 Q 887.16 55.77 887.71 56.23 Q 888.27 56.69 888.27 57.57 Q 888.27 59.01 886.81 59.62 L 889.22 63 L 887.96 63 L 885.91 59.94 L 884.95 59.94 L 884.95 63 M 883.93 63 M 884.95 59.18 L 885.28 59.18 Q 887.21 59.18 887.21 57.66 Q 887.21 56.54 885.59 56.54 L 884.95 56.54 M 884.95 59.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 60.24 L 895.36 57.12 L 894.13 60.24 M 896.59 60.24 M 897.68 63 L 896.89 61 L 893.83 61 L 893.04 63 L 892.08 63 L 894.95 55.77 L 895.96 55.77 L 898.79 63 M 897.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 62.8 Q 906.05 63.18 905.07 63.18 Q 903.35 63.18 902.43 62.2 Q 901.51 61.22 901.51 59.39 Q 901.51 57.59 902.44 56.59 Q 903.37 55.59 905.06 55.59 Q 906.16 55.59 907.35 55.92 L 907.35 56.87 Q 905.86 56.36 905.06 56.36 Q 903.89 56.36 903.24 57.16 Q 902.6 57.95 902.6 59.4 Q 902.6 60.83 903.29 61.62 Q 903.98 62.41 905.23 62.41 Q 905.75 62.41 906.34 62.23 L 906.34 59.88 L 907.36 59.88 M 907.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 63.18 Q 912.62 63.18 911.49 62.86 L 911.49 61.85 Q 912.71 62.41 913.5 62.41 Q 914.1 62.41 914.47 62.1 Q 914.84 61.78 914.84 61.26 Q 914.84 60.84 914.6 60.54 Q 914.35 60.24 913.71 59.88 L 913.21 59.59 Q 912.28 59.06 911.91 58.59 Q 911.53 58.13 911.53 57.51 Q 911.53 56.67 912.13 56.13 Q 912.74 55.59 913.68 55.59 Q 914.51 55.59 915.44 55.87 L 915.44 56.81 Q 914.3 56.36 913.73 56.36 Q 913.2 56.36 912.86 56.64 Q 912.51 56.93 912.51 57.36 Q 912.51 57.72 912.76 58 Q 913.02 58.27 913.69 58.66 L 914.21 58.95 Q 915.15 59.48 915.52 59.96 Q 915.89 60.43 915.89 61.1 Q 915.89 62.04 915.19 62.61 Q 914.5 63.18 913.35 63.18 M 913.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 63.18 Q 921.34 63.18 920.43 62.19 Q 919.51 61.2 919.51 59.39 Q 919.51 57.58 920.44 56.59 Q 921.38 55.59 923.08 55.59 Q 924.05 55.59 925.35 55.91 L 925.35 56.87 Q 923.87 56.36 923.06 56.36 Q 921.89 56.36 921.24 57.16 Q 920.6 57.95 920.6 59.4 Q 920.6 60.78 921.29 61.58 Q 921.97 62.38 923.17 62.38 Q 924.19 62.38 925.36 61.75 L 925.36 62.63 Q 924.29 63.18 923.03 63.18 M 923.03 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 63.18 Q 930.62 63.18 929.49 62.86 L 929.49 61.85 Q 930.71 62.41 931.5 62.41 Q 932.1 62.41 932.47 62.1 Q 932.84 61.78 932.84 61.26 Q 932.84 60.84 932.6 60.54 Q 932.35 60.24 931.71 59.88 L 931.21 59.59 Q 930.28 59.06 929.91 58.59 Q 929.53 58.13 929.53 57.51 Q 929.53 56.67 930.13 56.13 Q 930.74 55.59 931.68 55.59 Q 932.51 55.59 933.44 55.87 L 933.44 56.81 Q 932.3 56.36 931.73 56.36 Q 931.2 56.36 930.86 56.64 Q 930.51 56.93 930.51 57.36 Q 930.51 57.72 930.76 58 Q 931.02 58.27 931.69 58.66 L 932.21 58.95 Q 933.15 59.48 933.52 59.96 Q 933.89 60.43 933.89 61.1 Q 933.89 62.04 933.19 62.61 Q 932.5 63.18 931.35 63.18 M 931.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 63.18 Q 939.62 63.18 938.49 62.86 L 938.49 61.85 Q 939.71 62.41 940.5 62.41 Q 941.1 62.41 941.47 62.1 Q 941.84 61.78 941.84 61.26 Q 941.84 60.84 941.6 60.54 Q 941.35 60.24 940.71 59.88 L 940.21 59.59 Q 939.28 59.06 938.91 58.59 Q 938.53 58.13 938.53 57.51 Q 938.53 56.67 939.13 56.13 Q 939.74 55.59 940.68 55.59 Q 941.51 55.59 942.44 55.87 L 942.44 56.81 Q 941.3 56.36 940.73 56.36 Q 940.2 56.36 939.86 56.64 Q 939.51 56.93 939.51 57.36 Q 939.51 57.72 939.76 58 Q 940.02 58.27 940.69 58.66 L 941.21 58.95 Q 942.15 59.48 942.52 59.96 Q 942.89 60.43 942.89 61.1 Q 942.89 62.04 942.19 62.61 Q 941.5 63.18 940.35 63.18 M 940.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 63.18 Q 948.34 63.18 947.43 62.19 Q 946.51 61.2 946.51 59.39 Q 946.51 57.58 947.44 56.59 Q 948.38 55.59 950.08 55.59 Q 951.05 55.59 952.35 55.91 L 952.35 56.87 Q 950.87 56.36 950.06 56.36 Q 948.89 56.36 948.24 57.16 Q 947.6 57.95 947.6 59.4 Q 947.6 60.78 948.29 61.58 Q 948.97 62.38 950.17 62.38 Q 951.19 62.38 952.36 61.75 L 952.36 62.63 Q 951.29 63.18 950.03 63.18 M 950.03 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 60.24 L 958.36 57.12 L 957.13 60.24 M 959.59 60.24 M 960.68 63 L 959.89 61 L 956.83 61 L 956.04 63 L 955.08 63 L 957.95 55.77 L 958.96 55.77 L 961.79 63 M 960.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 62.8 Q 969.05 63.18 968.07 63.18 Q 966.35 63.18 965.43 62.2 Q 964.51 61.22 964.51 59.39 Q 964.51 57.59 965.44 56.59 Q 966.37 55.59 968.06 55.59 Q 969.16 55.59 970.35 55.92 L 970.35 56.87 Q 968.86 56.36 968.06 56.36 Q 966.89 56.36 966.24 57.16 Q 965.6 57.95 965.6 59.4 Q 965.6 60.83 966.29 61.62 Q 966.98 62.41 968.23 62.41 Q 968.75 62.41 969.34 62.23 L 969.34 59.88 L 970.36 59.88 M 970.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 63 L 973.93 55.77 L 974.89 55.77 L 974.89 59.33 L 977.82 55.77 L 978.85 55.77 L 976.02 59.22 L 979.35 63 L 978.05 63 L 974.89 59.34 L 974.89 63 M 973.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 63 L 982.18 55.77 L 983.2 55.77 L 985.44 61.69 L 987.6 55.77 L 988.49 55.77 L 985.87 63 M 984.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.91 63 L 991.18 55.77 L 992.2 55.77 L 994.44 61.69 L 996.6 55.77 L 997.49 55.77 L 994.87 63 M 993.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1006.36 62.8 Q 1005.05 63.18 1004.07 63.18 Q 1002.35 63.18 1001.43 62.2 Q 1000.51 61.22 1000.51 59.39 Q 1000.51 57.59 1001.44 56.59 Q 1002.37 55.59 1004.06 55.59 Q 1005.16 55.59 1006.35 55.92 L 1006.35 56.87 Q 1004.86 56.36 1004.06 56.36 Q 1002.89 56.36 1002.24 57.16 Q 1001.6 57.95 1001.6 59.4 Q 1001.6 60.83 1002.29 61.62 Q 1002.98 62.41 1004.23 62.41 Q 1004.75 62.41 1005.34 62.23 L 1005.34 59.88 L 1006.36 59.88 M 1006.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 62.8 Q 1014.05 63.18 1013.07 63.18 Q 1011.35 63.18 1010.43 62.2 Q 1009.51 61.22 1009.51 59.39 Q 1009.51 57.59 1010.44 56.59 Q 1011.37 55.59 1013.06 55.59 Q 1014.16 55.59 1015.35 55.92 L 1015.35 56.87 Q 1013.86 56.36 1013.06 56.36 Q 1011.89 56.36 1011.24 57.16 Q 1010.6 57.95 1010.6 59.4 Q 1010.6 60.83 1011.29 61.62 Q 1011.98 62.41 1013.23 62.41 Q 1013.75 62.41 1014.34 62.23 L 1014.34 59.88 L 1015.36 59.88 M 1015.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1019.93 63 L 1019.93 55.77 L 1023.97 55.77 L 1023.97 56.54 L 1020.96 56.54 L 1020.96 58.86 L 1023.48 58.86 L 1023.48 59.62 L 1020.96 59.62 L 1020.96 62.23 L 1024.18 62.23 L 1024.18 63 M 1019.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 63 L 1027.18 55.77 L 1028.2 55.77 L 1030.44 61.69 L 1032.6 55.77 L 1033.49 55.77 L 1030.87 63 M 1029.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 63 L 1036.93 55.77 L 1039.33 55.77 Q 1040.41 55.77 1041.07 56.01 Q 1041.73 56.25 1042.22 56.82 Q 1042.98 57.73 1042.98 59.22 Q 1042.98 61.02 1042.03 62.01 Q 1041.08 63 1039.35 63 M 1036.93 63 M 1037.96 62.23 L 1039.27 62.23 Q 1040.68 62.23 1041.26 61.48 Q 1041.89 60.67 1041.89 59.31 Q 1041.89 58.04 1041.27 57.31 Q 1040.9 56.87 1040.38 56.7 Q 1039.85 56.54 1038.8 56.54 L 1037.96 56.54 M 1037.96 62.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 64.45 Q 1049.64 63.89 1048.49 63.13 Q 1048.03 63.18 1047.78 63.18 Q 1046.33 63.18 1045.42 62.13 Q 1044.51 61.07 1044.51 59.39 Q 1044.51 57.66 1045.43 56.63 Q 1046.35 55.59 1047.89 55.59 Q 1049.43 55.59 1050.35 56.63 Q 1051.27 57.66 1051.27 59.4 Q 1051.27 61.89 1049.42 62.85 Q 1050.66 63.4 1052 63.63 M 1051.35 64.45 M 1047.86 62.41 Q 1048.97 62.41 1049.57 61.62 Q 1050.18 60.82 1050.18 59.37 Q 1050.18 57.96 1049.57 57.16 Q 1048.97 56.36 1047.89 56.36 Q 1046.81 56.36 1046.2 57.16 Q 1045.6 57.96 1045.6 59.38 Q 1045.6 60.79 1046.2 61.6 Q 1046.8 62.41 1047.86 62.41 M 1047.86 62.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1057.35 63.18 Q 1056.62 63.18 1055.49 62.86 L 1055.49 61.85 Q 1056.71 62.41 1057.5 62.41 Q 1058.1 62.41 1058.47 62.1 Q 1058.84 61.78 1058.84 61.26 Q 1058.84 60.84 1058.6 60.54 Q 1058.35 60.24 1057.71 59.88 L 1057.21 59.59 Q 1056.28 59.06 1055.91 58.59 Q 1055.53 58.13 1055.53 57.51 Q 1055.53 56.67 1056.13 56.13 Q 1056.74 55.59 1057.68 55.59 Q 1058.51 55.59 1059.44 55.87 L 1059.44 56.81 Q 1058.3 56.36 1057.73 56.36 Q 1057.2 56.36 1056.86 56.64 Q 1056.51 56.93 1056.51 57.36 Q 1056.51 57.72 1056.76 58 Q 1057.02 58.27 1057.69 58.66 L 1058.21 58.95 Q 1059.15 59.48 1059.52 59.96 Q 1059.89 60.43 1059.89 61.1 Q 1059.89 62.04 1059.19 62.61 Q 1058.5 63.18 1057.35 63.18 M 1057.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 63 L 1063.93 55.77 L 1066.33 55.77 Q 1067.41 55.77 1068.07 56.01 Q 1068.73 56.25 1069.22 56.82 Q 1069.98 57.73 1069.98 59.22 Q 1069.98 61.02 1069.03 62.01 Q 1068.08 63 1066.35 63 M 1063.93 63 M 1064.96 62.23 L 1066.27 62.23 Q 1067.68 62.23 1068.26 61.48 Q 1068.89 60.67 1068.89 59.31 Q 1068.89 58.04 1068.27 57.31 Q 1067.9 56.87 1067.38 56.7 Q 1066.85 56.54 1065.8 56.54 L 1064.96 56.54 M 1064.96 62.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.36 62.8 Q 1077.05 63.18 1076.07 63.18 Q 1074.35 63.18 1073.43 62.2 Q 1072.51 61.22 1072.51 59.39 Q 1072.51 57.59 1073.44 56.59 Q 1074.37 55.59 1076.06 55.59 Q 1077.16 55.59 1078.35 55.92 L 1078.35 56.87 Q 1076.86 56.36 1076.06 56.36 Q 1074.89 56.36 1074.24 57.16 Q 1073.6 57.95 1073.6 59.4 Q 1073.6 60.83 1074.29 61.62 Q 1074.98 62.41 1076.23 62.41 Q 1076.75 62.41 1077.34 62.23 L 1077.34 59.88 L 1078.36 59.88 M 1078.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1084.35 63.18 Q 1083.62 63.18 1082.49 62.86 L 1082.49 61.85 Q 1083.71 62.41 1084.5 62.41 Q 1085.1 62.41 1085.47 62.1 Q 1085.84 61.78 1085.84 61.26 Q 1085.84 60.84 1085.6 60.54 Q 1085.35 60.24 1084.71 59.88 L 1084.21 59.59 Q 1083.28 59.06 1082.91 58.59 Q 1082.53 58.13 1082.53 57.51 Q 1082.53 56.67 1083.13 56.13 Q 1083.74 55.59 1084.68 55.59 Q 1085.51 55.59 1086.44 55.87 L 1086.44 56.81 Q 1085.3 56.36 1084.73 56.36 Q 1084.2 56.36 1083.86 56.64 Q 1083.51 56.93 1083.51 57.36 Q 1083.51 57.72 1083.76 58 Q 1084.02 58.27 1084.69 58.66 L 1085.21 58.95 Q 1086.15 59.48 1086.52 59.96 Q 1086.89 60.43 1086.89 61.1 Q 1086.89 62.04 1086.19 62.61 Q 1085.5 63.18 1084.35 63.18 M 1084.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 63 L 1091.93 55.77 L 1095.97 55.77 L 1095.97 56.54 L 1092.96 56.54 L 1092.96 58.96 L 1095.49 58.96 L 1095.49 59.72 L 1092.96 59.72 L 1092.96 63 M 1091.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 63 L 1100.93 55.77 L 1101.96 55.77 L 1101.96 62.23 L 1105.21 62.23 L 1105.21 63 M 1100.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 63 L 1108.93 55.77 L 1111.33 55.77 Q 1112.41 55.77 1113.07 56.01 Q 1113.73 56.25 1114.22 56.82 Q 1114.98 57.73 1114.98 59.22 Q 1114.98 61.02 1114.03 62.01 Q 1113.08 63 1111.35 63 M 1108.93 63 M 1109.96 62.23 L 1111.27 62.23 Q 1112.68 62.23 1113.26 61.48 Q 1113.89 60.67 1113.89 59.31 Q 1113.89 58.04 1113.27 57.31 Q 1112.9 56.87 1112.38 56.7 Q 1111.85 56.54 1110.8 56.54 L 1109.96 56.54 M 1109.96 62.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 63 L 1117.93 55.77 L 1120.33 55.77 Q 1121.41 55.77 1122.07 56.01 Q 1122.73 56.25 1123.22 56.82 Q 1123.98 57.73 1123.98 59.22 Q 1123.98 61.02 1123.03 62.01 Q 1122.08 63 1120.35 63 M 1117.93 63 M 1118.96 62.23 L 1120.27 62.23 Q 1121.68 62.23 1122.26 61.48 Q 1122.89 60.67 1122.89 59.31 Q 1122.89 58.04 1122.27 57.31 Q 1121.9 56.87 1121.38 56.7 Q 1120.85 56.54 1119.8 56.54 L 1118.96 56.54 M 1118.96 62.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1127.93 63 L 1127.93 55.77 L 1131.97 55.77 L 1131.97 56.54 L 1128.96 56.54 L 1128.96 58.86 L 1131.48 58.86 L 1131.48 59.62 L 1128.96 59.62 L 1128.96 62.23 L 1132.18 62.23 L 1132.18 63 M 1127.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 64.45 Q 1139.64 63.89 1138.49 63.13 Q 1138.03 63.18 1137.78 63.18 Q 1136.33 63.18 1135.42 62.13 Q 1134.51 61.07 1134.51 59.39 Q 1134.51 57.66 1135.43 56.63 Q 1136.35 55.59 1137.89 55.59 Q 1139.43 55.59 1140.35 56.63 Q 1141.27 57.66 1141.27 59.4 Q 1141.27 61.89 1139.42 62.85 Q 1140.66 63.4 1142 63.63 M 1141.35 64.45 M 1137.86 62.41 Q 1138.97 62.41 1139.57 61.62 Q 1140.18 60.82 1140.18 59.37 Q 1140.18 57.96 1139.57 57.16 Q 1138.97 56.36 1137.89 56.36 Q 1136.81 56.36 1136.2 57.16 Q 1135.6 57.96 1135.6 59.38 Q 1135.6 60.79 1136.2 61.6 Q 1136.8 62.41 1137.86 62.41 M 1137.86 62.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1146.93 63 L 1146.93 55.77 L 1147.95 55.77 L 1147.95 63 M 1146.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1154.93 63 L 1154.93 55.77 L 1158.97 55.77 L 1158.97 56.54 L 1155.96 56.54 L 1155.96 58.86 L 1158.48 58.86 L 1158.48 59.62 L 1155.96 59.62 L 1155.96 62.23 L 1159.18 62.23 L 1159.18 63 M 1154.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1166.59 60.24 L 1165.36 57.12 L 1164.13 60.24 M 1166.59 60.24 M 1167.68 63 L 1166.89 61 L 1163.83 61 L 1163.04 63 L 1162.08 63 L 1164.95 55.77 L 1165.96 55.77 L 1168.79 63 M 1167.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 62.8 Q 1176.05 63.18 1175.07 63.18 Q 1173.35 63.18 1172.43 62.2 Q 1171.51 61.22 1171.51 59.39 Q 1171.51 57.59 1172.44 56.59 Q 1173.37 55.59 1175.06 55.59 Q 1176.16 55.59 1177.35 55.92 L 1177.35 56.87 Q 1175.86 56.36 1175.06 56.36 Q 1173.89 56.36 1173.24 57.16 Q 1172.6 57.95 1172.6 59.4 Q 1172.6 60.83 1173.29 61.62 Q 1173.98 62.41 1175.23 62.41 Q 1175.75 62.41 1176.34 62.23 L 1176.34 59.88 L 1177.36 59.88 M 1177.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1181.93 63 L 1181.93 55.77 L 1185.97 55.77 L 1185.97 56.54 L 1182.96 56.54 L 1182.96 58.96 L 1185.49 58.96 L 1185.49 59.72 L 1182.96 59.72 L 1182.96 63 M 1181.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 63 L 1189.18 55.77 L 1190.2 55.77 L 1192.44 61.69 L 1194.6 55.77 L 1195.49 55.77 L 1192.87 63 M 1191.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 63 L 1199.93 55.77 L 1200.96 55.77 L 1200.96 62.23 L 1204.21 62.23 L 1204.21 63 M 1199.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 63 L 1209.65 56.54 L 1207.09 56.54 L 1207.09 55.77 L 1213.24 55.77 L 1213.24 56.54 L 1210.68 56.54 L 1210.68 63 M 1209.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 63.18 Q 1218.34 63.18 1217.43 62.19 Q 1216.51 61.2 1216.51 59.39 Q 1216.51 57.58 1217.44 56.59 Q 1218.38 55.59 1220.08 55.59 Q 1221.05 55.59 1222.35 55.91 L 1222.35 56.87 Q 1220.87 56.36 1220.06 56.36 Q 1218.89 56.36 1218.24 57.16 Q 1217.6 57.95 1217.6 59.4 Q 1217.6 60.78 1218.29 61.58 Q 1218.97 62.38 1220.17 62.38 Q 1221.19 62.38 1222.36 61.75 L 1222.36 62.63 Q 1221.29 63.18 1220.03 63.18 M 1220.03 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1227.91 63 L 1225.18 55.77 L 1226.2 55.77 L 1228.44 61.69 L 1230.6 55.77 L 1231.49 55.77 L 1228.87 63 M 1227.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 60.24 L 1237.36 57.12 L 1236.13 60.24 M 1238.59 60.24 M 1239.68 63 L 1238.89 61 L 1235.83 61 L 1235.04 63 L 1234.08 63 L 1236.95 55.77 L 1237.96 55.77 L 1240.79 63 M 1239.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 63 L 1245.5 59.98 L 1243.08 55.77 L 1244.25 55.77 L 1246.13 59.04 L 1248.15 55.77 L 1249.1 55.77 L 1246.52 59.96 L 1246.52 63 M 1245.5 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 63 L 1252.93 55.77 L 1254.9 55.77 Q 1256.21 55.77 1256.78 56.22 Q 1257.35 56.66 1257.35 57.67 Q 1257.35 58.82 1256.57 59.47 Q 1255.79 60.13 1254.4 60.13 L 1253.95 60.13 L 1253.95 63 M 1252.93 63 M 1253.95 59.35 L 1254.36 59.35 Q 1255.28 59.35 1255.77 58.93 Q 1256.27 58.51 1256.27 57.75 Q 1256.27 57.1 1255.88 56.82 Q 1255.49 56.54 1254.58 56.54 L 1253.95 56.54 M 1253.95 59.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1263.65 63 L 1263.65 56.54 L 1261.09 56.54 L 1261.09 55.77 L 1267.24 55.77 L 1267.24 56.54 L 1264.68 56.54 L 1264.68 63 M 1263.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1273.35 63.18 Q 1272.62 63.18 1271.49 62.86 L 1271.49 61.85 Q 1272.71 62.41 1273.5 62.41 Q 1274.1 62.41 1274.47 62.1 Q 1274.84 61.78 1274.84 61.26 Q 1274.84 60.84 1274.6 60.54 Q 1274.35 60.24 1273.71 59.88 L 1273.21 59.59 Q 1272.28 59.06 1271.91 58.59 Q 1271.53 58.13 1271.53 57.51 Q 1271.53 56.67 1272.13 56.13 Q 1272.74 55.59 1273.68 55.59 Q 1274.51 55.59 1275.44 55.87 L 1275.44 56.81 Q 1274.3 56.36 1273.73 56.36 Q 1273.2 56.36 1272.86 56.64 Q 1272.51 56.93 1272.51 57.36 Q 1272.51 57.72 1272.76 58 Q 1273.02 58.27 1273.69 58.66 L 1274.21 58.95 Q 1275.15 59.48 1275.52 59.96 Q 1275.89 60.43 1275.89 61.1 Q 1275.89 62.04 1275.19 62.61 Q 1274.5 63.18 1273.35 63.18 M 1273.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 63 L 1279.93 55.77 L 1282.33 55.77 Q 1283.41 55.77 1284.07 56.01 Q 1284.73 56.25 1285.22 56.82 Q 1285.98 57.73 1285.98 59.22 Q 1285.98 61.02 1285.03 62.01 Q 1284.08 63 1282.35 63 M 1279.93 63 M 1280.96 62.23 L 1282.27 62.23 Q 1283.68 62.23 1284.26 61.48 Q 1284.89 60.67 1284.89 59.31 Q 1284.89 58.04 1284.27 57.31 Q 1283.9 56.87 1283.38 56.7 Q 1282.85 56.54 1281.8 56.54 L 1280.96 56.54 M 1280.96 62.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 63 L 1288.18 55.77 L 1289.2 55.77 L 1291.44 61.69 L 1293.6 55.77 L 1294.49 55.77 L 1291.87 63 M 1290.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.91 63 L 1297.18 55.77 L 1298.2 55.77 L 1300.44 61.69 L 1302.6 55.77 L 1303.49 55.77 L 1300.87 63 M 1299.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 63 L 1308.93 55.77 L 1309.95 55.77 L 1309.95 63 M 1308.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 63 L 1316.93 55.77 L 1320.97 55.77 L 1320.97 56.54 L 1317.96 56.54 L 1317.96 58.86 L 1320.48 58.86 L 1320.48 59.62 L 1317.96 59.62 L 1317.96 62.23 L 1321.18 62.23 L 1321.18 63 M 1316.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 63 L 1326.65 56.54 L 1324.09 56.54 L 1324.09 55.77 L 1330.24 55.77 L 1330.24 56.54 L 1327.68 56.54 L 1327.68 63 M 1326.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 63 L 1333.93 55.77 L 1334.96 55.77 L 1334.96 58.82 L 1338.4 58.82 L 1338.4 55.77 L 1339.42 55.77 L 1339.42 63 L 1338.4 63 L 1338.4 59.59 L 1334.96 59.59 L 1334.96 63 M 1333.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 63 L 1342.93 55.77 L 1343.89 55.77 L 1343.89 59.33 L 1346.82 55.77 L 1347.85 55.77 L 1345.02 59.22 L 1348.35 63 L 1347.05 63 L 1343.89 59.34 L 1343.89 63 M 1342.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 63 L 1352.93 55.77 L 1356.97 55.77 L 1356.97 56.54 L 1353.96 56.54 L 1353.96 58.86 L 1356.48 58.86 L 1356.48 59.62 L 1353.96 59.62 L 1353.96 62.23 L 1357.18 62.23 L 1357.18 63 M 1352.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1361.93 63 L 1361.93 55.77 L 1365.97 55.77 L 1365.97 56.54 L 1362.96 56.54 L 1362.96 58.86 L 1365.48 58.86 L 1365.48 59.62 L 1362.96 59.62 L 1362.96 62.23 L 1366.18 62.23 L 1366.18 63 M 1361.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1369.93 63 L 1369.93 55.77 L 1372.33 55.77 Q 1373.41 55.77 1374.07 56.01 Q 1374.73 56.25 1375.22 56.82 Q 1375.98 57.73 1375.98 59.22 Q 1375.98 61.02 1375.03 62.01 Q 1374.08 63 1372.35 63 M 1369.93 63 M 1370.96 62.23 L 1372.27 62.23 Q 1373.68 62.23 1374.26 61.48 Q 1374.89 60.67 1374.89 59.31 Q 1374.89 58.04 1374.27 57.31 Q 1373.9 56.87 1373.38 56.7 Q 1372.85 56.54 1371.8 56.54 L 1370.96 56.54 M 1370.96 62.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1379.93 63 L 1379.93 55.77 L 1380.96 55.77 L 1380.96 62.23 L 1384.21 62.23 L 1384.21 63 M 1379.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.65 63 L 1389.65 56.54 L 1387.09 56.54 L 1387.09 55.77 L 1393.24 55.77 L 1393.24 56.54 L 1390.68 56.54 L 1390.68 63 M 1389.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1400.59 60.24 L 1399.36 57.12 L 1398.13 60.24 M 1400.59 60.24 M 1401.68 63 L 1400.89 61 L 1397.83 61 L 1397.04 63 L 1396.08 63 L 1398.95 55.77 L 1399.96 55.77 L 1402.79 63 M 1401.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 60.47 L 1405.72 59.75 L 1410.06 59.75 L 1410.06 60.47 M 1405.72 60.47"/></g><rect x="0" y="65" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="65" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="65" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="65" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="65" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="65" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="65" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="65" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="65" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="65" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="65" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="65" width="18" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="65" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="65" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="65" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="65" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="65" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="65" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="702" y="65" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="65" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="65" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="65" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="65" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="65" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="774" y="65" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="65" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="801" y="65" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="65" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="65" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="65" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="65" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="65" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="65" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="65" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="65" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="65" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="65" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="65" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="65" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="65" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="65" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="65" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="65" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="65" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="65" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="65" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="65" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="65" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="65" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="65" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="65" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1053" y="65" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="65" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1080" y="65" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="65" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="65" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="65" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="65" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 76 L 0.93 68.77 L 2.35 68.77 L 4.36 74.36 L 6.42 68.77 L 7.69 68.77 L 7.69 76 L 6.73 76 L 6.73 70.12 L 4.74 75.52 L 3.75 75.52 L 1.81 70.11 L 1.81 76 M 0.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 73.24 L 13.36 70.12 L 12.13 73.24 M 14.59 73.24 M 15.68 76 L 14.89 74 L 11.83 74 L 11.04 76 L 10.08 76 L 12.95 68.77 L 13.96 68.77 L 16.79 76 M 15.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 21.65 76 L 21.65 69.54 L 19.09 69.54 L 19.09 68.77 L 25.24 68.77 L 25.24 69.54 L 22.68 69.54 L 22.68 76 M 21.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 30.65 76 L 30.65 69.54 L 28.09 69.54 L 28.09 68.77 L 34.24 68.77 L 34.24 69.54 L 31.68 69.54 L 31.68 76 M 30.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 73.47 L 37.72 72.75 L 42.06 72.75 L 42.06 73.47 M 37.72 73.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 73.47 L 46.72 72.75 L 51.06 72.75 L 51.06 73.47 M 46.72 73.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 73.47 L 55.72 72.75 L 60.06 72.75 L 60.06 73.47 M 55.72 73.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.93 76 L 64.93 68.77 L 66.9 68.77 Q 68.21 68.77 68.78 69.22 Q 69.35 69.66 69.35 70.67 Q 69.35 71.82 68.57 72.47 Q 67.79 73.13 66.4 73.13 L 65.95 73.13 L 65.95 76 M 64.93 76 M 65.95 72.35 L 66.36 72.35 Q 67.28 72.35 67.77 71.93 Q 68.27 71.51 68.27 70.75 Q 68.27 70.1 67.88 69.82 Q 67.49 69.54 66.58 69.54 L 65.95 69.54 M 65.95 72.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 77.59 73.24 L 76.36 70.12 L 75.13 73.24 M 77.59 73.24 M 78.68 76 L 77.89 74 L 74.83 74 L 74.04 76 L 73.08 76 L 75.95 68.77 L 76.96 68.77 L 79.79 76 M 78.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 83.93 76 L 83.93 68.77 L 84.96 68.77 L 84.96 75.23 L 88.21 75.23 L 88.21 76 M 83.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 93.5 76 L 93.5 72.98 L 91.08 68.77 L 92.25 68.77 L 94.13 72.04 L 96.15 68.77 L 97.1 68.77 L 94.52 72.96 L 94.52 76 M 93.5 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 106.36 75.8 Q 105.05 76.18 104.07 76.18 Q 102.35 76.18 101.43 75.2 Q 100.51 74.22 100.51 72.39 Q 100.51 70.59 101.44 69.59 Q 102.37 68.59 104.06 68.59 Q 105.16 68.59 106.35 68.92 L 106.35 69.87 Q 104.86 69.36 104.06 69.36 Q 102.89 69.36 102.24 70.16 Q 101.6 70.95 101.6 72.4 Q 101.6 73.83 102.29 74.62 Q 102.98 75.41 104.23 75.41 Q 104.75 75.41 105.34 75.23 L 105.34 72.88 L 106.36 72.88 M 106.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 111.65 76 L 111.65 69.54 L 109.09 69.54 L 109.09 68.77 L 115.24 68.77 L 115.24 69.54 L 112.68 69.54 L 112.68 76 M 111.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 122.59 73.24 L 121.36 70.12 L 120.13 73.24 M 122.59 73.24 M 123.68 76 L 122.89 74 L 119.83 74 L 119.04 76 L 118.08 76 L 120.95 68.77 L 121.96 68.77 L 124.79 76 M 123.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 129.91 76 L 127.18 68.77 L 128.2 68.77 L 130.44 74.69 L 132.6 68.77 L 133.49 68.77 L 130.87 76 M 129.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 139.35 76.18 Q 138.62 76.18 137.49 75.86 L 137.49 74.85 Q 138.71 75.41 139.5 75.41 Q 140.1 75.41 140.47 75.1 Q 140.84 74.78 140.84 74.26 Q 140.84 73.84 140.6 73.54 Q 140.35 73.24 139.71 72.88 L 139.21 72.59 Q 138.28 72.06 137.91 71.59 Q 137.53 71.13 137.53 70.51 Q 137.53 69.67 138.13 69.13 Q 138.74 68.59 139.68 68.59 Q 140.51 68.59 141.44 68.87 L 141.44 69.81 Q 140.3 69.36 139.73 69.36 Q 139.2 69.36 138.86 69.64 Q 138.51 69.93 138.51 70.36 Q 138.51 70.72 138.76 71 Q 139.02 71.27 139.69 71.66 L 140.21 71.95 Q 141.15 72.48 141.52 72.96 Q 141.89 73.43 141.89 74.1 Q 141.89 75.04 141.19 75.61 Q 140.5 76.18 139.35 76.18 M 139.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 147.65 76 L 147.65 69.54 L 145.09 69.54 L 145.09 68.77 L 151.24 68.77 L 151.24 69.54 L 148.68 69.54 L 148.68 76 M 147.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 157.35 76.18 Q 156.62 76.18 155.49 75.86 L 155.49 74.85 Q 156.71 75.41 157.5 75.41 Q 158.1 75.41 158.47 75.1 Q 158.84 74.78 158.84 74.26 Q 158.84 73.84 158.6 73.54 Q 158.35 73.24 157.71 72.88 L 157.21 72.59 Q 156.28 72.06 155.91 71.59 Q 155.53 71.13 155.53 70.51 Q 155.53 69.67 156.13 69.13 Q 156.74 68.59 157.68 68.59 Q 158.51 68.59 159.44 68.87 L 159.44 69.81 Q 158.3 69.36 157.73 69.36 Q 157.2 69.36 156.86 69.64 Q 156.51 69.93 156.51 70.36 Q 156.51 70.72 156.76 71 Q 157.02 71.27 157.69 71.66 L 158.21 71.95 Q 159.15 72.48 159.52 72.96 Q 159.89 73.43 159.89 74.1 Q 159.89 75.04 159.19 75.61 Q 158.5 76.18 157.35 76.18 M 157.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 164.93 76 L 164.93 68.77 L 168.97 68.77 L 168.97 69.54 L 165.96 69.54 L 165.96 71.96 L 168.49 71.96 L 168.49 72.72 L 165.96 72.72 L 165.96 76 M 164.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 171.93 76 L 171.93 68.77 L 173.35 68.77 L 175.36 74.36 L 177.42 68.77 L 178.69 68.77 L 178.69 76 L 177.73 76 L 177.73 70.12 L 175.74 75.52 L 174.75 75.52 L 172.81 70.11 L 172.81 76 M 171.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 76 L 181.93 68.77 L 184.12 68.77 Q 185.16 68.77 185.71 69.23 Q 186.27 69.69 186.27 70.57 Q 186.27 72.01 184.81 72.62 L 187.22 76 L 185.96 76 L 183.91 72.94 L 182.95 72.94 L 182.95 76 M 181.93 76 M 182.95 72.18 L 183.28 72.18 Q 185.21 72.18 185.21 70.66 Q 185.21 69.54 183.59 69.54 L 182.95 69.54 M 182.95 72.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.93 76 L 190.93 68.77 L 193.12 68.77 Q 194.16 68.77 194.71 69.23 Q 195.27 69.69 195.27 70.57 Q 195.27 72.01 193.81 72.62 L 196.22 76 L 194.96 76 L 192.91 72.94 L 191.95 72.94 L 191.95 76 M 190.93 76 M 191.95 72.18 L 192.28 72.18 Q 194.21 72.18 194.21 70.66 Q 194.21 69.54 192.59 69.54 L 191.95 69.54 M 191.95 72.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 205.35 77.45 Q 203.64 76.89 202.49 76.13 Q 202.03 76.18 201.78 76.18 Q 200.33 76.18 199.42 75.13 Q 198.51 74.07 198.51 72.39 Q 198.51 70.66 199.43 69.63 Q 200.35 68.59 201.89 68.59 Q 203.43 68.59 204.35 69.63 Q 205.27 70.66 205.27 72.4 Q 205.27 74.89 203.42 75.85 Q 204.66 76.4 206 76.63 M 205.35 77.45 M 201.86 75.41 Q 202.97 75.41 203.57 74.62 Q 204.18 73.82 204.18 72.37 Q 204.18 70.96 203.57 70.16 Q 202.97 69.36 201.89 69.36 Q 200.81 69.36 200.2 70.16 Q 199.6 70.96 199.6 72.38 Q 199.6 73.79 200.2 74.6 Q 200.8 75.41 201.86 75.41 M 201.86 75.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.93 76 L 208.93 68.77 L 210.9 68.77 Q 212.21 68.77 212.78 69.22 Q 213.35 69.66 213.35 70.67 Q 213.35 71.82 212.57 72.47 Q 211.79 73.13 210.4 73.13 L 209.95 73.13 L 209.95 76 M 208.93 76 M 209.95 72.35 L 210.36 72.35 Q 211.28 72.35 211.77 71.93 Q 212.27 71.51 212.27 70.75 Q 212.27 70.1 211.88 69.82 Q 211.49 69.54 210.58 69.54 L 209.95 69.54 M 209.95 72.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 219.91 76 L 217.18 68.77 L 218.2 68.77 L 220.44 74.69 L 222.6 68.77 L 223.49 68.77 L 220.87 76 M 219.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.93 76 L 226.93 68.77 L 228.9 68.77 Q 230.21 68.77 230.78 69.22 Q 231.35 69.66 231.35 70.67 Q 231.35 71.82 230.57 72.47 Q 229.79 73.13 228.4 73.13 L 227.95 73.13 L 227.95 76 M 226.93 76 M 227.95 72.35 L 228.36 72.35 Q 229.28 72.35 229.77 71.93 Q 230.27 71.51 230.27 70.75 Q 230.27 70.1 229.88 69.82 Q 229.49 69.54 228.58 69.54 L 227.95 69.54 M 227.95 72.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 234.93 76 L 234.93 68.77 L 236.35 68.77 L 238.36 74.36 L 240.42 68.77 L 241.69 68.77 L 241.69 76 L 240.73 76 L 240.73 70.12 L 238.74 75.52 L 237.75 75.52 L 235.81 70.11 L 235.81 76 M 234.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 247.35 76.18 Q 246.62 76.18 245.49 75.86 L 245.49 74.85 Q 246.71 75.41 247.5 75.41 Q 248.1 75.41 248.47 75.1 Q 248.84 74.78 248.84 74.26 Q 248.84 73.84 248.6 73.54 Q 248.35 73.24 247.71 72.88 L 247.21 72.59 Q 246.28 72.06 245.91 71.59 Q 245.53 71.13 245.53 70.51 Q 245.53 69.67 246.13 69.13 Q 246.74 68.59 247.68 68.59 Q 248.51 68.59 249.44 68.87 L 249.44 69.81 Q 248.3 69.36 247.73 69.36 Q 247.2 69.36 246.86 69.64 Q 246.51 69.93 246.51 70.36 Q 246.51 70.72 246.76 71 Q 247.02 71.27 247.69 71.66 L 248.21 71.95 Q 249.15 72.48 249.52 72.96 Q 249.89 73.43 249.89 74.1 Q 249.89 75.04 249.19 75.61 Q 248.5 76.18 247.35 76.18 M 247.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 255.91 76 L 253.18 68.77 L 254.2 68.77 L 256.44 74.69 L 258.6 68.77 L 259.49 68.77 L 256.87 76 M 255.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.72 73.47 L 262.72 72.75 L 267.06 72.75 L 267.06 73.47 M 262.72 73.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 275.59 73.24 L 274.36 70.12 L 273.13 73.24 M 275.59 73.24 M 276.68 76 L 275.89 74 L 272.83 74 L 272.04 76 L 271.08 76 L 273.95 68.77 L 274.96 68.77 L 277.79 76 M 276.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 282.65 76 L 282.65 69.54 L 280.09 69.54 L 280.09 68.77 L 286.24 68.77 L 286.24 69.54 L 283.68 69.54 L 283.68 76 M 282.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 291.65 76 L 291.65 69.54 L 289.09 69.54 L 289.09 68.77 L 295.24 68.77 L 295.24 69.54 L 292.68 69.54 L 292.68 76 M 291.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 300.65 76 L 300.65 69.54 L 298.09 69.54 L 298.09 68.77 L 304.24 68.77 L 304.24 69.54 L 301.68 69.54 L 301.68 76 M 300.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 309.65 76 L 309.65 69.54 L 307.09 69.54 L 307.09 68.77 L 313.24 68.77 L 313.24 69.54 L 310.68 69.54 L 310.68 76 M 309.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 318.65 76 L 318.65 69.54 L 316.09 69.54 L 316.09 68.77 L 322.24 68.77 L 322.24 69.54 L 319.68 69.54 L 319.68 76 M 318.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 325.93 76 L 325.93 68.77 L 326.89 68.77 L 326.89 72.33 L 329.82 68.77 L 330.85 68.77 L 328.02 72.22 L 331.35 76 L 330.05 76 L 326.89 72.34 L 326.89 76 M 325.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 338.59 73.24 L 337.36 70.12 L 336.13 73.24 M 338.59 73.24 M 339.68 76 L 338.89 74 L 335.83 74 L 335.04 76 L 334.08 76 L 336.95 68.77 L 337.96 68.77 L 340.79 76 M 339.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 344.93 76 L 344.93 68.77 L 348.97 68.77 L 348.97 69.54 L 345.96 69.54 L 345.96 71.96 L 348.49 71.96 L 348.49 72.72 L 345.96 72.72 L 345.96 76 M 344.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.93 76 L 352.93 68.77 L 354.9 68.77 Q 356.21 68.77 356.78 69.22 Q 357.35 69.66 357.35 70.67 Q 357.35 71.82 356.57 72.47 Q 355.79 73.13 354.4 73.13 L 353.95 73.13 L 353.95 76 M 352.93 76 M 353.95 72.35 L 354.36 72.35 Q 355.28 72.35 355.77 71.93 Q 356.27 71.51 356.27 70.75 Q 356.27 70.1 355.88 69.82 Q 355.49 69.54 354.58 69.54 L 353.95 69.54 M 353.95 72.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 364.35 76.18 Q 363.62 76.18 362.49 75.86 L 362.49 74.85 Q 363.71 75.41 364.5 75.41 Q 365.1 75.41 365.47 75.1 Q 365.84 74.78 365.84 74.26 Q 365.84 73.84 365.6 73.54 Q 365.35 73.24 364.71 72.88 L 364.21 72.59 Q 363.28 72.06 362.91 71.59 Q 362.53 71.13 362.53 70.51 Q 362.53 69.67 363.13 69.13 Q 363.74 68.59 364.68 68.59 Q 365.51 68.59 366.44 68.87 L 366.44 69.81 Q 365.3 69.36 364.73 69.36 Q 364.2 69.36 363.86 69.64 Q 363.51 69.93 363.51 70.36 Q 363.51 70.72 363.76 71 Q 364.02 71.27 364.69 71.66 L 365.21 71.95 Q 366.15 72.48 366.52 72.96 Q 366.89 73.43 366.89 74.1 Q 366.89 75.04 366.19 75.61 Q 365.5 76.18 364.35 76.18 M 364.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 376.36 75.8 Q 375.05 76.18 374.07 76.18 Q 372.35 76.18 371.43 75.2 Q 370.51 74.22 370.51 72.39 Q 370.51 70.59 371.44 69.59 Q 372.37 68.59 374.06 68.59 Q 375.16 68.59 376.35 68.92 L 376.35 69.87 Q 374.86 69.36 374.06 69.36 Q 372.89 69.36 372.24 70.16 Q 371.6 70.95 371.6 72.4 Q 371.6 73.83 372.29 74.62 Q 372.98 75.41 374.23 75.41 Q 374.75 75.41 375.34 75.23 L 375.34 72.88 L 376.36 72.88 M 376.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 380.93 76 L 380.93 68.77 L 384.97 68.77 L 384.97 69.54 L 381.96 69.54 L 381.96 71.96 L 384.49 71.96 L 384.49 72.72 L 381.96 72.72 L 381.96 76 M 380.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 394.36 75.8 Q 393.05 76.18 392.07 76.18 Q 390.35 76.18 389.43 75.2 Q 388.51 74.22 388.51 72.39 Q 388.51 70.59 389.44 69.59 Q 390.37 68.59 392.06 68.59 Q 393.16 68.59 394.35 68.92 L 394.35 69.87 Q 392.86 69.36 392.06 69.36 Q 390.89 69.36 390.24 70.16 Q 389.6 70.95 389.6 72.4 Q 389.6 73.83 390.29 74.62 Q 390.98 75.41 392.23 75.41 Q 392.75 75.41 393.34 75.23 L 393.34 72.88 L 394.36 72.88 M 394.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 398.93 76 L 398.93 68.77 L 399.96 68.77 L 399.96 75.23 L 403.21 75.23 L 403.21 76 M 398.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.93 76 L 406.93 68.77 L 407.89 68.77 L 407.89 72.33 L 410.82 68.77 L 411.85 68.77 L 409.02 72.22 L 412.35 76 L 411.05 76 L 407.89 72.34 L 407.89 76 M 406.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 418.35 76.18 Q 417.62 76.18 416.49 75.86 L 416.49 74.85 Q 417.71 75.41 418.5 75.41 Q 419.1 75.41 419.47 75.1 Q 419.84 74.78 419.84 74.26 Q 419.84 73.84 419.6 73.54 Q 419.35 73.24 418.71 72.88 L 418.21 72.59 Q 417.28 72.06 416.91 71.59 Q 416.53 71.13 416.53 70.51 Q 416.53 69.67 417.13 69.13 Q 417.74 68.59 418.68 68.59 Q 419.51 68.59 420.44 68.87 L 420.44 69.81 Q 419.3 69.36 418.73 69.36 Q 418.2 69.36 417.86 69.64 Q 417.51 69.93 417.51 70.36 Q 417.51 70.72 417.76 71 Q 418.02 71.27 418.69 71.66 L 419.21 71.95 Q 420.15 72.48 420.52 72.96 Q 420.89 73.43 420.89 74.1 Q 420.89 75.04 420.19 75.61 Q 419.5 76.18 418.35 76.18 M 418.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 426.91 76 L 424.18 68.77 L 425.2 68.77 L 427.44 74.69 L 429.6 68.77 L 430.49 68.77 L 427.87 76 M 426.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 436.35 76.18 Q 435.62 76.18 434.49 75.86 L 434.49 74.85 Q 435.71 75.41 436.5 75.41 Q 437.1 75.41 437.47 75.1 Q 437.84 74.78 437.84 74.26 Q 437.84 73.84 437.6 73.54 Q 437.35 73.24 436.71 72.88 L 436.21 72.59 Q 435.28 72.06 434.91 71.59 Q 434.53 71.13 434.53 70.51 Q 434.53 69.67 435.13 69.13 Q 435.74 68.59 436.68 68.59 Q 437.51 68.59 438.44 68.87 L 438.44 69.81 Q 437.3 69.36 436.73 69.36 Q 436.2 69.36 435.86 69.64 Q 435.51 69.93 435.51 70.36 Q 435.51 70.72 435.76 71 Q 436.02 71.27 436.69 71.66 L 437.21 71.95 Q 438.15 72.48 438.52 72.96 Q 438.89 73.43 438.89 74.1 Q 438.89 75.04 438.19 75.61 Q 437.5 76.18 436.35 76.18 M 436.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 444.65 76 L 444.65 69.54 L 442.09 69.54 L 442.09 68.77 L 448.24 68.77 L 448.24 69.54 L 445.68 69.54 L 445.68 76 M 444.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 451.93 76 L 451.93 68.77 L 452.89 68.77 L 452.89 72.33 L 455.82 68.77 L 456.85 68.77 L 454.02 72.22 L 457.35 76 L 456.05 76 L 452.89 72.34 L 452.89 76 M 451.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.93 76 L 460.93 68.77 L 463.12 68.77 Q 464.16 68.77 464.71 69.23 Q 465.27 69.69 465.27 70.57 Q 465.27 72.01 463.81 72.62 L 466.22 76 L 464.96 76 L 462.91 72.94 L 461.95 72.94 L 461.95 76 M 460.93 76 M 461.95 72.18 L 462.28 72.18 Q 464.21 72.18 464.21 70.66 Q 464.21 69.54 462.59 69.54 L 461.95 69.54 M 461.95 72.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 475.36 75.8 Q 474.05 76.18 473.07 76.18 Q 471.35 76.18 470.43 75.2 Q 469.51 74.22 469.51 72.39 Q 469.51 70.59 470.44 69.59 Q 471.37 68.59 473.06 68.59 Q 474.16 68.59 475.35 68.92 L 475.35 69.87 Q 473.86 69.36 473.06 69.36 Q 471.89 69.36 471.24 70.16 Q 470.6 70.95 470.6 72.4 Q 470.6 73.83 471.29 74.62 Q 471.98 75.41 473.23 75.41 Q 473.75 75.41 474.34 75.23 L 474.34 72.88 L 475.36 72.88 M 475.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 478.93 76 L 478.93 68.77 L 481.33 68.77 Q 482.41 68.77 483.07 69.01 Q 483.73 69.25 484.22 69.82 Q 484.98 70.73 484.98 72.22 Q 484.98 74.02 484.03 75.01 Q 483.08 76 481.35 76 M 478.93 76 M 479.96 75.23 L 481.27 75.23 Q 482.68 75.23 483.26 74.48 Q 483.89 73.67 483.89 72.31 Q 483.89 71.04 483.27 70.31 Q 482.9 69.87 482.38 69.7 Q 481.85 69.54 480.8 69.54 L 479.96 69.54 M 479.96 75.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 488.93 76 L 488.93 68.77 L 489.96 68.77 L 489.96 75.23 L 493.21 75.23 L 493.21 76 M 488.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 500.59 73.24 L 499.36 70.12 L 498.13 73.24 M 500.59 73.24 M 501.68 76 L 500.89 74 L 497.83 74 L 497.04 76 L 496.08 76 L 498.95 68.77 L 499.96 68.77 L 502.79 76 M 501.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 507.91 76 L 505.18 68.77 L 506.2 68.77 L 508.44 74.69 L 510.6 68.77 L 511.49 68.77 L 508.87 76 M 507.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 518.59 73.24 L 517.36 70.12 L 516.13 73.24 M 518.59 73.24 M 519.68 76 L 518.89 74 L 515.83 74 L 515.04 76 L 514.08 76 L 516.95 68.77 L 517.96 68.77 L 520.79 76 M 519.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 522.93 76 L 522.93 68.77 L 524.35 68.77 L 526.36 74.36 L 528.42 68.77 L 529.69 68.77 L 529.69 76 L 528.73 76 L 528.73 70.12 L 526.74 75.52 L 525.75 75.52 L 523.81 70.11 L 523.81 76 M 522.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 73.24 L 535.36 70.12 L 534.13 73.24 M 536.59 73.24 M 537.68 76 L 536.89 74 L 533.83 74 L 533.04 76 L 532.08 76 L 534.95 68.77 L 535.96 68.77 L 538.79 76 M 537.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 543.65 76 L 543.65 69.54 L 541.09 69.54 L 541.09 68.77 L 547.24 68.77 L 547.24 69.54 L 544.68 69.54 L 544.68 76 M 543.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 76 L 552.5 72.98 L 550.08 68.77 L 551.25 68.77 L 553.13 72.04 L 555.15 68.77 L 556.1 68.77 L 553.52 72.96 L 553.52 76 M 552.5 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 76 L 559.93 68.77 L 560.89 68.77 L 560.89 72.33 L 563.82 68.77 L 564.85 68.77 L 562.02 72.22 L 565.35 76 L 564.05 76 L 560.89 72.34 L 560.89 76 M 559.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 76 L 568.18 68.77 L 569.2 68.77 L 571.44 74.69 L 573.6 68.77 L 574.49 68.77 L 571.87 76 M 570.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 76 L 577.93 68.77 L 578.89 68.77 L 578.89 72.33 L 581.82 68.77 L 582.85 68.77 L 580.02 72.22 L 583.35 76 L 582.05 76 L 578.89 72.34 L 578.89 76 M 577.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 76 L 587.93 68.77 L 588.96 68.77 L 588.96 75.23 L 592.21 75.23 L 592.21 76 M 587.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 76 L 597.93 68.77 L 598.95 68.77 L 598.95 76 M 597.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 76 L 606.65 69.54 L 604.09 69.54 L 604.09 68.77 L 610.24 68.77 L 610.24 69.54 L 607.68 69.54 L 607.68 76 M 606.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 76 L 613.93 68.77 L 615.9 68.77 Q 617.21 68.77 617.78 69.22 Q 618.35 69.66 618.35 70.67 Q 618.35 71.82 617.57 72.47 Q 616.79 73.13 615.4 73.13 L 614.95 73.13 L 614.95 76 M 613.93 76 M 614.95 72.35 L 615.36 72.35 Q 616.28 72.35 616.77 71.93 Q 617.27 71.51 617.27 70.75 Q 617.27 70.1 616.88 69.82 Q 616.49 69.54 615.58 69.54 L 614.95 69.54 M 614.95 72.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 623.93 76 L 623.93 68.77 L 627.97 68.77 L 627.97 69.54 L 624.96 69.54 L 624.96 71.86 L 627.48 71.86 L 627.48 72.62 L 624.96 72.62 L 624.96 75.23 L 628.18 75.23 L 628.18 76 M 623.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 75.8 Q 636.05 76.18 635.07 76.18 Q 633.35 76.18 632.43 75.2 Q 631.51 74.22 631.51 72.39 Q 631.51 70.59 632.44 69.59 Q 633.37 68.59 635.06 68.59 Q 636.16 68.59 637.35 68.92 L 637.35 69.87 Q 635.86 69.36 635.06 69.36 Q 633.89 69.36 633.24 70.16 Q 632.6 70.95 632.6 72.4 Q 632.6 73.83 633.29 74.62 Q 633.98 75.41 635.23 75.41 Q 635.75 75.41 636.34 75.23 L 636.34 72.88 L 637.36 72.88 M 637.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 640.93 76 L 640.93 68.77 L 642.9 68.77 Q 644.21 68.77 644.78 69.22 Q 645.35 69.66 645.35 70.67 Q 645.35 71.82 644.57 72.47 Q 643.79 73.13 642.4 73.13 L 641.95 73.13 L 641.95 76 M 640.93 76 M 641.95 72.35 L 642.36 72.35 Q 643.28 72.35 643.77 71.93 Q 644.27 71.51 644.27 70.75 Q 644.27 70.1 643.88 69.82 Q 643.49 69.54 642.58 69.54 L 641.95 69.54 M 641.95 72.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 655.35 77.45 Q 653.64 76.89 652.49 76.13 Q 652.03 76.18 651.78 76.18 Q 650.33 76.18 649.42 75.13 Q 648.51 74.07 648.51 72.39 Q 648.51 70.66 649.43 69.63 Q 650.35 68.59 651.89 68.59 Q 653.43 68.59 654.35 69.63 Q 655.27 70.66 655.27 72.4 Q 655.27 74.89 653.42 75.85 Q 654.66 76.4 656 76.63 M 655.35 77.45 M 651.86 75.41 Q 652.97 75.41 653.57 74.62 Q 654.18 73.82 654.18 72.37 Q 654.18 70.96 653.57 70.16 Q 652.97 69.36 651.89 69.36 Q 650.81 69.36 650.2 70.16 Q 649.6 70.96 649.6 72.38 Q 649.6 73.79 650.2 74.6 Q 650.8 75.41 651.86 75.41 M 651.86 75.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 76 L 659.93 68.77 L 663.97 68.77 L 663.97 69.54 L 660.96 69.54 L 660.96 71.86 L 663.48 71.86 L 663.48 72.62 L 660.96 72.62 L 660.96 75.23 L 664.18 75.23 L 664.18 76 M 659.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 668.93 76 L 668.93 68.77 L 672.97 68.77 L 672.97 69.54 L 669.96 69.54 L 669.96 71.96 L 672.49 71.96 L 672.49 72.72 L 669.96 72.72 L 669.96 76 M 668.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 676.93 76 L 676.93 68.77 L 679.33 68.77 Q 680.41 68.77 681.07 69.01 Q 681.73 69.25 682.22 69.82 Q 682.98 70.73 682.98 72.22 Q 682.98 74.02 682.03 75.01 Q 681.08 76 679.35 76 M 676.93 76 M 677.96 75.23 L 679.27 75.23 Q 680.68 75.23 681.26 74.48 Q 681.89 73.67 681.89 72.31 Q 681.89 71.04 681.27 70.31 Q 680.9 69.87 680.38 69.7 Q 679.85 69.54 678.8 69.54 L 677.96 69.54 M 677.96 75.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 76.18 Q 687.34 76.18 686.43 75.19 Q 685.51 74.2 685.51 72.39 Q 685.51 70.58 686.44 69.59 Q 687.38 68.59 689.08 68.59 Q 690.05 68.59 691.35 68.91 L 691.35 69.87 Q 689.87 69.36 689.06 69.36 Q 687.89 69.36 687.24 70.16 Q 686.6 70.95 686.6 72.4 Q 686.6 73.78 687.29 74.58 Q 687.97 75.38 689.17 75.38 Q 690.19 75.38 691.36 74.75 L 691.36 75.63 Q 690.29 76.18 689.03 76.18 M 689.03 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 76 L 694.93 68.77 L 696.9 68.77 Q 698.21 68.77 698.78 69.22 Q 699.35 69.66 699.35 70.67 Q 699.35 71.82 698.57 72.47 Q 697.79 73.13 696.4 73.13 L 695.95 73.13 L 695.95 76 M 694.93 76 M 695.95 72.35 L 696.36 72.35 Q 697.28 72.35 697.77 71.93 Q 698.27 71.51 698.27 70.75 Q 698.27 70.1 697.88 69.82 Q 697.49 69.54 696.58 69.54 L 695.95 69.54 M 695.95 72.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 76 L 703.93 68.77 L 706.33 68.77 Q 707.41 68.77 708.07 69.01 Q 708.73 69.25 709.22 69.82 Q 709.98 70.73 709.98 72.22 Q 709.98 74.02 709.03 75.01 Q 708.08 76 706.35 76 M 703.93 76 M 704.96 75.23 L 706.27 75.23 Q 707.68 75.23 708.26 74.48 Q 708.89 73.67 708.89 72.31 Q 708.89 71.04 708.27 70.31 Q 707.9 69.87 707.38 69.7 Q 706.85 69.54 705.8 69.54 L 704.96 69.54 M 704.96 75.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 76 L 712.93 68.77 L 715.33 68.77 Q 716.41 68.77 717.07 69.01 Q 717.73 69.25 718.22 69.82 Q 718.98 70.73 718.98 72.22 Q 718.98 74.02 718.03 75.01 Q 717.08 76 715.35 76 M 712.93 76 M 713.96 75.23 L 715.27 75.23 Q 716.68 75.23 717.26 74.48 Q 717.89 73.67 717.89 72.31 Q 717.89 71.04 717.27 70.31 Q 716.9 69.87 716.38 69.7 Q 715.85 69.54 714.8 69.54 L 713.96 69.54 M 713.96 75.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 76 L 721.18 68.77 L 722.2 68.77 L 724.44 74.69 L 726.6 68.77 L 727.49 68.77 L 724.87 76 M 723.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 76 L 732.5 72.98 L 730.08 68.77 L 731.25 68.77 L 733.13 72.04 L 735.15 68.77 L 736.1 68.77 L 733.52 72.96 L 733.52 76 M 732.5 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.93 76 L 741.93 68.77 L 742.95 68.77 L 742.95 76 M 741.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 76 L 749.93 68.77 L 750.96 68.77 L 750.96 75.23 L 754.21 75.23 L 754.21 76 M 749.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 76 L 757.93 68.77 L 760.33 68.77 Q 761.41 68.77 762.07 69.01 Q 762.73 69.25 763.22 69.82 Q 763.98 70.73 763.98 72.22 Q 763.98 74.02 763.03 75.01 Q 762.08 76 760.35 76 M 757.93 76 M 758.96 75.23 L 760.27 75.23 Q 761.68 75.23 762.26 74.48 Q 762.89 73.67 762.89 72.31 Q 762.89 71.04 762.27 70.31 Q 761.9 69.87 761.38 69.7 Q 760.85 69.54 759.8 69.54 L 758.96 69.54 M 758.96 75.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 766.93 76 L 766.93 68.77 L 767.96 68.77 L 767.96 71.82 L 771.4 71.82 L 771.4 68.77 L 772.42 68.77 L 772.42 76 L 771.4 76 L 771.4 72.59 L 767.96 72.59 L 767.96 76 M 766.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 73.24 L 778.36 70.12 L 777.13 73.24 M 779.59 73.24 M 780.68 76 L 779.89 74 L 776.83 74 L 776.04 76 L 775.08 76 L 777.95 68.77 L 778.96 68.77 L 781.79 76 M 780.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 76 L 785.93 68.77 L 789.97 68.77 L 789.97 69.54 L 786.96 69.54 L 786.96 71.86 L 789.48 71.86 L 789.48 72.62 L 786.96 72.62 L 786.96 75.23 L 790.18 75.23 L 790.18 76 M 785.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 76 L 794.93 68.77 L 798.97 68.77 L 798.97 69.54 L 795.96 69.54 L 795.96 71.86 L 798.48 71.86 L 798.48 72.62 L 795.96 72.62 L 795.96 75.23 L 799.18 75.23 L 799.18 76 M 794.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 804.91 76 L 802.18 68.77 L 803.2 68.77 L 805.44 74.69 L 807.6 68.77 L 808.49 68.77 L 805.87 76 M 804.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 75.8 Q 816.05 76.18 815.07 76.18 Q 813.35 76.18 812.43 75.2 Q 811.51 74.22 811.51 72.39 Q 811.51 70.59 812.44 69.59 Q 813.37 68.59 815.06 68.59 Q 816.16 68.59 817.35 68.92 L 817.35 69.87 Q 815.86 69.36 815.06 69.36 Q 813.89 69.36 813.24 70.16 Q 812.6 70.95 812.6 72.4 Q 812.6 73.83 813.29 74.62 Q 813.98 75.41 815.23 75.41 Q 815.75 75.41 816.34 75.23 L 816.34 72.88 L 817.36 72.88 M 817.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 822.93 76 L 822.93 68.77 L 823.95 68.77 L 823.95 76 M 822.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 830.93 76 L 830.93 68.77 L 834.97 68.77 L 834.97 69.54 L 831.96 69.54 L 831.96 71.86 L 834.48 71.86 L 834.48 72.62 L 831.96 72.62 L 831.96 75.23 L 835.18 75.23 L 835.18 76 M 830.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 76 L 839.93 68.77 L 840.96 68.77 L 840.96 75.23 L 844.21 75.23 L 844.21 76 M 839.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 76 L 847.93 68.77 L 849.9 68.77 Q 851.21 68.77 851.78 69.22 Q 852.35 69.66 852.35 70.67 Q 852.35 71.82 851.57 72.47 Q 850.79 73.13 849.4 73.13 L 848.95 73.13 L 848.95 76 M 847.93 76 M 848.95 72.35 L 849.36 72.35 Q 850.28 72.35 850.77 71.93 Q 851.27 71.51 851.27 70.75 Q 851.27 70.1 850.88 69.82 Q 850.49 69.54 849.58 69.54 L 848.95 69.54 M 848.95 72.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 76 L 858.5 72.98 L 856.08 68.77 L 857.25 68.77 L 859.13 72.04 L 861.15 68.77 L 862.1 68.77 L 859.52 72.96 L 859.52 76 M 858.5 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 76.18 Q 867.62 76.18 866.49 75.86 L 866.49 74.85 Q 867.71 75.41 868.5 75.41 Q 869.1 75.41 869.47 75.1 Q 869.84 74.78 869.84 74.26 Q 869.84 73.84 869.6 73.54 Q 869.35 73.24 868.71 72.88 L 868.21 72.59 Q 867.28 72.06 866.91 71.59 Q 866.53 71.13 866.53 70.51 Q 866.53 69.67 867.13 69.13 Q 867.74 68.59 868.68 68.59 Q 869.51 68.59 870.44 68.87 L 870.44 69.81 Q 869.3 69.36 868.73 69.36 Q 868.2 69.36 867.86 69.64 Q 867.51 69.93 867.51 70.36 Q 867.51 70.72 867.76 71 Q 868.02 71.27 868.69 71.66 L 869.21 71.95 Q 870.15 72.48 870.52 72.96 Q 870.89 73.43 870.89 74.1 Q 870.89 75.04 870.19 75.61 Q 869.5 76.18 868.35 76.18 M 868.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 76.18 Q 876.34 76.18 875.43 75.19 Q 874.51 74.2 874.51 72.39 Q 874.51 70.58 875.44 69.59 Q 876.38 68.59 878.08 68.59 Q 879.05 68.59 880.35 68.91 L 880.35 69.87 Q 878.87 69.36 878.06 69.36 Q 876.89 69.36 876.24 70.16 Q 875.6 70.95 875.6 72.4 Q 875.6 73.78 876.29 74.58 Q 876.97 75.38 878.17 75.38 Q 879.19 75.38 880.36 74.75 L 880.36 75.63 Q 879.29 76.18 878.03 76.18 M 878.03 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 76 L 883.93 68.77 L 886.12 68.77 Q 887.16 68.77 887.71 69.23 Q 888.27 69.69 888.27 70.57 Q 888.27 72.01 886.81 72.62 L 889.22 76 L 887.96 76 L 885.91 72.94 L 884.95 72.94 L 884.95 76 M 883.93 76 M 884.95 72.18 L 885.28 72.18 Q 887.21 72.18 887.21 70.66 Q 887.21 69.54 885.59 69.54 L 884.95 69.54 M 884.95 72.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 73.24 L 895.36 70.12 L 894.13 73.24 M 896.59 73.24 M 897.68 76 L 896.89 74 L 893.83 74 L 893.04 76 L 892.08 76 L 894.95 68.77 L 895.96 68.77 L 898.79 76 M 897.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 75.8 Q 906.05 76.18 905.07 76.18 Q 903.35 76.18 902.43 75.2 Q 901.51 74.22 901.51 72.39 Q 901.51 70.59 902.44 69.59 Q 903.37 68.59 905.06 68.59 Q 906.16 68.59 907.35 68.92 L 907.35 69.87 Q 905.86 69.36 905.06 69.36 Q 903.89 69.36 903.24 70.16 Q 902.6 70.95 902.6 72.4 Q 902.6 73.83 903.29 74.62 Q 903.98 75.41 905.23 75.41 Q 905.75 75.41 906.34 75.23 L 906.34 72.88 L 907.36 72.88 M 907.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 76.18 Q 912.62 76.18 911.49 75.86 L 911.49 74.85 Q 912.71 75.41 913.5 75.41 Q 914.1 75.41 914.47 75.1 Q 914.84 74.78 914.84 74.26 Q 914.84 73.84 914.6 73.54 Q 914.35 73.24 913.71 72.88 L 913.21 72.59 Q 912.28 72.06 911.91 71.59 Q 911.53 71.13 911.53 70.51 Q 911.53 69.67 912.13 69.13 Q 912.74 68.59 913.68 68.59 Q 914.51 68.59 915.44 68.87 L 915.44 69.81 Q 914.3 69.36 913.73 69.36 Q 913.2 69.36 912.86 69.64 Q 912.51 69.93 912.51 70.36 Q 912.51 70.72 912.76 71 Q 913.02 71.27 913.69 71.66 L 914.21 71.95 Q 915.15 72.48 915.52 72.96 Q 915.89 73.43 915.89 74.1 Q 915.89 75.04 915.19 75.61 Q 914.5 76.18 913.35 76.18 M 913.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 76.18 Q 921.34 76.18 920.43 75.19 Q 919.51 74.2 919.51 72.39 Q 919.51 70.58 920.44 69.59 Q 921.38 68.59 923.08 68.59 Q 924.05 68.59 925.35 68.91 L 925.35 69.87 Q 923.87 69.36 923.06 69.36 Q 921.89 69.36 921.24 70.16 Q 920.6 70.95 920.6 72.4 Q 920.6 73.78 921.29 74.58 Q 921.97 75.38 923.17 75.38 Q 924.19 75.38 925.36 74.75 L 925.36 75.63 Q 924.29 76.18 923.03 76.18 M 923.03 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 76.18 Q 930.62 76.18 929.49 75.86 L 929.49 74.85 Q 930.71 75.41 931.5 75.41 Q 932.1 75.41 932.47 75.1 Q 932.84 74.78 932.84 74.26 Q 932.84 73.84 932.6 73.54 Q 932.35 73.24 931.71 72.88 L 931.21 72.59 Q 930.28 72.06 929.91 71.59 Q 929.53 71.13 929.53 70.51 Q 929.53 69.67 930.13 69.13 Q 930.74 68.59 931.68 68.59 Q 932.51 68.59 933.44 68.87 L 933.44 69.81 Q 932.3 69.36 931.73 69.36 Q 931.2 69.36 930.86 69.64 Q 930.51 69.93 930.51 70.36 Q 930.51 70.72 930.76 71 Q 931.02 71.27 931.69 71.66 L 932.21 71.95 Q 933.15 72.48 933.52 72.96 Q 933.89 73.43 933.89 74.1 Q 933.89 75.04 933.19 75.61 Q 932.5 76.18 931.35 76.18 M 931.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 76.18 Q 939.62 76.18 938.49 75.86 L 938.49 74.85 Q 939.71 75.41 940.5 75.41 Q 941.1 75.41 941.47 75.1 Q 941.84 74.78 941.84 74.26 Q 941.84 73.84 941.6 73.54 Q 941.35 73.24 940.71 72.88 L 940.21 72.59 Q 939.28 72.06 938.91 71.59 Q 938.53 71.13 938.53 70.51 Q 938.53 69.67 939.13 69.13 Q 939.74 68.59 940.68 68.59 Q 941.51 68.59 942.44 68.87 L 942.44 69.81 Q 941.3 69.36 940.73 69.36 Q 940.2 69.36 939.86 69.64 Q 939.51 69.93 939.51 70.36 Q 939.51 70.72 939.76 71 Q 940.02 71.27 940.69 71.66 L 941.21 71.95 Q 942.15 72.48 942.52 72.96 Q 942.89 73.43 942.89 74.1 Q 942.89 75.04 942.19 75.61 Q 941.5 76.18 940.35 76.18 M 940.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 76.18 Q 948.34 76.18 947.43 75.19 Q 946.51 74.2 946.51 72.39 Q 946.51 70.58 947.44 69.59 Q 948.38 68.59 950.08 68.59 Q 951.05 68.59 952.35 68.91 L 952.35 69.87 Q 950.87 69.36 950.06 69.36 Q 948.89 69.36 948.24 70.16 Q 947.6 70.95 947.6 72.4 Q 947.6 73.78 948.29 74.58 Q 948.97 75.38 950.17 75.38 Q 951.19 75.38 952.36 74.75 L 952.36 75.63 Q 951.29 76.18 950.03 76.18 M 950.03 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 73.24 L 958.36 70.12 L 957.13 73.24 M 959.59 73.24 M 960.68 76 L 959.89 74 L 956.83 74 L 956.04 76 L 955.08 76 L 957.95 68.77 L 958.96 68.77 L 961.79 76 M 960.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 75.8 Q 969.05 76.18 968.07 76.18 Q 966.35 76.18 965.43 75.2 Q 964.51 74.22 964.51 72.39 Q 964.51 70.59 965.44 69.59 Q 966.37 68.59 968.06 68.59 Q 969.16 68.59 970.35 68.92 L 970.35 69.87 Q 968.86 69.36 968.06 69.36 Q 966.89 69.36 966.24 70.16 Q 965.6 70.95 965.6 72.4 Q 965.6 73.83 966.29 74.62 Q 966.98 75.41 968.23 75.41 Q 968.75 75.41 969.34 75.23 L 969.34 72.88 L 970.36 72.88 M 970.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 76 L 973.93 68.77 L 974.89 68.77 L 974.89 72.33 L 977.82 68.77 L 978.85 68.77 L 976.02 72.22 L 979.35 76 L 978.05 76 L 974.89 72.34 L 974.89 76 M 973.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 76 L 982.18 68.77 L 983.2 68.77 L 985.44 74.69 L 987.6 68.77 L 988.49 68.77 L 985.87 76 M 984.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.91 76 L 991.18 68.77 L 992.2 68.77 L 994.44 74.69 L 996.6 68.77 L 997.49 68.77 L 994.87 76 M 993.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1000.93 76 L 1000.93 68.77 L 1001.94 68.77 L 1005.58 74.35 L 1005.58 68.77 L 1006.46 68.77 L 1006.46 76 L 1005.45 76 L 1001.81 70.42 L 1001.81 76 M 1000.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 75.8 Q 1014.05 76.18 1013.07 76.18 Q 1011.35 76.18 1010.43 75.2 Q 1009.51 74.22 1009.51 72.39 Q 1009.51 70.59 1010.44 69.59 Q 1011.37 68.59 1013.06 68.59 Q 1014.16 68.59 1015.35 68.92 L 1015.35 69.87 Q 1013.86 69.36 1013.06 69.36 Q 1011.89 69.36 1011.24 70.16 Q 1010.6 70.95 1010.6 72.4 Q 1010.6 73.83 1011.29 74.62 Q 1011.98 75.41 1013.23 75.41 Q 1013.75 75.41 1014.34 75.23 L 1014.34 72.88 L 1015.36 72.88 M 1015.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1018.93 76 L 1018.93 68.77 L 1019.94 68.77 L 1023.58 74.35 L 1023.58 68.77 L 1024.46 68.77 L 1024.46 76 L 1023.45 76 L 1019.81 70.42 L 1019.81 76 M 1018.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 76 L 1027.18 68.77 L 1028.2 68.77 L 1030.44 74.69 L 1032.6 68.77 L 1033.49 68.77 L 1030.87 76 M 1029.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 76 L 1036.93 68.77 L 1037.94 68.77 L 1041.58 74.35 L 1041.58 68.77 L 1042.46 68.77 L 1042.46 76 L 1041.45 76 L 1037.81 70.42 L 1037.81 76 M 1036.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 77.45 Q 1049.64 76.89 1048.49 76.13 Q 1048.03 76.18 1047.78 76.18 Q 1046.33 76.18 1045.42 75.13 Q 1044.51 74.07 1044.51 72.39 Q 1044.51 70.66 1045.43 69.63 Q 1046.35 68.59 1047.89 68.59 Q 1049.43 68.59 1050.35 69.63 Q 1051.27 70.66 1051.27 72.4 Q 1051.27 74.89 1049.42 75.85 Q 1050.66 76.4 1052 76.63 M 1051.35 77.45 M 1047.86 75.41 Q 1048.97 75.41 1049.57 74.62 Q 1050.18 73.82 1050.18 72.37 Q 1050.18 70.96 1049.57 70.16 Q 1048.97 69.36 1047.89 69.36 Q 1046.81 69.36 1046.2 70.16 Q 1045.6 70.96 1045.6 72.38 Q 1045.6 73.79 1046.2 74.6 Q 1046.8 75.41 1047.86 75.41 M 1047.86 75.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1055.93 76 L 1055.93 68.77 L 1059.97 68.77 L 1059.97 69.54 L 1056.96 69.54 L 1056.96 71.86 L 1059.48 71.86 L 1059.48 72.62 L 1056.96 72.62 L 1056.96 75.23 L 1060.18 75.23 L 1060.18 76 M 1055.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 76 L 1063.93 68.77 L 1066.33 68.77 Q 1067.41 68.77 1068.07 69.01 Q 1068.73 69.25 1069.22 69.82 Q 1069.98 70.73 1069.98 72.22 Q 1069.98 74.02 1069.03 75.01 Q 1068.08 76 1066.35 76 M 1063.93 76 M 1064.96 75.23 L 1066.27 75.23 Q 1067.68 75.23 1068.26 74.48 Q 1068.89 73.67 1068.89 72.31 Q 1068.89 71.04 1068.27 70.31 Q 1067.9 69.87 1067.38 69.7 Q 1066.85 69.54 1065.8 69.54 L 1064.96 69.54 M 1064.96 75.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.36 75.8 Q 1077.05 76.18 1076.07 76.18 Q 1074.35 76.18 1073.43 75.2 Q 1072.51 74.22 1072.51 72.39 Q 1072.51 70.59 1073.44 69.59 Q 1074.37 68.59 1076.06 68.59 Q 1077.16 68.59 1078.35 68.92 L 1078.35 69.87 Q 1076.86 69.36 1076.06 69.36 Q 1074.89 69.36 1074.24 70.16 Q 1073.6 70.95 1073.6 72.4 Q 1073.6 73.83 1074.29 74.62 Q 1074.98 75.41 1076.23 75.41 Q 1076.75 75.41 1077.34 75.23 L 1077.34 72.88 L 1078.36 72.88 M 1078.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1084.35 76.18 Q 1083.62 76.18 1082.49 75.86 L 1082.49 74.85 Q 1083.71 75.41 1084.5 75.41 Q 1085.1 75.41 1085.47 75.1 Q 1085.84 74.78 1085.84 74.26 Q 1085.84 73.84 1085.6 73.54 Q 1085.35 73.24 1084.71 72.88 L 1084.21 72.59 Q 1083.28 72.06 1082.91 71.59 Q 1082.53 71.13 1082.53 70.51 Q 1082.53 69.67 1083.13 69.13 Q 1083.74 68.59 1084.68 68.59 Q 1085.51 68.59 1086.44 68.87 L 1086.44 69.81 Q 1085.3 69.36 1084.73 69.36 Q 1084.2 69.36 1083.86 69.64 Q 1083.51 69.93 1083.51 70.36 Q 1083.51 70.72 1083.76 71 Q 1084.02 71.27 1084.69 71.66 L 1085.21 71.95 Q 1086.15 72.48 1086.52 72.96 Q 1086.89 73.43 1086.89 74.1 Q 1086.89 75.04 1086.19 75.61 Q 1085.5 76.18 1084.35 76.18 M 1084.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 76 L 1091.93 68.77 L 1095.97 68.77 L 1095.97 69.54 L 1092.96 69.54 L 1092.96 71.96 L 1095.49 71.96 L 1095.49 72.72 L 1092.96 72.72 L 1092.96 76 M 1091.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 76 L 1100.93 68.77 L 1101.96 68.77 L 1101.96 75.23 L 1105.21 75.23 L 1105.21 76 M 1100.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 76 L 1108.93 68.77 L 1111.33 68.77 Q 1112.41 68.77 1113.07 69.01 Q 1113.73 69.25 1114.22 69.82 Q 1114.98 70.73 1114.98 72.22 Q 1114.98 74.02 1114.03 75.01 Q 1113.08 76 1111.35 76 M 1108.93 76 M 1109.96 75.23 L 1111.27 75.23 Q 1112.68 75.23 1113.26 74.48 Q 1113.89 73.67 1113.89 72.31 Q 1113.89 71.04 1113.27 70.31 Q 1112.9 69.87 1112.38 69.7 Q 1111.85 69.54 1110.8 69.54 L 1109.96 69.54 M 1109.96 75.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 76 L 1117.93 68.77 L 1120.33 68.77 Q 1121.41 68.77 1122.07 69.01 Q 1122.73 69.25 1123.22 69.82 Q 1123.98 70.73 1123.98 72.22 Q 1123.98 74.02 1123.03 75.01 Q 1122.08 76 1120.35 76 M 1117.93 76 M 1118.96 75.23 L 1120.27 75.23 Q 1121.68 75.23 1122.26 74.48 Q 1122.89 73.67 1122.89 72.31 Q 1122.89 71.04 1122.27 70.31 Q 1121.9 69.87 1121.38 69.7 Q 1120.85 69.54 1119.8 69.54 L 1118.96 69.54 M 1118.96 75.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1127.93 76 L 1127.93 68.77 L 1131.97 68.77 L 1131.97 69.54 L 1128.96 69.54 L 1128.96 71.86 L 1131.48 71.86 L 1131.48 72.62 L 1128.96 72.62 L 1128.96 75.23 L 1132.18 75.23 L 1132.18 76 M 1127.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 77.45 Q 1139.64 76.89 1138.49 76.13 Q 1138.03 76.18 1137.78 76.18 Q 1136.33 76.18 1135.42 75.13 Q 1134.51 74.07 1134.51 72.39 Q 1134.51 70.66 1135.43 69.63 Q 1136.35 68.59 1137.89 68.59 Q 1139.43 68.59 1140.35 69.63 Q 1141.27 70.66 1141.27 72.4 Q 1141.27 74.89 1139.42 75.85 Q 1140.66 76.4 1142 76.63 M 1141.35 77.45 M 1137.86 75.41 Q 1138.97 75.41 1139.57 74.62 Q 1140.18 73.82 1140.18 72.37 Q 1140.18 70.96 1139.57 70.16 Q 1138.97 69.36 1137.89 69.36 Q 1136.81 69.36 1136.2 70.16 Q 1135.6 70.96 1135.6 72.38 Q 1135.6 73.79 1136.2 74.6 Q 1136.8 75.41 1137.86 75.41 M 1137.86 75.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1146.93 76 L 1146.93 68.77 L 1147.95 68.77 L 1147.95 76 M 1146.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1154.93 76 L 1154.93 68.77 L 1158.97 68.77 L 1158.97 69.54 L 1155.96 69.54 L 1155.96 71.86 L 1158.48 71.86 L 1158.48 72.62 L 1155.96 72.62 L 1155.96 75.23 L 1159.18 75.23 L 1159.18 76 M 1154.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1168.36 75.8 Q 1167.05 76.18 1166.07 76.18 Q 1164.35 76.18 1163.43 75.2 Q 1162.51 74.22 1162.51 72.39 Q 1162.51 70.59 1163.44 69.59 Q 1164.37 68.59 1166.06 68.59 Q 1167.16 68.59 1168.35 68.92 L 1168.35 69.87 Q 1166.86 69.36 1166.06 69.36 Q 1164.89 69.36 1164.24 70.16 Q 1163.6 70.95 1163.6 72.4 Q 1163.6 73.83 1164.29 74.62 Q 1164.98 75.41 1166.23 75.41 Q 1166.75 75.41 1167.34 75.23 L 1167.34 72.88 L 1168.36 72.88 M 1168.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 75.8 Q 1176.05 76.18 1175.07 76.18 Q 1173.35 76.18 1172.43 75.2 Q 1171.51 74.22 1171.51 72.39 Q 1171.51 70.59 1172.44 69.59 Q 1173.37 68.59 1175.06 68.59 Q 1176.16 68.59 1177.35 68.92 L 1177.35 69.87 Q 1175.86 69.36 1175.06 69.36 Q 1173.89 69.36 1173.24 70.16 Q 1172.6 70.95 1172.6 72.4 Q 1172.6 73.83 1173.29 74.62 Q 1173.98 75.41 1175.23 75.41 Q 1175.75 75.41 1176.34 75.23 L 1176.34 72.88 L 1177.36 72.88 M 1177.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1180.87 76 L 1179.01 68.77 L 1180 68.77 L 1181.48 74.48 L 1182.84 68.77 L 1183.82 68.77 L 1185.11 74.4 L 1186.71 68.77 L 1187.54 68.77 L 1185.51 76 L 1184.49 76 L 1183.22 70.43 L 1181.89 76 M 1180.87 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 76 L 1189.18 68.77 L 1190.2 68.77 L 1192.44 74.69 L 1194.6 68.77 L 1195.49 68.77 L 1192.87 76 M 1191.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 76 L 1199.93 68.77 L 1200.96 68.77 L 1200.96 75.23 L 1204.21 75.23 L 1204.21 76 M 1199.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 76 L 1209.65 69.54 L 1207.09 69.54 L 1207.09 68.77 L 1213.24 68.77 L 1213.24 69.54 L 1210.68 69.54 L 1210.68 76 M 1209.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 76.18 Q 1218.34 76.18 1217.43 75.19 Q 1216.51 74.2 1216.51 72.39 Q 1216.51 70.58 1217.44 69.59 Q 1218.38 68.59 1220.08 68.59 Q 1221.05 68.59 1222.35 68.91 L 1222.35 69.87 Q 1220.87 69.36 1220.06 69.36 Q 1218.89 69.36 1218.24 70.16 Q 1217.6 70.95 1217.6 72.4 Q 1217.6 73.78 1218.29 74.58 Q 1218.97 75.38 1220.17 75.38 Q 1221.19 75.38 1222.36 74.75 L 1222.36 75.63 Q 1221.29 76.18 1220.03 76.18 M 1220.03 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1227.91 76 L 1225.18 68.77 L 1226.2 68.77 L 1228.44 74.69 L 1230.6 68.77 L 1231.49 68.77 L 1228.87 76 M 1227.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 73.24 L 1237.36 70.12 L 1236.13 73.24 M 1238.59 73.24 M 1239.68 76 L 1238.89 74 L 1235.83 74 L 1235.04 76 L 1234.08 76 L 1236.95 68.77 L 1237.96 68.77 L 1240.79 76 M 1239.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1244.93 76 L 1244.93 68.77 L 1248.97 68.77 L 1248.97 69.54 L 1245.96 69.54 L 1245.96 71.96 L 1248.49 71.96 L 1248.49 72.72 L 1245.96 72.72 L 1245.96 76 M 1244.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 76 L 1252.93 68.77 L 1254.9 68.77 Q 1256.21 68.77 1256.78 69.22 Q 1257.35 69.66 1257.35 70.67 Q 1257.35 71.82 1256.57 72.47 Q 1255.79 73.13 1254.4 73.13 L 1253.95 73.13 L 1253.95 76 M 1252.93 76 M 1253.95 72.35 L 1254.36 72.35 Q 1255.28 72.35 1255.77 71.93 Q 1256.27 71.51 1256.27 70.75 Q 1256.27 70.1 1255.88 69.82 Q 1255.49 69.54 1254.58 69.54 L 1253.95 69.54 M 1253.95 72.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1263.65 76 L 1263.65 69.54 L 1261.09 69.54 L 1261.09 68.77 L 1267.24 68.77 L 1267.24 69.54 L 1264.68 69.54 L 1264.68 76 M 1263.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1273.35 76.18 Q 1272.62 76.18 1271.49 75.86 L 1271.49 74.85 Q 1272.71 75.41 1273.5 75.41 Q 1274.1 75.41 1274.47 75.1 Q 1274.84 74.78 1274.84 74.26 Q 1274.84 73.84 1274.6 73.54 Q 1274.35 73.24 1273.71 72.88 L 1273.21 72.59 Q 1272.28 72.06 1271.91 71.59 Q 1271.53 71.13 1271.53 70.51 Q 1271.53 69.67 1272.13 69.13 Q 1272.74 68.59 1273.68 68.59 Q 1274.51 68.59 1275.44 68.87 L 1275.44 69.81 Q 1274.3 69.36 1273.73 69.36 Q 1273.2 69.36 1272.86 69.64 Q 1272.51 69.93 1272.51 70.36 Q 1272.51 70.72 1272.76 71 Q 1273.02 71.27 1273.69 71.66 L 1274.21 71.95 Q 1275.15 72.48 1275.52 72.96 Q 1275.89 73.43 1275.89 74.1 Q 1275.89 75.04 1275.19 75.61 Q 1274.5 76.18 1273.35 76.18 M 1273.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 76 L 1279.93 68.77 L 1282.33 68.77 Q 1283.41 68.77 1284.07 69.01 Q 1284.73 69.25 1285.22 69.82 Q 1285.98 70.73 1285.98 72.22 Q 1285.98 74.02 1285.03 75.01 Q 1284.08 76 1282.35 76 M 1279.93 76 M 1280.96 75.23 L 1282.27 75.23 Q 1283.68 75.23 1284.26 74.48 Q 1284.89 73.67 1284.89 72.31 Q 1284.89 71.04 1284.27 70.31 Q 1283.9 69.87 1283.38 69.7 Q 1282.85 69.54 1281.8 69.54 L 1280.96 69.54 M 1280.96 75.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 76 L 1288.18 68.77 L 1289.2 68.77 L 1291.44 74.69 L 1293.6 68.77 L 1294.49 68.77 L 1291.87 76 M 1290.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.65 76 L 1299.65 69.54 L 1297.09 69.54 L 1297.09 68.77 L 1303.24 68.77 L 1303.24 69.54 L 1300.68 69.54 L 1300.68 76 M 1299.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 76 L 1308.93 68.77 L 1309.95 68.77 L 1309.95 76 M 1308.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 76 L 1316.93 68.77 L 1320.97 68.77 L 1320.97 69.54 L 1317.96 69.54 L 1317.96 71.86 L 1320.48 71.86 L 1320.48 72.62 L 1317.96 72.62 L 1317.96 75.23 L 1321.18 75.23 L 1321.18 76 M 1316.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 76 L 1326.65 69.54 L 1324.09 69.54 L 1324.09 68.77 L 1330.24 68.77 L 1330.24 69.54 L 1327.68 69.54 L 1327.68 76 M 1326.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 76 L 1333.93 68.77 L 1334.96 68.77 L 1334.96 71.82 L 1338.4 71.82 L 1338.4 68.77 L 1339.42 68.77 L 1339.42 76 L 1338.4 76 L 1338.4 72.59 L 1334.96 72.59 L 1334.96 76 M 1333.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 76 L 1342.93 68.77 L 1343.89 68.77 L 1343.89 72.33 L 1346.82 68.77 L 1347.85 68.77 L 1345.02 72.22 L 1348.35 76 L 1347.05 76 L 1343.89 72.34 L 1343.89 76 M 1342.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 76 L 1352.93 68.77 L 1356.97 68.77 L 1356.97 69.54 L 1353.96 69.54 L 1353.96 71.86 L 1356.48 71.86 L 1356.48 72.62 L 1353.96 72.62 L 1353.96 75.23 L 1357.18 75.23 L 1357.18 76 M 1352.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1361.93 76 L 1361.93 68.77 L 1365.97 68.77 L 1365.97 69.54 L 1362.96 69.54 L 1362.96 71.86 L 1365.48 71.86 L 1365.48 72.62 L 1362.96 72.62 L 1362.96 75.23 L 1366.18 75.23 L 1366.18 76 M 1361.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1370.93 76 L 1370.93 68.77 L 1374.97 68.77 L 1374.97 69.54 L 1371.96 69.54 L 1371.96 71.86 L 1374.48 71.86 L 1374.48 72.62 L 1371.96 72.62 L 1371.96 75.23 L 1375.18 75.23 L 1375.18 76 M 1370.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1379.93 76 L 1379.93 68.77 L 1380.96 68.77 L 1380.96 75.23 L 1384.21 75.23 L 1384.21 76 M 1379.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.65 76 L 1389.65 69.54 L 1387.09 69.54 L 1387.09 68.77 L 1393.24 68.77 L 1393.24 69.54 L 1390.68 69.54 L 1390.68 76 M 1389.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1400.59 73.24 L 1399.36 70.12 L 1398.13 73.24 M 1400.59 73.24 M 1401.68 76 L 1400.89 74 L 1397.83 74 L 1397.04 76 L 1396.08 76 L 1398.95 68.77 L 1399.96 68.77 L 1402.79 76 M 1401.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 73.47 L 1405.72 72.75 L 1410.06 72.75 L 1410.06 73.47 M 1405.72 73.47"/></g><rect x="0" y="78" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="78" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="78" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="78" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="78" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="78" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="78" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="78" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="78" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="78" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="78" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="639" y="78" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="78" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="78" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="78" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="78" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="78" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="78" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="702" y="78" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="78" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="78" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="78" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="78" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="78" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="78" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="801" y="78" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="78" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="78" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="78" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="78" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="78" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="78" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="78" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="78" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="78" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="78" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="78" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="78" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="78" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="78" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="78" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="78" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="78" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="78" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="78" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="990" y="78" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="78" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="78" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="78" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="78" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1053" y="78" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="78" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1080" y="78" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="78" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="78" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="78" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="78" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 89 L 0.93 81.77 L 2.35 81.77 L 4.36 87.36 L 6.42 81.77 L 7.69 81.77 L 7.69 89 L 6.73 89 L 6.73 83.12 L 4.74 88.52 L 3.75 88.52 L 1.81 83.11 L 1.81 89 M 0.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 86.24 L 13.36 83.12 L 12.13 86.24 M 14.59 86.24 M 15.68 89 L 14.89 87 L 11.83 87 L 11.04 89 L 10.08 89 L 12.95 81.77 L 13.96 81.77 L 16.79 89 M 15.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 23.59 86.24 L 22.36 83.12 L 21.13 86.24 M 23.59 86.24 M 24.68 89 L 23.89 87 L 20.83 87 L 20.04 89 L 19.08 89 L 21.95 81.77 L 22.96 81.77 L 25.79 89 M 24.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 30.65 89 L 30.65 82.54 L 28.09 82.54 L 28.09 81.77 L 34.24 81.77 L 34.24 82.54 L 31.68 82.54 L 31.68 89 M 30.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 86.47 L 37.72 85.75 L 42.06 85.75 L 42.06 86.47 M 37.72 86.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 86.47 L 46.72 85.75 L 51.06 85.75 L 51.06 86.47 M 46.72 86.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 57.65 89 L 57.65 82.54 L 55.09 82.54 L 55.09 81.77 L 61.24 81.77 L 61.24 82.54 L 58.68 82.54 L 58.68 89 M 57.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 68.59 86.24 L 67.36 83.12 L 66.13 86.24 M 68.59 86.24 M 69.68 89 L 68.89 87 L 65.83 87 L 65.04 89 L 64.08 89 L 66.95 81.77 L 67.96 81.77 L 70.79 89 M 69.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 77.59 86.24 L 76.36 83.12 L 75.13 86.24 M 77.59 86.24 M 78.68 89 L 77.89 87 L 74.83 87 L 74.04 89 L 73.08 89 L 75.95 81.77 L 76.96 81.77 L 79.79 89 M 78.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 83.93 89 L 83.93 81.77 L 84.96 81.77 L 84.96 88.23 L 88.21 88.23 L 88.21 89 M 83.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 94.35 89.18 Q 93.62 89.18 92.49 88.86 L 92.49 87.85 Q 93.71 88.41 94.5 88.41 Q 95.1 88.41 95.47 88.1 Q 95.84 87.78 95.84 87.26 Q 95.84 86.84 95.6 86.54 Q 95.35 86.24 94.71 85.88 L 94.21 85.59 Q 93.28 85.06 92.91 84.59 Q 92.53 84.13 92.53 83.51 Q 92.53 82.67 93.13 82.13 Q 93.74 81.59 94.68 81.59 Q 95.51 81.59 96.44 81.87 L 96.44 82.81 Q 95.3 82.36 94.73 82.36 Q 94.2 82.36 93.86 82.64 Q 93.51 82.93 93.51 83.36 Q 93.51 83.72 93.76 84 Q 94.02 84.27 94.69 84.66 L 95.21 84.95 Q 96.15 85.48 96.52 85.96 Q 96.89 86.43 96.89 87.1 Q 96.89 88.04 96.19 88.61 Q 95.5 89.18 94.35 89.18 M 94.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 106.36 88.8 Q 105.05 89.18 104.07 89.18 Q 102.35 89.18 101.43 88.2 Q 100.51 87.22 100.51 85.39 Q 100.51 83.59 101.44 82.59 Q 102.37 81.59 104.06 81.59 Q 105.16 81.59 106.35 81.92 L 106.35 82.87 Q 104.86 82.36 104.06 82.36 Q 102.89 82.36 102.24 83.16 Q 101.6 83.95 101.6 85.4 Q 101.6 86.83 102.29 87.62 Q 102.98 88.41 104.23 88.41 Q 104.75 88.41 105.34 88.23 L 105.34 85.88 L 106.36 85.88 M 106.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 113.59 86.24 L 112.36 83.12 L 111.13 86.24 M 113.59 86.24 M 114.68 89 L 113.89 87 L 110.83 87 L 110.04 89 L 109.08 89 L 111.95 81.77 L 112.96 81.77 L 115.79 89 M 114.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 120.65 89 L 120.65 82.54 L 118.09 82.54 L 118.09 81.77 L 124.24 81.77 L 124.24 82.54 L 121.68 82.54 L 121.68 89 M 120.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 126.93 89 L 126.93 81.77 L 128.35 81.77 L 130.36 87.36 L 132.42 81.77 L 133.69 81.77 L 133.69 89 L 132.73 89 L 132.73 83.12 L 130.74 88.52 L 129.75 88.52 L 127.81 83.11 L 127.81 89 M 126.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 139.35 89.18 Q 138.62 89.18 137.49 88.86 L 137.49 87.85 Q 138.71 88.41 139.5 88.41 Q 140.1 88.41 140.47 88.1 Q 140.84 87.78 140.84 87.26 Q 140.84 86.84 140.6 86.54 Q 140.35 86.24 139.71 85.88 L 139.21 85.59 Q 138.28 85.06 137.91 84.59 Q 137.53 84.13 137.53 83.51 Q 137.53 82.67 138.13 82.13 Q 138.74 81.59 139.68 81.59 Q 140.51 81.59 141.44 81.87 L 141.44 82.81 Q 140.3 82.36 139.73 82.36 Q 139.2 82.36 138.86 82.64 Q 138.51 82.93 138.51 83.36 Q 138.51 83.72 138.76 84 Q 139.02 84.27 139.69 84.66 L 140.21 84.95 Q 141.15 85.48 141.52 85.96 Q 141.89 86.43 141.89 87.1 Q 141.89 88.04 141.19 88.61 Q 140.5 89.18 139.35 89.18 M 139.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 147.65 89 L 147.65 82.54 L 145.09 82.54 L 145.09 81.77 L 151.24 81.77 L 151.24 82.54 L 148.68 82.54 L 148.68 89 M 147.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 158.59 86.24 L 157.36 83.12 L 156.13 86.24 M 158.59 86.24 M 159.68 89 L 158.89 87 L 155.83 87 L 155.04 89 L 154.08 89 L 156.95 81.77 L 157.96 81.77 L 160.79 89 M 159.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 164.93 89 L 164.93 81.77 L 168.97 81.77 L 168.97 82.54 L 165.96 82.54 L 165.96 84.96 L 168.49 84.96 L 168.49 85.72 L 165.96 85.72 L 165.96 89 M 164.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 176.59 86.24 L 175.36 83.12 L 174.13 86.24 M 176.59 86.24 M 177.68 89 L 176.89 87 L 173.83 87 L 173.04 89 L 172.08 89 L 174.95 81.77 L 175.96 81.77 L 178.79 89 M 177.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 89 L 181.93 81.77 L 183.9 81.77 Q 185.21 81.77 185.78 82.22 Q 186.35 82.66 186.35 83.67 Q 186.35 84.82 185.57 85.47 Q 184.79 86.13 183.4 86.13 L 182.95 86.13 L 182.95 89 M 181.93 89 M 182.95 85.35 L 183.36 85.35 Q 184.28 85.35 184.77 84.93 Q 185.27 84.51 185.27 83.75 Q 185.27 83.1 184.88 82.82 Q 184.49 82.54 183.58 82.54 L 182.95 82.54 M 182.95 85.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.93 89 L 190.93 81.77 L 191.89 81.77 L 191.89 85.33 L 194.82 81.77 L 195.85 81.77 L 193.02 85.22 L 196.35 89 L 195.05 89 L 191.89 85.34 L 191.89 89 M 190.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 199.72 86.47 L 199.72 85.75 L 204.06 85.75 L 204.06 86.47 M 199.72 86.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.72 86.47 L 208.72 85.75 L 213.06 85.75 L 213.06 86.47 M 208.72 86.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 219.65 89 L 219.65 82.54 L 217.09 82.54 L 217.09 81.77 L 223.24 81.77 L 223.24 82.54 L 220.68 82.54 L 220.68 89 M 219.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.93 89 L 226.93 81.77 L 228.9 81.77 Q 230.21 81.77 230.78 82.22 Q 231.35 82.66 231.35 83.67 Q 231.35 84.82 230.57 85.47 Q 229.79 86.13 228.4 86.13 L 227.95 86.13 L 227.95 89 M 226.93 89 M 227.95 85.35 L 228.36 85.35 Q 229.28 85.35 229.77 84.93 Q 230.27 84.51 230.27 83.75 Q 230.27 83.1 229.88 82.82 Q 229.49 82.54 228.58 82.54 L 227.95 82.54 M 227.95 85.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 235.93 89 L 235.93 81.77 L 237.9 81.77 Q 239.21 81.77 239.78 82.22 Q 240.35 82.66 240.35 83.67 Q 240.35 84.82 239.57 85.47 Q 238.79 86.13 237.4 86.13 L 236.95 86.13 L 236.95 89 M 235.93 89 M 236.95 85.35 L 237.36 85.35 Q 238.28 85.35 238.77 84.93 Q 239.27 84.51 239.27 83.75 Q 239.27 83.1 238.88 82.82 Q 238.49 82.54 237.58 82.54 L 236.95 82.54 M 236.95 85.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 243.93 89 L 243.93 81.77 L 245.35 81.77 L 247.36 87.36 L 249.42 81.77 L 250.69 81.77 L 250.69 89 L 249.73 89 L 249.73 83.12 L 247.74 88.52 L 246.75 88.52 L 244.81 83.11 L 244.81 89 M 243.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 255.65 89 L 255.65 82.54 L 253.09 82.54 L 253.09 81.77 L 259.24 81.77 L 259.24 82.54 L 256.68 82.54 L 256.68 89 M 255.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 266.59 86.24 L 265.36 83.12 L 264.13 86.24 M 266.59 86.24 M 267.68 89 L 266.89 87 L 263.83 87 L 263.04 89 L 262.08 89 L 264.95 81.77 L 265.96 81.77 L 268.79 89 M 267.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 275.59 86.24 L 274.36 83.12 L 273.13 86.24 M 275.59 86.24 M 276.68 89 L 275.89 87 L 272.83 87 L 272.04 89 L 271.08 89 L 273.95 81.77 L 274.96 81.77 L 277.79 89 M 276.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 281.93 89 L 281.93 81.77 L 282.96 81.77 L 282.96 88.23 L 286.21 88.23 L 286.21 89 M 281.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 289.93 89 L 289.93 81.77 L 291.9 81.77 Q 293.21 81.77 293.78 82.22 Q 294.35 82.66 294.35 83.67 Q 294.35 84.82 293.57 85.47 Q 292.79 86.13 291.4 86.13 L 290.95 86.13 L 290.95 89 M 289.93 89 M 290.95 85.35 L 291.36 85.35 Q 292.28 85.35 292.77 84.93 Q 293.27 84.51 293.27 83.75 Q 293.27 83.1 292.88 82.82 Q 292.49 82.54 291.58 82.54 L 290.95 82.54 M 290.95 85.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 300.65 89 L 300.65 82.54 L 298.09 82.54 L 298.09 81.77 L 304.24 81.77 L 304.24 82.54 L 301.68 82.54 L 301.68 89 M 300.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 307.93 89 L 307.93 81.77 L 308.94 81.77 L 312.58 87.35 L 312.58 81.77 L 313.46 81.77 L 313.46 89 L 312.45 89 L 308.81 83.42 L 308.81 89 M 307.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 318.91 89 L 316.18 81.77 L 317.2 81.77 L 319.44 87.69 L 321.6 81.77 L 322.49 81.77 L 319.87 89 M 318.91 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 331.36 88.8 Q 330.05 89.18 329.07 89.18 Q 327.35 89.18 326.43 88.2 Q 325.51 87.22 325.51 85.39 Q 325.51 83.59 326.44 82.59 Q 327.37 81.59 329.06 81.59 Q 330.16 81.59 331.35 81.92 L 331.35 82.87 Q 329.86 82.36 329.06 82.36 Q 327.89 82.36 327.24 83.16 Q 326.6 83.95 326.6 85.4 Q 326.6 86.83 327.29 87.62 Q 327.98 88.41 329.23 88.41 Q 329.75 88.41 330.34 88.23 L 330.34 85.88 L 331.36 85.88 M 331.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 334.93 89 L 334.93 81.77 L 337.12 81.77 Q 338.16 81.77 338.71 82.23 Q 339.27 82.69 339.27 83.57 Q 339.27 85.01 337.81 85.62 L 340.22 89 L 338.96 89 L 336.91 85.94 L 335.95 85.94 L 335.95 89 M 334.93 89 M 335.95 85.18 L 336.28 85.18 Q 338.21 85.18 338.21 83.66 Q 338.21 82.54 336.59 82.54 L 335.95 82.54 M 335.95 85.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 86.47 L 343.72 85.75 L 348.06 85.75 L 348.06 86.47 M 343.72 86.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 86.47 L 352.72 85.75 L 357.06 85.75 L 357.06 86.47 M 352.72 86.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 365.59 86.24 L 364.36 83.12 L 363.13 86.24 M 365.59 86.24 M 366.68 89 L 365.89 87 L 362.83 87 L 362.04 89 L 361.08 89 L 363.95 81.77 L 364.96 81.77 L 367.79 89 M 366.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 371.93 89 L 371.93 81.77 L 372.96 81.77 L 372.96 88.23 L 376.21 88.23 L 376.21 89 M 371.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 380.93 89 L 380.93 81.77 L 384.97 81.77 L 384.97 82.54 L 381.96 82.54 L 381.96 84.96 L 384.49 84.96 L 384.49 85.72 L 381.96 85.72 L 381.96 89 M 380.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 394.36 88.8 Q 393.05 89.18 392.07 89.18 Q 390.35 89.18 389.43 88.2 Q 388.51 87.22 388.51 85.39 Q 388.51 83.59 389.44 82.59 Q 390.37 81.59 392.06 81.59 Q 393.16 81.59 394.35 81.92 L 394.35 82.87 Q 392.86 82.36 392.06 82.36 Q 390.89 82.36 390.24 83.16 Q 389.6 83.95 389.6 85.4 Q 389.6 86.83 390.29 87.62 Q 390.98 88.41 392.23 88.41 Q 392.75 88.41 393.34 88.23 L 393.34 85.88 L 394.36 85.88 M 394.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 398.93 89 L 398.93 81.77 L 399.96 81.77 L 399.96 88.23 L 403.21 88.23 L 403.21 89 M 398.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.93 89 L 406.93 81.77 L 407.89 81.77 L 407.89 85.33 L 410.82 81.77 L 411.85 81.77 L 409.02 85.22 L 412.35 89 L 411.05 89 L 407.89 85.34 L 407.89 89 M 406.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 418.35 89.18 Q 417.62 89.18 416.49 88.86 L 416.49 87.85 Q 417.71 88.41 418.5 88.41 Q 419.1 88.41 419.47 88.1 Q 419.84 87.78 419.84 87.26 Q 419.84 86.84 419.6 86.54 Q 419.35 86.24 418.71 85.88 L 418.21 85.59 Q 417.28 85.06 416.91 84.59 Q 416.53 84.13 416.53 83.51 Q 416.53 82.67 417.13 82.13 Q 417.74 81.59 418.68 81.59 Q 419.51 81.59 420.44 81.87 L 420.44 82.81 Q 419.3 82.36 418.73 82.36 Q 418.2 82.36 417.86 82.64 Q 417.51 82.93 417.51 83.36 Q 417.51 83.72 417.76 84 Q 418.02 84.27 418.69 84.66 L 419.21 84.95 Q 420.15 85.48 420.52 85.96 Q 420.89 86.43 420.89 87.1 Q 420.89 88.04 420.19 88.61 Q 419.5 89.18 418.35 89.18 M 418.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 86.47 L 424.72 85.75 L 429.06 85.75 L 429.06 86.47 M 424.72 86.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 436.35 89.18 Q 435.62 89.18 434.49 88.86 L 434.49 87.85 Q 435.71 88.41 436.5 88.41 Q 437.1 88.41 437.47 88.1 Q 437.84 87.78 437.84 87.26 Q 437.84 86.84 437.6 86.54 Q 437.35 86.24 436.71 85.88 L 436.21 85.59 Q 435.28 85.06 434.91 84.59 Q 434.53 84.13 434.53 83.51 Q 434.53 82.67 435.13 82.13 Q 435.74 81.59 436.68 81.59 Q 437.51 81.59 438.44 81.87 L 438.44 82.81 Q 437.3 82.36 436.73 82.36 Q 436.2 82.36 435.86 82.64 Q 435.51 82.93 435.51 83.36 Q 435.51 83.72 435.76 84 Q 436.02 84.27 436.69 84.66 L 437.21 84.95 Q 438.15 85.48 438.52 85.96 Q 438.89 86.43 438.89 87.1 Q 438.89 88.04 438.19 88.61 Q 437.5 89.18 436.35 89.18 M 436.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 446.59 86.24 L 445.36 83.12 L 444.13 86.24 M 446.59 86.24 M 447.68 89 L 446.89 87 L 443.83 87 L 443.04 89 L 442.08 89 L 444.95 81.77 L 445.96 81.77 L 448.79 89 M 447.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 454.35 89.18 Q 453.62 89.18 452.49 88.86 L 452.49 87.85 Q 453.71 88.41 454.5 88.41 Q 455.1 88.41 455.47 88.1 Q 455.84 87.78 455.84 87.26 Q 455.84 86.84 455.6 86.54 Q 455.35 86.24 454.71 85.88 L 454.21 85.59 Q 453.28 85.06 452.91 84.59 Q 452.53 84.13 452.53 83.51 Q 452.53 82.67 453.13 82.13 Q 453.74 81.59 454.68 81.59 Q 455.51 81.59 456.44 81.87 L 456.44 82.81 Q 455.3 82.36 454.73 82.36 Q 454.2 82.36 453.86 82.64 Q 453.51 82.93 453.51 83.36 Q 453.51 83.72 453.76 84 Q 454.02 84.27 454.69 84.66 L 455.21 84.95 Q 456.15 85.48 456.52 85.96 Q 456.89 86.43 456.89 87.1 Q 456.89 88.04 456.19 88.61 Q 455.5 89.18 454.35 89.18 M 454.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.93 89 L 460.93 81.77 L 463.12 81.77 Q 464.16 81.77 464.71 82.23 Q 465.27 82.69 465.27 83.57 Q 465.27 85.01 463.81 85.62 L 466.22 89 L 464.96 89 L 462.91 85.94 L 461.95 85.94 L 461.95 89 M 460.93 89 M 461.95 85.18 L 462.28 85.18 Q 464.21 85.18 464.21 83.66 Q 464.21 82.54 462.59 82.54 L 461.95 82.54 M 461.95 85.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 469.72 86.47 L 469.72 85.75 L 474.06 85.75 L 474.06 86.47 M 469.72 86.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 484.36 88.8 Q 483.05 89.18 482.07 89.18 Q 480.35 89.18 479.43 88.2 Q 478.51 87.22 478.51 85.39 Q 478.51 83.59 479.44 82.59 Q 480.37 81.59 482.06 81.59 Q 483.16 81.59 484.35 81.92 L 484.35 82.87 Q 482.86 82.36 482.06 82.36 Q 480.89 82.36 480.24 83.16 Q 479.6 83.95 479.6 85.4 Q 479.6 86.83 480.29 87.62 Q 480.98 88.41 482.23 88.41 Q 482.75 88.41 483.34 88.23 L 483.34 85.88 L 484.36 85.88 M 484.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 487.93 89 L 487.93 81.77 L 490.12 81.77 Q 491.16 81.77 491.71 82.23 Q 492.27 82.69 492.27 83.57 Q 492.27 85.01 490.81 85.62 L 493.22 89 L 491.96 89 L 489.91 85.94 L 488.95 85.94 L 488.95 89 M 487.93 89 M 488.95 85.18 L 489.28 85.18 Q 491.21 85.18 491.21 83.66 Q 491.21 82.54 489.59 82.54 L 488.95 82.54 M 488.95 85.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 498.91 89 L 496.18 81.77 L 497.2 81.77 L 499.44 87.69 L 501.6 81.77 L 502.49 81.77 L 499.87 89 M 498.91 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 507.65 89 L 507.65 82.54 L 505.09 82.54 L 505.09 81.77 L 511.24 81.77 L 511.24 82.54 L 508.68 82.54 L 508.68 89 M 507.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 518.59 86.24 L 517.36 83.12 L 516.13 86.24 M 518.59 86.24 M 519.68 89 L 518.89 87 L 515.83 87 L 515.04 89 L 514.08 89 L 516.95 81.77 L 517.96 81.77 L 520.79 89 M 519.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 522.93 89 L 522.93 81.77 L 524.35 81.77 L 526.36 87.36 L 528.42 81.77 L 529.69 81.77 L 529.69 89 L 528.73 89 L 528.73 83.12 L 526.74 88.52 L 525.75 88.52 L 523.81 83.11 L 523.81 89 M 522.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 86.24 L 535.36 83.12 L 534.13 86.24 M 536.59 86.24 M 537.68 89 L 536.89 87 L 533.83 87 L 533.04 89 L 532.08 89 L 534.95 81.77 L 535.96 81.77 L 538.79 89 M 537.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 545.59 86.24 L 544.36 83.12 L 543.13 86.24 M 545.59 86.24 M 546.68 89 L 545.89 87 L 542.83 87 L 542.04 89 L 541.08 89 L 543.95 81.77 L 544.96 81.77 L 547.79 89 M 546.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 89 L 552.5 85.98 L 550.08 81.77 L 551.25 81.77 L 553.13 85.04 L 555.15 81.77 L 556.1 81.77 L 553.52 85.96 L 553.52 89 M 552.5 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 89 L 559.93 81.77 L 560.89 81.77 L 560.89 85.33 L 563.82 81.77 L 564.85 81.77 L 562.02 85.22 L 565.35 89 L 564.05 89 L 560.89 85.34 L 560.89 89 M 559.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 89 L 568.18 81.77 L 569.2 81.77 L 571.44 87.69 L 573.6 81.77 L 574.49 81.77 L 571.87 89 M 570.91 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 579.65 89 L 579.65 82.54 L 577.09 82.54 L 577.09 81.77 L 583.24 81.77 L 583.24 82.54 L 580.68 82.54 L 580.68 89 M 579.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 89 L 587.93 81.77 L 588.96 81.77 L 588.96 88.23 L 592.21 88.23 L 592.21 89 M 587.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.91 89 L 595.18 81.77 L 596.2 81.77 L 598.44 87.69 L 600.6 81.77 L 601.49 81.77 L 598.87 89 M 597.91 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 89 L 606.65 82.54 L 604.09 82.54 L 604.09 81.77 L 610.24 81.77 L 610.24 82.54 L 607.68 82.54 L 607.68 89 M 606.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 89 L 613.93 81.77 L 615.9 81.77 Q 617.21 81.77 617.78 82.22 Q 618.35 82.66 618.35 83.67 Q 618.35 84.82 617.57 85.47 Q 616.79 86.13 615.4 86.13 L 614.95 86.13 L 614.95 89 M 613.93 89 M 614.95 85.35 L 615.36 85.35 Q 616.28 85.35 616.77 84.93 Q 617.27 84.51 617.27 83.75 Q 617.27 83.1 616.88 82.82 Q 616.49 82.54 615.58 82.54 L 614.95 82.54 M 614.95 85.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 623.93 89 L 623.93 81.77 L 627.97 81.77 L 627.97 82.54 L 624.96 82.54 L 624.96 84.86 L 627.48 84.86 L 627.48 85.62 L 624.96 85.62 L 624.96 88.23 L 628.18 88.23 L 628.18 89 M 623.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 88.8 Q 636.05 89.18 635.07 89.18 Q 633.35 89.18 632.43 88.2 Q 631.51 87.22 631.51 85.39 Q 631.51 83.59 632.44 82.59 Q 633.37 81.59 635.06 81.59 Q 636.16 81.59 637.35 81.92 L 637.35 82.87 Q 635.86 82.36 635.06 82.36 Q 633.89 82.36 633.24 83.16 Q 632.6 83.95 632.6 85.4 Q 632.6 86.83 633.29 87.62 Q 633.98 88.41 635.23 88.41 Q 635.75 88.41 636.34 88.23 L 636.34 85.88 L 637.36 85.88 M 637.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 640.93 89 L 640.93 81.77 L 641.89 81.77 L 641.89 85.33 L 644.82 81.77 L 645.85 81.77 L 643.02 85.22 L 646.35 89 L 645.05 89 L 641.89 85.34 L 641.89 89 M 640.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 655.35 90.45 Q 653.64 89.89 652.49 89.13 Q 652.03 89.18 651.78 89.18 Q 650.33 89.18 649.42 88.13 Q 648.51 87.07 648.51 85.39 Q 648.51 83.66 649.43 82.63 Q 650.35 81.59 651.89 81.59 Q 653.43 81.59 654.35 82.63 Q 655.27 83.66 655.27 85.4 Q 655.27 87.89 653.42 88.85 Q 654.66 89.4 656 89.63 M 655.35 90.45 M 651.86 88.41 Q 652.97 88.41 653.57 87.62 Q 654.18 86.82 654.18 85.37 Q 654.18 83.96 653.57 83.16 Q 652.97 82.36 651.89 82.36 Q 650.81 82.36 650.2 83.16 Q 649.6 83.96 649.6 85.38 Q 649.6 86.79 650.2 87.6 Q 650.8 88.41 651.86 88.41 M 651.86 88.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 89 L 659.93 81.77 L 663.97 81.77 L 663.97 82.54 L 660.96 82.54 L 660.96 84.86 L 663.48 84.86 L 663.48 85.62 L 660.96 85.62 L 660.96 88.23 L 664.18 88.23 L 664.18 89 M 659.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 668.93 89 L 668.93 81.77 L 669.96 81.77 L 669.96 88.23 L 673.21 88.23 L 673.21 89 M 668.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 677.93 89 L 677.93 81.77 L 681.97 81.77 L 681.97 82.54 L 678.96 82.54 L 678.96 84.86 L 681.48 84.86 L 681.48 85.62 L 678.96 85.62 L 678.96 88.23 L 682.18 88.23 L 682.18 89 M 677.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 89.18 Q 687.34 89.18 686.43 88.19 Q 685.51 87.2 685.51 85.39 Q 685.51 83.58 686.44 82.59 Q 687.38 81.59 689.08 81.59 Q 690.05 81.59 691.35 81.91 L 691.35 82.87 Q 689.87 82.36 689.06 82.36 Q 687.89 82.36 687.24 83.16 Q 686.6 83.95 686.6 85.4 Q 686.6 86.78 687.29 87.58 Q 687.97 88.38 689.17 88.38 Q 690.19 88.38 691.36 87.75 L 691.36 88.63 Q 690.29 89.18 689.03 89.18 M 689.03 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 89 L 694.93 81.77 L 696.9 81.77 Q 698.21 81.77 698.78 82.22 Q 699.35 82.66 699.35 83.67 Q 699.35 84.82 698.57 85.47 Q 697.79 86.13 696.4 86.13 L 695.95 86.13 L 695.95 89 M 694.93 89 M 695.95 85.35 L 696.36 85.35 Q 697.28 85.35 697.77 84.93 Q 698.27 84.51 698.27 83.75 Q 698.27 83.1 697.88 82.82 Q 697.49 82.54 696.58 82.54 L 695.95 82.54 M 695.95 85.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 89 L 703.93 81.77 L 706.33 81.77 Q 707.41 81.77 708.07 82.01 Q 708.73 82.25 709.22 82.82 Q 709.98 83.73 709.98 85.22 Q 709.98 87.02 709.03 88.01 Q 708.08 89 706.35 89 M 703.93 89 M 704.96 88.23 L 706.27 88.23 Q 707.68 88.23 708.26 87.48 Q 708.89 86.67 708.89 85.31 Q 708.89 84.04 708.27 83.31 Q 707.9 82.87 707.38 82.7 Q 706.85 82.54 705.8 82.54 L 704.96 82.54 M 704.96 88.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 89 L 712.93 81.77 L 715.33 81.77 Q 716.41 81.77 717.07 82.01 Q 717.73 82.25 718.22 82.82 Q 718.98 83.73 718.98 85.22 Q 718.98 87.02 718.03 88.01 Q 717.08 89 715.35 89 M 712.93 89 M 713.96 88.23 L 715.27 88.23 Q 716.68 88.23 717.26 87.48 Q 717.89 86.67 717.89 85.31 Q 717.89 84.04 717.27 83.31 Q 716.9 82.87 716.38 82.7 Q 715.85 82.54 714.8 82.54 L 713.96 82.54 M 713.96 88.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 89 L 721.18 81.77 L 722.2 81.77 L 724.44 87.69 L 726.6 81.77 L 727.49 81.77 L 724.87 89 M 723.91 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 89 L 732.5 85.98 L 730.08 81.77 L 731.25 81.77 L 733.13 85.04 L 735.15 81.77 L 736.1 81.77 L 733.52 85.96 L 733.52 89 M 732.5 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.93 89 L 741.93 81.77 L 742.95 81.77 L 742.95 89 M 741.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 89 L 749.93 81.77 L 750.96 81.77 L 750.96 88.23 L 754.21 88.23 L 754.21 89 M 749.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 89 L 757.93 81.77 L 760.33 81.77 Q 761.41 81.77 762.07 82.01 Q 762.73 82.25 763.22 82.82 Q 763.98 83.73 763.98 85.22 Q 763.98 87.02 763.03 88.01 Q 762.08 89 760.35 89 M 757.93 89 M 758.96 88.23 L 760.27 88.23 Q 761.68 88.23 762.26 87.48 Q 762.89 86.67 762.89 85.31 Q 762.89 84.04 762.27 83.31 Q 761.9 82.87 761.38 82.7 Q 760.85 82.54 759.8 82.54 L 758.96 82.54 M 758.96 88.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 770.59 86.24 L 769.36 83.12 L 768.13 86.24 M 770.59 86.24 M 771.68 89 L 770.89 87 L 767.83 87 L 767.04 89 L 766.08 89 L 768.95 81.77 L 769.96 81.77 L 772.79 89 M 771.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 86.24 L 778.36 83.12 L 777.13 86.24 M 779.59 86.24 M 780.68 89 L 779.89 87 L 776.83 87 L 776.04 89 L 775.08 89 L 777.95 81.77 L 778.96 81.77 L 781.79 89 M 780.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 89 L 785.93 81.77 L 789.97 81.77 L 789.97 82.54 L 786.96 82.54 L 786.96 84.86 L 789.48 84.86 L 789.48 85.62 L 786.96 85.62 L 786.96 88.23 L 790.18 88.23 L 790.18 89 M 785.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 89 L 794.93 81.77 L 798.97 81.77 L 798.97 82.54 L 795.96 82.54 L 795.96 84.86 L 798.48 84.86 L 798.48 85.62 L 795.96 85.62 L 795.96 88.23 L 799.18 88.23 L 799.18 89 M 794.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 806.59 86.24 L 805.36 83.12 L 804.13 86.24 M 806.59 86.24 M 807.68 89 L 806.89 87 L 803.83 87 L 803.04 89 L 802.08 89 L 804.95 81.77 L 805.96 81.77 L 808.79 89 M 807.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 88.8 Q 816.05 89.18 815.07 89.18 Q 813.35 89.18 812.43 88.2 Q 811.51 87.22 811.51 85.39 Q 811.51 83.59 812.44 82.59 Q 813.37 81.59 815.06 81.59 Q 816.16 81.59 817.35 81.92 L 817.35 82.87 Q 815.86 82.36 815.06 82.36 Q 813.89 82.36 813.24 83.16 Q 812.6 83.95 812.6 85.4 Q 812.6 86.83 813.29 87.62 Q 813.98 88.41 815.23 88.41 Q 815.75 88.41 816.34 88.23 L 816.34 85.88 L 817.36 85.88 M 817.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 822.93 89 L 822.93 81.77 L 823.95 81.77 L 823.95 89 M 822.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 89 L 829.93 81.77 L 832.33 81.77 Q 833.41 81.77 834.07 82.01 Q 834.73 82.25 835.22 82.82 Q 835.98 83.73 835.98 85.22 Q 835.98 87.02 835.03 88.01 Q 834.08 89 832.35 89 M 829.93 89 M 830.96 88.23 L 832.27 88.23 Q 833.68 88.23 834.26 87.48 Q 834.89 86.67 834.89 85.31 Q 834.89 84.04 834.27 83.31 Q 833.9 82.87 833.38 82.7 Q 832.85 82.54 831.8 82.54 L 830.96 82.54 M 830.96 88.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 89 L 839.93 81.77 L 840.96 81.77 L 840.96 88.23 L 844.21 88.23 L 844.21 89 M 839.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 89 L 847.93 81.77 L 849.9 81.77 Q 851.21 81.77 851.78 82.22 Q 852.35 82.66 852.35 83.67 Q 852.35 84.82 851.57 85.47 Q 850.79 86.13 849.4 86.13 L 848.95 86.13 L 848.95 89 M 847.93 89 M 848.95 85.35 L 849.36 85.35 Q 850.28 85.35 850.77 84.93 Q 851.27 84.51 851.27 83.75 Q 851.27 83.1 850.88 82.82 Q 850.49 82.54 849.58 82.54 L 848.95 82.54 M 848.95 85.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 89 L 858.5 85.98 L 856.08 81.77 L 857.25 81.77 L 859.13 85.04 L 861.15 81.77 L 862.1 81.77 L 859.52 85.96 L 859.52 89 M 858.5 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 89.18 Q 867.62 89.18 866.49 88.86 L 866.49 87.85 Q 867.71 88.41 868.5 88.41 Q 869.1 88.41 869.47 88.1 Q 869.84 87.78 869.84 87.26 Q 869.84 86.84 869.6 86.54 Q 869.35 86.24 868.71 85.88 L 868.21 85.59 Q 867.28 85.06 866.91 84.59 Q 866.53 84.13 866.53 83.51 Q 866.53 82.67 867.13 82.13 Q 867.74 81.59 868.68 81.59 Q 869.51 81.59 870.44 81.87 L 870.44 82.81 Q 869.3 82.36 868.73 82.36 Q 868.2 82.36 867.86 82.64 Q 867.51 82.93 867.51 83.36 Q 867.51 83.72 867.76 84 Q 868.02 84.27 868.69 84.66 L 869.21 84.95 Q 870.15 85.48 870.52 85.96 Q 870.89 86.43 870.89 87.1 Q 870.89 88.04 870.19 88.61 Q 869.5 89.18 868.35 89.18 M 868.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 89.18 Q 876.34 89.18 875.43 88.19 Q 874.51 87.2 874.51 85.39 Q 874.51 83.58 875.44 82.59 Q 876.38 81.59 878.08 81.59 Q 879.05 81.59 880.35 81.91 L 880.35 82.87 Q 878.87 82.36 878.06 82.36 Q 876.89 82.36 876.24 83.16 Q 875.6 83.95 875.6 85.4 Q 875.6 86.78 876.29 87.58 Q 876.97 88.38 878.17 88.38 Q 879.19 88.38 880.36 87.75 L 880.36 88.63 Q 879.29 89.18 878.03 89.18 M 878.03 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 89 L 883.93 81.77 L 886.12 81.77 Q 887.16 81.77 887.71 82.23 Q 888.27 82.69 888.27 83.57 Q 888.27 85.01 886.81 85.62 L 889.22 89 L 887.96 89 L 885.91 85.94 L 884.95 85.94 L 884.95 89 M 883.93 89 M 884.95 85.18 L 885.28 85.18 Q 887.21 85.18 887.21 83.66 Q 887.21 82.54 885.59 82.54 L 884.95 82.54 M 884.95 85.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 86.24 L 895.36 83.12 L 894.13 86.24 M 896.59 86.24 M 897.68 89 L 896.89 87 L 893.83 87 L 893.04 89 L 892.08 89 L 894.95 81.77 L 895.96 81.77 L 898.79 89 M 897.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 88.8 Q 906.05 89.18 905.07 89.18 Q 903.35 89.18 902.43 88.2 Q 901.51 87.22 901.51 85.39 Q 901.51 83.59 902.44 82.59 Q 903.37 81.59 905.06 81.59 Q 906.16 81.59 907.35 81.92 L 907.35 82.87 Q 905.86 82.36 905.06 82.36 Q 903.89 82.36 903.24 83.16 Q 902.6 83.95 902.6 85.4 Q 902.6 86.83 903.29 87.62 Q 903.98 88.41 905.23 88.41 Q 905.75 88.41 906.34 88.23 L 906.34 85.88 L 907.36 85.88 M 907.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 89.18 Q 912.62 89.18 911.49 88.86 L 911.49 87.85 Q 912.71 88.41 913.5 88.41 Q 914.1 88.41 914.47 88.1 Q 914.84 87.78 914.84 87.26 Q 914.84 86.84 914.6 86.54 Q 914.35 86.24 913.71 85.88 L 913.21 85.59 Q 912.28 85.06 911.91 84.59 Q 911.53 84.13 911.53 83.51 Q 911.53 82.67 912.13 82.13 Q 912.74 81.59 913.68 81.59 Q 914.51 81.59 915.44 81.87 L 915.44 82.81 Q 914.3 82.36 913.73 82.36 Q 913.2 82.36 912.86 82.64 Q 912.51 82.93 912.51 83.36 Q 912.51 83.72 912.76 84 Q 913.02 84.27 913.69 84.66 L 914.21 84.95 Q 915.15 85.48 915.52 85.96 Q 915.89 86.43 915.89 87.1 Q 915.89 88.04 915.19 88.61 Q 914.5 89.18 913.35 89.18 M 913.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 89.18 Q 921.34 89.18 920.43 88.19 Q 919.51 87.2 919.51 85.39 Q 919.51 83.58 920.44 82.59 Q 921.38 81.59 923.08 81.59 Q 924.05 81.59 925.35 81.91 L 925.35 82.87 Q 923.87 82.36 923.06 82.36 Q 921.89 82.36 921.24 83.16 Q 920.6 83.95 920.6 85.4 Q 920.6 86.78 921.29 87.58 Q 921.97 88.38 923.17 88.38 Q 924.19 88.38 925.36 87.75 L 925.36 88.63 Q 924.29 89.18 923.03 89.18 M 923.03 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 89.18 Q 930.62 89.18 929.49 88.86 L 929.49 87.85 Q 930.71 88.41 931.5 88.41 Q 932.1 88.41 932.47 88.1 Q 932.84 87.78 932.84 87.26 Q 932.84 86.84 932.6 86.54 Q 932.35 86.24 931.71 85.88 L 931.21 85.59 Q 930.28 85.06 929.91 84.59 Q 929.53 84.13 929.53 83.51 Q 929.53 82.67 930.13 82.13 Q 930.74 81.59 931.68 81.59 Q 932.51 81.59 933.44 81.87 L 933.44 82.81 Q 932.3 82.36 931.73 82.36 Q 931.2 82.36 930.86 82.64 Q 930.51 82.93 930.51 83.36 Q 930.51 83.72 930.76 84 Q 931.02 84.27 931.69 84.66 L 932.21 84.95 Q 933.15 85.48 933.52 85.96 Q 933.89 86.43 933.89 87.1 Q 933.89 88.04 933.19 88.61 Q 932.5 89.18 931.35 89.18 M 931.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 89.18 Q 939.62 89.18 938.49 88.86 L 938.49 87.85 Q 939.71 88.41 940.5 88.41 Q 941.1 88.41 941.47 88.1 Q 941.84 87.78 941.84 87.26 Q 941.84 86.84 941.6 86.54 Q 941.35 86.24 940.71 85.88 L 940.21 85.59 Q 939.28 85.06 938.91 84.59 Q 938.53 84.13 938.53 83.51 Q 938.53 82.67 939.13 82.13 Q 939.74 81.59 940.68 81.59 Q 941.51 81.59 942.44 81.87 L 942.44 82.81 Q 941.3 82.36 940.73 82.36 Q 940.2 82.36 939.86 82.64 Q 939.51 82.93 939.51 83.36 Q 939.51 83.72 939.76 84 Q 940.02 84.27 940.69 84.66 L 941.21 84.95 Q 942.15 85.48 942.52 85.96 Q 942.89 86.43 942.89 87.1 Q 942.89 88.04 942.19 88.61 Q 941.5 89.18 940.35 89.18 M 940.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 89.18 Q 948.34 89.18 947.43 88.19 Q 946.51 87.2 946.51 85.39 Q 946.51 83.58 947.44 82.59 Q 948.38 81.59 950.08 81.59 Q 951.05 81.59 952.35 81.91 L 952.35 82.87 Q 950.87 82.36 950.06 82.36 Q 948.89 82.36 948.24 83.16 Q 947.6 83.95 947.6 85.4 Q 947.6 86.78 948.29 87.58 Q 948.97 88.38 950.17 88.38 Q 951.19 88.38 952.36 87.75 L 952.36 88.63 Q 951.29 89.18 950.03 89.18 M 950.03 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 86.24 L 958.36 83.12 L 957.13 86.24 M 959.59 86.24 M 960.68 89 L 959.89 87 L 956.83 87 L 956.04 89 L 955.08 89 L 957.95 81.77 L 958.96 81.77 L 961.79 89 M 960.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 88.8 Q 969.05 89.18 968.07 89.18 Q 966.35 89.18 965.43 88.2 Q 964.51 87.22 964.51 85.39 Q 964.51 83.59 965.44 82.59 Q 966.37 81.59 968.06 81.59 Q 969.16 81.59 970.35 81.92 L 970.35 82.87 Q 968.86 82.36 968.06 82.36 Q 966.89 82.36 966.24 83.16 Q 965.6 83.95 965.6 85.4 Q 965.6 86.83 966.29 87.62 Q 966.98 88.41 968.23 88.41 Q 968.75 88.41 969.34 88.23 L 969.34 85.88 L 970.36 85.88 M 970.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 89 L 973.93 81.77 L 974.89 81.77 L 974.89 85.33 L 977.82 81.77 L 978.85 81.77 L 976.02 85.22 L 979.35 89 L 978.05 89 L 974.89 85.34 L 974.89 89 M 973.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 89 L 982.18 81.77 L 983.2 81.77 L 985.44 87.69 L 987.6 81.77 L 988.49 81.77 L 985.87 89 M 984.91 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.65 89 L 993.65 82.54 L 991.09 82.54 L 991.09 81.77 L 997.24 81.77 L 997.24 82.54 L 994.68 82.54 L 994.68 89 M 993.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1003.35 89.18 Q 1002.62 89.18 1001.49 88.86 L 1001.49 87.85 Q 1002.71 88.41 1003.5 88.41 Q 1004.1 88.41 1004.47 88.1 Q 1004.84 87.78 1004.84 87.26 Q 1004.84 86.84 1004.6 86.54 Q 1004.35 86.24 1003.71 85.88 L 1003.21 85.59 Q 1002.28 85.06 1001.91 84.59 Q 1001.53 84.13 1001.53 83.51 Q 1001.53 82.67 1002.13 82.13 Q 1002.74 81.59 1003.68 81.59 Q 1004.51 81.59 1005.44 81.87 L 1005.44 82.81 Q 1004.3 82.36 1003.73 82.36 Q 1003.2 82.36 1002.86 82.64 Q 1002.51 82.93 1002.51 83.36 Q 1002.51 83.72 1002.76 84 Q 1003.02 84.27 1003.69 84.66 L 1004.21 84.95 Q 1005.15 85.48 1005.52 85.96 Q 1005.89 86.43 1005.89 87.1 Q 1005.89 88.04 1005.19 88.61 Q 1004.5 89.18 1003.35 89.18 M 1003.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 88.8 Q 1014.05 89.18 1013.07 89.18 Q 1011.35 89.18 1010.43 88.2 Q 1009.51 87.22 1009.51 85.39 Q 1009.51 83.59 1010.44 82.59 Q 1011.37 81.59 1013.06 81.59 Q 1014.16 81.59 1015.35 81.92 L 1015.35 82.87 Q 1013.86 82.36 1013.06 82.36 Q 1011.89 82.36 1011.24 83.16 Q 1010.6 83.95 1010.6 85.4 Q 1010.6 86.83 1011.29 87.62 Q 1011.98 88.41 1013.23 88.41 Q 1013.75 88.41 1014.34 88.23 L 1014.34 85.88 L 1015.36 85.88 M 1015.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1021.35 89.18 Q 1020.62 89.18 1019.49 88.86 L 1019.49 87.85 Q 1020.71 88.41 1021.5 88.41 Q 1022.1 88.41 1022.47 88.1 Q 1022.84 87.78 1022.84 87.26 Q 1022.84 86.84 1022.6 86.54 Q 1022.35 86.24 1021.71 85.88 L 1021.21 85.59 Q 1020.28 85.06 1019.91 84.59 Q 1019.53 84.13 1019.53 83.51 Q 1019.53 82.67 1020.13 82.13 Q 1020.74 81.59 1021.68 81.59 Q 1022.51 81.59 1023.44 81.87 L 1023.44 82.81 Q 1022.3 82.36 1021.73 82.36 Q 1021.2 82.36 1020.86 82.64 Q 1020.51 82.93 1020.51 83.36 Q 1020.51 83.72 1020.76 84 Q 1021.02 84.27 1021.69 84.66 L 1022.21 84.95 Q 1023.15 85.48 1023.52 85.96 Q 1023.89 86.43 1023.89 87.1 Q 1023.89 88.04 1023.19 88.61 Q 1022.5 89.18 1021.35 89.18 M 1021.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 89 L 1027.18 81.77 L 1028.2 81.77 L 1030.44 87.69 L 1032.6 81.77 L 1033.49 81.77 L 1030.87 89 M 1029.91 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 89 L 1036.93 81.77 L 1037.94 81.77 L 1041.58 87.35 L 1041.58 81.77 L 1042.46 81.77 L 1042.46 89 L 1041.45 89 L 1037.81 83.42 L 1037.81 89 M 1036.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 90.45 Q 1049.64 89.89 1048.49 89.13 Q 1048.03 89.18 1047.78 89.18 Q 1046.33 89.18 1045.42 88.13 Q 1044.51 87.07 1044.51 85.39 Q 1044.51 83.66 1045.43 82.63 Q 1046.35 81.59 1047.89 81.59 Q 1049.43 81.59 1050.35 82.63 Q 1051.27 83.66 1051.27 85.4 Q 1051.27 87.89 1049.42 88.85 Q 1050.66 89.4 1052 89.63 M 1051.35 90.45 M 1047.86 88.41 Q 1048.97 88.41 1049.57 87.62 Q 1050.18 86.82 1050.18 85.37 Q 1050.18 83.96 1049.57 83.16 Q 1048.97 82.36 1047.89 82.36 Q 1046.81 82.36 1046.2 83.16 Q 1045.6 83.96 1045.6 85.38 Q 1045.6 86.79 1046.2 87.6 Q 1046.8 88.41 1047.86 88.41 M 1047.86 88.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1054.93 89 L 1054.93 81.77 L 1057.33 81.77 Q 1058.41 81.77 1059.07 82.01 Q 1059.73 82.25 1060.22 82.82 Q 1060.98 83.73 1060.98 85.22 Q 1060.98 87.02 1060.03 88.01 Q 1059.08 89 1057.35 89 M 1054.93 89 M 1055.96 88.23 L 1057.27 88.23 Q 1058.68 88.23 1059.26 87.48 Q 1059.89 86.67 1059.89 85.31 Q 1059.89 84.04 1059.27 83.31 Q 1058.9 82.87 1058.38 82.7 Q 1057.85 82.54 1056.8 82.54 L 1055.96 82.54 M 1055.96 88.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 89 L 1063.93 81.77 L 1066.33 81.77 Q 1067.41 81.77 1068.07 82.01 Q 1068.73 82.25 1069.22 82.82 Q 1069.98 83.73 1069.98 85.22 Q 1069.98 87.02 1069.03 88.01 Q 1068.08 89 1066.35 89 M 1063.93 89 M 1064.96 88.23 L 1066.27 88.23 Q 1067.68 88.23 1068.26 87.48 Q 1068.89 86.67 1068.89 85.31 Q 1068.89 84.04 1068.27 83.31 Q 1067.9 82.87 1067.38 82.7 Q 1066.85 82.54 1065.8 82.54 L 1064.96 82.54 M 1064.96 88.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.36 88.8 Q 1077.05 89.18 1076.07 89.18 Q 1074.35 89.18 1073.43 88.2 Q 1072.51 87.22 1072.51 85.39 Q 1072.51 83.59 1073.44 82.59 Q 1074.37 81.59 1076.06 81.59 Q 1077.16 81.59 1078.35 81.92 L 1078.35 82.87 Q 1076.86 82.36 1076.06 82.36 Q 1074.89 82.36 1074.24 83.16 Q 1073.6 83.95 1073.6 85.4 Q 1073.6 86.83 1074.29 87.62 Q 1074.98 88.41 1076.23 88.41 Q 1076.75 88.41 1077.34 88.23 L 1077.34 85.88 L 1078.36 85.88 M 1078.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1084.35 89.18 Q 1083.62 89.18 1082.49 88.86 L 1082.49 87.85 Q 1083.71 88.41 1084.5 88.41 Q 1085.1 88.41 1085.47 88.1 Q 1085.84 87.78 1085.84 87.26 Q 1085.84 86.84 1085.6 86.54 Q 1085.35 86.24 1084.71 85.88 L 1084.21 85.59 Q 1083.28 85.06 1082.91 84.59 Q 1082.53 84.13 1082.53 83.51 Q 1082.53 82.67 1083.13 82.13 Q 1083.74 81.59 1084.68 81.59 Q 1085.51 81.59 1086.44 81.87 L 1086.44 82.81 Q 1085.3 82.36 1084.73 82.36 Q 1084.2 82.36 1083.86 82.64 Q 1083.51 82.93 1083.51 83.36 Q 1083.51 83.72 1083.76 84 Q 1084.02 84.27 1084.69 84.66 L 1085.21 84.95 Q 1086.15 85.48 1086.52 85.96 Q 1086.89 86.43 1086.89 87.1 Q 1086.89 88.04 1086.19 88.61 Q 1085.5 89.18 1084.35 89.18 M 1084.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 89 L 1091.93 81.77 L 1095.97 81.77 L 1095.97 82.54 L 1092.96 82.54 L 1092.96 84.96 L 1095.49 84.96 L 1095.49 85.72 L 1092.96 85.72 L 1092.96 89 M 1091.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 89 L 1100.93 81.77 L 1101.96 81.77 L 1101.96 88.23 L 1105.21 88.23 L 1105.21 89 M 1100.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 89 L 1108.93 81.77 L 1111.33 81.77 Q 1112.41 81.77 1113.07 82.01 Q 1113.73 82.25 1114.22 82.82 Q 1114.98 83.73 1114.98 85.22 Q 1114.98 87.02 1114.03 88.01 Q 1113.08 89 1111.35 89 M 1108.93 89 M 1109.96 88.23 L 1111.27 88.23 Q 1112.68 88.23 1113.26 87.48 Q 1113.89 86.67 1113.89 85.31 Q 1113.89 84.04 1113.27 83.31 Q 1112.9 82.87 1112.38 82.7 Q 1111.85 82.54 1110.8 82.54 L 1109.96 82.54 M 1109.96 88.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 89 L 1117.93 81.77 L 1120.33 81.77 Q 1121.41 81.77 1122.07 82.01 Q 1122.73 82.25 1123.22 82.82 Q 1123.98 83.73 1123.98 85.22 Q 1123.98 87.02 1123.03 88.01 Q 1122.08 89 1120.35 89 M 1117.93 89 M 1118.96 88.23 L 1120.27 88.23 Q 1121.68 88.23 1122.26 87.48 Q 1122.89 86.67 1122.89 85.31 Q 1122.89 84.04 1122.27 83.31 Q 1121.9 82.87 1121.38 82.7 Q 1120.85 82.54 1119.8 82.54 L 1118.96 82.54 M 1118.96 88.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1126.93 89 L 1126.93 81.77 L 1129.33 81.77 Q 1130.41 81.77 1131.07 82.01 Q 1131.73 82.25 1132.22 82.82 Q 1132.98 83.73 1132.98 85.22 Q 1132.98 87.02 1132.03 88.01 Q 1131.08 89 1129.35 89 M 1126.93 89 M 1127.96 88.23 L 1129.27 88.23 Q 1130.68 88.23 1131.26 87.48 Q 1131.89 86.67 1131.89 85.31 Q 1131.89 84.04 1131.27 83.31 Q 1130.9 82.87 1130.38 82.7 Q 1129.85 82.54 1128.8 82.54 L 1127.96 82.54 M 1127.96 88.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 90.45 Q 1139.64 89.89 1138.49 89.13 Q 1138.03 89.18 1137.78 89.18 Q 1136.33 89.18 1135.42 88.13 Q 1134.51 87.07 1134.51 85.39 Q 1134.51 83.66 1135.43 82.63 Q 1136.35 81.59 1137.89 81.59 Q 1139.43 81.59 1140.35 82.63 Q 1141.27 83.66 1141.27 85.4 Q 1141.27 87.89 1139.42 88.85 Q 1140.66 89.4 1142 89.63 M 1141.35 90.45 M 1137.86 88.41 Q 1138.97 88.41 1139.57 87.62 Q 1140.18 86.82 1140.18 85.37 Q 1140.18 83.96 1139.57 83.16 Q 1138.97 82.36 1137.89 82.36 Q 1136.81 82.36 1136.2 83.16 Q 1135.6 83.96 1135.6 85.38 Q 1135.6 86.79 1136.2 87.6 Q 1136.8 88.41 1137.86 88.41 M 1137.86 88.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1146.93 89 L 1146.93 81.77 L 1147.95 81.77 L 1147.95 89 M 1146.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1153.93 89 L 1153.93 81.77 L 1154.89 81.77 L 1154.89 85.33 L 1157.82 81.77 L 1158.85 81.77 L 1156.02 85.22 L 1159.35 89 L 1158.05 89 L 1154.89 85.34 L 1154.89 89 M 1153.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1163.93 89 L 1163.93 81.77 L 1167.97 81.77 L 1167.97 82.54 L 1164.96 82.54 L 1164.96 84.86 L 1167.48 84.86 L 1167.48 85.62 L 1164.96 85.62 L 1164.96 88.23 L 1168.18 88.23 L 1168.18 89 M 1163.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 88.8 Q 1176.05 89.18 1175.07 89.18 Q 1173.35 89.18 1172.43 88.2 Q 1171.51 87.22 1171.51 85.39 Q 1171.51 83.59 1172.44 82.59 Q 1173.37 81.59 1175.06 81.59 Q 1176.16 81.59 1177.35 81.92 L 1177.35 82.87 Q 1175.86 82.36 1175.06 82.36 Q 1173.89 82.36 1173.24 83.16 Q 1172.6 83.95 1172.6 85.4 Q 1172.6 86.83 1173.29 87.62 Q 1173.98 88.41 1175.23 88.41 Q 1175.75 88.41 1176.34 88.23 L 1176.34 85.88 L 1177.36 85.88 M 1177.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1180.87 89 L 1179.01 81.77 L 1180 81.77 L 1181.48 87.48 L 1182.84 81.77 L 1183.82 81.77 L 1185.11 87.4 L 1186.71 81.77 L 1187.54 81.77 L 1185.51 89 L 1184.49 89 L 1183.22 83.43 L 1181.89 89 M 1180.87 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 89 L 1189.18 81.77 L 1190.2 81.77 L 1192.44 87.69 L 1194.6 81.77 L 1195.49 81.77 L 1192.87 89 M 1191.91 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 89 L 1199.93 81.77 L 1200.96 81.77 L 1200.96 88.23 L 1204.21 88.23 L 1204.21 89 M 1199.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 89 L 1209.65 82.54 L 1207.09 82.54 L 1207.09 81.77 L 1213.24 81.77 L 1213.24 82.54 L 1210.68 82.54 L 1210.68 89 M 1209.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 89.18 Q 1218.34 89.18 1217.43 88.19 Q 1216.51 87.2 1216.51 85.39 Q 1216.51 83.58 1217.44 82.59 Q 1218.38 81.59 1220.08 81.59 Q 1221.05 81.59 1222.35 81.91 L 1222.35 82.87 Q 1220.87 82.36 1220.06 82.36 Q 1218.89 82.36 1218.24 83.16 Q 1217.6 83.95 1217.6 85.4 Q 1217.6 86.78 1218.29 87.58 Q 1218.97 88.38 1220.17 88.38 Q 1221.19 88.38 1222.36 87.75 L 1222.36 88.63 Q 1221.29 89.18 1220.03 89.18 M 1220.03 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1227.91 89 L 1225.18 81.77 L 1226.2 81.77 L 1228.44 87.69 L 1230.6 81.77 L 1231.49 81.77 L 1228.87 89 M 1227.91 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 86.24 L 1237.36 83.12 L 1236.13 86.24 M 1238.59 86.24 M 1239.68 89 L 1238.89 87 L 1235.83 87 L 1235.04 89 L 1234.08 89 L 1236.95 81.77 L 1237.96 81.77 L 1240.79 89 M 1239.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 89 L 1245.5 85.98 L 1243.08 81.77 L 1244.25 81.77 L 1246.13 85.04 L 1248.15 81.77 L 1249.1 81.77 L 1246.52 85.96 L 1246.52 89 M 1245.5 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 89 L 1252.93 81.77 L 1254.9 81.77 Q 1256.21 81.77 1256.78 82.22 Q 1257.35 82.66 1257.35 83.67 Q 1257.35 84.82 1256.57 85.47 Q 1255.79 86.13 1254.4 86.13 L 1253.95 86.13 L 1253.95 89 M 1252.93 89 M 1253.95 85.35 L 1254.36 85.35 Q 1255.28 85.35 1255.77 84.93 Q 1256.27 84.51 1256.27 83.75 Q 1256.27 83.1 1255.88 82.82 Q 1255.49 82.54 1254.58 82.54 L 1253.95 82.54 M 1253.95 85.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1263.65 89 L 1263.65 82.54 L 1261.09 82.54 L 1261.09 81.77 L 1267.24 81.77 L 1267.24 82.54 L 1264.68 82.54 L 1264.68 89 M 1263.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1276.36 88.8 Q 1275.05 89.18 1274.07 89.18 Q 1272.35 89.18 1271.43 88.2 Q 1270.51 87.22 1270.51 85.39 Q 1270.51 83.59 1271.44 82.59 Q 1272.37 81.59 1274.06 81.59 Q 1275.16 81.59 1276.35 81.92 L 1276.35 82.87 Q 1274.86 82.36 1274.06 82.36 Q 1272.89 82.36 1272.24 83.16 Q 1271.6 83.95 1271.6 85.4 Q 1271.6 86.83 1272.29 87.62 Q 1272.98 88.41 1274.23 88.41 Q 1274.75 88.41 1275.34 88.23 L 1275.34 85.88 L 1276.36 85.88 M 1276.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 89 L 1279.93 81.77 L 1282.33 81.77 Q 1283.41 81.77 1284.07 82.01 Q 1284.73 82.25 1285.22 82.82 Q 1285.98 83.73 1285.98 85.22 Q 1285.98 87.02 1285.03 88.01 Q 1284.08 89 1282.35 89 M 1279.93 89 M 1280.96 88.23 L 1282.27 88.23 Q 1283.68 88.23 1284.26 87.48 Q 1284.89 86.67 1284.89 85.31 Q 1284.89 84.04 1284.27 83.31 Q 1283.9 82.87 1283.38 82.7 Q 1282.85 82.54 1281.8 82.54 L 1280.96 82.54 M 1280.96 88.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 89 L 1288.18 81.77 L 1289.2 81.77 L 1291.44 87.69 L 1293.6 81.77 L 1294.49 81.77 L 1291.87 89 M 1290.91 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.65 89 L 1299.65 82.54 L 1297.09 82.54 L 1297.09 81.77 L 1303.24 81.77 L 1303.24 82.54 L 1300.68 82.54 L 1300.68 89 M 1299.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 89 L 1308.93 81.77 L 1309.95 81.77 L 1309.95 89 M 1308.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 89 L 1316.93 81.77 L 1320.97 81.77 L 1320.97 82.54 L 1317.96 82.54 L 1317.96 84.86 L 1320.48 84.86 L 1320.48 85.62 L 1317.96 85.62 L 1317.96 88.23 L 1321.18 88.23 L 1321.18 89 M 1316.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 89 L 1326.65 82.54 L 1324.09 82.54 L 1324.09 81.77 L 1330.24 81.77 L 1330.24 82.54 L 1327.68 82.54 L 1327.68 89 M 1326.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 89 L 1333.93 81.77 L 1334.96 81.77 L 1334.96 84.82 L 1338.4 84.82 L 1338.4 81.77 L 1339.42 81.77 L 1339.42 89 L 1338.4 89 L 1338.4 85.59 L 1334.96 85.59 L 1334.96 89 M 1333.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 89 L 1342.93 81.77 L 1343.89 81.77 L 1343.89 85.33 L 1346.82 81.77 L 1347.85 81.77 L 1345.02 85.22 L 1348.35 89 L 1347.05 89 L 1343.89 85.34 L 1343.89 89 M 1342.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 89 L 1352.93 81.77 L 1356.97 81.77 L 1356.97 82.54 L 1353.96 82.54 L 1353.96 84.86 L 1356.48 84.86 L 1356.48 85.62 L 1353.96 85.62 L 1353.96 88.23 L 1357.18 88.23 L 1357.18 89 M 1352.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1361.93 89 L 1361.93 81.77 L 1365.97 81.77 L 1365.97 82.54 L 1362.96 82.54 L 1362.96 84.86 L 1365.48 84.86 L 1365.48 85.62 L 1362.96 85.62 L 1362.96 88.23 L 1366.18 88.23 L 1366.18 89 M 1361.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1370.93 89 L 1370.93 81.77 L 1374.97 81.77 L 1374.97 82.54 L 1371.96 82.54 L 1371.96 84.86 L 1374.48 84.86 L 1374.48 85.62 L 1371.96 85.62 L 1371.96 88.23 L 1375.18 88.23 L 1375.18 89 M 1370.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1379.93 89 L 1379.93 81.77 L 1380.96 81.77 L 1380.96 88.23 L 1384.21 88.23 L 1384.21 89 M 1379.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.65 89 L 1389.65 82.54 L 1387.09 82.54 L 1387.09 81.77 L 1393.24 81.77 L 1393.24 82.54 L 1390.68 82.54 L 1390.68 89 M 1389.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1400.59 86.24 L 1399.36 83.12 L 1398.13 86.24 M 1400.59 86.24 M 1401.68 89 L 1400.89 87 L 1397.83 87 L 1397.04 89 L 1396.08 89 L 1398.95 81.77 L 1399.96 81.77 L 1402.79 89 M 1401.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 86.47 L 1405.72 85.75 L 1410.06 85.75 L 1410.06 86.47 M 1405.72 86.47"/></g><rect x="0" y="91" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="91" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="91" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="91" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="91" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="91" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="91" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="91" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="91" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="91" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="91" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="639" y="91" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="91" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="91" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="91" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="91" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="91" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="91" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="702" y="91" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="91" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="91" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="91" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="91" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="91" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="91" width="27" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="91" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="91" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="91" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="91" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="91" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="91" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="91" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="91" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="91" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="91" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="91" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="91" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="91" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="91" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="91" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="91" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="91" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="91" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="91" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="990" y="91" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="91" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="91" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="91" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="91" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="91" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1053" y="91" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="91" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="91" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="91" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="91" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="91" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 102 L 0.93 94.77 L 2.35 94.77 L 4.36 100.36 L 6.42 94.77 L 7.69 94.77 L 7.69 102 L 6.73 102 L 6.73 96.12 L 4.74 101.52 L 3.75 101.52 L 1.81 96.11 L 1.81 102 M 0.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 99.24 L 13.36 96.12 L 12.13 99.24 M 14.59 99.24 M 15.68 102 L 14.89 100 L 11.83 100 L 11.04 102 L 10.08 102 L 12.95 94.77 L 13.96 94.77 L 16.79 102 M 15.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 23.59 99.24 L 22.36 96.12 L 21.13 99.24 M 23.59 99.24 M 24.68 102 L 23.89 100 L 20.83 100 L 20.04 102 L 19.08 102 L 21.95 94.77 L 22.96 94.77 L 25.79 102 M 24.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 30.65 102 L 30.65 95.54 L 28.09 95.54 L 28.09 94.77 L 34.24 94.77 L 34.24 95.54 L 31.68 95.54 L 31.68 102 M 30.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 99.47 L 37.72 98.75 L 42.06 98.75 L 42.06 99.47 M 37.72 99.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 99.47 L 46.72 98.75 L 51.06 98.75 L 51.06 99.47 M 46.72 99.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 57.65 102 L 57.65 95.54 L 55.09 95.54 L 55.09 94.77 L 61.24 94.77 L 61.24 95.54 L 58.68 95.54 L 58.68 102 M 57.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 66.65 102 L 66.65 95.54 L 64.09 95.54 L 64.09 94.77 L 70.24 94.77 L 70.24 95.54 L 67.68 95.54 L 67.68 102 M 66.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 75.65 102 L 75.65 95.54 L 73.09 95.54 L 73.09 94.77 L 79.24 94.77 L 79.24 95.54 L 76.68 95.54 L 76.68 102 M 75.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 81.93 102 L 81.93 94.77 L 83.35 94.77 L 85.36 100.36 L 87.42 94.77 L 88.69 94.77 L 88.69 102 L 87.73 102 L 87.73 96.12 L 85.74 101.52 L 84.75 101.52 L 82.81 96.11 L 82.81 102 M 81.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 90.93 102 L 90.93 94.77 L 92.35 94.77 L 94.36 100.36 L 96.42 94.77 L 97.69 94.77 L 97.69 102 L 96.73 102 L 96.73 96.12 L 94.74 101.52 L 93.75 101.52 L 91.81 96.11 L 91.81 102 M 90.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 106.36 101.8 Q 105.05 102.18 104.07 102.18 Q 102.35 102.18 101.43 101.2 Q 100.51 100.22 100.51 98.39 Q 100.51 96.59 101.44 95.59 Q 102.37 94.59 104.06 94.59 Q 105.16 94.59 106.35 94.92 L 106.35 95.87 Q 104.86 95.36 104.06 95.36 Q 102.89 95.36 102.24 96.16 Q 101.6 96.95 101.6 98.4 Q 101.6 99.83 102.29 100.62 Q 102.98 101.41 104.23 101.41 Q 104.75 101.41 105.34 101.23 L 105.34 98.88 L 106.36 98.88 M 106.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 109.72 99.47 L 109.72 98.75 L 114.06 98.75 L 114.06 99.47 M 109.72 99.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 118.72 99.47 L 118.72 98.75 L 123.06 98.75 L 123.06 99.47 M 118.72 99.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 126.93 102 L 126.93 94.77 L 128.35 94.77 L 130.36 100.36 L 132.42 94.77 L 133.69 94.77 L 133.69 102 L 132.73 102 L 132.73 96.12 L 130.74 101.52 L 129.75 101.52 L 127.81 96.11 L 127.81 102 M 126.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 140.59 99.24 L 139.36 96.12 L 138.13 99.24 M 140.59 99.24 M 141.68 102 L 140.89 100 L 137.83 100 L 137.04 102 L 136.08 102 L 138.95 94.77 L 139.96 94.77 L 142.79 102 M 141.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 147.65 102 L 147.65 95.54 L 145.09 95.54 L 145.09 94.77 L 151.24 94.77 L 151.24 95.54 L 148.68 95.54 L 148.68 102 M 147.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 156.65 102 L 156.65 95.54 L 154.09 95.54 L 154.09 94.77 L 160.24 94.77 L 160.24 95.54 L 157.68 95.54 L 157.68 102 M 156.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 164.93 102 L 164.93 94.77 L 168.97 94.77 L 168.97 95.54 L 165.96 95.54 L 165.96 97.96 L 168.49 97.96 L 168.49 98.72 L 165.96 98.72 L 165.96 102 M 164.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 174.91 102 L 172.18 94.77 L 173.2 94.77 L 175.44 100.69 L 177.6 94.77 L 178.49 94.77 L 175.87 102 M 174.91 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 102 L 181.93 94.77 L 183.9 94.77 Q 185.21 94.77 185.78 95.22 Q 186.35 95.66 186.35 96.67 Q 186.35 97.82 185.57 98.47 Q 184.79 99.13 183.4 99.13 L 182.95 99.13 L 182.95 102 M 181.93 102 M 182.95 98.35 L 183.36 98.35 Q 184.28 98.35 184.77 97.93 Q 185.27 97.51 185.27 96.75 Q 185.27 96.1 184.88 95.82 Q 184.49 95.54 183.58 95.54 L 182.95 95.54 M 182.95 98.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.93 102 L 190.93 94.77 L 191.89 94.77 L 191.89 98.33 L 194.82 94.77 L 195.85 94.77 L 193.02 98.22 L 196.35 102 L 195.05 102 L 191.89 98.34 L 191.89 102 M 190.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 199.93 102 L 199.93 94.77 L 201.9 94.77 Q 203.21 94.77 203.78 95.22 Q 204.35 95.66 204.35 96.67 Q 204.35 97.82 203.57 98.47 Q 202.79 99.13 201.4 99.13 L 200.95 99.13 L 200.95 102 M 199.93 102 M 200.95 98.35 L 201.36 98.35 Q 202.28 98.35 202.77 97.93 Q 203.27 97.51 203.27 96.75 Q 203.27 96.1 202.88 95.82 Q 202.49 95.54 201.58 95.54 L 200.95 95.54 M 200.95 98.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 214.35 103.45 Q 212.64 102.89 211.49 102.13 Q 211.03 102.18 210.78 102.18 Q 209.33 102.18 208.42 101.13 Q 207.51 100.07 207.51 98.39 Q 207.51 96.66 208.43 95.63 Q 209.35 94.59 210.89 94.59 Q 212.43 94.59 213.35 95.63 Q 214.27 96.66 214.27 98.4 Q 214.27 100.89 212.42 101.85 Q 213.66 102.4 215 102.63 M 214.35 103.45 M 210.86 101.41 Q 211.97 101.41 212.57 100.62 Q 213.18 99.82 213.18 98.37 Q 213.18 96.96 212.57 96.16 Q 211.97 95.36 210.89 95.36 Q 209.81 95.36 209.2 96.16 Q 208.6 96.96 208.6 98.38 Q 208.6 99.79 209.2 100.6 Q 209.8 101.41 210.86 101.41 M 210.86 101.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 221.59 99.24 L 220.36 96.12 L 219.13 99.24 M 221.59 99.24 M 222.68 102 L 221.89 100 L 218.83 100 L 218.04 102 L 217.08 102 L 219.95 94.77 L 220.96 94.77 L 223.79 102 M 222.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.93 102 L 226.93 94.77 L 228.9 94.77 Q 230.21 94.77 230.78 95.22 Q 231.35 95.66 231.35 96.67 Q 231.35 97.82 230.57 98.47 Q 229.79 99.13 228.4 99.13 L 227.95 99.13 L 227.95 102 M 226.93 102 M 227.95 98.35 L 228.36 98.35 Q 229.28 98.35 229.77 97.93 Q 230.27 97.51 230.27 96.75 Q 230.27 96.1 229.88 95.82 Q 229.49 95.54 228.58 95.54 L 227.95 95.54 M 227.95 98.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 235.93 102 L 235.93 94.77 L 237.9 94.77 Q 239.21 94.77 239.78 95.22 Q 240.35 95.66 240.35 96.67 Q 240.35 97.82 239.57 98.47 Q 238.79 99.13 237.4 99.13 L 236.95 99.13 L 236.95 102 M 235.93 102 M 236.95 98.35 L 237.36 98.35 Q 238.28 98.35 238.77 97.93 Q 239.27 97.51 239.27 96.75 Q 239.27 96.1 238.88 95.82 Q 238.49 95.54 237.58 95.54 L 236.95 95.54 M 236.95 98.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 243.93 102 L 243.93 94.77 L 245.35 94.77 L 247.36 100.36 L 249.42 94.77 L 250.69 94.77 L 250.69 102 L 249.73 102 L 249.73 96.12 L 247.74 101.52 L 246.75 101.52 L 244.81 96.11 L 244.81 102 M 243.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 252.93 102 L 252.93 94.77 L 254.35 94.77 L 256.36 100.36 L 258.42 94.77 L 259.69 94.77 L 259.69 102 L 258.73 102 L 258.73 96.12 L 256.74 101.52 L 255.75 101.52 L 253.81 96.11 L 253.81 102 M 252.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 266.59 99.24 L 265.36 96.12 L 264.13 99.24 M 266.59 99.24 M 267.68 102 L 266.89 100 L 263.83 100 L 263.04 102 L 262.08 102 L 264.95 94.77 L 265.96 94.77 L 268.79 102 M 267.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 275.59 99.24 L 274.36 96.12 L 273.13 99.24 M 275.59 99.24 M 276.68 102 L 275.89 100 L 272.83 100 L 272.04 102 L 271.08 102 L 273.95 94.77 L 274.96 94.77 L 277.79 102 M 276.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 281.93 102 L 281.93 94.77 L 282.96 94.77 L 282.96 101.23 L 286.21 101.23 L 286.21 102 M 281.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 289.93 102 L 289.93 94.77 L 291.9 94.77 Q 293.21 94.77 293.78 95.22 Q 294.35 95.66 294.35 96.67 Q 294.35 97.82 293.57 98.47 Q 292.79 99.13 291.4 99.13 L 290.95 99.13 L 290.95 102 M 289.93 102 M 290.95 98.35 L 291.36 98.35 Q 292.28 98.35 292.77 97.93 Q 293.27 97.51 293.27 96.75 Q 293.27 96.1 292.88 95.82 Q 292.49 95.54 291.58 95.54 L 290.95 95.54 M 290.95 98.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 301.35 102.18 Q 300.62 102.18 299.49 101.86 L 299.49 100.85 Q 300.71 101.41 301.5 101.41 Q 302.1 101.41 302.47 101.1 Q 302.84 100.78 302.84 100.26 Q 302.84 99.84 302.6 99.54 Q 302.35 99.24 301.71 98.88 L 301.21 98.59 Q 300.28 98.06 299.91 97.59 Q 299.53 97.13 299.53 96.51 Q 299.53 95.67 300.13 95.13 Q 300.74 94.59 301.68 94.59 Q 302.51 94.59 303.44 94.87 L 303.44 95.81 Q 302.3 95.36 301.73 95.36 Q 301.2 95.36 300.86 95.64 Q 300.51 95.93 300.51 96.36 Q 300.51 96.72 300.76 97 Q 301.02 97.27 301.69 97.66 L 302.21 97.95 Q 303.15 98.48 303.52 98.96 Q 303.89 99.43 303.89 100.1 Q 303.89 101.04 303.19 101.61 Q 302.5 102.18 301.35 102.18 M 301.35 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 307.93 102 L 307.93 94.77 L 308.94 94.77 L 312.58 100.35 L 312.58 94.77 L 313.46 94.77 L 313.46 102 L 312.45 102 L 308.81 96.42 L 308.81 102 M 307.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 318.65 102 L 318.65 95.54 L 316.09 95.54 L 316.09 94.77 L 322.24 94.77 L 322.24 95.54 L 319.68 95.54 L 319.68 102 M 318.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 331.36 101.8 Q 330.05 102.18 329.07 102.18 Q 327.35 102.18 326.43 101.2 Q 325.51 100.22 325.51 98.39 Q 325.51 96.59 326.44 95.59 Q 327.37 94.59 329.06 94.59 Q 330.16 94.59 331.35 94.92 L 331.35 95.87 Q 329.86 95.36 329.06 95.36 Q 327.89 95.36 327.24 96.16 Q 326.6 96.95 326.6 98.4 Q 326.6 99.83 327.29 100.62 Q 327.98 101.41 329.23 101.41 Q 329.75 101.41 330.34 101.23 L 330.34 98.88 L 331.36 98.88 M 331.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 334.93 102 L 334.93 94.77 L 337.12 94.77 Q 338.16 94.77 338.71 95.23 Q 339.27 95.69 339.27 96.57 Q 339.27 98.01 337.81 98.62 L 340.22 102 L 338.96 102 L 336.91 98.94 L 335.95 98.94 L 335.95 102 M 334.93 102 M 335.95 98.18 L 336.28 98.18 Q 338.21 98.18 338.21 96.66 Q 338.21 95.54 336.59 95.54 L 335.95 95.54 M 335.95 98.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 99.47 L 343.72 98.75 L 348.06 98.75 L 348.06 99.47 M 343.72 99.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 99.47 L 352.72 98.75 L 357.06 98.75 L 357.06 99.47 M 352.72 99.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 364.35 102.18 Q 363.62 102.18 362.49 101.86 L 362.49 100.85 Q 363.71 101.41 364.5 101.41 Q 365.1 101.41 365.47 101.1 Q 365.84 100.78 365.84 100.26 Q 365.84 99.84 365.6 99.54 Q 365.35 99.24 364.71 98.88 L 364.21 98.59 Q 363.28 98.06 362.91 97.59 Q 362.53 97.13 362.53 96.51 Q 362.53 95.67 363.13 95.13 Q 363.74 94.59 364.68 94.59 Q 365.51 94.59 366.44 94.87 L 366.44 95.81 Q 365.3 95.36 364.73 95.36 Q 364.2 95.36 363.86 95.64 Q 363.51 95.93 363.51 96.36 Q 363.51 96.72 363.76 97 Q 364.02 97.27 364.69 97.66 L 365.21 97.95 Q 366.15 98.48 366.52 98.96 Q 366.89 99.43 366.89 100.1 Q 366.89 101.04 366.19 101.61 Q 365.5 102.18 364.35 102.18 M 364.35 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 371.93 102 L 371.93 94.77 L 372.96 94.77 L 372.96 101.23 L 376.21 101.23 L 376.21 102 M 371.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 380.93 102 L 380.93 94.77 L 384.97 94.77 L 384.97 95.54 L 381.96 95.54 L 381.96 97.96 L 384.49 97.96 L 384.49 98.72 L 381.96 98.72 L 381.96 102 M 380.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 394.36 101.8 Q 393.05 102.18 392.07 102.18 Q 390.35 102.18 389.43 101.2 Q 388.51 100.22 388.51 98.39 Q 388.51 96.59 389.44 95.59 Q 390.37 94.59 392.06 94.59 Q 393.16 94.59 394.35 94.92 L 394.35 95.87 Q 392.86 95.36 392.06 95.36 Q 390.89 95.36 390.24 96.16 Q 389.6 96.95 389.6 98.4 Q 389.6 99.83 390.29 100.62 Q 390.98 101.41 392.23 101.41 Q 392.75 101.41 393.34 101.23 L 393.34 98.88 L 394.36 98.88 M 394.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 398.93 102 L 398.93 94.77 L 399.96 94.77 L 399.96 101.23 L 403.21 101.23 L 403.21 102 M 398.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.93 102 L 406.93 94.77 L 407.89 94.77 L 407.89 98.33 L 410.82 94.77 L 411.85 94.77 L 409.02 98.22 L 412.35 102 L 411.05 102 L 407.89 98.34 L 407.89 102 M 406.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 417.65 102 L 417.65 95.54 L 415.09 95.54 L 415.09 94.77 L 421.24 94.77 L 421.24 95.54 L 418.68 95.54 L 418.68 102 M 417.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 99.47 L 424.72 98.75 L 429.06 98.75 L 429.06 99.47 M 424.72 99.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 439.36 101.8 Q 438.05 102.18 437.07 102.18 Q 435.35 102.18 434.43 101.2 Q 433.51 100.22 433.51 98.39 Q 433.51 96.59 434.44 95.59 Q 435.37 94.59 437.06 94.59 Q 438.16 94.59 439.35 94.92 L 439.35 95.87 Q 437.86 95.36 437.06 95.36 Q 435.89 95.36 435.24 96.16 Q 434.6 96.95 434.6 98.4 Q 434.6 99.83 435.29 100.62 Q 435.98 101.41 437.23 101.41 Q 437.75 101.41 438.34 101.23 L 438.34 98.88 L 439.36 98.88 M 439.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 445.35 102.18 Q 444.62 102.18 443.49 101.86 L 443.49 100.85 Q 444.71 101.41 445.5 101.41 Q 446.1 101.41 446.47 101.1 Q 446.84 100.78 446.84 100.26 Q 446.84 99.84 446.6 99.54 Q 446.35 99.24 445.71 98.88 L 445.21 98.59 Q 444.28 98.06 443.91 97.59 Q 443.53 97.13 443.53 96.51 Q 443.53 95.67 444.13 95.13 Q 444.74 94.59 445.68 94.59 Q 446.51 94.59 447.44 94.87 L 447.44 95.81 Q 446.3 95.36 445.73 95.36 Q 445.2 95.36 444.86 95.64 Q 444.51 95.93 444.51 96.36 Q 444.51 96.72 444.76 97 Q 445.02 97.27 445.69 97.66 L 446.21 97.95 Q 447.15 98.48 447.52 98.96 Q 447.89 99.43 447.89 100.1 Q 447.89 101.04 447.19 101.61 Q 446.5 102.18 445.35 102.18 M 445.35 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 451.93 102 L 451.93 94.77 L 454.12 94.77 Q 455.16 94.77 455.71 95.23 Q 456.27 95.69 456.27 96.57 Q 456.27 98.01 454.81 98.62 L 457.22 102 L 455.96 102 L 453.91 98.94 L 452.95 98.94 L 452.95 102 M 451.93 102 M 452.95 98.18 L 453.28 98.18 Q 455.21 98.18 455.21 96.66 Q 455.21 95.54 453.59 95.54 L 452.95 95.54 M 452.95 98.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.72 99.47 L 460.72 98.75 L 465.06 98.75 L 465.06 99.47 M 460.72 99.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 469.72 99.47 L 469.72 98.75 L 474.06 98.75 L 474.06 99.47 M 469.72 99.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 484.36 101.8 Q 483.05 102.18 482.07 102.18 Q 480.35 102.18 479.43 101.2 Q 478.51 100.22 478.51 98.39 Q 478.51 96.59 479.44 95.59 Q 480.37 94.59 482.06 94.59 Q 483.16 94.59 484.35 94.92 L 484.35 95.87 Q 482.86 95.36 482.06 95.36 Q 480.89 95.36 480.24 96.16 Q 479.6 96.95 479.6 98.4 Q 479.6 99.83 480.29 100.62 Q 480.98 101.41 482.23 101.41 Q 482.75 101.41 483.34 101.23 L 483.34 98.88 L 484.36 98.88 M 484.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 493.36 101.8 Q 492.05 102.18 491.07 102.18 Q 489.35 102.18 488.43 101.2 Q 487.51 100.22 487.51 98.39 Q 487.51 96.59 488.44 95.59 Q 489.37 94.59 491.06 94.59 Q 492.16 94.59 493.35 94.92 L 493.35 95.87 Q 491.86 95.36 491.06 95.36 Q 489.89 95.36 489.24 96.16 Q 488.6 96.95 488.6 98.4 Q 488.6 99.83 489.29 100.62 Q 489.98 101.41 491.23 101.41 Q 491.75 101.41 492.34 101.23 L 492.34 98.88 L 493.36 98.88 M 493.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 496.93 102 L 496.93 94.77 L 499.12 94.77 Q 500.16 94.77 500.71 95.23 Q 501.27 95.69 501.27 96.57 Q 501.27 98.01 499.81 98.62 L 502.22 102 L 500.96 102 L 498.91 98.94 L 497.95 98.94 L 497.95 102 M 496.93 102 M 497.95 98.18 L 498.28 98.18 Q 500.21 98.18 500.21 96.66 Q 500.21 95.54 498.59 95.54 L 497.95 95.54 M 497.95 98.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 504.93 102 L 504.93 94.77 L 506.35 94.77 L 508.36 100.36 L 510.42 94.77 L 511.69 94.77 L 511.69 102 L 510.73 102 L 510.73 96.12 L 508.74 101.52 L 507.75 101.52 L 505.81 96.11 L 505.81 102 M 504.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 516.65 102 L 516.65 95.54 L 514.09 95.54 L 514.09 94.77 L 520.24 94.77 L 520.24 95.54 L 517.68 95.54 L 517.68 102 M 516.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 522.93 102 L 522.93 94.77 L 524.35 94.77 L 526.36 100.36 L 528.42 94.77 L 529.69 94.77 L 529.69 102 L 528.73 102 L 528.73 96.12 L 526.74 101.52 L 525.75 101.52 L 523.81 96.11 L 523.81 102 M 522.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 99.24 L 535.36 96.12 L 534.13 99.24 M 536.59 99.24 M 537.68 102 L 536.89 100 L 533.83 100 L 533.04 102 L 532.08 102 L 534.95 94.77 L 535.96 94.77 L 538.79 102 M 537.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 545.59 99.24 L 544.36 96.12 L 543.13 99.24 M 545.59 99.24 M 546.68 102 L 545.89 100 L 542.83 100 L 542.04 102 L 541.08 102 L 543.95 94.77 L 544.96 94.77 L 547.79 102 M 546.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 102 L 552.5 98.98 L 550.08 94.77 L 551.25 94.77 L 553.13 98.04 L 555.15 94.77 L 556.1 94.77 L 553.52 98.96 L 553.52 102 M 552.5 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 102 L 559.93 94.77 L 560.89 94.77 L 560.89 98.33 L 563.82 94.77 L 564.85 94.77 L 562.02 98.22 L 565.35 102 L 564.05 102 L 560.89 98.34 L 560.89 102 M 559.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 102 L 568.18 94.77 L 569.2 94.77 L 571.44 100.69 L 573.6 94.77 L 574.49 94.77 L 571.87 102 M 570.91 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 579.65 102 L 579.65 95.54 L 577.09 95.54 L 577.09 94.77 L 583.24 94.77 L 583.24 95.54 L 580.68 95.54 L 580.68 102 M 579.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 102 L 587.93 94.77 L 588.96 94.77 L 588.96 101.23 L 592.21 101.23 L 592.21 102 M 587.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.91 102 L 595.18 94.77 L 596.2 94.77 L 598.44 100.69 L 600.6 94.77 L 601.49 94.77 L 598.87 102 M 597.91 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 102 L 606.65 95.54 L 604.09 95.54 L 604.09 94.77 L 610.24 94.77 L 610.24 95.54 L 607.68 95.54 L 607.68 102 M 606.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 102 L 613.93 94.77 L 615.9 94.77 Q 617.21 94.77 617.78 95.22 Q 618.35 95.66 618.35 96.67 Q 618.35 97.82 617.57 98.47 Q 616.79 99.13 615.4 99.13 L 614.95 99.13 L 614.95 102 M 613.93 102 M 614.95 98.35 L 615.36 98.35 Q 616.28 98.35 616.77 97.93 Q 617.27 97.51 617.27 96.75 Q 617.27 96.1 616.88 95.82 Q 616.49 95.54 615.58 95.54 L 614.95 95.54 M 614.95 98.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 624.65 102 L 624.65 95.54 L 622.09 95.54 L 622.09 94.77 L 628.24 94.77 L 628.24 95.54 L 625.68 95.54 L 625.68 102 M 624.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 101.8 Q 636.05 102.18 635.07 102.18 Q 633.35 102.18 632.43 101.2 Q 631.51 100.22 631.51 98.39 Q 631.51 96.59 632.44 95.59 Q 633.37 94.59 635.06 94.59 Q 636.16 94.59 637.35 94.92 L 637.35 95.87 Q 635.86 95.36 635.06 95.36 Q 633.89 95.36 633.24 96.16 Q 632.6 96.95 632.6 98.4 Q 632.6 99.83 633.29 100.62 Q 633.98 101.41 635.23 101.41 Q 635.75 101.41 636.34 101.23 L 636.34 98.88 L 637.36 98.88 M 637.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 640.93 102 L 640.93 94.77 L 641.94 94.77 L 645.58 100.35 L 645.58 94.77 L 646.46 94.77 L 646.46 102 L 645.45 102 L 641.81 96.42 L 641.81 102 M 640.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 651.91 102 L 649.18 94.77 L 650.2 94.77 L 652.44 100.69 L 654.6 94.77 L 655.49 94.77 L 652.87 102 M 651.91 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 102 L 659.93 94.77 L 663.97 94.77 L 663.97 95.54 L 660.96 95.54 L 660.96 97.86 L 663.48 97.86 L 663.48 98.62 L 660.96 98.62 L 660.96 101.23 L 664.18 101.23 L 664.18 102 M 659.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 668.93 102 L 668.93 94.77 L 672.97 94.77 L 672.97 95.54 L 669.96 95.54 L 669.96 97.96 L 672.49 97.96 L 672.49 98.72 L 669.96 98.72 L 669.96 102 M 668.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 682.35 103.45 Q 680.64 102.89 679.49 102.13 Q 679.03 102.18 678.78 102.18 Q 677.33 102.18 676.42 101.13 Q 675.51 100.07 675.51 98.39 Q 675.51 96.66 676.43 95.63 Q 677.35 94.59 678.89 94.59 Q 680.43 94.59 681.35 95.63 Q 682.27 96.66 682.27 98.4 Q 682.27 100.89 680.42 101.85 Q 681.66 102.4 683 102.63 M 682.35 103.45 M 678.86 101.41 Q 679.97 101.41 680.57 100.62 Q 681.18 99.82 681.18 98.37 Q 681.18 96.96 680.57 96.16 Q 679.97 95.36 678.89 95.36 Q 677.81 95.36 677.2 96.16 Q 676.6 96.96 676.6 98.38 Q 676.6 99.79 677.2 100.6 Q 677.8 101.41 678.86 101.41 M 678.86 101.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 102.18 Q 687.34 102.18 686.43 101.19 Q 685.51 100.2 685.51 98.39 Q 685.51 96.58 686.44 95.59 Q 687.38 94.59 689.08 94.59 Q 690.05 94.59 691.35 94.91 L 691.35 95.87 Q 689.87 95.36 689.06 95.36 Q 687.89 95.36 687.24 96.16 Q 686.6 96.95 686.6 98.4 Q 686.6 99.78 687.29 100.58 Q 687.97 101.38 689.17 101.38 Q 690.19 101.38 691.36 100.75 L 691.36 101.63 Q 690.29 102.18 689.03 102.18 M 689.03 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 102 L 694.93 94.77 L 696.9 94.77 Q 698.21 94.77 698.78 95.22 Q 699.35 95.66 699.35 96.67 Q 699.35 97.82 698.57 98.47 Q 697.79 99.13 696.4 99.13 L 695.95 99.13 L 695.95 102 M 694.93 102 M 695.95 98.35 L 696.36 98.35 Q 697.28 98.35 697.77 97.93 Q 698.27 97.51 698.27 96.75 Q 698.27 96.1 697.88 95.82 Q 697.49 95.54 696.58 95.54 L 695.95 95.54 M 695.95 98.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 102 L 703.93 94.77 L 706.33 94.77 Q 707.41 94.77 708.07 95.01 Q 708.73 95.25 709.22 95.82 Q 709.98 96.73 709.98 98.22 Q 709.98 100.02 709.03 101.01 Q 708.08 102 706.35 102 M 703.93 102 M 704.96 101.23 L 706.27 101.23 Q 707.68 101.23 708.26 100.48 Q 708.89 99.67 708.89 98.31 Q 708.89 97.04 708.27 96.31 Q 707.9 95.87 707.38 95.7 Q 706.85 95.54 705.8 95.54 L 704.96 95.54 M 704.96 101.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 102 L 712.93 94.77 L 715.33 94.77 Q 716.41 94.77 717.07 95.01 Q 717.73 95.25 718.22 95.82 Q 718.98 96.73 718.98 98.22 Q 718.98 100.02 718.03 101.01 Q 717.08 102 715.35 102 M 712.93 102 M 713.96 101.23 L 715.27 101.23 Q 716.68 101.23 717.26 100.48 Q 717.89 99.67 717.89 98.31 Q 717.89 97.04 717.27 96.31 Q 716.9 95.87 716.38 95.7 Q 715.85 95.54 714.8 95.54 L 713.96 95.54 M 713.96 101.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 102 L 721.18 94.77 L 722.2 94.77 L 724.44 100.69 L 726.6 94.77 L 727.49 94.77 L 724.87 102 M 723.91 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 102 L 732.5 98.98 L 730.08 94.77 L 731.25 94.77 L 733.13 98.04 L 735.15 94.77 L 736.1 94.77 L 733.52 98.96 L 733.52 102 M 732.5 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.93 102 L 741.93 94.77 L 742.95 94.77 L 742.95 102 M 741.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 102 L 749.93 94.77 L 750.96 94.77 L 750.96 101.23 L 754.21 101.23 L 754.21 102 M 749.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 102 L 757.93 94.77 L 760.33 94.77 Q 761.41 94.77 762.07 95.01 Q 762.73 95.25 763.22 95.82 Q 763.98 96.73 763.98 98.22 Q 763.98 100.02 763.03 101.01 Q 762.08 102 760.35 102 M 757.93 102 M 758.96 101.23 L 760.27 101.23 Q 761.68 101.23 762.26 100.48 Q 762.89 99.67 762.89 98.31 Q 762.89 97.04 762.27 96.31 Q 761.9 95.87 761.38 95.7 Q 760.85 95.54 759.8 95.54 L 758.96 95.54 M 758.96 101.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 770.59 99.24 L 769.36 96.12 L 768.13 99.24 M 770.59 99.24 M 771.68 102 L 770.89 100 L 767.83 100 L 767.04 102 L 766.08 102 L 768.95 94.77 L 769.96 94.77 L 772.79 102 M 771.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 99.24 L 778.36 96.12 L 777.13 99.24 M 779.59 99.24 M 780.68 102 L 779.89 100 L 776.83 100 L 776.04 102 L 775.08 102 L 777.95 94.77 L 778.96 94.77 L 781.79 102 M 780.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 102 L 785.93 94.77 L 789.97 94.77 L 789.97 95.54 L 786.96 95.54 L 786.96 97.86 L 789.48 97.86 L 789.48 98.62 L 786.96 98.62 L 786.96 101.23 L 790.18 101.23 L 790.18 102 M 785.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 102 L 794.93 94.77 L 798.97 94.77 L 798.97 95.54 L 795.96 95.54 L 795.96 97.86 L 798.48 97.86 L 798.48 98.62 L 795.96 98.62 L 795.96 101.23 L 799.18 101.23 L 799.18 102 M 794.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 803.93 102 L 803.93 94.77 L 807.97 94.77 L 807.97 95.54 L 804.96 95.54 L 804.96 97.86 L 807.48 97.86 L 807.48 98.62 L 804.96 98.62 L 804.96 101.23 L 808.18 101.23 L 808.18 102 M 803.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 101.8 Q 816.05 102.18 815.07 102.18 Q 813.35 102.18 812.43 101.2 Q 811.51 100.22 811.51 98.39 Q 811.51 96.59 812.44 95.59 Q 813.37 94.59 815.06 94.59 Q 816.16 94.59 817.35 94.92 L 817.35 95.87 Q 815.86 95.36 815.06 95.36 Q 813.89 95.36 813.24 96.16 Q 812.6 96.95 812.6 98.4 Q 812.6 99.83 813.29 100.62 Q 813.98 101.41 815.23 101.41 Q 815.75 101.41 816.34 101.23 L 816.34 98.88 L 817.36 98.88 M 817.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 822.93 102 L 822.93 94.77 L 823.95 94.77 L 823.95 102 M 822.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 102 L 829.93 94.77 L 832.33 94.77 Q 833.41 94.77 834.07 95.01 Q 834.73 95.25 835.22 95.82 Q 835.98 96.73 835.98 98.22 Q 835.98 100.02 835.03 101.01 Q 834.08 102 832.35 102 M 829.93 102 M 830.96 101.23 L 832.27 101.23 Q 833.68 101.23 834.26 100.48 Q 834.89 99.67 834.89 98.31 Q 834.89 97.04 834.27 96.31 Q 833.9 95.87 833.38 95.7 Q 832.85 95.54 831.8 95.54 L 830.96 95.54 M 830.96 101.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 102 L 839.93 94.77 L 840.96 94.77 L 840.96 101.23 L 844.21 101.23 L 844.21 102 M 839.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 102 L 847.93 94.77 L 849.9 94.77 Q 851.21 94.77 851.78 95.22 Q 852.35 95.66 852.35 96.67 Q 852.35 97.82 851.57 98.47 Q 850.79 99.13 849.4 99.13 L 848.95 99.13 L 848.95 102 M 847.93 102 M 848.95 98.35 L 849.36 98.35 Q 850.28 98.35 850.77 97.93 Q 851.27 97.51 851.27 96.75 Q 851.27 96.1 850.88 95.82 Q 850.49 95.54 849.58 95.54 L 848.95 95.54 M 848.95 98.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 102 L 858.5 98.98 L 856.08 94.77 L 857.25 94.77 L 859.13 98.04 L 861.15 94.77 L 862.1 94.77 L 859.52 98.96 L 859.52 102 M 858.5 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 102.18 Q 867.62 102.18 866.49 101.86 L 866.49 100.85 Q 867.71 101.41 868.5 101.41 Q 869.1 101.41 869.47 101.1 Q 869.84 100.78 869.84 100.26 Q 869.84 99.84 869.6 99.54 Q 869.35 99.24 868.71 98.88 L 868.21 98.59 Q 867.28 98.06 866.91 97.59 Q 866.53 97.13 866.53 96.51 Q 866.53 95.67 867.13 95.13 Q 867.74 94.59 868.68 94.59 Q 869.51 94.59 870.44 94.87 L 870.44 95.81 Q 869.3 95.36 868.73 95.36 Q 868.2 95.36 867.86 95.64 Q 867.51 95.93 867.51 96.36 Q 867.51 96.72 867.76 97 Q 868.02 97.27 868.69 97.66 L 869.21 97.95 Q 870.15 98.48 870.52 98.96 Q 870.89 99.43 870.89 100.1 Q 870.89 101.04 870.19 101.61 Q 869.5 102.18 868.35 102.18 M 868.35 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 102.18 Q 876.34 102.18 875.43 101.19 Q 874.51 100.2 874.51 98.39 Q 874.51 96.58 875.44 95.59 Q 876.38 94.59 878.08 94.59 Q 879.05 94.59 880.35 94.91 L 880.35 95.87 Q 878.87 95.36 878.06 95.36 Q 876.89 95.36 876.24 96.16 Q 875.6 96.95 875.6 98.4 Q 875.6 99.78 876.29 100.58 Q 876.97 101.38 878.17 101.38 Q 879.19 101.38 880.36 100.75 L 880.36 101.63 Q 879.29 102.18 878.03 102.18 M 878.03 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 102 L 883.93 94.77 L 886.12 94.77 Q 887.16 94.77 887.71 95.23 Q 888.27 95.69 888.27 96.57 Q 888.27 98.01 886.81 98.62 L 889.22 102 L 887.96 102 L 885.91 98.94 L 884.95 98.94 L 884.95 102 M 883.93 102 M 884.95 98.18 L 885.28 98.18 Q 887.21 98.18 887.21 96.66 Q 887.21 95.54 885.59 95.54 L 884.95 95.54 M 884.95 98.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 99.24 L 895.36 96.12 L 894.13 99.24 M 896.59 99.24 M 897.68 102 L 896.89 100 L 893.83 100 L 893.04 102 L 892.08 102 L 894.95 94.77 L 895.96 94.77 L 898.79 102 M 897.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 101.8 Q 906.05 102.18 905.07 102.18 Q 903.35 102.18 902.43 101.2 Q 901.51 100.22 901.51 98.39 Q 901.51 96.59 902.44 95.59 Q 903.37 94.59 905.06 94.59 Q 906.16 94.59 907.35 94.92 L 907.35 95.87 Q 905.86 95.36 905.06 95.36 Q 903.89 95.36 903.24 96.16 Q 902.6 96.95 902.6 98.4 Q 902.6 99.83 903.29 100.62 Q 903.98 101.41 905.23 101.41 Q 905.75 101.41 906.34 101.23 L 906.34 98.88 L 907.36 98.88 M 907.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 102.18 Q 912.62 102.18 911.49 101.86 L 911.49 100.85 Q 912.71 101.41 913.5 101.41 Q 914.1 101.41 914.47 101.1 Q 914.84 100.78 914.84 100.26 Q 914.84 99.84 914.6 99.54 Q 914.35 99.24 913.71 98.88 L 913.21 98.59 Q 912.28 98.06 911.91 97.59 Q 911.53 97.13 911.53 96.51 Q 911.53 95.67 912.13 95.13 Q 912.74 94.59 913.68 94.59 Q 914.51 94.59 915.44 94.87 L 915.44 95.81 Q 914.3 95.36 913.73 95.36 Q 913.2 95.36 912.86 95.64 Q 912.51 95.93 912.51 96.36 Q 912.51 96.72 912.76 97 Q 913.02 97.27 913.69 97.66 L 914.21 97.95 Q 915.15 98.48 915.52 98.96 Q 915.89 99.43 915.89 100.1 Q 915.89 101.04 915.19 101.61 Q 914.5 102.18 913.35 102.18 M 913.35 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 102.18 Q 921.34 102.18 920.43 101.19 Q 919.51 100.2 919.51 98.39 Q 919.51 96.58 920.44 95.59 Q 921.38 94.59 923.08 94.59 Q 924.05 94.59 925.35 94.91 L 925.35 95.87 Q 923.87 95.36 923.06 95.36 Q 921.89 95.36 921.24 96.16 Q 920.6 96.95 920.6 98.4 Q 920.6 99.78 921.29 100.58 Q 921.97 101.38 923.17 101.38 Q 924.19 101.38 925.36 100.75 L 925.36 101.63 Q 924.29 102.18 923.03 102.18 M 923.03 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 102.18 Q 930.62 102.18 929.49 101.86 L 929.49 100.85 Q 930.71 101.41 931.5 101.41 Q 932.1 101.41 932.47 101.1 Q 932.84 100.78 932.84 100.26 Q 932.84 99.84 932.6 99.54 Q 932.35 99.24 931.71 98.88 L 931.21 98.59 Q 930.28 98.06 929.91 97.59 Q 929.53 97.13 929.53 96.51 Q 929.53 95.67 930.13 95.13 Q 930.74 94.59 931.68 94.59 Q 932.51 94.59 933.44 94.87 L 933.44 95.81 Q 932.3 95.36 931.73 95.36 Q 931.2 95.36 930.86 95.64 Q 930.51 95.93 930.51 96.36 Q 930.51 96.72 930.76 97 Q 931.02 97.27 931.69 97.66 L 932.21 97.95 Q 933.15 98.48 933.52 98.96 Q 933.89 99.43 933.89 100.1 Q 933.89 101.04 933.19 101.61 Q 932.5 102.18 931.35 102.18 M 931.35 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 102.18 Q 939.62 102.18 938.49 101.86 L 938.49 100.85 Q 939.71 101.41 940.5 101.41 Q 941.1 101.41 941.47 101.1 Q 941.84 100.78 941.84 100.26 Q 941.84 99.84 941.6 99.54 Q 941.35 99.24 940.71 98.88 L 940.21 98.59 Q 939.28 98.06 938.91 97.59 Q 938.53 97.13 938.53 96.51 Q 938.53 95.67 939.13 95.13 Q 939.74 94.59 940.68 94.59 Q 941.51 94.59 942.44 94.87 L 942.44 95.81 Q 941.3 95.36 940.73 95.36 Q 940.2 95.36 939.86 95.64 Q 939.51 95.93 939.51 96.36 Q 939.51 96.72 939.76 97 Q 940.02 97.27 940.69 97.66 L 941.21 97.95 Q 942.15 98.48 942.52 98.96 Q 942.89 99.43 942.89 100.1 Q 942.89 101.04 942.19 101.61 Q 941.5 102.18 940.35 102.18 M 940.35 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 102.18 Q 948.34 102.18 947.43 101.19 Q 946.51 100.2 946.51 98.39 Q 946.51 96.58 947.44 95.59 Q 948.38 94.59 950.08 94.59 Q 951.05 94.59 952.35 94.91 L 952.35 95.87 Q 950.87 95.36 950.06 95.36 Q 948.89 95.36 948.24 96.16 Q 947.6 96.95 947.6 98.4 Q 947.6 99.78 948.29 100.58 Q 948.97 101.38 950.17 101.38 Q 951.19 101.38 952.36 100.75 L 952.36 101.63 Q 951.29 102.18 950.03 102.18 M 950.03 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 99.24 L 958.36 96.12 L 957.13 99.24 M 959.59 99.24 M 960.68 102 L 959.89 100 L 956.83 100 L 956.04 102 L 955.08 102 L 957.95 94.77 L 958.96 94.77 L 961.79 102 M 960.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 101.8 Q 969.05 102.18 968.07 102.18 Q 966.35 102.18 965.43 101.2 Q 964.51 100.22 964.51 98.39 Q 964.51 96.59 965.44 95.59 Q 966.37 94.59 968.06 94.59 Q 969.16 94.59 970.35 94.92 L 970.35 95.87 Q 968.86 95.36 968.06 95.36 Q 966.89 95.36 966.24 96.16 Q 965.6 96.95 965.6 98.4 Q 965.6 99.83 966.29 100.62 Q 966.98 101.41 968.23 101.41 Q 968.75 101.41 969.34 101.23 L 969.34 98.88 L 970.36 98.88 M 970.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 102 L 973.93 94.77 L 974.89 94.77 L 974.89 98.33 L 977.82 94.77 L 978.85 94.77 L 976.02 98.22 L 979.35 102 L 978.05 102 L 974.89 98.34 L 974.89 102 M 973.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 983.93 102 L 983.93 94.77 L 984.96 94.77 L 984.96 101.23 L 988.21 101.23 L 988.21 102 M 983.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 991.93 102 L 991.93 94.77 L 992.89 94.77 L 992.89 98.33 L 995.82 94.77 L 996.85 94.77 L 994.02 98.22 L 997.35 102 L 996.05 102 L 992.89 98.34 L 992.89 102 M 991.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1002.65 102 L 1002.65 95.54 L 1000.09 95.54 L 1000.09 94.77 L 1006.24 94.77 L 1006.24 95.54 L 1003.68 95.54 L 1003.68 102 M 1002.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 101.8 Q 1014.05 102.18 1013.07 102.18 Q 1011.35 102.18 1010.43 101.2 Q 1009.51 100.22 1009.51 98.39 Q 1009.51 96.59 1010.44 95.59 Q 1011.37 94.59 1013.06 94.59 Q 1014.16 94.59 1015.35 94.92 L 1015.35 95.87 Q 1013.86 95.36 1013.06 95.36 Q 1011.89 95.36 1011.24 96.16 Q 1010.6 96.95 1010.6 98.4 Q 1010.6 99.83 1011.29 100.62 Q 1011.98 101.41 1013.23 101.41 Q 1013.75 101.41 1014.34 101.23 L 1014.34 98.88 L 1015.36 98.88 M 1015.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1021.35 102.18 Q 1020.62 102.18 1019.49 101.86 L 1019.49 100.85 Q 1020.71 101.41 1021.5 101.41 Q 1022.1 101.41 1022.47 101.1 Q 1022.84 100.78 1022.84 100.26 Q 1022.84 99.84 1022.6 99.54 Q 1022.35 99.24 1021.71 98.88 L 1021.21 98.59 Q 1020.28 98.06 1019.91 97.59 Q 1019.53 97.13 1019.53 96.51 Q 1019.53 95.67 1020.13 95.13 Q 1020.74 94.59 1021.68 94.59 Q 1022.51 94.59 1023.44 94.87 L 1023.44 95.81 Q 1022.3 95.36 1021.73 95.36 Q 1021.2 95.36 1020.86 95.64 Q 1020.51 95.93 1020.51 96.36 Q 1020.51 96.72 1020.76 97 Q 1021.02 97.27 1021.69 97.66 L 1022.21 97.95 Q 1023.15 98.48 1023.52 98.96 Q 1023.89 99.43 1023.89 100.1 Q 1023.89 101.04 1023.19 101.61 Q 1022.5 102.18 1021.35 102.18 M 1021.35 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1028.93 102 L 1028.93 94.77 L 1029.96 94.77 L 1029.96 101.23 L 1033.21 101.23 L 1033.21 102 M 1028.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 102 L 1036.93 94.77 L 1037.94 94.77 L 1041.58 100.35 L 1041.58 94.77 L 1042.46 94.77 L 1042.46 102 L 1041.45 102 L 1037.81 96.42 L 1037.81 102 M 1036.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 103.45 Q 1049.64 102.89 1048.49 102.13 Q 1048.03 102.18 1047.78 102.18 Q 1046.33 102.18 1045.42 101.13 Q 1044.51 100.07 1044.51 98.39 Q 1044.51 96.66 1045.43 95.63 Q 1046.35 94.59 1047.89 94.59 Q 1049.43 94.59 1050.35 95.63 Q 1051.27 96.66 1051.27 98.4 Q 1051.27 100.89 1049.42 101.85 Q 1050.66 102.4 1052 102.63 M 1051.35 103.45 M 1047.86 101.41 Q 1048.97 101.41 1049.57 100.62 Q 1050.18 99.82 1050.18 98.37 Q 1050.18 96.96 1049.57 96.16 Q 1048.97 95.36 1047.89 95.36 Q 1046.81 95.36 1046.2 96.16 Q 1045.6 96.96 1045.6 98.38 Q 1045.6 99.79 1046.2 100.6 Q 1046.8 101.41 1047.86 101.41 M 1047.86 101.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1054.93 102 L 1054.93 94.77 L 1057.33 94.77 Q 1058.41 94.77 1059.07 95.01 Q 1059.73 95.25 1060.22 95.82 Q 1060.98 96.73 1060.98 98.22 Q 1060.98 100.02 1060.03 101.01 Q 1059.08 102 1057.35 102 M 1054.93 102 M 1055.96 101.23 L 1057.27 101.23 Q 1058.68 101.23 1059.26 100.48 Q 1059.89 99.67 1059.89 98.31 Q 1059.89 97.04 1059.27 96.31 Q 1058.9 95.87 1058.38 95.7 Q 1057.85 95.54 1056.8 95.54 L 1055.96 95.54 M 1055.96 101.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 102 L 1063.93 94.77 L 1066.33 94.77 Q 1067.41 94.77 1068.07 95.01 Q 1068.73 95.25 1069.22 95.82 Q 1069.98 96.73 1069.98 98.22 Q 1069.98 100.02 1069.03 101.01 Q 1068.08 102 1066.35 102 M 1063.93 102 M 1064.96 101.23 L 1066.27 101.23 Q 1067.68 101.23 1068.26 100.48 Q 1068.89 99.67 1068.89 98.31 Q 1068.89 97.04 1068.27 96.31 Q 1067.9 95.87 1067.38 95.7 Q 1066.85 95.54 1065.8 95.54 L 1064.96 95.54 M 1064.96 101.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.35 103.45 Q 1076.64 102.89 1075.49 102.13 Q 1075.03 102.18 1074.78 102.18 Q 1073.33 102.18 1072.42 101.13 Q 1071.51 100.07 1071.51 98.39 Q 1071.51 96.66 1072.43 95.63 Q 1073.35 94.59 1074.89 94.59 Q 1076.43 94.59 1077.35 95.63 Q 1078.27 96.66 1078.27 98.4 Q 1078.27 100.89 1076.42 101.85 Q 1077.66 102.4 1079 102.63 M 1078.35 103.45 M 1074.86 101.41 Q 1075.97 101.41 1076.57 100.62 Q 1077.18 99.82 1077.18 98.37 Q 1077.18 96.96 1076.57 96.16 Q 1075.97 95.36 1074.89 95.36 Q 1073.81 95.36 1073.2 96.16 Q 1072.6 96.96 1072.6 98.38 Q 1072.6 99.79 1073.2 100.6 Q 1073.8 101.41 1074.86 101.41 M 1074.86 101.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1084.35 102.18 Q 1083.62 102.18 1082.49 101.86 L 1082.49 100.85 Q 1083.71 101.41 1084.5 101.41 Q 1085.1 101.41 1085.47 101.1 Q 1085.84 100.78 1085.84 100.26 Q 1085.84 99.84 1085.6 99.54 Q 1085.35 99.24 1084.71 98.88 L 1084.21 98.59 Q 1083.28 98.06 1082.91 97.59 Q 1082.53 97.13 1082.53 96.51 Q 1082.53 95.67 1083.13 95.13 Q 1083.74 94.59 1084.68 94.59 Q 1085.51 94.59 1086.44 94.87 L 1086.44 95.81 Q 1085.3 95.36 1084.73 95.36 Q 1084.2 95.36 1083.86 95.64 Q 1083.51 95.93 1083.51 96.36 Q 1083.51 96.72 1083.76 97 Q 1084.02 97.27 1084.69 97.66 L 1085.21 97.95 Q 1086.15 98.48 1086.52 98.96 Q 1086.89 99.43 1086.89 100.1 Q 1086.89 101.04 1086.19 101.61 Q 1085.5 102.18 1084.35 102.18 M 1084.35 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 102 L 1091.93 94.77 L 1095.97 94.77 L 1095.97 95.54 L 1092.96 95.54 L 1092.96 97.96 L 1095.49 97.96 L 1095.49 98.72 L 1092.96 98.72 L 1092.96 102 M 1091.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 102 L 1100.93 94.77 L 1101.96 94.77 L 1101.96 101.23 L 1105.21 101.23 L 1105.21 102 M 1100.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 102 L 1108.93 94.77 L 1111.33 94.77 Q 1112.41 94.77 1113.07 95.01 Q 1113.73 95.25 1114.22 95.82 Q 1114.98 96.73 1114.98 98.22 Q 1114.98 100.02 1114.03 101.01 Q 1113.08 102 1111.35 102 M 1108.93 102 M 1109.96 101.23 L 1111.27 101.23 Q 1112.68 101.23 1113.26 100.48 Q 1113.89 99.67 1113.89 98.31 Q 1113.89 97.04 1113.27 96.31 Q 1112.9 95.87 1112.38 95.7 Q 1111.85 95.54 1110.8 95.54 L 1109.96 95.54 M 1109.96 101.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 102 L 1117.93 94.77 L 1120.33 94.77 Q 1121.41 94.77 1122.07 95.01 Q 1122.73 95.25 1123.22 95.82 Q 1123.98 96.73 1123.98 98.22 Q 1123.98 100.02 1123.03 101.01 Q 1122.08 102 1120.35 102 M 1117.93 102 M 1118.96 101.23 L 1120.27 101.23 Q 1121.68 101.23 1122.26 100.48 Q 1122.89 99.67 1122.89 98.31 Q 1122.89 97.04 1122.27 96.31 Q 1121.9 95.87 1121.38 95.7 Q 1120.85 95.54 1119.8 95.54 L 1118.96 95.54 M 1118.96 101.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1126.93 102 L 1126.93 94.77 L 1129.33 94.77 Q 1130.41 94.77 1131.07 95.01 Q 1131.73 95.25 1132.22 95.82 Q 1132.98 96.73 1132.98 98.22 Q 1132.98 100.02 1132.03 101.01 Q 1131.08 102 1129.35 102 M 1126.93 102 M 1127.96 101.23 L 1129.27 101.23 Q 1130.68 101.23 1131.26 100.48 Q 1131.89 99.67 1131.89 98.31 Q 1131.89 97.04 1131.27 96.31 Q 1130.9 95.87 1130.38 95.7 Q 1129.85 95.54 1128.8 95.54 L 1127.96 95.54 M 1127.96 101.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 103.45 Q 1139.64 102.89 1138.49 102.13 Q 1138.03 102.18 1137.78 102.18 Q 1136.33 102.18 1135.42 101.13 Q 1134.51 100.07 1134.51 98.39 Q 1134.51 96.66 1135.43 95.63 Q 1136.35 94.59 1137.89 94.59 Q 1139.43 94.59 1140.35 95.63 Q 1141.27 96.66 1141.27 98.4 Q 1141.27 100.89 1139.42 101.85 Q 1140.66 102.4 1142 102.63 M 1141.35 103.45 M 1137.86 101.41 Q 1138.97 101.41 1139.57 100.62 Q 1140.18 99.82 1140.18 98.37 Q 1140.18 96.96 1139.57 96.16 Q 1138.97 95.36 1137.89 95.36 Q 1136.81 95.36 1136.2 96.16 Q 1135.6 96.96 1135.6 98.38 Q 1135.6 99.79 1136.2 100.6 Q 1136.8 101.41 1137.86 101.41 M 1137.86 101.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1146.93 102 L 1146.93 94.77 L 1147.95 94.77 L 1147.95 102 M 1146.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1153.93 102 L 1153.93 94.77 L 1156.33 94.77 Q 1157.41 94.77 1158.07 95.01 Q 1158.73 95.25 1159.22 95.82 Q 1159.98 96.73 1159.98 98.22 Q 1159.98 100.02 1159.03 101.01 Q 1158.08 102 1156.35 102 M 1153.93 102 M 1154.96 101.23 L 1156.27 101.23 Q 1157.68 101.23 1158.26 100.48 Q 1158.89 99.67 1158.89 98.31 Q 1158.89 97.04 1158.27 96.31 Q 1157.9 95.87 1157.38 95.7 Q 1156.85 95.54 1155.8 95.54 L 1154.96 95.54 M 1154.96 101.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1163.93 102 L 1163.93 94.77 L 1167.97 94.77 L 1167.97 95.54 L 1164.96 95.54 L 1164.96 97.86 L 1167.48 97.86 L 1167.48 98.62 L 1164.96 98.62 L 1164.96 101.23 L 1168.18 101.23 L 1168.18 102 M 1163.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 101.8 Q 1176.05 102.18 1175.07 102.18 Q 1173.35 102.18 1172.43 101.2 Q 1171.51 100.22 1171.51 98.39 Q 1171.51 96.59 1172.44 95.59 Q 1173.37 94.59 1175.06 94.59 Q 1176.16 94.59 1177.35 94.92 L 1177.35 95.87 Q 1175.86 95.36 1175.06 95.36 Q 1173.89 95.36 1173.24 96.16 Q 1172.6 96.95 1172.6 98.4 Q 1172.6 99.83 1173.29 100.62 Q 1173.98 101.41 1175.23 101.41 Q 1175.75 101.41 1176.34 101.23 L 1176.34 98.88 L 1177.36 98.88 M 1177.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1180.87 102 L 1179.01 94.77 L 1180 94.77 L 1181.48 100.48 L 1182.84 94.77 L 1183.82 94.77 L 1185.11 100.4 L 1186.71 94.77 L 1187.54 94.77 L 1185.51 102 L 1184.49 102 L 1183.22 96.43 L 1181.89 102 M 1180.87 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 102 L 1189.18 94.77 L 1190.2 94.77 L 1192.44 100.69 L 1194.6 94.77 L 1195.49 94.77 L 1192.87 102 M 1191.91 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 102 L 1199.93 94.77 L 1200.96 94.77 L 1200.96 101.23 L 1204.21 101.23 L 1204.21 102 M 1199.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 102 L 1209.65 95.54 L 1207.09 95.54 L 1207.09 94.77 L 1213.24 94.77 L 1213.24 95.54 L 1210.68 95.54 L 1210.68 102 M 1209.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 102.18 Q 1218.34 102.18 1217.43 101.19 Q 1216.51 100.2 1216.51 98.39 Q 1216.51 96.58 1217.44 95.59 Q 1218.38 94.59 1220.08 94.59 Q 1221.05 94.59 1222.35 94.91 L 1222.35 95.87 Q 1220.87 95.36 1220.06 95.36 Q 1218.89 95.36 1218.24 96.16 Q 1217.6 96.95 1217.6 98.4 Q 1217.6 99.78 1218.29 100.58 Q 1218.97 101.38 1220.17 101.38 Q 1221.19 101.38 1222.36 100.75 L 1222.36 101.63 Q 1221.29 102.18 1220.03 102.18 M 1220.03 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1229.59 99.24 L 1228.36 96.12 L 1227.13 99.24 M 1229.59 99.24 M 1230.68 102 L 1229.89 100 L 1226.83 100 L 1226.04 102 L 1225.08 102 L 1227.95 94.77 L 1228.96 94.77 L 1231.79 102 M 1230.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 99.24 L 1237.36 96.12 L 1236.13 99.24 M 1238.59 99.24 M 1239.68 102 L 1238.89 100 L 1235.83 100 L 1235.04 102 L 1234.08 102 L 1236.95 94.77 L 1237.96 94.77 L 1240.79 102 M 1239.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 102 L 1245.5 98.98 L 1243.08 94.77 L 1244.25 94.77 L 1246.13 98.04 L 1248.15 94.77 L 1249.1 94.77 L 1246.52 98.96 L 1246.52 102 M 1245.5 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 102 L 1252.93 94.77 L 1254.9 94.77 Q 1256.21 94.77 1256.78 95.22 Q 1257.35 95.66 1257.35 96.67 Q 1257.35 97.82 1256.57 98.47 Q 1255.79 99.13 1254.4 99.13 L 1253.95 99.13 L 1253.95 102 M 1252.93 102 M 1253.95 98.35 L 1254.36 98.35 Q 1255.28 98.35 1255.77 97.93 Q 1256.27 97.51 1256.27 96.75 Q 1256.27 96.1 1255.88 95.82 Q 1255.49 95.54 1254.58 95.54 L 1253.95 95.54 M 1253.95 98.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1263.91 102 L 1261.18 94.77 L 1262.2 94.77 L 1264.44 100.69 L 1266.6 94.77 L 1267.49 94.77 L 1264.87 102 M 1263.91 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1273.35 102.18 Q 1272.62 102.18 1271.49 101.86 L 1271.49 100.85 Q 1272.71 101.41 1273.5 101.41 Q 1274.1 101.41 1274.47 101.1 Q 1274.84 100.78 1274.84 100.26 Q 1274.84 99.84 1274.6 99.54 Q 1274.35 99.24 1273.71 98.88 L 1273.21 98.59 Q 1272.28 98.06 1271.91 97.59 Q 1271.53 97.13 1271.53 96.51 Q 1271.53 95.67 1272.13 95.13 Q 1272.74 94.59 1273.68 94.59 Q 1274.51 94.59 1275.44 94.87 L 1275.44 95.81 Q 1274.3 95.36 1273.73 95.36 Q 1273.2 95.36 1272.86 95.64 Q 1272.51 95.93 1272.51 96.36 Q 1272.51 96.72 1272.76 97 Q 1273.02 97.27 1273.69 97.66 L 1274.21 97.95 Q 1275.15 98.48 1275.52 98.96 Q 1275.89 99.43 1275.89 100.1 Q 1275.89 101.04 1275.19 101.61 Q 1274.5 102.18 1273.35 102.18 M 1273.35 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 102 L 1279.93 94.77 L 1282.33 94.77 Q 1283.41 94.77 1284.07 95.01 Q 1284.73 95.25 1285.22 95.82 Q 1285.98 96.73 1285.98 98.22 Q 1285.98 100.02 1285.03 101.01 Q 1284.08 102 1282.35 102 M 1279.93 102 M 1280.96 101.23 L 1282.27 101.23 Q 1283.68 101.23 1284.26 100.48 Q 1284.89 99.67 1284.89 98.31 Q 1284.89 97.04 1284.27 96.31 Q 1283.9 95.87 1283.38 95.7 Q 1282.85 95.54 1281.8 95.54 L 1280.96 95.54 M 1280.96 101.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 102 L 1288.18 94.77 L 1289.2 94.77 L 1291.44 100.69 L 1293.6 94.77 L 1294.49 94.77 L 1291.87 102 M 1290.91 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.65 102 L 1299.65 95.54 L 1297.09 95.54 L 1297.09 94.77 L 1303.24 94.77 L 1303.24 95.54 L 1300.68 95.54 L 1300.68 102 M 1299.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 102 L 1308.93 94.77 L 1309.95 94.77 L 1309.95 102 M 1308.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 102 L 1316.93 94.77 L 1320.97 94.77 L 1320.97 95.54 L 1317.96 95.54 L 1317.96 97.86 L 1320.48 97.86 L 1320.48 98.62 L 1317.96 98.62 L 1317.96 101.23 L 1321.18 101.23 L 1321.18 102 M 1316.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 102 L 1326.65 95.54 L 1324.09 95.54 L 1324.09 94.77 L 1330.24 94.77 L 1330.24 95.54 L 1327.68 95.54 L 1327.68 102 M 1326.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 102 L 1333.93 94.77 L 1334.96 94.77 L 1334.96 97.82 L 1338.4 97.82 L 1338.4 94.77 L 1339.42 94.77 L 1339.42 102 L 1338.4 102 L 1338.4 98.59 L 1334.96 98.59 L 1334.96 102 M 1333.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 102 L 1342.93 94.77 L 1343.89 94.77 L 1343.89 98.33 L 1346.82 94.77 L 1347.85 94.77 L 1345.02 98.22 L 1348.35 102 L 1347.05 102 L 1343.89 98.34 L 1343.89 102 M 1342.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 102 L 1352.93 94.77 L 1356.97 94.77 L 1356.97 95.54 L 1353.96 95.54 L 1353.96 97.86 L 1356.48 97.86 L 1356.48 98.62 L 1353.96 98.62 L 1353.96 101.23 L 1357.18 101.23 L 1357.18 102 M 1352.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1361.93 102 L 1361.93 94.77 L 1365.97 94.77 L 1365.97 95.54 L 1362.96 95.54 L 1362.96 97.86 L 1365.48 97.86 L 1365.48 98.62 L 1362.96 98.62 L 1362.96 101.23 L 1366.18 101.23 L 1366.18 102 M 1361.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1370.93 102 L 1370.93 94.77 L 1374.97 94.77 L 1374.97 95.54 L 1371.96 95.54 L 1371.96 97.86 L 1374.48 97.86 L 1374.48 98.62 L 1371.96 98.62 L 1371.96 101.23 L 1375.18 101.23 L 1375.18 102 M 1370.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1379.93 102 L 1379.93 94.77 L 1380.96 94.77 L 1380.96 101.23 L 1384.21 101.23 L 1384.21 102 M 1379.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.65 102 L 1389.65 95.54 L 1387.09 95.54 L 1387.09 94.77 L 1393.24 94.77 L 1393.24 95.54 L 1390.68 95.54 L 1390.68 102 M 1389.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1400.59 99.24 L 1399.36 96.12 L 1398.13 99.24 M 1400.59 99.24 M 1401.68 102 L 1400.89 100 L 1397.83 100 L 1397.04 102 L 1396.08 102 L 1398.95 94.77 L 1399.96 94.77 L 1402.79 102 M 1401.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 99.47 L 1405.72 98.75 L 1410.06 98.75 L 1410.06 99.47 M 1405.72 99.47"/></g><rect x="0" y="104" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="104" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="104" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="104" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="104" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="104" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="594" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="104" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="104" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="104" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="104" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="639" y="104" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="104" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="104" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="104" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="104" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="104" width="27" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="104" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="104" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="104" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="104" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="104" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="801" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="104" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="104" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="104" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="104" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="104" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="104" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="104" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="104" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="104" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="104" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="104" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="104" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="104" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="104" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="104" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="104" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="104" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="104" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="104" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="104" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="104" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="104" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="104" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="104" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="104" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1.72 112.47 L 1.72 111.75 L 6.06 111.75 L 6.06 112.47 M 1.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 10.72 112.47 L 10.72 111.75 L 15.06 111.75 L 15.06 112.47 M 10.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 19.72 112.47 L 19.72 111.75 L 24.06 111.75 L 24.06 112.47 M 19.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 28.72 112.47 L 28.72 111.75 L 33.06 111.75 L 33.06 112.47 M 28.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 112.47 L 37.72 111.75 L 42.06 111.75 L 42.06 112.47 M 37.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 112.47 L 46.72 111.75 L 51.06 111.75 L 51.06 112.47 M 46.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 112.47 L 55.72 111.75 L 60.06 111.75 L 60.06 112.47 M 55.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.72 112.47 L 64.72 111.75 L 69.06 111.75 L 69.06 112.47 M 64.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 73.72 112.47 L 73.72 111.75 L 78.06 111.75 L 78.06 112.47 M 73.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 82.72 112.47 L 82.72 111.75 L 87.06 111.75 L 87.06 112.47 M 82.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 91.72 112.47 L 91.72 111.75 L 96.06 111.75 L 96.06 112.47 M 91.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 100.72 112.47 L 100.72 111.75 L 105.06 111.75 L 105.06 112.47 M 100.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 109.72 112.47 L 109.72 111.75 L 114.06 111.75 L 114.06 112.47 M 109.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 118.72 112.47 L 118.72 111.75 L 123.06 111.75 L 123.06 112.47 M 118.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 127.72 112.47 L 127.72 111.75 L 132.06 111.75 L 132.06 112.47 M 127.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 136.72 112.47 L 136.72 111.75 L 141.06 111.75 L 141.06 112.47 M 136.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 145.72 112.47 L 145.72 111.75 L 150.06 111.75 L 150.06 112.47 M 145.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 154.72 112.47 L 154.72 111.75 L 159.06 111.75 L 159.06 112.47 M 154.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 163.72 112.47 L 163.72 111.75 L 168.06 111.75 L 168.06 112.47 M 163.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 172.72 112.47 L 172.72 111.75 L 177.06 111.75 L 177.06 112.47 M 172.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.72 112.47 L 181.72 111.75 L 186.06 111.75 L 186.06 112.47 M 181.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.72 112.47 L 190.72 111.75 L 195.06 111.75 L 195.06 112.47 M 190.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 199.72 112.47 L 199.72 111.75 L 204.06 111.75 L 204.06 112.47 M 199.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.72 112.47 L 208.72 111.75 L 213.06 111.75 L 213.06 112.47 M 208.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 217.72 112.47 L 217.72 111.75 L 222.06 111.75 L 222.06 112.47 M 217.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.72 112.47 L 226.72 111.75 L 231.06 111.75 L 231.06 112.47 M 226.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 235.72 112.47 L 235.72 111.75 L 240.06 111.75 L 240.06 112.47 M 235.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 244.72 112.47 L 244.72 111.75 L 249.06 111.75 L 249.06 112.47 M 244.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 253.72 112.47 L 253.72 111.75 L 258.06 111.75 L 258.06 112.47 M 253.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.72 112.47 L 262.72 111.75 L 267.06 111.75 L 267.06 112.47 M 262.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 271.72 112.47 L 271.72 111.75 L 276.06 111.75 L 276.06 112.47 M 271.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 280.72 112.47 L 280.72 111.75 L 285.06 111.75 L 285.06 112.47 M 280.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 289.72 112.47 L 289.72 111.75 L 294.06 111.75 L 294.06 112.47 M 289.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 298.72 112.47 L 298.72 111.75 L 303.06 111.75 L 303.06 112.47 M 298.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 307.72 112.47 L 307.72 111.75 L 312.06 111.75 L 312.06 112.47 M 307.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 316.72 112.47 L 316.72 111.75 L 321.06 111.75 L 321.06 112.47 M 316.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 325.72 112.47 L 325.72 111.75 L 330.06 111.75 L 330.06 112.47 M 325.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 334.72 112.47 L 334.72 111.75 L 339.06 111.75 L 339.06 112.47 M 334.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 112.47 L 343.72 111.75 L 348.06 111.75 L 348.06 112.47 M 343.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 112.47 L 352.72 111.75 L 357.06 111.75 L 357.06 112.47 M 352.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 361.72 112.47 L 361.72 111.75 L 366.06 111.75 L 366.06 112.47 M 361.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 370.72 112.47 L 370.72 111.75 L 375.06 111.75 L 375.06 112.47 M 370.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 379.72 112.47 L 379.72 111.75 L 384.06 111.75 L 384.06 112.47 M 379.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 388.72 112.47 L 388.72 111.75 L 393.06 111.75 L 393.06 112.47 M 388.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 397.72 112.47 L 397.72 111.75 L 402.06 111.75 L 402.06 112.47 M 397.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.72 112.47 L 406.72 111.75 L 411.06 111.75 L 411.06 112.47 M 406.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 415.72 112.47 L 415.72 111.75 L 420.06 111.75 L 420.06 112.47 M 415.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 112.47 L 424.72 111.75 L 429.06 111.75 L 429.06 112.47 M 424.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 433.72 112.47 L 433.72 111.75 L 438.06 111.75 L 438.06 112.47 M 433.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 442.72 112.47 L 442.72 111.75 L 447.06 111.75 L 447.06 112.47 M 442.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 451.72 112.47 L 451.72 111.75 L 456.06 111.75 L 456.06 112.47 M 451.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.72 112.47 L 460.72 111.75 L 465.06 111.75 L 465.06 112.47 M 460.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 469.72 112.47 L 469.72 111.75 L 474.06 111.75 L 474.06 112.47 M 469.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 478.72 112.47 L 478.72 111.75 L 483.06 111.75 L 483.06 112.47 M 478.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 487.72 112.47 L 487.72 111.75 L 492.06 111.75 L 492.06 112.47 M 487.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 496.72 112.47 L 496.72 111.75 L 501.06 111.75 L 501.06 112.47 M 496.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 505.72 112.47 L 505.72 111.75 L 510.06 111.75 L 510.06 112.47 M 505.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 514.72 112.47 L 514.72 111.75 L 519.06 111.75 L 519.06 112.47 M 514.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 523.72 112.47 L 523.72 111.75 L 528.06 111.75 L 528.06 112.47 M 523.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 112.24 L 535.36 109.12 L 534.13 112.24 M 536.59 112.24 M 537.68 115 L 536.89 113 L 533.83 113 L 533.04 115 L 532.08 115 L 534.95 107.77 L 535.96 107.77 L 538.79 115 M 537.68 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 543.65 115 L 543.65 108.54 L 541.09 108.54 L 541.09 107.77 L 547.24 107.77 L 547.24 108.54 L 544.68 108.54 L 544.68 115 M 543.65 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 115 L 552.5 111.98 L 550.08 107.77 L 551.25 107.77 L 553.13 111.04 L 555.15 107.77 L 556.1 107.77 L 553.52 111.96 L 553.52 115 M 552.5 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 115 L 559.93 107.77 L 560.89 107.77 L 560.89 111.33 L 563.82 107.77 L 564.85 107.77 L 562.02 111.22 L 565.35 115 L 564.05 115 L 560.89 111.34 L 560.89 115 M 559.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 115 L 568.18 107.77 L 569.2 107.77 L 571.44 113.69 L 573.6 107.77 L 574.49 107.77 L 571.87 115 M 570.91 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 115 L 577.93 107.77 L 578.89 107.77 L 578.89 111.33 L 581.82 107.77 L 582.85 107.77 L 580.02 111.22 L 583.35 115 L 582.05 115 L 578.89 111.34 L 578.89 115 M 577.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 115 L 587.93 107.77 L 591.97 107.77 L 591.97 108.54 L 588.96 108.54 L 588.96 110.96 L 591.49 110.96 L 591.49 111.72 L 588.96 111.72 L 588.96 115 M 587.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 115 L 597.93 107.77 L 598.95 107.77 L 598.95 115 M 597.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 115 L 606.65 108.54 L 604.09 108.54 L 604.09 107.77 L 610.24 107.77 L 610.24 108.54 L 607.68 108.54 L 607.68 115 M 606.65 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 115 L 613.93 107.77 L 615.9 107.77 Q 617.21 107.77 617.78 108.22 Q 618.35 108.66 618.35 109.67 Q 618.35 110.82 617.57 111.47 Q 616.79 112.13 615.4 112.13 L 614.95 112.13 L 614.95 115 M 613.93 115 M 614.95 111.35 L 615.36 111.35 Q 616.28 111.35 616.77 110.93 Q 617.27 110.51 617.27 109.75 Q 617.27 109.1 616.88 108.82 Q 616.49 108.54 615.58 108.54 L 614.95 108.54 M 614.95 111.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 623.93 115 L 623.93 107.77 L 627.97 107.77 L 627.97 108.54 L 624.96 108.54 L 624.96 110.86 L 627.48 110.86 L 627.48 111.62 L 624.96 111.62 L 624.96 114.23 L 628.18 114.23 L 628.18 115 M 623.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 114.8 Q 636.05 115.18 635.07 115.18 Q 633.35 115.18 632.43 114.2 Q 631.51 113.22 631.51 111.39 Q 631.51 109.59 632.44 108.59 Q 633.37 107.59 635.06 107.59 Q 636.16 107.59 637.35 107.92 L 637.35 108.87 Q 635.86 108.36 635.06 108.36 Q 633.89 108.36 633.24 109.16 Q 632.6 109.95 632.6 111.4 Q 632.6 112.83 633.29 113.62 Q 633.98 114.41 635.23 114.41 Q 635.75 114.41 636.34 114.23 L 636.34 111.88 L 637.36 111.88 M 637.36 114.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 641.93 115 L 641.93 107.77 L 645.97 107.77 L 645.97 108.54 L 642.96 108.54 L 642.96 110.86 L 645.48 110.86 L 645.48 111.62 L 642.96 111.62 L 642.96 114.23 L 646.18 114.23 L 646.18 115 M 641.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 655.35 116.45 Q 653.64 115.89 652.49 115.13 Q 652.03 115.18 651.78 115.18 Q 650.33 115.18 649.42 114.13 Q 648.51 113.07 648.51 111.39 Q 648.51 109.66 649.43 108.63 Q 650.35 107.59 651.89 107.59 Q 653.43 107.59 654.35 108.63 Q 655.27 109.66 655.27 111.4 Q 655.27 113.89 653.42 114.85 Q 654.66 115.4 656 115.63 M 655.35 116.45 M 651.86 114.41 Q 652.97 114.41 653.57 113.62 Q 654.18 112.82 654.18 111.37 Q 654.18 109.96 653.57 109.16 Q 652.97 108.36 651.89 108.36 Q 650.81 108.36 650.2 109.16 Q 649.6 109.96 649.6 111.38 Q 649.6 112.79 650.2 113.6 Q 650.8 114.41 651.86 114.41 M 651.86 114.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 115 L 659.93 107.77 L 663.97 107.77 L 663.97 108.54 L 660.96 108.54 L 660.96 110.86 L 663.48 110.86 L 663.48 111.62 L 660.96 111.62 L 660.96 114.23 L 664.18 114.23 L 664.18 115 M 659.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 669.91 115 L 667.18 107.77 L 668.2 107.77 L 670.44 113.69 L 672.6 107.77 L 673.49 107.77 L 670.87 115 M 669.91 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 677.93 115 L 677.93 107.77 L 681.97 107.77 L 681.97 108.54 L 678.96 108.54 L 678.96 110.86 L 681.48 110.86 L 681.48 111.62 L 678.96 111.62 L 678.96 114.23 L 682.18 114.23 L 682.18 115 M 677.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 115.18 Q 687.34 115.18 686.43 114.19 Q 685.51 113.2 685.51 111.39 Q 685.51 109.58 686.44 108.59 Q 687.38 107.59 689.08 107.59 Q 690.05 107.59 691.35 107.91 L 691.35 108.87 Q 689.87 108.36 689.06 108.36 Q 687.89 108.36 687.24 109.16 Q 686.6 109.95 686.6 111.4 Q 686.6 112.78 687.29 113.58 Q 687.97 114.38 689.17 114.38 Q 690.19 114.38 691.36 113.75 L 691.36 114.63 Q 690.29 115.18 689.03 115.18 M 689.03 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 115 L 694.93 107.77 L 697.33 107.77 Q 698.41 107.77 699.07 108.01 Q 699.73 108.25 700.22 108.82 Q 700.98 109.73 700.98 111.22 Q 700.98 113.02 700.03 114.01 Q 699.08 115 697.35 115 M 694.93 115 M 695.96 114.23 L 697.27 114.23 Q 698.68 114.23 699.26 113.48 Q 699.89 112.67 699.89 111.31 Q 699.89 110.04 699.27 109.31 Q 698.9 108.87 698.38 108.7 Q 697.85 108.54 696.8 108.54 L 695.96 108.54 M 695.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 115 L 703.93 107.77 L 706.33 107.77 Q 707.41 107.77 708.07 108.01 Q 708.73 108.25 709.22 108.82 Q 709.98 109.73 709.98 111.22 Q 709.98 113.02 709.03 114.01 Q 708.08 115 706.35 115 M 703.93 115 M 704.96 114.23 L 706.27 114.23 Q 707.68 114.23 708.26 113.48 Q 708.89 112.67 708.89 111.31 Q 708.89 110.04 708.27 109.31 Q 707.9 108.87 707.38 108.7 Q 706.85 108.54 705.8 108.54 L 704.96 108.54 M 704.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 115 L 712.93 107.77 L 715.33 107.77 Q 716.41 107.77 717.07 108.01 Q 717.73 108.25 718.22 108.82 Q 718.98 109.73 718.98 111.22 Q 718.98 113.02 718.03 114.01 Q 717.08 115 715.35 115 M 712.93 115 M 713.96 114.23 L 715.27 114.23 Q 716.68 114.23 717.26 113.48 Q 717.89 112.67 717.89 111.31 Q 717.89 110.04 717.27 109.31 Q 716.9 108.87 716.38 108.7 Q 715.85 108.54 714.8 108.54 L 713.96 108.54 M 713.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 115 L 721.18 107.77 L 722.2 107.77 L 724.44 113.69 L 726.6 107.77 L 727.49 107.77 L 724.87 115 M 723.91 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 115 L 732.5 111.98 L 730.08 107.77 L 731.25 107.77 L 733.13 111.04 L 735.15 107.77 L 736.1 107.77 L 733.52 111.96 L 733.52 115 M 732.5 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.91 115 L 739.18 107.77 L 740.2 107.77 L 742.44 113.69 L 744.6 107.77 L 745.49 107.77 L 742.87 115 M 741.91 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 115 L 749.93 107.77 L 750.96 107.77 L 750.96 114.23 L 754.21 114.23 L 754.21 115 M 749.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 115 L 757.93 107.77 L 760.33 107.77 Q 761.41 107.77 762.07 108.01 Q 762.73 108.25 763.22 108.82 Q 763.98 109.73 763.98 111.22 Q 763.98 113.02 763.03 114.01 Q 762.08 115 760.35 115 M 757.93 115 M 758.96 114.23 L 760.27 114.23 Q 761.68 114.23 762.26 113.48 Q 762.89 112.67 762.89 111.31 Q 762.89 110.04 762.27 109.31 Q 761.9 108.87 761.38 108.7 Q 760.85 108.54 759.8 108.54 L 758.96 108.54 M 758.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 770.59 112.24 L 769.36 109.12 L 768.13 112.24 M 770.59 112.24 M 771.68 115 L 770.89 113 L 767.83 113 L 767.04 115 L 766.08 115 L 768.95 107.77 L 769.96 107.77 L 772.79 115 M 771.68 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 112.24 L 778.36 109.12 L 777.13 112.24 M 779.59 112.24 M 780.68 115 L 779.89 113 L 776.83 113 L 776.04 115 L 775.08 115 L 777.95 107.77 L 778.96 107.77 L 781.79 115 M 780.68 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 115 L 785.93 107.77 L 789.97 107.77 L 789.97 108.54 L 786.96 108.54 L 786.96 110.86 L 789.48 110.86 L 789.48 111.62 L 786.96 111.62 L 786.96 114.23 L 790.18 114.23 L 790.18 115 M 785.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 115 L 794.93 107.77 L 798.97 107.77 L 798.97 108.54 L 795.96 108.54 L 795.96 110.86 L 798.48 110.86 L 798.48 111.62 L 795.96 111.62 L 795.96 114.23 L 799.18 114.23 L 799.18 115 M 794.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 806.59 112.24 L 805.36 109.12 L 804.13 112.24 M 806.59 112.24 M 807.68 115 L 806.89 113 L 803.83 113 L 803.04 115 L 802.08 115 L 804.95 107.77 L 805.96 107.77 L 808.79 115 M 807.68 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 114.8 Q 816.05 115.18 815.07 115.18 Q 813.35 115.18 812.43 114.2 Q 811.51 113.22 811.51 111.39 Q 811.51 109.59 812.44 108.59 Q 813.37 107.59 815.06 107.59 Q 816.16 107.59 817.35 107.92 L 817.35 108.87 Q 815.86 108.36 815.06 108.36 Q 813.89 108.36 813.24 109.16 Q 812.6 109.95 812.6 111.4 Q 812.6 112.83 813.29 113.62 Q 813.98 114.41 815.23 114.41 Q 815.75 114.41 816.34 114.23 L 816.34 111.88 L 817.36 111.88 M 817.36 114.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 822.93 115 L 822.93 107.77 L 823.95 107.77 L 823.95 115 M 822.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 115 L 829.93 107.77 L 832.33 107.77 Q 833.41 107.77 834.07 108.01 Q 834.73 108.25 835.22 108.82 Q 835.98 109.73 835.98 111.22 Q 835.98 113.02 835.03 114.01 Q 834.08 115 832.35 115 M 829.93 115 M 830.96 114.23 L 832.27 114.23 Q 833.68 114.23 834.26 113.48 Q 834.89 112.67 834.89 111.31 Q 834.89 110.04 834.27 109.31 Q 833.9 108.87 833.38 108.7 Q 832.85 108.54 831.8 108.54 L 830.96 108.54 M 830.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 115 L 839.93 107.77 L 840.96 107.77 L 840.96 114.23 L 844.21 114.23 L 844.21 115 M 839.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 115 L 847.93 107.77 L 849.9 107.77 Q 851.21 107.77 851.78 108.22 Q 852.35 108.66 852.35 109.67 Q 852.35 110.82 851.57 111.47 Q 850.79 112.13 849.4 112.13 L 848.95 112.13 L 848.95 115 M 847.93 115 M 848.95 111.35 L 849.36 111.35 Q 850.28 111.35 850.77 110.93 Q 851.27 110.51 851.27 109.75 Q 851.27 109.1 850.88 108.82 Q 850.49 108.54 849.58 108.54 L 848.95 108.54 M 848.95 111.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 115 L 858.5 111.98 L 856.08 107.77 L 857.25 107.77 L 859.13 111.04 L 861.15 107.77 L 862.1 107.77 L 859.52 111.96 L 859.52 115 M 858.5 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 115.18 Q 867.62 115.18 866.49 114.86 L 866.49 113.85 Q 867.71 114.41 868.5 114.41 Q 869.1 114.41 869.47 114.1 Q 869.84 113.78 869.84 113.26 Q 869.84 112.84 869.6 112.54 Q 869.35 112.24 868.71 111.88 L 868.21 111.59 Q 867.28 111.06 866.91 110.59 Q 866.53 110.13 866.53 109.51 Q 866.53 108.67 867.13 108.13 Q 867.74 107.59 868.68 107.59 Q 869.51 107.59 870.44 107.87 L 870.44 108.81 Q 869.3 108.36 868.73 108.36 Q 868.2 108.36 867.86 108.64 Q 867.51 108.93 867.51 109.36 Q 867.51 109.72 867.76 110 Q 868.02 110.27 868.69 110.66 L 869.21 110.95 Q 870.15 111.48 870.52 111.96 Q 870.89 112.43 870.89 113.1 Q 870.89 114.04 870.19 114.61 Q 869.5 115.18 868.35 115.18 M 868.35 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 115.18 Q 876.34 115.18 875.43 114.19 Q 874.51 113.2 874.51 111.39 Q 874.51 109.58 875.44 108.59 Q 876.38 107.59 878.08 107.59 Q 879.05 107.59 880.35 107.91 L 880.35 108.87 Q 878.87 108.36 878.06 108.36 Q 876.89 108.36 876.24 109.16 Q 875.6 109.95 875.6 111.4 Q 875.6 112.78 876.29 113.58 Q 876.97 114.38 878.17 114.38 Q 879.19 114.38 880.36 113.75 L 880.36 114.63 Q 879.29 115.18 878.03 115.18 M 878.03 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 115 L 883.93 107.77 L 886.12 107.77 Q 887.16 107.77 887.71 108.23 Q 888.27 108.69 888.27 109.57 Q 888.27 111.01 886.81 111.62 L 889.22 115 L 887.96 115 L 885.91 111.94 L 884.95 111.94 L 884.95 115 M 883.93 115 M 884.95 111.18 L 885.28 111.18 Q 887.21 111.18 887.21 109.66 Q 887.21 108.54 885.59 108.54 L 884.95 108.54 M 884.95 111.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 112.24 L 895.36 109.12 L 894.13 112.24 M 896.59 112.24 M 897.68 115 L 896.89 113 L 893.83 113 L 893.04 115 L 892.08 115 L 894.95 107.77 L 895.96 107.77 L 898.79 115 M 897.68 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 114.8 Q 906.05 115.18 905.07 115.18 Q 903.35 115.18 902.43 114.2 Q 901.51 113.22 901.51 111.39 Q 901.51 109.59 902.44 108.59 Q 903.37 107.59 905.06 107.59 Q 906.16 107.59 907.35 107.92 L 907.35 108.87 Q 905.86 108.36 905.06 108.36 Q 903.89 108.36 903.24 109.16 Q 902.6 109.95 902.6 111.4 Q 902.6 112.83 903.29 113.62 Q 903.98 114.41 905.23 114.41 Q 905.75 114.41 906.34 114.23 L 906.34 111.88 L 907.36 111.88 M 907.36 114.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 115.18 Q 912.62 115.18 911.49 114.86 L 911.49 113.85 Q 912.71 114.41 913.5 114.41 Q 914.1 114.41 914.47 114.1 Q 914.84 113.78 914.84 113.26 Q 914.84 112.84 914.6 112.54 Q 914.35 112.24 913.71 111.88 L 913.21 111.59 Q 912.28 111.06 911.91 110.59 Q 911.53 110.13 911.53 109.51 Q 911.53 108.67 912.13 108.13 Q 912.74 107.59 913.68 107.59 Q 914.51 107.59 915.44 107.87 L 915.44 108.81 Q 914.3 108.36 913.73 108.36 Q 913.2 108.36 912.86 108.64 Q 912.51 108.93 912.51 109.36 Q 912.51 109.72 912.76 110 Q 913.02 110.27 913.69 110.66 L 914.21 110.95 Q 915.15 111.48 915.52 111.96 Q 915.89 112.43 915.89 113.1 Q 915.89 114.04 915.19 114.61 Q 914.5 115.18 913.35 115.18 M 913.35 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 115.18 Q 921.34 115.18 920.43 114.19 Q 919.51 113.2 919.51 111.39 Q 919.51 109.58 920.44 108.59 Q 921.38 107.59 923.08 107.59 Q 924.05 107.59 925.35 107.91 L 925.35 108.87 Q 923.87 108.36 923.06 108.36 Q 921.89 108.36 921.24 109.16 Q 920.6 109.95 920.6 111.4 Q 920.6 112.78 921.29 113.58 Q 921.97 114.38 923.17 114.38 Q 924.19 114.38 925.36 113.75 L 925.36 114.63 Q 924.29 115.18 923.03 115.18 M 923.03 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 115.18 Q 930.62 115.18 929.49 114.86 L 929.49 113.85 Q 930.71 114.41 931.5 114.41 Q 932.1 114.41 932.47 114.1 Q 932.84 113.78 932.84 113.26 Q 932.84 112.84 932.6 112.54 Q 932.35 112.24 931.71 111.88 L 931.21 111.59 Q 930.28 111.06 929.91 110.59 Q 929.53 110.13 929.53 109.51 Q 929.53 108.67 930.13 108.13 Q 930.74 107.59 931.68 107.59 Q 932.51 107.59 933.44 107.87 L 933.44 108.81 Q 932.3 108.36 931.73 108.36 Q 931.2 108.36 930.86 108.64 Q 930.51 108.93 930.51 109.36 Q 930.51 109.72 930.76 110 Q 931.02 110.27 931.69 110.66 L 932.21 110.95 Q 933.15 111.48 933.52 111.96 Q 933.89 112.43 933.89 113.1 Q 933.89 114.04 933.19 114.61 Q 932.5 115.18 931.35 115.18 M 931.35 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 115.18 Q 939.62 115.18 938.49 114.86 L 938.49 113.85 Q 939.71 114.41 940.5 114.41 Q 941.1 114.41 941.47 114.1 Q 941.84 113.78 941.84 113.26 Q 941.84 112.84 941.6 112.54 Q 941.35 112.24 940.71 111.88 L 940.21 111.59 Q 939.28 111.06 938.91 110.59 Q 938.53 110.13 938.53 109.51 Q 938.53 108.67 939.13 108.13 Q 939.74 107.59 940.68 107.59 Q 941.51 107.59 942.44 107.87 L 942.44 108.81 Q 941.3 108.36 940.73 108.36 Q 940.2 108.36 939.86 108.64 Q 939.51 108.93 939.51 109.36 Q 939.51 109.72 939.76 110 Q 940.02 110.27 940.69 110.66 L 941.21 110.95 Q 942.15 111.48 942.52 111.96 Q 942.89 112.43 942.89 113.1 Q 942.89 114.04 942.19 114.61 Q 941.5 115.18 940.35 115.18 M 940.35 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 115.18 Q 948.34 115.18 947.43 114.19 Q 946.51 113.2 946.51 111.39 Q 946.51 109.58 947.44 108.59 Q 948.38 107.59 950.08 107.59 Q 951.05 107.59 952.35 107.91 L 952.35 108.87 Q 950.87 108.36 950.06 108.36 Q 948.89 108.36 948.24 109.16 Q 947.6 109.95 947.6 111.4 Q 947.6 112.78 948.29 113.58 Q 948.97 114.38 950.17 114.38 Q 951.19 114.38 952.36 113.75 L 952.36 114.63 Q 951.29 115.18 950.03 115.18 M 950.03 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 112.24 L 958.36 109.12 L 957.13 112.24 M 959.59 112.24 M 960.68 115 L 959.89 113 L 956.83 113 L 956.04 115 L 955.08 115 L 957.95 107.77 L 958.96 107.77 L 961.79 115 M 960.68 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 114.8 Q 969.05 115.18 968.07 115.18 Q 966.35 115.18 965.43 114.2 Q 964.51 113.22 964.51 111.39 Q 964.51 109.59 965.44 108.59 Q 966.37 107.59 968.06 107.59 Q 969.16 107.59 970.35 107.92 L 970.35 108.87 Q 968.86 108.36 968.06 108.36 Q 966.89 108.36 966.24 109.16 Q 965.6 109.95 965.6 111.4 Q 965.6 112.83 966.29 113.62 Q 966.98 114.41 968.23 114.41 Q 968.75 114.41 969.34 114.23 L 969.34 111.88 L 970.36 111.88 M 970.36 114.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 115 L 973.93 107.77 L 974.89 107.77 L 974.89 111.33 L 977.82 107.77 L 978.85 107.77 L 976.02 111.22 L 979.35 115 L 978.05 115 L 974.89 111.34 L 974.89 115 M 973.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 115 L 982.18 107.77 L 983.2 107.77 L 985.44 113.69 L 987.6 107.77 L 988.49 107.77 L 985.87 115 M 984.91 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.91 115 L 991.18 107.77 L 992.2 107.77 L 994.44 113.69 L 996.6 107.77 L 997.49 107.77 L 994.87 115 M 993.91 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1003.35 115.18 Q 1002.62 115.18 1001.49 114.86 L 1001.49 113.85 Q 1002.71 114.41 1003.5 114.41 Q 1004.1 114.41 1004.47 114.1 Q 1004.84 113.78 1004.84 113.26 Q 1004.84 112.84 1004.6 112.54 Q 1004.35 112.24 1003.71 111.88 L 1003.21 111.59 Q 1002.28 111.06 1001.91 110.59 Q 1001.53 110.13 1001.53 109.51 Q 1001.53 108.67 1002.13 108.13 Q 1002.74 107.59 1003.68 107.59 Q 1004.51 107.59 1005.44 107.87 L 1005.44 108.81 Q 1004.3 108.36 1003.73 108.36 Q 1003.2 108.36 1002.86 108.64 Q 1002.51 108.93 1002.51 109.36 Q 1002.51 109.72 1002.76 110 Q 1003.02 110.27 1003.69 110.66 L 1004.21 110.95 Q 1005.15 111.48 1005.52 111.96 Q 1005.89 112.43 1005.89 113.1 Q 1005.89 114.04 1005.19 114.61 Q 1004.5 115.18 1003.35 115.18 M 1003.35 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 114.8 Q 1014.05 115.18 1013.07 115.18 Q 1011.35 115.18 1010.43 114.2 Q 1009.51 113.22 1009.51 111.39 Q 1009.51 109.59 1010.44 108.59 Q 1011.37 107.59 1013.06 107.59 Q 1014.16 107.59 1015.35 107.92 L 1015.35 108.87 Q 1013.86 108.36 1013.06 108.36 Q 1011.89 108.36 1011.24 109.16 Q 1010.6 109.95 1010.6 111.4 Q 1010.6 112.83 1011.29 113.62 Q 1011.98 114.41 1013.23 114.41 Q 1013.75 114.41 1014.34 114.23 L 1014.34 111.88 L 1015.36 111.88 M 1015.36 114.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1021.35 115.18 Q 1020.62 115.18 1019.49 114.86 L 1019.49 113.85 Q 1020.71 114.41 1021.5 114.41 Q 1022.1 114.41 1022.47 114.1 Q 1022.84 113.78 1022.84 113.26 Q 1022.84 112.84 1022.6 112.54 Q 1022.35 112.24 1021.71 111.88 L 1021.21 111.59 Q 1020.28 111.06 1019.91 110.59 Q 1019.53 110.13 1019.53 109.51 Q 1019.53 108.67 1020.13 108.13 Q 1020.74 107.59 1021.68 107.59 Q 1022.51 107.59 1023.44 107.87 L 1023.44 108.81 Q 1022.3 108.36 1021.73 108.36 Q 1021.2 108.36 1020.86 108.64 Q 1020.51 108.93 1020.51 109.36 Q 1020.51 109.72 1020.76 110 Q 1021.02 110.27 1021.69 110.66 L 1022.21 110.95 Q 1023.15 111.48 1023.52 111.96 Q 1023.89 112.43 1023.89 113.1 Q 1023.89 114.04 1023.19 114.61 Q 1022.5 115.18 1021.35 115.18 M 1021.35 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 115 L 1027.18 107.77 L 1028.2 107.77 L 1030.44 113.69 L 1032.6 107.77 L 1033.49 107.77 L 1030.87 115 M 1029.91 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 115 L 1036.93 107.77 L 1039.33 107.77 Q 1040.41 107.77 1041.07 108.01 Q 1041.73 108.25 1042.22 108.82 Q 1042.98 109.73 1042.98 111.22 Q 1042.98 113.02 1042.03 114.01 Q 1041.08 115 1039.35 115 M 1036.93 115 M 1037.96 114.23 L 1039.27 114.23 Q 1040.68 114.23 1041.26 113.48 Q 1041.89 112.67 1041.89 111.31 Q 1041.89 110.04 1041.27 109.31 Q 1040.9 108.87 1040.38 108.7 Q 1039.85 108.54 1038.8 108.54 L 1037.96 108.54 M 1037.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 116.45 Q 1049.64 115.89 1048.49 115.13 Q 1048.03 115.18 1047.78 115.18 Q 1046.33 115.18 1045.42 114.13 Q 1044.51 113.07 1044.51 111.39 Q 1044.51 109.66 1045.43 108.63 Q 1046.35 107.59 1047.89 107.59 Q 1049.43 107.59 1050.35 108.63 Q 1051.27 109.66 1051.27 111.4 Q 1051.27 113.89 1049.42 114.85 Q 1050.66 115.4 1052 115.63 M 1051.35 116.45 M 1047.86 114.41 Q 1048.97 114.41 1049.57 113.62 Q 1050.18 112.82 1050.18 111.37 Q 1050.18 109.96 1049.57 109.16 Q 1048.97 108.36 1047.89 108.36 Q 1046.81 108.36 1046.2 109.16 Q 1045.6 109.96 1045.6 111.38 Q 1045.6 112.79 1046.2 113.6 Q 1046.8 114.41 1047.86 114.41 M 1047.86 114.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1057.35 115.18 Q 1056.62 115.18 1055.49 114.86 L 1055.49 113.85 Q 1056.71 114.41 1057.5 114.41 Q 1058.1 114.41 1058.47 114.1 Q 1058.84 113.78 1058.84 113.26 Q 1058.84 112.84 1058.6 112.54 Q 1058.35 112.24 1057.71 111.88 L 1057.21 111.59 Q 1056.28 111.06 1055.91 110.59 Q 1055.53 110.13 1055.53 109.51 Q 1055.53 108.67 1056.13 108.13 Q 1056.74 107.59 1057.68 107.59 Q 1058.51 107.59 1059.44 107.87 L 1059.44 108.81 Q 1058.3 108.36 1057.73 108.36 Q 1057.2 108.36 1056.86 108.64 Q 1056.51 108.93 1056.51 109.36 Q 1056.51 109.72 1056.76 110 Q 1057.02 110.27 1057.69 110.66 L 1058.21 110.95 Q 1059.15 111.48 1059.52 111.96 Q 1059.89 112.43 1059.89 113.1 Q 1059.89 114.04 1059.19 114.61 Q 1058.5 115.18 1057.35 115.18 M 1057.35 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 115 L 1063.93 107.77 L 1066.33 107.77 Q 1067.41 107.77 1068.07 108.01 Q 1068.73 108.25 1069.22 108.82 Q 1069.98 109.73 1069.98 111.22 Q 1069.98 113.02 1069.03 114.01 Q 1068.08 115 1066.35 115 M 1063.93 115 M 1064.96 114.23 L 1066.27 114.23 Q 1067.68 114.23 1068.26 113.48 Q 1068.89 112.67 1068.89 111.31 Q 1068.89 110.04 1068.27 109.31 Q 1067.9 108.87 1067.38 108.7 Q 1066.85 108.54 1065.8 108.54 L 1064.96 108.54 M 1064.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.35 116.45 Q 1076.64 115.89 1075.49 115.13 Q 1075.03 115.18 1074.78 115.18 Q 1073.33 115.18 1072.42 114.13 Q 1071.51 113.07 1071.51 111.39 Q 1071.51 109.66 1072.43 108.63 Q 1073.35 107.59 1074.89 107.59 Q 1076.43 107.59 1077.35 108.63 Q 1078.27 109.66 1078.27 111.4 Q 1078.27 113.89 1076.42 114.85 Q 1077.66 115.4 1079 115.63 M 1078.35 116.45 M 1074.86 114.41 Q 1075.97 114.41 1076.57 113.62 Q 1077.18 112.82 1077.18 111.37 Q 1077.18 109.96 1076.57 109.16 Q 1075.97 108.36 1074.89 108.36 Q 1073.81 108.36 1073.2 109.16 Q 1072.6 109.96 1072.6 111.38 Q 1072.6 112.79 1073.2 113.6 Q 1073.8 114.41 1074.86 114.41 M 1074.86 114.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1084.35 115.18 Q 1083.62 115.18 1082.49 114.86 L 1082.49 113.85 Q 1083.71 114.41 1084.5 114.41 Q 1085.1 114.41 1085.47 114.1 Q 1085.84 113.78 1085.84 113.26 Q 1085.84 112.84 1085.6 112.54 Q 1085.35 112.24 1084.71 111.88 L 1084.21 111.59 Q 1083.28 111.06 1082.91 110.59 Q 1082.53 110.13 1082.53 109.51 Q 1082.53 108.67 1083.13 108.13 Q 1083.74 107.59 1084.68 107.59 Q 1085.51 107.59 1086.44 107.87 L 1086.44 108.81 Q 1085.3 108.36 1084.73 108.36 Q 1084.2 108.36 1083.86 108.64 Q 1083.51 108.93 1083.51 109.36 Q 1083.51 109.72 1083.76 110 Q 1084.02 110.27 1084.69 110.66 L 1085.21 110.95 Q 1086.15 111.48 1086.52 111.96 Q 1086.89 112.43 1086.89 113.1 Q 1086.89 114.04 1086.19 114.61 Q 1085.5 115.18 1084.35 115.18 M 1084.35 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 115 L 1091.93 107.77 L 1095.97 107.77 L 1095.97 108.54 L 1092.96 108.54 L 1092.96 110.96 L 1095.49 110.96 L 1095.49 111.72 L 1092.96 111.72 L 1092.96 115 M 1091.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 115 L 1100.93 107.77 L 1101.96 107.77 L 1101.96 114.23 L 1105.21 114.23 L 1105.21 115 M 1100.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 115 L 1108.93 107.77 L 1111.33 107.77 Q 1112.41 107.77 1113.07 108.01 Q 1113.73 108.25 1114.22 108.82 Q 1114.98 109.73 1114.98 111.22 Q 1114.98 113.02 1114.03 114.01 Q 1113.08 115 1111.35 115 M 1108.93 115 M 1109.96 114.23 L 1111.27 114.23 Q 1112.68 114.23 1113.26 113.48 Q 1113.89 112.67 1113.89 111.31 Q 1113.89 110.04 1113.27 109.31 Q 1112.9 108.87 1112.38 108.7 Q 1111.85 108.54 1110.8 108.54 L 1109.96 108.54 M 1109.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 115 L 1117.93 107.77 L 1120.33 107.77 Q 1121.41 107.77 1122.07 108.01 Q 1122.73 108.25 1123.22 108.82 Q 1123.98 109.73 1123.98 111.22 Q 1123.98 113.02 1123.03 114.01 Q 1122.08 115 1120.35 115 M 1117.93 115 M 1118.96 114.23 L 1120.27 114.23 Q 1121.68 114.23 1122.26 113.48 Q 1122.89 112.67 1122.89 111.31 Q 1122.89 110.04 1122.27 109.31 Q 1121.9 108.87 1121.38 108.7 Q 1120.85 108.54 1119.8 108.54 L 1118.96 108.54 M 1118.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1126.93 115 L 1126.93 107.77 L 1129.33 107.77 Q 1130.41 107.77 1131.07 108.01 Q 1131.73 108.25 1132.22 108.82 Q 1132.98 109.73 1132.98 111.22 Q 1132.98 113.02 1132.03 114.01 Q 1131.08 115 1129.35 115 M 1126.93 115 M 1127.96 114.23 L 1129.27 114.23 Q 1130.68 114.23 1131.26 113.48 Q 1131.89 112.67 1131.89 111.31 Q 1131.89 110.04 1131.27 109.31 Q 1130.9 108.87 1130.38 108.7 Q 1129.85 108.54 1128.8 108.54 L 1127.96 108.54 M 1127.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 116.45 Q 1139.64 115.89 1138.49 115.13 Q 1138.03 115.18 1137.78 115.18 Q 1136.33 115.18 1135.42 114.13 Q 1134.51 113.07 1134.51 111.39 Q 1134.51 109.66 1135.43 108.63 Q 1136.35 107.59 1137.89 107.59 Q 1139.43 107.59 1140.35 108.63 Q 1141.27 109.66 1141.27 111.4 Q 1141.27 113.89 1139.42 114.85 Q 1140.66 115.4 1142 115.63 M 1141.35 116.45 M 1137.86 114.41 Q 1138.97 114.41 1139.57 113.62 Q 1140.18 112.82 1140.18 111.37 Q 1140.18 109.96 1139.57 109.16 Q 1138.97 108.36 1137.89 108.36 Q 1136.81 108.36 1136.2 109.16 Q 1135.6 109.96 1135.6 111.38 Q 1135.6 112.79 1136.2 113.6 Q 1136.8 114.41 1137.86 114.41 M 1137.86 114.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1146.93 115 L 1146.93 107.77 L 1147.95 107.77 L 1147.95 115 M 1146.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1157.59 112.24 L 1156.36 109.12 L 1155.13 112.24 M 1157.59 112.24 M 1158.68 115 L 1157.89 113 L 1154.83 113 L 1154.04 115 L 1153.08 115 L 1155.95 107.77 L 1156.96 107.77 L 1159.79 115 M 1158.68 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1163.93 115 L 1163.93 107.77 L 1167.97 107.77 L 1167.97 108.54 L 1164.96 108.54 L 1164.96 110.86 L 1167.48 110.86 L 1167.48 111.62 L 1164.96 111.62 L 1164.96 114.23 L 1168.18 114.23 L 1168.18 115 M 1163.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 114.8 Q 1176.05 115.18 1175.07 115.18 Q 1173.35 115.18 1172.43 114.2 Q 1171.51 113.22 1171.51 111.39 Q 1171.51 109.59 1172.44 108.59 Q 1173.37 107.59 1175.06 107.59 Q 1176.16 107.59 1177.35 107.92 L 1177.35 108.87 Q 1175.86 108.36 1175.06 108.36 Q 1173.89 108.36 1173.24 109.16 Q 1172.6 109.95 1172.6 111.4 Q 1172.6 112.83 1173.29 113.62 Q 1173.98 114.41 1175.23 114.41 Q 1175.75 114.41 1176.34 114.23 L 1176.34 111.88 L 1177.36 111.88 M 1177.36 114.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1181.93 115 L 1181.93 107.77 L 1185.97 107.77 L 1185.97 108.54 L 1182.96 108.54 L 1182.96 110.96 L 1185.49 110.96 L 1185.49 111.72 L 1182.96 111.72 L 1182.96 115 M 1181.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 115 L 1189.18 107.77 L 1190.2 107.77 L 1192.44 113.69 L 1194.6 107.77 L 1195.49 107.77 L 1192.87 115 M 1191.91 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 115 L 1199.93 107.77 L 1200.96 107.77 L 1200.96 114.23 L 1204.21 114.23 L 1204.21 115 M 1199.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 115 L 1209.65 108.54 L 1207.09 108.54 L 1207.09 107.77 L 1213.24 107.77 L 1213.24 108.54 L 1210.68 108.54 L 1210.68 115 M 1209.65 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 115.18 Q 1218.34 115.18 1217.43 114.19 Q 1216.51 113.2 1216.51 111.39 Q 1216.51 109.58 1217.44 108.59 Q 1218.38 107.59 1220.08 107.59 Q 1221.05 107.59 1222.35 107.91 L 1222.35 108.87 Q 1220.87 108.36 1220.06 108.36 Q 1218.89 108.36 1218.24 109.16 Q 1217.6 109.95 1217.6 111.4 Q 1217.6 112.78 1218.29 113.58 Q 1218.97 114.38 1220.17 114.38 Q 1221.19 114.38 1222.36 113.75 L 1222.36 114.63 Q 1221.29 115.18 1220.03 115.18 M 1220.03 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1229.59 112.24 L 1228.36 109.12 L 1227.13 112.24 M 1229.59 112.24 M 1230.68 115 L 1229.89 113 L 1226.83 113 L 1226.04 115 L 1225.08 115 L 1227.95 107.77 L 1228.96 107.77 L 1231.79 115 M 1230.68 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 112.24 L 1237.36 109.12 L 1236.13 112.24 M 1238.59 112.24 M 1239.68 115 L 1238.89 113 L 1235.83 113 L 1235.04 115 L 1234.08 115 L 1236.95 107.77 L 1237.96 107.77 L 1240.79 115 M 1239.68 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 115 L 1245.5 111.98 L 1243.08 107.77 L 1244.25 107.77 L 1246.13 111.04 L 1248.15 107.77 L 1249.1 107.77 L 1246.52 111.96 L 1246.52 115 M 1245.5 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 115 L 1252.93 107.77 L 1254.9 107.77 Q 1256.21 107.77 1256.78 108.22 Q 1257.35 108.66 1257.35 109.67 Q 1257.35 110.82 1256.57 111.47 Q 1255.79 112.13 1254.4 112.13 L 1253.95 112.13 L 1253.95 115 M 1252.93 115 M 1253.95 111.35 L 1254.36 111.35 Q 1255.28 111.35 1255.77 110.93 Q 1256.27 110.51 1256.27 109.75 Q 1256.27 109.1 1255.88 108.82 Q 1255.49 108.54 1254.58 108.54 L 1253.95 108.54 M 1253.95 111.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1263.65 115 L 1263.65 108.54 L 1261.09 108.54 L 1261.09 107.77 L 1267.24 107.77 L 1267.24 108.54 L 1264.68 108.54 L 1264.68 115 M 1263.65 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1273.35 115.18 Q 1272.62 115.18 1271.49 114.86 L 1271.49 113.85 Q 1272.71 114.41 1273.5 114.41 Q 1274.1 114.41 1274.47 114.1 Q 1274.84 113.78 1274.84 113.26 Q 1274.84 112.84 1274.6 112.54 Q 1274.35 112.24 1273.71 111.88 L 1273.21 111.59 Q 1272.28 111.06 1271.91 110.59 Q 1271.53 110.13 1271.53 109.51 Q 1271.53 108.67 1272.13 108.13 Q 1272.74 107.59 1273.68 107.59 Q 1274.51 107.59 1275.44 107.87 L 1275.44 108.81 Q 1274.3 108.36 1273.73 108.36 Q 1273.2 108.36 1272.86 108.64 Q 1272.51 108.93 1272.51 109.36 Q 1272.51 109.72 1272.76 110 Q 1273.02 110.27 1273.69 110.66 L 1274.21 110.95 Q 1275.15 111.48 1275.52 111.96 Q 1275.89 112.43 1275.89 113.1 Q 1275.89 114.04 1275.19 114.61 Q 1274.5 115.18 1273.35 115.18 M 1273.35 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 115 L 1279.93 107.77 L 1282.33 107.77 Q 1283.41 107.77 1284.07 108.01 Q 1284.73 108.25 1285.22 108.82 Q 1285.98 109.73 1285.98 111.22 Q 1285.98 113.02 1285.03 114.01 Q 1284.08 115 1282.35 115 M 1279.93 115 M 1280.96 114.23 L 1282.27 114.23 Q 1283.68 114.23 1284.26 113.48 Q 1284.89 112.67 1284.89 111.31 Q 1284.89 110.04 1284.27 109.31 Q 1283.9 108.87 1283.38 108.7 Q 1282.85 108.54 1281.8 108.54 L 1280.96 108.54 M 1280.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 115 L 1288.18 107.77 L 1289.2 107.77 L 1291.44 113.69 L 1293.6 107.77 L 1294.49 107.77 L 1291.87 115 M 1290.91 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.65 115 L 1299.65 108.54 L 1297.09 108.54 L 1297.09 107.77 L 1303.24 107.77 L 1303.24 108.54 L 1300.68 108.54 L 1300.68 115 M 1299.65 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 115 L 1308.93 107.77 L 1309.95 107.77 L 1309.95 115 M 1308.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 115 L 1316.93 107.77 L 1320.97 107.77 L 1320.97 108.54 L 1317.96 108.54 L 1317.96 110.86 L 1320.48 110.86 L 1320.48 111.62 L 1317.96 111.62 L 1317.96 114.23 L 1321.18 114.23 L 1321.18 115 M 1316.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 115 L 1326.65 108.54 L 1324.09 108.54 L 1324.09 107.77 L 1330.24 107.77 L 1330.24 108.54 L 1327.68 108.54 L 1327.68 115 M 1326.65 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 115 L 1333.93 107.77 L 1334.96 107.77 L 1334.96 110.82 L 1338.4 110.82 L 1338.4 107.77 L 1339.42 107.77 L 1339.42 115 L 1338.4 115 L 1338.4 111.59 L 1334.96 111.59 L 1334.96 115 M 1333.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 115 L 1342.93 107.77 L 1345.12 107.77 Q 1346.16 107.77 1346.71 108.23 Q 1347.27 108.69 1347.27 109.57 Q 1347.27 111.01 1345.81 111.62 L 1348.22 115 L 1346.96 115 L 1344.91 111.94 L 1343.95 111.94 L 1343.95 115 M 1342.93 115 M 1343.95 111.18 L 1344.28 111.18 Q 1346.21 111.18 1346.21 109.66 Q 1346.21 108.54 1344.59 108.54 L 1343.95 108.54 M 1343.95 111.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 115 L 1352.93 107.77 L 1356.97 107.77 L 1356.97 108.54 L 1353.96 108.54 L 1353.96 110.86 L 1356.48 110.86 L 1356.48 111.62 L 1353.96 111.62 L 1353.96 114.23 L 1357.18 114.23 L 1357.18 115 M 1352.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1361.93 115 L 1361.93 107.77 L 1365.97 107.77 L 1365.97 108.54 L 1362.96 108.54 L 1362.96 110.86 L 1365.48 110.86 L 1365.48 111.62 L 1362.96 111.62 L 1362.96 114.23 L 1366.18 114.23 L 1366.18 115 M 1361.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1369.93 115 L 1369.93 107.77 L 1372.33 107.77 Q 1373.41 107.77 1374.07 108.01 Q 1374.73 108.25 1375.22 108.82 Q 1375.98 109.73 1375.98 111.22 Q 1375.98 113.02 1375.03 114.01 Q 1374.08 115 1372.35 115 M 1369.93 115 M 1370.96 114.23 L 1372.27 114.23 Q 1373.68 114.23 1374.26 113.48 Q 1374.89 112.67 1374.89 111.31 Q 1374.89 110.04 1374.27 109.31 Q 1373.9 108.87 1373.38 108.7 Q 1372.85 108.54 1371.8 108.54 L 1370.96 108.54 M 1370.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1377.93 115 L 1377.93 107.77 L 1379.35 107.77 L 1381.36 113.36 L 1383.42 107.77 L 1384.69 107.77 L 1384.69 115 L 1383.73 115 L 1383.73 109.12 L 1381.74 114.52 L 1380.75 114.52 L 1378.81 109.11 L 1378.81 115 M 1377.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.91 115 L 1387.18 107.77 L 1388.2 107.77 L 1390.44 113.69 L 1392.6 107.77 L 1393.49 107.77 L 1390.87 115 M 1389.91 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1396.72 112.47 L 1396.72 111.75 L 1401.06 111.75 L 1401.06 112.47 M 1396.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 112.47 L 1405.72 111.75 L 1410.06 111.75 L 1410.06 112.47 M 1405.72 112.47"/></g><rect x="0" y="117" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="117" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="117" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="117" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="117" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="117" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="594" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="117" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="117" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="117" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="117" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="639" y="117" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="117" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="117" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="117" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="117" width="27" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="117" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="117" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="117" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="117" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="117" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="801" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="117" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="117" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="117" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="117" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="117" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="117" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="117" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="117" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="117" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="117" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="117" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="117" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="117" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="117" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="117" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="117" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="117" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="117" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="117" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="117" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="117" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="117" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="117" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="117" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="117" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 128 L 0.93 120.77 L 2.35 120.77 L 4.36 126.36 L 6.42 120.77 L 7.69 120.77 L 7.69 128 L 6.73 128 L 6.73 122.12 L 4.74 127.52 L 3.75 127.52 L 1.81 122.11 L 1.81 128 M 0.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 125.24 L 13.36 122.12 L 12.13 125.24 M 14.59 125.24 M 15.68 128 L 14.89 126 L 11.83 126 L 11.04 128 L 10.08 128 L 12.95 120.77 L 13.96 120.77 L 16.79 128 M 15.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 22.35 128.18 Q 21.62 128.18 20.49 127.86 L 20.49 126.85 Q 21.71 127.41 22.5 127.41 Q 23.1 127.41 23.47 127.1 Q 23.84 126.78 23.84 126.26 Q 23.84 125.84 23.6 125.54 Q 23.35 125.24 22.71 124.88 L 22.21 124.59 Q 21.28 124.06 20.91 123.59 Q 20.53 123.13 20.53 122.51 Q 20.53 121.67 21.13 121.13 Q 21.74 120.59 22.68 120.59 Q 23.51 120.59 24.44 120.87 L 24.44 121.81 Q 23.3 121.36 22.73 121.36 Q 22.2 121.36 21.86 121.64 Q 21.51 121.93 21.51 122.36 Q 21.51 122.72 21.76 123 Q 22.02 123.27 22.69 123.66 L 23.21 123.95 Q 24.15 124.48 24.52 124.96 Q 24.89 125.43 24.89 126.1 Q 24.89 127.04 24.19 127.61 Q 23.5 128.18 22.35 128.18 M 22.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 30.65 128 L 30.65 121.54 L 28.09 121.54 L 28.09 120.77 L 34.24 120.77 L 34.24 121.54 L 31.68 121.54 L 31.68 128 M 30.65 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 125.47 L 37.72 124.75 L 42.06 124.75 L 42.06 125.47 M 37.72 125.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 125.47 L 46.72 124.75 L 51.06 124.75 L 51.06 125.47 M 46.72 125.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 125.47 L 55.72 124.75 L 60.06 124.75 L 60.06 125.47 M 55.72 125.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.72 125.47 L 64.72 124.75 L 69.06 124.75 L 69.06 125.47 M 64.72 125.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 77.59 125.24 L 76.36 122.12 L 75.13 125.24 M 77.59 125.24 M 78.68 128 L 77.89 126 L 74.83 126 L 74.04 128 L 73.08 128 L 75.95 120.77 L 76.96 120.77 L 79.79 128 M 78.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 83.93 128 L 83.93 120.77 L 84.96 120.77 L 84.96 127.23 L 88.21 127.23 L 88.21 128 M 83.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 94.35 128.18 Q 93.62 128.18 92.49 127.86 L 92.49 126.85 Q 93.71 127.41 94.5 127.41 Q 95.1 127.41 95.47 127.1 Q 95.84 126.78 95.84 126.26 Q 95.84 125.84 95.6 125.54 Q 95.35 125.24 94.71 124.88 L 94.21 124.59 Q 93.28 124.06 92.91 123.59 Q 92.53 123.13 92.53 122.51 Q 92.53 121.67 93.13 121.13 Q 93.74 120.59 94.68 120.59 Q 95.51 120.59 96.44 120.87 L 96.44 121.81 Q 95.3 121.36 94.73 121.36 Q 94.2 121.36 93.86 121.64 Q 93.51 121.93 93.51 122.36 Q 93.51 122.72 93.76 123 Q 94.02 123.27 94.69 123.66 L 95.21 123.95 Q 96.15 124.48 96.52 124.96 Q 96.89 125.43 96.89 126.1 Q 96.89 127.04 96.19 127.61 Q 95.5 128.18 94.35 128.18 M 94.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 103.35 128.18 Q 102.62 128.18 101.49 127.86 L 101.49 126.85 Q 102.71 127.41 103.5 127.41 Q 104.1 127.41 104.47 127.1 Q 104.84 126.78 104.84 126.26 Q 104.84 125.84 104.6 125.54 Q 104.35 125.24 103.71 124.88 L 103.21 124.59 Q 102.28 124.06 101.91 123.59 Q 101.53 123.13 101.53 122.51 Q 101.53 121.67 102.13 121.13 Q 102.74 120.59 103.68 120.59 Q 104.51 120.59 105.44 120.87 L 105.44 121.81 Q 104.3 121.36 103.73 121.36 Q 103.2 121.36 102.86 121.64 Q 102.51 121.93 102.51 122.36 Q 102.51 122.72 102.76 123 Q 103.02 123.27 103.69 123.66 L 104.21 123.95 Q 105.15 124.48 105.52 124.96 Q 105.89 125.43 105.89 126.1 Q 105.89 127.04 105.19 127.61 Q 104.5 128.18 103.35 128.18 M 103.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 113.59 125.24 L 112.36 122.12 L 111.13 125.24 M 113.59 125.24 M 114.68 128 L 113.89 126 L 110.83 126 L 110.04 128 L 109.08 128 L 111.95 120.77 L 112.96 120.77 L 115.79 128 M 114.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 120.93 128 L 120.93 120.77 L 121.95 120.77 L 121.95 128 M 120.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 129.91 128 L 127.18 120.77 L 128.2 120.77 L 130.44 126.69 L 132.6 120.77 L 133.49 120.77 L 130.87 128 M 129.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 142.36 127.8 Q 141.05 128.18 140.07 128.18 Q 138.35 128.18 137.43 127.2 Q 136.51 126.22 136.51 124.39 Q 136.51 122.59 137.44 121.59 Q 138.37 120.59 140.06 120.59 Q 141.16 120.59 142.35 120.92 L 142.35 121.87 Q 140.86 121.36 140.06 121.36 Q 138.89 121.36 138.24 122.16 Q 137.6 122.95 137.6 124.4 Q 137.6 125.83 138.29 126.62 Q 138.98 127.41 140.23 127.41 Q 140.75 127.41 141.34 127.23 L 141.34 124.88 L 142.36 124.88 M 142.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 147.65 128 L 147.65 121.54 L 145.09 121.54 L 145.09 120.77 L 151.24 120.77 L 151.24 121.54 L 148.68 121.54 L 148.68 128 M 147.65 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 157.35 128.18 Q 156.62 128.18 155.49 127.86 L 155.49 126.85 Q 156.71 127.41 157.5 127.41 Q 158.1 127.41 158.47 127.1 Q 158.84 126.78 158.84 126.26 Q 158.84 125.84 158.6 125.54 Q 158.35 125.24 157.71 124.88 L 157.21 124.59 Q 156.28 124.06 155.91 123.59 Q 155.53 123.13 155.53 122.51 Q 155.53 121.67 156.13 121.13 Q 156.74 120.59 157.68 120.59 Q 158.51 120.59 159.44 120.87 L 159.44 121.81 Q 158.3 121.36 157.73 121.36 Q 157.2 121.36 156.86 121.64 Q 156.51 121.93 156.51 122.36 Q 156.51 122.72 156.76 123 Q 157.02 123.27 157.69 123.66 L 158.21 123.95 Q 159.15 124.48 159.52 124.96 Q 159.89 125.43 159.89 126.1 Q 159.89 127.04 159.19 127.61 Q 158.5 128.18 157.35 128.18 M 157.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 164.93 128 L 164.93 120.77 L 168.97 120.77 L 168.97 121.54 L 165.96 121.54 L 165.96 123.96 L 168.49 123.96 L 168.49 124.72 L 165.96 124.72 L 165.96 128 M 164.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 174.93 128 L 174.93 120.77 L 175.95 120.77 L 175.95 128 M 174.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 128 L 181.93 120.77 L 184.12 120.77 Q 185.16 120.77 185.71 121.23 Q 186.27 121.69 186.27 122.57 Q 186.27 124.01 184.81 124.62 L 187.22 128 L 185.96 128 L 183.91 124.94 L 182.95 124.94 L 182.95 128 M 181.93 128 M 182.95 124.18 L 183.28 124.18 Q 185.21 124.18 185.21 122.66 Q 185.21 121.54 183.59 121.54 L 182.95 121.54 M 182.95 124.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.93 128 L 190.93 120.77 L 193.12 120.77 Q 194.16 120.77 194.71 121.23 Q 195.27 121.69 195.27 122.57 Q 195.27 124.01 193.81 124.62 L 196.22 128 L 194.96 128 L 192.91 124.94 L 191.95 124.94 L 191.95 128 M 190.93 128 M 191.95 124.18 L 192.28 124.18 Q 194.21 124.18 194.21 122.66 Q 194.21 121.54 192.59 121.54 L 191.95 121.54 M 191.95 124.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 202.35 128.18 Q 201.62 128.18 200.49 127.86 L 200.49 126.85 Q 201.71 127.41 202.5 127.41 Q 203.1 127.41 203.47 127.1 Q 203.84 126.78 203.84 126.26 Q 203.84 125.84 203.6 125.54 Q 203.35 125.24 202.71 124.88 L 202.21 124.59 Q 201.28 124.06 200.91 123.59 Q 200.53 123.13 200.53 122.51 Q 200.53 121.67 201.13 121.13 Q 201.74 120.59 202.68 120.59 Q 203.51 120.59 204.44 120.87 L 204.44 121.81 Q 203.3 121.36 202.73 121.36 Q 202.2 121.36 201.86 121.64 Q 201.51 121.93 201.51 122.36 Q 201.51 122.72 201.76 123 Q 202.02 123.27 202.69 123.66 L 203.21 123.95 Q 204.15 124.48 204.52 124.96 Q 204.89 125.43 204.89 126.1 Q 204.89 127.04 204.19 127.61 Q 203.5 128.18 202.35 128.18 M 202.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.93 128 L 208.93 120.77 L 210.9 120.77 Q 212.21 120.77 212.78 121.22 Q 213.35 121.66 213.35 122.67 Q 213.35 123.82 212.57 124.47 Q 211.79 125.13 210.4 125.13 L 209.95 125.13 L 209.95 128 M 208.93 128 M 209.95 124.35 L 210.36 124.35 Q 211.28 124.35 211.77 123.93 Q 212.27 123.51 212.27 122.75 Q 212.27 122.1 211.88 121.82 Q 211.49 121.54 210.58 121.54 L 209.95 121.54 M 209.95 124.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 221.59 125.24 L 220.36 122.12 L 219.13 125.24 M 221.59 125.24 M 222.68 128 L 221.89 126 L 218.83 126 L 218.04 128 L 217.08 128 L 219.95 120.77 L 220.96 120.77 L 223.79 128 M 222.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.93 128 L 226.93 120.77 L 228.9 120.77 Q 230.21 120.77 230.78 121.22 Q 231.35 121.66 231.35 122.67 Q 231.35 123.82 230.57 124.47 Q 229.79 125.13 228.4 125.13 L 227.95 125.13 L 227.95 128 M 226.93 128 M 227.95 124.35 L 228.36 124.35 Q 229.28 124.35 229.77 123.93 Q 230.27 123.51 230.27 122.75 Q 230.27 122.1 229.88 121.82 Q 229.49 121.54 228.58 121.54 L 227.95 121.54 M 227.95 124.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 237.93 128 L 237.93 120.77 L 238.95 120.77 L 238.95 128 M 237.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 247.35 128.18 Q 246.62 128.18 245.49 127.86 L 245.49 126.85 Q 246.71 127.41 247.5 127.41 Q 248.1 127.41 248.47 127.1 Q 248.84 126.78 248.84 126.26 Q 248.84 125.84 248.6 125.54 Q 248.35 125.24 247.71 124.88 L 247.21 124.59 Q 246.28 124.06 245.91 123.59 Q 245.53 123.13 245.53 122.51 Q 245.53 121.67 246.13 121.13 Q 246.74 120.59 247.68 120.59 Q 248.51 120.59 249.44 120.87 L 249.44 121.81 Q 248.3 121.36 247.73 121.36 Q 247.2 121.36 246.86 121.64 Q 246.51 121.93 246.51 122.36 Q 246.51 122.72 246.76 123 Q 247.02 123.27 247.69 123.66 L 248.21 123.95 Q 249.15 124.48 249.52 124.96 Q 249.89 125.43 249.89 126.1 Q 249.89 127.04 249.19 127.61 Q 248.5 128.18 247.35 128.18 M 247.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 254.93 128 L 254.93 120.77 L 255.96 120.77 L 255.96 127.23 L 259.21 127.23 L 259.21 128 M 254.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.93 128 L 262.93 120.77 L 265.12 120.77 Q 266.16 120.77 266.71 121.23 Q 267.27 121.69 267.27 122.57 Q 267.27 124.01 265.81 124.62 L 268.22 128 L 266.96 128 L 264.91 124.94 L 263.95 124.94 L 263.95 128 M 262.93 128 M 263.95 124.18 L 264.28 124.18 Q 266.21 124.18 266.21 122.66 Q 266.21 121.54 264.59 121.54 L 263.95 121.54 M 263.95 124.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 274.35 128.18 Q 273.62 128.18 272.49 127.86 L 272.49 126.85 Q 273.71 127.41 274.5 127.41 Q 275.1 127.41 275.47 127.1 Q 275.84 126.78 275.84 126.26 Q 275.84 125.84 275.6 125.54 Q 275.35 125.24 274.71 124.88 L 274.21 124.59 Q 273.28 124.06 272.91 123.59 Q 272.53 123.13 272.53 122.51 Q 272.53 121.67 273.13 121.13 Q 273.74 120.59 274.68 120.59 Q 275.51 120.59 276.44 120.87 L 276.44 121.81 Q 275.3 121.36 274.73 121.36 Q 274.2 121.36 273.86 121.64 Q 273.51 121.93 273.51 122.36 Q 273.51 122.72 273.76 123 Q 274.02 123.27 274.69 123.66 L 275.21 123.95 Q 276.15 124.48 276.52 124.96 Q 276.89 125.43 276.89 126.1 Q 276.89 127.04 276.19 127.61 Q 275.5 128.18 274.35 128.18 M 274.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 281.93 128 L 281.93 120.77 L 282.96 120.77 L 282.96 127.23 L 286.21 127.23 L 286.21 128 M 281.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 289.93 128 L 289.93 120.77 L 291.9 120.77 Q 293.21 120.77 293.78 121.22 Q 294.35 121.66 294.35 122.67 Q 294.35 123.82 293.57 124.47 Q 292.79 125.13 291.4 125.13 L 290.95 125.13 L 290.95 128 M 289.93 128 M 290.95 124.35 L 291.36 124.35 Q 292.28 124.35 292.77 123.93 Q 293.27 123.51 293.27 122.75 Q 293.27 122.1 292.88 121.82 Q 292.49 121.54 291.58 121.54 L 290.95 121.54 M 290.95 124.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 301.35 128.18 Q 300.62 128.18 299.49 127.86 L 299.49 126.85 Q 300.71 127.41 301.5 127.41 Q 302.1 127.41 302.47 127.1 Q 302.84 126.78 302.84 126.26 Q 302.84 125.84 302.6 125.54 Q 302.35 125.24 301.71 124.88 L 301.21 124.59 Q 300.28 124.06 299.91 123.59 Q 299.53 123.13 299.53 122.51 Q 299.53 121.67 300.13 121.13 Q 300.74 120.59 301.68 120.59 Q 302.51 120.59 303.44 120.87 L 303.44 121.81 Q 302.3 121.36 301.73 121.36 Q 301.2 121.36 300.86 121.64 Q 300.51 121.93 300.51 122.36 Q 300.51 122.72 300.76 123 Q 301.02 123.27 301.69 123.66 L 302.21 123.95 Q 303.15 124.48 303.52 124.96 Q 303.89 125.43 303.89 126.1 Q 303.89 127.04 303.19 127.61 Q 302.5 128.18 301.35 128.18 M 301.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 311.59 125.24 L 310.36 122.12 L 309.13 125.24 M 311.59 125.24 M 312.68 128 L 311.89 126 L 308.83 126 L 308.04 128 L 307.08 128 L 309.95 120.77 L 310.96 120.77 L 313.79 128 M 312.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 316.93 128 L 316.93 120.77 L 317.94 120.77 L 321.58 126.35 L 321.58 120.77 L 322.46 120.77 L 322.46 128 L 321.45 128 L 317.81 122.42 L 317.81 128 M 316.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 327.65 128 L 327.65 121.54 L 325.09 121.54 L 325.09 120.77 L 331.24 120.77 L 331.24 121.54 L 328.68 121.54 L 328.68 128 M 327.65 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 340.35 129.45 Q 338.64 128.89 337.49 128.13 Q 337.03 128.18 336.78 128.18 Q 335.33 128.18 334.42 127.13 Q 333.51 126.07 333.51 124.39 Q 333.51 122.66 334.43 121.63 Q 335.35 120.59 336.89 120.59 Q 338.43 120.59 339.35 121.63 Q 340.27 122.66 340.27 124.4 Q 340.27 126.89 338.42 127.85 Q 339.66 128.4 341 128.63 M 340.35 129.45 M 336.86 127.41 Q 337.97 127.41 338.57 126.62 Q 339.18 125.82 339.18 124.37 Q 339.18 122.96 338.57 122.16 Q 337.97 121.36 336.89 121.36 Q 335.81 121.36 335.2 122.16 Q 334.6 122.96 334.6 124.38 Q 334.6 125.79 335.2 126.6 Q 335.8 127.41 336.86 127.41 M 336.86 127.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 125.47 L 343.72 124.75 L 348.06 124.75 L 348.06 125.47 M 343.72 125.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 125.47 L 352.72 124.75 L 357.06 124.75 L 357.06 125.47 M 352.72 125.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 364.35 128.18 Q 363.62 128.18 362.49 127.86 L 362.49 126.85 Q 363.71 127.41 364.5 127.41 Q 365.1 127.41 365.47 127.1 Q 365.84 126.78 365.84 126.26 Q 365.84 125.84 365.6 125.54 Q 365.35 125.24 364.71 124.88 L 364.21 124.59 Q 363.28 124.06 362.91 123.59 Q 362.53 123.13 362.53 122.51 Q 362.53 121.67 363.13 121.13 Q 363.74 120.59 364.68 120.59 Q 365.51 120.59 366.44 120.87 L 366.44 121.81 Q 365.3 121.36 364.73 121.36 Q 364.2 121.36 363.86 121.64 Q 363.51 121.93 363.51 122.36 Q 363.51 122.72 363.76 123 Q 364.02 123.27 364.69 123.66 L 365.21 123.95 Q 366.15 124.48 366.52 124.96 Q 366.89 125.43 366.89 126.1 Q 366.89 127.04 366.19 127.61 Q 365.5 128.18 364.35 128.18 M 364.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 371.93 128 L 371.93 120.77 L 372.96 120.77 L 372.96 127.23 L 376.21 127.23 L 376.21 128 M 371.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 380.93 128 L 380.93 120.77 L 384.97 120.77 L 384.97 121.54 L 381.96 121.54 L 381.96 123.96 L 384.49 123.96 L 384.49 124.72 L 381.96 124.72 L 381.96 128 M 380.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 394.36 127.8 Q 393.05 128.18 392.07 128.18 Q 390.35 128.18 389.43 127.2 Q 388.51 126.22 388.51 124.39 Q 388.51 122.59 389.44 121.59 Q 390.37 120.59 392.06 120.59 Q 393.16 120.59 394.35 120.92 L 394.35 121.87 Q 392.86 121.36 392.06 121.36 Q 390.89 121.36 390.24 122.16 Q 389.6 122.95 389.6 124.4 Q 389.6 125.83 390.29 126.62 Q 390.98 127.41 392.23 127.41 Q 392.75 127.41 393.34 127.23 L 393.34 124.88 L 394.36 124.88 M 394.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 398.93 128 L 398.93 120.77 L 399.96 120.77 L 399.96 127.23 L 403.21 127.23 L 403.21 128 M 398.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.93 128 L 406.93 120.77 L 407.89 120.77 L 407.89 124.33 L 410.82 120.77 L 411.85 120.77 L 409.02 124.22 L 412.35 128 L 411.05 128 L 407.89 124.34 L 407.89 128 M 406.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 418.35 128.18 Q 417.62 128.18 416.49 127.86 L 416.49 126.85 Q 417.71 127.41 418.5 127.41 Q 419.1 127.41 419.47 127.1 Q 419.84 126.78 419.84 126.26 Q 419.84 125.84 419.6 125.54 Q 419.35 125.24 418.71 124.88 L 418.21 124.59 Q 417.28 124.06 416.91 123.59 Q 416.53 123.13 416.53 122.51 Q 416.53 121.67 417.13 121.13 Q 417.74 120.59 418.68 120.59 Q 419.51 120.59 420.44 120.87 L 420.44 121.81 Q 419.3 121.36 418.73 121.36 Q 418.2 121.36 417.86 121.64 Q 417.51 121.93 417.51 122.36 Q 417.51 122.72 417.76 123 Q 418.02 123.27 418.69 123.66 L 419.21 123.95 Q 420.15 124.48 420.52 124.96 Q 420.89 125.43 420.89 126.1 Q 420.89 127.04 420.19 127.61 Q 419.5 128.18 418.35 128.18 M 418.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 125.47 L 424.72 124.75 L 429.06 124.75 L 429.06 125.47 M 424.72 125.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 439.36 127.8 Q 438.05 128.18 437.07 128.18 Q 435.35 128.18 434.43 127.2 Q 433.51 126.22 433.51 124.39 Q 433.51 122.59 434.44 121.59 Q 435.37 120.59 437.06 120.59 Q 438.16 120.59 439.35 120.92 L 439.35 121.87 Q 437.86 121.36 437.06 121.36 Q 435.89 121.36 435.24 122.16 Q 434.6 122.95 434.6 124.4 Q 434.6 125.83 435.29 126.62 Q 435.98 127.41 437.23 127.41 Q 437.75 127.41 438.34 127.23 L 438.34 124.88 L 439.36 124.88 M 439.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 444.65 128 L 444.65 121.54 L 442.09 121.54 L 442.09 120.77 L 448.24 120.77 L 448.24 121.54 L 445.68 121.54 L 445.68 128 M 444.65 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 455.59 125.24 L 454.36 122.12 L 453.13 125.24 M 455.59 125.24 M 456.68 128 L 455.89 126 L 452.83 126 L 452.04 128 L 451.08 128 L 453.95 120.77 L 454.96 120.77 L 457.79 128 M 456.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.93 128 L 460.93 120.77 L 463.12 120.77 Q 464.16 120.77 464.71 121.23 Q 465.27 121.69 465.27 122.57 Q 465.27 124.01 463.81 124.62 L 466.22 128 L 464.96 128 L 462.91 124.94 L 461.95 124.94 L 461.95 128 M 460.93 128 M 461.95 124.18 L 462.28 124.18 Q 464.21 124.18 464.21 122.66 Q 464.21 121.54 462.59 121.54 L 461.95 121.54 M 461.95 124.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 475.36 127.8 Q 474.05 128.18 473.07 128.18 Q 471.35 128.18 470.43 127.2 Q 469.51 126.22 469.51 124.39 Q 469.51 122.59 470.44 121.59 Q 471.37 120.59 473.06 120.59 Q 474.16 120.59 475.35 120.92 L 475.35 121.87 Q 473.86 121.36 473.06 121.36 Q 471.89 121.36 471.24 122.16 Q 470.6 122.95 470.6 124.4 Q 470.6 125.83 471.29 126.62 Q 471.98 127.41 473.23 127.41 Q 473.75 127.41 474.34 127.23 L 474.34 124.88 L 475.36 124.88 M 475.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 484.36 127.8 Q 483.05 128.18 482.07 128.18 Q 480.35 128.18 479.43 127.2 Q 478.51 126.22 478.51 124.39 Q 478.51 122.59 479.44 121.59 Q 480.37 120.59 482.06 120.59 Q 483.16 120.59 484.35 120.92 L 484.35 121.87 Q 482.86 121.36 482.06 121.36 Q 480.89 121.36 480.24 122.16 Q 479.6 122.95 479.6 124.4 Q 479.6 125.83 480.29 126.62 Q 480.98 127.41 482.23 127.41 Q 482.75 127.41 483.34 127.23 L 483.34 124.88 L 484.36 124.88 M 484.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 487.93 128 L 487.93 120.77 L 490.12 120.77 Q 491.16 120.77 491.71 121.23 Q 492.27 121.69 492.27 122.57 Q 492.27 124.01 490.81 124.62 L 493.22 128 L 491.96 128 L 489.91 124.94 L 488.95 124.94 L 488.95 128 M 487.93 128 M 488.95 124.18 L 489.28 124.18 Q 491.21 124.18 491.21 122.66 Q 491.21 121.54 489.59 121.54 L 488.95 121.54 M 488.95 124.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 498.91 128 L 496.18 120.77 L 497.2 120.77 L 499.44 126.69 L 501.6 120.77 L 502.49 120.77 L 499.87 128 M 498.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 507.65 128 L 507.65 121.54 L 505.09 121.54 L 505.09 120.77 L 511.24 120.77 L 511.24 121.54 L 508.68 121.54 L 508.68 128 M 507.65 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 518.59 125.24 L 517.36 122.12 L 516.13 125.24 M 518.59 125.24 M 519.68 128 L 518.89 126 L 515.83 126 L 515.04 128 L 514.08 128 L 516.95 120.77 L 517.96 120.77 L 520.79 128 M 519.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 522.93 128 L 522.93 120.77 L 524.35 120.77 L 526.36 126.36 L 528.42 120.77 L 529.69 120.77 L 529.69 128 L 528.73 128 L 528.73 122.12 L 526.74 127.52 L 525.75 127.52 L 523.81 122.11 L 523.81 128 M 522.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 125.24 L 535.36 122.12 L 534.13 125.24 M 536.59 125.24 M 537.68 128 L 536.89 126 L 533.83 126 L 533.04 128 L 532.08 128 L 534.95 120.77 L 535.96 120.77 L 538.79 128 M 537.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 543.65 128 L 543.65 121.54 L 541.09 121.54 L 541.09 120.77 L 547.24 120.77 L 547.24 121.54 L 544.68 121.54 L 544.68 128 M 543.65 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 128 L 552.5 124.98 L 550.08 120.77 L 551.25 120.77 L 553.13 124.04 L 555.15 120.77 L 556.1 120.77 L 553.52 124.96 L 553.52 128 M 552.5 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 128 L 559.93 120.77 L 560.89 120.77 L 560.89 124.33 L 563.82 120.77 L 564.85 120.77 L 562.02 124.22 L 565.35 128 L 564.05 128 L 560.89 124.34 L 560.89 128 M 559.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 128 L 568.18 120.77 L 569.2 120.77 L 571.44 126.69 L 573.6 120.77 L 574.49 120.77 L 571.87 128 M 570.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 128 L 577.93 120.77 L 578.89 120.77 L 578.89 124.33 L 581.82 120.77 L 582.85 120.77 L 580.02 124.22 L 583.35 128 L 582.05 128 L 578.89 124.34 L 578.89 128 M 577.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 128 L 587.93 120.77 L 591.97 120.77 L 591.97 121.54 L 588.96 121.54 L 588.96 123.96 L 591.49 123.96 L 591.49 124.72 L 588.96 124.72 L 588.96 128 M 587.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 128 L 597.93 120.77 L 598.95 120.77 L 598.95 128 M 597.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 128 L 606.65 121.54 L 604.09 121.54 L 604.09 120.77 L 610.24 120.77 L 610.24 121.54 L 607.68 121.54 L 607.68 128 M 606.65 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 128 L 613.93 120.77 L 615.9 120.77 Q 617.21 120.77 617.78 121.22 Q 618.35 121.66 618.35 122.67 Q 618.35 123.82 617.57 124.47 Q 616.79 125.13 615.4 125.13 L 614.95 125.13 L 614.95 128 M 613.93 128 M 614.95 124.35 L 615.36 124.35 Q 616.28 124.35 616.77 123.93 Q 617.27 123.51 617.27 122.75 Q 617.27 122.1 616.88 121.82 Q 616.49 121.54 615.58 121.54 L 614.95 121.54 M 614.95 124.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 623.93 128 L 623.93 120.77 L 627.97 120.77 L 627.97 121.54 L 624.96 121.54 L 624.96 123.86 L 627.48 123.86 L 627.48 124.62 L 624.96 124.62 L 624.96 127.23 L 628.18 127.23 L 628.18 128 M 623.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 127.8 Q 636.05 128.18 635.07 128.18 Q 633.35 128.18 632.43 127.2 Q 631.51 126.22 631.51 124.39 Q 631.51 122.59 632.44 121.59 Q 633.37 120.59 635.06 120.59 Q 636.16 120.59 637.35 120.92 L 637.35 121.87 Q 635.86 121.36 635.06 121.36 Q 633.89 121.36 633.24 122.16 Q 632.6 122.95 632.6 124.4 Q 632.6 125.83 633.29 126.62 Q 633.98 127.41 635.23 127.41 Q 635.75 127.41 636.34 127.23 L 636.34 124.88 L 637.36 124.88 M 637.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 641.93 128 L 641.93 120.77 L 645.97 120.77 L 645.97 121.54 L 642.96 121.54 L 642.96 123.86 L 645.48 123.86 L 645.48 124.62 L 642.96 124.62 L 642.96 127.23 L 646.18 127.23 L 646.18 128 M 641.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 650.93 128 L 650.93 120.77 L 651.96 120.77 L 651.96 127.23 L 655.21 127.23 L 655.21 128 M 650.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 128 L 659.93 120.77 L 663.97 120.77 L 663.97 121.54 L 660.96 121.54 L 660.96 123.86 L 663.48 123.86 L 663.48 124.62 L 660.96 124.62 L 660.96 127.23 L 664.18 127.23 L 664.18 128 M 659.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 669.91 128 L 667.18 120.77 L 668.2 120.77 L 670.44 126.69 L 672.6 120.77 L 673.49 120.77 L 670.87 128 M 669.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 677.93 128 L 677.93 120.77 L 681.97 120.77 L 681.97 121.54 L 678.96 121.54 L 678.96 123.86 L 681.48 123.86 L 681.48 124.62 L 678.96 124.62 L 678.96 127.23 L 682.18 127.23 L 682.18 128 M 677.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 128.18 Q 687.34 128.18 686.43 127.19 Q 685.51 126.2 685.51 124.39 Q 685.51 122.58 686.44 121.59 Q 687.38 120.59 689.08 120.59 Q 690.05 120.59 691.35 120.91 L 691.35 121.87 Q 689.87 121.36 689.06 121.36 Q 687.89 121.36 687.24 122.16 Q 686.6 122.95 686.6 124.4 Q 686.6 125.78 687.29 126.58 Q 687.97 127.38 689.17 127.38 Q 690.19 127.38 691.36 126.75 L 691.36 127.63 Q 690.29 128.18 689.03 128.18 M 689.03 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 128 L 694.93 120.77 L 697.33 120.77 Q 698.41 120.77 699.07 121.01 Q 699.73 121.25 700.22 121.82 Q 700.98 122.73 700.98 124.22 Q 700.98 126.02 700.03 127.01 Q 699.08 128 697.35 128 M 694.93 128 M 695.96 127.23 L 697.27 127.23 Q 698.68 127.23 699.26 126.48 Q 699.89 125.67 699.89 124.31 Q 699.89 123.04 699.27 122.31 Q 698.9 121.87 698.38 121.7 Q 697.85 121.54 696.8 121.54 L 695.96 121.54 M 695.96 127.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 128 L 703.93 120.77 L 706.33 120.77 Q 707.41 120.77 708.07 121.01 Q 708.73 121.25 709.22 121.82 Q 709.98 122.73 709.98 124.22 Q 709.98 126.02 709.03 127.01 Q 708.08 128 706.35 128 M 703.93 128 M 704.96 127.23 L 706.27 127.23 Q 707.68 127.23 708.26 126.48 Q 708.89 125.67 708.89 124.31 Q 708.89 123.04 708.27 122.31 Q 707.9 121.87 707.38 121.7 Q 706.85 121.54 705.8 121.54 L 704.96 121.54 M 704.96 127.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 128 L 712.93 120.77 L 715.33 120.77 Q 716.41 120.77 717.07 121.01 Q 717.73 121.25 718.22 121.82 Q 718.98 122.73 718.98 124.22 Q 718.98 126.02 718.03 127.01 Q 717.08 128 715.35 128 M 712.93 128 M 713.96 127.23 L 715.27 127.23 Q 716.68 127.23 717.26 126.48 Q 717.89 125.67 717.89 124.31 Q 717.89 123.04 717.27 122.31 Q 716.9 121.87 716.38 121.7 Q 715.85 121.54 714.8 121.54 L 713.96 121.54 M 713.96 127.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 128 L 721.18 120.77 L 722.2 120.77 L 724.44 126.69 L 726.6 120.77 L 727.49 120.77 L 724.87 128 M 723.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 128 L 732.5 124.98 L 730.08 120.77 L 731.25 120.77 L 733.13 124.04 L 735.15 120.77 L 736.1 120.77 L 733.52 124.96 L 733.52 128 M 732.5 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.91 128 L 739.18 120.77 L 740.2 120.77 L 742.44 126.69 L 744.6 120.77 L 745.49 120.77 L 742.87 128 M 741.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 128 L 749.93 120.77 L 750.96 120.77 L 750.96 127.23 L 754.21 127.23 L 754.21 128 M 749.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 128 L 757.93 120.77 L 760.33 120.77 Q 761.41 120.77 762.07 121.01 Q 762.73 121.25 763.22 121.82 Q 763.98 122.73 763.98 124.22 Q 763.98 126.02 763.03 127.01 Q 762.08 128 760.35 128 M 757.93 128 M 758.96 127.23 L 760.27 127.23 Q 761.68 127.23 762.26 126.48 Q 762.89 125.67 762.89 124.31 Q 762.89 123.04 762.27 122.31 Q 761.9 121.87 761.38 121.7 Q 760.85 121.54 759.8 121.54 L 758.96 121.54 M 758.96 127.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 770.59 125.24 L 769.36 122.12 L 768.13 125.24 M 770.59 125.24 M 771.68 128 L 770.89 126 L 767.83 126 L 767.04 128 L 766.08 128 L 768.95 120.77 L 769.96 120.77 L 772.79 128 M 771.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 125.24 L 778.36 122.12 L 777.13 125.24 M 779.59 125.24 M 780.68 128 L 779.89 126 L 776.83 126 L 776.04 128 L 775.08 128 L 777.95 120.77 L 778.96 120.77 L 781.79 128 M 780.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 128 L 785.93 120.77 L 789.97 120.77 L 789.97 121.54 L 786.96 121.54 L 786.96 123.86 L 789.48 123.86 L 789.48 124.62 L 786.96 124.62 L 786.96 127.23 L 790.18 127.23 L 790.18 128 M 785.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 128 L 794.93 120.77 L 798.97 120.77 L 798.97 121.54 L 795.96 121.54 L 795.96 123.86 L 798.48 123.86 L 798.48 124.62 L 795.96 124.62 L 795.96 127.23 L 799.18 127.23 L 799.18 128 M 794.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 806.59 125.24 L 805.36 122.12 L 804.13 125.24 M 806.59 125.24 M 807.68 128 L 806.89 126 L 803.83 126 L 803.04 128 L 802.08 128 L 804.95 120.77 L 805.96 120.77 L 808.79 128 M 807.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 127.8 Q 816.05 128.18 815.07 128.18 Q 813.35 128.18 812.43 127.2 Q 811.51 126.22 811.51 124.39 Q 811.51 122.59 812.44 121.59 Q 813.37 120.59 815.06 120.59 Q 816.16 120.59 817.35 120.92 L 817.35 121.87 Q 815.86 121.36 815.06 121.36 Q 813.89 121.36 813.24 122.16 Q 812.6 122.95 812.6 124.4 Q 812.6 125.83 813.29 126.62 Q 813.98 127.41 815.23 127.41 Q 815.75 127.41 816.34 127.23 L 816.34 124.88 L 817.36 124.88 M 817.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 822.93 128 L 822.93 120.77 L 823.95 120.77 L 823.95 128 M 822.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 128 L 829.93 120.77 L 832.33 120.77 Q 833.41 120.77 834.07 121.01 Q 834.73 121.25 835.22 121.82 Q 835.98 122.73 835.98 124.22 Q 835.98 126.02 835.03 127.01 Q 834.08 128 832.35 128 M 829.93 128 M 830.96 127.23 L 832.27 127.23 Q 833.68 127.23 834.26 126.48 Q 834.89 125.67 834.89 124.31 Q 834.89 123.04 834.27 122.31 Q 833.9 121.87 833.38 121.7 Q 832.85 121.54 831.8 121.54 L 830.96 121.54 M 830.96 127.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 128 L 839.93 120.77 L 840.96 120.77 L 840.96 127.23 L 844.21 127.23 L 844.21 128 M 839.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 128 L 847.93 120.77 L 849.9 120.77 Q 851.21 120.77 851.78 121.22 Q 852.35 121.66 852.35 122.67 Q 852.35 123.82 851.57 124.47 Q 850.79 125.13 849.4 125.13 L 848.95 125.13 L 848.95 128 M 847.93 128 M 848.95 124.35 L 849.36 124.35 Q 850.28 124.35 850.77 123.93 Q 851.27 123.51 851.27 122.75 Q 851.27 122.1 850.88 121.82 Q 850.49 121.54 849.58 121.54 L 848.95 121.54 M 848.95 124.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 128 L 858.5 124.98 L 856.08 120.77 L 857.25 120.77 L 859.13 124.04 L 861.15 120.77 L 862.1 120.77 L 859.52 124.96 L 859.52 128 M 858.5 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 128.18 Q 867.62 128.18 866.49 127.86 L 866.49 126.85 Q 867.71 127.41 868.5 127.41 Q 869.1 127.41 869.47 127.1 Q 869.84 126.78 869.84 126.26 Q 869.84 125.84 869.6 125.54 Q 869.35 125.24 868.71 124.88 L 868.21 124.59 Q 867.28 124.06 866.91 123.59 Q 866.53 123.13 866.53 122.51 Q 866.53 121.67 867.13 121.13 Q 867.74 120.59 868.68 120.59 Q 869.51 120.59 870.44 120.87 L 870.44 121.81 Q 869.3 121.36 868.73 121.36 Q 868.2 121.36 867.86 121.64 Q 867.51 121.93 867.51 122.36 Q 867.51 122.72 867.76 123 Q 868.02 123.27 868.69 123.66 L 869.21 123.95 Q 870.15 124.48 870.52 124.96 Q 870.89 125.43 870.89 126.1 Q 870.89 127.04 870.19 127.61 Q 869.5 128.18 868.35 128.18 M 868.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 128.18 Q 876.34 128.18 875.43 127.19 Q 874.51 126.2 874.51 124.39 Q 874.51 122.58 875.44 121.59 Q 876.38 120.59 878.08 120.59 Q 879.05 120.59 880.35 120.91 L 880.35 121.87 Q 878.87 121.36 878.06 121.36 Q 876.89 121.36 876.24 122.16 Q 875.6 122.95 875.6 124.4 Q 875.6 125.78 876.29 126.58 Q 876.97 127.38 878.17 127.38 Q 879.19 127.38 880.36 126.75 L 880.36 127.63 Q 879.29 128.18 878.03 128.18 M 878.03 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 128 L 883.93 120.77 L 886.12 120.77 Q 887.16 120.77 887.71 121.23 Q 888.27 121.69 888.27 122.57 Q 888.27 124.01 886.81 124.62 L 889.22 128 L 887.96 128 L 885.91 124.94 L 884.95 124.94 L 884.95 128 M 883.93 128 M 884.95 124.18 L 885.28 124.18 Q 887.21 124.18 887.21 122.66 Q 887.21 121.54 885.59 121.54 L 884.95 121.54 M 884.95 124.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 125.24 L 895.36 122.12 L 894.13 125.24 M 896.59 125.24 M 897.68 128 L 896.89 126 L 893.83 126 L 893.04 128 L 892.08 128 L 894.95 120.77 L 895.96 120.77 L 898.79 128 M 897.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 127.8 Q 906.05 128.18 905.07 128.18 Q 903.35 128.18 902.43 127.2 Q 901.51 126.22 901.51 124.39 Q 901.51 122.59 902.44 121.59 Q 903.37 120.59 905.06 120.59 Q 906.16 120.59 907.35 120.92 L 907.35 121.87 Q 905.86 121.36 905.06 121.36 Q 903.89 121.36 903.24 122.16 Q 902.6 122.95 902.6 124.4 Q 902.6 125.83 903.29 126.62 Q 903.98 127.41 905.23 127.41 Q 905.75 127.41 906.34 127.23 L 906.34 124.88 L 907.36 124.88 M 907.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 128.18 Q 912.62 128.18 911.49 127.86 L 911.49 126.85 Q 912.71 127.41 913.5 127.41 Q 914.1 127.41 914.47 127.1 Q 914.84 126.78 914.84 126.26 Q 914.84 125.84 914.6 125.54 Q 914.35 125.24 913.71 124.88 L 913.21 124.59 Q 912.28 124.06 911.91 123.59 Q 911.53 123.13 911.53 122.51 Q 911.53 121.67 912.13 121.13 Q 912.74 120.59 913.68 120.59 Q 914.51 120.59 915.44 120.87 L 915.44 121.81 Q 914.3 121.36 913.73 121.36 Q 913.2 121.36 912.86 121.64 Q 912.51 121.93 912.51 122.36 Q 912.51 122.72 912.76 123 Q 913.02 123.27 913.69 123.66 L 914.21 123.95 Q 915.15 124.48 915.52 124.96 Q 915.89 125.43 915.89 126.1 Q 915.89 127.04 915.19 127.61 Q 914.5 128.18 913.35 128.18 M 913.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 128.18 Q 921.34 128.18 920.43 127.19 Q 919.51 126.2 919.51 124.39 Q 919.51 122.58 920.44 121.59 Q 921.38 120.59 923.08 120.59 Q 924.05 120.59 925.35 120.91 L 925.35 121.87 Q 923.87 121.36 923.06 121.36 Q 921.89 121.36 921.24 122.16 Q 920.6 122.95 920.6 124.4 Q 920.6 125.78 921.29 126.58 Q 921.97 127.38 923.17 127.38 Q 924.19 127.38 925.36 126.75 L 925.36 127.63 Q 924.29 128.18 923.03 128.18 M 923.03 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 128.18 Q 930.62 128.18 929.49 127.86 L 929.49 126.85 Q 930.71 127.41 931.5 127.41 Q 932.1 127.41 932.47 127.1 Q 932.84 126.78 932.84 126.26 Q 932.84 125.84 932.6 125.54 Q 932.35 125.24 931.71 124.88 L 931.21 124.59 Q 930.28 124.06 929.91 123.59 Q 929.53 123.13 929.53 122.51 Q 929.53 121.67 930.13 121.13 Q 930.74 120.59 931.68 120.59 Q 932.51 120.59 933.44 120.87 L 933.44 121.81 Q 932.3 121.36 931.73 121.36 Q 931.2 121.36 930.86 121.64 Q 930.51 121.93 930.51 122.36 Q 930.51 122.72 930.76 123 Q 931.02 123.27 931.69 123.66 L 932.21 123.95 Q 933.15 124.48 933.52 124.96 Q 933.89 125.43 933.89 126.1 Q 933.89 127.04 933.19 127.61 Q 932.5 128.18 931.35 128.18 M 931.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 128.18 Q 939.62 128.18 938.49 127.86 L 938.49 126.85 Q 939.71 127.41 940.5 127.41 Q 941.1 127.41 941.47 127.1 Q 941.84 126.78 941.84 126.26 Q 941.84 125.84 941.6 125.54 Q 941.35 125.24 940.71 124.88 L 940.21 124.59 Q 939.28 124.06 938.91 123.59 Q 938.53 123.13 938.53 122.51 Q 938.53 121.67 939.13 121.13 Q 939.74 120.59 940.68 120.59 Q 941.51 120.59 942.44 120.87 L 942.44 121.81 Q 941.3 121.36 940.73 121.36 Q 940.2 121.36 939.86 121.64 Q 939.51 121.93 939.51 122.36 Q 939.51 122.72 939.76 123 Q 940.02 123.27 940.69 123.66 L 941.21 123.95 Q 942.15 124.48 942.52 124.96 Q 942.89 125.43 942.89 126.1 Q 942.89 127.04 942.19 127.61 Q 941.5 128.18 940.35 128.18 M 940.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 128.18 Q 948.34 128.18 947.43 127.19 Q 946.51 126.2 946.51 124.39 Q 946.51 122.58 947.44 121.59 Q 948.38 120.59 950.08 120.59 Q 951.05 120.59 952.35 120.91 L 952.35 121.87 Q 950.87 121.36 950.06 121.36 Q 948.89 121.36 948.24 122.16 Q 947.6 122.95 947.6 124.4 Q 947.6 125.78 948.29 126.58 Q 948.97 127.38 950.17 127.38 Q 951.19 127.38 952.36 126.75 L 952.36 127.63 Q 951.29 128.18 950.03 128.18 M 950.03 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 125.24 L 958.36 122.12 L 957.13 125.24 M 959.59 125.24 M 960.68 128 L 959.89 126 L 956.83 126 L 956.04 128 L 955.08 128 L 957.95 120.77 L 958.96 120.77 L 961.79 128 M 960.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 127.8 Q 969.05 128.18 968.07 128.18 Q 966.35 128.18 965.43 127.2 Q 964.51 126.22 964.51 124.39 Q 964.51 122.59 965.44 121.59 Q 966.37 120.59 968.06 120.59 Q 969.16 120.59 970.35 120.92 L 970.35 121.87 Q 968.86 121.36 968.06 121.36 Q 966.89 121.36 966.24 122.16 Q 965.6 122.95 965.6 124.4 Q 965.6 125.83 966.29 126.62 Q 966.98 127.41 968.23 127.41 Q 968.75 127.41 969.34 127.23 L 969.34 124.88 L 970.36 124.88 M 970.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 128 L 973.93 120.77 L 974.89 120.77 L 974.89 124.33 L 977.82 120.77 L 978.85 120.77 L 976.02 124.22 L 979.35 128 L 978.05 128 L 974.89 124.34 L 974.89 128 M 973.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 128 L 982.18 120.77 L 983.2 120.77 L 985.44 126.69 L 987.6 120.77 L 988.49 120.77 L 985.87 128 M 984.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.91 128 L 991.18 120.77 L 992.2 120.77 L 994.44 126.69 L 996.6 120.77 L 997.49 120.77 L 994.87 128 M 993.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1003.35 128.18 Q 1002.62 128.18 1001.49 127.86 L 1001.49 126.85 Q 1002.71 127.41 1003.5 127.41 Q 1004.1 127.41 1004.47 127.1 Q 1004.84 126.78 1004.84 126.26 Q 1004.84 125.84 1004.6 125.54 Q 1004.35 125.24 1003.71 124.88 L 1003.21 124.59 Q 1002.28 124.06 1001.91 123.59 Q 1001.53 123.13 1001.53 122.51 Q 1001.53 121.67 1002.13 121.13 Q 1002.74 120.59 1003.68 120.59 Q 1004.51 120.59 1005.44 120.87 L 1005.44 121.81 Q 1004.3 121.36 1003.73 121.36 Q 1003.2 121.36 1002.86 121.64 Q 1002.51 121.93 1002.51 122.36 Q 1002.51 122.72 1002.76 123 Q 1003.02 123.27 1003.69 123.66 L 1004.21 123.95 Q 1005.15 124.48 1005.52 124.96 Q 1005.89 125.43 1005.89 126.1 Q 1005.89 127.04 1005.19 127.61 Q 1004.5 128.18 1003.35 128.18 M 1003.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 127.8 Q 1014.05 128.18 1013.07 128.18 Q 1011.35 128.18 1010.43 127.2 Q 1009.51 126.22 1009.51 124.39 Q 1009.51 122.59 1010.44 121.59 Q 1011.37 120.59 1013.06 120.59 Q 1014.16 120.59 1015.35 120.92 L 1015.35 121.87 Q 1013.86 121.36 1013.06 121.36 Q 1011.89 121.36 1011.24 122.16 Q 1010.6 122.95 1010.6 124.4 Q 1010.6 125.83 1011.29 126.62 Q 1011.98 127.41 1013.23 127.41 Q 1013.75 127.41 1014.34 127.23 L 1014.34 124.88 L 1015.36 124.88 M 1015.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1021.35 128.18 Q 1020.62 128.18 1019.49 127.86 L 1019.49 126.85 Q 1020.71 127.41 1021.5 127.41 Q 1022.1 127.41 1022.47 127.1 Q 1022.84 126.78 1022.84 126.26 Q 1022.84 125.84 1022.6 125.54 Q 1022.35 125.24 1021.71 124.88 L 1021.21 124.59 Q 1020.28 124.06 1019.91 123.59 Q 1019.53 123.13 1019.53 122.51 Q 1019.53 121.67 1020.13 121.13 Q 1020.74 120.59 1021.68 120.59 Q 1022.51 120.59 1023.44 120.87 L 1023.44 121.81 Q 1022.3 121.36 1021.73 121.36 Q 1021.2 121.36 1020.86 121.64 Q 1020.51 121.93 1020.51 122.36 Q 1020.51 122.72 1020.76 123 Q 1021.02 123.27 1021.69 123.66 L 1022.21 123.95 Q 1023.15 124.48 1023.52 124.96 Q 1023.89 125.43 1023.89 126.1 Q 1023.89 127.04 1023.19 127.61 Q 1022.5 128.18 1021.35 128.18 M 1021.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 128 L 1027.18 120.77 L 1028.2 120.77 L 1030.44 126.69 L 1032.6 120.77 L 1033.49 120.77 L 1030.87 128 M 1029.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 128 L 1036.93 120.77 L 1039.33 120.77 Q 1040.41 120.77 1041.07 121.01 Q 1041.73 121.25 1042.22 121.82 Q 1042.98 122.73 1042.98 124.22 Q 1042.98 126.02 1042.03 127.01 Q 1041.08 128 1039.35 128 M 1036.93 128 M 1037.96 127.23 L 1039.27 127.23 Q 1040.68 127.23 1041.26 126.48 Q 1041.89 125.67 1041.89 124.31 Q 1041.89 123.04 1041.27 122.31 Q 1040.9 121.87 1040.38 121.7 Q 1039.85 121.54 1038.8 121.54 L 1037.96 121.54 M 1037.96 127.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 129.45 Q 1049.64 128.89 1048.49 128.13 Q 1048.03 128.18 1047.78 128.18 Q 1046.33 128.18 1045.42 127.13 Q 1044.51 126.07 1044.51 124.39 Q 1044.51 122.66 1045.43 121.63 Q 1046.35 120.59 1047.89 120.59 Q 1049.43 120.59 1050.35 121.63 Q 1051.27 122.66 1051.27 124.4 Q 1051.27 126.89 1049.42 127.85 Q 1050.66 128.4 1052 128.63 M 1051.35 129.45 M 1047.86 127.41 Q 1048.97 127.41 1049.57 126.62 Q 1050.18 125.82 1050.18 124.37 Q 1050.18 122.96 1049.57 122.16 Q 1048.97 121.36 1047.89 121.36 Q 1046.81 121.36 1046.2 122.16 Q 1045.6 122.96 1045.6 124.38 Q 1045.6 125.79 1046.2 126.6 Q 1046.8 127.41 1047.86 127.41 M 1047.86 127.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1057.35 128.18 Q 1056.62 128.18 1055.49 127.86 L 1055.49 126.85 Q 1056.71 127.41 1057.5 127.41 Q 1058.1 127.41 1058.47 127.1 Q 1058.84 126.78 1058.84 126.26 Q 1058.84 125.84 1058.6 125.54 Q 1058.35 125.24 1057.71 124.88 L 1057.21 124.59 Q 1056.28 124.06 1055.91 123.59 Q 1055.53 123.13 1055.53 122.51 Q 1055.53 121.67 1056.13 121.13 Q 1056.74 120.59 1057.68 120.59 Q 1058.51 120.59 1059.44 120.87 L 1059.44 121.81 Q 1058.3 121.36 1057.73 121.36 Q 1057.2 121.36 1056.86 121.64 Q 1056.51 121.93 1056.51 122.36 Q 1056.51 122.72 1056.76 123 Q 1057.02 123.27 1057.69 123.66 L 1058.21 123.95 Q 1059.15 124.48 1059.52 124.96 Q 1059.89 125.43 1059.89 126.1 Q 1059.89 127.04 1059.19 127.61 Q 1058.5 128.18 1057.35 128.18 M 1057.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 128 L 1063.93 120.77 L 1066.33 120.77 Q 1067.41 120.77 1068.07 121.01 Q 1068.73 121.25 1069.22 121.82 Q 1069.98 122.73 1069.98 124.22 Q 1069.98 126.02 1069.03 127.01 Q 1068.08 128 1066.35 128 M 1063.93 128 M 1064.96 127.23 L 1066.27 127.23 Q 1067.68 127.23 1068.26 126.48 Q 1068.89 125.67 1068.89 124.31 Q 1068.89 123.04 1068.27 122.31 Q 1067.9 121.87 1067.38 121.7 Q 1066.85 121.54 1065.8 121.54 L 1064.96 121.54 M 1064.96 127.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.35 129.45 Q 1076.64 128.89 1075.49 128.13 Q 1075.03 128.18 1074.78 128.18 Q 1073.33 128.18 1072.42 127.13 Q 1071.51 126.07 1071.51 124.39 Q 1071.51 122.66 1072.43 121.63 Q 1073.35 120.59 1074.89 120.59 Q 1076.43 120.59 1077.35 121.63 Q 1078.27 122.66 1078.27 124.4 Q 1078.27 126.89 1076.42 127.85 Q 1077.66 128.4 1079 128.63 M 1078.35 129.45 M 1074.86 127.41 Q 1075.97 127.41 1076.57 126.62 Q 1077.18 125.82 1077.18 124.37 Q 1077.18 122.96 1076.57 122.16 Q 1075.97 121.36 1074.89 121.36 Q 1073.81 121.36 1073.2 122.16 Q 1072.6 122.96 1072.6 124.38 Q 1072.6 125.79 1073.2 126.6 Q 1073.8 127.41 1074.86 127.41 M 1074.86 127.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1084.35 128.18 Q 1083.62 128.18 1082.49 127.86 L 1082.49 126.85 Q 1083.71 127.41 1084.5 127.41 Q 1085.1 127.41 1085.47 127.1 Q 1085.84 126.78 1085.84 126.26 Q 1085.84 125.84 1085.6 125.54 Q 1085.35 125.24 1084.71 124.88 L 1084.21 124.59 Q 1083.28 124.06 1082.91 123.59 Q 1082.53 123.13 1082.53 122.51 Q 1082.53 121.67 1083.13 121.13 Q 1083.74 120.59 1084.68 120.59 Q 1085.51 120.59 1086.44 120.87 L 1086.44 121.81 Q 1085.3 121.36 1084.73 121.36 Q 1084.2 121.36 1083.86 121.64 Q 1083.51 121.93 1083.51 122.36 Q 1083.51 122.72 1083.76 123 Q 1084.02 123.27 1084.69 123.66 L 1085.21 123.95 Q 1086.15 124.48 1086.52 124.96 Q 1086.89 125.43 1086.89 126.1 Q 1086.89 127.04 1086.19 127.61 Q 1085.5 128.18 1084.35 128.18 M 1084.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 128 L 1091.93 120.77 L 1095.97 120.77 L 1095.97 121.54 L 1092.96 121.54 L 1092.96 123.96 L 1095.49 123.96 L 1095.49 124.72 L 1092.96 124.72 L 1092.96 128 M 1091.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 128 L 1100.93 120.77 L 1101.96 120.77 L 1101.96 127.23 L 1105.21 127.23 L 1105.21 128 M 1100.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 128 L 1108.93 120.77 L 1111.33 120.77 Q 1112.41 120.77 1113.07 121.01 Q 1113.73 121.25 1114.22 121.82 Q 1114.98 122.73 1114.98 124.22 Q 1114.98 126.02 1114.03 127.01 Q 1113.08 128 1111.35 128 M 1108.93 128 M 1109.96 127.23 L 1111.27 127.23 Q 1112.68 127.23 1113.26 126.48 Q 1113.89 125.67 1113.89 124.31 Q 1113.89 123.04 1113.27 122.31 Q 1112.9 121.87 1112.38 121.7 Q 1111.85 121.54 1110.8 121.54 L 1109.96 121.54 M 1109.96 127.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 128 L 1117.93 120.77 L 1120.33 120.77 Q 1121.41 120.77 1122.07 121.01 Q 1122.73 121.25 1123.22 121.82 Q 1123.98 122.73 1123.98 124.22 Q 1123.98 126.02 1123.03 127.01 Q 1122.08 128 1120.35 128 M 1117.93 128 M 1118.96 127.23 L 1120.27 127.23 Q 1121.68 127.23 1122.26 126.48 Q 1122.89 125.67 1122.89 124.31 Q 1122.89 123.04 1122.27 122.31 Q 1121.9 121.87 1121.38 121.7 Q 1120.85 121.54 1119.8 121.54 L 1118.96 121.54 M 1118.96 127.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1127.93 128 L 1127.93 120.77 L 1131.97 120.77 L 1131.97 121.54 L 1128.96 121.54 L 1128.96 123.86 L 1131.48 123.86 L 1131.48 124.62 L 1128.96 124.62 L 1128.96 127.23 L 1132.18 127.23 L 1132.18 128 M 1127.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 129.45 Q 1139.64 128.89 1138.49 128.13 Q 1138.03 128.18 1137.78 128.18 Q 1136.33 128.18 1135.42 127.13 Q 1134.51 126.07 1134.51 124.39 Q 1134.51 122.66 1135.43 121.63 Q 1136.35 120.59 1137.89 120.59 Q 1139.43 120.59 1140.35 121.63 Q 1141.27 122.66 1141.27 124.4 Q 1141.27 126.89 1139.42 127.85 Q 1140.66 128.4 1142 128.63 M 1141.35 129.45 M 1137.86 127.41 Q 1138.97 127.41 1139.57 126.62 Q 1140.18 125.82 1140.18 124.37 Q 1140.18 122.96 1139.57 122.16 Q 1138.97 121.36 1137.89 121.36 Q 1136.81 121.36 1136.2 122.16 Q 1135.6 122.96 1135.6 124.38 Q 1135.6 125.79 1136.2 126.6 Q 1136.8 127.41 1137.86 127.41 M 1137.86 127.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1146.93 128 L 1146.93 120.77 L 1147.95 120.77 L 1147.95 128 M 1146.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1159.36 127.8 Q 1158.05 128.18 1157.07 128.18 Q 1155.35 128.18 1154.43 127.2 Q 1153.51 126.22 1153.51 124.39 Q 1153.51 122.59 1154.44 121.59 Q 1155.37 120.59 1157.06 120.59 Q 1158.16 120.59 1159.35 120.92 L 1159.35 121.87 Q 1157.86 121.36 1157.06 121.36 Q 1155.89 121.36 1155.24 122.16 Q 1154.6 122.95 1154.6 124.4 Q 1154.6 125.83 1155.29 126.62 Q 1155.98 127.41 1157.23 127.41 Q 1157.75 127.41 1158.34 127.23 L 1158.34 124.88 L 1159.36 124.88 M 1159.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1163.93 128 L 1163.93 120.77 L 1167.97 120.77 L 1167.97 121.54 L 1164.96 121.54 L 1164.96 123.86 L 1167.48 123.86 L 1167.48 124.62 L 1164.96 124.62 L 1164.96 127.23 L 1168.18 127.23 L 1168.18 128 M 1163.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 127.8 Q 1176.05 128.18 1175.07 128.18 Q 1173.35 128.18 1172.43 127.2 Q 1171.51 126.22 1171.51 124.39 Q 1171.51 122.59 1172.44 121.59 Q 1173.37 120.59 1175.06 120.59 Q 1176.16 120.59 1177.35 120.92 L 1177.35 121.87 Q 1175.86 121.36 1175.06 121.36 Q 1173.89 121.36 1173.24 122.16 Q 1172.6 122.95 1172.6 124.4 Q 1172.6 125.83 1173.29 126.62 Q 1173.98 127.41 1175.23 127.41 Q 1175.75 127.41 1176.34 127.23 L 1176.34 124.88 L 1177.36 124.88 M 1177.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1181.93 128 L 1181.93 120.77 L 1185.97 120.77 L 1185.97 121.54 L 1182.96 121.54 L 1182.96 123.96 L 1185.49 123.96 L 1185.49 124.72 L 1182.96 124.72 L 1182.96 128 M 1181.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 128 L 1189.18 120.77 L 1190.2 120.77 L 1192.44 126.69 L 1194.6 120.77 L 1195.49 120.77 L 1192.87 128 M 1191.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 128 L 1199.93 120.77 L 1200.96 120.77 L 1200.96 127.23 L 1204.21 127.23 L 1204.21 128 M 1199.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 128 L 1209.65 121.54 L 1207.09 121.54 L 1207.09 120.77 L 1213.24 120.77 L 1213.24 121.54 L 1210.68 121.54 L 1210.68 128 M 1209.65 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 128.18 Q 1218.34 128.18 1217.43 127.19 Q 1216.51 126.2 1216.51 124.39 Q 1216.51 122.58 1217.44 121.59 Q 1218.38 120.59 1220.08 120.59 Q 1221.05 120.59 1222.35 120.91 L 1222.35 121.87 Q 1220.87 121.36 1220.06 121.36 Q 1218.89 121.36 1218.24 122.16 Q 1217.6 122.95 1217.6 124.4 Q 1217.6 125.78 1218.29 126.58 Q 1218.97 127.38 1220.17 127.38 Q 1221.19 127.38 1222.36 126.75 L 1222.36 127.63 Q 1221.29 128.18 1220.03 128.18 M 1220.03 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1229.59 125.24 L 1228.36 122.12 L 1227.13 125.24 M 1229.59 125.24 M 1230.68 128 L 1229.89 126 L 1226.83 126 L 1226.04 128 L 1225.08 128 L 1227.95 120.77 L 1228.96 120.77 L 1231.79 128 M 1230.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 125.24 L 1237.36 122.12 L 1236.13 125.24 M 1238.59 125.24 M 1239.68 128 L 1238.89 126 L 1235.83 126 L 1235.04 128 L 1234.08 128 L 1236.95 120.77 L 1237.96 120.77 L 1240.79 128 M 1239.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 128 L 1245.5 124.98 L 1243.08 120.77 L 1244.25 120.77 L 1246.13 124.04 L 1248.15 120.77 L 1249.1 120.77 L 1246.52 124.96 L 1246.52 128 M 1245.5 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 128 L 1252.93 120.77 L 1254.9 120.77 Q 1256.21 120.77 1256.78 121.22 Q 1257.35 121.66 1257.35 122.67 Q 1257.35 123.82 1256.57 124.47 Q 1255.79 125.13 1254.4 125.13 L 1253.95 125.13 L 1253.95 128 M 1252.93 128 M 1253.95 124.35 L 1254.36 124.35 Q 1255.28 124.35 1255.77 123.93 Q 1256.27 123.51 1256.27 122.75 Q 1256.27 122.1 1255.88 121.82 Q 1255.49 121.54 1254.58 121.54 L 1253.95 121.54 M 1253.95 124.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1263.65 128 L 1263.65 121.54 L 1261.09 121.54 L 1261.09 120.77 L 1267.24 120.77 L 1267.24 121.54 L 1264.68 121.54 L 1264.68 128 M 1263.65 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1273.35 128.18 Q 1272.62 128.18 1271.49 127.86 L 1271.49 126.85 Q 1272.71 127.41 1273.5 127.41 Q 1274.1 127.41 1274.47 127.1 Q 1274.84 126.78 1274.84 126.26 Q 1274.84 125.84 1274.6 125.54 Q 1274.35 125.24 1273.71 124.88 L 1273.21 124.59 Q 1272.28 124.06 1271.91 123.59 Q 1271.53 123.13 1271.53 122.51 Q 1271.53 121.67 1272.13 121.13 Q 1272.74 120.59 1273.68 120.59 Q 1274.51 120.59 1275.44 120.87 L 1275.44 121.81 Q 1274.3 121.36 1273.73 121.36 Q 1273.2 121.36 1272.86 121.64 Q 1272.51 121.93 1272.51 122.36 Q 1272.51 122.72 1272.76 123 Q 1273.02 123.27 1273.69 123.66 L 1274.21 123.95 Q 1275.15 124.48 1275.52 124.96 Q 1275.89 125.43 1275.89 126.1 Q 1275.89 127.04 1275.19 127.61 Q 1274.5 128.18 1273.35 128.18 M 1273.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 128 L 1279.93 120.77 L 1282.33 120.77 Q 1283.41 120.77 1284.07 121.01 Q 1284.73 121.25 1285.22 121.82 Q 1285.98 122.73 1285.98 124.22 Q 1285.98 126.02 1285.03 127.01 Q 1284.08 128 1282.35 128 M 1279.93 128 M 1280.96 127.23 L 1282.27 127.23 Q 1283.68 127.23 1284.26 126.48 Q 1284.89 125.67 1284.89 124.31 Q 1284.89 123.04 1284.27 122.31 Q 1283.9 121.87 1283.38 121.7 Q 1282.85 121.54 1281.8 121.54 L 1280.96 121.54 M 1280.96 127.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 128 L 1288.18 120.77 L 1289.2 120.77 L 1291.44 126.69 L 1293.6 120.77 L 1294.49 120.77 L 1291.87 128 M 1290.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.65 128 L 1299.65 121.54 L 1297.09 121.54 L 1297.09 120.77 L 1303.24 120.77 L 1303.24 121.54 L 1300.68 121.54 L 1300.68 128 M 1299.65 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 128 L 1308.93 120.77 L 1309.95 120.77 L 1309.95 128 M 1308.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 128 L 1316.93 120.77 L 1320.97 120.77 L 1320.97 121.54 L 1317.96 121.54 L 1317.96 123.86 L 1320.48 123.86 L 1320.48 124.62 L 1317.96 124.62 L 1317.96 127.23 L 1321.18 127.23 L 1321.18 128 M 1316.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 128 L 1326.65 121.54 L 1324.09 121.54 L 1324.09 120.77 L 1330.24 120.77 L 1330.24 121.54 L 1327.68 121.54 L 1327.68 128 M 1326.65 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 128 L 1333.93 120.77 L 1334.96 120.77 L 1334.96 123.82 L 1338.4 123.82 L 1338.4 120.77 L 1339.42 120.77 L 1339.42 128 L 1338.4 128 L 1338.4 124.59 L 1334.96 124.59 L 1334.96 128 M 1333.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 128 L 1342.93 120.77 L 1343.89 120.77 L 1343.89 124.33 L 1346.82 120.77 L 1347.85 120.77 L 1345.02 124.22 L 1348.35 128 L 1347.05 128 L 1343.89 124.34 L 1343.89 128 M 1342.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 128 L 1352.93 120.77 L 1356.97 120.77 L 1356.97 121.54 L 1353.96 121.54 L 1353.96 123.86 L 1356.48 123.86 L 1356.48 124.62 L 1353.96 124.62 L 1353.96 127.23 L 1357.18 127.23 L 1357.18 128 M 1352.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1361.93 128 L 1361.93 120.77 L 1365.97 120.77 L 1365.97 121.54 L 1362.96 121.54 L 1362.96 123.86 L 1365.48 123.86 L 1365.48 124.62 L 1362.96 124.62 L 1362.96 127.23 L 1366.18 127.23 L 1366.18 128 M 1361.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1369.93 128 L 1369.93 120.77 L 1372.33 120.77 Q 1373.41 120.77 1374.07 121.01 Q 1374.73 121.25 1375.22 121.82 Q 1375.98 122.73 1375.98 124.22 Q 1375.98 126.02 1375.03 127.01 Q 1374.08 128 1372.35 128 M 1369.93 128 M 1370.96 127.23 L 1372.27 127.23 Q 1373.68 127.23 1374.26 126.48 Q 1374.89 125.67 1374.89 124.31 Q 1374.89 123.04 1374.27 122.31 Q 1373.9 121.87 1373.38 121.7 Q 1372.85 121.54 1371.8 121.54 L 1370.96 121.54 M 1370.96 127.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1380.93 128 L 1380.93 120.77 L 1381.95 120.77 L 1381.95 128 M 1380.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.91 128 L 1387.18 120.77 L 1388.2 120.77 L 1390.44 126.69 L 1392.6 120.77 L 1393.49 120.77 L 1390.87 128 M 1389.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1396.72 125.47 L 1396.72 124.75 L 1401.06 124.75 L 1401.06 125.47 M 1396.72 125.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 125.47 L 1405.72 124.75 L 1410.06 124.75 L 1410.06 125.47 M 1405.72 125.47"/></g><rect x="0" y="130" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="130" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="130" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="130" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="130" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="130" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="594" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="130" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="130" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="130" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="130" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="639" y="130" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="130" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="130" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="130" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="130" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="130" width="27" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="130" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="130" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="130" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="130" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="130" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="801" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="130" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="130" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="130" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="130" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="130" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="130" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="130" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="130" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="130" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="130" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="130" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="130" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="130" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="130" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="130" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="130" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="130" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="130" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="130" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="130" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="130" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1080" y="130" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="130" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="130" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="130" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1.72 138.47 L 1.72 137.75 L 6.06 137.75 L 6.06 138.47 M 1.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 10.72 138.47 L 10.72 137.75 L 15.06 137.75 L 15.06 138.47 M 10.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 19.72 138.47 L 19.72 137.75 L 24.06 137.75 L 24.06 138.47 M 19.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 28.72 138.47 L 28.72 137.75 L 33.06 137.75 L 33.06 138.47 M 28.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 138.47 L 37.72 137.75 L 42.06 137.75 L 42.06 138.47 M 37.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 138.47 L 46.72 137.75 L 51.06 137.75 L 51.06 138.47 M 46.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 138.47 L 55.72 137.75 L 60.06 137.75 L 60.06 138.47 M 55.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.72 138.47 L 64.72 137.75 L 69.06 137.75 L 69.06 138.47 M 64.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 73.72 138.47 L 73.72 137.75 L 78.06 137.75 L 78.06 138.47 M 73.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 82.72 138.47 L 82.72 137.75 L 87.06 137.75 L 87.06 138.47 M 82.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 91.72 138.47 L 91.72 137.75 L 96.06 137.75 L 96.06 138.47 M 91.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 100.72 138.47 L 100.72 137.75 L 105.06 137.75 L 105.06 138.47 M 100.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 109.72 138.47 L 109.72 137.75 L 114.06 137.75 L 114.06 138.47 M 109.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 118.72 138.47 L 118.72 137.75 L 123.06 137.75 L 123.06 138.47 M 118.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 127.72 138.47 L 127.72 137.75 L 132.06 137.75 L 132.06 138.47 M 127.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 136.72 138.47 L 136.72 137.75 L 141.06 137.75 L 141.06 138.47 M 136.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 145.72 138.47 L 145.72 137.75 L 150.06 137.75 L 150.06 138.47 M 145.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 154.72 138.47 L 154.72 137.75 L 159.06 137.75 L 159.06 138.47 M 154.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 163.72 138.47 L 163.72 137.75 L 168.06 137.75 L 168.06 138.47 M 163.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 172.72 138.47 L 172.72 137.75 L 177.06 137.75 L 177.06 138.47 M 172.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.72 138.47 L 181.72 137.75 L 186.06 137.75 L 186.06 138.47 M 181.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.72 138.47 L 190.72 137.75 L 195.06 137.75 L 195.06 138.47 M 190.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 199.72 138.47 L 199.72 137.75 L 204.06 137.75 L 204.06 138.47 M 199.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.72 138.47 L 208.72 137.75 L 213.06 137.75 L 213.06 138.47 M 208.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 217.72 138.47 L 217.72 137.75 L 222.06 137.75 L 222.06 138.47 M 217.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.72 138.47 L 226.72 137.75 L 231.06 137.75 L 231.06 138.47 M 226.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 235.72 138.47 L 235.72 137.75 L 240.06 137.75 L 240.06 138.47 M 235.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 244.72 138.47 L 244.72 137.75 L 249.06 137.75 L 249.06 138.47 M 244.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 253.72 138.47 L 253.72 137.75 L 258.06 137.75 L 258.06 138.47 M 253.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.72 138.47 L 262.72 137.75 L 267.06 137.75 L 267.06 138.47 M 262.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 271.72 138.47 L 271.72 137.75 L 276.06 137.75 L 276.06 138.47 M 271.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 280.72 138.47 L 280.72 137.75 L 285.06 137.75 L 285.06 138.47 M 280.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 289.72 138.47 L 289.72 137.75 L 294.06 137.75 L 294.06 138.47 M 289.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 298.72 138.47 L 298.72 137.75 L 303.06 137.75 L 303.06 138.47 M 298.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 307.72 138.47 L 307.72 137.75 L 312.06 137.75 L 312.06 138.47 M 307.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 316.72 138.47 L 316.72 137.75 L 321.06 137.75 L 321.06 138.47 M 316.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 325.72 138.47 L 325.72 137.75 L 330.06 137.75 L 330.06 138.47 M 325.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 334.72 138.47 L 334.72 137.75 L 339.06 137.75 L 339.06 138.47 M 334.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 138.47 L 343.72 137.75 L 348.06 137.75 L 348.06 138.47 M 343.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 138.47 L 352.72 137.75 L 357.06 137.75 L 357.06 138.47 M 352.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 361.72 138.47 L 361.72 137.75 L 366.06 137.75 L 366.06 138.47 M 361.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 370.72 138.47 L 370.72 137.75 L 375.06 137.75 L 375.06 138.47 M 370.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 379.72 138.47 L 379.72 137.75 L 384.06 137.75 L 384.06 138.47 M 379.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 388.72 138.47 L 388.72 137.75 L 393.06 137.75 L 393.06 138.47 M 388.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 397.72 138.47 L 397.72 137.75 L 402.06 137.75 L 402.06 138.47 M 397.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.72 138.47 L 406.72 137.75 L 411.06 137.75 L 411.06 138.47 M 406.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 415.72 138.47 L 415.72 137.75 L 420.06 137.75 L 420.06 138.47 M 415.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 138.47 L 424.72 137.75 L 429.06 137.75 L 429.06 138.47 M 424.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 433.72 138.47 L 433.72 137.75 L 438.06 137.75 L 438.06 138.47 M 433.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 442.72 138.47 L 442.72 137.75 L 447.06 137.75 L 447.06 138.47 M 442.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 451.72 138.47 L 451.72 137.75 L 456.06 137.75 L 456.06 138.47 M 451.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.72 138.47 L 460.72 137.75 L 465.06 137.75 L 465.06 138.47 M 460.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 469.72 138.47 L 469.72 137.75 L 474.06 137.75 L 474.06 138.47 M 469.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 478.72 138.47 L 478.72 137.75 L 483.06 137.75 L 483.06 138.47 M 478.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 487.72 138.47 L 487.72 137.75 L 492.06 137.75 L 492.06 138.47 M 487.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 496.72 138.47 L 496.72 137.75 L 501.06 137.75 L 501.06 138.47 M 496.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 505.72 138.47 L 505.72 137.75 L 510.06 137.75 L 510.06 138.47 M 505.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 514.72 138.47 L 514.72 137.75 L 519.06 137.75 L 519.06 138.47 M 514.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 523.72 138.47 L 523.72 137.75 L 528.06 137.75 L 528.06 138.47 M 523.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 138.24 L 535.36 135.12 L 534.13 138.24 M 536.59 138.24 M 537.68 141 L 536.89 139 L 533.83 139 L 533.04 141 L 532.08 141 L 534.95 133.77 L 535.96 133.77 L 538.79 141 M 537.68 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 543.65 141 L 543.65 134.54 L 541.09 134.54 L 541.09 133.77 L 547.24 133.77 L 547.24 134.54 L 544.68 134.54 L 544.68 141 M 543.65 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 141 L 552.5 137.98 L 550.08 133.77 L 551.25 133.77 L 553.13 137.04 L 555.15 133.77 L 556.1 133.77 L 553.52 137.96 L 553.52 141 M 552.5 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 141 L 559.93 133.77 L 560.89 133.77 L 560.89 137.33 L 563.82 133.77 L 564.85 133.77 L 562.02 137.22 L 565.35 141 L 564.05 141 L 560.89 137.34 L 560.89 141 M 559.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 141 L 568.18 133.77 L 569.2 133.77 L 571.44 139.69 L 573.6 133.77 L 574.49 133.77 L 571.87 141 M 570.91 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 141 L 577.93 133.77 L 578.89 133.77 L 578.89 137.33 L 581.82 133.77 L 582.85 133.77 L 580.02 137.22 L 583.35 141 L 582.05 141 L 578.89 137.34 L 578.89 141 M 577.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 141 L 587.93 133.77 L 591.97 133.77 L 591.97 134.54 L 588.96 134.54 L 588.96 136.96 L 591.49 136.96 L 591.49 137.72 L 588.96 137.72 L 588.96 141 M 587.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 141 L 597.93 133.77 L 598.95 133.77 L 598.95 141 M 597.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 141 L 606.65 134.54 L 604.09 134.54 L 604.09 133.77 L 610.24 133.77 L 610.24 134.54 L 607.68 134.54 L 607.68 141 M 606.65 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 141 L 613.93 133.77 L 615.9 133.77 Q 617.21 133.77 617.78 134.22 Q 618.35 134.66 618.35 135.67 Q 618.35 136.82 617.57 137.47 Q 616.79 138.13 615.4 138.13 L 614.95 138.13 L 614.95 141 M 613.93 141 M 614.95 137.35 L 615.36 137.35 Q 616.28 137.35 616.77 136.93 Q 617.27 136.51 617.27 135.75 Q 617.27 135.1 616.88 134.82 Q 616.49 134.54 615.58 134.54 L 614.95 134.54 M 614.95 137.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 623.93 141 L 623.93 133.77 L 627.97 133.77 L 627.97 134.54 L 624.96 134.54 L 624.96 136.86 L 627.48 136.86 L 627.48 137.62 L 624.96 137.62 L 624.96 140.23 L 628.18 140.23 L 628.18 141 M 623.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 140.8 Q 636.05 141.18 635.07 141.18 Q 633.35 141.18 632.43 140.2 Q 631.51 139.22 631.51 137.39 Q 631.51 135.59 632.44 134.59 Q 633.37 133.59 635.06 133.59 Q 636.16 133.59 637.35 133.92 L 637.35 134.87 Q 635.86 134.36 635.06 134.36 Q 633.89 134.36 633.24 135.16 Q 632.6 135.95 632.6 137.4 Q 632.6 138.83 633.29 139.62 Q 633.98 140.41 635.23 140.41 Q 635.75 140.41 636.34 140.23 L 636.34 137.88 L 637.36 137.88 M 637.36 140.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 641.93 141 L 641.93 133.77 L 645.97 133.77 L 645.97 134.54 L 642.96 134.54 L 642.96 136.86 L 645.48 136.86 L 645.48 137.62 L 642.96 137.62 L 642.96 140.23 L 646.18 140.23 L 646.18 141 M 641.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 655.35 142.45 Q 653.64 141.89 652.49 141.13 Q 652.03 141.18 651.78 141.18 Q 650.33 141.18 649.42 140.13 Q 648.51 139.07 648.51 137.39 Q 648.51 135.66 649.43 134.63 Q 650.35 133.59 651.89 133.59 Q 653.43 133.59 654.35 134.63 Q 655.27 135.66 655.27 137.4 Q 655.27 139.89 653.42 140.85 Q 654.66 141.4 656 141.63 M 655.35 142.45 M 651.86 140.41 Q 652.97 140.41 653.57 139.62 Q 654.18 138.82 654.18 137.37 Q 654.18 135.96 653.57 135.16 Q 652.97 134.36 651.89 134.36 Q 650.81 134.36 650.2 135.16 Q 649.6 135.96 649.6 137.38 Q 649.6 138.79 650.2 139.6 Q 650.8 140.41 651.86 140.41 M 651.86 140.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 141 L 659.93 133.77 L 663.97 133.77 L 663.97 134.54 L 660.96 134.54 L 660.96 136.86 L 663.48 136.86 L 663.48 137.62 L 660.96 137.62 L 660.96 140.23 L 664.18 140.23 L 664.18 141 M 659.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 669.91 141 L 667.18 133.77 L 668.2 133.77 L 670.44 139.69 L 672.6 133.77 L 673.49 133.77 L 670.87 141 M 669.91 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 677.93 141 L 677.93 133.77 L 681.97 133.77 L 681.97 134.54 L 678.96 134.54 L 678.96 136.86 L 681.48 136.86 L 681.48 137.62 L 678.96 137.62 L 678.96 140.23 L 682.18 140.23 L 682.18 141 M 677.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 141.18 Q 687.34 141.18 686.43 140.19 Q 685.51 139.2 685.51 137.39 Q 685.51 135.58 686.44 134.59 Q 687.38 133.59 689.08 133.59 Q 690.05 133.59 691.35 133.91 L 691.35 134.87 Q 689.87 134.36 689.06 134.36 Q 687.89 134.36 687.24 135.16 Q 686.6 135.95 686.6 137.4 Q 686.6 138.78 687.29 139.58 Q 687.97 140.38 689.17 140.38 Q 690.19 140.38 691.36 139.75 L 691.36 140.63 Q 690.29 141.18 689.03 141.18 M 689.03 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 141 L 694.93 133.77 L 697.33 133.77 Q 698.41 133.77 699.07 134.01 Q 699.73 134.25 700.22 134.82 Q 700.98 135.73 700.98 137.22 Q 700.98 139.02 700.03 140.01 Q 699.08 141 697.35 141 M 694.93 141 M 695.96 140.23 L 697.27 140.23 Q 698.68 140.23 699.26 139.48 Q 699.89 138.67 699.89 137.31 Q 699.89 136.04 699.27 135.31 Q 698.9 134.87 698.38 134.7 Q 697.85 134.54 696.8 134.54 L 695.96 134.54 M 695.96 140.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 141 L 703.93 133.77 L 706.33 133.77 Q 707.41 133.77 708.07 134.01 Q 708.73 134.25 709.22 134.82 Q 709.98 135.73 709.98 137.22 Q 709.98 139.02 709.03 140.01 Q 708.08 141 706.35 141 M 703.93 141 M 704.96 140.23 L 706.27 140.23 Q 707.68 140.23 708.26 139.48 Q 708.89 138.67 708.89 137.31 Q 708.89 136.04 708.27 135.31 Q 707.9 134.87 707.38 134.7 Q 706.85 134.54 705.8 134.54 L 704.96 134.54 M 704.96 140.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 141 L 712.93 133.77 L 715.33 133.77 Q 716.41 133.77 717.07 134.01 Q 717.73 134.25 718.22 134.82 Q 718.98 135.73 718.98 137.22 Q 718.98 139.02 718.03 140.01 Q 717.08 141 715.35 141 M 712.93 141 M 713.96 140.23 L 715.27 140.23 Q 716.68 140.23 717.26 139.48 Q 717.89 138.67 717.89 137.31 Q 717.89 136.04 717.27 135.31 Q 716.9 134.87 716.38 134.7 Q 715.85 134.54 714.8 134.54 L 713.96 134.54 M 713.96 140.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 141 L 721.18 133.77 L 722.2 133.77 L 724.44 139.69 L 726.6 133.77 L 727.49 133.77 L 724.87 141 M 723.91 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 141 L 732.5 137.98 L 730.08 133.77 L 731.25 133.77 L 733.13 137.04 L 735.15 133.77 L 736.1 133.77 L 733.52 137.96 L 733.52 141 M 732.5 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.91 141 L 739.18 133.77 L 740.2 133.77 L 742.44 139.69 L 744.6 133.77 L 745.49 133.77 L 742.87 141 M 741.91 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 141 L 749.93 133.77 L 750.96 133.77 L 750.96 140.23 L 754.21 140.23 L 754.21 141 M 749.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 141 L 757.93 133.77 L 760.33 133.77 Q 761.41 133.77 762.07 134.01 Q 762.73 134.25 763.22 134.82 Q 763.98 135.73 763.98 137.22 Q 763.98 139.02 763.03 140.01 Q 762.08 141 760.35 141 M 757.93 141 M 758.96 140.23 L 760.27 140.23 Q 761.68 140.23 762.26 139.48 Q 762.89 138.67 762.89 137.31 Q 762.89 136.04 762.27 135.31 Q 761.9 134.87 761.38 134.7 Q 760.85 134.54 759.8 134.54 L 758.96 134.54 M 758.96 140.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 770.59 138.24 L 769.36 135.12 L 768.13 138.24 M 770.59 138.24 M 771.68 141 L 770.89 139 L 767.83 139 L 767.04 141 L 766.08 141 L 768.95 133.77 L 769.96 133.77 L 772.79 141 M 771.68 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 138.24 L 778.36 135.12 L 777.13 138.24 M 779.59 138.24 M 780.68 141 L 779.89 139 L 776.83 139 L 776.04 141 L 775.08 141 L 777.95 133.77 L 778.96 133.77 L 781.79 141 M 780.68 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 141 L 785.93 133.77 L 789.97 133.77 L 789.97 134.54 L 786.96 134.54 L 786.96 136.86 L 789.48 136.86 L 789.48 137.62 L 786.96 137.62 L 786.96 140.23 L 790.18 140.23 L 790.18 141 M 785.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 141 L 794.93 133.77 L 798.97 133.77 L 798.97 134.54 L 795.96 134.54 L 795.96 136.86 L 798.48 136.86 L 798.48 137.62 L 795.96 137.62 L 795.96 140.23 L 799.18 140.23 L 799.18 141 M 794.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 806.59 138.24 L 805.36 135.12 L 804.13 138.24 M 806.59 138.24 M 807.68 141 L 806.89 139 L 803.83 139 L 803.04 141 L 802.08 141 L 804.95 133.77 L 805.96 133.77 L 808.79 141 M 807.68 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 140.8 Q 816.05 141.18 815.07 141.18 Q 813.35 141.18 812.43 140.2 Q 811.51 139.22 811.51 137.39 Q 811.51 135.59 812.44 134.59 Q 813.37 133.59 815.06 133.59 Q 816.16 133.59 817.35 133.92 L 817.35 134.87 Q 815.86 134.36 815.06 134.36 Q 813.89 134.36 813.24 135.16 Q 812.6 135.95 812.6 137.4 Q 812.6 138.83 813.29 139.62 Q 813.98 140.41 815.23 140.41 Q 815.75 140.41 816.34 140.23 L 816.34 137.88 L 817.36 137.88 M 817.36 140.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 822.93 141 L 822.93 133.77 L 823.95 133.77 L 823.95 141 M 822.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 141 L 829.93 133.77 L 832.33 133.77 Q 833.41 133.77 834.07 134.01 Q 834.73 134.25 835.22 134.82 Q 835.98 135.73 835.98 137.22 Q 835.98 139.02 835.03 140.01 Q 834.08 141 832.35 141 M 829.93 141 M 830.96 140.23 L 832.27 140.23 Q 833.68 140.23 834.26 139.48 Q 834.89 138.67 834.89 137.31 Q 834.89 136.04 834.27 135.31 Q 833.9 134.87 833.38 134.7 Q 832.85 134.54 831.8 134.54 L 830.96 134.54 M 830.96 140.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 141 L 839.93 133.77 L 840.96 133.77 L 840.96 140.23 L 844.21 140.23 L 844.21 141 M 839.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 141 L 847.93 133.77 L 849.9 133.77 Q 851.21 133.77 851.78 134.22 Q 852.35 134.66 852.35 135.67 Q 852.35 136.82 851.57 137.47 Q 850.79 138.13 849.4 138.13 L 848.95 138.13 L 848.95 141 M 847.93 141 M 848.95 137.35 L 849.36 137.35 Q 850.28 137.35 850.77 136.93 Q 851.27 136.51 851.27 135.75 Q 851.27 135.1 850.88 134.82 Q 850.49 134.54 849.58 134.54 L 848.95 134.54 M 848.95 137.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 141 L 858.5 137.98 L 856.08 133.77 L 857.25 133.77 L 859.13 137.04 L 861.15 133.77 L 862.1 133.77 L 859.52 137.96 L 859.52 141 M 858.5 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 141.18 Q 867.62 141.18 866.49 140.86 L 866.49 139.85 Q 867.71 140.41 868.5 140.41 Q 869.1 140.41 869.47 140.1 Q 869.84 139.78 869.84 139.26 Q 869.84 138.84 869.6 138.54 Q 869.35 138.24 868.71 137.88 L 868.21 137.59 Q 867.28 137.06 866.91 136.59 Q 866.53 136.13 866.53 135.51 Q 866.53 134.67 867.13 134.13 Q 867.74 133.59 868.68 133.59 Q 869.51 133.59 870.44 133.87 L 870.44 134.81 Q 869.3 134.36 868.73 134.36 Q 868.2 134.36 867.86 134.64 Q 867.51 134.93 867.51 135.36 Q 867.51 135.72 867.76 136 Q 868.02 136.27 868.69 136.66 L 869.21 136.95 Q 870.15 137.48 870.52 137.96 Q 870.89 138.43 870.89 139.1 Q 870.89 140.04 870.19 140.61 Q 869.5 141.18 868.35 141.18 M 868.35 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 141.18 Q 876.34 141.18 875.43 140.19 Q 874.51 139.2 874.51 137.39 Q 874.51 135.58 875.44 134.59 Q 876.38 133.59 878.08 133.59 Q 879.05 133.59 880.35 133.91 L 880.35 134.87 Q 878.87 134.36 878.06 134.36 Q 876.89 134.36 876.24 135.16 Q 875.6 135.95 875.6 137.4 Q 875.6 138.78 876.29 139.58 Q 876.97 140.38 878.17 140.38 Q 879.19 140.38 880.36 139.75 L 880.36 140.63 Q 879.29 141.18 878.03 141.18 M 878.03 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 141 L 883.93 133.77 L 886.12 133.77 Q 887.16 133.77 887.71 134.23 Q 888.27 134.69 888.27 135.57 Q 888.27 137.01 886.81 137.62 L 889.22 141 L 887.96 141 L 885.91 137.94 L 884.95 137.94 L 884.95 141 M 883.93 141 M 884.95 137.18 L 885.28 137.18 Q 887.21 137.18 887.21 135.66 Q 887.21 134.54 885.59 134.54 L 884.95 134.54 M 884.95 137.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 138.24 L 895.36 135.12 L 894.13 138.24 M 896.59 138.24 M 897.68 141 L 896.89 139 L 893.83 139 L 893.04 141 L 892.08 141 L 894.95 133.77 L 895.96 133.77 L 898.79 141 M 897.68 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 140.8 Q 906.05 141.18 905.07 141.18 Q 903.35 141.18 902.43 140.2 Q 901.51 139.22 901.51 137.39 Q 901.51 135.59 902.44 134.59 Q 903.37 133.59 905.06 133.59 Q 906.16 133.59 907.35 133.92 L 907.35 134.87 Q 905.86 134.36 905.06 134.36 Q 903.89 134.36 903.24 135.16 Q 902.6 135.95 902.6 137.4 Q 902.6 138.83 903.29 139.62 Q 903.98 140.41 905.23 140.41 Q 905.75 140.41 906.34 140.23 L 906.34 137.88 L 907.36 137.88 M 907.36 140.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 141.18 Q 912.62 141.18 911.49 140.86 L 911.49 139.85 Q 912.71 140.41 913.5 140.41 Q 914.1 140.41 914.47 140.1 Q 914.84 139.78 914.84 139.26 Q 914.84 138.84 914.6 138.54 Q 914.35 138.24 913.71 137.88 L 913.21 137.59 Q 912.28 137.06 911.91 136.59 Q 911.53 136.13 911.53 135.51 Q 911.53 134.67 912.13 134.13 Q 912.74 133.59 913.68 133.59 Q 914.51 133.59 915.44 133.87 L 915.44 134.81 Q 914.3 134.36 913.73 134.36 Q 913.2 134.36 912.86 134.64 Q 912.51 134.93 912.51 135.36 Q 912.51 135.72 912.76 136 Q 913.02 136.27 913.69 136.66 L 914.21 136.95 Q 915.15 137.48 915.52 137.96 Q 915.89 138.43 915.89 139.1 Q 915.89 140.04 915.19 140.61 Q 914.5 141.18 913.35 141.18 M 913.35 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 141.18 Q 921.34 141.18 920.43 140.19 Q 919.51 139.2 919.51 137.39 Q 919.51 135.58 920.44 134.59 Q 921.38 133.59 923.08 133.59 Q 924.05 133.59 925.35 133.91 L 925.35 134.87 Q 923.87 134.36 923.06 134.36 Q 921.89 134.36 921.24 135.16 Q 920.6 135.95 920.6 137.4 Q 920.6 138.78 921.29 139.58 Q 921.97 140.38 923.17 140.38 Q 924.19 140.38 925.36 139.75 L 925.36 140.63 Q 924.29 141.18 923.03 141.18 M 923.03 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 141.18 Q 930.62 141.18 929.49 140.86 L 929.49 139.85 Q 930.71 140.41 931.5 140.41 Q 932.1 140.41 932.47 140.1 Q 932.84 139.78 932.84 139.26 Q 932.84 138.84 932.6 138.54 Q 932.35 138.24 931.71 137.88 L 931.21 137.59 Q 930.28 137.06 929.91 136.59 Q 929.53 136.13 929.53 135.51 Q 929.53 134.67 930.13 134.13 Q 930.74 133.59 931.68 133.59 Q 932.51 133.59 933.44 133.87 L 933.44 134.81 Q 932.3 134.36 931.73 134.36 Q 931.2 134.36 930.86 134.64 Q 930.51 134.93 930.51 135.36 Q 930.51 135.72 930.76 136 Q 931.02 136.27 931.69 136.66 L 932.21 136.95 Q 933.15 137.48 933.52 137.96 Q 933.89 138.43 933.89 139.1 Q 933.89 140.04 933.19 140.61 Q 932.5 141.18 931.35 141.18 M 931.35 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 141.18 Q 939.62 141.18 938.49 140.86 L 938.49 139.85 Q 939.71 140.41 940.5 140.41 Q 941.1 140.41 941.47 140.1 Q 941.84 139.78 941.84 139.26 Q 941.84 138.84 941.6 138.54 Q 941.35 138.24 940.71 137.88 L 940.21 137.59 Q 939.28 137.06 938.91 136.59 Q 938.53 136.13 938.53 135.51 Q 938.53 134.67 939.13 134.13 Q 939.74 133.59 940.68 133.59 Q 941.51 133.59 942.44 133.87 L 942.44 134.81 Q 941.3 134.36 940.73 134.36 Q 940.2 134.36 939.86 134.64 Q 939.51 134.93 939.51 135.36 Q 939.51 135.72 939.76 136 Q 940.02 136.27 940.69 136.66 L 941.21 136.95 Q 942.15 137.48 942.52 137.96 Q 942.89 138.43 942.89 139.1 Q 942.89 140.04 942.19 140.61 Q 941.5 141.18 940.35 141.18 M 940.35 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 141.18 Q 948.34 141.18 947.43 140.19 Q 946.51 139.2 946.51 137.39 Q 946.51 135.58 947.44 134.59 Q 948.38 133.59 950.08 133.59 Q 951.05 133.59 952.35 133.91 L 952.35 134.87 Q 950.87 134.36 950.06 134.36 Q 948.89 134.36 948.24 135.16 Q 947.6 135.95 947.6 137.4 Q 947.6 138.78 948.29 139.58 Q 948.97 140.38 950.17 140.38 Q 951.19 140.38 952.36 139.75 L 952.36 140.63 Q 951.29 141.18 950.03 141.18 M 950.03 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 138.24 L 958.36 135.12 L 957.13 138.24 M 959.59 138.24 M 960.68 141 L 959.89 139 L 956.83 139 L 956.04 141 L 955.08 141 L 957.95 133.77 L 958.96 133.77 L 961.79 141 M 960.68 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 140.8 Q 969.05 141.18 968.07 141.18 Q 966.35 141.18 965.43 140.2 Q 964.51 139.22 964.51 137.39 Q 964.51 135.59 965.44 134.59 Q 966.37 133.59 968.06 133.59 Q 969.16 133.59 970.35 133.92 L 970.35 134.87 Q 968.86 134.36 968.06 134.36 Q 966.89 134.36 966.24 135.16 Q 965.6 135.95 965.6 137.4 Q 965.6 138.83 966.29 139.62 Q 966.98 140.41 968.23 140.41 Q 968.75 140.41 969.34 140.23 L 969.34 137.88 L 970.36 137.88 M 970.36 140.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 141 L 973.93 133.77 L 974.89 133.77 L 974.89 137.33 L 977.82 133.77 L 978.85 133.77 L 976.02 137.22 L 979.35 141 L 978.05 141 L 974.89 137.34 L 974.89 141 M 973.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 141 L 982.18 133.77 L 983.2 133.77 L 985.44 139.69 L 987.6 133.77 L 988.49 133.77 L 985.87 141 M 984.91 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.91 141 L 991.18 133.77 L 992.2 133.77 L 994.44 139.69 L 996.6 133.77 L 997.49 133.77 L 994.87 141 M 993.91 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1003.35 141.18 Q 1002.62 141.18 1001.49 140.86 L 1001.49 139.85 Q 1002.71 140.41 1003.5 140.41 Q 1004.1 140.41 1004.47 140.1 Q 1004.84 139.78 1004.84 139.26 Q 1004.84 138.84 1004.6 138.54 Q 1004.35 138.24 1003.71 137.88 L 1003.21 137.59 Q 1002.28 137.06 1001.91 136.59 Q 1001.53 136.13 1001.53 135.51 Q 1001.53 134.67 1002.13 134.13 Q 1002.74 133.59 1003.68 133.59 Q 1004.51 133.59 1005.44 133.87 L 1005.44 134.81 Q 1004.3 134.36 1003.73 134.36 Q 1003.2 134.36 1002.86 134.64 Q 1002.51 134.93 1002.51 135.36 Q 1002.51 135.72 1002.76 136 Q 1003.02 136.27 1003.69 136.66 L 1004.21 136.95 Q 1005.15 137.48 1005.52 137.96 Q 1005.89 138.43 1005.89 139.1 Q 1005.89 140.04 1005.19 140.61 Q 1004.5 141.18 1003.35 141.18 M 1003.35 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 140.8 Q 1014.05 141.18 1013.07 141.18 Q 1011.35 141.18 1010.43 140.2 Q 1009.51 139.22 1009.51 137.39 Q 1009.51 135.59 1010.44 134.59 Q 1011.37 133.59 1013.06 133.59 Q 1014.16 133.59 1015.35 133.92 L 1015.35 134.87 Q 1013.86 134.36 1013.06 134.36 Q 1011.89 134.36 1011.24 135.16 Q 1010.6 135.95 1010.6 137.4 Q 1010.6 138.83 1011.29 139.62 Q 1011.98 140.41 1013.23 140.41 Q 1013.75 140.41 1014.34 140.23 L 1014.34 137.88 L 1015.36 137.88 M 1015.36 140.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1019.93 141 L 1019.93 133.77 L 1023.97 133.77 L 1023.97 134.54 L 1020.96 134.54 L 1020.96 136.96 L 1023.49 136.96 L 1023.49 137.72 L 1020.96 137.72 L 1020.96 141 M 1019.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 141 L 1027.18 133.77 L 1028.2 133.77 L 1030.44 139.69 L 1032.6 133.77 L 1033.49 133.77 L 1030.87 141 M 1029.91 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 141 L 1036.93 133.77 L 1039.33 133.77 Q 1040.41 133.77 1041.07 134.01 Q 1041.73 134.25 1042.22 134.82 Q 1042.98 135.73 1042.98 137.22 Q 1042.98 139.02 1042.03 140.01 Q 1041.08 141 1039.35 141 M 1036.93 141 M 1037.96 140.23 L 1039.27 140.23 Q 1040.68 140.23 1041.26 139.48 Q 1041.89 138.67 1041.89 137.31 Q 1041.89 136.04 1041.27 135.31 Q 1040.9 134.87 1040.38 134.7 Q 1039.85 134.54 1038.8 134.54 L 1037.96 134.54 M 1037.96 140.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 142.45 Q 1049.64 141.89 1048.49 141.13 Q 1048.03 141.18 1047.78 141.18 Q 1046.33 141.18 1045.42 140.13 Q 1044.51 139.07 1044.51 137.39 Q 1044.51 135.66 1045.43 134.63 Q 1046.35 133.59 1047.89 133.59 Q 1049.43 133.59 1050.35 134.63 Q 1051.27 135.66 1051.27 137.4 Q 1051.27 139.89 1049.42 140.85 Q 1050.66 141.4 1052 141.63 M 1051.35 142.45 M 1047.86 140.41 Q 1048.97 140.41 1049.57 139.62 Q 1050.18 138.82 1050.18 137.37 Q 1050.18 135.96 1049.57 135.16 Q 1048.97 134.36 1047.89 134.36 Q 1046.81 134.36 1046.2 135.16 Q 1045.6 135.96 1045.6 137.38 Q 1045.6 138.79 1046.2 139.6 Q 1046.8 140.41 1047.86 140.41 M 1047.86 140.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1057.35 141.18 Q 1056.62 141.18 1055.49 140.86 L 1055.49 139.85 Q 1056.71 140.41 1057.5 140.41 Q 1058.1 140.41 1058.47 140.1 Q 1058.84 139.78 1058.84 139.26 Q 1058.84 138.84 1058.6 138.54 Q 1058.35 138.24 1057.71 137.88 L 1057.21 137.59 Q 1056.28 137.06 1055.91 136.59 Q 1055.53 136.13 1055.53 135.51 Q 1055.53 134.67 1056.13 134.13 Q 1056.74 133.59 1057.68 133.59 Q 1058.51 133.59 1059.44 133.87 L 1059.44 134.81 Q 1058.3 134.36 1057.73 134.36 Q 1057.2 134.36 1056.86 134.64 Q 1056.51 134.93 1056.51 135.36 Q 1056.51 135.72 1056.76 136 Q 1057.02 136.27 1057.69 136.66 L 1058.21 136.95 Q 1059.15 137.48 1059.52 137.96 Q 1059.89 138.43 1059.89 139.1 Q 1059.89 140.04 1059.19 140.61 Q 1058.5 141.18 1057.35 141.18 M 1057.35 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 141 L 1063.93 133.77 L 1066.33 133.77 Q 1067.41 133.77 1068.07 134.01 Q 1068.73 134.25 1069.22 134.82 Q 1069.98 135.73 1069.98 137.22 Q 1069.98 139.02 1069.03 140.01 Q 1068.08 141 1066.35 141 M 1063.93 141 M 1064.96 140.23 L 1066.27 140.23 Q 1067.68 140.23 1068.26 139.48 Q 1068.89 138.67 1068.89 137.31 Q 1068.89 136.04 1068.27 135.31 Q 1067.9 134.87 1067.38 134.7 Q 1066.85 134.54 1065.8 134.54 L 1064.96 134.54 M 1064.96 140.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1073.93 141 L 1073.93 133.77 L 1077.97 133.77 L 1077.97 134.54 L 1074.96 134.54 L 1074.96 136.86 L 1077.48 136.86 L 1077.48 137.62 L 1074.96 137.62 L 1074.96 140.23 L 1078.18 140.23 L 1078.18 141 M 1073.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1084.35 141.18 Q 1083.62 141.18 1082.49 140.86 L 1082.49 139.85 Q 1083.71 140.41 1084.5 140.41 Q 1085.1 140.41 1085.47 140.1 Q 1085.84 139.78 1085.84 139.26 Q 1085.84 138.84 1085.6 138.54 Q 1085.35 138.24 1084.71 137.88 L 1084.21 137.59 Q 1083.28 137.06 1082.91 136.59 Q 1082.53 136.13 1082.53 135.51 Q 1082.53 134.67 1083.13 134.13 Q 1083.74 133.59 1084.68 133.59 Q 1085.51 133.59 1086.44 133.87 L 1086.44 134.81 Q 1085.3 134.36 1084.73 134.36 Q 1084.2 134.36 1083.86 134.64 Q 1083.51 134.93 1083.51 135.36 Q 1083.51 135.72 1083.76 136 Q 1084.02 136.27 1084.69 136.66 L 1085.21 136.95 Q 1086.15 137.48 1086.52 137.96 Q 1086.89 138.43 1086.89 139.1 Q 1086.89 140.04 1086.19 140.61 Q 1085.5 141.18 1084.35 141.18 M 1084.35 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 141 L 1091.93 133.77 L 1095.97 133.77 L 1095.97 134.54 L 1092.96 134.54 L 1092.96 136.96 L 1095.49 136.96 L 1095.49 137.72 L 1092.96 137.72 L 1092.96 141 M 1091.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 141 L 1100.93 133.77 L 1101.96 133.77 L 1101.96 140.23 L 1105.21 140.23 L 1105.21 141 M 1100.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 141 L 1108.93 133.77 L 1111.33 133.77 Q 1112.41 133.77 1113.07 134.01 Q 1113.73 134.25 1114.22 134.82 Q 1114.98 135.73 1114.98 137.22 Q 1114.98 139.02 1114.03 140.01 Q 1113.08 141 1111.35 141 M 1108.93 141 M 1109.96 140.23 L 1111.27 140.23 Q 1112.68 140.23 1113.26 139.48 Q 1113.89 138.67 1113.89 137.31 Q 1113.89 136.04 1113.27 135.31 Q 1112.9 134.87 1112.38 134.7 Q 1111.85 134.54 1110.8 134.54 L 1109.96 134.54 M 1109.96 140.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 141 L 1117.93 133.77 L 1120.33 133.77 Q 1121.41 133.77 1122.07 134.01 Q 1122.73 134.25 1123.22 134.82 Q 1123.98 135.73 1123.98 137.22 Q 1123.98 139.02 1123.03 140.01 Q 1122.08 141 1120.35 141 M 1117.93 141 M 1118.96 140.23 L 1120.27 140.23 Q 1121.68 140.23 1122.26 139.48 Q 1122.89 138.67 1122.89 137.31 Q 1122.89 136.04 1122.27 135.31 Q 1121.9 134.87 1121.38 134.7 Q 1120.85 134.54 1119.8 134.54 L 1118.96 134.54 M 1118.96 140.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1126.93 141 L 1126.93 133.77 L 1129.33 133.77 Q 1130.41 133.77 1131.07 134.01 Q 1131.73 134.25 1132.22 134.82 Q 1132.98 135.73 1132.98 137.22 Q 1132.98 139.02 1132.03 140.01 Q 1131.08 141 1129.35 141 M 1126.93 141 M 1127.96 140.23 L 1129.27 140.23 Q 1130.68 140.23 1131.26 139.48 Q 1131.89 138.67 1131.89 137.31 Q 1131.89 136.04 1131.27 135.31 Q 1130.9 134.87 1130.38 134.7 Q 1129.85 134.54 1128.8 134.54 L 1127.96 134.54 M 1127.96 140.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 142.45 Q 1139.64 141.89 1138.49 141.13 Q 1138.03 141.18 1137.78 141.18 Q 1136.33 141.18 1135.42 140.13 Q 1134.51 139.07 1134.51 137.39 Q 1134.51 135.66 1135.43 134.63 Q 1136.35 133.59 1137.89 133.59 Q 1139.43 133.59 1140.35 134.63 Q 1141.27 135.66 1141.27 137.4 Q 1141.27 139.89 1139.42 140.85 Q 1140.66 141.4 1142 141.63 M 1141.35 142.45 M 1137.86 140.41 Q 1138.97 140.41 1139.57 139.62 Q 1140.18 138.82 1140.18 137.37 Q 1140.18 135.96 1139.57 135.16 Q 1138.97 134.36 1137.89 134.36 Q 1136.81 134.36 1136.2 135.16 Q 1135.6 135.96 1135.6 137.38 Q 1135.6 138.79 1136.2 139.6 Q 1136.8 140.41 1137.86 140.41 M 1137.86 140.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1146.93 141 L 1146.93 133.77 L 1147.95 133.77 L 1147.95 141 M 1146.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1157.59 138.24 L 1156.36 135.12 L 1155.13 138.24 M 1157.59 138.24 M 1158.68 141 L 1157.89 139 L 1154.83 139 L 1154.04 141 L 1153.08 141 L 1155.95 133.77 L 1156.96 133.77 L 1159.79 141 M 1158.68 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1163.93 141 L 1163.93 133.77 L 1167.97 133.77 L 1167.97 134.54 L 1164.96 134.54 L 1164.96 136.86 L 1167.48 136.86 L 1167.48 137.62 L 1164.96 137.62 L 1164.96 140.23 L 1168.18 140.23 L 1168.18 141 M 1163.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 140.8 Q 1176.05 141.18 1175.07 141.18 Q 1173.35 141.18 1172.43 140.2 Q 1171.51 139.22 1171.51 137.39 Q 1171.51 135.59 1172.44 134.59 Q 1173.37 133.59 1175.06 133.59 Q 1176.16 133.59 1177.35 133.92 L 1177.35 134.87 Q 1175.86 134.36 1175.06 134.36 Q 1173.89 134.36 1173.24 135.16 Q 1172.6 135.95 1172.6 137.4 Q 1172.6 138.83 1173.29 139.62 Q 1173.98 140.41 1175.23 140.41 Q 1175.75 140.41 1176.34 140.23 L 1176.34 137.88 L 1177.36 137.88 M 1177.36 140.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1181.93 141 L 1181.93 133.77 L 1185.97 133.77 L 1185.97 134.54 L 1182.96 134.54 L 1182.96 136.96 L 1185.49 136.96 L 1185.49 137.72 L 1182.96 137.72 L 1182.96 141 M 1181.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 141 L 1189.18 133.77 L 1190.2 133.77 L 1192.44 139.69 L 1194.6 133.77 L 1195.49 133.77 L 1192.87 141 M 1191.91 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 141 L 1199.93 133.77 L 1200.96 133.77 L 1200.96 140.23 L 1204.21 140.23 L 1204.21 141 M 1199.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 141 L 1209.65 134.54 L 1207.09 134.54 L 1207.09 133.77 L 1213.24 133.77 L 1213.24 134.54 L 1210.68 134.54 L 1210.68 141 M 1209.65 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 141.18 Q 1218.34 141.18 1217.43 140.19 Q 1216.51 139.2 1216.51 137.39 Q 1216.51 135.58 1217.44 134.59 Q 1218.38 133.59 1220.08 133.59 Q 1221.05 133.59 1222.35 133.91 L 1222.35 134.87 Q 1220.87 134.36 1220.06 134.36 Q 1218.89 134.36 1218.24 135.16 Q 1217.6 135.95 1217.6 137.4 Q 1217.6 138.78 1218.29 139.58 Q 1218.97 140.38 1220.17 140.38 Q 1221.19 140.38 1222.36 139.75 L 1222.36 140.63 Q 1221.29 141.18 1220.03 141.18 M 1220.03 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1229.59 138.24 L 1228.36 135.12 L 1227.13 138.24 M 1229.59 138.24 M 1230.68 141 L 1229.89 139 L 1226.83 139 L 1226.04 141 L 1225.08 141 L 1227.95 133.77 L 1228.96 133.77 L 1231.79 141 M 1230.68 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 138.24 L 1237.36 135.12 L 1236.13 138.24 M 1238.59 138.24 M 1239.68 141 L 1238.89 139 L 1235.83 139 L 1235.04 141 L 1234.08 141 L 1236.95 133.77 L 1237.96 133.77 L 1240.79 141 M 1239.68 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 141 L 1245.5 137.98 L 1243.08 133.77 L 1244.25 133.77 L 1246.13 137.04 L 1248.15 133.77 L 1249.1 133.77 L 1246.52 137.96 L 1246.52 141 M 1245.5 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 141 L 1252.93 133.77 L 1254.9 133.77 Q 1256.21 133.77 1256.78 134.22 Q 1257.35 134.66 1257.35 135.67 Q 1257.35 136.82 1256.57 137.47 Q 1255.79 138.13 1254.4 138.13 L 1253.95 138.13 L 1253.95 141 M 1252.93 141 M 1253.95 137.35 L 1254.36 137.35 Q 1255.28 137.35 1255.77 136.93 Q 1256.27 136.51 1256.27 135.75 Q 1256.27 135.1 1255.88 134.82 Q 1255.49 134.54 1254.58 134.54 L 1253.95 134.54 M 1253.95 137.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1263.65 141 L 1263.65 134.54 L 1261.09 134.54 L 1261.09 133.77 L 1267.24 133.77 L 1267.24 134.54 L 1264.68 134.54 L 1264.68 141 M 1263.65 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1273.35 141.18 Q 1272.62 141.18 1271.49 140.86 L 1271.49 139.85 Q 1272.71 140.41 1273.5 140.41 Q 1274.1 140.41 1274.47 140.1 Q 1274.84 139.78 1274.84 139.26 Q 1274.84 138.84 1274.6 138.54 Q 1274.35 138.24 1273.71 137.88 L 1273.21 137.59 Q 1272.28 137.06 1271.91 136.59 Q 1271.53 136.13 1271.53 135.51 Q 1271.53 134.67 1272.13 134.13 Q 1272.74 133.59 1273.68 133.59 Q 1274.51 133.59 1275.44 133.87 L 1275.44 134.81 Q 1274.3 134.36 1273.73 134.36 Q 1273.2 134.36 1272.86 134.64 Q 1272.51 134.93 1272.51 135.36 Q 1272.51 135.72 1272.76 136 Q 1273.02 136.27 1273.69 136.66 L 1274.21 136.95 Q 1275.15 137.48 1275.52 137.96 Q 1275.89 138.43 1275.89 139.1 Q 1275.89 140.04 1275.19 140.61 Q 1274.5 141.18 1273.35 141.18 M 1273.35 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 141 L 1279.93 133.77 L 1282.33 133.77 Q 1283.41 133.77 1284.07 134.01 Q 1284.73 134.25 1285.22 134.82 Q 1285.98 135.73 1285.98 137.22 Q 1285.98 139.02 1285.03 140.01 Q 1284.08 141 1282.35 141 M 1279.93 141 M 1280.96 140.23 L 1282.27 140.23 Q 1283.68 140.23 1284.26 139.48 Q 1284.89 138.67 1284.89 137.31 Q 1284.89 136.04 1284.27 135.31 Q 1283.9 134.87 1283.38 134.7 Q 1282.85 134.54 1281.8 134.54 L 1280.96 134.54 M 1280.96 140.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 141 L 1288.18 133.77 L 1289.2 133.77 L 1291.44 139.69 L 1293.6 133.77 L 1294.49 133.77 L 1291.87 141 M 1290.91 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.65 141 L 1299.65 134.54 L 1297.09 134.54 L 1297.09 133.77 L 1303.24 133.77 L 1303.24 134.54 L 1300.68 134.54 L 1300.68 141 M 1299.65 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 141 L 1308.93 133.77 L 1309.95 133.77 L 1309.95 141 M 1308.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 141 L 1316.93 133.77 L 1320.97 133.77 L 1320.97 134.54 L 1317.96 134.54 L 1317.96 136.86 L 1320.48 136.86 L 1320.48 137.62 L 1317.96 137.62 L 1317.96 140.23 L 1321.18 140.23 L 1321.18 141 M 1316.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 141 L 1326.65 134.54 L 1324.09 134.54 L 1324.09 133.77 L 1330.24 133.77 L 1330.24 134.54 L 1327.68 134.54 L 1327.68 141 M 1326.65 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 141 L 1333.93 133.77 L 1334.96 133.77 L 1334.96 136.82 L 1338.4 136.82 L 1338.4 133.77 L 1339.42 133.77 L 1339.42 141 L 1338.4 141 L 1338.4 137.59 L 1334.96 137.59 L 1334.96 141 M 1333.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 141 L 1342.93 133.77 L 1343.89 133.77 L 1343.89 137.33 L 1346.82 133.77 L 1347.85 133.77 L 1345.02 137.22 L 1348.35 141 L 1347.05 141 L 1343.89 137.34 L 1343.89 141 M 1342.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 141 L 1352.93 133.77 L 1356.97 133.77 L 1356.97 134.54 L 1353.96 134.54 L 1353.96 136.86 L 1356.48 136.86 L 1356.48 137.62 L 1353.96 137.62 L 1353.96 140.23 L 1357.18 140.23 L 1357.18 141 M 1352.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1361.93 141 L 1361.93 133.77 L 1365.97 133.77 L 1365.97 134.54 L 1362.96 134.54 L 1362.96 136.86 L 1365.48 136.86 L 1365.48 137.62 L 1362.96 137.62 L 1362.96 140.23 L 1366.18 140.23 L 1366.18 141 M 1361.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1370.93 141 L 1370.93 133.77 L 1374.97 133.77 L 1374.97 134.54 L 1371.96 134.54 L 1371.96 136.86 L 1374.48 136.86 L 1374.48 137.62 L 1371.96 137.62 L 1371.96 140.23 L 1375.18 140.23 L 1375.18 141 M 1370.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1379.93 141 L 1379.93 133.77 L 1380.96 133.77 L 1380.96 140.23 L 1384.21 140.23 L 1384.21 141 M 1379.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.91 141 L 1387.18 133.77 L 1388.2 133.77 L 1390.44 139.69 L 1392.6 133.77 L 1393.49 133.77 L 1390.87 141 M 1389.91 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1396.72 138.47 L 1396.72 137.75 L 1401.06 137.75 L 1401.06 138.47 M 1396.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 138.47 L 1405.72 137.75 L 1410.06 137.75 L 1410.06 138.47 M 1405.72 138.47"/></g><rect x="0" y="143" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="143" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="143" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="143" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="143" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="143" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="594" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="143" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="143" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="143" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="143" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="639" y="143" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="143" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="143" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="143" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="143" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="143" width="27" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="143" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="143" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="143" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="143" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="143" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="801" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="143" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="143" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="143" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="143" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="143" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="143" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="143" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="143" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="143" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="143" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="143" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="143" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="143" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="143" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="143" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="143" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="143" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="143" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="143" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="143" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="143" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="143" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="143" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="143" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="143" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 154 L 0.93 146.77 L 2.35 146.77 L 4.36 152.36 L 6.42 146.77 L 7.69 146.77 L 7.69 154 L 6.73 154 L 6.73 148.12 L 4.74 153.52 L 3.75 153.52 L 1.81 148.11 L 1.81 154 M 0.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 151.24 L 13.36 148.12 L 12.13 151.24 M 14.59 151.24 M 15.68 154 L 14.89 152 L 11.83 152 L 11.04 154 L 10.08 154 L 12.95 146.77 L 13.96 146.77 L 16.79 154 M 15.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 22.35 154.18 Q 21.62 154.18 20.49 153.86 L 20.49 152.85 Q 21.71 153.41 22.5 153.41 Q 23.1 153.41 23.47 153.1 Q 23.84 152.78 23.84 152.26 Q 23.84 151.84 23.6 151.54 Q 23.35 151.24 22.71 150.88 L 22.21 150.59 Q 21.28 150.06 20.91 149.59 Q 20.53 149.13 20.53 148.51 Q 20.53 147.67 21.13 147.13 Q 21.74 146.59 22.68 146.59 Q 23.51 146.59 24.44 146.87 L 24.44 147.81 Q 23.3 147.36 22.73 147.36 Q 22.2 147.36 21.86 147.64 Q 21.51 147.93 21.51 148.36 Q 21.51 148.72 21.76 149 Q 22.02 149.27 22.69 149.66 L 23.21 149.95 Q 24.15 150.48 24.52 150.96 Q 24.89 151.43 24.89 152.1 Q 24.89 153.04 24.19 153.61 Q 23.5 154.18 22.35 154.18 M 22.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 30.65 154 L 30.65 147.54 L 28.09 147.54 L 28.09 146.77 L 34.24 146.77 L 34.24 147.54 L 31.68 147.54 L 31.68 154 M 30.65 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 151.47 L 37.72 150.75 L 42.06 150.75 L 42.06 151.47 M 37.72 151.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 151.47 L 46.72 150.75 L 51.06 150.75 L 51.06 151.47 M 46.72 151.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 151.47 L 55.72 150.75 L 60.06 150.75 L 60.06 151.47 M 55.72 151.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.72 151.47 L 64.72 150.75 L 69.06 150.75 L 69.06 151.47 M 64.72 151.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 77.59 151.24 L 76.36 148.12 L 75.13 151.24 M 77.59 151.24 M 78.68 154 L 77.89 152 L 74.83 152 L 74.04 154 L 73.08 154 L 75.95 146.77 L 76.96 146.77 L 79.79 154 M 78.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 83.93 154 L 83.93 146.77 L 84.96 146.77 L 84.96 153.23 L 88.21 153.23 L 88.21 154 M 83.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 94.35 154.18 Q 93.62 154.18 92.49 153.86 L 92.49 152.85 Q 93.71 153.41 94.5 153.41 Q 95.1 153.41 95.47 153.1 Q 95.84 152.78 95.84 152.26 Q 95.84 151.84 95.6 151.54 Q 95.35 151.24 94.71 150.88 L 94.21 150.59 Q 93.28 150.06 92.91 149.59 Q 92.53 149.13 92.53 148.51 Q 92.53 147.67 93.13 147.13 Q 93.74 146.59 94.68 146.59 Q 95.51 146.59 96.44 146.87 L 96.44 147.81 Q 95.3 147.36 94.73 147.36 Q 94.2 147.36 93.86 147.64 Q 93.51 147.93 93.51 148.36 Q 93.51 148.72 93.76 149 Q 94.02 149.27 94.69 149.66 L 95.21 149.95 Q 96.15 150.48 96.52 150.96 Q 96.89 151.43 96.89 152.1 Q 96.89 153.04 96.19 153.61 Q 95.5 154.18 94.35 154.18 M 94.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 103.35 154.18 Q 102.62 154.18 101.49 153.86 L 101.49 152.85 Q 102.71 153.41 103.5 153.41 Q 104.1 153.41 104.47 153.1 Q 104.84 152.78 104.84 152.26 Q 104.84 151.84 104.6 151.54 Q 104.35 151.24 103.71 150.88 L 103.21 150.59 Q 102.28 150.06 101.91 149.59 Q 101.53 149.13 101.53 148.51 Q 101.53 147.67 102.13 147.13 Q 102.74 146.59 103.68 146.59 Q 104.51 146.59 105.44 146.87 L 105.44 147.81 Q 104.3 147.36 103.73 147.36 Q 103.2 147.36 102.86 147.64 Q 102.51 147.93 102.51 148.36 Q 102.51 148.72 102.76 149 Q 103.02 149.27 103.69 149.66 L 104.21 149.95 Q 105.15 150.48 105.52 150.96 Q 105.89 151.43 105.89 152.1 Q 105.89 153.04 105.19 153.61 Q 104.5 154.18 103.35 154.18 M 103.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 113.59 151.24 L 112.36 148.12 L 111.13 151.24 M 113.59 151.24 M 114.68 154 L 113.89 152 L 110.83 152 L 110.04 154 L 109.08 154 L 111.95 146.77 L 112.96 146.77 L 115.79 154 M 114.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 120.93 154 L 120.93 146.77 L 121.95 146.77 L 121.95 154 M 120.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 129.91 154 L 127.18 146.77 L 128.2 146.77 L 130.44 152.69 L 132.6 146.77 L 133.49 146.77 L 130.87 154 M 129.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 139.35 154.18 Q 138.62 154.18 137.49 153.86 L 137.49 152.85 Q 138.71 153.41 139.5 153.41 Q 140.1 153.41 140.47 153.1 Q 140.84 152.78 140.84 152.26 Q 140.84 151.84 140.6 151.54 Q 140.35 151.24 139.71 150.88 L 139.21 150.59 Q 138.28 150.06 137.91 149.59 Q 137.53 149.13 137.53 148.51 Q 137.53 147.67 138.13 147.13 Q 138.74 146.59 139.68 146.59 Q 140.51 146.59 141.44 146.87 L 141.44 147.81 Q 140.3 147.36 139.73 147.36 Q 139.2 147.36 138.86 147.64 Q 138.51 147.93 138.51 148.36 Q 138.51 148.72 138.76 149 Q 139.02 149.27 139.69 149.66 L 140.21 149.95 Q 141.15 150.48 141.52 150.96 Q 141.89 151.43 141.89 152.1 Q 141.89 153.04 141.19 153.61 Q 140.5 154.18 139.35 154.18 M 139.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 147.65 154 L 147.65 147.54 L 145.09 147.54 L 145.09 146.77 L 151.24 146.77 L 151.24 147.54 L 148.68 147.54 L 148.68 154 M 147.65 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 157.35 154.18 Q 156.62 154.18 155.49 153.86 L 155.49 152.85 Q 156.71 153.41 157.5 153.41 Q 158.1 153.41 158.47 153.1 Q 158.84 152.78 158.84 152.26 Q 158.84 151.84 158.6 151.54 Q 158.35 151.24 157.71 150.88 L 157.21 150.59 Q 156.28 150.06 155.91 149.59 Q 155.53 149.13 155.53 148.51 Q 155.53 147.67 156.13 147.13 Q 156.74 146.59 157.68 146.59 Q 158.51 146.59 159.44 146.87 L 159.44 147.81 Q 158.3 147.36 157.73 147.36 Q 157.2 147.36 156.86 147.64 Q 156.51 147.93 156.51 148.36 Q 156.51 148.72 156.76 149 Q 157.02 149.27 157.69 149.66 L 158.21 149.95 Q 159.15 150.48 159.52 150.96 Q 159.89 151.43 159.89 152.1 Q 159.89 153.04 159.19 153.61 Q 158.5 154.18 157.35 154.18 M 157.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 164.93 154 L 164.93 146.77 L 168.97 146.77 L 168.97 147.54 L 165.96 147.54 L 165.96 149.96 L 168.49 149.96 L 168.49 150.72 L 165.96 150.72 L 165.96 154 M 164.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 173.93 154 L 173.93 146.77 L 174.96 146.77 L 174.96 153.23 L 178.21 153.23 L 178.21 154 M 173.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 154 L 181.93 146.77 L 184.12 146.77 Q 185.16 146.77 185.71 147.23 Q 186.27 147.69 186.27 148.57 Q 186.27 150.01 184.81 150.62 L 187.22 154 L 185.96 154 L 183.91 150.94 L 182.95 150.94 L 182.95 154 M 181.93 154 M 182.95 150.18 L 183.28 150.18 Q 185.21 150.18 185.21 148.66 Q 185.21 147.54 183.59 147.54 L 182.95 147.54 M 182.95 150.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.93 154 L 190.93 146.77 L 193.12 146.77 Q 194.16 146.77 194.71 147.23 Q 195.27 147.69 195.27 148.57 Q 195.27 150.01 193.81 150.62 L 196.22 154 L 194.96 154 L 192.91 150.94 L 191.95 150.94 L 191.95 154 M 190.93 154 M 191.95 150.18 L 192.28 150.18 Q 194.21 150.18 194.21 148.66 Q 194.21 147.54 192.59 147.54 L 191.95 147.54 M 191.95 150.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 205.35 155.45 Q 203.64 154.89 202.49 154.13 Q 202.03 154.18 201.78 154.18 Q 200.33 154.18 199.42 153.13 Q 198.51 152.07 198.51 150.39 Q 198.51 148.66 199.43 147.63 Q 200.35 146.59 201.89 146.59 Q 203.43 146.59 204.35 147.63 Q 205.27 148.66 205.27 150.4 Q 205.27 152.89 203.42 153.85 Q 204.66 154.4 206 154.63 M 205.35 155.45 M 201.86 153.41 Q 202.97 153.41 203.57 152.62 Q 204.18 151.82 204.18 150.37 Q 204.18 148.96 203.57 148.16 Q 202.97 147.36 201.89 147.36 Q 200.81 147.36 200.2 148.16 Q 199.6 148.96 199.6 150.38 Q 199.6 151.79 200.2 152.6 Q 200.8 153.41 201.86 153.41 M 201.86 153.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 214.35 155.45 Q 212.64 154.89 211.49 154.13 Q 211.03 154.18 210.78 154.18 Q 209.33 154.18 208.42 153.13 Q 207.51 152.07 207.51 150.39 Q 207.51 148.66 208.43 147.63 Q 209.35 146.59 210.89 146.59 Q 212.43 146.59 213.35 147.63 Q 214.27 148.66 214.27 150.4 Q 214.27 152.89 212.42 153.85 Q 213.66 154.4 215 154.63 M 214.35 155.45 M 210.86 153.41 Q 211.97 153.41 212.57 152.62 Q 213.18 151.82 213.18 150.37 Q 213.18 148.96 212.57 148.16 Q 211.97 147.36 210.89 147.36 Q 209.81 147.36 209.2 148.16 Q 208.6 148.96 208.6 150.38 Q 208.6 151.79 209.2 152.6 Q 209.8 153.41 210.86 153.41 M 210.86 153.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 219.65 154 L 219.65 147.54 L 217.09 147.54 L 217.09 146.77 L 223.24 146.77 L 223.24 147.54 L 220.68 147.54 L 220.68 154 M 219.65 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.93 154 L 226.93 146.77 L 228.9 146.77 Q 230.21 146.77 230.78 147.22 Q 231.35 147.66 231.35 148.67 Q 231.35 149.82 230.57 150.47 Q 229.79 151.13 228.4 151.13 L 227.95 151.13 L 227.95 154 M 226.93 154 M 227.95 150.35 L 228.36 150.35 Q 229.28 150.35 229.77 149.93 Q 230.27 149.51 230.27 148.75 Q 230.27 148.1 229.88 147.82 Q 229.49 147.54 228.58 147.54 L 227.95 147.54 M 227.95 150.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 237.93 154 L 237.93 146.77 L 238.95 146.77 L 238.95 154 M 237.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 247.35 154.18 Q 246.62 154.18 245.49 153.86 L 245.49 152.85 Q 246.71 153.41 247.5 153.41 Q 248.1 153.41 248.47 153.1 Q 248.84 152.78 248.84 152.26 Q 248.84 151.84 248.6 151.54 Q 248.35 151.24 247.71 150.88 L 247.21 150.59 Q 246.28 150.06 245.91 149.59 Q 245.53 149.13 245.53 148.51 Q 245.53 147.67 246.13 147.13 Q 246.74 146.59 247.68 146.59 Q 248.51 146.59 249.44 146.87 L 249.44 147.81 Q 248.3 147.36 247.73 147.36 Q 247.2 147.36 246.86 147.64 Q 246.51 147.93 246.51 148.36 Q 246.51 148.72 246.76 149 Q 247.02 149.27 247.69 149.66 L 248.21 149.95 Q 249.15 150.48 249.52 150.96 Q 249.89 151.43 249.89 152.1 Q 249.89 153.04 249.19 153.61 Q 248.5 154.18 247.35 154.18 M 247.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 254.93 154 L 254.93 146.77 L 255.96 146.77 L 255.96 153.23 L 259.21 153.23 L 259.21 154 M 254.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.93 154 L 262.93 146.77 L 265.12 146.77 Q 266.16 146.77 266.71 147.23 Q 267.27 147.69 267.27 148.57 Q 267.27 150.01 265.81 150.62 L 268.22 154 L 266.96 154 L 264.91 150.94 L 263.95 150.94 L 263.95 154 M 262.93 154 M 263.95 150.18 L 264.28 150.18 Q 266.21 150.18 266.21 148.66 Q 266.21 147.54 264.59 147.54 L 263.95 147.54 M 263.95 150.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 274.35 154.18 Q 273.62 154.18 272.49 153.86 L 272.49 152.85 Q 273.71 153.41 274.5 153.41 Q 275.1 153.41 275.47 153.1 Q 275.84 152.78 275.84 152.26 Q 275.84 151.84 275.6 151.54 Q 275.35 151.24 274.71 150.88 L 274.21 150.59 Q 273.28 150.06 272.91 149.59 Q 272.53 149.13 272.53 148.51 Q 272.53 147.67 273.13 147.13 Q 273.74 146.59 274.68 146.59 Q 275.51 146.59 276.44 146.87 L 276.44 147.81 Q 275.3 147.36 274.73 147.36 Q 274.2 147.36 273.86 147.64 Q 273.51 147.93 273.51 148.36 Q 273.51 148.72 273.76 149 Q 274.02 149.27 274.69 149.66 L 275.21 149.95 Q 276.15 150.48 276.52 150.96 Q 276.89 151.43 276.89 152.1 Q 276.89 153.04 276.19 153.61 Q 275.5 154.18 274.35 154.18 M 274.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 281.93 154 L 281.93 146.77 L 282.96 146.77 L 282.96 153.23 L 286.21 153.23 L 286.21 154 M 281.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 289.93 154 L 289.93 146.77 L 291.9 146.77 Q 293.21 146.77 293.78 147.22 Q 294.35 147.66 294.35 148.67 Q 294.35 149.82 293.57 150.47 Q 292.79 151.13 291.4 151.13 L 290.95 151.13 L 290.95 154 M 289.93 154 M 290.95 150.35 L 291.36 150.35 Q 292.28 150.35 292.77 149.93 Q 293.27 149.51 293.27 148.75 Q 293.27 148.1 292.88 147.82 Q 292.49 147.54 291.58 147.54 L 290.95 147.54 M 290.95 150.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 299.93 154 L 299.93 146.77 L 303.97 146.77 L 303.97 147.54 L 300.96 147.54 L 300.96 149.96 L 303.49 149.96 L 303.49 150.72 L 300.96 150.72 L 300.96 154 M 299.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 311.59 151.24 L 310.36 148.12 L 309.13 151.24 M 311.59 151.24 M 312.68 154 L 311.89 152 L 308.83 152 L 308.04 154 L 307.08 154 L 309.95 146.77 L 310.96 146.77 L 313.79 154 M 312.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 316.93 154 L 316.93 146.77 L 317.94 146.77 L 321.58 152.35 L 321.58 146.77 L 322.46 146.77 L 322.46 154 L 321.45 154 L 317.81 148.42 L 317.81 154 M 316.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 327.65 154 L 327.65 147.54 L 325.09 147.54 L 325.09 146.77 L 331.24 146.77 L 331.24 147.54 L 328.68 147.54 L 328.68 154 M 327.65 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 340.35 155.45 Q 338.64 154.89 337.49 154.13 Q 337.03 154.18 336.78 154.18 Q 335.33 154.18 334.42 153.13 Q 333.51 152.07 333.51 150.39 Q 333.51 148.66 334.43 147.63 Q 335.35 146.59 336.89 146.59 Q 338.43 146.59 339.35 147.63 Q 340.27 148.66 340.27 150.4 Q 340.27 152.89 338.42 153.85 Q 339.66 154.4 341 154.63 M 340.35 155.45 M 336.86 153.41 Q 337.97 153.41 338.57 152.62 Q 339.18 151.82 339.18 150.37 Q 339.18 148.96 338.57 148.16 Q 337.97 147.36 336.89 147.36 Q 335.81 147.36 335.2 148.16 Q 334.6 148.96 334.6 150.38 Q 334.6 151.79 335.2 152.6 Q 335.8 153.41 336.86 153.41 M 336.86 153.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 151.47 L 343.72 150.75 L 348.06 150.75 L 348.06 151.47 M 343.72 151.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 151.47 L 352.72 150.75 L 357.06 150.75 L 357.06 151.47 M 352.72 151.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 364.35 154.18 Q 363.62 154.18 362.49 153.86 L 362.49 152.85 Q 363.71 153.41 364.5 153.41 Q 365.1 153.41 365.47 153.1 Q 365.84 152.78 365.84 152.26 Q 365.84 151.84 365.6 151.54 Q 365.35 151.24 364.71 150.88 L 364.21 150.59 Q 363.28 150.06 362.91 149.59 Q 362.53 149.13 362.53 148.51 Q 362.53 147.67 363.13 147.13 Q 363.74 146.59 364.68 146.59 Q 365.51 146.59 366.44 146.87 L 366.44 147.81 Q 365.3 147.36 364.73 147.36 Q 364.2 147.36 363.86 147.64 Q 363.51 147.93 363.51 148.36 Q 363.51 148.72 363.76 149 Q 364.02 149.27 364.69 149.66 L 365.21 149.95 Q 366.15 150.48 366.52 150.96 Q 366.89 151.43 366.89 152.1 Q 366.89 153.04 366.19 153.61 Q 365.5 154.18 364.35 154.18 M 364.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 371.93 154 L 371.93 146.77 L 372.96 146.77 L 372.96 153.23 L 376.21 153.23 L 376.21 154 M 371.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 380.93 154 L 380.93 146.77 L 384.97 146.77 L 384.97 147.54 L 381.96 147.54 L 381.96 149.96 L 384.49 149.96 L 384.49 150.72 L 381.96 150.72 L 381.96 154 M 380.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 394.36 153.8 Q 393.05 154.18 392.07 154.18 Q 390.35 154.18 389.43 153.2 Q 388.51 152.22 388.51 150.39 Q 388.51 148.59 389.44 147.59 Q 390.37 146.59 392.06 146.59 Q 393.16 146.59 394.35 146.92 L 394.35 147.87 Q 392.86 147.36 392.06 147.36 Q 390.89 147.36 390.24 148.16 Q 389.6 148.95 389.6 150.4 Q 389.6 151.83 390.29 152.62 Q 390.98 153.41 392.23 153.41 Q 392.75 153.41 393.34 153.23 L 393.34 150.88 L 394.36 150.88 M 394.36 153.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 398.93 154 L 398.93 146.77 L 399.96 146.77 L 399.96 153.23 L 403.21 153.23 L 403.21 154 M 398.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.93 154 L 406.93 146.77 L 407.89 146.77 L 407.89 150.33 L 410.82 146.77 L 411.85 146.77 L 409.02 150.22 L 412.35 154 L 411.05 154 L 407.89 150.34 L 407.89 154 M 406.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 418.35 154.18 Q 417.62 154.18 416.49 153.86 L 416.49 152.85 Q 417.71 153.41 418.5 153.41 Q 419.1 153.41 419.47 153.1 Q 419.84 152.78 419.84 152.26 Q 419.84 151.84 419.6 151.54 Q 419.35 151.24 418.71 150.88 L 418.21 150.59 Q 417.28 150.06 416.91 149.59 Q 416.53 149.13 416.53 148.51 Q 416.53 147.67 417.13 147.13 Q 417.74 146.59 418.68 146.59 Q 419.51 146.59 420.44 146.87 L 420.44 147.81 Q 419.3 147.36 418.73 147.36 Q 418.2 147.36 417.86 147.64 Q 417.51 147.93 417.51 148.36 Q 417.51 148.72 417.76 149 Q 418.02 149.27 418.69 149.66 L 419.21 149.95 Q 420.15 150.48 420.52 150.96 Q 420.89 151.43 420.89 152.1 Q 420.89 153.04 420.19 153.61 Q 419.5 154.18 418.35 154.18 M 418.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 151.47 L 424.72 150.75 L 429.06 150.75 L 429.06 151.47 M 424.72 151.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 436.35 154.18 Q 435.62 154.18 434.49 153.86 L 434.49 152.85 Q 435.71 153.41 436.5 153.41 Q 437.1 153.41 437.47 153.1 Q 437.84 152.78 437.84 152.26 Q 437.84 151.84 437.6 151.54 Q 437.35 151.24 436.71 150.88 L 436.21 150.59 Q 435.28 150.06 434.91 149.59 Q 434.53 149.13 434.53 148.51 Q 434.53 147.67 435.13 147.13 Q 435.74 146.59 436.68 146.59 Q 437.51 146.59 438.44 146.87 L 438.44 147.81 Q 437.3 147.36 436.73 147.36 Q 436.2 147.36 435.86 147.64 Q 435.51 147.93 435.51 148.36 Q 435.51 148.72 435.76 149 Q 436.02 149.27 436.69 149.66 L 437.21 149.95 Q 438.15 150.48 438.52 150.96 Q 438.89 151.43 438.89 152.1 Q 438.89 153.04 438.19 153.61 Q 437.5 154.18 436.35 154.18 M 436.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 444.65 154 L 444.65 147.54 L 442.09 147.54 L 442.09 146.77 L 448.24 146.77 L 448.24 147.54 L 445.68 147.54 L 445.68 154 M 444.65 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 455.59 151.24 L 454.36 148.12 L 453.13 151.24 M 455.59 151.24 M 456.68 154 L 455.89 152 L 452.83 152 L 452.04 154 L 451.08 154 L 453.95 146.77 L 454.96 146.77 L 457.79 154 M 456.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.93 154 L 460.93 146.77 L 463.12 146.77 Q 464.16 146.77 464.71 147.23 Q 465.27 147.69 465.27 148.57 Q 465.27 150.01 463.81 150.62 L 466.22 154 L 464.96 154 L 462.91 150.94 L 461.95 150.94 L 461.95 154 M 460.93 154 M 461.95 150.18 L 462.28 150.18 Q 464.21 150.18 464.21 148.66 Q 464.21 147.54 462.59 147.54 L 461.95 147.54 M 461.95 150.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 475.36 153.8 Q 474.05 154.18 473.07 154.18 Q 471.35 154.18 470.43 153.2 Q 469.51 152.22 469.51 150.39 Q 469.51 148.59 470.44 147.59 Q 471.37 146.59 473.06 146.59 Q 474.16 146.59 475.35 146.92 L 475.35 147.87 Q 473.86 147.36 473.06 147.36 Q 471.89 147.36 471.24 148.16 Q 470.6 148.95 470.6 150.4 Q 470.6 151.83 471.29 152.62 Q 471.98 153.41 473.23 153.41 Q 473.75 153.41 474.34 153.23 L 474.34 150.88 L 475.36 150.88 M 475.36 153.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 484.36 153.8 Q 483.05 154.18 482.07 154.18 Q 480.35 154.18 479.43 153.2 Q 478.51 152.22 478.51 150.39 Q 478.51 148.59 479.44 147.59 Q 480.37 146.59 482.06 146.59 Q 483.16 146.59 484.35 146.92 L 484.35 147.87 Q 482.86 147.36 482.06 147.36 Q 480.89 147.36 480.24 148.16 Q 479.6 148.95 479.6 150.4 Q 479.6 151.83 480.29 152.62 Q 480.98 153.41 482.23 153.41 Q 482.75 153.41 483.34 153.23 L 483.34 150.88 L 484.36 150.88 M 484.36 153.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 487.93 154 L 487.93 146.77 L 490.12 146.77 Q 491.16 146.77 491.71 147.23 Q 492.27 147.69 492.27 148.57 Q 492.27 150.01 490.81 150.62 L 493.22 154 L 491.96 154 L 489.91 150.94 L 488.95 150.94 L 488.95 154 M 487.93 154 M 488.95 150.18 L 489.28 150.18 Q 491.21 150.18 491.21 148.66 Q 491.21 147.54 489.59 147.54 L 488.95 147.54 M 488.95 150.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 498.91 154 L 496.18 146.77 L 497.2 146.77 L 499.44 152.69 L 501.6 146.77 L 502.49 146.77 L 499.87 154 M 498.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 507.65 154 L 507.65 147.54 L 505.09 147.54 L 505.09 146.77 L 511.24 146.77 L 511.24 147.54 L 508.68 147.54 L 508.68 154 M 507.65 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 518.59 151.24 L 517.36 148.12 L 516.13 151.24 M 518.59 151.24 M 519.68 154 L 518.89 152 L 515.83 152 L 515.04 154 L 514.08 154 L 516.95 146.77 L 517.96 146.77 L 520.79 154 M 519.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 522.93 154 L 522.93 146.77 L 524.35 146.77 L 526.36 152.36 L 528.42 146.77 L 529.69 146.77 L 529.69 154 L 528.73 154 L 528.73 148.12 L 526.74 153.52 L 525.75 153.52 L 523.81 148.11 L 523.81 154 M 522.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 151.24 L 535.36 148.12 L 534.13 151.24 M 536.59 151.24 M 537.68 154 L 536.89 152 L 533.83 152 L 533.04 154 L 532.08 154 L 534.95 146.77 L 535.96 146.77 L 538.79 154 M 537.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 543.65 154 L 543.65 147.54 L 541.09 147.54 L 541.09 146.77 L 547.24 146.77 L 547.24 147.54 L 544.68 147.54 L 544.68 154 M 543.65 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 154 L 552.5 150.98 L 550.08 146.77 L 551.25 146.77 L 553.13 150.04 L 555.15 146.77 L 556.1 146.77 L 553.52 150.96 L 553.52 154 M 552.5 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 154 L 559.93 146.77 L 560.89 146.77 L 560.89 150.33 L 563.82 146.77 L 564.85 146.77 L 562.02 150.22 L 565.35 154 L 564.05 154 L 560.89 150.34 L 560.89 154 M 559.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 154 L 568.18 146.77 L 569.2 146.77 L 571.44 152.69 L 573.6 146.77 L 574.49 146.77 L 571.87 154 M 570.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 154 L 577.93 146.77 L 578.89 146.77 L 578.89 150.33 L 581.82 146.77 L 582.85 146.77 L 580.02 150.22 L 583.35 154 L 582.05 154 L 578.89 150.34 L 578.89 154 M 577.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 154 L 587.93 146.77 L 591.97 146.77 L 591.97 147.54 L 588.96 147.54 L 588.96 149.96 L 591.49 149.96 L 591.49 150.72 L 588.96 150.72 L 588.96 154 M 587.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 154 L 597.93 146.77 L 598.95 146.77 L 598.95 154 M 597.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 154 L 606.65 147.54 L 604.09 147.54 L 604.09 146.77 L 610.24 146.77 L 610.24 147.54 L 607.68 147.54 L 607.68 154 M 606.65 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 154 L 613.93 146.77 L 615.9 146.77 Q 617.21 146.77 617.78 147.22 Q 618.35 147.66 618.35 148.67 Q 618.35 149.82 617.57 150.47 Q 616.79 151.13 615.4 151.13 L 614.95 151.13 L 614.95 154 M 613.93 154 M 614.95 150.35 L 615.36 150.35 Q 616.28 150.35 616.77 149.93 Q 617.27 149.51 617.27 148.75 Q 617.27 148.1 616.88 147.82 Q 616.49 147.54 615.58 147.54 L 614.95 147.54 M 614.95 150.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 623.93 154 L 623.93 146.77 L 627.97 146.77 L 627.97 147.54 L 624.96 147.54 L 624.96 149.86 L 627.48 149.86 L 627.48 150.62 L 624.96 150.62 L 624.96 153.23 L 628.18 153.23 L 628.18 154 M 623.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 153.8 Q 636.05 154.18 635.07 154.18 Q 633.35 154.18 632.43 153.2 Q 631.51 152.22 631.51 150.39 Q 631.51 148.59 632.44 147.59 Q 633.37 146.59 635.06 146.59 Q 636.16 146.59 637.35 146.92 L 637.35 147.87 Q 635.86 147.36 635.06 147.36 Q 633.89 147.36 633.24 148.16 Q 632.6 148.95 632.6 150.4 Q 632.6 151.83 633.29 152.62 Q 633.98 153.41 635.23 153.41 Q 635.75 153.41 636.34 153.23 L 636.34 150.88 L 637.36 150.88 M 637.36 153.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 641.93 154 L 641.93 146.77 L 645.97 146.77 L 645.97 147.54 L 642.96 147.54 L 642.96 149.86 L 645.48 149.86 L 645.48 150.62 L 642.96 150.62 L 642.96 153.23 L 646.18 153.23 L 646.18 154 M 641.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 655.35 155.45 Q 653.64 154.89 652.49 154.13 Q 652.03 154.18 651.78 154.18 Q 650.33 154.18 649.42 153.13 Q 648.51 152.07 648.51 150.39 Q 648.51 148.66 649.43 147.63 Q 650.35 146.59 651.89 146.59 Q 653.43 146.59 654.35 147.63 Q 655.27 148.66 655.27 150.4 Q 655.27 152.89 653.42 153.85 Q 654.66 154.4 656 154.63 M 655.35 155.45 M 651.86 153.41 Q 652.97 153.41 653.57 152.62 Q 654.18 151.82 654.18 150.37 Q 654.18 148.96 653.57 148.16 Q 652.97 147.36 651.89 147.36 Q 650.81 147.36 650.2 148.16 Q 649.6 148.96 649.6 150.38 Q 649.6 151.79 650.2 152.6 Q 650.8 153.41 651.86 153.41 M 651.86 153.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 154 L 659.93 146.77 L 663.97 146.77 L 663.97 147.54 L 660.96 147.54 L 660.96 149.86 L 663.48 149.86 L 663.48 150.62 L 660.96 150.62 L 660.96 153.23 L 664.18 153.23 L 664.18 154 M 659.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 669.91 154 L 667.18 146.77 L 668.2 146.77 L 670.44 152.69 L 672.6 146.77 L 673.49 146.77 L 670.87 154 M 669.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 677.93 154 L 677.93 146.77 L 681.97 146.77 L 681.97 147.54 L 678.96 147.54 L 678.96 149.86 L 681.48 149.86 L 681.48 150.62 L 678.96 150.62 L 678.96 153.23 L 682.18 153.23 L 682.18 154 M 677.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 154.18 Q 687.34 154.18 686.43 153.19 Q 685.51 152.2 685.51 150.39 Q 685.51 148.58 686.44 147.59 Q 687.38 146.59 689.08 146.59 Q 690.05 146.59 691.35 146.91 L 691.35 147.87 Q 689.87 147.36 689.06 147.36 Q 687.89 147.36 687.24 148.16 Q 686.6 148.95 686.6 150.4 Q 686.6 151.78 687.29 152.58 Q 687.97 153.38 689.17 153.38 Q 690.19 153.38 691.36 152.75 L 691.36 153.63 Q 690.29 154.18 689.03 154.18 M 689.03 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 695.93 154 L 695.93 146.77 L 699.97 146.77 L 699.97 147.54 L 696.96 147.54 L 696.96 149.86 L 699.48 149.86 L 699.48 150.62 L 696.96 150.62 L 696.96 153.23 L 700.18 153.23 L 700.18 154 M 695.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 704.93 154 L 704.93 146.77 L 708.97 146.77 L 708.97 147.54 L 705.96 147.54 L 705.96 149.86 L 708.48 149.86 L 708.48 150.62 L 705.96 150.62 L 705.96 153.23 L 709.18 153.23 L 709.18 154 M 704.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 154 L 712.93 146.77 L 715.33 146.77 Q 716.41 146.77 717.07 147.01 Q 717.73 147.25 718.22 147.82 Q 718.98 148.73 718.98 150.22 Q 718.98 152.02 718.03 153.01 Q 717.08 154 715.35 154 M 712.93 154 M 713.96 153.23 L 715.27 153.23 Q 716.68 153.23 717.26 152.48 Q 717.89 151.67 717.89 150.31 Q 717.89 149.04 717.27 148.31 Q 716.9 147.87 716.38 147.7 Q 715.85 147.54 714.8 147.54 L 713.96 147.54 M 713.96 153.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 154 L 721.18 146.77 L 722.2 146.77 L 724.44 152.69 L 726.6 146.77 L 727.49 146.77 L 724.87 154 M 723.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 154 L 732.5 150.98 L 730.08 146.77 L 731.25 146.77 L 733.13 150.04 L 735.15 146.77 L 736.1 146.77 L 733.52 150.96 L 733.52 154 M 732.5 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.91 154 L 739.18 146.77 L 740.2 146.77 L 742.44 152.69 L 744.6 146.77 L 745.49 146.77 L 742.87 154 M 741.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 154 L 749.93 146.77 L 750.96 146.77 L 750.96 153.23 L 754.21 153.23 L 754.21 154 M 749.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 154 L 757.93 146.77 L 760.33 146.77 Q 761.41 146.77 762.07 147.01 Q 762.73 147.25 763.22 147.82 Q 763.98 148.73 763.98 150.22 Q 763.98 152.02 763.03 153.01 Q 762.08 154 760.35 154 M 757.93 154 M 758.96 153.23 L 760.27 153.23 Q 761.68 153.23 762.26 152.48 Q 762.89 151.67 762.89 150.31 Q 762.89 149.04 762.27 148.31 Q 761.9 147.87 761.38 147.7 Q 760.85 147.54 759.8 147.54 L 758.96 147.54 M 758.96 153.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 770.59 151.24 L 769.36 148.12 L 768.13 151.24 M 770.59 151.24 M 771.68 154 L 770.89 152 L 767.83 152 L 767.04 154 L 766.08 154 L 768.95 146.77 L 769.96 146.77 L 772.79 154 M 771.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 151.24 L 778.36 148.12 L 777.13 151.24 M 779.59 151.24 M 780.68 154 L 779.89 152 L 776.83 152 L 776.04 154 L 775.08 154 L 777.95 146.77 L 778.96 146.77 L 781.79 154 M 780.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 154 L 785.93 146.77 L 789.97 146.77 L 789.97 147.54 L 786.96 147.54 L 786.96 149.86 L 789.48 149.86 L 789.48 150.62 L 786.96 150.62 L 786.96 153.23 L 790.18 153.23 L 790.18 154 M 785.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 154 L 794.93 146.77 L 798.97 146.77 L 798.97 147.54 L 795.96 147.54 L 795.96 149.86 L 798.48 149.86 L 798.48 150.62 L 795.96 150.62 L 795.96 153.23 L 799.18 153.23 L 799.18 154 M 794.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 806.59 151.24 L 805.36 148.12 L 804.13 151.24 M 806.59 151.24 M 807.68 154 L 806.89 152 L 803.83 152 L 803.04 154 L 802.08 154 L 804.95 146.77 L 805.96 146.77 L 808.79 154 M 807.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 153.8 Q 816.05 154.18 815.07 154.18 Q 813.35 154.18 812.43 153.2 Q 811.51 152.22 811.51 150.39 Q 811.51 148.59 812.44 147.59 Q 813.37 146.59 815.06 146.59 Q 816.16 146.59 817.35 146.92 L 817.35 147.87 Q 815.86 147.36 815.06 147.36 Q 813.89 147.36 813.24 148.16 Q 812.6 148.95 812.6 150.4 Q 812.6 151.83 813.29 152.62 Q 813.98 153.41 815.23 153.41 Q 815.75 153.41 816.34 153.23 L 816.34 150.88 L 817.36 150.88 M 817.36 153.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 821.93 154 L 821.93 146.77 L 822.96 146.77 L 822.96 153.23 L 826.21 153.23 L 826.21 154 M 821.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 154 L 829.93 146.77 L 832.33 146.77 Q 833.41 146.77 834.07 147.01 Q 834.73 147.25 835.22 147.82 Q 835.98 148.73 835.98 150.22 Q 835.98 152.02 835.03 153.01 Q 834.08 154 832.35 154 M 829.93 154 M 830.96 153.23 L 832.27 153.23 Q 833.68 153.23 834.26 152.48 Q 834.89 151.67 834.89 150.31 Q 834.89 149.04 834.27 148.31 Q 833.9 147.87 833.38 147.7 Q 832.85 147.54 831.8 147.54 L 830.96 147.54 M 830.96 153.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 154 L 839.93 146.77 L 840.96 146.77 L 840.96 153.23 L 844.21 153.23 L 844.21 154 M 839.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 154 L 847.93 146.77 L 849.9 146.77 Q 851.21 146.77 851.78 147.22 Q 852.35 147.66 852.35 148.67 Q 852.35 149.82 851.57 150.47 Q 850.79 151.13 849.4 151.13 L 848.95 151.13 L 848.95 154 M 847.93 154 M 848.95 150.35 L 849.36 150.35 Q 850.28 150.35 850.77 149.93 Q 851.27 149.51 851.27 148.75 Q 851.27 148.1 850.88 147.82 Q 850.49 147.54 849.58 147.54 L 848.95 147.54 M 848.95 150.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 154 L 858.5 150.98 L 856.08 146.77 L 857.25 146.77 L 859.13 150.04 L 861.15 146.77 L 862.1 146.77 L 859.52 150.96 L 859.52 154 M 858.5 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 154.18 Q 867.62 154.18 866.49 153.86 L 866.49 152.85 Q 867.71 153.41 868.5 153.41 Q 869.1 153.41 869.47 153.1 Q 869.84 152.78 869.84 152.26 Q 869.84 151.84 869.6 151.54 Q 869.35 151.24 868.71 150.88 L 868.21 150.59 Q 867.28 150.06 866.91 149.59 Q 866.53 149.13 866.53 148.51 Q 866.53 147.67 867.13 147.13 Q 867.74 146.59 868.68 146.59 Q 869.51 146.59 870.44 146.87 L 870.44 147.81 Q 869.3 147.36 868.73 147.36 Q 868.2 147.36 867.86 147.64 Q 867.51 147.93 867.51 148.36 Q 867.51 148.72 867.76 149 Q 868.02 149.27 868.69 149.66 L 869.21 149.95 Q 870.15 150.48 870.52 150.96 Q 870.89 151.43 870.89 152.1 Q 870.89 153.04 870.19 153.61 Q 869.5 154.18 868.35 154.18 M 868.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 154.18 Q 876.34 154.18 875.43 153.19 Q 874.51 152.2 874.51 150.39 Q 874.51 148.58 875.44 147.59 Q 876.38 146.59 878.08 146.59 Q 879.05 146.59 880.35 146.91 L 880.35 147.87 Q 878.87 147.36 878.06 147.36 Q 876.89 147.36 876.24 148.16 Q 875.6 148.95 875.6 150.4 Q 875.6 151.78 876.29 152.58 Q 876.97 153.38 878.17 153.38 Q 879.19 153.38 880.36 152.75 L 880.36 153.63 Q 879.29 154.18 878.03 154.18 M 878.03 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 154 L 883.93 146.77 L 886.12 146.77 Q 887.16 146.77 887.71 147.23 Q 888.27 147.69 888.27 148.57 Q 888.27 150.01 886.81 150.62 L 889.22 154 L 887.96 154 L 885.91 150.94 L 884.95 150.94 L 884.95 154 M 883.93 154 M 884.95 150.18 L 885.28 150.18 Q 887.21 150.18 887.21 148.66 Q 887.21 147.54 885.59 147.54 L 884.95 147.54 M 884.95 150.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 151.24 L 895.36 148.12 L 894.13 151.24 M 896.59 151.24 M 897.68 154 L 896.89 152 L 893.83 152 L 893.04 154 L 892.08 154 L 894.95 146.77 L 895.96 146.77 L 898.79 154 M 897.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 153.8 Q 906.05 154.18 905.07 154.18 Q 903.35 154.18 902.43 153.2 Q 901.51 152.22 901.51 150.39 Q 901.51 148.59 902.44 147.59 Q 903.37 146.59 905.06 146.59 Q 906.16 146.59 907.35 146.92 L 907.35 147.87 Q 905.86 147.36 905.06 147.36 Q 903.89 147.36 903.24 148.16 Q 902.6 148.95 902.6 150.4 Q 902.6 151.83 903.29 152.62 Q 903.98 153.41 905.23 153.41 Q 905.75 153.41 906.34 153.23 L 906.34 150.88 L 907.36 150.88 M 907.36 153.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 154.18 Q 912.62 154.18 911.49 153.86 L 911.49 152.85 Q 912.71 153.41 913.5 153.41 Q 914.1 153.41 914.47 153.1 Q 914.84 152.78 914.84 152.26 Q 914.84 151.84 914.6 151.54 Q 914.35 151.24 913.71 150.88 L 913.21 150.59 Q 912.28 150.06 911.91 149.59 Q 911.53 149.13 911.53 148.51 Q 911.53 147.67 912.13 147.13 Q 912.74 146.59 913.68 146.59 Q 914.51 146.59 915.44 146.87 L 915.44 147.81 Q 914.3 147.36 913.73 147.36 Q 913.2 147.36 912.86 147.64 Q 912.51 147.93 912.51 148.36 Q 912.51 148.72 912.76 149 Q 913.02 149.27 913.69 149.66 L 914.21 149.95 Q 915.15 150.48 915.52 150.96 Q 915.89 151.43 915.89 152.1 Q 915.89 153.04 915.19 153.61 Q 914.5 154.18 913.35 154.18 M 913.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 154.18 Q 921.34 154.18 920.43 153.19 Q 919.51 152.2 919.51 150.39 Q 919.51 148.58 920.44 147.59 Q 921.38 146.59 923.08 146.59 Q 924.05 146.59 925.35 146.91 L 925.35 147.87 Q 923.87 147.36 923.06 147.36 Q 921.89 147.36 921.24 148.16 Q 920.6 148.95 920.6 150.4 Q 920.6 151.78 921.29 152.58 Q 921.97 153.38 923.17 153.38 Q 924.19 153.38 925.36 152.75 L 925.36 153.63 Q 924.29 154.18 923.03 154.18 M 923.03 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 154.18 Q 930.62 154.18 929.49 153.86 L 929.49 152.85 Q 930.71 153.41 931.5 153.41 Q 932.1 153.41 932.47 153.1 Q 932.84 152.78 932.84 152.26 Q 932.84 151.84 932.6 151.54 Q 932.35 151.24 931.71 150.88 L 931.21 150.59 Q 930.28 150.06 929.91 149.59 Q 929.53 149.13 929.53 148.51 Q 929.53 147.67 930.13 147.13 Q 930.74 146.59 931.68 146.59 Q 932.51 146.59 933.44 146.87 L 933.44 147.81 Q 932.3 147.36 931.73 147.36 Q 931.2 147.36 930.86 147.64 Q 930.51 147.93 930.51 148.36 Q 930.51 148.72 930.76 149 Q 931.02 149.27 931.69 149.66 L 932.21 149.95 Q 933.15 150.48 933.52 150.96 Q 933.89 151.43 933.89 152.1 Q 933.89 153.04 933.19 153.61 Q 932.5 154.18 931.35 154.18 M 931.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 154.18 Q 939.62 154.18 938.49 153.86 L 938.49 152.85 Q 939.71 153.41 940.5 153.41 Q 941.1 153.41 941.47 153.1 Q 941.84 152.78 941.84 152.26 Q 941.84 151.84 941.6 151.54 Q 941.35 151.24 940.71 150.88 L 940.21 150.59 Q 939.28 150.06 938.91 149.59 Q 938.53 149.13 938.53 148.51 Q 938.53 147.67 939.13 147.13 Q 939.74 146.59 940.68 146.59 Q 941.51 146.59 942.44 146.87 L 942.44 147.81 Q 941.3 147.36 940.73 147.36 Q 940.2 147.36 939.86 147.64 Q 939.51 147.93 939.51 148.36 Q 939.51 148.72 939.76 149 Q 940.02 149.27 940.69 149.66 L 941.21 149.95 Q 942.15 150.48 942.52 150.96 Q 942.89 151.43 942.89 152.1 Q 942.89 153.04 942.19 153.61 Q 941.5 154.18 940.35 154.18 M 940.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 154.18 Q 948.34 154.18 947.43 153.19 Q 946.51 152.2 946.51 150.39 Q 946.51 148.58 947.44 147.59 Q 948.38 146.59 950.08 146.59 Q 951.05 146.59 952.35 146.91 L 952.35 147.87 Q 950.87 147.36 950.06 147.36 Q 948.89 147.36 948.24 148.16 Q 947.6 148.95 947.6 150.4 Q 947.6 151.78 948.29 152.58 Q 948.97 153.38 950.17 153.38 Q 951.19 153.38 952.36 152.75 L 952.36 153.63 Q 951.29 154.18 950.03 154.18 M 950.03 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 151.24 L 958.36 148.12 L 957.13 151.24 M 959.59 151.24 M 960.68 154 L 959.89 152 L 956.83 152 L 956.04 154 L 955.08 154 L 957.95 146.77 L 958.96 146.77 L 961.79 154 M 960.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 153.8 Q 969.05 154.18 968.07 154.18 Q 966.35 154.18 965.43 153.2 Q 964.51 152.22 964.51 150.39 Q 964.51 148.59 965.44 147.59 Q 966.37 146.59 968.06 146.59 Q 969.16 146.59 970.35 146.92 L 970.35 147.87 Q 968.86 147.36 968.06 147.36 Q 966.89 147.36 966.24 148.16 Q 965.6 148.95 965.6 150.4 Q 965.6 151.83 966.29 152.62 Q 966.98 153.41 968.23 153.41 Q 968.75 153.41 969.34 153.23 L 969.34 150.88 L 970.36 150.88 M 970.36 153.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 154 L 973.93 146.77 L 974.89 146.77 L 974.89 150.33 L 977.82 146.77 L 978.85 146.77 L 976.02 150.22 L 979.35 154 L 978.05 154 L 974.89 150.34 L 974.89 154 M 973.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 154 L 982.18 146.77 L 983.2 146.77 L 985.44 152.69 L 987.6 146.77 L 988.49 146.77 L 985.87 154 M 984.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.91 154 L 991.18 146.77 L 992.2 146.77 L 994.44 152.69 L 996.6 146.77 L 997.49 146.77 L 994.87 154 M 993.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1003.35 154.18 Q 1002.62 154.18 1001.49 153.86 L 1001.49 152.85 Q 1002.71 153.41 1003.5 153.41 Q 1004.1 153.41 1004.47 153.1 Q 1004.84 152.78 1004.84 152.26 Q 1004.84 151.84 1004.6 151.54 Q 1004.35 151.24 1003.71 150.88 L 1003.21 150.59 Q 1002.28 150.06 1001.91 149.59 Q 1001.53 149.13 1001.53 148.51 Q 1001.53 147.67 1002.13 147.13 Q 1002.74 146.59 1003.68 146.59 Q 1004.51 146.59 1005.44 146.87 L 1005.44 147.81 Q 1004.3 147.36 1003.73 147.36 Q 1003.2 147.36 1002.86 147.64 Q 1002.51 147.93 1002.51 148.36 Q 1002.51 148.72 1002.76 149 Q 1003.02 149.27 1003.69 149.66 L 1004.21 149.95 Q 1005.15 150.48 1005.52 150.96 Q 1005.89 151.43 1005.89 152.1 Q 1005.89 153.04 1005.19 153.61 Q 1004.5 154.18 1003.35 154.18 M 1003.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 153.8 Q 1014.05 154.18 1013.07 154.18 Q 1011.35 154.18 1010.43 153.2 Q 1009.51 152.22 1009.51 150.39 Q 1009.51 148.59 1010.44 147.59 Q 1011.37 146.59 1013.06 146.59 Q 1014.16 146.59 1015.35 146.92 L 1015.35 147.87 Q 1013.86 147.36 1013.06 147.36 Q 1011.89 147.36 1011.24 148.16 Q 1010.6 148.95 1010.6 150.4 Q 1010.6 151.83 1011.29 152.62 Q 1011.98 153.41 1013.23 153.41 Q 1013.75 153.41 1014.34 153.23 L 1014.34 150.88 L 1015.36 150.88 M 1015.36 153.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1021.35 154.18 Q 1020.62 154.18 1019.49 153.86 L 1019.49 152.85 Q 1020.71 153.41 1021.5 153.41 Q 1022.1 153.41 1022.47 153.1 Q 1022.84 152.78 1022.84 152.26 Q 1022.84 151.84 1022.6 151.54 Q 1022.35 151.24 1021.71 150.88 L 1021.21 150.59 Q 1020.28 150.06 1019.91 149.59 Q 1019.53 149.13 1019.53 148.51 Q 1019.53 147.67 1020.13 147.13 Q 1020.74 146.59 1021.68 146.59 Q 1022.51 146.59 1023.44 146.87 L 1023.44 147.81 Q 1022.3 147.36 1021.73 147.36 Q 1021.2 147.36 1020.86 147.64 Q 1020.51 147.93 1020.51 148.36 Q 1020.51 148.72 1020.76 149 Q 1021.02 149.27 1021.69 149.66 L 1022.21 149.95 Q 1023.15 150.48 1023.52 150.96 Q 1023.89 151.43 1023.89 152.1 Q 1023.89 153.04 1023.19 153.61 Q 1022.5 154.18 1021.35 154.18 M 1021.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.93 154 L 1029.93 146.77 L 1030.95 146.77 L 1030.95 154 M 1029.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 154 L 1036.93 146.77 L 1039.33 146.77 Q 1040.41 146.77 1041.07 147.01 Q 1041.73 147.25 1042.22 147.82 Q 1042.98 148.73 1042.98 150.22 Q 1042.98 152.02 1042.03 153.01 Q 1041.08 154 1039.35 154 M 1036.93 154 M 1037.96 153.23 L 1039.27 153.23 Q 1040.68 153.23 1041.26 152.48 Q 1041.89 151.67 1041.89 150.31 Q 1041.89 149.04 1041.27 148.31 Q 1040.9 147.87 1040.38 147.7 Q 1039.85 147.54 1038.8 147.54 L 1037.96 147.54 M 1037.96 153.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 155.45 Q 1049.64 154.89 1048.49 154.13 Q 1048.03 154.18 1047.78 154.18 Q 1046.33 154.18 1045.42 153.13 Q 1044.51 152.07 1044.51 150.39 Q 1044.51 148.66 1045.43 147.63 Q 1046.35 146.59 1047.89 146.59 Q 1049.43 146.59 1050.35 147.63 Q 1051.27 148.66 1051.27 150.4 Q 1051.27 152.89 1049.42 153.85 Q 1050.66 154.4 1052 154.63 M 1051.35 155.45 M 1047.86 153.41 Q 1048.97 153.41 1049.57 152.62 Q 1050.18 151.82 1050.18 150.37 Q 1050.18 148.96 1049.57 148.16 Q 1048.97 147.36 1047.89 147.36 Q 1046.81 147.36 1046.2 148.16 Q 1045.6 148.96 1045.6 150.38 Q 1045.6 151.79 1046.2 152.6 Q 1046.8 153.41 1047.86 153.41 M 1047.86 153.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1057.35 154.18 Q 1056.62 154.18 1055.49 153.86 L 1055.49 152.85 Q 1056.71 153.41 1057.5 153.41 Q 1058.1 153.41 1058.47 153.1 Q 1058.84 152.78 1058.84 152.26 Q 1058.84 151.84 1058.6 151.54 Q 1058.35 151.24 1057.71 150.88 L 1057.21 150.59 Q 1056.28 150.06 1055.91 149.59 Q 1055.53 149.13 1055.53 148.51 Q 1055.53 147.67 1056.13 147.13 Q 1056.74 146.59 1057.68 146.59 Q 1058.51 146.59 1059.44 146.87 L 1059.44 147.81 Q 1058.3 147.36 1057.73 147.36 Q 1057.2 147.36 1056.86 147.64 Q 1056.51 147.93 1056.51 148.36 Q 1056.51 148.72 1056.76 149 Q 1057.02 149.27 1057.69 149.66 L 1058.21 149.95 Q 1059.15 150.48 1059.52 150.96 Q 1059.89 151.43 1059.89 152.1 Q 1059.89 153.04 1059.19 153.61 Q 1058.5 154.18 1057.35 154.18 M 1057.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 154 L 1063.93 146.77 L 1066.33 146.77 Q 1067.41 146.77 1068.07 147.01 Q 1068.73 147.25 1069.22 147.82 Q 1069.98 148.73 1069.98 150.22 Q 1069.98 152.02 1069.03 153.01 Q 1068.08 154 1066.35 154 M 1063.93 154 M 1064.96 153.23 L 1066.27 153.23 Q 1067.68 153.23 1068.26 152.48 Q 1068.89 151.67 1068.89 150.31 Q 1068.89 149.04 1068.27 148.31 Q 1067.9 147.87 1067.38 147.7 Q 1066.85 147.54 1065.8 147.54 L 1064.96 147.54 M 1064.96 153.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.35 155.45 Q 1076.64 154.89 1075.49 154.13 Q 1075.03 154.18 1074.78 154.18 Q 1073.33 154.18 1072.42 153.13 Q 1071.51 152.07 1071.51 150.39 Q 1071.51 148.66 1072.43 147.63 Q 1073.35 146.59 1074.89 146.59 Q 1076.43 146.59 1077.35 147.63 Q 1078.27 148.66 1078.27 150.4 Q 1078.27 152.89 1076.42 153.85 Q 1077.66 154.4 1079 154.63 M 1078.35 155.45 M 1074.86 153.41 Q 1075.97 153.41 1076.57 152.62 Q 1077.18 151.82 1077.18 150.37 Q 1077.18 148.96 1076.57 148.16 Q 1075.97 147.36 1074.89 147.36 Q 1073.81 147.36 1073.2 148.16 Q 1072.6 148.96 1072.6 150.38 Q 1072.6 151.79 1073.2 152.6 Q 1073.8 153.41 1074.86 153.41 M 1074.86 153.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1084.35 154.18 Q 1083.62 154.18 1082.49 153.86 L 1082.49 152.85 Q 1083.71 153.41 1084.5 153.41 Q 1085.1 153.41 1085.47 153.1 Q 1085.84 152.78 1085.84 152.26 Q 1085.84 151.84 1085.6 151.54 Q 1085.35 151.24 1084.71 150.88 L 1084.21 150.59 Q 1083.28 150.06 1082.91 149.59 Q 1082.53 149.13 1082.53 148.51 Q 1082.53 147.67 1083.13 147.13 Q 1083.74 146.59 1084.68 146.59 Q 1085.51 146.59 1086.44 146.87 L 1086.44 147.81 Q 1085.3 147.36 1084.73 147.36 Q 1084.2 147.36 1083.86 147.64 Q 1083.51 147.93 1083.51 148.36 Q 1083.51 148.72 1083.76 149 Q 1084.02 149.27 1084.69 149.66 L 1085.21 149.95 Q 1086.15 150.48 1086.52 150.96 Q 1086.89 151.43 1086.89 152.1 Q 1086.89 153.04 1086.19 153.61 Q 1085.5 154.18 1084.35 154.18 M 1084.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 154 L 1091.93 146.77 L 1095.97 146.77 L 1095.97 147.54 L 1092.96 147.54 L 1092.96 149.96 L 1095.49 149.96 L 1095.49 150.72 L 1092.96 150.72 L 1092.96 154 M 1091.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 154 L 1100.93 146.77 L 1101.96 146.77 L 1101.96 153.23 L 1105.21 153.23 L 1105.21 154 M 1100.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 154 L 1108.93 146.77 L 1111.33 146.77 Q 1112.41 146.77 1113.07 147.01 Q 1113.73 147.25 1114.22 147.82 Q 1114.98 148.73 1114.98 150.22 Q 1114.98 152.02 1114.03 153.01 Q 1113.08 154 1111.35 154 M 1108.93 154 M 1109.96 153.23 L 1111.27 153.23 Q 1112.68 153.23 1113.26 152.48 Q 1113.89 151.67 1113.89 150.31 Q 1113.89 149.04 1113.27 148.31 Q 1112.9 147.87 1112.38 147.7 Q 1111.85 147.54 1110.8 147.54 L 1109.96 147.54 M 1109.96 153.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 154 L 1117.93 146.77 L 1120.33 146.77 Q 1121.41 146.77 1122.07 147.01 Q 1122.73 147.25 1123.22 147.82 Q 1123.98 148.73 1123.98 150.22 Q 1123.98 152.02 1123.03 153.01 Q 1122.08 154 1120.35 154 M 1117.93 154 M 1118.96 153.23 L 1120.27 153.23 Q 1121.68 153.23 1122.26 152.48 Q 1122.89 151.67 1122.89 150.31 Q 1122.89 149.04 1122.27 148.31 Q 1121.9 147.87 1121.38 147.7 Q 1120.85 147.54 1119.8 147.54 L 1118.96 147.54 M 1118.96 153.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1127.93 154 L 1127.93 146.77 L 1131.97 146.77 L 1131.97 147.54 L 1128.96 147.54 L 1128.96 149.86 L 1131.48 149.86 L 1131.48 150.62 L 1128.96 150.62 L 1128.96 153.23 L 1132.18 153.23 L 1132.18 154 M 1127.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 155.45 Q 1139.64 154.89 1138.49 154.13 Q 1138.03 154.18 1137.78 154.18 Q 1136.33 154.18 1135.42 153.13 Q 1134.51 152.07 1134.51 150.39 Q 1134.51 148.66 1135.43 147.63 Q 1136.35 146.59 1137.89 146.59 Q 1139.43 146.59 1140.35 147.63 Q 1141.27 148.66 1141.27 150.4 Q 1141.27 152.89 1139.42 153.85 Q 1140.66 154.4 1142 154.63 M 1141.35 155.45 M 1137.86 153.41 Q 1138.97 153.41 1139.57 152.62 Q 1140.18 151.82 1140.18 150.37 Q 1140.18 148.96 1139.57 148.16 Q 1138.97 147.36 1137.89 147.36 Q 1136.81 147.36 1136.2 148.16 Q 1135.6 148.96 1135.6 150.38 Q 1135.6 151.79 1136.2 152.6 Q 1136.8 153.41 1137.86 153.41 M 1137.86 153.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1143.93 154 L 1143.93 146.77 L 1145.35 146.77 L 1147.36 152.36 L 1149.42 146.77 L 1150.69 146.77 L 1150.69 154 L 1149.73 154 L 1149.73 148.12 L 1147.74 153.52 L 1146.75 153.52 L 1144.81 148.11 L 1144.81 154 M 1143.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1156.35 154.18 Q 1155.62 154.18 1154.49 153.86 L 1154.49 152.85 Q 1155.71 153.41 1156.5 153.41 Q 1157.1 153.41 1157.47 153.1 Q 1157.84 152.78 1157.84 152.26 Q 1157.84 151.84 1157.6 151.54 Q 1157.35 151.24 1156.71 150.88 L 1156.21 150.59 Q 1155.28 150.06 1154.91 149.59 Q 1154.53 149.13 1154.53 148.51 Q 1154.53 147.67 1155.13 147.13 Q 1155.74 146.59 1156.68 146.59 Q 1157.51 146.59 1158.44 146.87 L 1158.44 147.81 Q 1157.3 147.36 1156.73 147.36 Q 1156.2 147.36 1155.86 147.64 Q 1155.51 147.93 1155.51 148.36 Q 1155.51 148.72 1155.76 149 Q 1156.02 149.27 1156.69 149.66 L 1157.21 149.95 Q 1158.15 150.48 1158.52 150.96 Q 1158.89 151.43 1158.89 152.1 Q 1158.89 153.04 1158.19 153.61 Q 1157.5 154.18 1156.35 154.18 M 1156.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1163.93 154 L 1163.93 146.77 L 1167.97 146.77 L 1167.97 147.54 L 1164.96 147.54 L 1164.96 149.86 L 1167.48 149.86 L 1167.48 150.62 L 1164.96 150.62 L 1164.96 153.23 L 1168.18 153.23 L 1168.18 154 M 1163.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 153.8 Q 1176.05 154.18 1175.07 154.18 Q 1173.35 154.18 1172.43 153.2 Q 1171.51 152.22 1171.51 150.39 Q 1171.51 148.59 1172.44 147.59 Q 1173.37 146.59 1175.06 146.59 Q 1176.16 146.59 1177.35 146.92 L 1177.35 147.87 Q 1175.86 147.36 1175.06 147.36 Q 1173.89 147.36 1173.24 148.16 Q 1172.6 148.95 1172.6 150.4 Q 1172.6 151.83 1173.29 152.62 Q 1173.98 153.41 1175.23 153.41 Q 1175.75 153.41 1176.34 153.23 L 1176.34 150.88 L 1177.36 150.88 M 1177.36 153.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1182.5 154 L 1182.5 150.98 L 1180.08 146.77 L 1181.25 146.77 L 1183.13 150.04 L 1185.15 146.77 L 1186.1 146.77 L 1183.52 150.96 L 1183.52 154 M 1182.5 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 154 L 1189.18 146.77 L 1190.2 146.77 L 1192.44 152.69 L 1194.6 146.77 L 1195.49 146.77 L 1192.87 154 M 1191.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 154 L 1199.93 146.77 L 1200.96 146.77 L 1200.96 153.23 L 1204.21 153.23 L 1204.21 154 M 1199.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 154 L 1209.65 147.54 L 1207.09 147.54 L 1207.09 146.77 L 1213.24 146.77 L 1213.24 147.54 L 1210.68 147.54 L 1210.68 154 M 1209.65 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 154.18 Q 1218.34 154.18 1217.43 153.19 Q 1216.51 152.2 1216.51 150.39 Q 1216.51 148.58 1217.44 147.59 Q 1218.38 146.59 1220.08 146.59 Q 1221.05 146.59 1222.35 146.91 L 1222.35 147.87 Q 1220.87 147.36 1220.06 147.36 Q 1218.89 147.36 1218.24 148.16 Q 1217.6 148.95 1217.6 150.4 Q 1217.6 151.78 1218.29 152.58 Q 1218.97 153.38 1220.17 153.38 Q 1221.19 153.38 1222.36 152.75 L 1222.36 153.63 Q 1221.29 154.18 1220.03 154.18 M 1220.03 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1227.91 154 L 1225.18 146.77 L 1226.2 146.77 L 1228.44 152.69 L 1230.6 146.77 L 1231.49 146.77 L 1228.87 154 M 1227.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 151.24 L 1237.36 148.12 L 1236.13 151.24 M 1238.59 151.24 M 1239.68 154 L 1238.89 152 L 1235.83 152 L 1235.04 154 L 1234.08 154 L 1236.95 146.77 L 1237.96 146.77 L 1240.79 154 M 1239.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 154 L 1245.5 150.98 L 1243.08 146.77 L 1244.25 146.77 L 1246.13 150.04 L 1248.15 146.77 L 1249.1 146.77 L 1246.52 150.96 L 1246.52 154 M 1245.5 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 154 L 1252.93 146.77 L 1254.9 146.77 Q 1256.21 146.77 1256.78 147.22 Q 1257.35 147.66 1257.35 148.67 Q 1257.35 149.82 1256.57 150.47 Q 1255.79 151.13 1254.4 151.13 L 1253.95 151.13 L 1253.95 154 M 1252.93 154 M 1253.95 150.35 L 1254.36 150.35 Q 1255.28 150.35 1255.77 149.93 Q 1256.27 149.51 1256.27 148.75 Q 1256.27 148.1 1255.88 147.82 Q 1255.49 147.54 1254.58 147.54 L 1253.95 147.54 M 1253.95 150.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1263.65 154 L 1263.65 147.54 L 1261.09 147.54 L 1261.09 146.77 L 1267.24 146.77 L 1267.24 147.54 L 1264.68 147.54 L 1264.68 154 M 1263.65 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1273.35 154.18 Q 1272.62 154.18 1271.49 153.86 L 1271.49 152.85 Q 1272.71 153.41 1273.5 153.41 Q 1274.1 153.41 1274.47 153.1 Q 1274.84 152.78 1274.84 152.26 Q 1274.84 151.84 1274.6 151.54 Q 1274.35 151.24 1273.71 150.88 L 1273.21 150.59 Q 1272.28 150.06 1271.91 149.59 Q 1271.53 149.13 1271.53 148.51 Q 1271.53 147.67 1272.13 147.13 Q 1272.74 146.59 1273.68 146.59 Q 1274.51 146.59 1275.44 146.87 L 1275.44 147.81 Q 1274.3 147.36 1273.73 147.36 Q 1273.2 147.36 1272.86 147.64 Q 1272.51 147.93 1272.51 148.36 Q 1272.51 148.72 1272.76 149 Q 1273.02 149.27 1273.69 149.66 L 1274.21 149.95 Q 1275.15 150.48 1275.52 150.96 Q 1275.89 151.43 1275.89 152.1 Q 1275.89 153.04 1275.19 153.61 Q 1274.5 154.18 1273.35 154.18 M 1273.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 154 L 1279.93 146.77 L 1282.33 146.77 Q 1283.41 146.77 1284.07 147.01 Q 1284.73 147.25 1285.22 147.82 Q 1285.98 148.73 1285.98 150.22 Q 1285.98 152.02 1285.03 153.01 Q 1284.08 154 1282.35 154 M 1279.93 154 M 1280.96 153.23 L 1282.27 153.23 Q 1283.68 153.23 1284.26 152.48 Q 1284.89 151.67 1284.89 150.31 Q 1284.89 149.04 1284.27 148.31 Q 1283.9 147.87 1283.38 147.7 Q 1282.85 147.54 1281.8 147.54 L 1280.96 147.54 M 1280.96 153.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 154 L 1288.18 146.77 L 1289.2 146.77 L 1291.44 152.69 L 1293.6 146.77 L 1294.49 146.77 L 1291.87 154 M 1290.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.91 154 L 1297.18 146.77 L 1298.2 146.77 L 1300.44 152.69 L 1302.6 146.77 L 1303.49 146.77 L 1300.87 154 M 1299.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 154 L 1308.93 146.77 L 1309.95 146.77 L 1309.95 154 M 1308.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 154 L 1316.93 146.77 L 1320.97 146.77 L 1320.97 147.54 L 1317.96 147.54 L 1317.96 149.86 L 1320.48 149.86 L 1320.48 150.62 L 1317.96 150.62 L 1317.96 153.23 L 1321.18 153.23 L 1321.18 154 M 1316.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 154 L 1326.65 147.54 L 1324.09 147.54 L 1324.09 146.77 L 1330.24 146.77 L 1330.24 147.54 L 1327.68 147.54 L 1327.68 154 M 1326.65 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 154 L 1333.93 146.77 L 1334.96 146.77 L 1334.96 149.82 L 1338.4 149.82 L 1338.4 146.77 L 1339.42 146.77 L 1339.42 154 L 1338.4 154 L 1338.4 150.59 L 1334.96 150.59 L 1334.96 154 M 1333.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 154 L 1342.93 146.77 L 1343.89 146.77 L 1343.89 150.33 L 1346.82 146.77 L 1347.85 146.77 L 1345.02 150.22 L 1348.35 154 L 1347.05 154 L 1343.89 150.34 L 1343.89 154 M 1342.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 154 L 1352.93 146.77 L 1356.97 146.77 L 1356.97 147.54 L 1353.96 147.54 L 1353.96 149.86 L 1356.48 149.86 L 1356.48 150.62 L 1353.96 150.62 L 1353.96 153.23 L 1357.18 153.23 L 1357.18 154 M 1352.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1361.93 154 L 1361.93 146.77 L 1365.97 146.77 L 1365.97 147.54 L 1362.96 147.54 L 1362.96 149.86 L 1365.48 149.86 L 1365.48 150.62 L 1362.96 150.62 L 1362.96 153.23 L 1366.18 153.23 L 1366.18 154 M 1361.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1373.59 151.24 L 1372.36 148.12 L 1371.13 151.24 M 1373.59 151.24 M 1374.68 154 L 1373.89 152 L 1370.83 152 L 1370.04 154 L 1369.08 154 L 1371.95 146.77 L 1372.96 146.77 L 1375.79 154 M 1374.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1380.93 154 L 1380.93 146.77 L 1381.95 146.77 L 1381.95 154 M 1380.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1386.93 154 L 1386.93 146.77 L 1388.35 146.77 L 1390.36 152.36 L 1392.42 146.77 L 1393.69 146.77 L 1393.69 154 L 1392.73 154 L 1392.73 148.12 L 1390.74 153.52 L 1389.75 153.52 L 1387.81 148.11 L 1387.81 154 M 1386.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1396.72 151.47 L 1396.72 150.75 L 1401.06 150.75 L 1401.06 151.47 M 1396.72 151.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 151.47 L 1405.72 150.75 L 1410.06 150.75 L 1410.06 151.47 M 1405.72 151.47"/></g><rect x="0" y="156" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="156" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="156" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="156" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="156" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="156" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="594" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="156" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="156" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="156" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="156" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="639" y="156" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="156" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="156" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="156" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="156" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="156" width="27" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="156" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="156" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="156" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="156" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="156" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="801" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="156" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="156" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="156" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="156" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="156" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="156" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="156" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="156" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="156" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="156" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="156" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="156" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="156" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="156" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="156" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="156" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="156" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="156" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="156" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="156" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="156" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="156" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="156" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="156" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="156" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 167 L 0.93 159.77 L 2.35 159.77 L 4.36 165.36 L 6.42 159.77 L 7.69 159.77 L 7.69 167 L 6.73 167 L 6.73 161.12 L 4.74 166.52 L 3.75 166.52 L 1.81 161.11 L 1.81 167 M 0.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 164.24 L 13.36 161.12 L 12.13 164.24 M 14.59 164.24 M 15.68 167 L 14.89 165 L 11.83 165 L 11.04 167 L 10.08 167 L 12.95 159.77 L 13.96 159.77 L 16.79 167 M 15.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 22.35 167.18 Q 21.62 167.18 20.49 166.86 L 20.49 165.85 Q 21.71 166.41 22.5 166.41 Q 23.1 166.41 23.47 166.1 Q 23.84 165.78 23.84 165.26 Q 23.84 164.84 23.6 164.54 Q 23.35 164.24 22.71 163.88 L 22.21 163.59 Q 21.28 163.06 20.91 162.59 Q 20.53 162.13 20.53 161.51 Q 20.53 160.67 21.13 160.13 Q 21.74 159.59 22.68 159.59 Q 23.51 159.59 24.44 159.87 L 24.44 160.81 Q 23.3 160.36 22.73 160.36 Q 22.2 160.36 21.86 160.64 Q 21.51 160.93 21.51 161.36 Q 21.51 161.72 21.76 162 Q 22.02 162.27 22.69 162.66 L 23.21 162.95 Q 24.15 163.48 24.52 163.96 Q 24.89 164.43 24.89 165.1 Q 24.89 166.04 24.19 166.61 Q 23.5 167.18 22.35 167.18 M 22.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 30.65 167 L 30.65 160.54 L 28.09 160.54 L 28.09 159.77 L 34.24 159.77 L 34.24 160.54 L 31.68 160.54 L 31.68 167 M 30.65 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 164.47 L 37.72 163.75 L 42.06 163.75 L 42.06 164.47 M 37.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 164.47 L 46.72 163.75 L 51.06 163.75 L 51.06 164.47 M 46.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 164.47 L 55.72 163.75 L 60.06 163.75 L 60.06 164.47 M 55.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.72 164.47 L 64.72 163.75 L 69.06 163.75 L 69.06 164.47 M 64.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 77.59 164.24 L 76.36 161.12 L 75.13 164.24 M 77.59 164.24 M 78.68 167 L 77.89 165 L 74.83 165 L 74.04 167 L 73.08 167 L 75.95 159.77 L 76.96 159.77 L 79.79 167 M 78.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 83.93 167 L 83.93 159.77 L 84.96 159.77 L 84.96 166.23 L 88.21 166.23 L 88.21 167 M 83.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 94.35 167.18 Q 93.62 167.18 92.49 166.86 L 92.49 165.85 Q 93.71 166.41 94.5 166.41 Q 95.1 166.41 95.47 166.1 Q 95.84 165.78 95.84 165.26 Q 95.84 164.84 95.6 164.54 Q 95.35 164.24 94.71 163.88 L 94.21 163.59 Q 93.28 163.06 92.91 162.59 Q 92.53 162.13 92.53 161.51 Q 92.53 160.67 93.13 160.13 Q 93.74 159.59 94.68 159.59 Q 95.51 159.59 96.44 159.87 L 96.44 160.81 Q 95.3 160.36 94.73 160.36 Q 94.2 160.36 93.86 160.64 Q 93.51 160.93 93.51 161.36 Q 93.51 161.72 93.76 162 Q 94.02 162.27 94.69 162.66 L 95.21 162.95 Q 96.15 163.48 96.52 163.96 Q 96.89 164.43 96.89 165.1 Q 96.89 166.04 96.19 166.61 Q 95.5 167.18 94.35 167.18 M 94.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 103.35 167.18 Q 102.62 167.18 101.49 166.86 L 101.49 165.85 Q 102.71 166.41 103.5 166.41 Q 104.1 166.41 104.47 166.1 Q 104.84 165.78 104.84 165.26 Q 104.84 164.84 104.6 164.54 Q 104.35 164.24 103.71 163.88 L 103.21 163.59 Q 102.28 163.06 101.91 162.59 Q 101.53 162.13 101.53 161.51 Q 101.53 160.67 102.13 160.13 Q 102.74 159.59 103.68 159.59 Q 104.51 159.59 105.44 159.87 L 105.44 160.81 Q 104.3 160.36 103.73 160.36 Q 103.2 160.36 102.86 160.64 Q 102.51 160.93 102.51 161.36 Q 102.51 161.72 102.76 162 Q 103.02 162.27 103.69 162.66 L 104.21 162.95 Q 105.15 163.48 105.52 163.96 Q 105.89 164.43 105.89 165.1 Q 105.89 166.04 105.19 166.61 Q 104.5 167.18 103.35 167.18 M 103.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 113.59 164.24 L 112.36 161.12 L 111.13 164.24 M 113.59 164.24 M 114.68 167 L 113.89 165 L 110.83 165 L 110.04 167 L 109.08 167 L 111.95 159.77 L 112.96 159.77 L 115.79 167 M 114.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 120.93 167 L 120.93 159.77 L 121.95 159.77 L 121.95 167 M 120.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 129.91 167 L 127.18 159.77 L 128.2 159.77 L 130.44 165.69 L 132.6 159.77 L 133.49 159.77 L 130.87 167 M 129.91 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 139.35 167.18 Q 138.62 167.18 137.49 166.86 L 137.49 165.85 Q 138.71 166.41 139.5 166.41 Q 140.1 166.41 140.47 166.1 Q 140.84 165.78 140.84 165.26 Q 140.84 164.84 140.6 164.54 Q 140.35 164.24 139.71 163.88 L 139.21 163.59 Q 138.28 163.06 137.91 162.59 Q 137.53 162.13 137.53 161.51 Q 137.53 160.67 138.13 160.13 Q 138.74 159.59 139.68 159.59 Q 140.51 159.59 141.44 159.87 L 141.44 160.81 Q 140.3 160.36 139.73 160.36 Q 139.2 160.36 138.86 160.64 Q 138.51 160.93 138.51 161.36 Q 138.51 161.72 138.76 162 Q 139.02 162.27 139.69 162.66 L 140.21 162.95 Q 141.15 163.48 141.52 163.96 Q 141.89 164.43 141.89 165.1 Q 141.89 166.04 141.19 166.61 Q 140.5 167.18 139.35 167.18 M 139.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 147.65 167 L 147.65 160.54 L 145.09 160.54 L 145.09 159.77 L 151.24 159.77 L 151.24 160.54 L 148.68 160.54 L 148.68 167 M 147.65 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 157.35 167.18 Q 156.62 167.18 155.49 166.86 L 155.49 165.85 Q 156.71 166.41 157.5 166.41 Q 158.1 166.41 158.47 166.1 Q 158.84 165.78 158.84 165.26 Q 158.84 164.84 158.6 164.54 Q 158.35 164.24 157.71 163.88 L 157.21 163.59 Q 156.28 163.06 155.91 162.59 Q 155.53 162.13 155.53 161.51 Q 155.53 160.67 156.13 160.13 Q 156.74 159.59 157.68 159.59 Q 158.51 159.59 159.44 159.87 L 159.44 160.81 Q 158.3 160.36 157.73 160.36 Q 157.2 160.36 156.86 160.64 Q 156.51 160.93 156.51 161.36 Q 156.51 161.72 156.76 162 Q 157.02 162.27 157.69 162.66 L 158.21 162.95 Q 159.15 163.48 159.52 163.96 Q 159.89 164.43 159.89 165.1 Q 159.89 166.04 159.19 166.61 Q 158.5 167.18 157.35 167.18 M 157.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 164.93 167 L 164.93 159.77 L 168.97 159.77 L 168.97 160.54 L 165.96 160.54 L 165.96 162.96 L 168.49 162.96 L 168.49 163.72 L 165.96 163.72 L 165.96 167 M 164.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 173.93 167 L 173.93 159.77 L 174.96 159.77 L 174.96 166.23 L 178.21 166.23 L 178.21 167 M 173.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 167 L 181.93 159.77 L 184.12 159.77 Q 185.16 159.77 185.71 160.23 Q 186.27 160.69 186.27 161.57 Q 186.27 163.01 184.81 163.62 L 187.22 167 L 185.96 167 L 183.91 163.94 L 182.95 163.94 L 182.95 167 M 181.93 167 M 182.95 163.18 L 183.28 163.18 Q 185.21 163.18 185.21 161.66 Q 185.21 160.54 183.59 160.54 L 182.95 160.54 M 182.95 163.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.93 167 L 190.93 159.77 L 193.12 159.77 Q 194.16 159.77 194.71 160.23 Q 195.27 160.69 195.27 161.57 Q 195.27 163.01 193.81 163.62 L 196.22 167 L 194.96 167 L 192.91 163.94 L 191.95 163.94 L 191.95 167 M 190.93 167 M 191.95 163.18 L 192.28 163.18 Q 194.21 163.18 194.21 161.66 Q 194.21 160.54 192.59 160.54 L 191.95 160.54 M 191.95 163.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 205.35 168.45 Q 203.64 167.89 202.49 167.13 Q 202.03 167.18 201.78 167.18 Q 200.33 167.18 199.42 166.13 Q 198.51 165.07 198.51 163.39 Q 198.51 161.66 199.43 160.63 Q 200.35 159.59 201.89 159.59 Q 203.43 159.59 204.35 160.63 Q 205.27 161.66 205.27 163.4 Q 205.27 165.89 203.42 166.85 Q 204.66 167.4 206 167.63 M 205.35 168.45 M 201.86 166.41 Q 202.97 166.41 203.57 165.62 Q 204.18 164.82 204.18 163.37 Q 204.18 161.96 203.57 161.16 Q 202.97 160.36 201.89 160.36 Q 200.81 160.36 200.2 161.16 Q 199.6 161.96 199.6 163.38 Q 199.6 164.79 200.2 165.6 Q 200.8 166.41 201.86 166.41 M 201.86 166.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 214.35 168.45 Q 212.64 167.89 211.49 167.13 Q 211.03 167.18 210.78 167.18 Q 209.33 167.18 208.42 166.13 Q 207.51 165.07 207.51 163.39 Q 207.51 161.66 208.43 160.63 Q 209.35 159.59 210.89 159.59 Q 212.43 159.59 213.35 160.63 Q 214.27 161.66 214.27 163.4 Q 214.27 165.89 212.42 166.85 Q 213.66 167.4 215 167.63 M 214.35 168.45 M 210.86 166.41 Q 211.97 166.41 212.57 165.62 Q 213.18 164.82 213.18 163.37 Q 213.18 161.96 212.57 161.16 Q 211.97 160.36 210.89 160.36 Q 209.81 160.36 209.2 161.16 Q 208.6 161.96 208.6 163.38 Q 208.6 164.79 209.2 165.6 Q 209.8 166.41 210.86 166.41 M 210.86 166.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 219.65 167 L 219.65 160.54 L 217.09 160.54 L 217.09 159.77 L 223.24 159.77 L 223.24 160.54 L 220.68 160.54 L 220.68 167 M 219.65 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.93 167 L 226.93 159.77 L 228.9 159.77 Q 230.21 159.77 230.78 160.22 Q 231.35 160.66 231.35 161.67 Q 231.35 162.82 230.57 163.47 Q 229.79 164.13 228.4 164.13 L 227.95 164.13 L 227.95 167 M 226.93 167 M 227.95 163.35 L 228.36 163.35 Q 229.28 163.35 229.77 162.93 Q 230.27 162.51 230.27 161.75 Q 230.27 161.1 229.88 160.82 Q 229.49 160.54 228.58 160.54 L 227.95 160.54 M 227.95 163.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 237.93 167 L 237.93 159.77 L 238.95 159.77 L 238.95 167 M 237.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 247.35 167.18 Q 246.62 167.18 245.49 166.86 L 245.49 165.85 Q 246.71 166.41 247.5 166.41 Q 248.1 166.41 248.47 166.1 Q 248.84 165.78 248.84 165.26 Q 248.84 164.84 248.6 164.54 Q 248.35 164.24 247.71 163.88 L 247.21 163.59 Q 246.28 163.06 245.91 162.59 Q 245.53 162.13 245.53 161.51 Q 245.53 160.67 246.13 160.13 Q 246.74 159.59 247.68 159.59 Q 248.51 159.59 249.44 159.87 L 249.44 160.81 Q 248.3 160.36 247.73 160.36 Q 247.2 160.36 246.86 160.64 Q 246.51 160.93 246.51 161.36 Q 246.51 161.72 246.76 162 Q 247.02 162.27 247.69 162.66 L 248.21 162.95 Q 249.15 163.48 249.52 163.96 Q 249.89 164.43 249.89 165.1 Q 249.89 166.04 249.19 166.61 Q 248.5 167.18 247.35 167.18 M 247.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 254.93 167 L 254.93 159.77 L 255.96 159.77 L 255.96 166.23 L 259.21 166.23 L 259.21 167 M 254.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.93 167 L 262.93 159.77 L 265.12 159.77 Q 266.16 159.77 266.71 160.23 Q 267.27 160.69 267.27 161.57 Q 267.27 163.01 265.81 163.62 L 268.22 167 L 266.96 167 L 264.91 163.94 L 263.95 163.94 L 263.95 167 M 262.93 167 M 263.95 163.18 L 264.28 163.18 Q 266.21 163.18 266.21 161.66 Q 266.21 160.54 264.59 160.54 L 263.95 160.54 M 263.95 163.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 274.35 167.18 Q 273.62 167.18 272.49 166.86 L 272.49 165.85 Q 273.71 166.41 274.5 166.41 Q 275.1 166.41 275.47 166.1 Q 275.84 165.78 275.84 165.26 Q 275.84 164.84 275.6 164.54 Q 275.35 164.24 274.71 163.88 L 274.21 163.59 Q 273.28 163.06 272.91 162.59 Q 272.53 162.13 272.53 161.51 Q 272.53 160.67 273.13 160.13 Q 273.74 159.59 274.68 159.59 Q 275.51 159.59 276.44 159.87 L 276.44 160.81 Q 275.3 160.36 274.73 160.36 Q 274.2 160.36 273.86 160.64 Q 273.51 160.93 273.51 161.36 Q 273.51 161.72 273.76 162 Q 274.02 162.27 274.69 162.66 L 275.21 162.95 Q 276.15 163.48 276.52 163.96 Q 276.89 164.43 276.89 165.1 Q 276.89 166.04 276.19 166.61 Q 275.5 167.18 274.35 167.18 M 274.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 281.93 167 L 281.93 159.77 L 282.96 159.77 L 282.96 166.23 L 286.21 166.23 L 286.21 167 M 281.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 289.93 167 L 289.93 159.77 L 291.9 159.77 Q 293.21 159.77 293.78 160.22 Q 294.35 160.66 294.35 161.67 Q 294.35 162.82 293.57 163.47 Q 292.79 164.13 291.4 164.13 L 290.95 164.13 L 290.95 167 M 289.93 167 M 290.95 163.35 L 291.36 163.35 Q 292.28 163.35 292.77 162.93 Q 293.27 162.51 293.27 161.75 Q 293.27 161.1 292.88 160.82 Q 292.49 160.54 291.58 160.54 L 290.95 160.54 M 290.95 163.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 299.93 167 L 299.93 159.77 L 303.97 159.77 L 303.97 160.54 L 300.96 160.54 L 300.96 162.96 L 303.49 162.96 L 303.49 163.72 L 300.96 163.72 L 300.96 167 M 299.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 311.59 164.24 L 310.36 161.12 L 309.13 164.24 M 311.59 164.24 M 312.68 167 L 311.89 165 L 308.83 165 L 308.04 167 L 307.08 167 L 309.95 159.77 L 310.96 159.77 L 313.79 167 M 312.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 316.93 167 L 316.93 159.77 L 317.94 159.77 L 321.58 165.35 L 321.58 159.77 L 322.46 159.77 L 322.46 167 L 321.45 167 L 317.81 161.42 L 317.81 167 M 316.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 327.65 167 L 327.65 160.54 L 325.09 160.54 L 325.09 159.77 L 331.24 159.77 L 331.24 160.54 L 328.68 160.54 L 328.68 167 M 327.65 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 340.35 168.45 Q 338.64 167.89 337.49 167.13 Q 337.03 167.18 336.78 167.18 Q 335.33 167.18 334.42 166.13 Q 333.51 165.07 333.51 163.39 Q 333.51 161.66 334.43 160.63 Q 335.35 159.59 336.89 159.59 Q 338.43 159.59 339.35 160.63 Q 340.27 161.66 340.27 163.4 Q 340.27 165.89 338.42 166.85 Q 339.66 167.4 341 167.63 M 340.35 168.45 M 336.86 166.41 Q 337.97 166.41 338.57 165.62 Q 339.18 164.82 339.18 163.37 Q 339.18 161.96 338.57 161.16 Q 337.97 160.36 336.89 160.36 Q 335.81 160.36 335.2 161.16 Q 334.6 161.96 334.6 163.38 Q 334.6 164.79 335.2 165.6 Q 335.8 166.41 336.86 166.41 M 336.86 166.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 164.47 L 343.72 163.75 L 348.06 163.75 L 348.06 164.47 M 343.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 164.47 L 352.72 163.75 L 357.06 163.75 L 357.06 164.47 M 352.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 364.35 167.18 Q 363.62 167.18 362.49 166.86 L 362.49 165.85 Q 363.71 166.41 364.5 166.41 Q 365.1 166.41 365.47 166.1 Q 365.84 165.78 365.84 165.26 Q 365.84 164.84 365.6 164.54 Q 365.35 164.24 364.71 163.88 L 364.21 163.59 Q 363.28 163.06 362.91 162.59 Q 362.53 162.13 362.53 161.51 Q 362.53 160.67 363.13 160.13 Q 363.74 159.59 364.68 159.59 Q 365.51 159.59 366.44 159.87 L 366.44 160.81 Q 365.3 160.36 364.73 160.36 Q 364.2 160.36 363.86 160.64 Q 363.51 160.93 363.51 161.36 Q 363.51 161.72 363.76 162 Q 364.02 162.27 364.69 162.66 L 365.21 162.95 Q 366.15 163.48 366.52 163.96 Q 366.89 164.43 366.89 165.1 Q 366.89 166.04 366.19 166.61 Q 365.5 167.18 364.35 167.18 M 364.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 371.93 167 L 371.93 159.77 L 372.96 159.77 L 372.96 166.23 L 376.21 166.23 L 376.21 167 M 371.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 380.93 167 L 380.93 159.77 L 384.97 159.77 L 384.97 160.54 L 381.96 160.54 L 381.96 162.96 L 384.49 162.96 L 384.49 163.72 L 381.96 163.72 L 381.96 167 M 380.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 394.36 166.8 Q 393.05 167.18 392.07 167.18 Q 390.35 167.18 389.43 166.2 Q 388.51 165.22 388.51 163.39 Q 388.51 161.59 389.44 160.59 Q 390.37 159.59 392.06 159.59 Q 393.16 159.59 394.35 159.92 L 394.35 160.87 Q 392.86 160.36 392.06 160.36 Q 390.89 160.36 390.24 161.16 Q 389.6 161.95 389.6 163.4 Q 389.6 164.83 390.29 165.62 Q 390.98 166.41 392.23 166.41 Q 392.75 166.41 393.34 166.23 L 393.34 163.88 L 394.36 163.88 M 394.36 166.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 398.93 167 L 398.93 159.77 L 399.96 159.77 L 399.96 166.23 L 403.21 166.23 L 403.21 167 M 398.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.93 167 L 406.93 159.77 L 407.89 159.77 L 407.89 163.33 L 410.82 159.77 L 411.85 159.77 L 409.02 163.22 L 412.35 167 L 411.05 167 L 407.89 163.34 L 407.89 167 M 406.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 418.35 167.18 Q 417.62 167.18 416.49 166.86 L 416.49 165.85 Q 417.71 166.41 418.5 166.41 Q 419.1 166.41 419.47 166.1 Q 419.84 165.78 419.84 165.26 Q 419.84 164.84 419.6 164.54 Q 419.35 164.24 418.71 163.88 L 418.21 163.59 Q 417.28 163.06 416.91 162.59 Q 416.53 162.13 416.53 161.51 Q 416.53 160.67 417.13 160.13 Q 417.74 159.59 418.68 159.59 Q 419.51 159.59 420.44 159.87 L 420.44 160.81 Q 419.3 160.36 418.73 160.36 Q 418.2 160.36 417.86 160.64 Q 417.51 160.93 417.51 161.36 Q 417.51 161.72 417.76 162 Q 418.02 162.27 418.69 162.66 L 419.21 162.95 Q 420.15 163.48 420.52 163.96 Q 420.89 164.43 420.89 165.1 Q 420.89 166.04 420.19 166.61 Q 419.5 167.18 418.35 167.18 M 418.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 164.47 L 424.72 163.75 L 429.06 163.75 L 429.06 164.47 M 424.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 436.35 167.18 Q 435.62 167.18 434.49 166.86 L 434.49 165.85 Q 435.71 166.41 436.5 166.41 Q 437.1 166.41 437.47 166.1 Q 437.84 165.78 437.84 165.26 Q 437.84 164.84 437.6 164.54 Q 437.35 164.24 436.71 163.88 L 436.21 163.59 Q 435.28 163.06 434.91 162.59 Q 434.53 162.13 434.53 161.51 Q 434.53 160.67 435.13 160.13 Q 435.74 159.59 436.68 159.59 Q 437.51 159.59 438.44 159.87 L 438.44 160.81 Q 437.3 160.36 436.73 160.36 Q 436.2 160.36 435.86 160.64 Q 435.51 160.93 435.51 161.36 Q 435.51 161.72 435.76 162 Q 436.02 162.27 436.69 162.66 L 437.21 162.95 Q 438.15 163.48 438.52 163.96 Q 438.89 164.43 438.89 165.1 Q 438.89 166.04 438.19 166.61 Q 437.5 167.18 436.35 167.18 M 436.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 444.65 167 L 444.65 160.54 L 442.09 160.54 L 442.09 159.77 L 448.24 159.77 L 448.24 160.54 L 445.68 160.54 L 445.68 167 M 444.65 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 455.59 164.24 L 454.36 161.12 L 453.13 164.24 M 455.59 164.24 M 456.68 167 L 455.89 165 L 452.83 165 L 452.04 167 L 451.08 167 L 453.95 159.77 L 454.96 159.77 L 457.79 167 M 456.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.93 167 L 460.93 159.77 L 463.12 159.77 Q 464.16 159.77 464.71 160.23 Q 465.27 160.69 465.27 161.57 Q 465.27 163.01 463.81 163.62 L 466.22 167 L 464.96 167 L 462.91 163.94 L 461.95 163.94 L 461.95 167 M 460.93 167 M 461.95 163.18 L 462.28 163.18 Q 464.21 163.18 464.21 161.66 Q 464.21 160.54 462.59 160.54 L 461.95 160.54 M 461.95 163.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 475.36 166.8 Q 474.05 167.18 473.07 167.18 Q 471.35 167.18 470.43 166.2 Q 469.51 165.22 469.51 163.39 Q 469.51 161.59 470.44 160.59 Q 471.37 159.59 473.06 159.59 Q 474.16 159.59 475.35 159.92 L 475.35 160.87 Q 473.86 160.36 473.06 160.36 Q 471.89 160.36 471.24 161.16 Q 470.6 161.95 470.6 163.4 Q 470.6 164.83 471.29 165.62 Q 471.98 166.41 473.23 166.41 Q 473.75 166.41 474.34 166.23 L 474.34 163.88 L 475.36 163.88 M 475.36 166.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 484.36 166.8 Q 483.05 167.18 482.07 167.18 Q 480.35 167.18 479.43 166.2 Q 478.51 165.22 478.51 163.39 Q 478.51 161.59 479.44 160.59 Q 480.37 159.59 482.06 159.59 Q 483.16 159.59 484.35 159.92 L 484.35 160.87 Q 482.86 160.36 482.06 160.36 Q 480.89 160.36 480.24 161.16 Q 479.6 161.95 479.6 163.4 Q 479.6 164.83 480.29 165.62 Q 480.98 166.41 482.23 166.41 Q 482.75 166.41 483.34 166.23 L 483.34 163.88 L 484.36 163.88 M 484.36 166.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 487.93 167 L 487.93 159.77 L 490.12 159.77 Q 491.16 159.77 491.71 160.23 Q 492.27 160.69 492.27 161.57 Q 492.27 163.01 490.81 163.62 L 493.22 167 L 491.96 167 L 489.91 163.94 L 488.95 163.94 L 488.95 167 M 487.93 167 M 488.95 163.18 L 489.28 163.18 Q 491.21 163.18 491.21 161.66 Q 491.21 160.54 489.59 160.54 L 488.95 160.54 M 488.95 163.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 498.91 167 L 496.18 159.77 L 497.2 159.77 L 499.44 165.69 L 501.6 159.77 L 502.49 159.77 L 499.87 167 M 498.91 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 507.65 167 L 507.65 160.54 L 505.09 160.54 L 505.09 159.77 L 511.24 159.77 L 511.24 160.54 L 508.68 160.54 L 508.68 167 M 507.65 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 518.59 164.24 L 517.36 161.12 L 516.13 164.24 M 518.59 164.24 M 519.68 167 L 518.89 165 L 515.83 165 L 515.04 167 L 514.08 167 L 516.95 159.77 L 517.96 159.77 L 520.79 167 M 519.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 522.93 167 L 522.93 159.77 L 524.35 159.77 L 526.36 165.36 L 528.42 159.77 L 529.69 159.77 L 529.69 167 L 528.73 167 L 528.73 161.12 L 526.74 166.52 L 525.75 166.52 L 523.81 161.11 L 523.81 167 M 522.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 164.24 L 535.36 161.12 L 534.13 164.24 M 536.59 164.24 M 537.68 167 L 536.89 165 L 533.83 165 L 533.04 167 L 532.08 167 L 534.95 159.77 L 535.96 159.77 L 538.79 167 M 537.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 543.65 167 L 543.65 160.54 L 541.09 160.54 L 541.09 159.77 L 547.24 159.77 L 547.24 160.54 L 544.68 160.54 L 544.68 167 M 543.65 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 167 L 552.5 163.98 L 550.08 159.77 L 551.25 159.77 L 553.13 163.04 L 555.15 159.77 L 556.1 159.77 L 553.52 163.96 L 553.52 167 M 552.5 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 167 L 559.93 159.77 L 560.89 159.77 L 560.89 163.33 L 563.82 159.77 L 564.85 159.77 L 562.02 163.22 L 565.35 167 L 564.05 167 L 560.89 163.34 L 560.89 167 M 559.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 167 L 568.18 159.77 L 569.2 159.77 L 571.44 165.69 L 573.6 159.77 L 574.49 159.77 L 571.87 167 M 570.91 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 167 L 577.93 159.77 L 578.89 159.77 L 578.89 163.33 L 581.82 159.77 L 582.85 159.77 L 580.02 163.22 L 583.35 167 L 582.05 167 L 578.89 163.34 L 578.89 167 M 577.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 167 L 587.93 159.77 L 591.97 159.77 L 591.97 160.54 L 588.96 160.54 L 588.96 162.96 L 591.49 162.96 L 591.49 163.72 L 588.96 163.72 L 588.96 167 M 587.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 167 L 597.93 159.77 L 598.95 159.77 L 598.95 167 M 597.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 167 L 606.65 160.54 L 604.09 160.54 L 604.09 159.77 L 610.24 159.77 L 610.24 160.54 L 607.68 160.54 L 607.68 167 M 606.65 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 167 L 613.93 159.77 L 615.9 159.77 Q 617.21 159.77 617.78 160.22 Q 618.35 160.66 618.35 161.67 Q 618.35 162.82 617.57 163.47 Q 616.79 164.13 615.4 164.13 L 614.95 164.13 L 614.95 167 M 613.93 167 M 614.95 163.35 L 615.36 163.35 Q 616.28 163.35 616.77 162.93 Q 617.27 162.51 617.27 161.75 Q 617.27 161.1 616.88 160.82 Q 616.49 160.54 615.58 160.54 L 614.95 160.54 M 614.95 163.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 623.93 167 L 623.93 159.77 L 627.97 159.77 L 627.97 160.54 L 624.96 160.54 L 624.96 162.86 L 627.48 162.86 L 627.48 163.62 L 624.96 163.62 L 624.96 166.23 L 628.18 166.23 L 628.18 167 M 623.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 166.8 Q 636.05 167.18 635.07 167.18 Q 633.35 167.18 632.43 166.2 Q 631.51 165.22 631.51 163.39 Q 631.51 161.59 632.44 160.59 Q 633.37 159.59 635.06 159.59 Q 636.16 159.59 637.35 159.92 L 637.35 160.87 Q 635.86 160.36 635.06 160.36 Q 633.89 160.36 633.24 161.16 Q 632.6 161.95 632.6 163.4 Q 632.6 164.83 633.29 165.62 Q 633.98 166.41 635.23 166.41 Q 635.75 166.41 636.34 166.23 L 636.34 163.88 L 637.36 163.88 M 637.36 166.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 641.93 167 L 641.93 159.77 L 645.97 159.77 L 645.97 160.54 L 642.96 160.54 L 642.96 162.86 L 645.48 162.86 L 645.48 163.62 L 642.96 163.62 L 642.96 166.23 L 646.18 166.23 L 646.18 167 M 641.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 655.35 168.45 Q 653.64 167.89 652.49 167.13 Q 652.03 167.18 651.78 167.18 Q 650.33 167.18 649.42 166.13 Q 648.51 165.07 648.51 163.39 Q 648.51 161.66 649.43 160.63 Q 650.35 159.59 651.89 159.59 Q 653.43 159.59 654.35 160.63 Q 655.27 161.66 655.27 163.4 Q 655.27 165.89 653.42 166.85 Q 654.66 167.4 656 167.63 M 655.35 168.45 M 651.86 166.41 Q 652.97 166.41 653.57 165.62 Q 654.18 164.82 654.18 163.37 Q 654.18 161.96 653.57 161.16 Q 652.97 160.36 651.89 160.36 Q 650.81 160.36 650.2 161.16 Q 649.6 161.96 649.6 163.38 Q 649.6 164.79 650.2 165.6 Q 650.8 166.41 651.86 166.41 M 651.86 166.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 167 L 659.93 159.77 L 663.97 159.77 L 663.97 160.54 L 660.96 160.54 L 660.96 162.86 L 663.48 162.86 L 663.48 163.62 L 660.96 163.62 L 660.96 166.23 L 664.18 166.23 L 664.18 167 M 659.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 669.91 167 L 667.18 159.77 L 668.2 159.77 L 670.44 165.69 L 672.6 159.77 L 673.49 159.77 L 670.87 167 M 669.91 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 677.93 167 L 677.93 159.77 L 681.97 159.77 L 681.97 160.54 L 678.96 160.54 L 678.96 162.86 L 681.48 162.86 L 681.48 163.62 L 678.96 163.62 L 678.96 166.23 L 682.18 166.23 L 682.18 167 M 677.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 167.18 Q 687.34 167.18 686.43 166.19 Q 685.51 165.2 685.51 163.39 Q 685.51 161.58 686.44 160.59 Q 687.38 159.59 689.08 159.59 Q 690.05 159.59 691.35 159.91 L 691.35 160.87 Q 689.87 160.36 689.06 160.36 Q 687.89 160.36 687.24 161.16 Q 686.6 161.95 686.6 163.4 Q 686.6 164.78 687.29 165.58 Q 687.97 166.38 689.17 166.38 Q 690.19 166.38 691.36 165.75 L 691.36 166.63 Q 690.29 167.18 689.03 167.18 M 689.03 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 695.93 167 L 695.93 159.77 L 699.97 159.77 L 699.97 160.54 L 696.96 160.54 L 696.96 162.86 L 699.48 162.86 L 699.48 163.62 L 696.96 163.62 L 696.96 166.23 L 700.18 166.23 L 700.18 167 M 695.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 704.93 167 L 704.93 159.77 L 708.97 159.77 L 708.97 160.54 L 705.96 160.54 L 705.96 162.86 L 708.48 162.86 L 708.48 163.62 L 705.96 163.62 L 705.96 166.23 L 709.18 166.23 L 709.18 167 M 704.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 167 L 712.93 159.77 L 715.33 159.77 Q 716.41 159.77 717.07 160.01 Q 717.73 160.25 718.22 160.82 Q 718.98 161.73 718.98 163.22 Q 718.98 165.02 718.03 166.01 Q 717.08 167 715.35 167 M 712.93 167 M 713.96 166.23 L 715.27 166.23 Q 716.68 166.23 717.26 165.48 Q 717.89 164.67 717.89 163.31 Q 717.89 162.04 717.27 161.31 Q 716.9 160.87 716.38 160.7 Q 715.85 160.54 714.8 160.54 L 713.96 160.54 M 713.96 166.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 167 L 721.18 159.77 L 722.2 159.77 L 724.44 165.69 L 726.6 159.77 L 727.49 159.77 L 724.87 167 M 723.91 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 167 L 732.5 163.98 L 730.08 159.77 L 731.25 159.77 L 733.13 163.04 L 735.15 159.77 L 736.1 159.77 L 733.52 163.96 L 733.52 167 M 732.5 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.91 167 L 739.18 159.77 L 740.2 159.77 L 742.44 165.69 L 744.6 159.77 L 745.49 159.77 L 742.87 167 M 741.91 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 167 L 749.93 159.77 L 750.96 159.77 L 750.96 166.23 L 754.21 166.23 L 754.21 167 M 749.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 167 L 757.93 159.77 L 760.33 159.77 Q 761.41 159.77 762.07 160.01 Q 762.73 160.25 763.22 160.82 Q 763.98 161.73 763.98 163.22 Q 763.98 165.02 763.03 166.01 Q 762.08 167 760.35 167 M 757.93 167 M 758.96 166.23 L 760.27 166.23 Q 761.68 166.23 762.26 165.48 Q 762.89 164.67 762.89 163.31 Q 762.89 162.04 762.27 161.31 Q 761.9 160.87 761.38 160.7 Q 760.85 160.54 759.8 160.54 L 758.96 160.54 M 758.96 166.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 770.59 164.24 L 769.36 161.12 L 768.13 164.24 M 770.59 164.24 M 771.68 167 L 770.89 165 L 767.83 165 L 767.04 167 L 766.08 167 L 768.95 159.77 L 769.96 159.77 L 772.79 167 M 771.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 164.24 L 778.36 161.12 L 777.13 164.24 M 779.59 164.24 M 780.68 167 L 779.89 165 L 776.83 165 L 776.04 167 L 775.08 167 L 777.95 159.77 L 778.96 159.77 L 781.79 167 M 780.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 167 L 785.93 159.77 L 789.97 159.77 L 789.97 160.54 L 786.96 160.54 L 786.96 162.86 L 789.48 162.86 L 789.48 163.62 L 786.96 163.62 L 786.96 166.23 L 790.18 166.23 L 790.18 167 M 785.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 167 L 794.93 159.77 L 798.97 159.77 L 798.97 160.54 L 795.96 160.54 L 795.96 162.86 L 798.48 162.86 L 798.48 163.62 L 795.96 163.62 L 795.96 166.23 L 799.18 166.23 L 799.18 167 M 794.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 806.59 164.24 L 805.36 161.12 L 804.13 164.24 M 806.59 164.24 M 807.68 167 L 806.89 165 L 803.83 165 L 803.04 167 L 802.08 167 L 804.95 159.77 L 805.96 159.77 L 808.79 167 M 807.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 166.8 Q 816.05 167.18 815.07 167.18 Q 813.35 167.18 812.43 166.2 Q 811.51 165.22 811.51 163.39 Q 811.51 161.59 812.44 160.59 Q 813.37 159.59 815.06 159.59 Q 816.16 159.59 817.35 159.92 L 817.35 160.87 Q 815.86 160.36 815.06 160.36 Q 813.89 160.36 813.24 161.16 Q 812.6 161.95 812.6 163.4 Q 812.6 164.83 813.29 165.62 Q 813.98 166.41 815.23 166.41 Q 815.75 166.41 816.34 166.23 L 816.34 163.88 L 817.36 163.88 M 817.36 166.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 821.93 167 L 821.93 159.77 L 822.96 159.77 L 822.96 166.23 L 826.21 166.23 L 826.21 167 M 821.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 167 L 829.93 159.77 L 832.33 159.77 Q 833.41 159.77 834.07 160.01 Q 834.73 160.25 835.22 160.82 Q 835.98 161.73 835.98 163.22 Q 835.98 165.02 835.03 166.01 Q 834.08 167 832.35 167 M 829.93 167 M 830.96 166.23 L 832.27 166.23 Q 833.68 166.23 834.26 165.48 Q 834.89 164.67 834.89 163.31 Q 834.89 162.04 834.27 161.31 Q 833.9 160.87 833.38 160.7 Q 832.85 160.54 831.8 160.54 L 830.96 160.54 M 830.96 166.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 167 L 839.93 159.77 L 840.96 159.77 L 840.96 166.23 L 844.21 166.23 L 844.21 167 M 839.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 167 L 847.93 159.77 L 849.9 159.77 Q 851.21 159.77 851.78 160.22 Q 852.35 160.66 852.35 161.67 Q 852.35 162.82 851.57 163.47 Q 850.79 164.13 849.4 164.13 L 848.95 164.13 L 848.95 167 M 847.93 167 M 848.95 163.35 L 849.36 163.35 Q 850.28 163.35 850.77 162.93 Q 851.27 162.51 851.27 161.75 Q 851.27 161.1 850.88 160.82 Q 850.49 160.54 849.58 160.54 L 848.95 160.54 M 848.95 163.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 167 L 858.5 163.98 L 856.08 159.77 L 857.25 159.77 L 859.13 163.04 L 861.15 159.77 L 862.1 159.77 L 859.52 163.96 L 859.52 167 M 858.5 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 167.18 Q 867.62 167.18 866.49 166.86 L 866.49 165.85 Q 867.71 166.41 868.5 166.41 Q 869.1 166.41 869.47 166.1 Q 869.84 165.78 869.84 165.26 Q 869.84 164.84 869.6 164.54 Q 869.35 164.24 868.71 163.88 L 868.21 163.59 Q 867.28 163.06 866.91 162.59 Q 866.53 162.13 866.53 161.51 Q 866.53 160.67 867.13 160.13 Q 867.74 159.59 868.68 159.59 Q 869.51 159.59 870.44 159.87 L 870.44 160.81 Q 869.3 160.36 868.73 160.36 Q 868.2 160.36 867.86 160.64 Q 867.51 160.93 867.51 161.36 Q 867.51 161.72 867.76 162 Q 868.02 162.27 868.69 162.66 L 869.21 162.95 Q 870.15 163.48 870.52 163.96 Q 870.89 164.43 870.89 165.1 Q 870.89 166.04 870.19 166.61 Q 869.5 167.18 868.35 167.18 M 868.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 167.18 Q 876.34 167.18 875.43 166.19 Q 874.51 165.2 874.51 163.39 Q 874.51 161.58 875.44 160.59 Q 876.38 159.59 878.08 159.59 Q 879.05 159.59 880.35 159.91 L 880.35 160.87 Q 878.87 160.36 878.06 160.36 Q 876.89 160.36 876.24 161.16 Q 875.6 161.95 875.6 163.4 Q 875.6 164.78 876.29 165.58 Q 876.97 166.38 878.17 166.38 Q 879.19 166.38 880.36 165.75 L 880.36 166.63 Q 879.29 167.18 878.03 167.18 M 878.03 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 167 L 883.93 159.77 L 886.12 159.77 Q 887.16 159.77 887.71 160.23 Q 888.27 160.69 888.27 161.57 Q 888.27 163.01 886.81 163.62 L 889.22 167 L 887.96 167 L 885.91 163.94 L 884.95 163.94 L 884.95 167 M 883.93 167 M 884.95 163.18 L 885.28 163.18 Q 887.21 163.18 887.21 161.66 Q 887.21 160.54 885.59 160.54 L 884.95 160.54 M 884.95 163.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 164.24 L 895.36 161.12 L 894.13 164.24 M 896.59 164.24 M 897.68 167 L 896.89 165 L 893.83 165 L 893.04 167 L 892.08 167 L 894.95 159.77 L 895.96 159.77 L 898.79 167 M 897.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 166.8 Q 906.05 167.18 905.07 167.18 Q 903.35 167.18 902.43 166.2 Q 901.51 165.22 901.51 163.39 Q 901.51 161.59 902.44 160.59 Q 903.37 159.59 905.06 159.59 Q 906.16 159.59 907.35 159.92 L 907.35 160.87 Q 905.86 160.36 905.06 160.36 Q 903.89 160.36 903.24 161.16 Q 902.6 161.95 902.6 163.4 Q 902.6 164.83 903.29 165.62 Q 903.98 166.41 905.23 166.41 Q 905.75 166.41 906.34 166.23 L 906.34 163.88 L 907.36 163.88 M 907.36 166.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 167.18 Q 912.62 167.18 911.49 166.86 L 911.49 165.85 Q 912.71 166.41 913.5 166.41 Q 914.1 166.41 914.47 166.1 Q 914.84 165.78 914.84 165.26 Q 914.84 164.84 914.6 164.54 Q 914.35 164.24 913.71 163.88 L 913.21 163.59 Q 912.28 163.06 911.91 162.59 Q 911.53 162.13 911.53 161.51 Q 911.53 160.67 912.13 160.13 Q 912.74 159.59 913.68 159.59 Q 914.51 159.59 915.44 159.87 L 915.44 160.81 Q 914.3 160.36 913.73 160.36 Q 913.2 160.36 912.86 160.64 Q 912.51 160.93 912.51 161.36 Q 912.51 161.72 912.76 162 Q 913.02 162.27 913.69 162.66 L 914.21 162.95 Q 915.15 163.48 915.52 163.96 Q 915.89 164.43 915.89 165.1 Q 915.89 166.04 915.19 166.61 Q 914.5 167.18 913.35 167.18 M 913.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 167.18 Q 921.34 167.18 920.43 166.19 Q 919.51 165.2 919.51 163.39 Q 919.51 161.58 920.44 160.59 Q 921.38 159.59 923.08 159.59 Q 924.05 159.59 925.35 159.91 L 925.35 160.87 Q 923.87 160.36 923.06 160.36 Q 921.89 160.36 921.24 161.16 Q 920.6 161.95 920.6 163.4 Q 920.6 164.78 921.29 165.58 Q 921.97 166.38 923.17 166.38 Q 924.19 166.38 925.36 165.75 L 925.36 166.63 Q 924.29 167.18 923.03 167.18 M 923.03 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 167.18 Q 930.62 167.18 929.49 166.86 L 929.49 165.85 Q 930.71 166.41 931.5 166.41 Q 932.1 166.41 932.47 166.1 Q 932.84 165.78 932.84 165.26 Q 932.84 164.84 932.6 164.54 Q 932.35 164.24 931.71 163.88 L 931.21 163.59 Q 930.28 163.06 929.91 162.59 Q 929.53 162.13 929.53 161.51 Q 929.53 160.67 930.13 160.13 Q 930.74 159.59 931.68 159.59 Q 932.51 159.59 933.44 159.87 L 933.44 160.81 Q 932.3 160.36 931.73 160.36 Q 931.2 160.36 930.86 160.64 Q 930.51 160.93 930.51 161.36 Q 930.51 161.72 930.76 162 Q 931.02 162.27 931.69 162.66 L 932.21 162.95 Q 933.15 163.48 933.52 163.96 Q 933.89 164.43 933.89 165.1 Q 933.89 166.04 933.19 166.61 Q 932.5 167.18 931.35 167.18 M 931.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 167.18 Q 939.62 167.18 938.49 166.86 L 938.49 165.85 Q 939.71 166.41 940.5 166.41 Q 941.1 166.41 941.47 166.1 Q 941.84 165.78 941.84 165.26 Q 941.84 164.84 941.6 164.54 Q 941.35 164.24 940.71 163.88 L 940.21 163.59 Q 939.28 163.06 938.91 162.59 Q 938.53 162.13 938.53 161.51 Q 938.53 160.67 939.13 160.13 Q 939.74 159.59 940.68 159.59 Q 941.51 159.59 942.44 159.87 L 942.44 160.81 Q 941.3 160.36 940.73 160.36 Q 940.2 160.36 939.86 160.64 Q 939.51 160.93 939.51 161.36 Q 939.51 161.72 939.76 162 Q 940.02 162.27 940.69 162.66 L 941.21 162.95 Q 942.15 163.48 942.52 163.96 Q 942.89 164.43 942.89 165.1 Q 942.89 166.04 942.19 166.61 Q 941.5 167.18 940.35 167.18 M 940.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 167.18 Q 948.34 167.18 947.43 166.19 Q 946.51 165.2 946.51 163.39 Q 946.51 161.58 947.44 160.59 Q 948.38 159.59 950.08 159.59 Q 951.05 159.59 952.35 159.91 L 952.35 160.87 Q 950.87 160.36 950.06 160.36 Q 948.89 160.36 948.24 161.16 Q 947.6 161.95 947.6 163.4 Q 947.6 164.78 948.29 165.58 Q 948.97 166.38 950.17 166.38 Q 951.19 166.38 952.36 165.75 L 952.36 166.63 Q 951.29 167.18 950.03 167.18 M 950.03 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 164.24 L 958.36 161.12 L 957.13 164.24 M 959.59 164.24 M 960.68 167 L 959.89 165 L 956.83 165 L 956.04 167 L 955.08 167 L 957.95 159.77 L 958.96 159.77 L 961.79 167 M 960.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 166.8 Q 969.05 167.18 968.07 167.18 Q 966.35 167.18 965.43 166.2 Q 964.51 165.22 964.51 163.39 Q 964.51 161.59 965.44 160.59 Q 966.37 159.59 968.06 159.59 Q 969.16 159.59 970.35 159.92 L 970.35 160.87 Q 968.86 160.36 968.06 160.36 Q 966.89 160.36 966.24 161.16 Q 965.6 161.95 965.6 163.4 Q 965.6 164.83 966.29 165.62 Q 966.98 166.41 968.23 166.41 Q 968.75 166.41 969.34 166.23 L 969.34 163.88 L 970.36 163.88 M 970.36 166.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 167 L 973.93 159.77 L 974.89 159.77 L 974.89 163.33 L 977.82 159.77 L 978.85 159.77 L 976.02 163.22 L 979.35 167 L 978.05 167 L 974.89 163.34 L 974.89 167 M 973.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 167 L 982.18 159.77 L 983.2 159.77 L 985.44 165.69 L 987.6 159.77 L 988.49 159.77 L 985.87 167 M 984.91 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.91 167 L 991.18 159.77 L 992.2 159.77 L 994.44 165.69 L 996.6 159.77 L 997.49 159.77 L 994.87 167 M 993.91 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1003.35 167.18 Q 1002.62 167.18 1001.49 166.86 L 1001.49 165.85 Q 1002.71 166.41 1003.5 166.41 Q 1004.1 166.41 1004.47 166.1 Q 1004.84 165.78 1004.84 165.26 Q 1004.84 164.84 1004.6 164.54 Q 1004.35 164.24 1003.71 163.88 L 1003.21 163.59 Q 1002.28 163.06 1001.91 162.59 Q 1001.53 162.13 1001.53 161.51 Q 1001.53 160.67 1002.13 160.13 Q 1002.74 159.59 1003.68 159.59 Q 1004.51 159.59 1005.44 159.87 L 1005.44 160.81 Q 1004.3 160.36 1003.73 160.36 Q 1003.2 160.36 1002.86 160.64 Q 1002.51 160.93 1002.51 161.36 Q 1002.51 161.72 1002.76 162 Q 1003.02 162.27 1003.69 162.66 L 1004.21 162.95 Q 1005.15 163.48 1005.52 163.96 Q 1005.89 164.43 1005.89 165.1 Q 1005.89 166.04 1005.19 166.61 Q 1004.5 167.18 1003.35 167.18 M 1003.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 166.8 Q 1014.05 167.18 1013.07 167.18 Q 1011.35 167.18 1010.43 166.2 Q 1009.51 165.22 1009.51 163.39 Q 1009.51 161.59 1010.44 160.59 Q 1011.37 159.59 1013.06 159.59 Q 1014.16 159.59 1015.35 159.92 L 1015.35 160.87 Q 1013.86 160.36 1013.06 160.36 Q 1011.89 160.36 1011.24 161.16 Q 1010.6 161.95 1010.6 163.4 Q 1010.6 164.83 1011.29 165.62 Q 1011.98 166.41 1013.23 166.41 Q 1013.75 166.41 1014.34 166.23 L 1014.34 163.88 L 1015.36 163.88 M 1015.36 166.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1021.35 167.18 Q 1020.62 167.18 1019.49 166.86 L 1019.49 165.85 Q 1020.71 166.41 1021.5 166.41 Q 1022.1 166.41 1022.47 166.1 Q 1022.84 165.78 1022.84 165.26 Q 1022.84 164.84 1022.6 164.54 Q 1022.35 164.24 1021.71 163.88 L 1021.21 163.59 Q 1020.28 163.06 1019.91 162.59 Q 1019.53 162.13 1019.53 161.51 Q 1019.53 160.67 1020.13 160.13 Q 1020.74 159.59 1021.68 159.59 Q 1022.51 159.59 1023.44 159.87 L 1023.44 160.81 Q 1022.3 160.36 1021.73 160.36 Q 1021.2 160.36 1020.86 160.64 Q 1020.51 160.93 1020.51 161.36 Q 1020.51 161.72 1020.76 162 Q 1021.02 162.27 1021.69 162.66 L 1022.21 162.95 Q 1023.15 163.48 1023.52 163.96 Q 1023.89 164.43 1023.89 165.1 Q 1023.89 166.04 1023.19 166.61 Q 1022.5 167.18 1021.35 167.18 M 1021.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.93 167 L 1029.93 159.77 L 1030.95 159.77 L 1030.95 167 M 1029.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 167 L 1036.93 159.77 L 1039.33 159.77 Q 1040.41 159.77 1041.07 160.01 Q 1041.73 160.25 1042.22 160.82 Q 1042.98 161.73 1042.98 163.22 Q 1042.98 165.02 1042.03 166.01 Q 1041.08 167 1039.35 167 M 1036.93 167 M 1037.96 166.23 L 1039.27 166.23 Q 1040.68 166.23 1041.26 165.48 Q 1041.89 164.67 1041.89 163.31 Q 1041.89 162.04 1041.27 161.31 Q 1040.9 160.87 1040.38 160.7 Q 1039.85 160.54 1038.8 160.54 L 1037.96 160.54 M 1037.96 166.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 168.45 Q 1049.64 167.89 1048.49 167.13 Q 1048.03 167.18 1047.78 167.18 Q 1046.33 167.18 1045.42 166.13 Q 1044.51 165.07 1044.51 163.39 Q 1044.51 161.66 1045.43 160.63 Q 1046.35 159.59 1047.89 159.59 Q 1049.43 159.59 1050.35 160.63 Q 1051.27 161.66 1051.27 163.4 Q 1051.27 165.89 1049.42 166.85 Q 1050.66 167.4 1052 167.63 M 1051.35 168.45 M 1047.86 166.41 Q 1048.97 166.41 1049.57 165.62 Q 1050.18 164.82 1050.18 163.37 Q 1050.18 161.96 1049.57 161.16 Q 1048.97 160.36 1047.89 160.36 Q 1046.81 160.36 1046.2 161.16 Q 1045.6 161.96 1045.6 163.38 Q 1045.6 164.79 1046.2 165.6 Q 1046.8 166.41 1047.86 166.41 M 1047.86 166.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1057.35 167.18 Q 1056.62 167.18 1055.49 166.86 L 1055.49 165.85 Q 1056.71 166.41 1057.5 166.41 Q 1058.1 166.41 1058.47 166.1 Q 1058.84 165.78 1058.84 165.26 Q 1058.84 164.84 1058.6 164.54 Q 1058.35 164.24 1057.71 163.88 L 1057.21 163.59 Q 1056.28 163.06 1055.91 162.59 Q 1055.53 162.13 1055.53 161.51 Q 1055.53 160.67 1056.13 160.13 Q 1056.74 159.59 1057.68 159.59 Q 1058.51 159.59 1059.44 159.87 L 1059.44 160.81 Q 1058.3 160.36 1057.73 160.36 Q 1057.2 160.36 1056.86 160.64 Q 1056.51 160.93 1056.51 161.36 Q 1056.51 161.72 1056.76 162 Q 1057.02 162.27 1057.69 162.66 L 1058.21 162.95 Q 1059.15 163.48 1059.52 163.96 Q 1059.89 164.43 1059.89 165.1 Q 1059.89 166.04 1059.19 166.61 Q 1058.5 167.18 1057.35 167.18 M 1057.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 167 L 1063.93 159.77 L 1066.33 159.77 Q 1067.41 159.77 1068.07 160.01 Q 1068.73 160.25 1069.22 160.82 Q 1069.98 161.73 1069.98 163.22 Q 1069.98 165.02 1069.03 166.01 Q 1068.08 167 1066.35 167 M 1063.93 167 M 1064.96 166.23 L 1066.27 166.23 Q 1067.68 166.23 1068.26 165.48 Q 1068.89 164.67 1068.89 163.31 Q 1068.89 162.04 1068.27 161.31 Q 1067.9 160.87 1067.38 160.7 Q 1066.85 160.54 1065.8 160.54 L 1064.96 160.54 M 1064.96 166.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.35 168.45 Q 1076.64 167.89 1075.49 167.13 Q 1075.03 167.18 1074.78 167.18 Q 1073.33 167.18 1072.42 166.13 Q 1071.51 165.07 1071.51 163.39 Q 1071.51 161.66 1072.43 160.63 Q 1073.35 159.59 1074.89 159.59 Q 1076.43 159.59 1077.35 160.63 Q 1078.27 161.66 1078.27 163.4 Q 1078.27 165.89 1076.42 166.85 Q 1077.66 167.4 1079 167.63 M 1078.35 168.45 M 1074.86 166.41 Q 1075.97 166.41 1076.57 165.62 Q 1077.18 164.82 1077.18 163.37 Q 1077.18 161.96 1076.57 161.16 Q 1075.97 160.36 1074.89 160.36 Q 1073.81 160.36 1073.2 161.16 Q 1072.6 161.96 1072.6 163.38 Q 1072.6 164.79 1073.2 165.6 Q 1073.8 166.41 1074.86 166.41 M 1074.86 166.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1084.35 167.18 Q 1083.62 167.18 1082.49 166.86 L 1082.49 165.85 Q 1083.71 166.41 1084.5 166.41 Q 1085.1 166.41 1085.47 166.1 Q 1085.84 165.78 1085.84 165.26 Q 1085.84 164.84 1085.6 164.54 Q 1085.35 164.24 1084.71 163.88 L 1084.21 163.59 Q 1083.28 163.06 1082.91 162.59 Q 1082.53 162.13 1082.53 161.51 Q 1082.53 160.67 1083.13 160.13 Q 1083.74 159.59 1084.68 159.59 Q 1085.51 159.59 1086.44 159.87 L 1086.44 160.81 Q 1085.3 160.36 1084.73 160.36 Q 1084.2 160.36 1083.86 160.64 Q 1083.51 160.93 1083.51 161.36 Q 1083.51 161.72 1083.76 162 Q 1084.02 162.27 1084.69 162.66 L 1085.21 162.95 Q 1086.15 163.48 1086.52 163.96 Q 1086.89 164.43 1086.89 165.1 Q 1086.89 166.04 1086.19 166.61 Q 1085.5 167.18 1084.35 167.18 M 1084.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 167 L 1091.93 159.77 L 1095.97 159.77 L 1095.97 160.54 L 1092.96 160.54 L 1092.96 162.96 L 1095.49 162.96 L 1095.49 163.72 L 1092.96 163.72 L 1092.96 167 M 1091.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 167 L 1100.93 159.77 L 1101.96 159.77 L 1101.96 166.23 L 1105.21 166.23 L 1105.21 167 M 1100.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 167 L 1108.93 159.77 L 1111.33 159.77 Q 1112.41 159.77 1113.07 160.01 Q 1113.73 160.25 1114.22 160.82 Q 1114.98 161.73 1114.98 163.22 Q 1114.98 165.02 1114.03 166.01 Q 1113.08 167 1111.35 167 M 1108.93 167 M 1109.96 166.23 L 1111.27 166.23 Q 1112.68 166.23 1113.26 165.48 Q 1113.89 164.67 1113.89 163.31 Q 1113.89 162.04 1113.27 161.31 Q 1112.9 160.87 1112.38 160.7 Q 1111.85 160.54 1110.8 160.54 L 1109.96 160.54 M 1109.96 166.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 167 L 1117.93 159.77 L 1120.33 159.77 Q 1121.41 159.77 1122.07 160.01 Q 1122.73 160.25 1123.22 160.82 Q 1123.98 161.73 1123.98 163.22 Q 1123.98 165.02 1123.03 166.01 Q 1122.08 167 1120.35 167 M 1117.93 167 M 1118.96 166.23 L 1120.27 166.23 Q 1121.68 166.23 1122.26 165.48 Q 1122.89 164.67 1122.89 163.31 Q 1122.89 162.04 1122.27 161.31 Q 1121.9 160.87 1121.38 160.7 Q 1120.85 160.54 1119.8 160.54 L 1118.96 160.54 M 1118.96 166.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1126.72 164.47 L 1126.72 163.75 L 1131.06 163.75 L 1131.06 164.47 M 1126.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1135.72 164.47 L 1135.72 163.75 L 1140.06 163.75 L 1140.06 164.47 M 1135.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1144.72 164.47 L 1144.72 163.75 L 1149.06 163.75 L 1149.06 164.47 M 1144.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1153.72 164.47 L 1153.72 163.75 L 1158.06 163.75 L 1158.06 164.47 M 1153.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1162.72 164.47 L 1162.72 163.75 L 1167.06 163.75 L 1167.06 164.47 M 1162.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1171.72 164.47 L 1171.72 163.75 L 1176.06 163.75 L 1176.06 164.47 M 1171.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1180.72 164.47 L 1180.72 163.75 L 1185.06 163.75 L 1185.06 164.47 M 1180.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1189.72 164.47 L 1189.72 163.75 L 1194.06 163.75 L 1194.06 164.47 M 1189.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1198.72 164.47 L 1198.72 163.75 L 1203.06 163.75 L 1203.06 164.47 M 1198.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1207.72 164.47 L 1207.72 163.75 L 1212.06 163.75 L 1212.06 164.47 M 1207.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1216.72 164.47 L 1216.72 163.75 L 1221.06 163.75 L 1221.06 164.47 M 1216.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1225.72 164.47 L 1225.72 163.75 L 1230.06 163.75 L 1230.06 164.47 M 1225.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1234.72 164.47 L 1234.72 163.75 L 1239.06 163.75 L 1239.06 164.47 M 1234.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1243.72 164.47 L 1243.72 163.75 L 1248.06 163.75 L 1248.06 164.47 M 1243.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.72 164.47 L 1252.72 163.75 L 1257.06 163.75 L 1257.06 164.47 M 1252.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1261.72 164.47 L 1261.72 163.75 L 1266.06 163.75 L 1266.06 164.47 M 1261.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1270.72 164.47 L 1270.72 163.75 L 1275.06 163.75 L 1275.06 164.47 M 1270.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.72 164.47 L 1279.72 163.75 L 1284.06 163.75 L 1284.06 164.47 M 1279.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1288.72 164.47 L 1288.72 163.75 L 1293.06 163.75 L 1293.06 164.47 M 1288.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1297.72 164.47 L 1297.72 163.75 L 1302.06 163.75 L 1302.06 164.47 M 1297.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1306.72 164.47 L 1306.72 163.75 L 1311.06 163.75 L 1311.06 164.47 M 1306.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1315.72 164.47 L 1315.72 163.75 L 1320.06 163.75 L 1320.06 164.47 M 1315.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1324.72 164.47 L 1324.72 163.75 L 1329.06 163.75 L 1329.06 164.47 M 1324.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.72 164.47 L 1333.72 163.75 L 1338.06 163.75 L 1338.06 164.47 M 1333.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.72 164.47 L 1342.72 163.75 L 1347.06 163.75 L 1347.06 164.47 M 1342.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1351.72 164.47 L 1351.72 163.75 L 1356.06 163.75 L 1356.06 164.47 M 1351.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1360.72 164.47 L 1360.72 163.75 L 1365.06 163.75 L 1365.06 164.47 M 1360.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1369.72 164.47 L 1369.72 163.75 L 1374.06 163.75 L 1374.06 164.47 M 1369.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1378.72 164.47 L 1378.72 163.75 L 1383.06 163.75 L 1383.06 164.47 M 1378.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1387.72 164.47 L 1387.72 163.75 L 1392.06 163.75 L 1392.06 164.47 M 1387.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1396.72 164.47 L 1396.72 163.75 L 1401.06 163.75 L 1401.06 164.47 M 1396.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 164.47 L 1405.72 163.75 L 1410.06 163.75 L 1410.06 164.47 M 1405.72 164.47"/></g><rect x="0" y="169" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="169" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="169" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="169" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="169" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="169" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="169" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="169" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="169" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="169" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="639" y="169" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="169" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="169" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="169" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="702" y="169" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="169" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="169" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="169" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="169" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="774" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="169" width="27" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="169" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="169" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="169" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="169" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="169" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="169" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="169" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="169" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="169" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="169" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="169" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="169" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="169" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="169" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="169" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="169" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="169" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="169" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="169" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="169" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="169" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="169" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="169" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="169" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="169" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 180 L 0.93 172.77 L 2.35 172.77 L 4.36 178.36 L 6.42 172.77 L 7.69 172.77 L 7.69 180 L 6.73 180 L 6.73 174.12 L 4.74 179.52 L 3.75 179.52 L 1.81 174.11 L 1.81 180 M 0.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 177.24 L 13.36 174.12 L 12.13 177.24 M 14.59 177.24 M 15.68 180 L 14.89 178 L 11.83 178 L 11.04 180 L 10.08 180 L 12.95 172.77 L 13.96 172.77 L 16.79 180 M 15.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 21.65 180 L 21.65 173.54 L 19.09 173.54 L 19.09 172.77 L 25.24 172.77 L 25.24 173.54 L 22.68 173.54 L 22.68 180 M 21.65 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 30.91 180 L 28.18 172.77 L 29.2 172.77 L 31.44 178.69 L 33.6 172.77 L 34.49 172.77 L 31.87 180 M 30.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 38.93 180 L 38.93 172.77 L 39.96 172.77 L 39.96 179.23 L 43.21 179.23 L 43.21 180 M 38.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 52.36 179.8 Q 51.05 180.18 50.07 180.18 Q 48.35 180.18 47.43 179.2 Q 46.51 178.22 46.51 176.39 Q 46.51 174.59 47.44 173.59 Q 48.37 172.59 50.06 172.59 Q 51.16 172.59 52.35 172.92 L 52.35 173.87 Q 50.86 173.36 50.06 173.36 Q 48.89 173.36 48.24 174.16 Q 47.6 174.95 47.6 176.4 Q 47.6 177.83 48.29 178.62 Q 48.98 179.41 50.23 179.41 Q 50.75 179.41 51.34 179.23 L 51.34 176.88 L 52.36 176.88 M 52.36 179.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 58.35 180.18 Q 57.62 180.18 56.49 179.86 L 56.49 178.85 Q 57.71 179.41 58.5 179.41 Q 59.1 179.41 59.47 179.1 Q 59.84 178.78 59.84 178.26 Q 59.84 177.84 59.6 177.54 Q 59.35 177.24 58.71 176.88 L 58.21 176.59 Q 57.28 176.06 56.91 175.59 Q 56.53 175.13 56.53 174.51 Q 56.53 173.67 57.13 173.13 Q 57.74 172.59 58.68 172.59 Q 59.51 172.59 60.44 172.87 L 60.44 173.81 Q 59.3 173.36 58.73 173.36 Q 58.2 173.36 57.86 173.64 Q 57.51 173.93 57.51 174.36 Q 57.51 174.72 57.76 175 Q 58.02 175.27 58.69 175.66 L 59.21 175.95 Q 60.15 176.48 60.52 176.96 Q 60.89 177.43 60.89 178.1 Q 60.89 179.04 60.19 179.61 Q 59.5 180.18 58.35 180.18 M 58.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.93 180 L 64.93 172.77 L 66.9 172.77 Q 68.21 172.77 68.78 173.22 Q 69.35 173.66 69.35 174.67 Q 69.35 175.82 68.57 176.47 Q 67.79 177.13 66.4 177.13 L 65.95 177.13 L 65.95 180 M 64.93 180 M 65.95 176.35 L 66.36 176.35 Q 67.28 176.35 67.77 175.93 Q 68.27 175.51 68.27 174.75 Q 68.27 174.1 67.88 173.82 Q 67.49 173.54 66.58 173.54 L 65.95 173.54 M 65.95 176.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 73.93 180 L 73.93 172.77 L 76.12 172.77 Q 77.16 172.77 77.71 173.23 Q 78.27 173.69 78.27 174.57 Q 78.27 176.01 76.81 176.62 L 79.22 180 L 77.96 180 L 75.91 176.94 L 74.95 176.94 L 74.95 180 M 73.93 180 M 74.95 176.18 L 75.28 176.18 Q 77.21 176.18 77.21 174.66 Q 77.21 173.54 75.59 173.54 L 74.95 173.54 M 74.95 176.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 86.59 177.24 L 85.36 174.12 L 84.13 177.24 M 86.59 177.24 M 87.68 180 L 86.89 178 L 83.83 178 L 83.04 180 L 82.08 180 L 84.95 172.77 L 85.96 172.77 L 88.79 180 M 87.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 91.93 180 L 91.93 172.77 L 93.9 172.77 Q 95.21 172.77 95.78 173.22 Q 96.35 173.66 96.35 174.67 Q 96.35 175.82 95.57 176.47 Q 94.79 177.13 93.4 177.13 L 92.95 177.13 L 92.95 180 M 91.93 180 M 92.95 176.35 L 93.36 176.35 Q 94.28 176.35 94.77 175.93 Q 95.27 175.51 95.27 174.75 Q 95.27 174.1 94.88 173.82 Q 94.49 173.54 93.58 173.54 L 92.95 173.54 M 92.95 176.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 104.59 177.24 L 103.36 174.12 L 102.13 177.24 M 104.59 177.24 M 105.68 180 L 104.89 178 L 101.83 178 L 101.04 180 L 100.08 180 L 102.95 172.77 L 103.96 172.77 L 106.79 180 M 105.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 110.93 180 L 110.93 172.77 L 114.97 172.77 L 114.97 173.54 L 111.96 173.54 L 111.96 175.96 L 114.49 175.96 L 114.49 176.72 L 111.96 176.72 L 111.96 180 M 110.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 119.93 180 L 119.93 172.77 L 123.97 172.77 L 123.97 173.54 L 120.96 173.54 L 120.96 175.96 L 123.49 175.96 L 123.49 176.72 L 120.96 176.72 L 120.96 180 M 119.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 128.93 180 L 128.93 172.77 L 132.97 172.77 L 132.97 173.54 L 129.96 173.54 L 129.96 175.96 L 132.49 175.96 L 132.49 176.72 L 129.96 176.72 L 129.96 180 M 128.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 139.35 180.18 Q 138.62 180.18 137.49 179.86 L 137.49 178.85 Q 138.71 179.41 139.5 179.41 Q 140.1 179.41 140.47 179.1 Q 140.84 178.78 140.84 178.26 Q 140.84 177.84 140.6 177.54 Q 140.35 177.24 139.71 176.88 L 139.21 176.59 Q 138.28 176.06 137.91 175.59 Q 137.53 175.13 137.53 174.51 Q 137.53 173.67 138.13 173.13 Q 138.74 172.59 139.68 172.59 Q 140.51 172.59 141.44 172.87 L 141.44 173.81 Q 140.3 173.36 139.73 173.36 Q 139.2 173.36 138.86 173.64 Q 138.51 173.93 138.51 174.36 Q 138.51 174.72 138.76 175 Q 139.02 175.27 139.69 175.66 L 140.21 175.95 Q 141.15 176.48 141.52 176.96 Q 141.89 177.43 141.89 178.1 Q 141.89 179.04 141.19 179.61 Q 140.5 180.18 139.35 180.18 M 139.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 148.35 180.18 Q 147.62 180.18 146.49 179.86 L 146.49 178.85 Q 147.71 179.41 148.5 179.41 Q 149.1 179.41 149.47 179.1 Q 149.84 178.78 149.84 178.26 Q 149.84 177.84 149.6 177.54 Q 149.35 177.24 148.71 176.88 L 148.21 176.59 Q 147.28 176.06 146.91 175.59 Q 146.53 175.13 146.53 174.51 Q 146.53 173.67 147.13 173.13 Q 147.74 172.59 148.68 172.59 Q 149.51 172.59 150.44 172.87 L 150.44 173.81 Q 149.3 173.36 148.73 173.36 Q 148.2 173.36 147.86 173.64 Q 147.51 173.93 147.51 174.36 Q 147.51 174.72 147.76 175 Q 148.02 175.27 148.69 175.66 L 149.21 175.95 Q 150.15 176.48 150.52 176.96 Q 150.89 177.43 150.89 178.1 Q 150.89 179.04 150.19 179.61 Q 149.5 180.18 148.35 180.18 M 148.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 157.35 180.18 Q 156.62 180.18 155.49 179.86 L 155.49 178.85 Q 156.71 179.41 157.5 179.41 Q 158.1 179.41 158.47 179.1 Q 158.84 178.78 158.84 178.26 Q 158.84 177.84 158.6 177.54 Q 158.35 177.24 157.71 176.88 L 157.21 176.59 Q 156.28 176.06 155.91 175.59 Q 155.53 175.13 155.53 174.51 Q 155.53 173.67 156.13 173.13 Q 156.74 172.59 157.68 172.59 Q 158.51 172.59 159.44 172.87 L 159.44 173.81 Q 158.3 173.36 157.73 173.36 Q 157.2 173.36 156.86 173.64 Q 156.51 173.93 156.51 174.36 Q 156.51 174.72 156.76 175 Q 157.02 175.27 157.69 175.66 L 158.21 175.95 Q 159.15 176.48 159.52 176.96 Q 159.89 177.43 159.89 178.1 Q 159.89 179.04 159.19 179.61 Q 158.5 180.18 157.35 180.18 M 157.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 166.35 180.18 Q 165.62 180.18 164.49 179.86 L 164.49 178.85 Q 165.71 179.41 166.5 179.41 Q 167.1 179.41 167.47 179.1 Q 167.84 178.78 167.84 178.26 Q 167.84 177.84 167.6 177.54 Q 167.35 177.24 166.71 176.88 L 166.21 176.59 Q 165.28 176.06 164.91 175.59 Q 164.53 175.13 164.53 174.51 Q 164.53 173.67 165.13 173.13 Q 165.74 172.59 166.68 172.59 Q 167.51 172.59 168.44 172.87 L 168.44 173.81 Q 167.3 173.36 166.73 173.36 Q 166.2 173.36 165.86 173.64 Q 165.51 173.93 165.51 174.36 Q 165.51 174.72 165.76 175 Q 166.02 175.27 166.69 175.66 L 167.21 175.95 Q 168.15 176.48 168.52 176.96 Q 168.89 177.43 168.89 178.1 Q 168.89 179.04 168.19 179.61 Q 167.5 180.18 166.35 180.18 M 166.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 173.93 180 L 173.93 172.77 L 174.96 172.77 L 174.96 179.23 L 178.21 179.23 L 178.21 180 M 173.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 180 L 181.93 172.77 L 184.12 172.77 Q 185.16 172.77 185.71 173.23 Q 186.27 173.69 186.27 174.57 Q 186.27 176.01 184.81 176.62 L 187.22 180 L 185.96 180 L 183.91 176.94 L 182.95 176.94 L 182.95 180 M 181.93 180 M 182.95 176.18 L 183.28 176.18 Q 185.21 176.18 185.21 174.66 Q 185.21 173.54 183.59 173.54 L 182.95 173.54 M 182.95 176.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 194.59 177.24 L 193.36 174.12 L 192.13 177.24 M 194.59 177.24 M 195.68 180 L 194.89 178 L 191.83 178 L 191.04 180 L 190.08 180 L 192.95 172.77 L 193.96 172.77 L 196.79 180 M 195.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 203.59 177.24 L 202.36 174.12 L 201.13 177.24 M 203.59 177.24 M 204.68 180 L 203.89 178 L 200.83 178 L 200.04 180 L 199.08 180 L 201.95 172.77 L 202.96 172.77 L 205.79 180 M 204.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.93 180 L 208.93 172.77 L 210.9 172.77 Q 212.21 172.77 212.78 173.22 Q 213.35 173.66 213.35 174.67 Q 213.35 175.82 212.57 176.47 Q 211.79 177.13 210.4 177.13 L 209.95 177.13 L 209.95 180 M 208.93 180 M 209.95 176.35 L 210.36 176.35 Q 211.28 176.35 211.77 175.93 Q 212.27 175.51 212.27 174.75 Q 212.27 174.1 211.88 173.82 Q 211.49 173.54 210.58 173.54 L 209.95 173.54 M 209.95 176.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 221.59 177.24 L 220.36 174.12 L 219.13 177.24 M 221.59 177.24 M 222.68 180 L 221.89 178 L 218.83 178 L 218.04 180 L 217.08 180 L 219.95 172.77 L 220.96 172.77 L 223.79 180 M 222.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.93 180 L 226.93 172.77 L 228.9 172.77 Q 230.21 172.77 230.78 173.22 Q 231.35 173.66 231.35 174.67 Q 231.35 175.82 230.57 176.47 Q 229.79 177.13 228.4 177.13 L 227.95 177.13 L 227.95 180 M 226.93 180 M 227.95 176.35 L 228.36 176.35 Q 229.28 176.35 229.77 175.93 Q 230.27 175.51 230.27 174.75 Q 230.27 174.1 229.88 173.82 Q 229.49 173.54 228.58 173.54 L 227.95 173.54 M 227.95 176.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 237.65 180 L 237.65 173.54 L 235.09 173.54 L 235.09 172.77 L 241.24 172.77 L 241.24 173.54 L 238.68 173.54 L 238.68 180 M 237.65 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 248.59 177.24 L 247.36 174.12 L 246.13 177.24 M 248.59 177.24 M 249.68 180 L 248.89 178 L 245.83 178 L 245.04 180 L 244.08 180 L 246.95 172.77 L 247.96 172.77 L 250.79 180 M 249.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 255.91 180 L 253.18 172.77 L 254.2 172.77 L 256.44 178.69 L 258.6 172.77 L 259.49 172.77 L 256.87 180 M 255.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.72 177.47 L 262.72 176.75 L 267.06 176.75 L 267.06 177.47 M 262.72 177.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 271.72 177.47 L 271.72 176.75 L 276.06 176.75 L 276.06 177.47 M 271.72 177.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 284.59 177.24 L 283.36 174.12 L 282.13 177.24 M 284.59 177.24 M 285.68 180 L 284.89 178 L 281.83 178 L 281.04 180 L 280.08 180 L 282.95 172.77 L 283.96 172.77 L 286.79 180 M 285.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 290.93 180 L 290.93 172.77 L 291.96 172.77 L 291.96 179.23 L 295.21 179.23 L 295.21 180 M 290.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 298.93 180 L 298.93 172.77 L 300.9 172.77 Q 302.21 172.77 302.78 173.22 Q 303.35 173.66 303.35 174.67 Q 303.35 175.82 302.57 176.47 Q 301.79 177.13 300.4 177.13 L 299.95 177.13 L 299.95 180 M 298.93 180 M 299.95 176.35 L 300.36 176.35 Q 301.28 176.35 301.77 175.93 Q 302.27 175.51 302.27 174.75 Q 302.27 174.1 301.88 173.82 Q 301.49 173.54 300.58 173.54 L 299.95 173.54 M 299.95 176.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 311.59 177.24 L 310.36 174.12 L 309.13 177.24 M 311.59 177.24 M 312.68 180 L 311.89 178 L 308.83 178 L 308.04 180 L 307.08 180 L 309.95 172.77 L 310.96 172.77 L 313.79 180 M 312.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 320.59 177.24 L 319.36 174.12 L 318.13 177.24 M 320.59 177.24 M 321.68 180 L 320.89 178 L 317.83 178 L 317.04 180 L 316.08 180 L 318.95 172.77 L 319.96 172.77 L 322.79 180 M 321.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 325.93 180 L 325.93 172.77 L 326.89 172.77 L 326.89 176.33 L 329.82 172.77 L 330.85 172.77 L 328.02 176.22 L 331.35 180 L 330.05 180 L 326.89 176.34 L 326.89 180 M 325.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 336.91 180 L 334.18 172.77 L 335.2 172.77 L 337.44 178.69 L 339.6 172.77 L 340.49 172.77 L 337.87 180 M 336.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 177.47 L 343.72 176.75 L 348.06 176.75 L 348.06 177.47 M 343.72 177.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 177.47 L 352.72 176.75 L 357.06 176.75 L 357.06 177.47 M 352.72 177.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 367.36 179.8 Q 366.05 180.18 365.07 180.18 Q 363.35 180.18 362.43 179.2 Q 361.51 178.22 361.51 176.39 Q 361.51 174.59 362.44 173.59 Q 363.37 172.59 365.06 172.59 Q 366.16 172.59 367.35 172.92 L 367.35 173.87 Q 365.86 173.36 365.06 173.36 Q 363.89 173.36 363.24 174.16 Q 362.6 174.95 362.6 176.4 Q 362.6 177.83 363.29 178.62 Q 363.98 179.41 365.23 179.41 Q 365.75 179.41 366.34 179.23 L 366.34 176.88 L 367.36 176.88 M 367.36 179.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 372.93 180 L 372.93 172.77 L 373.95 172.77 L 373.95 180 M 372.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 378.93 180 L 378.93 172.77 L 380.35 172.77 L 382.36 178.36 L 384.42 172.77 L 385.69 172.77 L 385.69 180 L 384.73 180 L 384.73 174.12 L 382.74 179.52 L 381.75 179.52 L 379.81 174.11 L 379.81 180 M 378.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 394.36 179.8 Q 393.05 180.18 392.07 180.18 Q 390.35 180.18 389.43 179.2 Q 388.51 178.22 388.51 176.39 Q 388.51 174.59 389.44 173.59 Q 390.37 172.59 392.06 172.59 Q 393.16 172.59 394.35 172.92 L 394.35 173.87 Q 392.86 173.36 392.06 173.36 Q 390.89 173.36 390.24 174.16 Q 389.6 174.95 389.6 176.4 Q 389.6 177.83 390.29 178.62 Q 390.98 179.41 392.23 179.41 Q 392.75 179.41 393.34 179.23 L 393.34 176.88 L 394.36 176.88 M 394.36 179.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 397.93 180 L 397.93 172.77 L 400.12 172.77 Q 401.16 172.77 401.71 173.23 Q 402.27 173.69 402.27 174.57 Q 402.27 176.01 400.81 176.62 L 403.22 180 L 401.96 180 L 399.91 176.94 L 398.95 176.94 L 398.95 180 M 397.93 180 M 398.95 176.18 L 399.28 176.18 Q 401.21 176.18 401.21 174.66 Q 401.21 173.54 399.59 173.54 L 398.95 173.54 M 398.95 176.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 409.35 180.18 Q 408.62 180.18 407.49 179.86 L 407.49 178.85 Q 408.71 179.41 409.5 179.41 Q 410.1 179.41 410.47 179.1 Q 410.84 178.78 410.84 178.26 Q 410.84 177.84 410.6 177.54 Q 410.35 177.24 409.71 176.88 L 409.21 176.59 Q 408.28 176.06 407.91 175.59 Q 407.53 175.13 407.53 174.51 Q 407.53 173.67 408.13 173.13 Q 408.74 172.59 409.68 172.59 Q 410.51 172.59 411.44 172.87 L 411.44 173.81 Q 410.3 173.36 409.73 173.36 Q 409.2 173.36 408.86 173.64 Q 408.51 173.93 408.51 174.36 Q 408.51 174.72 408.76 175 Q 409.02 175.27 409.69 175.66 L 410.21 175.95 Q 411.15 176.48 411.52 176.96 Q 411.89 177.43 411.89 178.1 Q 411.89 179.04 411.19 179.61 Q 410.5 180.18 409.35 180.18 M 409.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 419.59 177.24 L 418.36 174.12 L 417.13 177.24 M 419.59 177.24 M 420.68 180 L 419.89 178 L 416.83 178 L 416.04 180 L 415.08 180 L 417.95 172.77 L 418.96 172.77 L 421.79 180 M 420.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 177.47 L 424.72 176.75 L 429.06 176.75 L 429.06 177.47 M 424.72 177.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 436.35 180.18 Q 435.62 180.18 434.49 179.86 L 434.49 178.85 Q 435.71 179.41 436.5 179.41 Q 437.1 179.41 437.47 179.1 Q 437.84 178.78 437.84 178.26 Q 437.84 177.84 437.6 177.54 Q 437.35 177.24 436.71 176.88 L 436.21 176.59 Q 435.28 176.06 434.91 175.59 Q 434.53 175.13 434.53 174.51 Q 434.53 173.67 435.13 173.13 Q 435.74 172.59 436.68 172.59 Q 437.51 172.59 438.44 172.87 L 438.44 173.81 Q 437.3 173.36 436.73 173.36 Q 436.2 173.36 435.86 173.64 Q 435.51 173.93 435.51 174.36 Q 435.51 174.72 435.76 175 Q 436.02 175.27 436.69 175.66 L 437.21 175.95 Q 438.15 176.48 438.52 176.96 Q 438.89 177.43 438.89 178.1 Q 438.89 179.04 438.19 179.61 Q 437.5 180.18 436.35 180.18 M 436.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 445.35 180.18 Q 444.62 180.18 443.49 179.86 L 443.49 178.85 Q 444.71 179.41 445.5 179.41 Q 446.1 179.41 446.47 179.1 Q 446.84 178.78 446.84 178.26 Q 446.84 177.84 446.6 177.54 Q 446.35 177.24 445.71 176.88 L 445.21 176.59 Q 444.28 176.06 443.91 175.59 Q 443.53 175.13 443.53 174.51 Q 443.53 173.67 444.13 173.13 Q 444.74 172.59 445.68 172.59 Q 446.51 172.59 447.44 172.87 L 447.44 173.81 Q 446.3 173.36 445.73 173.36 Q 445.2 173.36 444.86 173.64 Q 444.51 173.93 444.51 174.36 Q 444.51 174.72 444.76 175 Q 445.02 175.27 445.69 175.66 L 446.21 175.95 Q 447.15 176.48 447.52 176.96 Q 447.89 177.43 447.89 178.1 Q 447.89 179.04 447.19 179.61 Q 446.5 180.18 445.35 180.18 M 445.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 451.93 180 L 451.93 172.77 L 454.12 172.77 Q 455.16 172.77 455.71 173.23 Q 456.27 173.69 456.27 174.57 Q 456.27 176.01 454.81 176.62 L 457.22 180 L 455.96 180 L 453.91 176.94 L 452.95 176.94 L 452.95 180 M 451.93 180 M 452.95 176.18 L 453.28 176.18 Q 455.21 176.18 455.21 174.66 Q 455.21 173.54 453.59 173.54 L 452.95 173.54 M 452.95 176.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.93 180 L 460.93 172.77 L 463.12 172.77 Q 464.16 172.77 464.71 173.23 Q 465.27 173.69 465.27 174.57 Q 465.27 176.01 463.81 176.62 L 466.22 180 L 464.96 180 L 462.91 176.94 L 461.95 176.94 L 461.95 180 M 460.93 180 M 461.95 176.18 L 462.28 176.18 Q 464.21 176.18 464.21 174.66 Q 464.21 173.54 462.59 173.54 L 461.95 173.54 M 461.95 176.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 469.72 177.47 L 469.72 176.75 L 474.06 176.75 L 474.06 177.47 M 469.72 177.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 478.72 177.47 L 478.72 176.75 L 483.06 176.75 L 483.06 177.47 M 478.72 177.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 487.93 180 L 487.93 172.77 L 490.12 172.77 Q 491.16 172.77 491.71 173.23 Q 492.27 173.69 492.27 174.57 Q 492.27 176.01 490.81 176.62 L 493.22 180 L 491.96 180 L 489.91 176.94 L 488.95 176.94 L 488.95 180 M 487.93 180 M 488.95 176.18 L 489.28 176.18 Q 491.21 176.18 491.21 174.66 Q 491.21 173.54 489.59 173.54 L 488.95 173.54 M 488.95 176.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 497.93 180 L 497.93 172.77 L 498.96 172.77 L 498.96 179.23 L 502.21 179.23 L 502.21 180 M 497.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 505.93 180 L 505.93 172.77 L 508.12 172.77 Q 509.16 172.77 509.71 173.23 Q 510.27 173.69 510.27 174.57 Q 510.27 176.01 508.81 176.62 L 511.22 180 L 509.96 180 L 507.91 176.94 L 506.95 176.94 L 506.95 180 M 505.93 180 M 506.95 176.18 L 507.28 176.18 Q 509.21 176.18 509.21 174.66 Q 509.21 173.54 507.59 173.54 L 506.95 173.54 M 506.95 176.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 518.59 177.24 L 517.36 174.12 L 516.13 177.24 M 518.59 177.24 M 519.68 180 L 518.89 178 L 515.83 178 L 515.04 180 L 514.08 180 L 516.95 172.77 L 517.96 172.77 L 520.79 180 M 519.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 529.35 181.45 Q 527.64 180.89 526.49 180.13 Q 526.03 180.18 525.78 180.18 Q 524.33 180.18 523.42 179.13 Q 522.51 178.07 522.51 176.39 Q 522.51 174.66 523.43 173.63 Q 524.35 172.59 525.89 172.59 Q 527.43 172.59 528.35 173.63 Q 529.27 174.66 529.27 176.4 Q 529.27 178.89 527.42 179.85 Q 528.66 180.4 530 180.63 M 529.35 181.45 M 525.86 179.41 Q 526.97 179.41 527.57 178.62 Q 528.18 177.82 528.18 176.37 Q 528.18 174.96 527.57 174.16 Q 526.97 173.36 525.89 173.36 Q 524.81 173.36 524.2 174.16 Q 523.6 174.96 523.6 176.38 Q 523.6 177.79 524.2 178.6 Q 524.8 179.41 525.86 179.41 M 525.86 179.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 177.24 L 535.36 174.12 L 534.13 177.24 M 536.59 177.24 M 537.68 180 L 536.89 178 L 533.83 178 L 533.04 180 L 532.08 180 L 534.95 172.77 L 535.96 172.77 L 538.79 180 M 537.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 543.65 180 L 543.65 173.54 L 541.09 173.54 L 541.09 172.77 L 547.24 172.77 L 547.24 173.54 L 544.68 173.54 L 544.68 180 M 543.65 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 180 L 552.5 176.98 L 550.08 172.77 L 551.25 172.77 L 553.13 176.04 L 555.15 172.77 L 556.1 172.77 L 553.52 176.96 L 553.52 180 M 552.5 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 180 L 559.93 172.77 L 560.94 172.77 L 564.58 178.35 L 564.58 172.77 L 565.46 172.77 L 565.46 180 L 564.45 180 L 560.81 174.42 L 560.81 180 M 559.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 180 L 568.18 172.77 L 569.2 172.77 L 571.44 178.69 L 573.6 172.77 L 574.49 172.77 L 571.87 180 M 570.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 180 L 577.93 172.77 L 578.89 172.77 L 578.89 176.33 L 581.82 172.77 L 582.85 172.77 L 580.02 176.22 L 583.35 180 L 582.05 180 L 578.89 176.34 L 578.89 180 M 577.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 180 L 587.93 172.77 L 588.96 172.77 L 588.96 179.23 L 592.21 179.23 L 592.21 180 M 587.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 180 L 597.93 172.77 L 598.95 172.77 L 598.95 180 M 597.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 180 L 606.65 173.54 L 604.09 173.54 L 604.09 172.77 L 610.24 172.77 L 610.24 173.54 L 607.68 173.54 L 607.68 180 M 606.65 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 180 L 613.93 172.77 L 615.9 172.77 Q 617.21 172.77 617.78 173.22 Q 618.35 173.66 618.35 174.67 Q 618.35 175.82 617.57 176.47 Q 616.79 177.13 615.4 177.13 L 614.95 177.13 L 614.95 180 M 613.93 180 M 614.95 176.35 L 615.36 176.35 Q 616.28 176.35 616.77 175.93 Q 617.27 175.51 617.27 174.75 Q 617.27 174.1 616.88 173.82 Q 616.49 173.54 615.58 173.54 L 614.95 173.54 M 614.95 176.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 623.93 180 L 623.93 172.77 L 627.97 172.77 L 627.97 173.54 L 624.96 173.54 L 624.96 175.86 L 627.48 175.86 L 627.48 176.62 L 624.96 176.62 L 624.96 179.23 L 628.18 179.23 L 628.18 180 M 623.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 179.8 Q 636.05 180.18 635.07 180.18 Q 633.35 180.18 632.43 179.2 Q 631.51 178.22 631.51 176.39 Q 631.51 174.59 632.44 173.59 Q 633.37 172.59 635.06 172.59 Q 636.16 172.59 637.35 172.92 L 637.35 173.87 Q 635.86 173.36 635.06 173.36 Q 633.89 173.36 633.24 174.16 Q 632.6 174.95 632.6 176.4 Q 632.6 177.83 633.29 178.62 Q 633.98 179.41 635.23 179.41 Q 635.75 179.41 636.34 179.23 L 636.34 176.88 L 637.36 176.88 M 637.36 179.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 641.93 180 L 641.93 172.77 L 645.97 172.77 L 645.97 173.54 L 642.96 173.54 L 642.96 175.86 L 645.48 175.86 L 645.48 176.62 L 642.96 176.62 L 642.96 179.23 L 646.18 179.23 L 646.18 180 M 641.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 651.91 180 L 649.18 172.77 L 650.2 172.77 L 652.44 178.69 L 654.6 172.77 L 655.49 172.77 L 652.87 180 M 651.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 180 L 659.93 172.77 L 663.97 172.77 L 663.97 173.54 L 660.96 173.54 L 660.96 175.86 L 663.48 175.86 L 663.48 176.62 L 660.96 176.62 L 660.96 179.23 L 664.18 179.23 L 664.18 180 M 659.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 668.93 180 L 668.93 172.77 L 669.96 172.77 L 669.96 179.23 L 673.21 179.23 L 673.21 180 M 668.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 682.35 181.45 Q 680.64 180.89 679.49 180.13 Q 679.03 180.18 678.78 180.18 Q 677.33 180.18 676.42 179.13 Q 675.51 178.07 675.51 176.39 Q 675.51 174.66 676.43 173.63 Q 677.35 172.59 678.89 172.59 Q 680.43 172.59 681.35 173.63 Q 682.27 174.66 682.27 176.4 Q 682.27 178.89 680.42 179.85 Q 681.66 180.4 683 180.63 M 682.35 181.45 M 678.86 179.41 Q 679.97 179.41 680.57 178.62 Q 681.18 177.82 681.18 176.37 Q 681.18 174.96 680.57 174.16 Q 679.97 173.36 678.89 173.36 Q 677.81 173.36 677.2 174.16 Q 676.6 174.96 676.6 176.38 Q 676.6 177.79 677.2 178.6 Q 677.8 179.41 678.86 179.41 M 678.86 179.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 687.91 180 L 685.18 172.77 L 686.2 172.77 L 688.44 178.69 L 690.6 172.77 L 691.49 172.77 L 688.87 180 M 687.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 180 L 694.93 172.77 L 696.9 172.77 Q 698.21 172.77 698.78 173.22 Q 699.35 173.66 699.35 174.67 Q 699.35 175.82 698.57 176.47 Q 697.79 177.13 696.4 177.13 L 695.95 177.13 L 695.95 180 M 694.93 180 M 695.95 176.35 L 696.36 176.35 Q 697.28 176.35 697.77 175.93 Q 698.27 175.51 698.27 174.75 Q 698.27 174.1 697.88 173.82 Q 697.49 173.54 696.58 173.54 L 695.95 173.54 M 695.95 176.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 180 L 703.93 172.77 L 706.33 172.77 Q 707.41 172.77 708.07 173.01 Q 708.73 173.25 709.22 173.82 Q 709.98 174.73 709.98 176.22 Q 709.98 178.02 709.03 179.01 Q 708.08 180 706.35 180 M 703.93 180 M 704.96 179.23 L 706.27 179.23 Q 707.68 179.23 708.26 178.48 Q 708.89 177.67 708.89 176.31 Q 708.89 175.04 708.27 174.31 Q 707.9 173.87 707.38 173.7 Q 706.85 173.54 705.8 173.54 L 704.96 173.54 M 704.96 179.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 180 L 712.93 172.77 L 715.33 172.77 Q 716.41 172.77 717.07 173.01 Q 717.73 173.25 718.22 173.82 Q 718.98 174.73 718.98 176.22 Q 718.98 178.02 718.03 179.01 Q 717.08 180 715.35 180 M 712.93 180 M 713.96 179.23 L 715.27 179.23 Q 716.68 179.23 717.26 178.48 Q 717.89 177.67 717.89 176.31 Q 717.89 175.04 717.27 174.31 Q 716.9 173.87 716.38 173.7 Q 715.85 173.54 714.8 173.54 L 713.96 173.54 M 713.96 179.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 180 L 721.18 172.77 L 722.2 172.77 L 724.44 178.69 L 726.6 172.77 L 727.49 172.77 L 724.87 180 M 723.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 180 L 732.5 176.98 L 730.08 172.77 L 731.25 172.77 L 733.13 176.04 L 735.15 172.77 L 736.1 172.77 L 733.52 176.96 L 733.52 180 M 732.5 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.93 180 L 741.93 172.77 L 742.95 172.77 L 742.95 180 M 741.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 180 L 749.93 172.77 L 750.96 172.77 L 750.96 179.23 L 754.21 179.23 L 754.21 180 M 749.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 180 L 757.93 172.77 L 760.33 172.77 Q 761.41 172.77 762.07 173.01 Q 762.73 173.25 763.22 173.82 Q 763.98 174.73 763.98 176.22 Q 763.98 178.02 763.03 179.01 Q 762.08 180 760.35 180 M 757.93 180 M 758.96 179.23 L 760.27 179.23 Q 761.68 179.23 762.26 178.48 Q 762.89 177.67 762.89 176.31 Q 762.89 175.04 762.27 174.31 Q 761.9 173.87 761.38 173.7 Q 760.85 173.54 759.8 173.54 L 758.96 173.54 M 758.96 179.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 772.35 181.45 Q 770.64 180.89 769.49 180.13 Q 769.03 180.18 768.78 180.18 Q 767.33 180.18 766.42 179.13 Q 765.51 178.07 765.51 176.39 Q 765.51 174.66 766.43 173.63 Q 767.35 172.59 768.89 172.59 Q 770.43 172.59 771.35 173.63 Q 772.27 174.66 772.27 176.4 Q 772.27 178.89 770.42 179.85 Q 771.66 180.4 773 180.63 M 772.35 181.45 M 768.86 179.41 Q 769.97 179.41 770.57 178.62 Q 771.18 177.82 771.18 176.37 Q 771.18 174.96 770.57 174.16 Q 769.97 173.36 768.89 173.36 Q 767.81 173.36 767.2 174.16 Q 766.6 174.96 766.6 176.38 Q 766.6 177.79 767.2 178.6 Q 767.8 179.41 768.86 179.41 M 768.86 179.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 177.24 L 778.36 174.12 L 777.13 177.24 M 779.59 177.24 M 780.68 180 L 779.89 178 L 776.83 178 L 776.04 180 L 775.08 180 L 777.95 172.77 L 778.96 172.77 L 781.79 180 M 780.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 180 L 785.93 172.77 L 789.97 172.77 L 789.97 173.54 L 786.96 173.54 L 786.96 175.86 L 789.48 175.86 L 789.48 176.62 L 786.96 176.62 L 786.96 179.23 L 790.18 179.23 L 790.18 180 M 785.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 180 L 794.93 172.77 L 798.97 172.77 L 798.97 173.54 L 795.96 173.54 L 795.96 175.86 L 798.48 175.86 L 798.48 176.62 L 795.96 176.62 L 795.96 179.23 L 799.18 179.23 L 799.18 180 M 794.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 802.93 180 L 802.93 172.77 L 805.33 172.77 Q 806.41 172.77 807.07 173.01 Q 807.73 173.25 808.22 173.82 Q 808.98 174.73 808.98 176.22 Q 808.98 178.02 808.03 179.01 Q 807.08 180 805.35 180 M 802.93 180 M 803.96 179.23 L 805.27 179.23 Q 806.68 179.23 807.26 178.48 Q 807.89 177.67 807.89 176.31 Q 807.89 175.04 807.27 174.31 Q 806.9 173.87 806.38 173.7 Q 805.85 173.54 804.8 173.54 L 803.96 173.54 M 803.96 179.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 179.8 Q 816.05 180.18 815.07 180.18 Q 813.35 180.18 812.43 179.2 Q 811.51 178.22 811.51 176.39 Q 811.51 174.59 812.44 173.59 Q 813.37 172.59 815.06 172.59 Q 816.16 172.59 817.35 172.92 L 817.35 173.87 Q 815.86 173.36 815.06 173.36 Q 813.89 173.36 813.24 174.16 Q 812.6 174.95 812.6 176.4 Q 812.6 177.83 813.29 178.62 Q 813.98 179.41 815.23 179.41 Q 815.75 179.41 816.34 179.23 L 816.34 176.88 L 817.36 176.88 M 817.36 179.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 822.93 180 L 822.93 172.77 L 823.95 172.77 L 823.95 180 M 822.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 180 L 829.93 172.77 L 832.33 172.77 Q 833.41 172.77 834.07 173.01 Q 834.73 173.25 835.22 173.82 Q 835.98 174.73 835.98 176.22 Q 835.98 178.02 835.03 179.01 Q 834.08 180 832.35 180 M 829.93 180 M 830.96 179.23 L 832.27 179.23 Q 833.68 179.23 834.26 178.48 Q 834.89 177.67 834.89 176.31 Q 834.89 175.04 834.27 174.31 Q 833.9 173.87 833.38 173.7 Q 832.85 173.54 831.8 173.54 L 830.96 173.54 M 830.96 179.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 180 L 839.93 172.77 L 840.96 172.77 L 840.96 179.23 L 844.21 179.23 L 844.21 180 M 839.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 180 L 847.93 172.77 L 849.9 172.77 Q 851.21 172.77 851.78 173.22 Q 852.35 173.66 852.35 174.67 Q 852.35 175.82 851.57 176.47 Q 850.79 177.13 849.4 177.13 L 848.95 177.13 L 848.95 180 M 847.93 180 M 848.95 176.35 L 849.36 176.35 Q 850.28 176.35 850.77 175.93 Q 851.27 175.51 851.27 174.75 Q 851.27 174.1 850.88 173.82 Q 850.49 173.54 849.58 173.54 L 848.95 173.54 M 848.95 176.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 180 L 858.5 176.98 L 856.08 172.77 L 857.25 172.77 L 859.13 176.04 L 861.15 172.77 L 862.1 172.77 L 859.52 176.96 L 859.52 180 M 858.5 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 180.18 Q 867.62 180.18 866.49 179.86 L 866.49 178.85 Q 867.71 179.41 868.5 179.41 Q 869.1 179.41 869.47 179.1 Q 869.84 178.78 869.84 178.26 Q 869.84 177.84 869.6 177.54 Q 869.35 177.24 868.71 176.88 L 868.21 176.59 Q 867.28 176.06 866.91 175.59 Q 866.53 175.13 866.53 174.51 Q 866.53 173.67 867.13 173.13 Q 867.74 172.59 868.68 172.59 Q 869.51 172.59 870.44 172.87 L 870.44 173.81 Q 869.3 173.36 868.73 173.36 Q 868.2 173.36 867.86 173.64 Q 867.51 173.93 867.51 174.36 Q 867.51 174.72 867.76 175 Q 868.02 175.27 868.69 175.66 L 869.21 175.95 Q 870.15 176.48 870.52 176.96 Q 870.89 177.43 870.89 178.1 Q 870.89 179.04 870.19 179.61 Q 869.5 180.18 868.35 180.18 M 868.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 180.18 Q 876.34 180.18 875.43 179.19 Q 874.51 178.2 874.51 176.39 Q 874.51 174.58 875.44 173.59 Q 876.38 172.59 878.08 172.59 Q 879.05 172.59 880.35 172.91 L 880.35 173.87 Q 878.87 173.36 878.06 173.36 Q 876.89 173.36 876.24 174.16 Q 875.6 174.95 875.6 176.4 Q 875.6 177.78 876.29 178.58 Q 876.97 179.38 878.17 179.38 Q 879.19 179.38 880.36 178.75 L 880.36 179.63 Q 879.29 180.18 878.03 180.18 M 878.03 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 180 L 883.93 172.77 L 886.12 172.77 Q 887.16 172.77 887.71 173.23 Q 888.27 173.69 888.27 174.57 Q 888.27 176.01 886.81 176.62 L 889.22 180 L 887.96 180 L 885.91 176.94 L 884.95 176.94 L 884.95 180 M 883.93 180 M 884.95 176.18 L 885.28 176.18 Q 887.21 176.18 887.21 174.66 Q 887.21 173.54 885.59 173.54 L 884.95 173.54 M 884.95 176.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 177.24 L 895.36 174.12 L 894.13 177.24 M 896.59 177.24 M 897.68 180 L 896.89 178 L 893.83 178 L 893.04 180 L 892.08 180 L 894.95 172.77 L 895.96 172.77 L 898.79 180 M 897.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 179.8 Q 906.05 180.18 905.07 180.18 Q 903.35 180.18 902.43 179.2 Q 901.51 178.22 901.51 176.39 Q 901.51 174.59 902.44 173.59 Q 903.37 172.59 905.06 172.59 Q 906.16 172.59 907.35 172.92 L 907.35 173.87 Q 905.86 173.36 905.06 173.36 Q 903.89 173.36 903.24 174.16 Q 902.6 174.95 902.6 176.4 Q 902.6 177.83 903.29 178.62 Q 903.98 179.41 905.23 179.41 Q 905.75 179.41 906.34 179.23 L 906.34 176.88 L 907.36 176.88 M 907.36 179.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 180.18 Q 912.62 180.18 911.49 179.86 L 911.49 178.85 Q 912.71 179.41 913.5 179.41 Q 914.1 179.41 914.47 179.1 Q 914.84 178.78 914.84 178.26 Q 914.84 177.84 914.6 177.54 Q 914.35 177.24 913.71 176.88 L 913.21 176.59 Q 912.28 176.06 911.91 175.59 Q 911.53 175.13 911.53 174.51 Q 911.53 173.67 912.13 173.13 Q 912.74 172.59 913.68 172.59 Q 914.51 172.59 915.44 172.87 L 915.44 173.81 Q 914.3 173.36 913.73 173.36 Q 913.2 173.36 912.86 173.64 Q 912.51 173.93 912.51 174.36 Q 912.51 174.72 912.76 175 Q 913.02 175.27 913.69 175.66 L 914.21 175.95 Q 915.15 176.48 915.52 176.96 Q 915.89 177.43 915.89 178.1 Q 915.89 179.04 915.19 179.61 Q 914.5 180.18 913.35 180.18 M 913.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 180.18 Q 921.34 180.18 920.43 179.19 Q 919.51 178.2 919.51 176.39 Q 919.51 174.58 920.44 173.59 Q 921.38 172.59 923.08 172.59 Q 924.05 172.59 925.35 172.91 L 925.35 173.87 Q 923.87 173.36 923.06 173.36 Q 921.89 173.36 921.24 174.16 Q 920.6 174.95 920.6 176.4 Q 920.6 177.78 921.29 178.58 Q 921.97 179.38 923.17 179.38 Q 924.19 179.38 925.36 178.75 L 925.36 179.63 Q 924.29 180.18 923.03 180.18 M 923.03 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 180.18 Q 930.62 180.18 929.49 179.86 L 929.49 178.85 Q 930.71 179.41 931.5 179.41 Q 932.1 179.41 932.47 179.1 Q 932.84 178.78 932.84 178.26 Q 932.84 177.84 932.6 177.54 Q 932.35 177.24 931.71 176.88 L 931.21 176.59 Q 930.28 176.06 929.91 175.59 Q 929.53 175.13 929.53 174.51 Q 929.53 173.67 930.13 173.13 Q 930.74 172.59 931.68 172.59 Q 932.51 172.59 933.44 172.87 L 933.44 173.81 Q 932.3 173.36 931.73 173.36 Q 931.2 173.36 930.86 173.64 Q 930.51 173.93 930.51 174.36 Q 930.51 174.72 930.76 175 Q 931.02 175.27 931.69 175.66 L 932.21 175.95 Q 933.15 176.48 933.52 176.96 Q 933.89 177.43 933.89 178.1 Q 933.89 179.04 933.19 179.61 Q 932.5 180.18 931.35 180.18 M 931.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 180.18 Q 939.62 180.18 938.49 179.86 L 938.49 178.85 Q 939.71 179.41 940.5 179.41 Q 941.1 179.41 941.47 179.1 Q 941.84 178.78 941.84 178.26 Q 941.84 177.84 941.6 177.54 Q 941.35 177.24 940.71 176.88 L 940.21 176.59 Q 939.28 176.06 938.91 175.59 Q 938.53 175.13 938.53 174.51 Q 938.53 173.67 939.13 173.13 Q 939.74 172.59 940.68 172.59 Q 941.51 172.59 942.44 172.87 L 942.44 173.81 Q 941.3 173.36 940.73 173.36 Q 940.2 173.36 939.86 173.64 Q 939.51 173.93 939.51 174.36 Q 939.51 174.72 939.76 175 Q 940.02 175.27 940.69 175.66 L 941.21 175.95 Q 942.15 176.48 942.52 176.96 Q 942.89 177.43 942.89 178.1 Q 942.89 179.04 942.19 179.61 Q 941.5 180.18 940.35 180.18 M 940.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 180.18 Q 948.34 180.18 947.43 179.19 Q 946.51 178.2 946.51 176.39 Q 946.51 174.58 947.44 173.59 Q 948.38 172.59 950.08 172.59 Q 951.05 172.59 952.35 172.91 L 952.35 173.87 Q 950.87 173.36 950.06 173.36 Q 948.89 173.36 948.24 174.16 Q 947.6 174.95 947.6 176.4 Q 947.6 177.78 948.29 178.58 Q 948.97 179.38 950.17 179.38 Q 951.19 179.38 952.36 178.75 L 952.36 179.63 Q 951.29 180.18 950.03 180.18 M 950.03 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 177.24 L 958.36 174.12 L 957.13 177.24 M 959.59 177.24 M 960.68 180 L 959.89 178 L 956.83 178 L 956.04 180 L 955.08 180 L 957.95 172.77 L 958.96 172.77 L 961.79 180 M 960.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 179.8 Q 969.05 180.18 968.07 180.18 Q 966.35 180.18 965.43 179.2 Q 964.51 178.22 964.51 176.39 Q 964.51 174.59 965.44 173.59 Q 966.37 172.59 968.06 172.59 Q 969.16 172.59 970.35 172.92 L 970.35 173.87 Q 968.86 173.36 968.06 173.36 Q 966.89 173.36 966.24 174.16 Q 965.6 174.95 965.6 176.4 Q 965.6 177.83 966.29 178.62 Q 966.98 179.41 968.23 179.41 Q 968.75 179.41 969.34 179.23 L 969.34 176.88 L 970.36 176.88 M 970.36 179.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 180 L 973.93 172.77 L 974.89 172.77 L 974.89 176.33 L 977.82 172.77 L 978.85 172.77 L 976.02 176.22 L 979.35 180 L 978.05 180 L 974.89 176.34 L 974.89 180 M 973.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 180 L 982.18 172.77 L 983.2 172.77 L 985.44 178.69 L 987.6 172.77 L 988.49 172.77 L 985.87 180 M 984.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.91 180 L 991.18 172.77 L 992.2 172.77 L 994.44 178.69 L 996.6 172.77 L 997.49 172.77 L 994.87 180 M 993.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1003.35 180.18 Q 1002.62 180.18 1001.49 179.86 L 1001.49 178.85 Q 1002.71 179.41 1003.5 179.41 Q 1004.1 179.41 1004.47 179.1 Q 1004.84 178.78 1004.84 178.26 Q 1004.84 177.84 1004.6 177.54 Q 1004.35 177.24 1003.71 176.88 L 1003.21 176.59 Q 1002.28 176.06 1001.91 175.59 Q 1001.53 175.13 1001.53 174.51 Q 1001.53 173.67 1002.13 173.13 Q 1002.74 172.59 1003.68 172.59 Q 1004.51 172.59 1005.44 172.87 L 1005.44 173.81 Q 1004.3 173.36 1003.73 173.36 Q 1003.2 173.36 1002.86 173.64 Q 1002.51 173.93 1002.51 174.36 Q 1002.51 174.72 1002.76 175 Q 1003.02 175.27 1003.69 175.66 L 1004.21 175.95 Q 1005.15 176.48 1005.52 176.96 Q 1005.89 177.43 1005.89 178.1 Q 1005.89 179.04 1005.19 179.61 Q 1004.5 180.18 1003.35 180.18 M 1003.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 179.8 Q 1014.05 180.18 1013.07 180.18 Q 1011.35 180.18 1010.43 179.2 Q 1009.51 178.22 1009.51 176.39 Q 1009.51 174.59 1010.44 173.59 Q 1011.37 172.59 1013.06 172.59 Q 1014.16 172.59 1015.35 172.92 L 1015.35 173.87 Q 1013.86 173.36 1013.06 173.36 Q 1011.89 173.36 1011.24 174.16 Q 1010.6 174.95 1010.6 176.4 Q 1010.6 177.83 1011.29 178.62 Q 1011.98 179.41 1013.23 179.41 Q 1013.75 179.41 1014.34 179.23 L 1014.34 176.88 L 1015.36 176.88 M 1015.36 179.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1021.35 180.18 Q 1020.62 180.18 1019.49 179.86 L 1019.49 178.85 Q 1020.71 179.41 1021.5 179.41 Q 1022.1 179.41 1022.47 179.1 Q 1022.84 178.78 1022.84 178.26 Q 1022.84 177.84 1022.6 177.54 Q 1022.35 177.24 1021.71 176.88 L 1021.21 176.59 Q 1020.28 176.06 1019.91 175.59 Q 1019.53 175.13 1019.53 174.51 Q 1019.53 173.67 1020.13 173.13 Q 1020.74 172.59 1021.68 172.59 Q 1022.51 172.59 1023.44 172.87 L 1023.44 173.81 Q 1022.3 173.36 1021.73 173.36 Q 1021.2 173.36 1020.86 173.64 Q 1020.51 173.93 1020.51 174.36 Q 1020.51 174.72 1020.76 175 Q 1021.02 175.27 1021.69 175.66 L 1022.21 175.95 Q 1023.15 176.48 1023.52 176.96 Q 1023.89 177.43 1023.89 178.1 Q 1023.89 179.04 1023.19 179.61 Q 1022.5 180.18 1021.35 180.18 M 1021.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 180 L 1027.18 172.77 L 1028.2 172.77 L 1030.44 178.69 L 1032.6 172.77 L 1033.49 172.77 L 1030.87 180 M 1029.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 180 L 1036.93 172.77 L 1039.33 172.77 Q 1040.41 172.77 1041.07 173.01 Q 1041.73 173.25 1042.22 173.82 Q 1042.98 174.73 1042.98 176.22 Q 1042.98 178.02 1042.03 179.01 Q 1041.08 180 1039.35 180 M 1036.93 180 M 1037.96 179.23 L 1039.27 179.23 Q 1040.68 179.23 1041.26 178.48 Q 1041.89 177.67 1041.89 176.31 Q 1041.89 175.04 1041.27 174.31 Q 1040.9 173.87 1040.38 173.7 Q 1039.85 173.54 1038.8 173.54 L 1037.96 173.54 M 1037.96 179.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 181.45 Q 1049.64 180.89 1048.49 180.13 Q 1048.03 180.18 1047.78 180.18 Q 1046.33 180.18 1045.42 179.13 Q 1044.51 178.07 1044.51 176.39 Q 1044.51 174.66 1045.43 173.63 Q 1046.35 172.59 1047.89 172.59 Q 1049.43 172.59 1050.35 173.63 Q 1051.27 174.66 1051.27 176.4 Q 1051.27 178.89 1049.42 179.85 Q 1050.66 180.4 1052 180.63 M 1051.35 181.45 M 1047.86 179.41 Q 1048.97 179.41 1049.57 178.62 Q 1050.18 177.82 1050.18 176.37 Q 1050.18 174.96 1049.57 174.16 Q 1048.97 173.36 1047.89 173.36 Q 1046.81 173.36 1046.2 174.16 Q 1045.6 174.96 1045.6 176.38 Q 1045.6 177.79 1046.2 178.6 Q 1046.8 179.41 1047.86 179.41 M 1047.86 179.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1057.35 180.18 Q 1056.62 180.18 1055.49 179.86 L 1055.49 178.85 Q 1056.71 179.41 1057.5 179.41 Q 1058.1 179.41 1058.47 179.1 Q 1058.84 178.78 1058.84 178.26 Q 1058.84 177.84 1058.6 177.54 Q 1058.35 177.24 1057.71 176.88 L 1057.21 176.59 Q 1056.28 176.06 1055.91 175.59 Q 1055.53 175.13 1055.53 174.51 Q 1055.53 173.67 1056.13 173.13 Q 1056.74 172.59 1057.68 172.59 Q 1058.51 172.59 1059.44 172.87 L 1059.44 173.81 Q 1058.3 173.36 1057.73 173.36 Q 1057.2 173.36 1056.86 173.64 Q 1056.51 173.93 1056.51 174.36 Q 1056.51 174.72 1056.76 175 Q 1057.02 175.27 1057.69 175.66 L 1058.21 175.95 Q 1059.15 176.48 1059.52 176.96 Q 1059.89 177.43 1059.89 178.1 Q 1059.89 179.04 1059.19 179.61 Q 1058.5 180.18 1057.35 180.18 M 1057.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 180 L 1063.93 172.77 L 1066.33 172.77 Q 1067.41 172.77 1068.07 173.01 Q 1068.73 173.25 1069.22 173.82 Q 1069.98 174.73 1069.98 176.22 Q 1069.98 178.02 1069.03 179.01 Q 1068.08 180 1066.35 180 M 1063.93 180 M 1064.96 179.23 L 1066.27 179.23 Q 1067.68 179.23 1068.26 178.48 Q 1068.89 177.67 1068.89 176.31 Q 1068.89 175.04 1068.27 174.31 Q 1067.9 173.87 1067.38 173.7 Q 1066.85 173.54 1065.8 173.54 L 1064.96 173.54 M 1064.96 179.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.35 181.45 Q 1076.64 180.89 1075.49 180.13 Q 1075.03 180.18 1074.78 180.18 Q 1073.33 180.18 1072.42 179.13 Q 1071.51 178.07 1071.51 176.39 Q 1071.51 174.66 1072.43 173.63 Q 1073.35 172.59 1074.89 172.59 Q 1076.43 172.59 1077.35 173.63 Q 1078.27 174.66 1078.27 176.4 Q 1078.27 178.89 1076.42 179.85 Q 1077.66 180.4 1079 180.63 M 1078.35 181.45 M 1074.86 179.41 Q 1075.97 179.41 1076.57 178.62 Q 1077.18 177.82 1077.18 176.37 Q 1077.18 174.96 1076.57 174.16 Q 1075.97 173.36 1074.89 173.36 Q 1073.81 173.36 1073.2 174.16 Q 1072.6 174.96 1072.6 176.38 Q 1072.6 177.79 1073.2 178.6 Q 1073.8 179.41 1074.86 179.41 M 1074.86 179.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1084.35 180.18 Q 1083.62 180.18 1082.49 179.86 L 1082.49 178.85 Q 1083.71 179.41 1084.5 179.41 Q 1085.1 179.41 1085.47 179.1 Q 1085.84 178.78 1085.84 178.26 Q 1085.84 177.84 1085.6 177.54 Q 1085.35 177.24 1084.71 176.88 L 1084.21 176.59 Q 1083.28 176.06 1082.91 175.59 Q 1082.53 175.13 1082.53 174.51 Q 1082.53 173.67 1083.13 173.13 Q 1083.74 172.59 1084.68 172.59 Q 1085.51 172.59 1086.44 172.87 L 1086.44 173.81 Q 1085.3 173.36 1084.73 173.36 Q 1084.2 173.36 1083.86 173.64 Q 1083.51 173.93 1083.51 174.36 Q 1083.51 174.72 1083.76 175 Q 1084.02 175.27 1084.69 175.66 L 1085.21 175.95 Q 1086.15 176.48 1086.52 176.96 Q 1086.89 177.43 1086.89 178.1 Q 1086.89 179.04 1086.19 179.61 Q 1085.5 180.18 1084.35 180.18 M 1084.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1092.5 180 L 1092.5 176.98 L 1090.08 172.77 L 1091.25 172.77 L 1093.13 176.04 L 1095.15 172.77 L 1096.1 172.77 L 1093.52 176.96 L 1093.52 180 M 1092.5 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 180 L 1100.93 172.77 L 1101.96 172.77 L 1101.96 179.23 L 1105.21 179.23 L 1105.21 180 M 1100.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 180 L 1108.93 172.77 L 1111.33 172.77 Q 1112.41 172.77 1113.07 173.01 Q 1113.73 173.25 1114.22 173.82 Q 1114.98 174.73 1114.98 176.22 Q 1114.98 178.02 1114.03 179.01 Q 1113.08 180 1111.35 180 M 1108.93 180 M 1109.96 179.23 L 1111.27 179.23 Q 1112.68 179.23 1113.26 178.48 Q 1113.89 177.67 1113.89 176.31 Q 1113.89 175.04 1113.27 174.31 Q 1112.9 173.87 1112.38 173.7 Q 1111.85 173.54 1110.8 173.54 L 1109.96 173.54 M 1109.96 179.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 180 L 1117.93 172.77 L 1120.33 172.77 Q 1121.41 172.77 1122.07 173.01 Q 1122.73 173.25 1123.22 173.82 Q 1123.98 174.73 1123.98 176.22 Q 1123.98 178.02 1123.03 179.01 Q 1122.08 180 1120.35 180 M 1117.93 180 M 1118.96 179.23 L 1120.27 179.23 Q 1121.68 179.23 1122.26 178.48 Q 1122.89 177.67 1122.89 176.31 Q 1122.89 175.04 1122.27 174.31 Q 1121.9 173.87 1121.38 173.7 Q 1120.85 173.54 1119.8 173.54 L 1118.96 173.54 M 1118.96 179.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1132.36 179.8 Q 1131.05 180.18 1130.07 180.18 Q 1128.35 180.18 1127.43 179.2 Q 1126.51 178.22 1126.51 176.39 Q 1126.51 174.59 1127.44 173.59 Q 1128.37 172.59 1130.06 172.59 Q 1131.16 172.59 1132.35 172.92 L 1132.35 173.87 Q 1130.86 173.36 1130.06 173.36 Q 1128.89 173.36 1128.24 174.16 Q 1127.6 174.95 1127.6 176.4 Q 1127.6 177.83 1128.29 178.62 Q 1128.98 179.41 1130.23 179.41 Q 1130.75 179.41 1131.34 179.23 L 1131.34 176.88 L 1132.36 176.88 M 1132.36 179.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 181.45 Q 1139.64 180.89 1138.49 180.13 Q 1138.03 180.18 1137.78 180.18 Q 1136.33 180.18 1135.42 179.13 Q 1134.51 178.07 1134.51 176.39 Q 1134.51 174.66 1135.43 173.63 Q 1136.35 172.59 1137.89 172.59 Q 1139.43 172.59 1140.35 173.63 Q 1141.27 174.66 1141.27 176.4 Q 1141.27 178.89 1139.42 179.85 Q 1140.66 180.4 1142 180.63 M 1141.35 181.45 M 1137.86 179.41 Q 1138.97 179.41 1139.57 178.62 Q 1140.18 177.82 1140.18 176.37 Q 1140.18 174.96 1139.57 174.16 Q 1138.97 173.36 1137.89 173.36 Q 1136.81 173.36 1136.2 174.16 Q 1135.6 174.96 1135.6 176.38 Q 1135.6 177.79 1136.2 178.6 Q 1136.8 179.41 1137.86 179.41 M 1137.86 179.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1146.93 180 L 1146.93 172.77 L 1147.95 172.77 L 1147.95 180 M 1146.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1157.59 177.24 L 1156.36 174.12 L 1155.13 177.24 M 1157.59 177.24 M 1158.68 180 L 1157.89 178 L 1154.83 178 L 1154.04 180 L 1153.08 180 L 1155.95 172.77 L 1156.96 172.77 L 1159.79 180 M 1158.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1162.93 180 L 1162.93 172.77 L 1165.33 172.77 Q 1166.41 172.77 1167.07 173.01 Q 1167.73 173.25 1168.22 173.82 Q 1168.98 174.73 1168.98 176.22 Q 1168.98 178.02 1168.03 179.01 Q 1167.08 180 1165.35 180 M 1162.93 180 M 1163.96 179.23 L 1165.27 179.23 Q 1166.68 179.23 1167.26 178.48 Q 1167.89 177.67 1167.89 176.31 Q 1167.89 175.04 1167.27 174.31 Q 1166.9 173.87 1166.38 173.7 Q 1165.85 173.54 1164.8 173.54 L 1163.96 173.54 M 1163.96 179.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 179.8 Q 1176.05 180.18 1175.07 180.18 Q 1173.35 180.18 1172.43 179.2 Q 1171.51 178.22 1171.51 176.39 Q 1171.51 174.59 1172.44 173.59 Q 1173.37 172.59 1175.06 172.59 Q 1176.16 172.59 1177.35 172.92 L 1177.35 173.87 Q 1175.86 173.36 1175.06 173.36 Q 1173.89 173.36 1173.24 174.16 Q 1172.6 174.95 1172.6 176.4 Q 1172.6 177.83 1173.29 178.62 Q 1173.98 179.41 1175.23 179.41 Q 1175.75 179.41 1176.34 179.23 L 1176.34 176.88 L 1177.36 176.88 M 1177.36 179.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1180.87 180 L 1179.01 172.77 L 1180 172.77 L 1181.48 178.48 L 1182.84 172.77 L 1183.82 172.77 L 1185.11 178.4 L 1186.71 172.77 L 1187.54 172.77 L 1185.51 180 L 1184.49 180 L 1183.22 174.43 L 1181.89 180 M 1180.87 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 180 L 1189.18 172.77 L 1190.2 172.77 L 1192.44 178.69 L 1194.6 172.77 L 1195.49 172.77 L 1192.87 180 M 1191.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 180 L 1199.93 172.77 L 1200.96 172.77 L 1200.96 179.23 L 1204.21 179.23 L 1204.21 180 M 1199.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 180 L 1209.65 173.54 L 1207.09 173.54 L 1207.09 172.77 L 1213.24 172.77 L 1213.24 173.54 L 1210.68 173.54 L 1210.68 180 M 1209.65 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 180.18 Q 1218.34 180.18 1217.43 179.19 Q 1216.51 178.2 1216.51 176.39 Q 1216.51 174.58 1217.44 173.59 Q 1218.38 172.59 1220.08 172.59 Q 1221.05 172.59 1222.35 172.91 L 1222.35 173.87 Q 1220.87 173.36 1220.06 173.36 Q 1218.89 173.36 1218.24 174.16 Q 1217.6 174.95 1217.6 176.4 Q 1217.6 177.78 1218.29 178.58 Q 1218.97 179.38 1220.17 179.38 Q 1221.19 179.38 1222.36 178.75 L 1222.36 179.63 Q 1221.29 180.18 1220.03 180.18 M 1220.03 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1225.93 180 L 1225.93 172.77 L 1226.96 172.77 L 1226.96 175.82 L 1230.4 175.82 L 1230.4 172.77 L 1231.42 172.77 L 1231.42 180 L 1230.4 180 L 1230.4 176.59 L 1226.96 176.59 L 1226.96 180 M 1225.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 177.24 L 1237.36 174.12 L 1236.13 177.24 M 1238.59 177.24 M 1239.68 180 L 1238.89 178 L 1235.83 178 L 1235.04 180 L 1234.08 180 L 1236.95 172.77 L 1237.96 172.77 L 1240.79 180 M 1239.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 180 L 1245.5 176.98 L 1243.08 172.77 L 1244.25 172.77 L 1246.13 176.04 L 1248.15 172.77 L 1249.1 172.77 L 1246.52 176.96 L 1246.52 180 M 1245.5 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 180 L 1252.93 172.77 L 1254.9 172.77 Q 1256.21 172.77 1256.78 173.22 Q 1257.35 173.66 1257.35 174.67 Q 1257.35 175.82 1256.57 176.47 Q 1255.79 177.13 1254.4 177.13 L 1253.95 177.13 L 1253.95 180 M 1252.93 180 M 1253.95 176.35 L 1254.36 176.35 Q 1255.28 176.35 1255.77 175.93 Q 1256.27 175.51 1256.27 174.75 Q 1256.27 174.1 1255.88 173.82 Q 1255.49 173.54 1254.58 173.54 L 1253.95 173.54 M 1253.95 176.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1263.65 180 L 1263.65 173.54 L 1261.09 173.54 L 1261.09 172.77 L 1267.24 172.77 L 1267.24 173.54 L 1264.68 173.54 L 1264.68 180 M 1263.65 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1273.35 180.18 Q 1272.62 180.18 1271.49 179.86 L 1271.49 178.85 Q 1272.71 179.41 1273.5 179.41 Q 1274.1 179.41 1274.47 179.1 Q 1274.84 178.78 1274.84 178.26 Q 1274.84 177.84 1274.6 177.54 Q 1274.35 177.24 1273.71 176.88 L 1273.21 176.59 Q 1272.28 176.06 1271.91 175.59 Q 1271.53 175.13 1271.53 174.51 Q 1271.53 173.67 1272.13 173.13 Q 1272.74 172.59 1273.68 172.59 Q 1274.51 172.59 1275.44 172.87 L 1275.44 173.81 Q 1274.3 173.36 1273.73 173.36 Q 1273.2 173.36 1272.86 173.64 Q 1272.51 173.93 1272.51 174.36 Q 1272.51 174.72 1272.76 175 Q 1273.02 175.27 1273.69 175.66 L 1274.21 175.95 Q 1275.15 176.48 1275.52 176.96 Q 1275.89 177.43 1275.89 178.1 Q 1275.89 179.04 1275.19 179.61 Q 1274.5 180.18 1273.35 180.18 M 1273.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 180 L 1279.93 172.77 L 1282.33 172.77 Q 1283.41 172.77 1284.07 173.01 Q 1284.73 173.25 1285.22 173.82 Q 1285.98 174.73 1285.98 176.22 Q 1285.98 178.02 1285.03 179.01 Q 1284.08 180 1282.35 180 M 1279.93 180 M 1280.96 179.23 L 1282.27 179.23 Q 1283.68 179.23 1284.26 178.48 Q 1284.89 177.67 1284.89 176.31 Q 1284.89 175.04 1284.27 174.31 Q 1283.9 173.87 1283.38 173.7 Q 1282.85 173.54 1281.8 173.54 L 1280.96 173.54 M 1280.96 179.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 180 L 1288.18 172.77 L 1289.2 172.77 L 1291.44 178.69 L 1293.6 172.77 L 1294.49 172.77 L 1291.87 180 M 1290.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.91 180 L 1297.18 172.77 L 1298.2 172.77 L 1300.44 178.69 L 1302.6 172.77 L 1303.49 172.77 L 1300.87 180 M 1299.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 180 L 1308.93 172.77 L 1309.95 172.77 L 1309.95 180 M 1308.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 180 L 1316.93 172.77 L 1320.97 172.77 L 1320.97 173.54 L 1317.96 173.54 L 1317.96 175.86 L 1320.48 175.86 L 1320.48 176.62 L 1317.96 176.62 L 1317.96 179.23 L 1321.18 179.23 L 1321.18 180 M 1316.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 180 L 1326.65 173.54 L 1324.09 173.54 L 1324.09 172.77 L 1330.24 172.77 L 1330.24 173.54 L 1327.68 173.54 L 1327.68 180 M 1326.65 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 180 L 1333.93 172.77 L 1334.96 172.77 L 1334.96 175.82 L 1338.4 175.82 L 1338.4 172.77 L 1339.42 172.77 L 1339.42 180 L 1338.4 180 L 1338.4 176.59 L 1334.96 176.59 L 1334.96 180 M 1333.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 180 L 1342.93 172.77 L 1343.89 172.77 L 1343.89 176.33 L 1346.82 172.77 L 1347.85 172.77 L 1345.02 176.22 L 1348.35 180 L 1347.05 180 L 1343.89 176.34 L 1343.89 180 M 1342.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 180 L 1352.93 172.77 L 1356.97 172.77 L 1356.97 173.54 L 1353.96 173.54 L 1353.96 175.86 L 1356.48 175.86 L 1356.48 176.62 L 1353.96 176.62 L 1353.96 179.23 L 1357.18 179.23 L 1357.18 180 M 1352.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1361.93 180 L 1361.93 172.77 L 1365.97 172.77 L 1365.97 173.54 L 1362.96 173.54 L 1362.96 175.86 L 1365.48 175.86 L 1365.48 176.62 L 1362.96 176.62 L 1362.96 179.23 L 1366.18 179.23 L 1366.18 180 M 1361.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1370.93 180 L 1370.93 172.77 L 1374.97 172.77 L 1374.97 173.54 L 1371.96 173.54 L 1371.96 175.86 L 1374.48 175.86 L 1374.48 176.62 L 1371.96 176.62 L 1371.96 179.23 L 1375.18 179.23 L 1375.18 180 M 1370.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1379.93 180 L 1379.93 172.77 L 1380.96 172.77 L 1380.96 179.23 L 1384.21 179.23 L 1384.21 180 M 1379.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.65 180 L 1389.65 173.54 L 1387.09 173.54 L 1387.09 172.77 L 1393.24 172.77 L 1393.24 173.54 L 1390.68 173.54 L 1390.68 180 M 1389.65 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1402.36 179.8 Q 1401.05 180.18 1400.07 180.18 Q 1398.35 180.18 1397.43 179.2 Q 1396.51 178.22 1396.51 176.39 Q 1396.51 174.59 1397.44 173.59 Q 1398.37 172.59 1400.06 172.59 Q 1401.16 172.59 1402.35 172.92 L 1402.35 173.87 Q 1400.86 173.36 1400.06 173.36 Q 1398.89 173.36 1398.24 174.16 Q 1397.6 174.95 1397.6 176.4 Q 1397.6 177.83 1398.29 178.62 Q 1398.98 179.41 1400.23 179.41 Q 1400.75 179.41 1401.34 179.23 L 1401.34 176.88 L 1402.36 176.88 M 1402.36 179.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1409.59 177.24 L 1408.36 174.12 L 1407.13 177.24 M 1409.59 177.24 M 1410.68 180 L 1409.89 178 L 1406.83 178 L 1406.04 180 L 1405.08 180 L 1407.95 172.77 L 1408.96 172.77 L 1411.79 180 M 1410.68 180"/></g><rect x="0" y="182" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="182" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="182" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="182" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="182" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="182" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="182" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="182" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="182" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="182" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="639" y="182" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="182" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="182" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="182" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="702" y="182" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="182" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="182" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="182" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="182" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="774" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="182" width="27" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="182" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="182" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="182" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="182" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="182" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="182" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="182" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="182" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="182" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="182" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="182" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="182" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="182" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="182" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="182" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="182" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="182" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="182" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="182" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="182" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="182" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="182" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="182" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="182" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1116" y="182" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="182" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 193 L 0.93 185.77 L 2.35 185.77 L 4.36 191.36 L 6.42 185.77 L 7.69 185.77 L 7.69 193 L 6.73 193 L 6.73 187.12 L 4.74 192.52 L 3.75 192.52 L 1.81 187.11 L 1.81 193 M 0.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 190.24 L 13.36 187.12 L 12.13 190.24 M 14.59 190.24 M 15.68 193 L 14.89 191 L 11.83 191 L 11.04 193 L 10.08 193 L 12.95 185.77 L 13.96 185.77 L 16.79 193 M 15.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 23.59 190.24 L 22.36 187.12 L 21.13 190.24 M 23.59 190.24 M 24.68 193 L 23.89 191 L 20.83 191 L 20.04 193 L 19.08 193 L 21.95 185.77 L 22.96 185.77 L 25.79 193 M 24.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 30.65 193 L 30.65 186.54 L 28.09 186.54 L 28.09 185.77 L 34.24 185.77 L 34.24 186.54 L 31.68 186.54 L 31.68 193 M 30.65 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 190.47 L 37.72 189.75 L 42.06 189.75 L 42.06 190.47 M 37.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 190.47 L 46.72 189.75 L 51.06 189.75 L 51.06 190.47 M 46.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 190.47 L 55.72 189.75 L 60.06 189.75 L 60.06 190.47 M 55.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.72 190.47 L 64.72 189.75 L 69.06 189.75 L 69.06 190.47 M 64.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 73.72 190.47 L 73.72 189.75 L 78.06 189.75 L 78.06 190.47 M 73.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 82.72 190.47 L 82.72 189.75 L 87.06 189.75 L 87.06 190.47 M 82.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 91.72 190.47 L 91.72 189.75 L 96.06 189.75 L 96.06 190.47 M 91.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 100.72 190.47 L 100.72 189.75 L 105.06 189.75 L 105.06 190.47 M 100.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 109.72 190.47 L 109.72 189.75 L 114.06 189.75 L 114.06 190.47 M 109.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 122.59 190.24 L 121.36 187.12 L 120.13 190.24 M 122.59 190.24 M 123.68 193 L 122.89 191 L 119.83 191 L 119.04 193 L 118.08 193 L 120.95 185.77 L 121.96 185.77 L 124.79 193 M 123.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 128.93 193 L 128.93 185.77 L 129.96 185.77 L 129.96 192.23 L 133.21 192.23 L 133.21 193 M 128.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 139.35 193.18 Q 138.62 193.18 137.49 192.86 L 137.49 191.85 Q 138.71 192.41 139.5 192.41 Q 140.1 192.41 140.47 192.1 Q 140.84 191.78 140.84 191.26 Q 140.84 190.84 140.6 190.54 Q 140.35 190.24 139.71 189.88 L 139.21 189.59 Q 138.28 189.06 137.91 188.59 Q 137.53 188.13 137.53 187.51 Q 137.53 186.67 138.13 186.13 Q 138.74 185.59 139.68 185.59 Q 140.51 185.59 141.44 185.87 L 141.44 186.81 Q 140.3 186.36 139.73 186.36 Q 139.2 186.36 138.86 186.64 Q 138.51 186.93 138.51 187.36 Q 138.51 187.72 138.76 188 Q 139.02 188.27 139.69 188.66 L 140.21 188.95 Q 141.15 189.48 141.52 189.96 Q 141.89 190.43 141.89 191.1 Q 141.89 192.04 141.19 192.61 Q 140.5 193.18 139.35 193.18 M 139.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 144.93 193 L 144.93 185.77 L 146.35 185.77 L 148.36 191.36 L 150.42 185.77 L 151.69 185.77 L 151.69 193 L 150.73 193 L 150.73 187.12 L 148.74 192.52 L 147.75 192.52 L 145.81 187.11 L 145.81 193 M 144.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 157.35 193.18 Q 156.62 193.18 155.49 192.86 L 155.49 191.85 Q 156.71 192.41 157.5 192.41 Q 158.1 192.41 158.47 192.1 Q 158.84 191.78 158.84 191.26 Q 158.84 190.84 158.6 190.54 Q 158.35 190.24 157.71 189.88 L 157.21 189.59 Q 156.28 189.06 155.91 188.59 Q 155.53 188.13 155.53 187.51 Q 155.53 186.67 156.13 186.13 Q 156.74 185.59 157.68 185.59 Q 158.51 185.59 159.44 185.87 L 159.44 186.81 Q 158.3 186.36 157.73 186.36 Q 157.2 186.36 156.86 186.64 Q 156.51 186.93 156.51 187.36 Q 156.51 187.72 156.76 188 Q 157.02 188.27 157.69 188.66 L 158.21 188.95 Q 159.15 189.48 159.52 189.96 Q 159.89 190.43 159.89 191.1 Q 159.89 192.04 159.19 192.61 Q 158.5 193.18 157.35 193.18 M 157.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 165.93 193 L 165.93 185.77 L 166.95 185.77 L 166.95 193 M 165.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 173.93 193 L 173.93 185.77 L 174.96 185.77 L 174.96 192.23 L 178.21 192.23 L 178.21 193 M 173.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 193 L 181.93 185.77 L 184.12 185.77 Q 185.16 185.77 185.71 186.23 Q 186.27 186.69 186.27 187.57 Q 186.27 189.01 184.81 189.62 L 187.22 193 L 185.96 193 L 183.91 189.94 L 182.95 189.94 L 182.95 193 M 181.93 193 M 182.95 189.18 L 183.28 189.18 Q 185.21 189.18 185.21 187.66 Q 185.21 186.54 183.59 186.54 L 182.95 186.54 M 182.95 189.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.72 190.47 L 190.72 189.75 L 195.06 189.75 L 195.06 190.47 M 190.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 199.72 190.47 L 199.72 189.75 L 204.06 189.75 L 204.06 190.47 M 199.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.72 190.47 L 208.72 189.75 L 213.06 189.75 L 213.06 190.47 M 208.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 221.59 190.24 L 220.36 187.12 L 219.13 190.24 M 221.59 190.24 M 222.68 193 L 221.89 191 L 218.83 191 L 218.04 193 L 217.08 193 L 219.95 185.77 L 220.96 185.77 L 223.79 193 M 222.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.93 193 L 226.93 185.77 L 228.9 185.77 Q 230.21 185.77 230.78 186.22 Q 231.35 186.66 231.35 187.67 Q 231.35 188.82 230.57 189.47 Q 229.79 190.13 228.4 190.13 L 227.95 190.13 L 227.95 193 M 226.93 193 M 227.95 189.35 L 228.36 189.35 Q 229.28 189.35 229.77 188.93 Q 230.27 188.51 230.27 187.75 Q 230.27 187.1 229.88 186.82 Q 229.49 186.54 228.58 186.54 L 227.95 186.54 M 227.95 189.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 235.93 193 L 235.93 185.77 L 237.9 185.77 Q 239.21 185.77 239.78 186.22 Q 240.35 186.66 240.35 187.67 Q 240.35 188.82 239.57 189.47 Q 238.79 190.13 237.4 190.13 L 236.95 190.13 L 236.95 193 M 235.93 193 M 236.95 189.35 L 237.36 189.35 Q 238.28 189.35 238.77 188.93 Q 239.27 188.51 239.27 187.75 Q 239.27 187.1 238.88 186.82 Q 238.49 186.54 237.58 186.54 L 236.95 186.54 M 236.95 189.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 244.93 193 L 244.93 185.77 L 246.9 185.77 Q 248.21 185.77 248.78 186.22 Q 249.35 186.66 249.35 187.67 Q 249.35 188.82 248.57 189.47 Q 247.79 190.13 246.4 190.13 L 245.95 190.13 L 245.95 193 M 244.93 193 M 245.95 189.35 L 246.36 189.35 Q 247.28 189.35 247.77 188.93 Q 248.27 188.51 248.27 187.75 Q 248.27 187.1 247.88 186.82 Q 247.49 186.54 246.58 186.54 L 245.95 186.54 M 245.95 189.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 257.03 193.18 Q 255.34 193.18 254.43 192.19 Q 253.51 191.2 253.51 189.39 Q 253.51 187.58 254.44 186.59 Q 255.38 185.59 257.08 185.59 Q 258.05 185.59 259.35 185.91 L 259.35 186.87 Q 257.87 186.36 257.06 186.36 Q 255.89 186.36 255.24 187.16 Q 254.6 187.95 254.6 189.4 Q 254.6 190.78 255.29 191.58 Q 255.97 192.38 257.17 192.38 Q 258.19 192.38 259.36 191.75 L 259.36 192.63 Q 258.29 193.18 257.03 193.18 M 257.03 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 263.93 193 L 263.93 185.77 L 267.97 185.77 L 267.97 186.54 L 264.96 186.54 L 264.96 188.96 L 267.49 188.96 L 267.49 189.72 L 264.96 189.72 L 264.96 193 M 263.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 274.35 193.18 Q 273.62 193.18 272.49 192.86 L 272.49 191.85 Q 273.71 192.41 274.5 192.41 Q 275.1 192.41 275.47 192.1 Q 275.84 191.78 275.84 191.26 Q 275.84 190.84 275.6 190.54 Q 275.35 190.24 274.71 189.88 L 274.21 189.59 Q 273.28 189.06 272.91 188.59 Q 272.53 188.13 272.53 187.51 Q 272.53 186.67 273.13 186.13 Q 273.74 185.59 274.68 185.59 Q 275.51 185.59 276.44 185.87 L 276.44 186.81 Q 275.3 186.36 274.73 186.36 Q 274.2 186.36 273.86 186.64 Q 273.51 186.93 273.51 187.36 Q 273.51 187.72 273.76 188 Q 274.02 188.27 274.69 188.66 L 275.21 188.95 Q 276.15 189.48 276.52 189.96 Q 276.89 190.43 276.89 191.1 Q 276.89 192.04 276.19 192.61 Q 275.5 193.18 274.35 193.18 M 274.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 283.35 193.18 Q 282.62 193.18 281.49 192.86 L 281.49 191.85 Q 282.71 192.41 283.5 192.41 Q 284.1 192.41 284.47 192.1 Q 284.84 191.78 284.84 191.26 Q 284.84 190.84 284.6 190.54 Q 284.35 190.24 283.71 189.88 L 283.21 189.59 Q 282.28 189.06 281.91 188.59 Q 281.53 188.13 281.53 187.51 Q 281.53 186.67 282.13 186.13 Q 282.74 185.59 283.68 185.59 Q 284.51 185.59 285.44 185.87 L 285.44 186.81 Q 284.3 186.36 283.73 186.36 Q 283.2 186.36 282.86 186.64 Q 282.51 186.93 282.51 187.36 Q 282.51 187.72 282.76 188 Q 283.02 188.27 283.69 188.66 L 284.21 188.95 Q 285.15 189.48 285.52 189.96 Q 285.89 190.43 285.89 191.1 Q 285.89 192.04 285.19 192.61 Q 284.5 193.18 283.35 193.18 M 283.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 289.93 193 L 289.93 185.77 L 291.9 185.77 Q 293.21 185.77 293.78 186.22 Q 294.35 186.66 294.35 187.67 Q 294.35 188.82 293.57 189.47 Q 292.79 190.13 291.4 190.13 L 290.95 190.13 L 290.95 193 M 289.93 193 M 290.95 189.35 L 291.36 189.35 Q 292.28 189.35 292.77 188.93 Q 293.27 188.51 293.27 187.75 Q 293.27 187.1 292.88 186.82 Q 292.49 186.54 291.58 186.54 L 290.95 186.54 M 290.95 189.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 299.93 193 L 299.93 185.77 L 300.96 185.77 L 300.96 192.23 L 304.21 192.23 L 304.21 193 M 299.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 307.93 193 L 307.93 185.77 L 310.12 185.77 Q 311.16 185.77 311.71 186.23 Q 312.27 186.69 312.27 187.57 Q 312.27 189.01 310.81 189.62 L 313.22 193 L 311.96 193 L 309.91 189.94 L 308.95 189.94 L 308.95 193 M 307.93 193 M 308.95 189.18 L 309.28 189.18 Q 311.21 189.18 311.21 187.66 Q 311.21 186.54 309.59 186.54 L 308.95 186.54 M 308.95 189.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 317.93 193 L 317.93 185.77 L 318.96 185.77 L 318.96 192.23 L 322.21 192.23 L 322.21 193 M 317.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 325.93 193 L 325.93 185.77 L 328.12 185.77 Q 329.16 185.77 329.71 186.23 Q 330.27 186.69 330.27 187.57 Q 330.27 189.01 328.81 189.62 L 331.22 193 L 329.96 193 L 327.91 189.94 L 326.95 189.94 L 326.95 193 M 325.93 193 M 326.95 189.18 L 327.28 189.18 Q 329.21 189.18 329.21 187.66 Q 329.21 186.54 327.59 186.54 L 326.95 186.54 M 326.95 189.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 336.91 193 L 334.18 185.77 L 335.2 185.77 L 337.44 191.69 L 339.6 185.77 L 340.49 185.77 L 337.87 193 M 336.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 190.47 L 343.72 189.75 L 348.06 189.75 L 348.06 190.47 M 343.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 190.47 L 352.72 189.75 L 357.06 189.75 L 357.06 190.47 M 352.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 365.59 190.24 L 364.36 187.12 L 363.13 190.24 M 365.59 190.24 M 366.68 193 L 365.89 191 L 362.83 191 L 362.04 193 L 361.08 193 L 363.95 185.77 L 364.96 185.77 L 367.79 193 M 366.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 372.91 193 L 370.18 185.77 L 371.2 185.77 L 373.44 191.69 L 375.6 185.77 L 376.49 185.77 L 373.87 193 M 372.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 383.59 190.24 L 382.36 187.12 L 381.13 190.24 M 383.59 190.24 M 384.68 193 L 383.89 191 L 380.83 191 L 380.04 193 L 379.08 193 L 381.95 185.77 L 382.96 185.77 L 385.79 193 M 384.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 388.93 193 L 388.93 185.77 L 389.89 185.77 L 389.89 189.33 L 392.82 185.77 L 393.85 185.77 L 391.02 189.22 L 394.35 193 L 393.05 193 L 389.89 189.34 L 389.89 193 M 388.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 397.93 193 L 397.93 185.77 L 399.9 185.77 Q 401.21 185.77 401.78 186.22 Q 402.35 186.66 402.35 187.67 Q 402.35 188.82 401.57 189.47 Q 400.79 190.13 399.4 190.13 L 398.95 190.13 L 398.95 193 M 397.93 193 M 398.95 189.35 L 399.36 189.35 Q 400.28 189.35 400.77 188.93 Q 401.27 188.51 401.27 187.75 Q 401.27 187.1 400.88 186.82 Q 400.49 186.54 399.58 186.54 L 398.95 186.54 M 398.95 189.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 407.93 193 L 407.93 185.77 L 408.96 185.77 L 408.96 192.23 L 412.21 192.23 L 412.21 193 M 407.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 419.59 190.24 L 418.36 187.12 L 417.13 190.24 M 419.59 190.24 M 420.68 193 L 419.89 191 L 416.83 191 L 416.04 193 L 415.08 193 L 417.95 185.77 L 418.96 185.77 L 421.79 193 M 420.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 190.47 L 424.72 189.75 L 429.06 189.75 L 429.06 190.47 M 424.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 437.59 190.24 L 436.36 187.12 L 435.13 190.24 M 437.59 190.24 M 438.68 193 L 437.89 191 L 434.83 191 L 434.04 193 L 433.08 193 L 435.95 185.77 L 436.96 185.77 L 439.79 193 M 438.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 442.93 193 L 442.93 185.77 L 444.9 185.77 Q 446.21 185.77 446.78 186.22 Q 447.35 186.66 447.35 187.67 Q 447.35 188.82 446.57 189.47 Q 445.79 190.13 444.4 190.13 L 443.95 190.13 L 443.95 193 M 442.93 193 M 443.95 189.35 L 444.36 189.35 Q 445.28 189.35 445.77 188.93 Q 446.27 188.51 446.27 187.75 Q 446.27 187.1 445.88 186.82 Q 445.49 186.54 444.58 186.54 L 443.95 186.54 M 443.95 189.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 450.93 193 L 450.93 185.77 L 452.35 185.77 L 454.36 191.36 L 456.42 185.77 L 457.69 185.77 L 457.69 193 L 456.73 193 L 456.73 187.12 L 454.74 192.52 L 453.75 192.52 L 451.81 187.11 L 451.81 193 M 450.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.93 193 L 460.93 185.77 L 463.12 185.77 Q 464.16 185.77 464.71 186.23 Q 465.27 186.69 465.27 187.57 Q 465.27 189.01 463.81 189.62 L 466.22 193 L 464.96 193 L 462.91 189.94 L 461.95 189.94 L 461.95 193 M 460.93 193 M 461.95 189.18 L 462.28 189.18 Q 464.21 189.18 464.21 187.66 Q 464.21 186.54 462.59 186.54 L 461.95 186.54 M 461.95 189.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 469.93 193 L 469.93 185.77 L 472.12 185.77 Q 473.16 185.77 473.71 186.23 Q 474.27 186.69 474.27 187.57 Q 474.27 189.01 472.81 189.62 L 475.22 193 L 473.96 193 L 471.91 189.94 L 470.95 189.94 L 470.95 193 M 469.93 193 M 470.95 189.18 L 471.28 189.18 Q 473.21 189.18 473.21 187.66 Q 473.21 186.54 471.59 186.54 L 470.95 186.54 M 470.95 189.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 484.35 194.45 Q 482.64 193.89 481.49 193.13 Q 481.03 193.18 480.78 193.18 Q 479.33 193.18 478.42 192.13 Q 477.51 191.07 477.51 189.39 Q 477.51 187.66 478.43 186.63 Q 479.35 185.59 480.89 185.59 Q 482.43 185.59 483.35 186.63 Q 484.27 187.66 484.27 189.4 Q 484.27 191.89 482.42 192.85 Q 483.66 193.4 485 193.63 M 484.35 194.45 M 480.86 192.41 Q 481.97 192.41 482.57 191.62 Q 483.18 190.82 483.18 189.37 Q 483.18 187.96 482.57 187.16 Q 481.97 186.36 480.89 186.36 Q 479.81 186.36 479.2 187.16 Q 478.6 187.96 478.6 189.38 Q 478.6 190.79 479.2 191.6 Q 479.8 192.41 480.86 192.41 M 480.86 192.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 488.93 193 L 488.93 185.77 L 489.96 185.77 L 489.96 192.23 L 493.21 192.23 L 493.21 193 M 488.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 497.93 193 L 497.93 185.77 L 498.96 185.77 L 498.96 192.23 L 502.21 192.23 L 502.21 193 M 497.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 505.93 193 L 505.93 185.77 L 508.12 185.77 Q 509.16 185.77 509.71 186.23 Q 510.27 186.69 510.27 187.57 Q 510.27 189.01 508.81 189.62 L 511.22 193 L 509.96 193 L 507.91 189.94 L 506.95 189.94 L 506.95 193 M 505.93 193 M 506.95 189.18 L 507.28 189.18 Q 509.21 189.18 509.21 187.66 Q 509.21 186.54 507.59 186.54 L 506.95 186.54 M 506.95 189.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 518.59 190.24 L 517.36 187.12 L 516.13 190.24 M 518.59 190.24 M 519.68 193 L 518.89 191 L 515.83 191 L 515.04 193 L 514.08 193 L 516.95 185.77 L 517.96 185.77 L 520.79 193 M 519.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 529.35 194.45 Q 527.64 193.89 526.49 193.13 Q 526.03 193.18 525.78 193.18 Q 524.33 193.18 523.42 192.13 Q 522.51 191.07 522.51 189.39 Q 522.51 187.66 523.43 186.63 Q 524.35 185.59 525.89 185.59 Q 527.43 185.59 528.35 186.63 Q 529.27 187.66 529.27 189.4 Q 529.27 191.89 527.42 192.85 Q 528.66 193.4 530 193.63 M 529.35 194.45 M 525.86 192.41 Q 526.97 192.41 527.57 191.62 Q 528.18 190.82 528.18 189.37 Q 528.18 187.96 527.57 187.16 Q 526.97 186.36 525.89 186.36 Q 524.81 186.36 524.2 187.16 Q 523.6 187.96 523.6 189.38 Q 523.6 190.79 524.2 191.6 Q 524.8 192.41 525.86 192.41 M 525.86 192.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 190.24 L 535.36 187.12 L 534.13 190.24 M 536.59 190.24 M 537.68 193 L 536.89 191 L 533.83 191 L 533.04 193 L 532.08 193 L 534.95 185.77 L 535.96 185.77 L 538.79 193 M 537.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 543.65 193 L 543.65 186.54 L 541.09 186.54 L 541.09 185.77 L 547.24 185.77 L 547.24 186.54 L 544.68 186.54 L 544.68 193 M 543.65 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 193 L 552.5 189.98 L 550.08 185.77 L 551.25 185.77 L 553.13 189.04 L 555.15 185.77 L 556.1 185.77 L 553.52 189.96 L 553.52 193 M 552.5 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 193 L 559.93 185.77 L 560.94 185.77 L 564.58 191.35 L 564.58 185.77 L 565.46 185.77 L 565.46 193 L 564.45 193 L 560.81 187.42 L 560.81 193 M 559.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 193 L 568.18 185.77 L 569.2 185.77 L 571.44 191.69 L 573.6 185.77 L 574.49 185.77 L 571.87 193 M 570.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 193 L 577.93 185.77 L 578.89 185.77 L 578.89 189.33 L 581.82 185.77 L 582.85 185.77 L 580.02 189.22 L 583.35 193 L 582.05 193 L 578.89 189.34 L 578.89 193 M 577.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 193 L 587.93 185.77 L 588.96 185.77 L 588.96 192.23 L 592.21 192.23 L 592.21 193 M 587.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 193 L 597.93 185.77 L 598.95 185.77 L 598.95 193 M 597.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 193 L 606.65 186.54 L 604.09 186.54 L 604.09 185.77 L 610.24 185.77 L 610.24 186.54 L 607.68 186.54 L 607.68 193 M 606.65 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 193 L 613.93 185.77 L 615.9 185.77 Q 617.21 185.77 617.78 186.22 Q 618.35 186.66 618.35 187.67 Q 618.35 188.82 617.57 189.47 Q 616.79 190.13 615.4 190.13 L 614.95 190.13 L 614.95 193 M 613.93 193 M 614.95 189.35 L 615.36 189.35 Q 616.28 189.35 616.77 188.93 Q 617.27 188.51 617.27 187.75 Q 617.27 187.1 616.88 186.82 Q 616.49 186.54 615.58 186.54 L 614.95 186.54 M 614.95 189.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 623.93 193 L 623.93 185.77 L 627.97 185.77 L 627.97 186.54 L 624.96 186.54 L 624.96 188.86 L 627.48 188.86 L 627.48 189.62 L 624.96 189.62 L 624.96 192.23 L 628.18 192.23 L 628.18 193 M 623.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 192.8 Q 636.05 193.18 635.07 193.18 Q 633.35 193.18 632.43 192.2 Q 631.51 191.22 631.51 189.39 Q 631.51 187.59 632.44 186.59 Q 633.37 185.59 635.06 185.59 Q 636.16 185.59 637.35 185.92 L 637.35 186.87 Q 635.86 186.36 635.06 186.36 Q 633.89 186.36 633.24 187.16 Q 632.6 187.95 632.6 189.4 Q 632.6 190.83 633.29 191.62 Q 633.98 192.41 635.23 192.41 Q 635.75 192.41 636.34 192.23 L 636.34 189.88 L 637.36 189.88 M 637.36 192.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 641.93 193 L 641.93 185.77 L 645.97 185.77 L 645.97 186.54 L 642.96 186.54 L 642.96 188.86 L 645.48 188.86 L 645.48 189.62 L 642.96 189.62 L 642.96 192.23 L 646.18 192.23 L 646.18 193 M 641.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 651.91 193 L 649.18 185.77 L 650.2 185.77 L 652.44 191.69 L 654.6 185.77 L 655.49 185.77 L 652.87 193 M 651.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 193 L 659.93 185.77 L 663.97 185.77 L 663.97 186.54 L 660.96 186.54 L 660.96 188.86 L 663.48 188.86 L 663.48 189.62 L 660.96 189.62 L 660.96 192.23 L 664.18 192.23 L 664.18 193 M 659.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 668.93 193 L 668.93 185.77 L 669.96 185.77 L 669.96 192.23 L 673.21 192.23 L 673.21 193 M 668.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 682.35 194.45 Q 680.64 193.89 679.49 193.13 Q 679.03 193.18 678.78 193.18 Q 677.33 193.18 676.42 192.13 Q 675.51 191.07 675.51 189.39 Q 675.51 187.66 676.43 186.63 Q 677.35 185.59 678.89 185.59 Q 680.43 185.59 681.35 186.63 Q 682.27 187.66 682.27 189.4 Q 682.27 191.89 680.42 192.85 Q 681.66 193.4 683 193.63 M 682.35 194.45 M 678.86 192.41 Q 679.97 192.41 680.57 191.62 Q 681.18 190.82 681.18 189.37 Q 681.18 187.96 680.57 187.16 Q 679.97 186.36 678.89 186.36 Q 677.81 186.36 677.2 187.16 Q 676.6 187.96 676.6 189.38 Q 676.6 190.79 677.2 191.6 Q 677.8 192.41 678.86 192.41 M 678.86 192.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 687.91 193 L 685.18 185.77 L 686.2 185.77 L 688.44 191.69 L 690.6 185.77 L 691.49 185.77 L 688.87 193 M 687.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 193 L 694.93 185.77 L 696.9 185.77 Q 698.21 185.77 698.78 186.22 Q 699.35 186.66 699.35 187.67 Q 699.35 188.82 698.57 189.47 Q 697.79 190.13 696.4 190.13 L 695.95 190.13 L 695.95 193 M 694.93 193 M 695.95 189.35 L 696.36 189.35 Q 697.28 189.35 697.77 188.93 Q 698.27 188.51 698.27 187.75 Q 698.27 187.1 697.88 186.82 Q 697.49 186.54 696.58 186.54 L 695.95 186.54 M 695.95 189.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 193 L 703.93 185.77 L 706.33 185.77 Q 707.41 185.77 708.07 186.01 Q 708.73 186.25 709.22 186.82 Q 709.98 187.73 709.98 189.22 Q 709.98 191.02 709.03 192.01 Q 708.08 193 706.35 193 M 703.93 193 M 704.96 192.23 L 706.27 192.23 Q 707.68 192.23 708.26 191.48 Q 708.89 190.67 708.89 189.31 Q 708.89 188.04 708.27 187.31 Q 707.9 186.87 707.38 186.7 Q 706.85 186.54 705.8 186.54 L 704.96 186.54 M 704.96 192.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 193 L 712.93 185.77 L 715.33 185.77 Q 716.41 185.77 717.07 186.01 Q 717.73 186.25 718.22 186.82 Q 718.98 187.73 718.98 189.22 Q 718.98 191.02 718.03 192.01 Q 717.08 193 715.35 193 M 712.93 193 M 713.96 192.23 L 715.27 192.23 Q 716.68 192.23 717.26 191.48 Q 717.89 190.67 717.89 189.31 Q 717.89 188.04 717.27 187.31 Q 716.9 186.87 716.38 186.7 Q 715.85 186.54 714.8 186.54 L 713.96 186.54 M 713.96 192.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 193 L 721.18 185.77 L 722.2 185.77 L 724.44 191.69 L 726.6 185.77 L 727.49 185.77 L 724.87 193 M 723.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 193 L 732.5 189.98 L 730.08 185.77 L 731.25 185.77 L 733.13 189.04 L 735.15 185.77 L 736.1 185.77 L 733.52 189.96 L 733.52 193 M 732.5 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.93 193 L 741.93 185.77 L 742.95 185.77 L 742.95 193 M 741.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 193 L 749.93 185.77 L 750.96 185.77 L 750.96 192.23 L 754.21 192.23 L 754.21 193 M 749.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 193 L 757.93 185.77 L 760.33 185.77 Q 761.41 185.77 762.07 186.01 Q 762.73 186.25 763.22 186.82 Q 763.98 187.73 763.98 189.22 Q 763.98 191.02 763.03 192.01 Q 762.08 193 760.35 193 M 757.93 193 M 758.96 192.23 L 760.27 192.23 Q 761.68 192.23 762.26 191.48 Q 762.89 190.67 762.89 189.31 Q 762.89 188.04 762.27 187.31 Q 761.9 186.87 761.38 186.7 Q 760.85 186.54 759.8 186.54 L 758.96 186.54 M 758.96 192.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 767.93 193 L 767.93 185.77 L 771.97 185.77 L 771.97 186.54 L 768.96 186.54 L 768.96 188.96 L 771.49 188.96 L 771.49 189.72 L 768.96 189.72 L 768.96 193 M 767.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 190.24 L 778.36 187.12 L 777.13 190.24 M 779.59 190.24 M 780.68 193 L 779.89 191 L 776.83 191 L 776.04 193 L 775.08 193 L 777.95 185.77 L 778.96 185.77 L 781.79 193 M 780.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 193 L 785.93 185.77 L 789.97 185.77 L 789.97 186.54 L 786.96 186.54 L 786.96 188.86 L 789.48 188.86 L 789.48 189.62 L 786.96 189.62 L 786.96 192.23 L 790.18 192.23 L 790.18 193 M 785.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 193 L 794.93 185.77 L 798.97 185.77 L 798.97 186.54 L 795.96 186.54 L 795.96 188.86 L 798.48 188.86 L 798.48 189.62 L 795.96 189.62 L 795.96 192.23 L 799.18 192.23 L 799.18 193 M 794.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 803.93 193 L 803.93 185.77 L 807.97 185.77 L 807.97 186.54 L 804.96 186.54 L 804.96 188.86 L 807.48 188.86 L 807.48 189.62 L 804.96 189.62 L 804.96 192.23 L 808.18 192.23 L 808.18 193 M 803.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 192.8 Q 816.05 193.18 815.07 193.18 Q 813.35 193.18 812.43 192.2 Q 811.51 191.22 811.51 189.39 Q 811.51 187.59 812.44 186.59 Q 813.37 185.59 815.06 185.59 Q 816.16 185.59 817.35 185.92 L 817.35 186.87 Q 815.86 186.36 815.06 186.36 Q 813.89 186.36 813.24 187.16 Q 812.6 187.95 812.6 189.4 Q 812.6 190.83 813.29 191.62 Q 813.98 192.41 815.23 192.41 Q 815.75 192.41 816.34 192.23 L 816.34 189.88 L 817.36 189.88 M 817.36 192.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 822.93 193 L 822.93 185.77 L 823.95 185.77 L 823.95 193 M 822.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 193 L 829.93 185.77 L 832.33 185.77 Q 833.41 185.77 834.07 186.01 Q 834.73 186.25 835.22 186.82 Q 835.98 187.73 835.98 189.22 Q 835.98 191.02 835.03 192.01 Q 834.08 193 832.35 193 M 829.93 193 M 830.96 192.23 L 832.27 192.23 Q 833.68 192.23 834.26 191.48 Q 834.89 190.67 834.89 189.31 Q 834.89 188.04 834.27 187.31 Q 833.9 186.87 833.38 186.7 Q 832.85 186.54 831.8 186.54 L 830.96 186.54 M 830.96 192.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 193 L 839.93 185.77 L 840.96 185.77 L 840.96 192.23 L 844.21 192.23 L 844.21 193 M 839.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 193 L 847.93 185.77 L 849.9 185.77 Q 851.21 185.77 851.78 186.22 Q 852.35 186.66 852.35 187.67 Q 852.35 188.82 851.57 189.47 Q 850.79 190.13 849.4 190.13 L 848.95 190.13 L 848.95 193 M 847.93 193 M 848.95 189.35 L 849.36 189.35 Q 850.28 189.35 850.77 188.93 Q 851.27 188.51 851.27 187.75 Q 851.27 187.1 850.88 186.82 Q 850.49 186.54 849.58 186.54 L 848.95 186.54 M 848.95 189.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 857.93 193 L 857.93 185.77 L 861.97 185.77 L 861.97 186.54 L 858.96 186.54 L 858.96 188.96 L 861.49 188.96 L 861.49 189.72 L 858.96 189.72 L 858.96 193 M 857.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 193.18 Q 867.62 193.18 866.49 192.86 L 866.49 191.85 Q 867.71 192.41 868.5 192.41 Q 869.1 192.41 869.47 192.1 Q 869.84 191.78 869.84 191.26 Q 869.84 190.84 869.6 190.54 Q 869.35 190.24 868.71 189.88 L 868.21 189.59 Q 867.28 189.06 866.91 188.59 Q 866.53 188.13 866.53 187.51 Q 866.53 186.67 867.13 186.13 Q 867.74 185.59 868.68 185.59 Q 869.51 185.59 870.44 185.87 L 870.44 186.81 Q 869.3 186.36 868.73 186.36 Q 868.2 186.36 867.86 186.64 Q 867.51 186.93 867.51 187.36 Q 867.51 187.72 867.76 188 Q 868.02 188.27 868.69 188.66 L 869.21 188.95 Q 870.15 189.48 870.52 189.96 Q 870.89 190.43 870.89 191.1 Q 870.89 192.04 870.19 192.61 Q 869.5 193.18 868.35 193.18 M 868.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 193.18 Q 876.34 193.18 875.43 192.19 Q 874.51 191.2 874.51 189.39 Q 874.51 187.58 875.44 186.59 Q 876.38 185.59 878.08 185.59 Q 879.05 185.59 880.35 185.91 L 880.35 186.87 Q 878.87 186.36 878.06 186.36 Q 876.89 186.36 876.24 187.16 Q 875.6 187.95 875.6 189.4 Q 875.6 190.78 876.29 191.58 Q 876.97 192.38 878.17 192.38 Q 879.19 192.38 880.36 191.75 L 880.36 192.63 Q 879.29 193.18 878.03 193.18 M 878.03 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 193 L 883.93 185.77 L 886.12 185.77 Q 887.16 185.77 887.71 186.23 Q 888.27 186.69 888.27 187.57 Q 888.27 189.01 886.81 189.62 L 889.22 193 L 887.96 193 L 885.91 189.94 L 884.95 189.94 L 884.95 193 M 883.93 193 M 884.95 189.18 L 885.28 189.18 Q 887.21 189.18 887.21 187.66 Q 887.21 186.54 885.59 186.54 L 884.95 186.54 M 884.95 189.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 190.24 L 895.36 187.12 L 894.13 190.24 M 896.59 190.24 M 897.68 193 L 896.89 191 L 893.83 191 L 893.04 193 L 892.08 193 L 894.95 185.77 L 895.96 185.77 L 898.79 193 M 897.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 192.8 Q 906.05 193.18 905.07 193.18 Q 903.35 193.18 902.43 192.2 Q 901.51 191.22 901.51 189.39 Q 901.51 187.59 902.44 186.59 Q 903.37 185.59 905.06 185.59 Q 906.16 185.59 907.35 185.92 L 907.35 186.87 Q 905.86 186.36 905.06 186.36 Q 903.89 186.36 903.24 187.16 Q 902.6 187.95 902.6 189.4 Q 902.6 190.83 903.29 191.62 Q 903.98 192.41 905.23 192.41 Q 905.75 192.41 906.34 192.23 L 906.34 189.88 L 907.36 189.88 M 907.36 192.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 193.18 Q 912.62 193.18 911.49 192.86 L 911.49 191.85 Q 912.71 192.41 913.5 192.41 Q 914.1 192.41 914.47 192.1 Q 914.84 191.78 914.84 191.26 Q 914.84 190.84 914.6 190.54 Q 914.35 190.24 913.71 189.88 L 913.21 189.59 Q 912.28 189.06 911.91 188.59 Q 911.53 188.13 911.53 187.51 Q 911.53 186.67 912.13 186.13 Q 912.74 185.59 913.68 185.59 Q 914.51 185.59 915.44 185.87 L 915.44 186.81 Q 914.3 186.36 913.73 186.36 Q 913.2 186.36 912.86 186.64 Q 912.51 186.93 912.51 187.36 Q 912.51 187.72 912.76 188 Q 913.02 188.27 913.69 188.66 L 914.21 188.95 Q 915.15 189.48 915.52 189.96 Q 915.89 190.43 915.89 191.1 Q 915.89 192.04 915.19 192.61 Q 914.5 193.18 913.35 193.18 M 913.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 193.18 Q 921.34 193.18 920.43 192.19 Q 919.51 191.2 919.51 189.39 Q 919.51 187.58 920.44 186.59 Q 921.38 185.59 923.08 185.59 Q 924.05 185.59 925.35 185.91 L 925.35 186.87 Q 923.87 186.36 923.06 186.36 Q 921.89 186.36 921.24 187.16 Q 920.6 187.95 920.6 189.4 Q 920.6 190.78 921.29 191.58 Q 921.97 192.38 923.17 192.38 Q 924.19 192.38 925.36 191.75 L 925.36 192.63 Q 924.29 193.18 923.03 193.18 M 923.03 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 193.18 Q 930.62 193.18 929.49 192.86 L 929.49 191.85 Q 930.71 192.41 931.5 192.41 Q 932.1 192.41 932.47 192.1 Q 932.84 191.78 932.84 191.26 Q 932.84 190.84 932.6 190.54 Q 932.35 190.24 931.71 189.88 L 931.21 189.59 Q 930.28 189.06 929.91 188.59 Q 929.53 188.13 929.53 187.51 Q 929.53 186.67 930.13 186.13 Q 930.74 185.59 931.68 185.59 Q 932.51 185.59 933.44 185.87 L 933.44 186.81 Q 932.3 186.36 931.73 186.36 Q 931.2 186.36 930.86 186.64 Q 930.51 186.93 930.51 187.36 Q 930.51 187.72 930.76 188 Q 931.02 188.27 931.69 188.66 L 932.21 188.95 Q 933.15 189.48 933.52 189.96 Q 933.89 190.43 933.89 191.1 Q 933.89 192.04 933.19 192.61 Q 932.5 193.18 931.35 193.18 M 931.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 193.18 Q 939.62 193.18 938.49 192.86 L 938.49 191.85 Q 939.71 192.41 940.5 192.41 Q 941.1 192.41 941.47 192.1 Q 941.84 191.78 941.84 191.26 Q 941.84 190.84 941.6 190.54 Q 941.35 190.24 940.71 189.88 L 940.21 189.59 Q 939.28 189.06 938.91 188.59 Q 938.53 188.13 938.53 187.51 Q 938.53 186.67 939.13 186.13 Q 939.74 185.59 940.68 185.59 Q 941.51 185.59 942.44 185.87 L 942.44 186.81 Q 941.3 186.36 940.73 186.36 Q 940.2 186.36 939.86 186.64 Q 939.51 186.93 939.51 187.36 Q 939.51 187.72 939.76 188 Q 940.02 188.27 940.69 188.66 L 941.21 188.95 Q 942.15 189.48 942.52 189.96 Q 942.89 190.43 942.89 191.1 Q 942.89 192.04 942.19 192.61 Q 941.5 193.18 940.35 193.18 M 940.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 193.18 Q 948.34 193.18 947.43 192.19 Q 946.51 191.2 946.51 189.39 Q 946.51 187.58 947.44 186.59 Q 948.38 185.59 950.08 185.59 Q 951.05 185.59 952.35 185.91 L 952.35 186.87 Q 950.87 186.36 950.06 186.36 Q 948.89 186.36 948.24 187.16 Q 947.6 187.95 947.6 189.4 Q 947.6 190.78 948.29 191.58 Q 948.97 192.38 950.17 192.38 Q 951.19 192.38 952.36 191.75 L 952.36 192.63 Q 951.29 193.18 950.03 193.18 M 950.03 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 190.24 L 958.36 187.12 L 957.13 190.24 M 959.59 190.24 M 960.68 193 L 959.89 191 L 956.83 191 L 956.04 193 L 955.08 193 L 957.95 185.77 L 958.96 185.77 L 961.79 193 M 960.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 192.8 Q 969.05 193.18 968.07 193.18 Q 966.35 193.18 965.43 192.2 Q 964.51 191.22 964.51 189.39 Q 964.51 187.59 965.44 186.59 Q 966.37 185.59 968.06 185.59 Q 969.16 185.59 970.35 185.92 L 970.35 186.87 Q 968.86 186.36 968.06 186.36 Q 966.89 186.36 966.24 187.16 Q 965.6 187.95 965.6 189.4 Q 965.6 190.83 966.29 191.62 Q 966.98 192.41 968.23 192.41 Q 968.75 192.41 969.34 192.23 L 969.34 189.88 L 970.36 189.88 M 970.36 192.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 193 L 973.93 185.77 L 974.89 185.77 L 974.89 189.33 L 977.82 185.77 L 978.85 185.77 L 976.02 189.22 L 979.35 193 L 978.05 193 L 974.89 189.34 L 974.89 193 M 973.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 193 L 982.18 185.77 L 983.2 185.77 L 985.44 191.69 L 987.6 185.77 L 988.49 185.77 L 985.87 193 M 984.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.91 193 L 991.18 185.77 L 992.2 185.77 L 994.44 191.69 L 996.6 185.77 L 997.49 185.77 L 994.87 193 M 993.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1003.35 193.18 Q 1002.62 193.18 1001.49 192.86 L 1001.49 191.85 Q 1002.71 192.41 1003.5 192.41 Q 1004.1 192.41 1004.47 192.1 Q 1004.84 191.78 1004.84 191.26 Q 1004.84 190.84 1004.6 190.54 Q 1004.35 190.24 1003.71 189.88 L 1003.21 189.59 Q 1002.28 189.06 1001.91 188.59 Q 1001.53 188.13 1001.53 187.51 Q 1001.53 186.67 1002.13 186.13 Q 1002.74 185.59 1003.68 185.59 Q 1004.51 185.59 1005.44 185.87 L 1005.44 186.81 Q 1004.3 186.36 1003.73 186.36 Q 1003.2 186.36 1002.86 186.64 Q 1002.51 186.93 1002.51 187.36 Q 1002.51 187.72 1002.76 188 Q 1003.02 188.27 1003.69 188.66 L 1004.21 188.95 Q 1005.15 189.48 1005.52 189.96 Q 1005.89 190.43 1005.89 191.1 Q 1005.89 192.04 1005.19 192.61 Q 1004.5 193.18 1003.35 193.18 M 1003.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 192.8 Q 1014.05 193.18 1013.07 193.18 Q 1011.35 193.18 1010.43 192.2 Q 1009.51 191.22 1009.51 189.39 Q 1009.51 187.59 1010.44 186.59 Q 1011.37 185.59 1013.06 185.59 Q 1014.16 185.59 1015.35 185.92 L 1015.35 186.87 Q 1013.86 186.36 1013.06 186.36 Q 1011.89 186.36 1011.24 187.16 Q 1010.6 187.95 1010.6 189.4 Q 1010.6 190.83 1011.29 191.62 Q 1011.98 192.41 1013.23 192.41 Q 1013.75 192.41 1014.34 192.23 L 1014.34 189.88 L 1015.36 189.88 M 1015.36 192.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1021.35 193.18 Q 1020.62 193.18 1019.49 192.86 L 1019.49 191.85 Q 1020.71 192.41 1021.5 192.41 Q 1022.1 192.41 1022.47 192.1 Q 1022.84 191.78 1022.84 191.26 Q 1022.84 190.84 1022.6 190.54 Q 1022.35 190.24 1021.71 189.88 L 1021.21 189.59 Q 1020.28 189.06 1019.91 188.59 Q 1019.53 188.13 1019.53 187.51 Q 1019.53 186.67 1020.13 186.13 Q 1020.74 185.59 1021.68 185.59 Q 1022.51 185.59 1023.44 185.87 L 1023.44 186.81 Q 1022.3 186.36 1021.73 186.36 Q 1021.2 186.36 1020.86 186.64 Q 1020.51 186.93 1020.51 187.36 Q 1020.51 187.72 1020.76 188 Q 1021.02 188.27 1021.69 188.66 L 1022.21 188.95 Q 1023.15 189.48 1023.52 189.96 Q 1023.89 190.43 1023.89 191.1 Q 1023.89 192.04 1023.19 192.61 Q 1022.5 193.18 1021.35 193.18 M 1021.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 193 L 1027.18 185.77 L 1028.2 185.77 L 1030.44 191.69 L 1032.6 185.77 L 1033.49 185.77 L 1030.87 193 M 1029.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 193 L 1036.93 185.77 L 1039.33 185.77 Q 1040.41 185.77 1041.07 186.01 Q 1041.73 186.25 1042.22 186.82 Q 1042.98 187.73 1042.98 189.22 Q 1042.98 191.02 1042.03 192.01 Q 1041.08 193 1039.35 193 M 1036.93 193 M 1037.96 192.23 L 1039.27 192.23 Q 1040.68 192.23 1041.26 191.48 Q 1041.89 190.67 1041.89 189.31 Q 1041.89 188.04 1041.27 187.31 Q 1040.9 186.87 1040.38 186.7 Q 1039.85 186.54 1038.8 186.54 L 1037.96 186.54 M 1037.96 192.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 194.45 Q 1049.64 193.89 1048.49 193.13 Q 1048.03 193.18 1047.78 193.18 Q 1046.33 193.18 1045.42 192.13 Q 1044.51 191.07 1044.51 189.39 Q 1044.51 187.66 1045.43 186.63 Q 1046.35 185.59 1047.89 185.59 Q 1049.43 185.59 1050.35 186.63 Q 1051.27 187.66 1051.27 189.4 Q 1051.27 191.89 1049.42 192.85 Q 1050.66 193.4 1052 193.63 M 1051.35 194.45 M 1047.86 192.41 Q 1048.97 192.41 1049.57 191.62 Q 1050.18 190.82 1050.18 189.37 Q 1050.18 187.96 1049.57 187.16 Q 1048.97 186.36 1047.89 186.36 Q 1046.81 186.36 1046.2 187.16 Q 1045.6 187.96 1045.6 189.38 Q 1045.6 190.79 1046.2 191.6 Q 1046.8 192.41 1047.86 192.41 M 1047.86 192.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1057.35 193.18 Q 1056.62 193.18 1055.49 192.86 L 1055.49 191.85 Q 1056.71 192.41 1057.5 192.41 Q 1058.1 192.41 1058.47 192.1 Q 1058.84 191.78 1058.84 191.26 Q 1058.84 190.84 1058.6 190.54 Q 1058.35 190.24 1057.71 189.88 L 1057.21 189.59 Q 1056.28 189.06 1055.91 188.59 Q 1055.53 188.13 1055.53 187.51 Q 1055.53 186.67 1056.13 186.13 Q 1056.74 185.59 1057.68 185.59 Q 1058.51 185.59 1059.44 185.87 L 1059.44 186.81 Q 1058.3 186.36 1057.73 186.36 Q 1057.2 186.36 1056.86 186.64 Q 1056.51 186.93 1056.51 187.36 Q 1056.51 187.72 1056.76 188 Q 1057.02 188.27 1057.69 188.66 L 1058.21 188.95 Q 1059.15 189.48 1059.52 189.96 Q 1059.89 190.43 1059.89 191.1 Q 1059.89 192.04 1059.19 192.61 Q 1058.5 193.18 1057.35 193.18 M 1057.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 193 L 1063.93 185.77 L 1066.33 185.77 Q 1067.41 185.77 1068.07 186.01 Q 1068.73 186.25 1069.22 186.82 Q 1069.98 187.73 1069.98 189.22 Q 1069.98 191.02 1069.03 192.01 Q 1068.08 193 1066.35 193 M 1063.93 193 M 1064.96 192.23 L 1066.27 192.23 Q 1067.68 192.23 1068.26 191.48 Q 1068.89 190.67 1068.89 189.31 Q 1068.89 188.04 1068.27 187.31 Q 1067.9 186.87 1067.38 186.7 Q 1066.85 186.54 1065.8 186.54 L 1064.96 186.54 M 1064.96 192.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.35 194.45 Q 1076.64 193.89 1075.49 193.13 Q 1075.03 193.18 1074.78 193.18 Q 1073.33 193.18 1072.42 192.13 Q 1071.51 191.07 1071.51 189.39 Q 1071.51 187.66 1072.43 186.63 Q 1073.35 185.59 1074.89 185.59 Q 1076.43 185.59 1077.35 186.63 Q 1078.27 187.66 1078.27 189.4 Q 1078.27 191.89 1076.42 192.85 Q 1077.66 193.4 1079 193.63 M 1078.35 194.45 M 1074.86 192.41 Q 1075.97 192.41 1076.57 191.62 Q 1077.18 190.82 1077.18 189.37 Q 1077.18 187.96 1076.57 187.16 Q 1075.97 186.36 1074.89 186.36 Q 1073.81 186.36 1073.2 187.16 Q 1072.6 187.96 1072.6 189.38 Q 1072.6 190.79 1073.2 191.6 Q 1073.8 192.41 1074.86 192.41 M 1074.86 192.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1084.35 193.18 Q 1083.62 193.18 1082.49 192.86 L 1082.49 191.85 Q 1083.71 192.41 1084.5 192.41 Q 1085.1 192.41 1085.47 192.1 Q 1085.84 191.78 1085.84 191.26 Q 1085.84 190.84 1085.6 190.54 Q 1085.35 190.24 1084.71 189.88 L 1084.21 189.59 Q 1083.28 189.06 1082.91 188.59 Q 1082.53 188.13 1082.53 187.51 Q 1082.53 186.67 1083.13 186.13 Q 1083.74 185.59 1084.68 185.59 Q 1085.51 185.59 1086.44 185.87 L 1086.44 186.81 Q 1085.3 186.36 1084.73 186.36 Q 1084.2 186.36 1083.86 186.64 Q 1083.51 186.93 1083.51 187.36 Q 1083.51 187.72 1083.76 188 Q 1084.02 188.27 1084.69 188.66 L 1085.21 188.95 Q 1086.15 189.48 1086.52 189.96 Q 1086.89 190.43 1086.89 191.1 Q 1086.89 192.04 1086.19 192.61 Q 1085.5 193.18 1084.35 193.18 M 1084.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 193 L 1091.93 185.77 L 1095.97 185.77 L 1095.97 186.54 L 1092.96 186.54 L 1092.96 188.96 L 1095.49 188.96 L 1095.49 189.72 L 1092.96 189.72 L 1092.96 193 M 1091.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 193 L 1100.93 185.77 L 1101.96 185.77 L 1101.96 192.23 L 1105.21 192.23 L 1105.21 193 M 1100.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 193 L 1108.93 185.77 L 1109.94 185.77 L 1113.58 191.35 L 1113.58 185.77 L 1114.46 185.77 L 1114.46 193 L 1113.45 193 L 1109.81 187.42 L 1109.81 193 M 1108.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 193 L 1117.93 185.77 L 1120.33 185.77 Q 1121.41 185.77 1122.07 186.01 Q 1122.73 186.25 1123.22 186.82 Q 1123.98 187.73 1123.98 189.22 Q 1123.98 191.02 1123.03 192.01 Q 1122.08 193 1120.35 193 M 1117.93 193 M 1118.96 192.23 L 1120.27 192.23 Q 1121.68 192.23 1122.26 191.48 Q 1122.89 190.67 1122.89 189.31 Q 1122.89 188.04 1122.27 187.31 Q 1121.9 186.87 1121.38 186.7 Q 1120.85 186.54 1119.8 186.54 L 1118.96 186.54 M 1118.96 192.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1126.93 193 L 1126.93 185.77 L 1127.94 185.77 L 1131.58 191.35 L 1131.58 185.77 L 1132.46 185.77 L 1132.46 193 L 1131.45 193 L 1127.81 187.42 L 1127.81 193 M 1126.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 194.45 Q 1139.64 193.89 1138.49 193.13 Q 1138.03 193.18 1137.78 193.18 Q 1136.33 193.18 1135.42 192.13 Q 1134.51 191.07 1134.51 189.39 Q 1134.51 187.66 1135.43 186.63 Q 1136.35 185.59 1137.89 185.59 Q 1139.43 185.59 1140.35 186.63 Q 1141.27 187.66 1141.27 189.4 Q 1141.27 191.89 1139.42 192.85 Q 1140.66 193.4 1142 193.63 M 1141.35 194.45 M 1137.86 192.41 Q 1138.97 192.41 1139.57 191.62 Q 1140.18 190.82 1140.18 189.37 Q 1140.18 187.96 1139.57 187.16 Q 1138.97 186.36 1137.89 186.36 Q 1136.81 186.36 1136.2 187.16 Q 1135.6 187.96 1135.6 189.38 Q 1135.6 190.79 1136.2 191.6 Q 1136.8 192.41 1137.86 192.41 M 1137.86 192.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1146.91 193 L 1144.18 185.77 L 1145.2 185.77 L 1147.44 191.69 L 1149.6 185.77 L 1150.49 185.77 L 1147.87 193 M 1146.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1157.59 190.24 L 1156.36 187.12 L 1155.13 190.24 M 1157.59 190.24 M 1158.68 193 L 1157.89 191 L 1154.83 191 L 1154.04 193 L 1153.08 193 L 1155.95 185.77 L 1156.96 185.77 L 1159.79 193 M 1158.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1162.93 193 L 1162.93 185.77 L 1165.33 185.77 Q 1166.41 185.77 1167.07 186.01 Q 1167.73 186.25 1168.22 186.82 Q 1168.98 187.73 1168.98 189.22 Q 1168.98 191.02 1168.03 192.01 Q 1167.08 193 1165.35 193 M 1162.93 193 M 1163.96 192.23 L 1165.27 192.23 Q 1166.68 192.23 1167.26 191.48 Q 1167.89 190.67 1167.89 189.31 Q 1167.89 188.04 1167.27 187.31 Q 1166.9 186.87 1166.38 186.7 Q 1165.85 186.54 1164.8 186.54 L 1163.96 186.54 M 1163.96 192.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 192.8 Q 1176.05 193.18 1175.07 193.18 Q 1173.35 193.18 1172.43 192.2 Q 1171.51 191.22 1171.51 189.39 Q 1171.51 187.59 1172.44 186.59 Q 1173.37 185.59 1175.06 185.59 Q 1176.16 185.59 1177.35 185.92 L 1177.35 186.87 Q 1175.86 186.36 1175.06 186.36 Q 1173.89 186.36 1173.24 187.16 Q 1172.6 187.95 1172.6 189.4 Q 1172.6 190.83 1173.29 191.62 Q 1173.98 192.41 1175.23 192.41 Q 1175.75 192.41 1176.34 192.23 L 1176.34 189.88 L 1177.36 189.88 M 1177.36 192.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1180.87 193 L 1179.01 185.77 L 1180 185.77 L 1181.48 191.48 L 1182.84 185.77 L 1183.82 185.77 L 1185.11 191.4 L 1186.71 185.77 L 1187.54 185.77 L 1185.51 193 L 1184.49 193 L 1183.22 187.43 L 1181.89 193 M 1180.87 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 193 L 1189.18 185.77 L 1190.2 185.77 L 1192.44 191.69 L 1194.6 185.77 L 1195.49 185.77 L 1192.87 193 M 1191.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 193 L 1199.93 185.77 L 1200.96 185.77 L 1200.96 192.23 L 1204.21 192.23 L 1204.21 193 M 1199.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 193 L 1209.65 186.54 L 1207.09 186.54 L 1207.09 185.77 L 1213.24 185.77 L 1213.24 186.54 L 1210.68 186.54 L 1210.68 193 M 1209.65 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 193.18 Q 1218.34 193.18 1217.43 192.19 Q 1216.51 191.2 1216.51 189.39 Q 1216.51 187.58 1217.44 186.59 Q 1218.38 185.59 1220.08 185.59 Q 1221.05 185.59 1222.35 185.91 L 1222.35 186.87 Q 1220.87 186.36 1220.06 186.36 Q 1218.89 186.36 1218.24 187.16 Q 1217.6 187.95 1217.6 189.4 Q 1217.6 190.78 1218.29 191.58 Q 1218.97 192.38 1220.17 192.38 Q 1221.19 192.38 1222.36 191.75 L 1222.36 192.63 Q 1221.29 193.18 1220.03 193.18 M 1220.03 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1229.59 190.24 L 1228.36 187.12 L 1227.13 190.24 M 1229.59 190.24 M 1230.68 193 L 1229.89 191 L 1226.83 191 L 1226.04 193 L 1225.08 193 L 1227.95 185.77 L 1228.96 185.77 L 1231.79 193 M 1230.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 190.24 L 1237.36 187.12 L 1236.13 190.24 M 1238.59 190.24 M 1239.68 193 L 1238.89 191 L 1235.83 191 L 1235.04 193 L 1234.08 193 L 1236.95 185.77 L 1237.96 185.77 L 1240.79 193 M 1239.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 193 L 1245.5 189.98 L 1243.08 185.77 L 1244.25 185.77 L 1246.13 189.04 L 1248.15 185.77 L 1249.1 185.77 L 1246.52 189.96 L 1246.52 193 M 1245.5 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 193 L 1252.93 185.77 L 1254.9 185.77 Q 1256.21 185.77 1256.78 186.22 Q 1257.35 186.66 1257.35 187.67 Q 1257.35 188.82 1256.57 189.47 Q 1255.79 190.13 1254.4 190.13 L 1253.95 190.13 L 1253.95 193 M 1252.93 193 M 1253.95 189.35 L 1254.36 189.35 Q 1255.28 189.35 1255.77 188.93 Q 1256.27 188.51 1256.27 187.75 Q 1256.27 187.1 1255.88 186.82 Q 1255.49 186.54 1254.58 186.54 L 1253.95 186.54 M 1253.95 189.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1263.65 193 L 1263.65 186.54 L 1261.09 186.54 L 1261.09 185.77 L 1267.24 185.77 L 1267.24 186.54 L 1264.68 186.54 L 1264.68 193 M 1263.65 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1273.35 193.18 Q 1272.62 193.18 1271.49 192.86 L 1271.49 191.85 Q 1272.71 192.41 1273.5 192.41 Q 1274.1 192.41 1274.47 192.1 Q 1274.84 191.78 1274.84 191.26 Q 1274.84 190.84 1274.6 190.54 Q 1274.35 190.24 1273.71 189.88 L 1273.21 189.59 Q 1272.28 189.06 1271.91 188.59 Q 1271.53 188.13 1271.53 187.51 Q 1271.53 186.67 1272.13 186.13 Q 1272.74 185.59 1273.68 185.59 Q 1274.51 185.59 1275.44 185.87 L 1275.44 186.81 Q 1274.3 186.36 1273.73 186.36 Q 1273.2 186.36 1272.86 186.64 Q 1272.51 186.93 1272.51 187.36 Q 1272.51 187.72 1272.76 188 Q 1273.02 188.27 1273.69 188.66 L 1274.21 188.95 Q 1275.15 189.48 1275.52 189.96 Q 1275.89 190.43 1275.89 191.1 Q 1275.89 192.04 1275.19 192.61 Q 1274.5 193.18 1273.35 193.18 M 1273.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 193 L 1279.93 185.77 L 1282.33 185.77 Q 1283.41 185.77 1284.07 186.01 Q 1284.73 186.25 1285.22 186.82 Q 1285.98 187.73 1285.98 189.22 Q 1285.98 191.02 1285.03 192.01 Q 1284.08 193 1282.35 193 M 1279.93 193 M 1280.96 192.23 L 1282.27 192.23 Q 1283.68 192.23 1284.26 191.48 Q 1284.89 190.67 1284.89 189.31 Q 1284.89 188.04 1284.27 187.31 Q 1283.9 186.87 1283.38 186.7 Q 1282.85 186.54 1281.8 186.54 L 1280.96 186.54 M 1280.96 192.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 193 L 1288.18 185.77 L 1289.2 185.77 L 1291.44 191.69 L 1293.6 185.77 L 1294.49 185.77 L 1291.87 193 M 1290.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.91 193 L 1297.18 185.77 L 1298.2 185.77 L 1300.44 191.69 L 1302.6 185.77 L 1303.49 185.77 L 1300.87 193 M 1299.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 193 L 1308.93 185.77 L 1309.95 185.77 L 1309.95 193 M 1308.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 193 L 1316.93 185.77 L 1320.97 185.77 L 1320.97 186.54 L 1317.96 186.54 L 1317.96 188.86 L 1320.48 188.86 L 1320.48 189.62 L 1317.96 189.62 L 1317.96 192.23 L 1321.18 192.23 L 1321.18 193 M 1316.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 193 L 1326.65 186.54 L 1324.09 186.54 L 1324.09 185.77 L 1330.24 185.77 L 1330.24 186.54 L 1327.68 186.54 L 1327.68 193 M 1326.65 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 193 L 1333.93 185.77 L 1334.96 185.77 L 1334.96 188.82 L 1338.4 188.82 L 1338.4 185.77 L 1339.42 185.77 L 1339.42 193 L 1338.4 193 L 1338.4 189.59 L 1334.96 189.59 L 1334.96 193 M 1333.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 193 L 1342.93 185.77 L 1343.89 185.77 L 1343.89 189.33 L 1346.82 185.77 L 1347.85 185.77 L 1345.02 189.22 L 1348.35 193 L 1347.05 193 L 1343.89 189.34 L 1343.89 193 M 1342.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 193 L 1352.93 185.77 L 1356.97 185.77 L 1356.97 186.54 L 1353.96 186.54 L 1353.96 188.86 L 1356.48 188.86 L 1356.48 189.62 L 1353.96 189.62 L 1353.96 192.23 L 1357.18 192.23 L 1357.18 193 M 1352.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1360.93 193 L 1360.93 185.77 L 1363.33 185.77 Q 1364.41 185.77 1365.07 186.01 Q 1365.73 186.25 1366.22 186.82 Q 1366.98 187.73 1366.98 189.22 Q 1366.98 191.02 1366.03 192.01 Q 1365.08 193 1363.35 193 M 1360.93 193 M 1361.96 192.23 L 1363.27 192.23 Q 1364.68 192.23 1365.26 191.48 Q 1365.89 190.67 1365.89 189.31 Q 1365.89 188.04 1365.27 187.31 Q 1364.9 186.87 1364.38 186.7 Q 1363.85 186.54 1362.8 186.54 L 1361.96 186.54 M 1361.96 192.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1369.93 193 L 1369.93 185.77 L 1372.33 185.77 Q 1373.41 185.77 1374.07 186.01 Q 1374.73 186.25 1375.22 186.82 Q 1375.98 187.73 1375.98 189.22 Q 1375.98 191.02 1375.03 192.01 Q 1374.08 193 1372.35 193 M 1369.93 193 M 1370.96 192.23 L 1372.27 192.23 Q 1373.68 192.23 1374.26 191.48 Q 1374.89 190.67 1374.89 189.31 Q 1374.89 188.04 1374.27 187.31 Q 1373.9 186.87 1373.38 186.7 Q 1372.85 186.54 1371.8 186.54 L 1370.96 186.54 M 1370.96 192.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1379.93 193 L 1379.93 185.77 L 1380.96 185.77 L 1380.96 192.23 L 1384.21 192.23 L 1384.21 193 M 1379.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1388.93 193 L 1388.93 185.77 L 1389.96 185.77 L 1389.96 192.23 L 1393.21 192.23 L 1393.21 193 M 1388.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1396.72 190.47 L 1396.72 189.75 L 1401.06 189.75 L 1401.06 190.47 M 1396.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 190.47 L 1405.72 189.75 L 1410.06 189.75 L 1410.06 190.47 M 1405.72 190.47"/></g><line x1="531" y1="0" x2="531" y2="195" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,16)" /><line x1="1124" y1="0" x2="1124" y2="195" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,16)" /><line x1="531" y1="0" x2="1124" y2="0" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,16)" /><line x1="531" y1="194" x2="1124" y2="194" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,16)" /><rect x="0" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="9" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="18" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="27" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="36" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="45" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="54" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="63" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="72" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="81" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="90" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="99" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="108" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="117" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="126" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="135" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="144" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="153" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="162" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="171" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="180" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="189" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="198" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="207" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="216" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="225" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="234" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="243" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="252" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="261" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="270" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="279" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="288" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="297" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="306" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="315" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="324" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="333" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="342" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="351" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="360" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="369" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="378" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="387" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="396" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="405" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="414" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="423" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="432" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="441" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="450" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="459" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="468" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="477" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="486" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="495" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="504" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="513" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="522" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="531" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="540" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="549" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 569.5 10 L 569.5 9.28 L 570.95 9.28 L 570.95 3.57 L 569.5 3.94 L 569.5 3.19 L 571.92 2.59 L 571.92 9.28 L 573.36 9.28 L 573.36 10 M 569.5 10"/></g><rect x="558" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="567" y="14" width="23" height="7" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 590 10 L 590 24 L 594 17 M 590 10"/></g><rect x="594" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="603" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="612" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 631.83 10 L 631.83 9.16 Q 632.25 8.17 633.53 7.02 L 634.08 6.52 Q 635.15 5.56 635.15 4.61 Q 635.15 4.01 634.78 3.66 Q 634.42 3.32 633.78 3.32 Q 633.03 3.32 632.01 3.9 L 632.01 3.05 Q 632.97 2.59 633.92 2.59 Q 634.94 2.59 635.55 3.14 Q 636.17 3.69 636.17 4.59 Q 636.17 5.24 635.86 5.74 Q 635.55 6.25 634.7 6.96 L 634.33 7.28 Q 633.17 8.26 632.99 9.16 L 636.13 9.16 L 636.13 10 M 631.83 10"/></g><rect x="621" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="630" y="14" width="68" height="7" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 698 10 L 698 24 L 702 17 M 698 10"/></g><rect x="702" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="711" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="720" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 740.02 9.95 L 740.02 9.05 Q 741.05 9.46 741.65 9.46 Q 742.33 9.46 742.77 9.06 Q 743.2 8.65 743.2 8.01 Q 743.2 6.49 741.07 6.49 L 740.68 6.49 L 740.68 5.84 L 741.02 5.83 Q 743.02 5.83 743.02 4.42 Q 743.02 3.32 741.71 3.32 Q 740.98 3.32 740.11 3.72 L 740.11 2.88 Q 740.97 2.59 741.77 2.59 Q 743.99 2.59 743.99 4.27 Q 743.99 5.54 742.48 6.08 Q 744.23 6.49 744.23 8 Q 744.23 9.02 743.56 9.6 Q 742.88 10.18 741.71 10.18 Q 741.04 10.18 740.02 9.95 M 740.02 9.95"/></g><rect x="729" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 738 18 L 738 18 C 738 20.21 739.79 22 742 22 L 779 22 C 781.21 22 783 20.21 783 18 L 783 18 C 783 15.79 781.21 14 779 14 L 742 14 C 739.79 14 738 15.79 738 18 M 738 18"/></g><rect x="783" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="792" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="801" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="810" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="819" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="828" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="837" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="846" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="855" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 872.93 10 L 872.93 2.77 L 876.97 2.77 L 876.97 3.54 L 873.96 3.54 L 873.96 5.96 L 876.49 5.96 L 876.49 6.72 L 873.96 6.72 L 873.96 10 M 872.93 10 M 881.85 9.83 Q 880.88 10.12 880.19 10.12 Q 879.02 10.12 878.28 9.34 Q 877.54 8.56 877.54 7.32 Q 877.54 6.12 878.19 5.35 Q 878.85 4.58 879.86 4.58 Q 880.82 4.58 881.35 5.26 Q 881.87 5.94 881.87 7.2 L 881.87 7.5 L 878.52 7.5 Q 878.73 9.39 880.37 9.39 Q 880.97 9.39 881.85 9.07 M 881.85 9.83 M 878.57 6.78 L 880.91 6.78 Q 880.91 5.3 879.8 5.3 Q 878.69 5.3 878.57 6.78 M 878.57 6.78"/></g><rect x="864" y="16" width="18" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="882" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="891" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="900" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 917.93 10 L 917.93 2.77 L 921.97 2.77 L 921.97 3.54 L 918.96 3.54 L 918.96 5.96 L 921.49 5.96 L 921.49 6.72 L 918.96 6.72 L 918.96 10 M 917.93 10 M 926.85 9.83 Q 925.88 10.12 925.19 10.12 Q 924.02 10.12 923.28 9.34 Q 922.54 8.56 922.54 7.32 Q 922.54 6.12 923.19 5.35 Q 923.85 4.58 924.86 4.58 Q 925.82 4.58 926.35 5.26 Q 926.87 5.94 926.87 7.2 L 926.87 7.5 L 923.52 7.5 Q 923.73 9.39 925.37 9.39 Q 925.97 9.39 926.85 9.07 M 926.85 9.83 M 923.57 6.78 L 925.91 6.78 Q 925.91 5.3 924.8 5.3 Q 923.69 5.3 923.57 6.78 M 923.57 6.78"/></g><rect x="909" y="16" width="18" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="927" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 944.93 10 L 944.93 2.77 L 948.97 2.77 L 948.97 3.54 L 945.96 3.54 L 945.96 5.96 L 948.49 5.96 L 948.49 6.72 L 945.96 6.72 L 945.96 10 M 944.93 10 M 953.85 9.83 Q 952.88 10.12 952.19 10.12 Q 951.02 10.12 950.28 9.34 Q 949.54 8.56 949.54 7.32 Q 949.54 6.12 950.19 5.35 Q 950.85 4.58 951.86 4.58 Q 952.82 4.58 953.35 5.26 Q 953.87 5.94 953.87 7.2 L 953.87 7.5 L 950.52 7.5 Q 950.73 9.39 952.37 9.39 Q 952.97 9.39 953.85 9.07 M 953.85 9.83 M 950.57 6.78 L 952.91 6.78 Q 952.91 5.3 951.8 5.3 Q 950.69 5.3 950.57 6.78 M 950.57 6.78"/></g><rect x="936" y="16" width="18" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 967.76 10 L 967.76 7.95 L 964.51 7.95 L 964.51 7.23 L 967.76 2.77 L 968.67 2.77 L 968.67 7.17 L 969.63 7.17 L 969.63 7.95 L 968.67 7.95 L 968.67 10 M 967.76 10 M 965.46 7.17 L 967.83 7.17 L 967.83 3.96 M 965.46 7.17"/></g><rect x="954" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="963" y="14" width="14" height="7" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 977 10 L 977 24 L 981 17 M 977 10"/></g><rect x="981" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="990" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="999" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1008" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1028.22 10.03 L 1028.22 9.17 Q 1028.93 9.46 1029.58 9.46 Q 1030.3 9.46 1030.7 9.04 Q 1031.11 8.62 1031.11 7.88 Q 1031.11 6.25 1028.87 6.25 Q 1028.62 6.25 1028.34 6.29 L 1028.34 2.77 L 1032 2.77 L 1032 3.61 L 1029.18 3.61 L 1029.18 5.52 Q 1030.57 5.52 1031.36 6.16 Q 1032.14 6.8 1032.14 7.93 Q 1032.14 8.98 1031.43 9.58 Q 1030.72 10.18 1029.46 10.18 Q 1028.91 10.18 1028.22 10.03 M 1028.22 10.03"/></g><rect x="1017" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1026" y="14" width="14" height="7" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1040 10 L 1040 24 L 1044 17 M 1040 10"/></g><rect x="1044" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1053" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1062" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1071" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1080" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1089" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1098" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1107" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1116" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1136.72 6.25 Q 1137.41 5.36 1138.45 5.36 Q 1139.4 5.36 1140 5.99 Q 1140.61 6.62 1140.61 7.6 Q 1140.61 8.73 1139.93 9.45 Q 1139.25 10.18 1138.21 10.18 Q 1137.02 10.18 1136.34 9.22 Q 1135.67 8.26 1135.67 6.55 Q 1135.67 4.67 1136.44 3.63 Q 1137.22 2.59 1138.62 2.59 Q 1139.27 2.59 1140.23 2.86 L 1140.23 3.7 Q 1139.21 3.31 1138.56 3.31 Q 1136.72 3.31 1136.72 6.25 M 1136.72 6.25 M 1139.64 7.81 Q 1139.64 6.99 1139.27 6.52 Q 1138.9 6.05 1138.25 6.05 Q 1137.64 6.05 1137.2 6.46 Q 1136.76 6.88 1136.76 7.45 Q 1136.76 8.36 1137.18 8.91 Q 1137.59 9.46 1138.28 9.46 Q 1138.9 9.46 1139.27 9.01 Q 1139.64 8.56 1139.64 7.81 M 1139.64 7.81"/></g><rect x="1125" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1134 18 L 1134 18 C 1134 20.21 1135.79 22 1138 22 L 1166 22 C 1168.21 22 1170 20.21 1170 18 L 1170 18 C 1170 15.79 1168.21 14 1166 14 L 1138 14 C 1135.79 14 1134 15.79 1134 18 M 1134 18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1181.5 10 Q 1181.65 9.16 1181.91 8.54 Q 1182.17 7.92 1182.83 6.85 L 1184.8 3.68 L 1181.08 3.68 L 1181.08 2.77 L 1185.72 2.77 L 1185.72 3.68 Q 1182.94 7.77 1182.61 10 M 1181.5 10"/></g><rect x="1170" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1179" y="14" width="5" height="7" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1184 10 L 1184 24 L 1188 17 M 1184 10"/></g><rect x="1188" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1197" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1214.93 10 L 1214.93 2.77 L 1218.97 2.77 L 1218.97 3.54 L 1215.96 3.54 L 1215.96 5.96 L 1218.49 5.96 L 1218.49 6.72 L 1215.96 6.72 L 1215.96 10 M 1214.93 10 M 1223.85 9.83 Q 1222.88 10.12 1222.19 10.12 Q 1221.02 10.12 1220.28 9.34 Q 1219.54 8.56 1219.54 7.32 Q 1219.54 6.12 1220.19 5.35 Q 1220.85 4.58 1221.86 4.58 Q 1222.82 4.58 1223.35 5.26 Q 1223.87 5.94 1223.87 7.2 L 1223.87 7.5 L 1220.52 7.5 Q 1220.73 9.39 1222.37 9.39 Q 1222.97 9.39 1223.85 9.07 M 1223.85 9.83 M 1220.57 6.78 L 1222.91 6.78 Q 1222.91 5.3 1221.8 5.3 Q 1220.69 5.3 1220.57 6.78 M 1220.57 6.78"/></g><rect x="1206" y="16" width="18" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1224" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1233" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1242" y="14" width="14" height="7" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1256 10 L 1256 24 L 1260 17 M 1256 10"/></g><rect x="1260" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1269" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1289.14 9.96 L 1289.14 9.14 Q 1290.06 9.46 1290.7 9.46 Q 1291.6 9.46 1292.1 8.69 Q 1292.61 7.93 1292.61 6.57 Q 1291.88 7.47 1290.94 7.47 Q 1290.03 7.47 1289.4 6.8 Q 1288.76 6.13 1288.76 5.16 Q 1288.76 4.05 1289.44 3.32 Q 1290.11 2.59 1291.14 2.59 Q 1292.32 2.59 1293 3.54 Q 1293.67 4.48 1293.67 6.12 Q 1293.67 7.99 1292.85 9.08 Q 1292.02 10.18 1290.61 10.18 Q 1290.04 10.18 1289.14 9.96 M 1289.14 9.96 M 1289.72 4.97 Q 1289.72 5.81 1290.1 6.29 Q 1290.47 6.78 1291.12 6.78 Q 1291.73 6.78 1292.16 6.36 Q 1292.59 5.95 1292.59 5.36 Q 1292.59 4.44 1292.18 3.87 Q 1291.76 3.31 1291.08 3.31 Q 1290.45 3.31 1290.09 3.76 Q 1289.72 4.2 1289.72 4.97 M 1289.72 4.97"/></g><rect x="1278" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1287" y="14" width="41" height="7" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1328 10 L 1328 24 L 1332 17 M 1328 10"/></g><rect x="1332" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1341" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1350" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1359" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1368" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1377" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1386" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1395" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1404" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 872.93 39 L 872.93 31.77 L 876.97 31.77 L 876.97 32.54 L 873.96 32.54 L 873.96 34.96 L 876.49 34.96 L 876.49 35.72 L 873.96 35.72 L 873.96 39 M 872.93 39 M 881.85 38.83 Q 880.88 39.12 880.19 39.12 Q 879.02 39.12 878.28 38.34 Q 877.54 37.56 877.54 36.32 Q 877.54 35.12 878.19 34.35 Q 878.85 33.58 879.86 33.58 Q 880.82 33.58 881.35 34.26 Q 881.87 34.94 881.87 36.2 L 881.87 36.5 L 878.52 36.5 Q 878.73 38.39 880.37 38.39 Q 880.97 38.39 881.85 38.07 M 881.85 38.83 M 878.57 35.78 L 880.91 35.78 Q 880.91 34.3 879.8 34.3 Q 878.69 34.3 878.57 35.78 M 878.57 35.78"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 917.93 39 L 917.93 31.77 L 921.97 31.77 L 921.97 32.54 L 918.96 32.54 L 918.96 34.96 L 921.49 34.96 L 921.49 35.72 L 918.96 35.72 L 918.96 39 M 917.93 39 M 926.85 38.83 Q 925.88 39.12 925.19 39.12 Q 924.02 39.12 923.28 38.34 Q 922.54 37.56 922.54 36.32 Q 922.54 35.12 923.19 34.35 Q 923.85 33.58 924.86 33.58 Q 925.82 33.58 926.35 34.26 Q 926.87 34.94 926.87 36.2 L 926.87 36.5 L 923.52 36.5 Q 923.73 38.39 925.37 38.39 Q 925.97 38.39 926.85 38.07 M 926.85 38.83 M 923.57 35.78 L 925.91 35.78 Q 925.91 34.3 924.8 34.3 Q 923.69 34.3 923.57 35.78 M 923.57 35.78"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 944.93 39 L 944.93 31.77 L 948.97 31.77 L 948.97 32.54 L 945.96 32.54 L 945.96 34.96 L 948.49 34.96 L 948.49 35.72 L 945.96 35.72 L 945.96 39 M 944.93 39 M 953.85 38.83 Q 952.88 39.12 952.19 39.12 Q 951.02 39.12 950.28 38.34 Q 949.54 37.56 949.54 36.32 Q 949.54 35.12 950.19 34.35 Q 950.85 33.58 951.86 33.58 Q 952.82 33.58 953.35 34.26 Q 953.87 34.94 953.87 36.2 L 953.87 36.5 L 950.52 36.5 Q 950.73 38.39 952.37 38.39 Q 952.97 38.39 953.85 38.07 M 953.85 38.83 M 950.57 35.78 L 952.91 35.78 Q 952.91 34.3 951.8 34.3 Q 950.69 34.3 950.57 35.78 M 950.57 35.78"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1214.93 39 L 1214.93 31.77 L 1218.97 31.77 L 1218.97 32.54 L 1215.96 32.54 L 1215.96 34.96 L 1218.49 34.96 L 1218.49 35.72 L 1215.96 35.72 L 1215.96 39 M 1214.93 39 M 1223.85 38.83 Q 1222.88 39.12 1222.19 39.12 Q 1221.02 39.12 1220.28 38.34 Q 1219.54 37.56 1219.54 36.32 Q 1219.54 35.12 1220.19 34.35 Q 1220.85 33.58 1221.86 33.58 Q 1222.82 33.58 1223.35 34.26 Q 1223.87 34.94 1223.87 36.2 L 1223.87 36.5 L 1220.52 36.5 Q 1220.73 38.39 1222.37 38.39 Q 1222.97 38.39 1223.85 38.07 M 1223.85 38.83 M 1220.57 35.78 L 1222.91 35.78 Q 1222.91 34.3 1221.8 34.3 Q 1220.69 34.3 1220.57 35.78 M 1220.57 35.78"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 2.5 92 L 2.5 91.28 L 3.95 91.28 L 3.95 85.57 L 2.5 85.94 L 2.5 85.19 L 4.92 84.59 L 4.92 91.28 L 6.36 91.28 L 6.36 92 M 2.5 92"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 11.02 91.95 L 11.02 91.05 Q 12.05 91.46 12.65 91.46 Q 13.33 91.46 13.77 91.06 Q 14.2 90.65 14.2 90.01 Q 14.2 88.49 12.07 88.49 L 11.68 88.49 L 11.68 87.84 L 12.02 87.83 Q 14.02 87.83 14.02 86.42 Q 14.02 85.32 12.71 85.32 Q 11.98 85.32 11.11 85.72 L 11.11 84.88 Q 11.97 84.59 12.77 84.59 Q 14.99 84.59 14.99 86.27 Q 14.99 87.54 13.48 88.08 Q 15.23 88.49 15.23 90 Q 15.23 91.02 14.56 91.6 Q 13.88 92.18 12.71 92.18 Q 12.04 92.18 11.02 91.95 M 11.02 91.95"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 19.72 89.47 L 19.72 88.75 L 24.06 88.75 L 24.06 89.47 M 19.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 28.72 89.47 L 28.72 88.75 L 33.06 88.75 L 33.06 89.47 M 28.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 37.72 89.47 L 37.72 88.75 L 42.06 88.75 L 42.06 89.47 M 37.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 46.72 89.47 L 46.72 88.75 L 51.06 88.75 L 51.06 89.47 M 46.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 55.72 89.47 L 55.72 88.75 L 60.06 88.75 L 60.06 89.47 M 55.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 64.72 89.47 L 64.72 88.75 L 69.06 88.75 L 69.06 89.47 M 64.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 73.72 89.47 L 73.72 88.75 L 78.06 88.75 L 78.06 89.47 M 73.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 82.72 89.47 L 82.72 88.75 L 87.06 88.75 L 87.06 89.47 M 82.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 91.72 89.47 L 91.72 88.75 L 96.06 88.75 L 96.06 89.47 M 91.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 100.72 89.47 L 100.72 88.75 L 105.06 88.75 L 105.06 89.47 M 100.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 109.72 89.47 L 109.72 88.75 L 114.06 88.75 L 114.06 89.47 M 109.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 118.72 89.47 L 118.72 88.75 L 123.06 88.75 L 123.06 89.47 M 118.72 89.47"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 128.5 92 L 128.5 91.28 L 129.95 91.28 L 129.95 85.57 L 128.5 85.94 L 128.5 85.19 L 130.92 84.59 L 130.92 91.28 L 132.36 91.28 L 132.36 92 M 128.5 92"/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 136.83 92 L 136.83 91.16 Q 137.25 90.17 138.53 89.02 L 139.08 88.52 Q 140.15 87.56 140.15 86.61 Q 140.15 86.01 139.78 85.66 Q 139.42 85.32 138.78 85.32 Q 138.03 85.32 137.01 85.9 L 137.01 85.05 Q 137.97 84.59 138.92 84.59 Q 139.94 84.59 140.55 85.14 Q 141.17 85.69 141.17 86.59 Q 141.17 87.24 140.86 87.74 Q 140.55 88.25 139.7 88.96 L 139.33 89.28 Q 138.17 90.26 137.99 91.16 L 141.13 91.16 L 141.13 92 M 136.83 92"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 148.13 92.18 Q 147.02 92.18 146.33 91.13 Q 145.63 90.08 145.63 88.38 Q 145.63 86.67 146.33 85.63 Q 147.03 84.59 148.16 84.59 Q 149.3 84.59 150 85.63 Q 150.69 86.67 150.69 88.37 Q 150.69 90.11 150 91.14 Q 149.3 92.18 148.13 92.18 M 148.13 92.18 M 148.14 91.46 Q 149.67 91.46 149.67 88.35 Q 149.67 85.32 148.16 85.32 Q 146.66 85.32 146.66 88.38 Q 146.66 91.46 148.14 91.46 M 148.14 91.46"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 155.5 92 L 155.5 91.28 L 156.95 91.28 L 156.95 85.57 L 155.5 85.94 L 155.5 85.19 L 157.92 84.59 L 157.92 91.28 L 159.36 91.28 L 159.36 92 M 155.5 92"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 166.13 92.18 Q 165.02 92.18 164.33 91.13 Q 163.63 90.08 163.63 88.38 Q 163.63 86.67 164.33 85.63 Q 165.03 84.59 166.16 84.59 Q 167.3 84.59 168 85.63 Q 168.69 86.67 168.69 88.37 Q 168.69 90.11 168 91.14 Q 167.3 92.18 166.13 92.18 M 166.13 92.18 M 166.14 91.46 Q 167.67 91.46 167.67 88.35 Q 167.67 85.32 166.16 85.32 Q 164.66 85.32 164.66 88.38 Q 164.66 91.46 166.14 91.46 M 166.14 91.46"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 173.5 92 L 173.5 91.28 L 174.95 91.28 L 174.95 85.57 L 173.5 85.94 L 173.5 85.19 L 175.92 84.59 L 175.92 91.28 L 177.36 91.28 L 177.36 92 M 173.5 92"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 184.13 92.18 Q 183.02 92.18 182.33 91.13 Q 181.63 90.08 181.63 88.38 Q 181.63 86.67 182.33 85.63 Q 183.03 84.59 184.16 84.59 Q 185.3 84.59 186 85.63 Q 186.69 86.67 186.69 88.37 Q 186.69 90.11 186 91.14 Q 185.3 92.18 184.13 92.18 M 184.13 92.18 M 184.14 91.46 Q 185.67 91.46 185.67 88.35 Q 185.67 85.32 184.16 85.32 Q 182.66 85.32 182.66 88.38 Q 182.66 91.46 184.14 91.46 M 184.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 190.72 89.47 L 190.72 88.75 L 195.06 88.75 L 195.06 89.47 M 190.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 199.72 89.47 L 199.72 88.75 L 204.06 88.75 L 204.06 89.47 M 199.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 208.72 89.47 L 208.72 88.75 L 213.06 88.75 L 213.06 89.47 M 208.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 220.13 92.18 Q 219.02 92.18 218.33 91.13 Q 217.63 90.08 217.63 88.38 Q 217.63 86.67 218.33 85.63 Q 219.03 84.59 220.16 84.59 Q 221.3 84.59 222 85.63 Q 222.69 86.67 222.69 88.37 Q 222.69 90.11 222 91.14 Q 221.3 92.18 220.13 92.18 M 220.13 92.18 M 220.14 91.46 Q 221.67 91.46 221.67 88.35 Q 221.67 85.32 220.16 85.32 Q 218.66 85.32 218.66 88.38 Q 218.66 91.46 220.14 91.46 M 220.14 91.46"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 227.5 92 L 227.5 91.28 L 228.95 91.28 L 228.95 85.57 L 227.5 85.94 L 227.5 85.19 L 229.92 84.59 L 229.92 91.28 L 231.36 91.28 L 231.36 92 M 227.5 92"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 238.13 92.18 Q 237.02 92.18 236.33 91.13 Q 235.63 90.08 235.63 88.38 Q 235.63 86.67 236.33 85.63 Q 237.03 84.59 238.16 84.59 Q 239.3 84.59 240 85.63 Q 240.69 86.67 240.69 88.37 Q 240.69 90.11 240 91.14 Q 239.3 92.18 238.13 92.18 M 238.13 92.18 M 238.14 91.46 Q 239.67 91.46 239.67 88.35 Q 239.67 85.32 238.16 85.32 Q 236.66 85.32 236.66 88.38 Q 236.66 91.46 238.14 91.46 M 238.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 247.13 92.18 Q 246.02 92.18 245.33 91.13 Q 244.63 90.08 244.63 88.38 Q 244.63 86.67 245.33 85.63 Q 246.03 84.59 247.16 84.59 Q 248.3 84.59 249 85.63 Q 249.69 86.67 249.69 88.37 Q 249.69 90.11 249 91.14 Q 248.3 92.18 247.13 92.18 M 247.13 92.18 M 247.14 91.46 Q 248.67 91.46 248.67 88.35 Q 248.67 85.32 247.16 85.32 Q 245.66 85.32 245.66 88.38 Q 245.66 91.46 247.14 91.46 M 247.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 256.13 92.18 Q 255.02 92.18 254.33 91.13 Q 253.63 90.08 253.63 88.38 Q 253.63 86.67 254.33 85.63 Q 255.03 84.59 256.16 84.59 Q 257.3 84.59 258 85.63 Q 258.69 86.67 258.69 88.37 Q 258.69 90.11 258 91.14 Q 257.3 92.18 256.13 92.18 M 256.13 92.18 M 256.14 91.46 Q 257.67 91.46 257.67 88.35 Q 257.67 85.32 256.16 85.32 Q 254.66 85.32 254.66 88.38 Q 254.66 91.46 256.14 91.46 M 256.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 262.72 89.47 L 262.72 88.75 L 267.06 88.75 L 267.06 89.47 M 262.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 271.72 89.47 L 271.72 88.75 L 276.06 88.75 L 276.06 89.47 M 271.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 283.13 92.18 Q 282.02 92.18 281.33 91.13 Q 280.63 90.08 280.63 88.38 Q 280.63 86.67 281.33 85.63 Q 282.03 84.59 283.16 84.59 Q 284.3 84.59 285 85.63 Q 285.69 86.67 285.69 88.37 Q 285.69 90.11 285 91.14 Q 284.3 92.18 283.13 92.18 M 283.13 92.18 M 283.14 91.46 Q 284.67 91.46 284.67 88.35 Q 284.67 85.32 283.16 85.32 Q 281.66 85.32 281.66 88.38 Q 281.66 91.46 283.14 91.46 M 283.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 292.13 92.18 Q 291.02 92.18 290.33 91.13 Q 289.63 90.08 289.63 88.38 Q 289.63 86.67 290.33 85.63 Q 291.03 84.59 292.16 84.59 Q 293.3 84.59 294 85.63 Q 294.69 86.67 294.69 88.37 Q 294.69 90.11 294 91.14 Q 293.3 92.18 292.13 92.18 M 292.13 92.18 M 292.14 91.46 Q 293.67 91.46 293.67 88.35 Q 293.67 85.32 292.16 85.32 Q 290.66 85.32 290.66 88.38 Q 290.66 91.46 292.14 91.46 M 292.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 301.13 92.18 Q 300.02 92.18 299.33 91.13 Q 298.63 90.08 298.63 88.38 Q 298.63 86.67 299.33 85.63 Q 300.03 84.59 301.16 84.59 Q 302.3 84.59 303 85.63 Q 303.69 86.67 303.69 88.37 Q 303.69 90.11 303 91.14 Q 302.3 92.18 301.13 92.18 M 301.13 92.18 M 301.14 91.46 Q 302.67 91.46 302.67 88.35 Q 302.67 85.32 301.16 85.32 Q 299.66 85.32 299.66 88.38 Q 299.66 91.46 301.14 91.46 M 301.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 310.13 92.18 Q 309.02 92.18 308.33 91.13 Q 307.63 90.08 307.63 88.38 Q 307.63 86.67 308.33 85.63 Q 309.03 84.59 310.16 84.59 Q 311.3 84.59 312 85.63 Q 312.69 86.67 312.69 88.37 Q 312.69 90.11 312 91.14 Q 311.3 92.18 310.13 92.18 M 310.13 92.18 M 310.14 91.46 Q 311.67 91.46 311.67 88.35 Q 311.67 85.32 310.16 85.32 Q 308.66 85.32 308.66 88.38 Q 308.66 91.46 310.14 91.46 M 310.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 319.13 92.18 Q 318.02 92.18 317.33 91.13 Q 316.63 90.08 316.63 88.38 Q 316.63 86.67 317.33 85.63 Q 318.03 84.59 319.16 84.59 Q 320.3 84.59 321 85.63 Q 321.69 86.67 321.69 88.37 Q 321.69 90.11 321 91.14 Q 320.3 92.18 319.13 92.18 M 319.13 92.18 M 319.14 91.46 Q 320.67 91.46 320.67 88.35 Q 320.67 85.32 319.16 85.32 Q 317.66 85.32 317.66 88.38 Q 317.66 91.46 319.14 91.46 M 319.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 328.13 92.18 Q 327.02 92.18 326.33 91.13 Q 325.63 90.08 325.63 88.38 Q 325.63 86.67 326.33 85.63 Q 327.03 84.59 328.16 84.59 Q 329.3 84.59 330 85.63 Q 330.69 86.67 330.69 88.37 Q 330.69 90.11 330 91.14 Q 329.3 92.18 328.13 92.18 M 328.13 92.18 M 328.14 91.46 Q 329.67 91.46 329.67 88.35 Q 329.67 85.32 328.16 85.32 Q 326.66 85.32 326.66 88.38 Q 326.66 91.46 328.14 91.46 M 328.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 337.13 92.18 Q 336.02 92.18 335.33 91.13 Q 334.63 90.08 334.63 88.38 Q 334.63 86.67 335.33 85.63 Q 336.03 84.59 337.16 84.59 Q 338.3 84.59 339 85.63 Q 339.69 86.67 339.69 88.37 Q 339.69 90.11 339 91.14 Q 338.3 92.18 337.13 92.18 M 337.13 92.18 M 337.14 91.46 Q 338.67 91.46 338.67 88.35 Q 338.67 85.32 337.16 85.32 Q 335.66 85.32 335.66 88.38 Q 335.66 91.46 337.14 91.46 M 337.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 343.72 89.47 L 343.72 88.75 L 348.06 88.75 L 348.06 89.47 M 343.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 352.72 89.47 L 352.72 88.75 L 357.06 88.75 L 357.06 89.47 M 352.72 89.47"/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 361.83 92 L 361.83 91.16 Q 362.25 90.17 363.53 89.02 L 364.08 88.52 Q 365.15 87.56 365.15 86.61 Q 365.15 86.01 364.78 85.66 Q 364.42 85.32 363.78 85.32 Q 363.03 85.32 362.01 85.9 L 362.01 85.05 Q 362.97 84.59 363.92 84.59 Q 364.94 84.59 365.55 85.14 Q 366.17 85.69 366.17 86.59 Q 366.17 87.24 365.86 87.74 Q 365.55 88.25 364.7 88.96 L 364.33 89.28 Q 363.17 90.26 362.99 91.16 L 366.13 91.16 L 366.13 92 M 361.83 92"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 371.5 92 L 371.5 91.28 L 372.95 91.28 L 372.95 85.57 L 371.5 85.94 L 371.5 85.19 L 373.92 84.59 L 373.92 91.28 L 375.36 91.28 L 375.36 92 M 371.5 92"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 380.5 92 L 380.5 91.28 L 381.95 91.28 L 381.95 85.57 L 380.5 85.94 L 380.5 85.19 L 382.92 84.59 L 382.92 91.28 L 384.36 91.28 L 384.36 92 M 380.5 92"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 389.5 92 L 389.5 91.28 L 390.95 91.28 L 390.95 85.57 L 389.5 85.94 L 389.5 85.19 L 391.92 84.59 L 391.92 91.28 L 393.36 91.28 L 393.36 92 M 389.5 92"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 400.13 92.18 Q 399.02 92.18 398.33 91.13 Q 397.63 90.08 397.63 88.38 Q 397.63 86.67 398.33 85.63 Q 399.03 84.59 400.16 84.59 Q 401.3 84.59 402 85.63 Q 402.69 86.67 402.69 88.37 Q 402.69 90.11 402 91.14 Q 401.3 92.18 400.13 92.18 M 400.13 92.18 M 400.14 91.46 Q 401.67 91.46 401.67 88.35 Q 401.67 85.32 400.16 85.32 Q 398.66 85.32 398.66 88.38 Q 398.66 91.46 400.14 91.46 M 400.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 409.13 92.18 Q 408.02 92.18 407.33 91.13 Q 406.63 90.08 406.63 88.38 Q 406.63 86.67 407.33 85.63 Q 408.03 84.59 409.16 84.59 Q 410.3 84.59 411 85.63 Q 411.69 86.67 411.69 88.37 Q 411.69 90.11 411 91.14 Q 410.3 92.18 409.13 92.18 M 409.13 92.18 M 409.14 91.46 Q 410.67 91.46 410.67 88.35 Q 410.67 85.32 409.16 85.32 Q 407.66 85.32 407.66 88.38 Q 407.66 91.46 409.14 91.46 M 409.14 91.46"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 416.5 92 L 416.5 91.28 L 417.95 91.28 L 417.95 85.57 L 416.5 85.94 L 416.5 85.19 L 418.92 84.59 L 418.92 91.28 L 420.36 91.28 L 420.36 92 M 416.5 92"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 424.72 89.47 L 424.72 88.75 L 429.06 88.75 L 429.06 89.47 M 424.72 89.47"/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 433.83 92 L 433.83 91.16 Q 434.25 90.17 435.53 89.02 L 436.08 88.52 Q 437.15 87.56 437.15 86.61 Q 437.15 86.01 436.78 85.66 Q 436.42 85.32 435.78 85.32 Q 435.03 85.32 434.01 85.9 L 434.01 85.05 Q 434.97 84.59 435.92 84.59 Q 436.94 84.59 437.55 85.14 Q 438.17 85.69 438.17 86.59 Q 438.17 87.24 437.86 87.74 Q 437.55 88.25 436.7 88.96 L 436.33 89.28 Q 435.17 90.26 434.99 91.16 L 438.13 91.16 L 438.13 92 M 433.83 92"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 442.72 89.47 L 442.72 88.75 L 447.06 88.75 L 447.06 89.47 M 442.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 451.72 89.47 L 451.72 88.75 L 456.06 88.75 L 456.06 89.47 M 451.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 460.72 89.47 L 460.72 88.75 L 465.06 88.75 L 465.06 89.47 M 460.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 469.72 89.47 L 469.72 88.75 L 474.06 88.75 L 474.06 89.47 M 469.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 478.72 89.47 L 478.72 88.75 L 483.06 88.75 L 483.06 89.47 M 478.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 490.13 92.18 Q 489.02 92.18 488.33 91.13 Q 487.63 90.08 487.63 88.38 Q 487.63 86.67 488.33 85.63 Q 489.03 84.59 490.16 84.59 Q 491.3 84.59 492 85.63 Q 492.69 86.67 492.69 88.37 Q 492.69 90.11 492 91.14 Q 491.3 92.18 490.13 92.18 M 490.13 92.18 M 490.14 91.46 Q 491.67 91.46 491.67 88.35 Q 491.67 85.32 490.16 85.32 Q 488.66 85.32 488.66 88.38 Q 488.66 91.46 490.14 91.46 M 490.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 499.13 92.18 Q 498.02 92.18 497.33 91.13 Q 496.63 90.08 496.63 88.38 Q 496.63 86.67 497.33 85.63 Q 498.03 84.59 499.16 84.59 Q 500.3 84.59 501 85.63 Q 501.69 86.67 501.69 88.37 Q 501.69 90.11 501 91.14 Q 500.3 92.18 499.13 92.18 M 499.13 92.18 M 499.14 91.46 Q 500.67 91.46 500.67 88.35 Q 500.67 85.32 499.16 85.32 Q 497.66 85.32 497.66 88.38 Q 497.66 91.46 499.14 91.46 M 499.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 508.13 92.18 Q 507.02 92.18 506.33 91.13 Q 505.63 90.08 505.63 88.38 Q 505.63 86.67 506.33 85.63 Q 507.03 84.59 508.16 84.59 Q 509.3 84.59 510 85.63 Q 510.69 86.67 510.69 88.37 Q 510.69 90.11 510 91.14 Q 509.3 92.18 508.13 92.18 M 508.13 92.18 M 508.14 91.46 Q 509.67 91.46 509.67 88.35 Q 509.67 85.32 508.16 85.32 Q 506.66 85.32 506.66 88.38 Q 506.66 91.46 508.14 91.46 M 508.14 91.46"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 515.5 92 L 515.5 91.28 L 516.95 91.28 L 516.95 85.57 L 515.5 85.94 L 515.5 85.19 L 517.92 84.59 L 517.92 91.28 L 519.36 91.28 L 519.36 92 M 515.5 92"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 526.13 92.18 Q 525.02 92.18 524.33 91.13 Q 523.63 90.08 523.63 88.38 Q 523.63 86.67 524.33 85.63 Q 525.03 84.59 526.16 84.59 Q 527.3 84.59 528 85.63 Q 528.69 86.67 528.69 88.37 Q 528.69 90.11 528 91.14 Q 527.3 92.18 526.13 92.18 M 526.13 92.18 M 526.14 91.46 Q 527.67 91.46 527.67 88.35 Q 527.67 85.32 526.16 85.32 Q 524.66 85.32 524.66 88.38 Q 524.66 91.46 526.14 91.46 M 526.14 91.46"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 537.06 85.71 L 537.28 86.39 L 535.8 86.72 Q 535.82 86.66 535.82 86.64 Q 535.82 86.44 535.68 86.32 M 537.06 85.71 M 536.79 87.91 L 536.21 88.33 L 535.44 87.03 Q 535.69 87 535.78 86.78 M 536.79 87.91 M 534.62 88.33 L 534.03 87.91 L 535.04 86.78 Q 535.13 87 535.38 87.03 M 534.62 88.33 M 533.54 86.39 L 533.76 85.71 L 535.15 86.32 Q 535.01 86.44 535.01 86.64 Q 535.01 86.66 535.02 86.72 M 533.54 86.39 M 535.05 84.77 L 535.77 84.77 L 535.62 86.28 Q 535.53 86.22 535.41 86.22 Q 535.29 86.22 535.2 86.28 M 535.05 84.77"/></g><g style="fill: rgb(190,146,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 542.5 92 Q 542.65 91.16 542.91 90.54 Q 543.17 89.92 543.83 88.85 L 545.8 85.68 L 542.08 85.68 L 542.08 84.77 L 546.72 84.77 L 546.72 85.68 Q 543.94 89.77 543.61 92 M 542.5 92"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 555.06 85.71 L 555.28 86.39 L 553.8 86.72 Q 553.82 86.66 553.82 86.64 Q 553.82 86.44 553.68 86.32 M 555.06 85.71 M 554.79 87.91 L 554.21 88.33 L 553.44 87.03 Q 553.69 87 553.78 86.78 M 554.79 87.91 M 552.62 88.33 L 552.03 87.91 L 553.04 86.78 Q 553.13 87 553.38 87.03 M 552.62 88.33 M 551.54 86.39 L 551.76 85.71 L 553.15 86.32 Q 553.01 86.44 553.01 86.64 Q 553.01 86.66 553.02 86.72 M 551.54 86.39 M 553.05 84.77 L 553.77 84.77 L 553.62 86.28 Q 553.53 86.22 553.41 86.22 Q 553.29 86.22 553.2 86.28 M 553.05 84.77"/></g><g style="fill: rgb(174,125,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 560.72 88.25 Q 561.41 87.36 562.45 87.36 Q 563.4 87.36 564 87.99 Q 564.61 88.62 564.61 89.6 Q 564.61 90.73 563.93 91.45 Q 563.25 92.18 562.21 92.18 Q 561.02 92.18 560.34 91.22 Q 559.67 90.26 559.67 88.55 Q 559.67 86.67 560.44 85.63 Q 561.22 84.59 562.62 84.59 Q 563.27 84.59 564.23 84.86 L 564.23 85.7 Q 563.21 85.31 562.56 85.31 Q 560.72 85.31 560.72 88.25 M 560.72 88.25 M 563.64 89.81 Q 563.64 88.99 563.27 88.52 Q 562.9 88.05 562.25 88.05 Q 561.64 88.05 561.2 88.46 Q 560.76 88.88 560.76 89.45 Q 560.76 90.36 561.18 90.91 Q 561.59 91.46 562.28 91.46 Q 562.9 91.46 563.27 91.01 Q 563.64 90.56 563.64 89.81 M 563.64 89.81"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 573.06 85.71 L 573.28 86.39 L 571.8 86.72 Q 571.82 86.66 571.82 86.64 Q 571.82 86.44 571.68 86.32 M 573.06 85.71 M 572.79 87.91 L 572.21 88.33 L 571.44 87.03 Q 571.69 87 571.78 86.78 M 572.79 87.91 M 570.62 88.33 L 570.03 87.91 L 571.04 86.78 Q 571.13 87 571.38 87.03 M 570.62 88.33 M 569.54 86.39 L 569.76 85.71 L 571.15 86.32 Q 571.01 86.44 571.01 86.64 Q 571.01 86.66 571.02 86.72 M 569.54 86.39 M 571.05 84.77 L 571.77 84.77 L 571.62 86.28 Q 571.53 86.22 571.41 86.22 Q 571.29 86.22 571.2 86.28 M 571.05 84.77"/></g><g style="fill: rgb(174,125,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 578.72 88.25 Q 579.41 87.36 580.45 87.36 Q 581.4 87.36 582 87.99 Q 582.61 88.62 582.61 89.6 Q 582.61 90.73 581.93 91.45 Q 581.25 92.18 580.21 92.18 Q 579.02 92.18 578.34 91.22 Q 577.67 90.26 577.67 88.55 Q 577.67 86.67 578.44 85.63 Q 579.22 84.59 580.62 84.59 Q 581.27 84.59 582.23 84.86 L 582.23 85.7 Q 581.21 85.31 580.56 85.31 Q 578.72 85.31 578.72 88.25 M 578.72 88.25 M 581.64 89.81 Q 581.64 88.99 581.27 88.52 Q 580.9 88.05 580.25 88.05 Q 579.64 88.05 579.2 88.46 Q 578.76 88.88 578.76 89.45 Q 578.76 90.36 579.18 90.91 Q 579.59 91.46 580.28 91.46 Q 580.9 91.46 581.27 91.01 Q 581.64 90.56 581.64 89.81 M 581.64 89.81"/></g><g style="fill: rgb(206,167,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 588.3 88.06 Q 587.24 87.33 587.24 86.43 Q 587.24 85.61 587.84 85.1 Q 588.44 84.59 589.41 84.59 Q 590.3 84.59 590.86 85.02 Q 591.41 85.46 591.41 86.15 Q 591.41 87.2 590.06 88.06 Q 591.7 88.87 591.7 90.13 Q 591.7 91.04 591.01 91.61 Q 590.33 92.18 589.24 92.18 Q 588.18 92.18 587.52 91.64 Q 586.86 91.1 586.86 90.22 Q 586.86 88.92 588.3 88.06 M 588.3 88.06 M 589.53 87.76 Q 590.54 87.1 590.54 86.28 Q 590.54 85.85 590.2 85.58 Q 589.86 85.32 589.31 85.32 Q 588.78 85.32 588.45 85.58 Q 588.11 85.84 588.11 86.25 Q 588.11 86.66 588.41 86.98 Q 588.71 87.3 589.53 87.76 M 589.53 87.76 M 588.82 88.46 Q 588.24 88.9 588.03 89.24 Q 587.83 89.57 587.83 90.07 Q 587.83 90.69 588.23 91.07 Q 588.63 91.46 589.28 91.46 Q 589.91 91.46 590.31 91.13 Q 590.71 90.8 590.71 90.28 Q 590.71 89.86 590.46 89.57 Q 590.21 89.28 589.51 88.86 M 588.82 88.46"/></g><g style="fill: rgb(223,188,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 596.14 91.96 L 596.14 91.14 Q 597.06 91.46 597.7 91.46 Q 598.6 91.46 599.1 90.69 Q 599.61 89.93 599.61 88.57 Q 598.88 89.47 597.94 89.47 Q 597.03 89.47 596.4 88.8 Q 595.76 88.13 595.76 87.16 Q 595.76 86.05 596.44 85.32 Q 597.11 84.59 598.14 84.59 Q 599.32 84.59 600 85.54 Q 600.67 86.48 600.67 88.12 Q 600.67 89.99 599.85 91.08 Q 599.02 92.18 597.61 92.18 Q 597.04 92.18 596.14 91.96 M 596.14 91.96 M 596.72 86.97 Q 596.72 87.81 597.1 88.29 Q 597.47 88.78 598.12 88.78 Q 598.73 88.78 599.16 88.36 Q 599.59 87.95 599.59 87.36 Q 599.59 86.44 599.18 85.87 Q 598.76 85.31 598.08 85.31 Q 597.45 85.31 597.09 85.76 Q 596.72 86.2 596.72 86.97 M 596.72 86.97"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 609.06 85.71 L 609.28 86.39 L 607.8 86.72 Q 607.82 86.66 607.82 86.64 Q 607.82 86.44 607.68 86.32 M 609.06 85.71 M 608.79 87.91 L 608.21 88.33 L 607.44 87.03 Q 607.69 87 607.78 86.78 M 608.79 87.91 M 606.62 88.33 L 606.03 87.91 L 607.04 86.78 Q 607.13 87 607.38 87.03 M 606.62 88.33 M 605.54 86.39 L 605.76 85.71 L 607.15 86.32 Q 607.01 86.44 607.01 86.64 Q 607.01 86.66 607.02 86.72 M 605.54 86.39 M 607.05 84.77 L 607.77 84.77 L 607.62 86.28 Q 607.53 86.22 607.41 86.22 Q 607.29 86.22 607.2 86.28 M 607.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 618.06 85.71 L 618.28 86.39 L 616.8 86.72 Q 616.82 86.66 616.82 86.64 Q 616.82 86.44 616.68 86.32 M 618.06 85.71 M 617.79 87.91 L 617.21 88.33 L 616.44 87.03 Q 616.69 87 616.78 86.78 M 617.79 87.91 M 615.62 88.33 L 615.03 87.91 L 616.04 86.78 Q 616.13 87 616.38 87.03 M 615.62 88.33 M 614.54 86.39 L 614.76 85.71 L 616.15 86.32 Q 616.01 86.44 616.01 86.64 Q 616.01 86.66 616.02 86.72 M 614.54 86.39 M 616.05 84.77 L 616.77 84.77 L 616.62 86.28 Q 616.53 86.22 616.41 86.22 Q 616.29 86.22 616.2 86.28 M 616.05 84.77"/></g><g style="fill: rgb(190,146,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 623.5 92 Q 623.65 91.16 623.91 90.54 Q 624.17 89.92 624.83 88.85 L 626.8 85.68 L 623.08 85.68 L 623.08 84.77 L 627.72 84.77 L 627.72 85.68 Q 624.94 89.77 624.61 92 M 623.5 92"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 636.06 85.71 L 636.28 86.39 L 634.8 86.72 Q 634.82 86.66 634.82 86.64 Q 634.82 86.44 634.68 86.32 M 636.06 85.71 M 635.79 87.91 L 635.21 88.33 L 634.44 87.03 Q 634.69 87 634.78 86.78 M 635.79 87.91 M 633.62 88.33 L 633.03 87.91 L 634.04 86.78 Q 634.13 87 634.38 87.03 M 633.62 88.33 M 632.54 86.39 L 632.76 85.71 L 634.15 86.32 Q 634.01 86.44 634.01 86.64 Q 634.01 86.66 634.02 86.72 M 632.54 86.39 M 634.05 84.77 L 634.77 84.77 L 634.62 86.28 Q 634.53 86.22 634.41 86.22 Q 634.29 86.22 634.2 86.28 M 634.05 84.77"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 641.02 91.95 L 641.02 91.05 Q 642.05 91.46 642.65 91.46 Q 643.33 91.46 643.77 91.06 Q 644.2 90.65 644.2 90.01 Q 644.2 88.49 642.07 88.49 L 641.68 88.49 L 641.68 87.84 L 642.02 87.83 Q 644.02 87.83 644.02 86.42 Q 644.02 85.32 642.71 85.32 Q 641.98 85.32 641.11 85.72 L 641.11 84.88 Q 641.97 84.59 642.77 84.59 Q 644.99 84.59 644.99 86.27 Q 644.99 87.54 643.48 88.08 Q 645.23 88.49 645.23 90 Q 645.23 91.02 644.56 91.6 Q 643.88 92.18 642.71 92.18 Q 642.04 92.18 641.02 91.95 M 641.02 91.95"/></g><g style="fill: rgb(174,125,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 650.72 88.25 Q 651.41 87.36 652.45 87.36 Q 653.4 87.36 654 87.99 Q 654.61 88.62 654.61 89.6 Q 654.61 90.73 653.93 91.45 Q 653.25 92.18 652.21 92.18 Q 651.02 92.18 650.34 91.22 Q 649.67 90.26 649.67 88.55 Q 649.67 86.67 650.44 85.63 Q 651.22 84.59 652.62 84.59 Q 653.27 84.59 654.23 84.86 L 654.23 85.7 Q 653.21 85.31 652.56 85.31 Q 650.72 85.31 650.72 88.25 M 650.72 88.25 M 653.64 89.81 Q 653.64 88.99 653.27 88.52 Q 652.9 88.05 652.25 88.05 Q 651.64 88.05 651.2 88.46 Q 650.76 88.88 650.76 89.45 Q 650.76 90.36 651.18 90.91 Q 651.59 91.46 652.28 91.46 Q 652.9 91.46 653.27 91.01 Q 653.64 90.56 653.64 89.81 M 653.64 89.81"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 663.06 85.71 L 663.28 86.39 L 661.8 86.72 Q 661.82 86.66 661.82 86.64 Q 661.82 86.44 661.68 86.32 M 663.06 85.71 M 662.79 87.91 L 662.21 88.33 L 661.44 87.03 Q 661.69 87 661.78 86.78 M 662.79 87.91 M 660.62 88.33 L 660.03 87.91 L 661.04 86.78 Q 661.13 87 661.38 87.03 M 660.62 88.33 M 659.54 86.39 L 659.76 85.71 L 661.15 86.32 Q 661.01 86.44 661.01 86.64 Q 661.01 86.66 661.02 86.72 M 659.54 86.39 M 661.05 84.77 L 661.77 84.77 L 661.62 86.28 Q 661.53 86.22 661.41 86.22 Q 661.29 86.22 661.2 86.28 M 661.05 84.77"/></g><g style="fill: rgb(190,146,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 668.5 92 Q 668.65 91.16 668.91 90.54 Q 669.17 89.92 669.83 88.85 L 671.8 85.68 L 668.08 85.68 L 668.08 84.77 L 672.72 84.77 L 672.72 85.68 Q 669.94 89.77 669.61 92 M 668.5 92"/></g><g style="fill: rgb(190,146,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 677.5 92 Q 677.65 91.16 677.91 90.54 Q 678.17 89.92 678.83 88.85 L 680.8 85.68 L 677.08 85.68 L 677.08 84.77 L 681.72 84.77 L 681.72 85.68 Q 678.94 89.77 678.61 92 M 677.5 92"/></g><g style="fill: rgb(223,188,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 686.14 91.96 L 686.14 91.14 Q 687.06 91.46 687.7 91.46 Q 688.6 91.46 689.1 90.69 Q 689.61 89.93 689.61 88.57 Q 688.88 89.47 687.94 89.47 Q 687.03 89.47 686.4 88.8 Q 685.76 88.13 685.76 87.16 Q 685.76 86.05 686.44 85.32 Q 687.11 84.59 688.14 84.59 Q 689.32 84.59 690 85.54 Q 690.67 86.48 690.67 88.12 Q 690.67 89.99 689.85 91.08 Q 689.02 92.18 687.61 92.18 Q 687.04 92.18 686.14 91.96 M 686.14 91.96 M 686.72 86.97 Q 686.72 87.81 687.1 88.29 Q 687.47 88.78 688.12 88.78 Q 688.73 88.78 689.16 88.36 Q 689.59 87.95 689.59 87.36 Q 689.59 86.44 689.18 85.87 Q 688.76 85.31 688.08 85.31 Q 687.45 85.31 687.09 85.76 Q 686.72 86.2 686.72 86.97 M 686.72 86.97"/></g><g style="fill: rgb(158,104,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 695.22 92.03 L 695.22 91.17 Q 695.93 91.46 696.58 91.46 Q 697.3 91.46 697.7 91.04 Q 698.11 90.62 698.11 89.88 Q 698.11 88.25 695.87 88.25 Q 695.62 88.25 695.34 88.29 L 695.34 84.77 L 699 84.77 L 699 85.61 L 696.18 85.61 L 696.18 87.52 Q 697.57 87.52 698.36 88.16 Q 699.14 88.8 699.14 89.93 Q 699.14 90.98 698.43 91.58 Q 697.72 92.18 696.46 92.18 Q 695.91 92.18 695.22 92.03 M 695.22 92.03"/></g><g style="fill: rgb(174,125,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 704.72 88.25 Q 705.41 87.36 706.45 87.36 Q 707.4 87.36 708 87.99 Q 708.61 88.62 708.61 89.6 Q 708.61 90.73 707.93 91.45 Q 707.25 92.18 706.21 92.18 Q 705.02 92.18 704.34 91.22 Q 703.67 90.26 703.67 88.55 Q 703.67 86.67 704.44 85.63 Q 705.22 84.59 706.62 84.59 Q 707.27 84.59 708.23 84.86 L 708.23 85.7 Q 707.21 85.31 706.56 85.31 Q 704.72 85.31 704.72 88.25 M 704.72 88.25 M 707.64 89.81 Q 707.64 88.99 707.27 88.52 Q 706.9 88.05 706.25 88.05 Q 705.64 88.05 705.2 88.46 Q 704.76 88.88 704.76 89.45 Q 704.76 90.36 705.18 90.91 Q 705.59 91.46 706.28 91.46 Q 706.9 91.46 707.27 91.01 Q 707.64 90.56 707.64 89.81 M 707.64 89.81"/></g><g style="fill: rgb(206,167,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 714.3 88.06 Q 713.24 87.33 713.24 86.43 Q 713.24 85.61 713.84 85.1 Q 714.44 84.59 715.41 84.59 Q 716.3 84.59 716.86 85.02 Q 717.41 85.46 717.41 86.15 Q 717.41 87.2 716.06 88.06 Q 717.7 88.87 717.7 90.13 Q 717.7 91.04 717.01 91.61 Q 716.33 92.18 715.24 92.18 Q 714.18 92.18 713.52 91.64 Q 712.86 91.1 712.86 90.22 Q 712.86 88.92 714.3 88.06 M 714.3 88.06 M 715.53 87.76 Q 716.54 87.1 716.54 86.28 Q 716.54 85.85 716.2 85.58 Q 715.86 85.32 715.31 85.32 Q 714.78 85.32 714.45 85.58 Q 714.11 85.84 714.11 86.25 Q 714.11 86.66 714.41 86.98 Q 714.71 87.3 715.53 87.76 M 715.53 87.76 M 714.82 88.46 Q 714.24 88.9 714.03 89.24 Q 713.83 89.57 713.83 90.07 Q 713.83 90.69 714.23 91.07 Q 714.63 91.46 715.28 91.46 Q 715.91 91.46 716.31 91.13 Q 716.71 90.8 716.71 90.28 Q 716.71 89.86 716.46 89.57 Q 716.21 89.28 715.51 88.86 M 714.82 88.46"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 726.06 85.71 L 726.28 86.39 L 724.8 86.72 Q 724.82 86.66 724.82 86.64 Q 724.82 86.44 724.68 86.32 M 726.06 85.71 M 725.79 87.91 L 725.21 88.33 L 724.44 87.03 Q 724.69 87 724.78 86.78 M 725.79 87.91 M 723.62 88.33 L 723.03 87.91 L 724.04 86.78 Q 724.13 87 724.38 87.03 M 723.62 88.33 M 722.54 86.39 L 722.76 85.71 L 724.15 86.32 Q 724.01 86.44 724.01 86.64 Q 724.01 86.66 724.02 86.72 M 722.54 86.39 M 724.05 84.77 L 724.77 84.77 L 724.62 86.28 Q 724.53 86.22 724.41 86.22 Q 724.29 86.22 724.2 86.28 M 724.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 735.06 85.71 L 735.28 86.39 L 733.8 86.72 Q 733.82 86.66 733.82 86.64 Q 733.82 86.44 733.68 86.32 M 735.06 85.71 M 734.79 87.91 L 734.21 88.33 L 733.44 87.03 Q 733.69 87 733.78 86.78 M 734.79 87.91 M 732.62 88.33 L 732.03 87.91 L 733.04 86.78 Q 733.13 87 733.38 87.03 M 732.62 88.33 M 731.54 86.39 L 731.76 85.71 L 733.15 86.32 Q 733.01 86.44 733.01 86.64 Q 733.01 86.66 733.02 86.72 M 731.54 86.39 M 733.05 84.77 L 733.77 84.77 L 733.62 86.28 Q 733.53 86.22 733.41 86.22 Q 733.29 86.22 733.2 86.28 M 733.05 84.77"/></g><g style="fill: rgb(223,188,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 740.14 91.96 L 740.14 91.14 Q 741.06 91.46 741.7 91.46 Q 742.6 91.46 743.1 90.69 Q 743.61 89.93 743.61 88.57 Q 742.88 89.47 741.94 89.47 Q 741.03 89.47 740.4 88.8 Q 739.76 88.13 739.76 87.16 Q 739.76 86.05 740.44 85.32 Q 741.11 84.59 742.14 84.59 Q 743.32 84.59 744 85.54 Q 744.67 86.48 744.67 88.12 Q 744.67 89.99 743.85 91.08 Q 743.02 92.18 741.61 92.18 Q 741.04 92.18 740.14 91.96 M 740.14 91.96 M 740.72 86.97 Q 740.72 87.81 741.1 88.29 Q 741.47 88.78 742.12 88.78 Q 742.73 88.78 743.16 88.36 Q 743.59 87.95 743.59 87.36 Q 743.59 86.44 743.18 85.87 Q 742.76 85.31 742.08 85.31 Q 741.45 85.31 741.09 85.76 Q 740.72 86.2 740.72 86.97 M 740.72 86.97"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 753.06 85.71 L 753.28 86.39 L 751.8 86.72 Q 751.82 86.66 751.82 86.64 Q 751.82 86.44 751.68 86.32 M 753.06 85.71 M 752.79 87.91 L 752.21 88.33 L 751.44 87.03 Q 751.69 87 751.78 86.78 M 752.79 87.91 M 750.62 88.33 L 750.03 87.91 L 751.04 86.78 Q 751.13 87 751.38 87.03 M 750.62 88.33 M 749.54 86.39 L 749.76 85.71 L 751.15 86.32 Q 751.01 86.44 751.01 86.64 Q 751.01 86.66 751.02 86.72 M 749.54 86.39 M 751.05 84.77 L 751.77 84.77 L 751.62 86.28 Q 751.53 86.22 751.41 86.22 Q 751.29 86.22 751.2 86.28 M 751.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 762.06 85.71 L 762.28 86.39 L 760.8 86.72 Q 760.82 86.66 760.82 86.64 Q 760.82 86.44 760.68 86.32 M 762.06 85.71 M 761.79 87.91 L 761.21 88.33 L 760.44 87.03 Q 760.69 87 760.78 86.78 M 761.79 87.91 M 759.62 88.33 L 759.03 87.91 L 760.04 86.78 Q 760.13 87 760.38 87.03 M 759.62 88.33 M 758.54 86.39 L 758.76 85.71 L 760.15 86.32 Q 760.01 86.44 760.01 86.64 Q 760.01 86.66 760.02 86.72 M 758.54 86.39 M 760.05 84.77 L 760.77 84.77 L 760.62 86.28 Q 760.53 86.22 760.41 86.22 Q 760.29 86.22 760.2 86.28 M 760.05 84.77"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 767.02 91.95 L 767.02 91.05 Q 768.05 91.46 768.65 91.46 Q 769.33 91.46 769.77 91.06 Q 770.2 90.65 770.2 90.01 Q 770.2 88.49 768.07 88.49 L 767.68 88.49 L 767.68 87.84 L 768.02 87.83 Q 770.02 87.83 770.02 86.42 Q 770.02 85.32 768.71 85.32 Q 767.98 85.32 767.11 85.72 L 767.11 84.88 Q 767.97 84.59 768.77 84.59 Q 770.99 84.59 770.99 86.27 Q 770.99 87.54 769.48 88.08 Q 771.23 88.49 771.23 90 Q 771.23 91.02 770.56 91.6 Q 769.88 92.18 768.71 92.18 Q 768.04 92.18 767.02 91.95 M 767.02 91.95"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 780.06 85.71 L 780.28 86.39 L 778.8 86.72 Q 778.82 86.66 778.82 86.64 Q 778.82 86.44 778.68 86.32 M 780.06 85.71 M 779.79 87.91 L 779.21 88.33 L 778.44 87.03 Q 778.69 87 778.78 86.78 M 779.79 87.91 M 777.62 88.33 L 777.03 87.91 L 778.04 86.78 Q 778.13 87 778.38 87.03 M 777.62 88.33 M 776.54 86.39 L 776.76 85.71 L 778.15 86.32 Q 778.01 86.44 778.01 86.64 Q 778.01 86.66 778.02 86.72 M 776.54 86.39 M 778.05 84.77 L 778.77 84.77 L 778.62 86.28 Q 778.53 86.22 778.41 86.22 Q 778.29 86.22 778.2 86.28 M 778.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 789.06 85.71 L 789.28 86.39 L 787.8 86.72 Q 787.82 86.66 787.82 86.64 Q 787.82 86.44 787.68 86.32 M 789.06 85.71 M 788.79 87.91 L 788.21 88.33 L 787.44 87.03 Q 787.69 87 787.78 86.78 M 788.79 87.91 M 786.62 88.33 L 786.03 87.91 L 787.04 86.78 Q 787.13 87 787.38 87.03 M 786.62 88.33 M 785.54 86.39 L 785.76 85.71 L 787.15 86.32 Q 787.01 86.44 787.01 86.64 Q 787.01 86.66 787.02 86.72 M 785.54 86.39 M 787.05 84.77 L 787.77 84.77 L 787.62 86.28 Q 787.53 86.22 787.41 86.22 Q 787.29 86.22 787.2 86.28 M 787.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 798.06 85.71 L 798.28 86.39 L 796.8 86.72 Q 796.82 86.66 796.82 86.64 Q 796.82 86.44 796.68 86.32 M 798.06 85.71 M 797.79 87.91 L 797.21 88.33 L 796.44 87.03 Q 796.69 87 796.78 86.78 M 797.79 87.91 M 795.62 88.33 L 795.03 87.91 L 796.04 86.78 Q 796.13 87 796.38 87.03 M 795.62 88.33 M 794.54 86.39 L 794.76 85.71 L 796.15 86.32 Q 796.01 86.44 796.01 86.64 Q 796.01 86.66 796.02 86.72 M 794.54 86.39 M 796.05 84.77 L 796.77 84.77 L 796.62 86.28 Q 796.53 86.22 796.41 86.22 Q 796.29 86.22 796.2 86.28 M 796.05 84.77"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 803.02 91.95 L 803.02 91.05 Q 804.05 91.46 804.65 91.46 Q 805.33 91.46 805.77 91.06 Q 806.2 90.65 806.2 90.01 Q 806.2 88.49 804.07 88.49 L 803.68 88.49 L 803.68 87.84 L 804.02 87.83 Q 806.02 87.83 806.02 86.42 Q 806.02 85.32 804.71 85.32 Q 803.98 85.32 803.11 85.72 L 803.11 84.88 Q 803.97 84.59 804.77 84.59 Q 806.99 84.59 806.99 86.27 Q 806.99 87.54 805.48 88.08 Q 807.23 88.49 807.23 90 Q 807.23 91.02 806.56 91.6 Q 805.88 92.18 804.71 92.18 Q 804.04 92.18 803.02 91.95 M 803.02 91.95"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 816.06 85.71 L 816.28 86.39 L 814.8 86.72 Q 814.82 86.66 814.82 86.64 Q 814.82 86.44 814.68 86.32 M 816.06 85.71 M 815.79 87.91 L 815.21 88.33 L 814.44 87.03 Q 814.69 87 814.78 86.78 M 815.79 87.91 M 813.62 88.33 L 813.03 87.91 L 814.04 86.78 Q 814.13 87 814.38 87.03 M 813.62 88.33 M 812.54 86.39 L 812.76 85.71 L 814.15 86.32 Q 814.01 86.44 814.01 86.64 Q 814.01 86.66 814.02 86.72 M 812.54 86.39 M 814.05 84.77 L 814.77 84.77 L 814.62 86.28 Q 814.53 86.22 814.41 86.22 Q 814.29 86.22 814.2 86.28 M 814.05 84.77"/></g><g style="fill: rgb(158,104,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 821.22 92.03 L 821.22 91.17 Q 821.93 91.46 822.58 91.46 Q 823.3 91.46 823.7 91.04 Q 824.11 90.62 824.11 89.88 Q 824.11 88.25 821.87 88.25 Q 821.62 88.25 821.34 88.29 L 821.34 84.77 L 825 84.77 L 825 85.61 L 822.18 85.61 L 822.18 87.52 Q 823.57 87.52 824.36 88.16 Q 825.14 88.8 825.14 89.93 Q 825.14 90.98 824.43 91.58 Q 823.72 92.18 822.46 92.18 Q 821.91 92.18 821.22 92.03 M 821.22 92.03"/></g><g style="fill: rgb(223,188,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 830.14 91.96 L 830.14 91.14 Q 831.06 91.46 831.7 91.46 Q 832.6 91.46 833.1 90.69 Q 833.61 89.93 833.61 88.57 Q 832.88 89.47 831.94 89.47 Q 831.03 89.47 830.4 88.8 Q 829.76 88.13 829.76 87.16 Q 829.76 86.05 830.44 85.32 Q 831.11 84.59 832.14 84.59 Q 833.32 84.59 834 85.54 Q 834.67 86.48 834.67 88.12 Q 834.67 89.99 833.85 91.08 Q 833.02 92.18 831.61 92.18 Q 831.04 92.18 830.14 91.96 M 830.14 91.96 M 830.72 86.97 Q 830.72 87.81 831.1 88.29 Q 831.47 88.78 832.12 88.78 Q 832.73 88.78 833.16 88.36 Q 833.59 87.95 833.59 87.36 Q 833.59 86.44 833.18 85.87 Q 832.76 85.31 832.08 85.31 Q 831.45 85.31 831.09 85.76 Q 830.72 86.2 830.72 86.97 M 830.72 86.97"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 843.06 85.71 L 843.28 86.39 L 841.8 86.72 Q 841.82 86.66 841.82 86.64 Q 841.82 86.44 841.68 86.32 M 843.06 85.71 M 842.79 87.91 L 842.21 88.33 L 841.44 87.03 Q 841.69 87 841.78 86.78 M 842.79 87.91 M 840.62 88.33 L 840.03 87.91 L 841.04 86.78 Q 841.13 87 841.38 87.03 M 840.62 88.33 M 839.54 86.39 L 839.76 85.71 L 841.15 86.32 Q 841.01 86.44 841.01 86.64 Q 841.01 86.66 841.02 86.72 M 839.54 86.39 M 841.05 84.77 L 841.77 84.77 L 841.62 86.28 Q 841.53 86.22 841.41 86.22 Q 841.29 86.22 841.2 86.28 M 841.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 852.06 85.71 L 852.28 86.39 L 850.8 86.72 Q 850.82 86.66 850.82 86.64 Q 850.82 86.44 850.68 86.32 M 852.06 85.71 M 851.79 87.91 L 851.21 88.33 L 850.44 87.03 Q 850.69 87 850.78 86.78 M 851.79 87.91 M 849.62 88.33 L 849.03 87.91 L 850.04 86.78 Q 850.13 87 850.38 87.03 M 849.62 88.33 M 848.54 86.39 L 848.76 85.71 L 850.15 86.32 Q 850.01 86.44 850.01 86.64 Q 850.01 86.66 850.02 86.72 M 848.54 86.39 M 850.05 84.77 L 850.77 84.77 L 850.62 86.28 Q 850.53 86.22 850.41 86.22 Q 850.29 86.22 850.2 86.28 M 850.05 84.77"/></g><g style="fill: rgb(223,188,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 857.14 91.96 L 857.14 91.14 Q 858.06 91.46 858.7 91.46 Q 859.6 91.46 860.1 90.69 Q 860.61 89.93 860.61 88.57 Q 859.88 89.47 858.94 89.47 Q 858.03 89.47 857.4 88.8 Q 856.76 88.13 856.76 87.16 Q 856.76 86.05 857.44 85.32 Q 858.11 84.59 859.14 84.59 Q 860.32 84.59 861 85.54 Q 861.67 86.48 861.67 88.12 Q 861.67 89.99 860.85 91.08 Q 860.02 92.18 858.61 92.18 Q 858.04 92.18 857.14 91.96 M 857.14 91.96 M 857.72 86.97 Q 857.72 87.81 858.1 88.29 Q 858.47 88.78 859.12 88.78 Q 859.73 88.78 860.16 88.36 Q 860.59 87.95 860.59 87.36 Q 860.59 86.44 860.18 85.87 Q 859.76 85.31 859.08 85.31 Q 858.45 85.31 858.09 85.76 Q 857.72 86.2 857.72 86.97 M 857.72 86.97"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 870.06 85.71 L 870.28 86.39 L 868.8 86.72 Q 868.82 86.66 868.82 86.64 Q 868.82 86.44 868.68 86.32 M 870.06 85.71 M 869.79 87.91 L 869.21 88.33 L 868.44 87.03 Q 868.69 87 868.78 86.78 M 869.79 87.91 M 867.62 88.33 L 867.03 87.91 L 868.04 86.78 Q 868.13 87 868.38 87.03 M 867.62 88.33 M 866.54 86.39 L 866.76 85.71 L 868.15 86.32 Q 868.01 86.44 868.01 86.64 Q 868.01 86.66 868.02 86.72 M 866.54 86.39 M 868.05 84.77 L 868.77 84.77 L 868.62 86.28 Q 868.53 86.22 868.41 86.22 Q 868.29 86.22 868.2 86.28 M 868.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 879.06 85.71 L 879.28 86.39 L 877.8 86.72 Q 877.82 86.66 877.82 86.64 Q 877.82 86.44 877.68 86.32 M 879.06 85.71 M 878.79 87.91 L 878.21 88.33 L 877.44 87.03 Q 877.69 87 877.78 86.78 M 878.79 87.91 M 876.62 88.33 L 876.03 87.91 L 877.04 86.78 Q 877.13 87 877.38 87.03 M 876.62 88.33 M 875.54 86.39 L 875.76 85.71 L 877.15 86.32 Q 877.01 86.44 877.01 86.64 Q 877.01 86.66 877.02 86.72 M 875.54 86.39 M 877.05 84.77 L 877.77 84.77 L 877.62 86.28 Q 877.53 86.22 877.41 86.22 Q 877.29 86.22 877.2 86.28 M 877.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 888.06 85.71 L 888.28 86.39 L 886.8 86.72 Q 886.82 86.66 886.82 86.64 Q 886.82 86.44 886.68 86.32 M 888.06 85.71 M 887.79 87.91 L 887.21 88.33 L 886.44 87.03 Q 886.69 87 886.78 86.78 M 887.79 87.91 M 885.62 88.33 L 885.03 87.91 L 886.04 86.78 Q 886.13 87 886.38 87.03 M 885.62 88.33 M 884.54 86.39 L 884.76 85.71 L 886.15 86.32 Q 886.01 86.44 886.01 86.64 Q 886.01 86.66 886.02 86.72 M 884.54 86.39 M 886.05 84.77 L 886.77 84.77 L 886.62 86.28 Q 886.53 86.22 886.41 86.22 Q 886.29 86.22 886.2 86.28 M 886.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 897.06 85.71 L 897.28 86.39 L 895.8 86.72 Q 895.82 86.66 895.82 86.64 Q 895.82 86.44 895.68 86.32 M 897.06 85.71 M 896.79 87.91 L 896.21 88.33 L 895.44 87.03 Q 895.69 87 895.78 86.78 M 896.79 87.91 M 894.62 88.33 L 894.03 87.91 L 895.04 86.78 Q 895.13 87 895.38 87.03 M 894.62 88.33 M 893.54 86.39 L 893.76 85.71 L 895.15 86.32 Q 895.01 86.44 895.01 86.64 Q 895.01 86.66 895.02 86.72 M 893.54 86.39 M 895.05 84.77 L 895.77 84.77 L 895.62 86.28 Q 895.53 86.22 895.41 86.22 Q 895.29 86.22 895.2 86.28 M 895.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 906.06 85.71 L 906.28 86.39 L 904.8 86.72 Q 904.82 86.66 904.82 86.64 Q 904.82 86.44 904.68 86.32 M 906.06 85.71 M 905.79 87.91 L 905.21 88.33 L 904.44 87.03 Q 904.69 87 904.78 86.78 M 905.79 87.91 M 903.62 88.33 L 903.03 87.91 L 904.04 86.78 Q 904.13 87 904.38 87.03 M 903.62 88.33 M 902.54 86.39 L 902.76 85.71 L 904.15 86.32 Q 904.01 86.44 904.01 86.64 Q 904.01 86.66 904.02 86.72 M 902.54 86.39 M 904.05 84.77 L 904.77 84.77 L 904.62 86.28 Q 904.53 86.22 904.41 86.22 Q 904.29 86.22 904.2 86.28 M 904.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 915.06 85.71 L 915.28 86.39 L 913.8 86.72 Q 913.82 86.66 913.82 86.64 Q 913.82 86.44 913.68 86.32 M 915.06 85.71 M 914.79 87.91 L 914.21 88.33 L 913.44 87.03 Q 913.69 87 913.78 86.78 M 914.79 87.91 M 912.62 88.33 L 912.03 87.91 L 913.04 86.78 Q 913.13 87 913.38 87.03 M 912.62 88.33 M 911.54 86.39 L 911.76 85.71 L 913.15 86.32 Q 913.01 86.44 913.01 86.64 Q 913.01 86.66 913.02 86.72 M 911.54 86.39 M 913.05 84.77 L 913.77 84.77 L 913.62 86.28 Q 913.53 86.22 913.41 86.22 Q 913.29 86.22 913.2 86.28 M 913.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 924.06 85.71 L 924.28 86.39 L 922.8 86.72 Q 922.82 86.66 922.82 86.64 Q 922.82 86.44 922.68 86.32 M 924.06 85.71 M 923.79 87.91 L 923.21 88.33 L 922.44 87.03 Q 922.69 87 922.78 86.78 M 923.79 87.91 M 921.62 88.33 L 921.03 87.91 L 922.04 86.78 Q 922.13 87 922.38 87.03 M 921.62 88.33 M 920.54 86.39 L 920.76 85.71 L 922.15 86.32 Q 922.01 86.44 922.01 86.64 Q 922.01 86.66 922.02 86.72 M 920.54 86.39 M 922.05 84.77 L 922.77 84.77 L 922.62 86.28 Q 922.53 86.22 922.41 86.22 Q 922.29 86.22 922.2 86.28 M 922.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 933.06 85.71 L 933.28 86.39 L 931.8 86.72 Q 931.82 86.66 931.82 86.64 Q 931.82 86.44 931.68 86.32 M 933.06 85.71 M 932.79 87.91 L 932.21 88.33 L 931.44 87.03 Q 931.69 87 931.78 86.78 M 932.79 87.91 M 930.62 88.33 L 930.03 87.91 L 931.04 86.78 Q 931.13 87 931.38 87.03 M 930.62 88.33 M 929.54 86.39 L 929.76 85.71 L 931.15 86.32 Q 931.01 86.44 931.01 86.64 Q 931.01 86.66 931.02 86.72 M 929.54 86.39 M 931.05 84.77 L 931.77 84.77 L 931.62 86.28 Q 931.53 86.22 931.41 86.22 Q 931.29 86.22 931.2 86.28 M 931.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 942.06 85.71 L 942.28 86.39 L 940.8 86.72 Q 940.82 86.66 940.82 86.64 Q 940.82 86.44 940.68 86.32 M 942.06 85.71 M 941.79 87.91 L 941.21 88.33 L 940.44 87.03 Q 940.69 87 940.78 86.78 M 941.79 87.91 M 939.62 88.33 L 939.03 87.91 L 940.04 86.78 Q 940.13 87 940.38 87.03 M 939.62 88.33 M 938.54 86.39 L 938.76 85.71 L 940.15 86.32 Q 940.01 86.44 940.01 86.64 Q 940.01 86.66 940.02 86.72 M 938.54 86.39 M 940.05 84.77 L 940.77 84.77 L 940.62 86.28 Q 940.53 86.22 940.41 86.22 Q 940.29 86.22 940.2 86.28 M 940.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 951.06 85.71 L 951.28 86.39 L 949.8 86.72 Q 949.82 86.66 949.82 86.64 Q 949.82 86.44 949.68 86.32 M 951.06 85.71 M 950.79 87.91 L 950.21 88.33 L 949.44 87.03 Q 949.69 87 949.78 86.78 M 950.79 87.91 M 948.62 88.33 L 948.03 87.91 L 949.04 86.78 Q 949.13 87 949.38 87.03 M 948.62 88.33 M 947.54 86.39 L 947.76 85.71 L 949.15 86.32 Q 949.01 86.44 949.01 86.64 Q 949.01 86.66 949.02 86.72 M 947.54 86.39 M 949.05 84.77 L 949.77 84.77 L 949.62 86.28 Q 949.53 86.22 949.41 86.22 Q 949.29 86.22 949.2 86.28 M 949.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 960.06 85.71 L 960.28 86.39 L 958.8 86.72 Q 958.82 86.66 958.82 86.64 Q 958.82 86.44 958.68 86.32 M 960.06 85.71 M 959.79 87.91 L 959.21 88.33 L 958.44 87.03 Q 958.69 87 958.78 86.78 M 959.79 87.91 M 957.62 88.33 L 957.03 87.91 L 958.04 86.78 Q 958.13 87 958.38 87.03 M 957.62 88.33 M 956.54 86.39 L 956.76 85.71 L 958.15 86.32 Q 958.01 86.44 958.01 86.64 Q 958.01 86.66 958.02 86.72 M 956.54 86.39 M 958.05 84.77 L 958.77 84.77 L 958.62 86.28 Q 958.53 86.22 958.41 86.22 Q 958.29 86.22 958.2 86.28 M 958.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 969.06 85.71 L 969.28 86.39 L 967.8 86.72 Q 967.82 86.66 967.82 86.64 Q 967.82 86.44 967.68 86.32 M 969.06 85.71 M 968.79 87.91 L 968.21 88.33 L 967.44 87.03 Q 967.69 87 967.78 86.78 M 968.79 87.91 M 966.62 88.33 L 966.03 87.91 L 967.04 86.78 Q 967.13 87 967.38 87.03 M 966.62 88.33 M 965.54 86.39 L 965.76 85.71 L 967.15 86.32 Q 967.01 86.44 967.01 86.64 Q 967.01 86.66 967.02 86.72 M 965.54 86.39 M 967.05 84.77 L 967.77 84.77 L 967.62 86.28 Q 967.53 86.22 967.41 86.22 Q 967.29 86.22 967.2 86.28 M 967.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 978.06 85.71 L 978.28 86.39 L 976.8 86.72 Q 976.82 86.66 976.82 86.64 Q 976.82 86.44 976.68 86.32 M 978.06 85.71 M 977.79 87.91 L 977.21 88.33 L 976.44 87.03 Q 976.69 87 976.78 86.78 M 977.79 87.91 M 975.62 88.33 L 975.03 87.91 L 976.04 86.78 Q 976.13 87 976.38 87.03 M 975.62 88.33 M 974.54 86.39 L 974.76 85.71 L 976.15 86.32 Q 976.01 86.44 976.01 86.64 Q 976.01 86.66 976.02 86.72 M 974.54 86.39 M 976.05 84.77 L 976.77 84.77 L 976.62 86.28 Q 976.53 86.22 976.41 86.22 Q 976.29 86.22 976.2 86.28 M 976.05 84.77"/></g><g style="fill: rgb(223,188,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 983.14 91.96 L 983.14 91.14 Q 984.06 91.46 984.7 91.46 Q 985.6 91.46 986.1 90.69 Q 986.61 89.93 986.61 88.57 Q 985.88 89.47 984.94 89.47 Q 984.03 89.47 983.4 88.8 Q 982.76 88.13 982.76 87.16 Q 982.76 86.05 983.44 85.32 Q 984.11 84.59 985.14 84.59 Q 986.32 84.59 987 85.54 Q 987.67 86.48 987.67 88.12 Q 987.67 89.99 986.85 91.08 Q 986.02 92.18 984.61 92.18 Q 984.04 92.18 983.14 91.96 M 983.14 91.96 M 983.72 86.97 Q 983.72 87.81 984.1 88.29 Q 984.47 88.78 985.12 88.78 Q 985.73 88.78 986.16 88.36 Q 986.59 87.95 986.59 87.36 Q 986.59 86.44 986.18 85.87 Q 985.76 85.31 985.08 85.31 Q 984.45 85.31 984.09 85.76 Q 983.72 86.2 983.72 86.97 M 983.72 86.97"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 992.02 91.95 L 992.02 91.05 Q 993.05 91.46 993.65 91.46 Q 994.33 91.46 994.77 91.06 Q 995.2 90.65 995.2 90.01 Q 995.2 88.49 993.07 88.49 L 992.68 88.49 L 992.68 87.84 L 993.02 87.83 Q 995.02 87.83 995.02 86.42 Q 995.02 85.32 993.71 85.32 Q 992.98 85.32 992.11 85.72 L 992.11 84.88 Q 992.97 84.59 993.77 84.59 Q 995.99 84.59 995.99 86.27 Q 995.99 87.54 994.48 88.08 Q 996.23 88.49 996.23 90 Q 996.23 91.02 995.56 91.6 Q 994.88 92.18 993.71 92.18 Q 993.04 92.18 992.02 91.95 M 992.02 91.95"/></g><g style="fill: rgb(190,146,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1001.5 92 Q 1001.65 91.16 1001.91 90.54 Q 1002.17 89.92 1002.83 88.85 L 1004.8 85.68 L 1001.08 85.68 L 1001.08 84.77 L 1005.72 84.77 L 1005.72 85.68 Q 1002.94 89.77 1002.61 92 M 1001.5 92"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1014.06 85.71 L 1014.28 86.39 L 1012.8 86.72 Q 1012.82 86.66 1012.82 86.64 Q 1012.82 86.44 1012.68 86.32 M 1014.06 85.71 M 1013.79 87.91 L 1013.21 88.33 L 1012.44 87.03 Q 1012.69 87 1012.78 86.78 M 1013.79 87.91 M 1011.62 88.33 L 1011.03 87.91 L 1012.04 86.78 Q 1012.13 87 1012.38 87.03 M 1011.62 88.33 M 1010.54 86.39 L 1010.76 85.71 L 1012.15 86.32 Q 1012.01 86.44 1012.01 86.64 Q 1012.01 86.66 1012.02 86.72 M 1010.54 86.39 M 1012.05 84.77 L 1012.77 84.77 L 1012.62 86.28 Q 1012.53 86.22 1012.41 86.22 Q 1012.29 86.22 1012.2 86.28 M 1012.05 84.77"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1019.02 91.95 L 1019.02 91.05 Q 1020.05 91.46 1020.65 91.46 Q 1021.33 91.46 1021.77 91.06 Q 1022.2 90.65 1022.2 90.01 Q 1022.2 88.49 1020.07 88.49 L 1019.68 88.49 L 1019.68 87.84 L 1020.02 87.83 Q 1022.02 87.83 1022.02 86.42 Q 1022.02 85.32 1020.71 85.32 Q 1019.98 85.32 1019.11 85.72 L 1019.11 84.88 Q 1019.97 84.59 1020.77 84.59 Q 1022.99 84.59 1022.99 86.27 Q 1022.99 87.54 1021.48 88.08 Q 1023.23 88.49 1023.23 90 Q 1023.23 91.02 1022.56 91.6 Q 1021.88 92.18 1020.71 92.18 Q 1020.04 92.18 1019.02 91.95 M 1019.02 91.95"/></g><g style="fill: rgb(223,188,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1028.14 91.96 L 1028.14 91.14 Q 1029.06 91.46 1029.7 91.46 Q 1030.6 91.46 1031.1 90.69 Q 1031.61 89.93 1031.61 88.57 Q 1030.88 89.47 1029.94 89.47 Q 1029.03 89.47 1028.4 88.8 Q 1027.76 88.13 1027.76 87.16 Q 1027.76 86.05 1028.44 85.32 Q 1029.11 84.59 1030.14 84.59 Q 1031.32 84.59 1032 85.54 Q 1032.67 86.48 1032.67 88.12 Q 1032.67 89.99 1031.85 91.08 Q 1031.02 92.18 1029.61 92.18 Q 1029.04 92.18 1028.14 91.96 M 1028.14 91.96 M 1028.72 86.97 Q 1028.72 87.81 1029.1 88.29 Q 1029.47 88.78 1030.12 88.78 Q 1030.73 88.78 1031.16 88.36 Q 1031.59 87.95 1031.59 87.36 Q 1031.59 86.44 1031.18 85.87 Q 1030.76 85.31 1030.08 85.31 Q 1029.45 85.31 1029.09 85.76 Q 1028.72 86.2 1028.72 86.97 M 1028.72 86.97"/></g><g style="fill: rgb(206,167,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1038.3 88.06 Q 1037.24 87.33 1037.24 86.43 Q 1037.24 85.61 1037.84 85.1 Q 1038.44 84.59 1039.41 84.59 Q 1040.3 84.59 1040.86 85.02 Q 1041.41 85.46 1041.41 86.15 Q 1041.41 87.2 1040.06 88.06 Q 1041.7 88.87 1041.7 90.13 Q 1041.7 91.04 1041.01 91.61 Q 1040.33 92.18 1039.24 92.18 Q 1038.18 92.18 1037.52 91.64 Q 1036.86 91.1 1036.86 90.22 Q 1036.86 88.92 1038.3 88.06 M 1038.3 88.06 M 1039.53 87.76 Q 1040.54 87.1 1040.54 86.28 Q 1040.54 85.85 1040.2 85.58 Q 1039.86 85.32 1039.31 85.32 Q 1038.78 85.32 1038.45 85.58 Q 1038.11 85.84 1038.11 86.25 Q 1038.11 86.66 1038.41 86.98 Q 1038.71 87.3 1039.53 87.76 M 1039.53 87.76 M 1038.82 88.46 Q 1038.24 88.9 1038.03 89.24 Q 1037.83 89.57 1037.83 90.07 Q 1037.83 90.69 1038.23 91.07 Q 1038.63 91.46 1039.28 91.46 Q 1039.91 91.46 1040.31 91.13 Q 1040.71 90.8 1040.71 90.28 Q 1040.71 89.86 1040.46 89.57 Q 1040.21 89.28 1039.51 88.86 M 1038.82 88.46"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1050.06 85.71 L 1050.28 86.39 L 1048.8 86.72 Q 1048.82 86.66 1048.82 86.64 Q 1048.82 86.44 1048.68 86.32 M 1050.06 85.71 M 1049.79 87.91 L 1049.21 88.33 L 1048.44 87.03 Q 1048.69 87 1048.78 86.78 M 1049.79 87.91 M 1047.62 88.33 L 1047.03 87.91 L 1048.04 86.78 Q 1048.13 87 1048.38 87.03 M 1047.62 88.33 M 1046.54 86.39 L 1046.76 85.71 L 1048.15 86.32 Q 1048.01 86.44 1048.01 86.64 Q 1048.01 86.66 1048.02 86.72 M 1046.54 86.39 M 1048.05 84.77 L 1048.77 84.77 L 1048.62 86.28 Q 1048.53 86.22 1048.41 86.22 Q 1048.29 86.22 1048.2 86.28 M 1048.05 84.77"/></g><g style="fill: rgb(174,125,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1055.72 88.25 Q 1056.41 87.36 1057.45 87.36 Q 1058.4 87.36 1059 87.99 Q 1059.61 88.62 1059.61 89.6 Q 1059.61 90.73 1058.93 91.45 Q 1058.25 92.18 1057.21 92.18 Q 1056.02 92.18 1055.34 91.22 Q 1054.67 90.26 1054.67 88.55 Q 1054.67 86.67 1055.44 85.63 Q 1056.22 84.59 1057.62 84.59 Q 1058.27 84.59 1059.23 84.86 L 1059.23 85.7 Q 1058.21 85.31 1057.56 85.31 Q 1055.72 85.31 1055.72 88.25 M 1055.72 88.25 M 1058.64 89.81 Q 1058.64 88.99 1058.27 88.52 Q 1057.9 88.05 1057.25 88.05 Q 1056.64 88.05 1056.2 88.46 Q 1055.76 88.88 1055.76 89.45 Q 1055.76 90.36 1056.18 90.91 Q 1056.59 91.46 1057.28 91.46 Q 1057.9 91.46 1058.27 91.01 Q 1058.64 90.56 1058.64 89.81 M 1058.64 89.81"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1068.06 85.71 L 1068.28 86.39 L 1066.8 86.72 Q 1066.82 86.66 1066.82 86.64 Q 1066.82 86.44 1066.68 86.32 M 1068.06 85.71 M 1067.79 87.91 L 1067.21 88.33 L 1066.44 87.03 Q 1066.69 87 1066.78 86.78 M 1067.79 87.91 M 1065.62 88.33 L 1065.03 87.91 L 1066.04 86.78 Q 1066.13 87 1066.38 87.03 M 1065.62 88.33 M 1064.54 86.39 L 1064.76 85.71 L 1066.15 86.32 Q 1066.01 86.44 1066.01 86.64 Q 1066.01 86.66 1066.02 86.72 M 1064.54 86.39 M 1066.05 84.77 L 1066.77 84.77 L 1066.62 86.28 Q 1066.53 86.22 1066.41 86.22 Q 1066.29 86.22 1066.2 86.28 M 1066.05 84.77"/></g><g style="fill: rgb(141,83,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1075.76 92 L 1075.76 89.95 L 1072.51 89.95 L 1072.51 89.23 L 1075.76 84.77 L 1076.67 84.77 L 1076.67 89.17 L 1077.63 89.17 L 1077.63 89.95 L 1076.67 89.95 L 1076.67 92 M 1075.76 92 M 1073.46 89.17 L 1075.83 89.17 L 1075.83 85.96 M 1073.46 89.17"/></g><g style="fill: rgb(158,104,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1082.22 92.03 L 1082.22 91.17 Q 1082.93 91.46 1083.58 91.46 Q 1084.3 91.46 1084.7 91.04 Q 1085.11 90.62 1085.11 89.88 Q 1085.11 88.25 1082.87 88.25 Q 1082.62 88.25 1082.34 88.29 L 1082.34 84.77 L 1086 84.77 L 1086 85.61 L 1083.18 85.61 L 1083.18 87.52 Q 1084.57 87.52 1085.36 88.16 Q 1086.14 88.8 1086.14 89.93 Q 1086.14 90.98 1085.43 91.58 Q 1084.72 92.18 1083.46 92.18 Q 1082.91 92.18 1082.22 92.03 M 1082.22 92.03"/></g><g style="fill: rgb(223,188,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1091.14 91.96 L 1091.14 91.14 Q 1092.06 91.46 1092.7 91.46 Q 1093.6 91.46 1094.1 90.69 Q 1094.61 89.93 1094.61 88.57 Q 1093.88 89.47 1092.94 89.47 Q 1092.03 89.47 1091.4 88.8 Q 1090.76 88.13 1090.76 87.16 Q 1090.76 86.05 1091.44 85.32 Q 1092.11 84.59 1093.14 84.59 Q 1094.32 84.59 1095 85.54 Q 1095.67 86.48 1095.67 88.12 Q 1095.67 89.99 1094.85 91.08 Q 1094.02 92.18 1092.61 92.18 Q 1092.04 92.18 1091.14 91.96 M 1091.14 91.96 M 1091.72 86.97 Q 1091.72 87.81 1092.1 88.29 Q 1092.47 88.78 1093.12 88.78 Q 1093.73 88.78 1094.16 88.36 Q 1094.59 87.95 1094.59 87.36 Q 1094.59 86.44 1094.18 85.87 Q 1093.76 85.31 1093.08 85.31 Q 1092.45 85.31 1092.09 85.76 Q 1091.72 86.2 1091.72 86.97 M 1091.72 86.97"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1104.06 85.71 L 1104.28 86.39 L 1102.8 86.72 Q 1102.82 86.66 1102.82 86.64 Q 1102.82 86.44 1102.68 86.32 M 1104.06 85.71 M 1103.79 87.91 L 1103.21 88.33 L 1102.44 87.03 Q 1102.69 87 1102.78 86.78 M 1103.79 87.91 M 1101.62 88.33 L 1101.03 87.91 L 1102.04 86.78 Q 1102.13 87 1102.38 87.03 M 1101.62 88.33 M 1100.54 86.39 L 1100.76 85.71 L 1102.15 86.32 Q 1102.01 86.44 1102.01 86.64 Q 1102.01 86.66 1102.02 86.72 M 1100.54 86.39 M 1102.05 84.77 L 1102.77 84.77 L 1102.62 86.28 Q 1102.53 86.22 1102.41 86.22 Q 1102.29 86.22 1102.2 86.28 M 1102.05 84.77"/></g><g style="fill: rgb(206,167,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1110.3 88.06 Q 1109.24 87.33 1109.24 86.43 Q 1109.24 85.61 1109.84 85.1 Q 1110.44 84.59 1111.41 84.59 Q 1112.3 84.59 1112.86 85.02 Q 1113.41 85.46 1113.41 86.15 Q 1113.41 87.2 1112.06 88.06 Q 1113.7 88.87 1113.7 90.13 Q 1113.7 91.04 1113.01 91.61 Q 1112.33 92.18 1111.24 92.18 Q 1110.18 92.18 1109.52 91.64 Q 1108.86 91.1 1108.86 90.22 Q 1108.86 88.92 1110.3 88.06 M 1110.3 88.06 M 1111.53 87.76 Q 1112.54 87.1 1112.54 86.28 Q 1112.54 85.85 1112.2 85.58 Q 1111.86 85.32 1111.31 85.32 Q 1110.78 85.32 1110.45 85.58 Q 1110.11 85.84 1110.11 86.25 Q 1110.11 86.66 1110.41 86.98 Q 1110.71 87.3 1111.53 87.76 M 1111.53 87.76 M 1110.82 88.46 Q 1110.24 88.9 1110.03 89.24 Q 1109.83 89.57 1109.83 90.07 Q 1109.83 90.69 1110.23 91.07 Q 1110.63 91.46 1111.28 91.46 Q 1111.91 91.46 1112.31 91.13 Q 1112.71 90.8 1112.71 90.28 Q 1112.71 89.86 1112.46 89.57 Q 1112.21 89.28 1111.51 88.86 M 1110.82 88.46"/></g><g style="fill: rgb(223,188,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1118.14 91.96 L 1118.14 91.14 Q 1119.06 91.46 1119.7 91.46 Q 1120.6 91.46 1121.1 90.69 Q 1121.61 89.93 1121.61 88.57 Q 1120.88 89.47 1119.94 89.47 Q 1119.03 89.47 1118.4 88.8 Q 1117.76 88.13 1117.76 87.16 Q 1117.76 86.05 1118.44 85.32 Q 1119.11 84.59 1120.14 84.59 Q 1121.32 84.59 1122 85.54 Q 1122.67 86.48 1122.67 88.12 Q 1122.67 89.99 1121.85 91.08 Q 1121.02 92.18 1119.61 92.18 Q 1119.04 92.18 1118.14 91.96 M 1118.14 91.96 M 1118.72 86.97 Q 1118.72 87.81 1119.1 88.29 Q 1119.47 88.78 1120.12 88.78 Q 1120.73 88.78 1121.16 88.36 Q 1121.59 87.95 1121.59 87.36 Q 1121.59 86.44 1121.18 85.87 Q 1120.76 85.31 1120.08 85.31 Q 1119.45 85.31 1119.09 85.76 Q 1118.72 86.2 1118.72 86.97 M 1118.72 86.97"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1129.13 92.18 Q 1128.02 92.18 1127.33 91.13 Q 1126.63 90.08 1126.63 88.38 Q 1126.63 86.67 1127.33 85.63 Q 1128.03 84.59 1129.16 84.59 Q 1130.3 84.59 1131 85.63 Q 1131.69 86.67 1131.69 88.37 Q 1131.69 90.11 1131 91.14 Q 1130.3 92.18 1129.13 92.18 M 1129.13 92.18 M 1129.14 91.46 Q 1130.67 91.46 1130.67 88.35 Q 1130.67 85.32 1129.16 85.32 Q 1127.66 85.32 1127.66 88.38 Q 1127.66 91.46 1129.14 91.46 M 1129.14 91.46"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1136.5 92 L 1136.5 91.28 L 1137.95 91.28 L 1137.95 85.57 L 1136.5 85.94 L 1136.5 85.19 L 1138.92 84.59 L 1138.92 91.28 L 1140.36 91.28 L 1140.36 92 M 1136.5 92"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1147.13 92.18 Q 1146.02 92.18 1145.33 91.13 Q 1144.63 90.08 1144.63 88.38 Q 1144.63 86.67 1145.33 85.63 Q 1146.03 84.59 1147.16 84.59 Q 1148.3 84.59 1149 85.63 Q 1149.69 86.67 1149.69 88.37 Q 1149.69 90.11 1149 91.14 Q 1148.3 92.18 1147.13 92.18 M 1147.13 92.18 M 1147.14 91.46 Q 1148.67 91.46 1148.67 88.35 Q 1148.67 85.32 1147.16 85.32 Q 1145.66 85.32 1145.66 88.38 Q 1145.66 91.46 1147.14 91.46 M 1147.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1156.13 92.18 Q 1155.02 92.18 1154.33 91.13 Q 1153.63 90.08 1153.63 88.38 Q 1153.63 86.67 1154.33 85.63 Q 1155.03 84.59 1156.16 84.59 Q 1157.3 84.59 1158 85.63 Q 1158.69 86.67 1158.69 88.37 Q 1158.69 90.11 1158 91.14 Q 1157.3 92.18 1156.13 92.18 M 1156.13 92.18 M 1156.14 91.46 Q 1157.67 91.46 1157.67 88.35 Q 1157.67 85.32 1156.16 85.32 Q 1154.66 85.32 1154.66 88.38 Q 1154.66 91.46 1156.14 91.46 M 1156.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1165.13 92.18 Q 1164.02 92.18 1163.33 91.13 Q 1162.63 90.08 1162.63 88.38 Q 1162.63 86.67 1163.33 85.63 Q 1164.03 84.59 1165.16 84.59 Q 1166.3 84.59 1167 85.63 Q 1167.69 86.67 1167.69 88.37 Q 1167.69 90.11 1167 91.14 Q 1166.3 92.18 1165.13 92.18 M 1165.13 92.18 M 1165.14 91.46 Q 1166.67 91.46 1166.67 88.35 Q 1166.67 85.32 1165.16 85.32 Q 1163.66 85.32 1163.66 88.38 Q 1163.66 91.46 1165.14 91.46 M 1165.14 91.46"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1172.02 91.95 L 1172.02 91.05 Q 1173.05 91.46 1173.65 91.46 Q 1174.33 91.46 1174.77 91.06 Q 1175.2 90.65 1175.2 90.01 Q 1175.2 88.49 1173.07 88.49 L 1172.68 88.49 L 1172.68 87.84 L 1173.02 87.83 Q 1175.02 87.83 1175.02 86.42 Q 1175.02 85.32 1173.71 85.32 Q 1172.98 85.32 1172.11 85.72 L 1172.11 84.88 Q 1172.97 84.59 1173.77 84.59 Q 1175.99 84.59 1175.99 86.27 Q 1175.99 87.54 1174.48 88.08 Q 1176.23 88.49 1176.23 90 Q 1176.23 91.02 1175.56 91.6 Q 1174.88 92.18 1173.71 92.18 Q 1173.04 92.18 1172.02 91.95 M 1172.02 91.95"/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1180.83 92 L 1180.83 91.16 Q 1181.25 90.17 1182.53 89.02 L 1183.08 88.52 Q 1184.15 87.56 1184.15 86.61 Q 1184.15 86.01 1183.78 85.66 Q 1183.42 85.32 1182.78 85.32 Q 1182.03 85.32 1181.01 85.9 L 1181.01 85.05 Q 1181.97 84.59 1182.92 84.59 Q 1183.94 84.59 1184.55 85.14 Q 1185.17 85.69 1185.17 86.59 Q 1185.17 87.24 1184.86 87.74 Q 1184.55 88.25 1183.7 88.96 L 1183.33 89.28 Q 1182.17 90.26 1181.99 91.16 L 1185.13 91.16 L 1185.13 92 M 1180.83 92"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1190.02 91.95 L 1190.02 91.05 Q 1191.05 91.46 1191.65 91.46 Q 1192.33 91.46 1192.77 91.06 Q 1193.2 90.65 1193.2 90.01 Q 1193.2 88.49 1191.07 88.49 L 1190.68 88.49 L 1190.68 87.84 L 1191.02 87.83 Q 1193.02 87.83 1193.02 86.42 Q 1193.02 85.32 1191.71 85.32 Q 1190.98 85.32 1190.11 85.72 L 1190.11 84.88 Q 1190.97 84.59 1191.77 84.59 Q 1193.99 84.59 1193.99 86.27 Q 1193.99 87.54 1192.48 88.08 Q 1194.23 88.49 1194.23 90 Q 1194.23 91.02 1193.56 91.6 Q 1192.88 92.18 1191.71 92.18 Q 1191.04 92.18 1190.02 91.95 M 1190.02 91.95"/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1198.83 92 L 1198.83 91.16 Q 1199.25 90.17 1200.53 89.02 L 1201.08 88.52 Q 1202.15 87.56 1202.15 86.61 Q 1202.15 86.01 1201.78 85.66 Q 1201.42 85.32 1200.78 85.32 Q 1200.03 85.32 1199.01 85.9 L 1199.01 85.05 Q 1199.97 84.59 1200.92 84.59 Q 1201.94 84.59 1202.55 85.14 Q 1203.17 85.69 1203.17 86.59 Q 1203.17 87.24 1202.86 87.74 Q 1202.55 88.25 1201.7 88.96 L 1201.33 89.28 Q 1200.17 90.26 1199.99 91.16 L 1203.13 91.16 L 1203.13 92 M 1198.83 92"/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1207.83 92 L 1207.83 91.16 Q 1208.25 90.17 1209.53 89.02 L 1210.08 88.52 Q 1211.15 87.56 1211.15 86.61 Q 1211.15 86.01 1210.78 85.66 Q 1210.42 85.32 1209.78 85.32 Q 1209.03 85.32 1208.01 85.9 L 1208.01 85.05 Q 1208.97 84.59 1209.92 84.59 Q 1210.94 84.59 1211.55 85.14 Q 1212.17 85.69 1212.17 86.59 Q 1212.17 87.24 1211.86 87.74 Q 1211.55 88.25 1210.7 88.96 L 1210.33 89.28 Q 1209.17 90.26 1208.99 91.16 L 1212.13 91.16 L 1212.13 92 M 1207.83 92"/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1216.83 92 L 1216.83 91.16 Q 1217.25 90.17 1218.53 89.02 L 1219.08 88.52 Q 1220.15 87.56 1220.15 86.61 Q 1220.15 86.01 1219.78 85.66 Q 1219.42 85.32 1218.78 85.32 Q 1218.03 85.32 1217.01 85.9 L 1217.01 85.05 Q 1217.97 84.59 1218.92 84.59 Q 1219.94 84.59 1220.55 85.14 Q 1221.17 85.69 1221.17 86.59 Q 1221.17 87.24 1220.86 87.74 Q 1220.55 88.25 1219.7 88.96 L 1219.33 89.28 Q 1218.17 90.26 1217.99 91.16 L 1221.13 91.16 L 1221.13 92 M 1216.83 92"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1226.5 92 L 1226.5 91.28 L 1227.95 91.28 L 1227.95 85.57 L 1226.5 85.94 L 1226.5 85.19 L 1228.92 84.59 L 1228.92 91.28 L 1230.36 91.28 L 1230.36 92 M 1226.5 92"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1235.02 91.95 L 1235.02 91.05 Q 1236.05 91.46 1236.65 91.46 Q 1237.33 91.46 1237.77 91.06 Q 1238.2 90.65 1238.2 90.01 Q 1238.2 88.49 1236.07 88.49 L 1235.68 88.49 L 1235.68 87.84 L 1236.02 87.83 Q 1238.02 87.83 1238.02 86.42 Q 1238.02 85.32 1236.71 85.32 Q 1235.98 85.32 1235.11 85.72 L 1235.11 84.88 Q 1235.97 84.59 1236.77 84.59 Q 1238.99 84.59 1238.99 86.27 Q 1238.99 87.54 1237.48 88.08 Q 1239.23 88.49 1239.23 90 Q 1239.23 91.02 1238.56 91.6 Q 1237.88 92.18 1236.71 92.18 Q 1236.04 92.18 1235.02 91.95 M 1235.02 91.95"/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1243.83 92 L 1243.83 91.16 Q 1244.25 90.17 1245.53 89.02 L 1246.08 88.52 Q 1247.15 87.56 1247.15 86.61 Q 1247.15 86.01 1246.78 85.66 Q 1246.42 85.32 1245.78 85.32 Q 1245.03 85.32 1244.01 85.9 L 1244.01 85.05 Q 1244.97 84.59 1245.92 84.59 Q 1246.94 84.59 1247.55 85.14 Q 1248.17 85.69 1248.17 86.59 Q 1248.17 87.24 1247.86 87.74 Q 1247.55 88.25 1246.7 88.96 L 1246.33 89.28 Q 1245.17 90.26 1244.99 91.16 L 1248.13 91.16 L 1248.13 92 M 1243.83 92"/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1252.83 92 L 1252.83 91.16 Q 1253.25 90.17 1254.53 89.02 L 1255.08 88.52 Q 1256.15 87.56 1256.15 86.61 Q 1256.15 86.01 1255.78 85.66 Q 1255.42 85.32 1254.78 85.32 Q 1254.03 85.32 1253.01 85.9 L 1253.01 85.05 Q 1253.97 84.59 1254.92 84.59 Q 1255.94 84.59 1256.55 85.14 Q 1257.17 85.69 1257.17 86.59 Q 1257.17 87.24 1256.86 87.74 Q 1256.55 88.25 1255.7 88.96 L 1255.33 89.28 Q 1254.17 90.26 1253.99 91.16 L 1257.13 91.16 L 1257.13 92 M 1252.83 92"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1264.13 92.18 Q 1263.02 92.18 1262.33 91.13 Q 1261.63 90.08 1261.63 88.38 Q 1261.63 86.67 1262.33 85.63 Q 1263.03 84.59 1264.16 84.59 Q 1265.3 84.59 1266 85.63 Q 1266.69 86.67 1266.69 88.37 Q 1266.69 90.11 1266 91.14 Q 1265.3 92.18 1264.13 92.18 M 1264.13 92.18 M 1264.14 91.46 Q 1265.67 91.46 1265.67 88.35 Q 1265.67 85.32 1264.16 85.32 Q 1262.66 85.32 1262.66 88.38 Q 1262.66 91.46 1264.14 91.46 M 1264.14 91.46"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1271.5 92 L 1271.5 91.28 L 1272.95 91.28 L 1272.95 85.57 L 1271.5 85.94 L 1271.5 85.19 L 1273.92 84.59 L 1273.92 91.28 L 1275.36 91.28 L 1275.36 92 M 1271.5 92"/></g><g style="fill: rgb(141,83,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1282.76 92 L 1282.76 89.95 L 1279.51 89.95 L 1279.51 89.23 L 1282.76 84.77 L 1283.67 84.77 L 1283.67 89.17 L 1284.63 89.17 L 1284.63 89.95 L 1283.67 89.95 L 1283.67 92 M 1282.76 92 M 1280.46 89.17 L 1282.83 89.17 L 1282.83 85.96 M 1280.46 89.17"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1289.02 91.95 L 1289.02 91.05 Q 1290.05 91.46 1290.65 91.46 Q 1291.33 91.46 1291.77 91.06 Q 1292.2 90.65 1292.2 90.01 Q 1292.2 88.49 1290.07 88.49 L 1289.68 88.49 L 1289.68 87.84 L 1290.02 87.83 Q 1292.02 87.83 1292.02 86.42 Q 1292.02 85.32 1290.71 85.32 Q 1289.98 85.32 1289.11 85.72 L 1289.11 84.88 Q 1289.97 84.59 1290.77 84.59 Q 1292.99 84.59 1292.99 86.27 Q 1292.99 87.54 1291.48 88.08 Q 1293.23 88.49 1293.23 90 Q 1293.23 91.02 1292.56 91.6 Q 1291.88 92.18 1290.71 92.18 Q 1290.04 92.18 1289.02 91.95 M 1289.02 91.95"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1298.5 92 L 1298.5 91.28 L 1299.95 91.28 L 1299.95 85.57 L 1298.5 85.94 L 1298.5 85.19 L 1300.92 84.59 L 1300.92 91.28 L 1302.36 91.28 L 1302.36 92 M 1298.5 92"/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1306.83 92 L 1306.83 91.16 Q 1307.25 90.17 1308.53 89.02 L 1309.08 88.52 Q 1310.15 87.56 1310.15 86.61 Q 1310.15 86.01 1309.78 85.66 Q 1309.42 85.32 1308.78 85.32 Q 1308.03 85.32 1307.01 85.9 L 1307.01 85.05 Q 1307.97 84.59 1308.92 84.59 Q 1309.94 84.59 1310.55 85.14 Q 1311.17 85.69 1311.17 86.59 Q 1311.17 87.24 1310.86 87.74 Q 1310.55 88.25 1309.7 88.96 L 1309.33 89.28 Q 1308.17 90.26 1307.99 91.16 L 1311.13 91.16 L 1311.13 92 M 1306.83 92"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1316.02 91.95 L 1316.02 91.05 Q 1317.05 91.46 1317.65 91.46 Q 1318.33 91.46 1318.77 91.06 Q 1319.2 90.65 1319.2 90.01 Q 1319.2 88.49 1317.07 88.49 L 1316.68 88.49 L 1316.68 87.84 L 1317.02 87.83 Q 1319.02 87.83 1319.02 86.42 Q 1319.02 85.32 1317.71 85.32 Q 1316.98 85.32 1316.11 85.72 L 1316.11 84.88 Q 1316.97 84.59 1317.77 84.59 Q 1319.99 84.59 1319.99 86.27 Q 1319.99 87.54 1318.48 88.08 Q 1320.23 88.49 1320.23 90 Q 1320.23 91.02 1319.56 91.6 Q 1318.88 92.18 1317.71 92.18 Q 1317.04 92.18 1316.02 91.95 M 1316.02 91.95"/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1324.83 92 L 1324.83 91.16 Q 1325.25 90.17 1326.53 89.02 L 1327.08 88.52 Q 1328.15 87.56 1328.15 86.61 Q 1328.15 86.01 1327.78 85.66 Q 1327.42 85.32 1326.78 85.32 Q 1326.03 85.32 1325.01 85.9 L 1325.01 85.05 Q 1325.97 84.59 1326.92 84.59 Q 1327.94 84.59 1328.55 85.14 Q 1329.17 85.69 1329.17 86.59 Q 1329.17 87.24 1328.86 87.74 Q 1328.55 88.25 1327.7 88.96 L 1327.33 89.28 Q 1326.17 90.26 1325.99 91.16 L 1329.13 91.16 L 1329.13 92 M 1324.83 92"/></g><g style="fill: rgb(158,104,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1334.22 92.03 L 1334.22 91.17 Q 1334.93 91.46 1335.58 91.46 Q 1336.3 91.46 1336.7 91.04 Q 1337.11 90.62 1337.11 89.88 Q 1337.11 88.25 1334.87 88.25 Q 1334.62 88.25 1334.34 88.29 L 1334.34 84.77 L 1338 84.77 L 1338 85.61 L 1335.18 85.61 L 1335.18 87.52 Q 1336.57 87.52 1337.36 88.16 Q 1338.14 88.8 1338.14 89.93 Q 1338.14 90.98 1337.43 91.58 Q 1336.72 92.18 1335.46 92.18 Q 1334.91 92.18 1334.22 92.03 M 1334.22 92.03"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1343.02 91.95 L 1343.02 91.05 Q 1344.05 91.46 1344.65 91.46 Q 1345.33 91.46 1345.77 91.06 Q 1346.2 90.65 1346.2 90.01 Q 1346.2 88.49 1344.07 88.49 L 1343.68 88.49 L 1343.68 87.84 L 1344.02 87.83 Q 1346.02 87.83 1346.02 86.42 Q 1346.02 85.32 1344.71 85.32 Q 1343.98 85.32 1343.11 85.72 L 1343.11 84.88 Q 1343.97 84.59 1344.77 84.59 Q 1346.99 84.59 1346.99 86.27 Q 1346.99 87.54 1345.48 88.08 Q 1347.23 88.49 1347.23 90 Q 1347.23 91.02 1346.56 91.6 Q 1345.88 92.18 1344.71 92.18 Q 1344.04 92.18 1343.02 91.95 M 1343.02 91.95"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1352.02 91.95 L 1352.02 91.05 Q 1353.05 91.46 1353.65 91.46 Q 1354.33 91.46 1354.77 91.06 Q 1355.2 90.65 1355.2 90.01 Q 1355.2 88.49 1353.07 88.49 L 1352.68 88.49 L 1352.68 87.84 L 1353.02 87.83 Q 1355.02 87.83 1355.02 86.42 Q 1355.02 85.32 1353.71 85.32 Q 1352.98 85.32 1352.11 85.72 L 1352.11 84.88 Q 1352.97 84.59 1353.77 84.59 Q 1355.99 84.59 1355.99 86.27 Q 1355.99 87.54 1354.48 88.08 Q 1356.23 88.49 1356.23 90 Q 1356.23 91.02 1355.56 91.6 Q 1354.88 92.18 1353.71 92.18 Q 1353.04 92.18 1352.02 91.95 M 1352.02 91.95"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1363.13 92.18 Q 1362.02 92.18 1361.33 91.13 Q 1360.63 90.08 1360.63 88.38 Q 1360.63 86.67 1361.33 85.63 Q 1362.03 84.59 1363.16 84.59 Q 1364.3 84.59 1365 85.63 Q 1365.69 86.67 1365.69 88.37 Q 1365.69 90.11 1365 91.14 Q 1364.3 92.18 1363.13 92.18 M 1363.13 92.18 M 1363.14 91.46 Q 1364.67 91.46 1364.67 88.35 Q 1364.67 85.32 1363.16 85.32 Q 1361.66 85.32 1361.66 88.38 Q 1361.66 91.46 1363.14 91.46 M 1363.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1372.13 92.18 Q 1371.02 92.18 1370.33 91.13 Q 1369.63 90.08 1369.63 88.38 Q 1369.63 86.67 1370.33 85.63 Q 1371.03 84.59 1372.16 84.59 Q 1373.3 84.59 1374 85.63 Q 1374.69 86.67 1374.69 88.37 Q 1374.69 90.11 1374 91.14 Q 1373.3 92.18 1372.13 92.18 M 1372.13 92.18 M 1372.14 91.46 Q 1373.67 91.46 1373.67 88.35 Q 1373.67 85.32 1372.16 85.32 Q 1370.66 85.32 1370.66 88.38 Q 1370.66 91.46 1372.14 91.46 M 1372.14 91.46"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1379.5 92 L 1379.5 91.28 L 1380.95 91.28 L 1380.95 85.57 L 1379.5 85.94 L 1379.5 85.19 L 1381.92 84.59 L 1381.92 91.28 L 1383.36 91.28 L 1383.36 92 M 1379.5 92"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1390.13 92.18 Q 1389.02 92.18 1388.33 91.13 Q 1387.63 90.08 1387.63 88.38 Q 1387.63 86.67 1388.33 85.63 Q 1389.03 84.59 1390.16 84.59 Q 1391.3 84.59 1392 85.63 Q 1392.69 86.67 1392.69 88.37 Q 1392.69 90.11 1392 91.14 Q 1391.3 92.18 1390.13 92.18 M 1390.13 92.18 M 1390.14 91.46 Q 1391.67 91.46 1391.67 88.35 Q 1391.67 85.32 1390.16 85.32 Q 1388.66 85.32 1388.66 88.38 Q 1388.66 91.46 1390.14 91.46 M 1390.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1396.72 89.47 L 1396.72 88.75 L 1401.06 88.75 L 1401.06 89.47 M 1396.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1405.72 89.47 L 1405.72 88.75 L 1410.06 88.75 L 1410.06 89.47 M 1405.72 89.47"/></g><line x1="0" y1="82" x2="1413" y2="82" style="stroke-width: 1.0;stroke: rgb(128,128,128);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,214)" /><rect x="0" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="9" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="126" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="135" y="75" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="153" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="171" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="225" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="360" y="75" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="369" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="378" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="387" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="414" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="432" y="75" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="513" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="531" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="540" y="57" width="9" height="25" style="fill: rgb(190,146,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="549" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="558" y="61" width="9" height="21" style="fill: rgb(174,125,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="567" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="576" y="61" width="9" height="21" style="fill: rgb(174,125,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="585" y="53" width="9" height="29" style="fill: rgb(206,167,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="594" y="50" width="9" height="32" style="fill: rgb(223,188,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="603" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="612" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="621" y="57" width="9" height="25" style="fill: rgb(190,146,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="630" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="639" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="648" y="61" width="9" height="21" style="fill: rgb(174,125,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="657" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="666" y="57" width="9" height="25" style="fill: rgb(190,146,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="675" y="57" width="9" height="25" style="fill: rgb(190,146,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="684" y="50" width="9" height="32" style="fill: rgb(223,188,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="693" y="64" width="9" height="18" style="fill: rgb(158,104,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="702" y="61" width="9" height="21" style="fill: rgb(174,125,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="711" y="53" width="9" height="29" style="fill: rgb(206,167,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="720" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="729" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="738" y="50" width="9" height="32" style="fill: rgb(223,188,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="747" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="756" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="765" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="774" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="783" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="792" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="801" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="810" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="819" y="64" width="9" height="18" style="fill: rgb(158,104,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="828" y="50" width="9" height="32" style="fill: rgb(223,188,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="837" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="846" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="855" y="50" width="9" height="32" style="fill: rgb(223,188,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="864" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="873" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="882" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="891" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="900" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="909" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="918" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="927" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="936" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="945" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="954" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="963" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="972" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="981" y="50" width="9" height="32" style="fill: rgb(223,188,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="990" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="999" y="57" width="9" height="25" style="fill: rgb(190,146,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1008" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1017" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1026" y="50" width="9" height="32" style="fill: rgb(223,188,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1035" y="53" width="9" height="29" style="fill: rgb(206,167,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1044" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1053" y="61" width="9" height="21" style="fill: rgb(174,125,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1062" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1071" y="68" width="9" height="14" style="fill: rgb(141,83,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1080" y="64" width="9" height="18" style="fill: rgb(158,104,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1089" y="50" width="9" height="32" style="fill: rgb(223,188,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1098" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1107" y="53" width="9" height="29" style="fill: rgb(206,167,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1116" y="50" width="9" height="32" style="fill: rgb(223,188,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1134" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1170" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1179" y="75" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1188" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1197" y="75" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1206" y="75" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1215" y="75" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1224" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1233" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1242" y="75" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1251" y="75" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1269" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1278" y="68" width="9" height="14" style="fill: rgb(141,83,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1287" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1296" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1305" y="75" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1314" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1323" y="75" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1332" y="64" width="9" height="18" style="fill: rgb(158,104,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1341" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1350" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1377" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(203,162,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(209,170,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(139,80,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(150,94,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(86,12,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(86,12,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(92,20,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(97,27,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(156,102,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(153,98,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(144,86,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(138,79,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(119,55,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(165,113,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(193,150,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(185,139,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(195,153,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(143,86,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(168,118,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(117,52,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(138,79,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(120,56,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(114,48,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(158,104,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(126,64,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(106,38,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(152,97,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(149,94,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(87,14,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(145,87,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(119,55,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(92,19,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(96,25,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(111,44,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(116,50,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(90,18,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(85,11,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(86,12,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(170,120,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(145,88,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(141,83,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(173,124,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(137,78,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(164,112,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(185,140,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(86,12,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(165,113,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(121,57,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(105,37,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(161,108,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(103,35,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(119,55,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(103,34,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(137,78,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(136,77,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(157,103,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(156,102,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(218,182,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(226,192,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(222,187,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(194,151,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(250,223,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(203,163,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(141,83,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(80,5,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(167,116,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(214,177,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(206,166,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(147,91,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(218,182,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(243,214,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(248,221,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(118,54,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(125,62,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(90,18,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(244,215,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(249,221,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(248,220,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(169,118,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(197,155,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(181,135,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(248,220,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(223,189,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(201,160,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(140,81,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(217,180,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(247,219,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(243,214,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(244,215,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(174,125,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(237,206,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(130,69,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(128,66,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(141,82,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(235,204,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(138,78,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(236,205,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(235,204,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(239,209,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(231,198,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(155,100,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(240,210,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(227,194,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(235,203,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(163,111,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(199,158,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(232,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(236,205,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(193,149,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(234,203,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(234,203,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(239,209,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(234,202,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(227,194,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(234,203,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(182,136,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(182,136,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(224,190,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(168,118,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(136,76,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(86,12,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><line x1="0" y1="135" x2="1413" y2="135" style="stroke-width: 1.0;stroke: rgb(128,128,128);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,214)" /><rect x="0" y="107" width="9" height="28" style="fill: rgb(203,162,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="9" y="106" width="9" height="29" style="fill: rgb(209,170,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="18" y="122" width="9" height="13" style="fill: rgb(139,80,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="27" y="119" width="9" height="16" style="fill: rgb(150,94,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="36" y="133" width="9" height="2" style="fill: rgb(86,12,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="45" y="133" width="9" height="2" style="fill: rgb(86,12,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="54" y="132" width="9" height="3" style="fill: rgb(92,20,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="63" y="131" width="9" height="4" style="fill: rgb(97,27,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="72" y="118" width="9" height="17" style="fill: rgb(156,102,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="81" y="118" width="9" height="17" style="fill: rgb(153,98,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="90" y="128" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="99" y="120" width="9" height="15" style="fill: rgb(144,86,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="108" y="122" width="9" height="13" style="fill: rgb(138,79,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="117" y="126" width="9" height="9" style="fill: rgb(119,55,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="126" y="116" width="9" height="19" style="fill: rgb(165,113,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="135" y="109" width="9" height="26" style="fill: rgb(193,150,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="144" y="111" width="9" height="24" style="fill: rgb(185,139,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="153" y="109" width="9" height="26" style="fill: rgb(195,153,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="162" y="121" width="9" height="14" style="fill: rgb(143,86,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="171" y="115" width="9" height="20" style="fill: rgb(168,118,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="180" y="126" width="9" height="9" style="fill: rgb(117,52,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="189" y="122" width="9" height="13" style="fill: rgb(138,79,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="198" y="126" width="9" height="9" style="fill: rgb(120,56,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="207" y="127" width="9" height="8" style="fill: rgb(114,48,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="216" y="117" width="9" height="18" style="fill: rgb(158,104,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="225" y="124" width="9" height="11" style="fill: rgb(126,64,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="234" y="129" width="9" height="6" style="fill: rgb(106,38,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="243" y="119" width="9" height="16" style="fill: rgb(152,97,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="252" y="119" width="9" height="16" style="fill: rgb(149,94,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="261" y="133" width="9" height="2" style="fill: rgb(87,14,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="270" y="120" width="9" height="15" style="fill: rgb(145,87,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="279" y="126" width="9" height="9" style="fill: rgb(119,55,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="288" y="132" width="9" height="3" style="fill: rgb(92,19,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="297" y="131" width="9" height="4" style="fill: rgb(96,25,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="306" y="128" width="9" height="7" style="fill: rgb(111,44,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="324" y="127" width="9" height="8" style="fill: rgb(116,50,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="333" y="132" width="9" height="3" style="fill: rgb(90,18,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="342" y="134" width="9" height="1" style="fill: rgb(85,11,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="351" y="133" width="9" height="2" style="fill: rgb(86,12,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="360" y="115" width="9" height="20" style="fill: rgb(170,120,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="369" y="120" width="9" height="15" style="fill: rgb(145,88,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="378" y="121" width="9" height="14" style="fill: rgb(141,83,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="387" y="114" width="9" height="21" style="fill: rgb(173,124,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="396" y="122" width="9" height="13" style="fill: rgb(137,78,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="405" y="116" width="9" height="19" style="fill: rgb(164,112,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="414" y="111" width="9" height="24" style="fill: rgb(185,140,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="423" y="133" width="9" height="2" style="fill: rgb(86,12,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="432" y="116" width="9" height="19" style="fill: rgb(165,113,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="441" y="126" width="9" height="9" style="fill: rgb(121,57,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="450" y="129" width="9" height="6" style="fill: rgb(105,37,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="459" y="117" width="9" height="18" style="fill: rgb(161,108,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="468" y="129" width="9" height="6" style="fill: rgb(103,35,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="477" y="126" width="9" height="9" style="fill: rgb(119,55,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="486" y="130" width="9" height="5" style="fill: rgb(103,34,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="495" y="122" width="9" height="13" style="fill: rgb(137,78,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="504" y="122" width="9" height="13" style="fill: rgb(136,77,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="513" y="118" width="9" height="17" style="fill: rgb(157,103,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="522" y="118" width="9" height="17" style="fill: rgb(156,102,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="531" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="540" y="104" width="9" height="31" style="fill: rgb(218,182,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="549" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="558" y="102" width="9" height="33" style="fill: rgb(226,192,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="567" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="576" y="103" width="9" height="32" style="fill: rgb(222,187,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="585" y="109" width="9" height="26" style="fill: rgb(194,151,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="594" y="97" width="9" height="38" style="fill: rgb(250,223,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="603" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="612" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="621" y="107" width="9" height="28" style="fill: rgb(203,163,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="630" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="639" y="121" width="9" height="14" style="fill: rgb(141,83,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="657" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="666" y="115" width="9" height="20" style="fill: rgb(167,116,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="675" y="105" width="9" height="30" style="fill: rgb(214,177,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="684" y="107" width="9" height="28" style="fill: rgb(206,166,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="693" y="120" width="9" height="15" style="fill: rgb(147,91,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="702" y="104" width="9" height="31" style="fill: rgb(218,182,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="711" y="98" width="9" height="37" style="fill: rgb(243,214,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="720" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="729" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="738" y="97" width="9" height="38" style="fill: rgb(248,221,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="747" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="756" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="765" y="126" width="9" height="9" style="fill: rgb(118,54,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="774" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="783" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="792" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="801" y="125" width="9" height="10" style="fill: rgb(125,62,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="810" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="819" y="132" width="9" height="3" style="fill: rgb(90,18,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="828" y="98" width="9" height="37" style="fill: rgb(244,215,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="837" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="846" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="855" y="97" width="9" height="38" style="fill: rgb(249,221,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="864" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="873" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="882" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="891" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="900" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="909" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="918" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="927" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="936" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="945" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="954" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="963" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="972" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="981" y="97" width="9" height="38" style="fill: rgb(248,220,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="990" y="115" width="9" height="20" style="fill: rgb(169,118,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="999" y="109" width="9" height="26" style="fill: rgb(197,155,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1008" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1017" y="112" width="9" height="23" style="fill: rgb(181,135,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1026" y="97" width="9" height="38" style="fill: rgb(248,220,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1035" y="103" width="9" height="32" style="fill: rgb(223,189,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1044" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1053" y="108" width="9" height="27" style="fill: rgb(201,160,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1062" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1071" y="121" width="9" height="14" style="fill: rgb(140,81,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1080" y="104" width="9" height="31" style="fill: rgb(217,180,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1089" y="97" width="9" height="38" style="fill: rgb(247,219,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1098" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1107" y="98" width="9" height="37" style="fill: rgb(243,214,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1116" y="98" width="9" height="37" style="fill: rgb(244,215,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1125" y="114" width="9" height="21" style="fill: rgb(174,125,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1134" y="100" width="9" height="35" style="fill: rgb(237,206,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1143" y="124" width="9" height="11" style="fill: rgb(130,69,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1152" y="124" width="9" height="11" style="fill: rgb(128,66,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1161" y="121" width="9" height="14" style="fill: rgb(141,82,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1170" y="100" width="9" height="35" style="fill: rgb(235,204,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1179" y="122" width="9" height="13" style="fill: rgb(138,78,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1188" y="100" width="9" height="35" style="fill: rgb(236,205,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1197" y="100" width="9" height="35" style="fill: rgb(235,204,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1206" y="99" width="9" height="36" style="fill: rgb(239,209,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1215" y="101" width="9" height="34" style="fill: rgb(231,198,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1224" y="118" width="9" height="17" style="fill: rgb(155,100,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1233" y="99" width="9" height="36" style="fill: rgb(240,210,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1242" y="102" width="9" height="33" style="fill: rgb(227,194,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1251" y="100" width="9" height="35" style="fill: rgb(235,203,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1260" y="116" width="9" height="19" style="fill: rgb(163,111,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1269" y="108" width="9" height="27" style="fill: rgb(199,158,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1278" y="101" width="9" height="34" style="fill: rgb(232,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1287" y="100" width="9" height="35" style="fill: rgb(236,205,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1296" y="109" width="9" height="26" style="fill: rgb(193,149,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1305" y="100" width="9" height="35" style="fill: rgb(234,203,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1314" y="100" width="9" height="35" style="fill: rgb(234,203,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1323" y="99" width="9" height="36" style="fill: rgb(239,209,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1332" y="100" width="9" height="35" style="fill: rgb(234,202,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1341" y="102" width="9" height="33" style="fill: rgb(227,194,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1350" y="100" width="9" height="35" style="fill: rgb(234,203,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1359" y="112" width="9" height="23" style="fill: rgb(182,136,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1368" y="112" width="9" height="23" style="fill: rgb(182,136,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1377" y="102" width="9" height="33" style="fill: rgb(224,190,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1386" y="115" width="9" height="20" style="fill: rgb(168,118,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1395" y="122" width="9" height="13" style="fill: rgb(136,76,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1404" y="133" width="9" height="2" style="fill: rgb(86,12,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 0.93 198 L 0.93 190.77 L 2.35 190.77 L 4.36 196.36 L 6.42 190.77 L 7.69 190.77 L 7.69 198 L 6.73 198 L 6.73 192.12 L 4.74 197.52 L 3.75 197.52 L 1.81 192.11 L 1.81 198 M 0.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 14.59 195.24 L 13.36 192.12 L 12.13 195.24 M 14.59 195.24 M 15.68 198 L 14.89 196 L 11.83 196 L 11.04 198 L 10.08 198 L 12.95 190.77 L 13.96 190.77 L 16.79 198 M 15.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 21.61 198 L 21.61 195.47 L 19.08 195.47 L 19.08 194.75 L 21.61 194.75 L 21.61 192.22 L 22.34 192.22 L 22.34 194.75 L 24.87 194.75 L 24.87 195.47 L 22.34 195.47 L 22.34 198 M 21.61 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 30.65 198 L 30.65 191.54 L 28.09 191.54 L 28.09 190.77 L 34.24 190.77 L 34.24 191.54 L 31.68 191.54 L 31.68 198 M 30.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 38.93 198 L 38.93 190.77 L 39.96 190.77 L 39.96 197.23 L 43.21 197.23 L 43.21 198 M 38.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 52.36 197.8 Q 51.05 198.18 50.07 198.18 Q 48.35 198.18 47.43 197.2 Q 46.51 196.22 46.51 194.39 Q 46.51 192.59 47.44 191.59 Q 48.37 190.59 50.06 190.59 Q 51.16 190.59 52.35 190.92 L 52.35 191.87 Q 50.86 191.36 50.06 191.36 Q 48.89 191.36 48.24 192.16 Q 47.6 192.95 47.6 194.4 Q 47.6 195.83 48.29 196.62 Q 48.98 197.41 50.23 197.41 Q 50.75 197.41 51.34 197.23 L 51.34 194.88 L 52.36 194.88 M 52.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 57.65 198 L 57.65 191.54 L 55.09 191.54 L 55.09 190.77 L 61.24 190.77 L 61.24 191.54 L 58.68 191.54 L 58.68 198 M 57.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 64.93 198 L 64.93 190.77 L 66.9 190.77 Q 68.21 190.77 68.78 191.22 Q 69.35 191.66 69.35 192.67 Q 69.35 193.82 68.57 194.47 Q 67.79 195.13 66.4 195.13 L 65.95 195.13 L 65.95 198 M 64.93 198 M 65.95 194.35 L 66.36 194.35 Q 67.28 194.35 67.77 193.93 Q 68.27 193.51 68.27 192.75 Q 68.27 192.1 67.88 191.82 Q 67.49 191.54 66.58 191.54 L 65.95 191.54 M 65.95 194.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 77.59 195.24 L 76.36 192.12 L 75.13 195.24 M 77.59 195.24 M 78.68 198 L 77.89 196 L 74.83 196 L 74.04 198 L 73.08 198 L 75.95 190.77 L 76.96 190.77 L 79.79 198 M 78.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 83.93 198 L 83.93 190.77 L 84.96 190.77 L 84.96 197.23 L 88.21 197.23 L 88.21 198 M 83.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 94.35 198.18 Q 93.62 198.18 92.49 197.86 L 92.49 196.85 Q 93.71 197.41 94.5 197.41 Q 95.1 197.41 95.47 197.1 Q 95.84 196.78 95.84 196.26 Q 95.84 195.84 95.6 195.54 Q 95.35 195.24 94.71 194.88 L 94.21 194.59 Q 93.28 194.06 92.91 193.59 Q 92.53 193.13 92.53 192.51 Q 92.53 191.67 93.13 191.13 Q 93.74 190.59 94.68 190.59 Q 95.51 190.59 96.44 190.87 L 96.44 191.81 Q 95.3 191.36 94.73 191.36 Q 94.2 191.36 93.86 191.64 Q 93.51 191.93 93.51 192.36 Q 93.51 192.72 93.76 193 Q 94.02 193.27 94.69 193.66 L 95.21 193.95 Q 96.15 194.48 96.52 194.96 Q 96.89 195.43 96.89 196.1 Q 96.89 197.04 96.19 197.61 Q 95.5 198.18 94.35 198.18 M 94.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 106.36 197.8 Q 105.05 198.18 104.07 198.18 Q 102.35 198.18 101.43 197.2 Q 100.51 196.22 100.51 194.39 Q 100.51 192.59 101.44 191.59 Q 102.37 190.59 104.06 190.59 Q 105.16 190.59 106.35 190.92 L 106.35 191.87 Q 104.86 191.36 104.06 191.36 Q 102.89 191.36 102.24 192.16 Q 101.6 192.95 101.6 194.4 Q 101.6 195.83 102.29 196.62 Q 102.98 197.41 104.23 197.41 Q 104.75 197.41 105.34 197.23 L 105.34 194.88 L 106.36 194.88 M 106.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 111.65 198 L 111.65 191.54 L 109.09 191.54 L 109.09 190.77 L 115.24 190.77 L 115.24 191.54 L 112.68 191.54 L 112.68 198 M 111.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 120.61 198 L 120.61 195.47 L 118.08 195.47 L 118.08 194.75 L 120.61 194.75 L 120.61 192.22 L 121.34 192.22 L 121.34 194.75 L 123.87 194.75 L 123.87 195.47 L 121.34 195.47 L 121.34 198 M 120.61 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 129.91 198 L 127.18 190.77 L 128.2 190.77 L 130.44 196.69 L 132.6 190.77 L 133.49 190.77 L 130.87 198 M 129.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 139.35 198.18 Q 138.62 198.18 137.49 197.86 L 137.49 196.85 Q 138.71 197.41 139.5 197.41 Q 140.1 197.41 140.47 197.1 Q 140.84 196.78 140.84 196.26 Q 140.84 195.84 140.6 195.54 Q 140.35 195.24 139.71 194.88 L 139.21 194.59 Q 138.28 194.06 137.91 193.59 Q 137.53 193.13 137.53 192.51 Q 137.53 191.67 138.13 191.13 Q 138.74 190.59 139.68 190.59 Q 140.51 190.59 141.44 190.87 L 141.44 191.81 Q 140.3 191.36 139.73 191.36 Q 139.2 191.36 138.86 191.64 Q 138.51 191.93 138.51 192.36 Q 138.51 192.72 138.76 193 Q 139.02 193.27 139.69 193.66 L 140.21 193.95 Q 141.15 194.48 141.52 194.96 Q 141.89 195.43 141.89 196.1 Q 141.89 197.04 141.19 197.61 Q 140.5 198.18 139.35 198.18 M 139.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 147.65 198 L 147.65 191.54 L 145.09 191.54 L 145.09 190.77 L 151.24 190.77 L 151.24 191.54 L 148.68 191.54 L 148.68 198 M 147.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 157.35 198.18 Q 156.62 198.18 155.49 197.86 L 155.49 196.85 Q 156.71 197.41 157.5 197.41 Q 158.1 197.41 158.47 197.1 Q 158.84 196.78 158.84 196.26 Q 158.84 195.84 158.6 195.54 Q 158.35 195.24 157.71 194.88 L 157.21 194.59 Q 156.28 194.06 155.91 193.59 Q 155.53 193.13 155.53 192.51 Q 155.53 191.67 156.13 191.13 Q 156.74 190.59 157.68 190.59 Q 158.51 190.59 159.44 190.87 L 159.44 191.81 Q 158.3 191.36 157.73 191.36 Q 157.2 191.36 156.86 191.64 Q 156.51 191.93 156.51 192.36 Q 156.51 192.72 156.76 193 Q 157.02 193.27 157.69 193.66 L 158.21 193.95 Q 159.15 194.48 159.52 194.96 Q 159.89 195.43 159.89 196.1 Q 159.89 197.04 159.19 197.61 Q 158.5 198.18 157.35 198.18 M 157.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 164.93 198 L 164.93 190.77 L 168.97 190.77 L 168.97 191.54 L 165.96 191.54 L 165.96 193.96 L 168.49 193.96 L 168.49 194.72 L 165.96 194.72 L 165.96 198 M 164.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 173.93 198 L 173.93 190.77 L 174.96 190.77 L 174.96 197.23 L 178.21 197.23 L 178.21 198 M 173.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 181.93 198 L 181.93 190.77 L 184.12 190.77 Q 185.16 190.77 185.71 191.23 Q 186.27 191.69 186.27 192.57 Q 186.27 194.01 184.81 194.62 L 187.22 198 L 185.96 198 L 183.91 194.94 L 182.95 194.94 L 182.95 198 M 181.93 198 M 182.95 194.18 L 183.28 194.18 Q 185.21 194.18 185.21 192.66 Q 185.21 191.54 183.59 191.54 L 182.95 191.54 M 182.95 194.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 190.93 198 L 190.93 190.77 L 193.12 190.77 Q 194.16 190.77 194.71 191.23 Q 195.27 191.69 195.27 192.57 Q 195.27 194.01 193.81 194.62 L 196.22 198 L 194.96 198 L 192.91 194.94 L 191.95 194.94 L 191.95 198 M 190.93 198 M 191.95 194.18 L 192.28 194.18 Q 194.21 194.18 194.21 192.66 Q 194.21 191.54 192.59 191.54 L 191.95 191.54 M 191.95 194.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 205.35 199.45 Q 203.64 198.89 202.49 198.13 Q 202.03 198.18 201.78 198.18 Q 200.33 198.18 199.42 197.13 Q 198.51 196.07 198.51 194.39 Q 198.51 192.66 199.43 191.63 Q 200.35 190.59 201.89 190.59 Q 203.43 190.59 204.35 191.63 Q 205.27 192.66 205.27 194.4 Q 205.27 196.89 203.42 197.85 Q 204.66 198.4 206 198.63 M 205.35 199.45 M 201.86 197.41 Q 202.97 197.41 203.57 196.62 Q 204.18 195.82 204.18 194.37 Q 204.18 192.96 203.57 192.16 Q 202.97 191.36 201.89 191.36 Q 200.81 191.36 200.2 192.16 Q 199.6 192.96 199.6 194.38 Q 199.6 195.79 200.2 196.6 Q 200.8 197.41 201.86 197.41 M 201.86 197.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 208.93 198 L 208.93 190.77 L 210.9 190.77 Q 212.21 190.77 212.78 191.22 Q 213.35 191.66 213.35 192.67 Q 213.35 193.82 212.57 194.47 Q 211.79 195.13 210.4 195.13 L 209.95 195.13 L 209.95 198 M 208.93 198 M 209.95 194.35 L 210.36 194.35 Q 211.28 194.35 211.77 193.93 Q 212.27 193.51 212.27 192.75 Q 212.27 192.1 211.88 191.82 Q 211.49 191.54 210.58 191.54 L 209.95 191.54 M 209.95 194.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 221.59 195.24 L 220.36 192.12 L 219.13 195.24 M 221.59 195.24 M 222.68 198 L 221.89 196 L 218.83 196 L 218.04 198 L 217.08 198 L 219.95 190.77 L 220.96 190.77 L 223.79 198 M 222.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 226.93 198 L 226.93 190.77 L 228.9 190.77 Q 230.21 190.77 230.78 191.22 Q 231.35 191.66 231.35 192.67 Q 231.35 193.82 230.57 194.47 Q 229.79 195.13 228.4 195.13 L 227.95 195.13 L 227.95 198 M 226.93 198 M 227.95 194.35 L 228.36 194.35 Q 229.28 194.35 229.77 193.93 Q 230.27 193.51 230.27 192.75 Q 230.27 192.1 229.88 191.82 Q 229.49 191.54 228.58 191.54 L 227.95 191.54 M 227.95 194.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 237.65 198 L 237.65 191.54 L 235.09 191.54 L 235.09 190.77 L 241.24 190.77 L 241.24 191.54 L 238.68 191.54 L 238.68 198 M 237.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 247.35 198.18 Q 246.62 198.18 245.49 197.86 L 245.49 196.85 Q 246.71 197.41 247.5 197.41 Q 248.1 197.41 248.47 197.1 Q 248.84 196.78 248.84 196.26 Q 248.84 195.84 248.6 195.54 Q 248.35 195.24 247.71 194.88 L 247.21 194.59 Q 246.28 194.06 245.91 193.59 Q 245.53 193.13 245.53 192.51 Q 245.53 191.67 246.13 191.13 Q 246.74 190.59 247.68 190.59 Q 248.51 190.59 249.44 190.87 L 249.44 191.81 Q 248.3 191.36 247.73 191.36 Q 247.2 191.36 246.86 191.64 Q 246.51 191.93 246.51 192.36 Q 246.51 192.72 246.76 193 Q 247.02 193.27 247.69 193.66 L 248.21 193.95 Q 249.15 194.48 249.52 194.96 Q 249.89 195.43 249.89 196.1 Q 249.89 197.04 249.19 197.61 Q 248.5 198.18 247.35 198.18 M 247.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 254.93 198 L 254.93 190.77 L 255.96 190.77 L 255.96 197.23 L 259.21 197.23 L 259.21 198 M 254.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 262.93 198 L 262.93 190.77 L 265.12 190.77 Q 266.16 190.77 266.71 191.23 Q 267.27 191.69 267.27 192.57 Q 267.27 194.01 265.81 194.62 L 268.22 198 L 266.96 198 L 264.91 194.94 L 263.95 194.94 L 263.95 198 M 262.93 198 M 263.95 194.18 L 264.28 194.18 Q 266.21 194.18 266.21 192.66 Q 266.21 191.54 264.59 191.54 L 263.95 191.54 M 263.95 194.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 274.35 198.18 Q 273.62 198.18 272.49 197.86 L 272.49 196.85 Q 273.71 197.41 274.5 197.41 Q 275.1 197.41 275.47 197.1 Q 275.84 196.78 275.84 196.26 Q 275.84 195.84 275.6 195.54 Q 275.35 195.24 274.71 194.88 L 274.21 194.59 Q 273.28 194.06 272.91 193.59 Q 272.53 193.13 272.53 192.51 Q 272.53 191.67 273.13 191.13 Q 273.74 190.59 274.68 190.59 Q 275.51 190.59 276.44 190.87 L 276.44 191.81 Q 275.3 191.36 274.73 191.36 Q 274.2 191.36 273.86 191.64 Q 273.51 191.93 273.51 192.36 Q 273.51 192.72 273.76 193 Q 274.02 193.27 274.69 193.66 L 275.21 193.95 Q 276.15 194.48 276.52 194.96 Q 276.89 195.43 276.89 196.1 Q 276.89 197.04 276.19 197.61 Q 275.5 198.18 274.35 198.18 M 274.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 281.93 198 L 281.93 190.77 L 282.96 190.77 L 282.96 197.23 L 286.21 197.23 L 286.21 198 M 281.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 289.93 198 L 289.93 190.77 L 291.9 190.77 Q 293.21 190.77 293.78 191.22 Q 294.35 191.66 294.35 192.67 Q 294.35 193.82 293.57 194.47 Q 292.79 195.13 291.4 195.13 L 290.95 195.13 L 290.95 198 M 289.93 198 M 290.95 194.35 L 291.36 194.35 Q 292.28 194.35 292.77 193.93 Q 293.27 193.51 293.27 192.75 Q 293.27 192.1 292.88 191.82 Q 292.49 191.54 291.58 191.54 L 290.95 191.54 M 290.95 194.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 301.35 198.18 Q 300.62 198.18 299.49 197.86 L 299.49 196.85 Q 300.71 197.41 301.5 197.41 Q 302.1 197.41 302.47 197.1 Q 302.84 196.78 302.84 196.26 Q 302.84 195.84 302.6 195.54 Q 302.35 195.24 301.71 194.88 L 301.21 194.59 Q 300.28 194.06 299.91 193.59 Q 299.53 193.13 299.53 192.51 Q 299.53 191.67 300.13 191.13 Q 300.74 190.59 301.68 190.59 Q 302.51 190.59 303.44 190.87 L 303.44 191.81 Q 302.3 191.36 301.73 191.36 Q 301.2 191.36 300.86 191.64 Q 300.51 191.93 300.51 192.36 Q 300.51 192.72 300.76 193 Q 301.02 193.27 301.69 193.66 L 302.21 193.95 Q 303.15 194.48 303.52 194.96 Q 303.89 195.43 303.89 196.1 Q 303.89 197.04 303.19 197.61 Q 302.5 198.18 301.35 198.18 M 301.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 309.61 198 L 309.61 195.47 L 307.08 195.47 L 307.08 194.75 L 309.61 194.75 L 309.61 192.22 L 310.34 192.22 L 310.34 194.75 L 312.87 194.75 L 312.87 195.47 L 310.34 195.47 L 310.34 198 M 309.61 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 318.91 198 L 316.18 190.77 L 317.2 190.77 L 319.44 196.69 L 321.6 190.77 L 322.49 190.77 L 319.87 198 M 318.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 331.36 197.8 Q 330.05 198.18 329.07 198.18 Q 327.35 198.18 326.43 197.2 Q 325.51 196.22 325.51 194.39 Q 325.51 192.59 326.44 191.59 Q 327.37 190.59 329.06 190.59 Q 330.16 190.59 331.35 190.92 L 331.35 191.87 Q 329.86 191.36 329.06 191.36 Q 327.89 191.36 327.24 192.16 Q 326.6 192.95 326.6 194.4 Q 326.6 195.83 327.29 196.62 Q 327.98 197.41 329.23 197.41 Q 329.75 197.41 330.34 197.23 L 330.34 194.88 L 331.36 194.88 M 331.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 336.61 198 L 336.61 195.47 L 334.08 195.47 L 334.08 194.75 L 336.61 194.75 L 336.61 192.22 L 337.34 192.22 L 337.34 194.75 L 339.87 194.75 L 339.87 195.47 L 337.34 195.47 L 337.34 198 M 336.61 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 344.93 198 L 344.93 190.77 L 348.97 190.77 L 348.97 191.54 L 345.96 191.54 L 345.96 193.96 L 348.49 193.96 L 348.49 194.72 L 345.96 194.72 L 345.96 198 M 344.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 352.93 198 L 352.93 190.77 L 354.9 190.77 Q 356.21 190.77 356.78 191.22 Q 357.35 191.66 357.35 192.67 Q 357.35 193.82 356.57 194.47 Q 355.79 195.13 354.4 195.13 L 353.95 195.13 L 353.95 198 M 352.93 198 M 353.95 194.35 L 354.36 194.35 Q 355.28 194.35 355.77 193.93 Q 356.27 193.51 356.27 192.75 Q 356.27 192.1 355.88 191.82 Q 355.49 191.54 354.58 191.54 L 353.95 191.54 M 353.95 194.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 363.61 198 L 363.61 195.47 L 361.08 195.47 L 361.08 194.75 L 363.61 194.75 L 363.61 192.22 L 364.34 192.22 L 364.34 194.75 L 366.87 194.75 L 366.87 195.47 L 364.34 195.47 L 364.34 198 M 363.61 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 371.93 198 L 371.93 190.77 L 372.96 190.77 L 372.96 197.23 L 376.21 197.23 L 376.21 198 M 371.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 380.93 198 L 380.93 190.77 L 384.97 190.77 L 384.97 191.54 L 381.96 191.54 L 381.96 193.96 L 384.49 193.96 L 384.49 194.72 L 381.96 194.72 L 381.96 198 M 380.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 394.36 197.8 Q 393.05 198.18 392.07 198.18 Q 390.35 198.18 389.43 197.2 Q 388.51 196.22 388.51 194.39 Q 388.51 192.59 389.44 191.59 Q 390.37 190.59 392.06 190.59 Q 393.16 190.59 394.35 190.92 L 394.35 191.87 Q 392.86 191.36 392.06 191.36 Q 390.89 191.36 390.24 192.16 Q 389.6 192.95 389.6 194.4 Q 389.6 195.83 390.29 196.62 Q 390.98 197.41 392.23 197.41 Q 392.75 197.41 393.34 197.23 L 393.34 194.88 L 394.36 194.88 M 394.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 398.93 198 L 398.93 190.77 L 399.96 190.77 L 399.96 197.23 L 403.21 197.23 L 403.21 198 M 398.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 406.93 198 L 406.93 190.77 L 407.89 190.77 L 407.89 194.33 L 410.82 190.77 L 411.85 190.77 L 409.02 194.22 L 412.35 198 L 411.05 198 L 407.89 194.34 L 407.89 198 M 406.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 418.35 198.18 Q 417.62 198.18 416.49 197.86 L 416.49 196.85 Q 417.71 197.41 418.5 197.41 Q 419.1 197.41 419.47 197.1 Q 419.84 196.78 419.84 196.26 Q 419.84 195.84 419.6 195.54 Q 419.35 195.24 418.71 194.88 L 418.21 194.59 Q 417.28 194.06 416.91 193.59 Q 416.53 193.13 416.53 192.51 Q 416.53 191.67 417.13 191.13 Q 417.74 190.59 418.68 190.59 Q 419.51 190.59 420.44 190.87 L 420.44 191.81 Q 419.3 191.36 418.73 191.36 Q 418.2 191.36 417.86 191.64 Q 417.51 191.93 417.51 192.36 Q 417.51 192.72 417.76 193 Q 418.02 193.27 418.69 193.66 L 419.21 193.95 Q 420.15 194.48 420.52 194.96 Q 420.89 195.43 420.89 196.1 Q 420.89 197.04 420.19 197.61 Q 419.5 198.18 418.35 198.18 M 418.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 426.91 198 L 424.18 190.77 L 425.2 190.77 L 427.44 196.69 L 429.6 190.77 L 430.49 190.77 L 427.87 198 M 426.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 436.35 198.18 Q 435.62 198.18 434.49 197.86 L 434.49 196.85 Q 435.71 197.41 436.5 197.41 Q 437.1 197.41 437.47 197.1 Q 437.84 196.78 437.84 196.26 Q 437.84 195.84 437.6 195.54 Q 437.35 195.24 436.71 194.88 L 436.21 194.59 Q 435.28 194.06 434.91 193.59 Q 434.53 193.13 434.53 192.51 Q 434.53 191.67 435.13 191.13 Q 435.74 190.59 436.68 190.59 Q 437.51 190.59 438.44 190.87 L 438.44 191.81 Q 437.3 191.36 436.73 191.36 Q 436.2 191.36 435.86 191.64 Q 435.51 191.93 435.51 192.36 Q 435.51 192.72 435.76 193 Q 436.02 193.27 436.69 193.66 L 437.21 193.95 Q 438.15 194.48 438.52 194.96 Q 438.89 195.43 438.89 196.1 Q 438.89 197.04 438.19 197.61 Q 437.5 198.18 436.35 198.18 M 436.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 444.65 198 L 444.65 191.54 L 442.09 191.54 L 442.09 190.77 L 448.24 190.77 L 448.24 191.54 L 445.68 191.54 L 445.68 198 M 444.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 455.59 195.24 L 454.36 192.12 L 453.13 195.24 M 455.59 195.24 M 456.68 198 L 455.89 196 L 452.83 196 L 452.04 198 L 451.08 198 L 453.95 190.77 L 454.96 190.77 L 457.79 198 M 456.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 460.93 198 L 460.93 190.77 L 463.12 190.77 Q 464.16 190.77 464.71 191.23 Q 465.27 191.69 465.27 192.57 Q 465.27 194.01 463.81 194.62 L 466.22 198 L 464.96 198 L 462.91 194.94 L 461.95 194.94 L 461.95 198 M 460.93 198 M 461.95 194.18 L 462.28 194.18 Q 464.21 194.18 464.21 192.66 Q 464.21 191.54 462.59 191.54 L 461.95 191.54 M 461.95 194.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 475.36 197.8 Q 474.05 198.18 473.07 198.18 Q 471.35 198.18 470.43 197.2 Q 469.51 196.22 469.51 194.39 Q 469.51 192.59 470.44 191.59 Q 471.37 190.59 473.06 190.59 Q 474.16 190.59 475.35 190.92 L 475.35 191.87 Q 473.86 191.36 473.06 191.36 Q 471.89 191.36 471.24 192.16 Q 470.6 192.95 470.6 194.4 Q 470.6 195.83 471.29 196.62 Q 471.98 197.41 473.23 197.41 Q 473.75 197.41 474.34 197.23 L 474.34 194.88 L 475.36 194.88 M 475.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 484.36 197.8 Q 483.05 198.18 482.07 198.18 Q 480.35 198.18 479.43 197.2 Q 478.51 196.22 478.51 194.39 Q 478.51 192.59 479.44 191.59 Q 480.37 190.59 482.06 190.59 Q 483.16 190.59 484.35 190.92 L 484.35 191.87 Q 482.86 191.36 482.06 191.36 Q 480.89 191.36 480.24 192.16 Q 479.6 192.95 479.6 194.4 Q 479.6 195.83 480.29 196.62 Q 480.98 197.41 482.23 197.41 Q 482.75 197.41 483.34 197.23 L 483.34 194.88 L 484.36 194.88 M 484.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 487.93 198 L 487.93 190.77 L 490.12 190.77 Q 491.16 190.77 491.71 191.23 Q 492.27 191.69 492.27 192.57 Q 492.27 194.01 490.81 194.62 L 493.22 198 L 491.96 198 L 489.91 194.94 L 488.95 194.94 L 488.95 198 M 487.93 198 M 488.95 194.18 L 489.28 194.18 Q 491.21 194.18 491.21 192.66 Q 491.21 191.54 489.59 191.54 L 488.95 191.54 M 488.95 194.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 498.91 198 L 496.18 190.77 L 497.2 190.77 L 499.44 196.69 L 501.6 190.77 L 502.49 190.77 L 499.87 198 M 498.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 507.65 198 L 507.65 191.54 L 505.09 191.54 L 505.09 190.77 L 511.24 190.77 L 511.24 191.54 L 508.68 191.54 L 508.68 198 M 507.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 518.59 195.24 L 517.36 192.12 L 516.13 195.24 M 518.59 195.24 M 519.68 198 L 518.89 196 L 515.83 196 L 515.04 198 L 514.08 198 L 516.95 190.77 L 517.96 190.77 L 520.79 198 M 519.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 522.93 198 L 522.93 190.77 L 524.35 190.77 L 526.36 196.36 L 528.42 190.77 L 529.69 190.77 L 529.69 198 L 528.73 198 L 528.73 192.12 L 526.74 197.52 L 525.75 197.52 L 523.81 192.11 L 523.81 198 M 522.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 536.59 195.24 L 535.36 192.12 L 534.13 195.24 M 536.59 195.24 M 537.68 198 L 536.89 196 L 533.83 196 L 533.04 198 L 532.08 198 L 534.95 190.77 L 535.96 190.77 L 538.79 198 M 537.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 543.65 198 L 543.65 191.54 L 541.09 191.54 L 541.09 190.77 L 547.24 190.77 L 547.24 191.54 L 544.68 191.54 L 544.68 198 M 543.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 552.5 198 L 552.5 194.98 L 550.08 190.77 L 551.25 190.77 L 553.13 194.04 L 555.15 190.77 L 556.1 190.77 L 553.52 194.96 L 553.52 198 M 552.5 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 559.93 198 L 559.93 190.77 L 560.89 190.77 L 560.89 194.33 L 563.82 190.77 L 564.85 190.77 L 562.02 194.22 L 565.35 198 L 564.05 198 L 560.89 194.34 L 560.89 198 M 559.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 570.91 198 L 568.18 190.77 L 569.2 190.77 L 571.44 196.69 L 573.6 190.77 L 574.49 190.77 L 571.87 198 M 570.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 577.93 198 L 577.93 190.77 L 578.89 190.77 L 578.89 194.33 L 581.82 190.77 L 582.85 190.77 L 580.02 194.22 L 583.35 198 L 582.05 198 L 578.89 194.34 L 578.89 198 M 577.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 587.93 198 L 587.93 190.77 L 588.96 190.77 L 588.96 197.23 L 592.21 197.23 L 592.21 198 M 587.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 597.93 198 L 597.93 190.77 L 598.95 190.77 L 598.95 198 M 597.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 606.65 198 L 606.65 191.54 L 604.09 191.54 L 604.09 190.77 L 610.24 190.77 L 610.24 191.54 L 607.68 191.54 L 607.68 198 M 606.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 613.93 198 L 613.93 190.77 L 615.9 190.77 Q 617.21 190.77 617.78 191.22 Q 618.35 191.66 618.35 192.67 Q 618.35 193.82 617.57 194.47 Q 616.79 195.13 615.4 195.13 L 614.95 195.13 L 614.95 198 M 613.93 198 M 614.95 194.35 L 615.36 194.35 Q 616.28 194.35 616.77 193.93 Q 617.27 193.51 617.27 192.75 Q 617.27 192.1 616.88 191.82 Q 616.49 191.54 615.58 191.54 L 614.95 191.54 M 614.95 194.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 623.93 198 L 623.93 190.77 L 627.97 190.77 L 627.97 191.54 L 624.96 191.54 L 624.96 193.86 L 627.48 193.86 L 627.48 194.62 L 624.96 194.62 L 624.96 197.23 L 628.18 197.23 L 628.18 198 M 623.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 637.36 197.8 Q 636.05 198.18 635.07 198.18 Q 633.35 198.18 632.43 197.2 Q 631.51 196.22 631.51 194.39 Q 631.51 192.59 632.44 191.59 Q 633.37 190.59 635.06 190.59 Q 636.16 190.59 637.35 190.92 L 637.35 191.87 Q 635.86 191.36 635.06 191.36 Q 633.89 191.36 633.24 192.16 Q 632.6 192.95 632.6 194.4 Q 632.6 195.83 633.29 196.62 Q 633.98 197.41 635.23 197.41 Q 635.75 197.41 636.34 197.23 L 636.34 194.88 L 637.36 194.88 M 637.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 641.93 198 L 641.93 190.77 L 645.97 190.77 L 645.97 191.54 L 642.96 191.54 L 642.96 193.86 L 645.48 193.86 L 645.48 194.62 L 642.96 194.62 L 642.96 197.23 L 646.18 197.23 L 646.18 198 M 641.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 655.35 199.45 Q 653.64 198.89 652.49 198.13 Q 652.03 198.18 651.78 198.18 Q 650.33 198.18 649.42 197.13 Q 648.51 196.07 648.51 194.39 Q 648.51 192.66 649.43 191.63 Q 650.35 190.59 651.89 190.59 Q 653.43 190.59 654.35 191.63 Q 655.27 192.66 655.27 194.4 Q 655.27 196.89 653.42 197.85 Q 654.66 198.4 656 198.63 M 655.35 199.45 M 651.86 197.41 Q 652.97 197.41 653.57 196.62 Q 654.18 195.82 654.18 194.37 Q 654.18 192.96 653.57 192.16 Q 652.97 191.36 651.89 191.36 Q 650.81 191.36 650.2 192.16 Q 649.6 192.96 649.6 194.38 Q 649.6 195.79 650.2 196.6 Q 650.8 197.41 651.86 197.41 M 651.86 197.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 659.93 198 L 659.93 190.77 L 663.97 190.77 L 663.97 191.54 L 660.96 191.54 L 660.96 193.86 L 663.48 193.86 L 663.48 194.62 L 660.96 194.62 L 660.96 197.23 L 664.18 197.23 L 664.18 198 M 659.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 668.93 198 L 668.93 190.77 L 672.97 190.77 L 672.97 191.54 L 669.96 191.54 L 669.96 193.96 L 672.49 193.96 L 672.49 194.72 L 669.96 194.72 L 669.96 198 M 668.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 677.93 198 L 677.93 190.77 L 681.97 190.77 L 681.97 191.54 L 678.96 191.54 L 678.96 193.86 L 681.48 193.86 L 681.48 194.62 L 678.96 194.62 L 678.96 197.23 L 682.18 197.23 L 682.18 198 M 677.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 689.03 198.18 Q 687.34 198.18 686.43 197.19 Q 685.51 196.2 685.51 194.39 Q 685.51 192.58 686.44 191.59 Q 687.38 190.59 689.08 190.59 Q 690.05 190.59 691.35 190.91 L 691.35 191.87 Q 689.87 191.36 689.06 191.36 Q 687.89 191.36 687.24 192.16 Q 686.6 192.95 686.6 194.4 Q 686.6 195.78 687.29 196.58 Q 687.97 197.38 689.17 197.38 Q 690.19 197.38 691.36 196.75 L 691.36 197.63 Q 690.29 198.18 689.03 198.18 M 689.03 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 694.93 198 L 694.93 190.77 L 696.9 190.77 Q 698.21 190.77 698.78 191.22 Q 699.35 191.66 699.35 192.67 Q 699.35 193.82 698.57 194.47 Q 697.79 195.13 696.4 195.13 L 695.95 195.13 L 695.95 198 M 694.93 198 M 695.95 194.35 L 696.36 194.35 Q 697.28 194.35 697.77 193.93 Q 698.27 193.51 698.27 192.75 Q 698.27 192.1 697.88 191.82 Q 697.49 191.54 696.58 191.54 L 695.95 191.54 M 695.95 194.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 703.93 198 L 703.93 190.77 L 706.33 190.77 Q 707.41 190.77 708.07 191.01 Q 708.73 191.25 709.22 191.82 Q 709.98 192.73 709.98 194.22 Q 709.98 196.02 709.03 197.01 Q 708.08 198 706.35 198 M 703.93 198 M 704.96 197.23 L 706.27 197.23 Q 707.68 197.23 708.26 196.48 Q 708.89 195.67 708.89 194.31 Q 708.89 193.04 708.27 192.31 Q 707.9 191.87 707.38 191.7 Q 706.85 191.54 705.8 191.54 L 704.96 191.54 M 704.96 197.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 712.93 198 L 712.93 190.77 L 715.33 190.77 Q 716.41 190.77 717.07 191.01 Q 717.73 191.25 718.22 191.82 Q 718.98 192.73 718.98 194.22 Q 718.98 196.02 718.03 197.01 Q 717.08 198 715.35 198 M 712.93 198 M 713.96 197.23 L 715.27 197.23 Q 716.68 197.23 717.26 196.48 Q 717.89 195.67 717.89 194.31 Q 717.89 193.04 717.27 192.31 Q 716.9 191.87 716.38 191.7 Q 715.85 191.54 714.8 191.54 L 713.96 191.54 M 713.96 197.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 723.91 198 L 721.18 190.77 L 722.2 190.77 L 724.44 196.69 L 726.6 190.77 L 727.49 190.77 L 724.87 198 M 723.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 732.5 198 L 732.5 194.98 L 730.08 190.77 L 731.25 190.77 L 733.13 194.04 L 735.15 190.77 L 736.1 190.77 L 733.52 194.96 L 733.52 198 M 732.5 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 741.93 198 L 741.93 190.77 L 742.95 190.77 L 742.95 198 M 741.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 749.93 198 L 749.93 190.77 L 750.96 190.77 L 750.96 197.23 L 754.21 197.23 L 754.21 198 M 749.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 757.93 198 L 757.93 190.77 L 760.33 190.77 Q 761.41 190.77 762.07 191.01 Q 762.73 191.25 763.22 191.82 Q 763.98 192.73 763.98 194.22 Q 763.98 196.02 763.03 197.01 Q 762.08 198 760.35 198 M 757.93 198 M 758.96 197.23 L 760.27 197.23 Q 761.68 197.23 762.26 196.48 Q 762.89 195.67 762.89 194.31 Q 762.89 193.04 762.27 192.31 Q 761.9 191.87 761.38 191.7 Q 760.85 191.54 759.8 191.54 L 758.96 191.54 M 758.96 197.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 770.59 195.24 L 769.36 192.12 L 768.13 195.24 M 770.59 195.24 M 771.68 198 L 770.89 196 L 767.83 196 L 767.04 198 L 766.08 198 L 768.95 190.77 L 769.96 190.77 L 772.79 198 M 771.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 779.59 195.24 L 778.36 192.12 L 777.13 195.24 M 779.59 195.24 M 780.68 198 L 779.89 196 L 776.83 196 L 776.04 198 L 775.08 198 L 777.95 190.77 L 778.96 190.77 L 781.79 198 M 780.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 785.93 198 L 785.93 190.77 L 789.97 190.77 L 789.97 191.54 L 786.96 191.54 L 786.96 193.86 L 789.48 193.86 L 789.48 194.62 L 786.96 194.62 L 786.96 197.23 L 790.18 197.23 L 790.18 198 M 785.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 794.93 198 L 794.93 190.77 L 798.97 190.77 L 798.97 191.54 L 795.96 191.54 L 795.96 193.86 L 798.48 193.86 L 798.48 194.62 L 795.96 194.62 L 795.96 197.23 L 799.18 197.23 L 799.18 198 M 794.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 806.59 195.24 L 805.36 192.12 L 804.13 195.24 M 806.59 195.24 M 807.68 198 L 806.89 196 L 803.83 196 L 803.04 198 L 802.08 198 L 804.95 190.77 L 805.96 190.77 L 808.79 198 M 807.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 817.36 197.8 Q 816.05 198.18 815.07 198.18 Q 813.35 198.18 812.43 197.2 Q 811.51 196.22 811.51 194.39 Q 811.51 192.59 812.44 191.59 Q 813.37 190.59 815.06 190.59 Q 816.16 190.59 817.35 190.92 L 817.35 191.87 Q 815.86 191.36 815.06 191.36 Q 813.89 191.36 813.24 192.16 Q 812.6 192.95 812.6 194.4 Q 812.6 195.83 813.29 196.62 Q 813.98 197.41 815.23 197.41 Q 815.75 197.41 816.34 197.23 L 816.34 194.88 L 817.36 194.88 M 817.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 822.93 198 L 822.93 190.77 L 823.95 190.77 L 823.95 198 M 822.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 829.93 198 L 829.93 190.77 L 832.33 190.77 Q 833.41 190.77 834.07 191.01 Q 834.73 191.25 835.22 191.82 Q 835.98 192.73 835.98 194.22 Q 835.98 196.02 835.03 197.01 Q 834.08 198 832.35 198 M 829.93 198 M 830.96 197.23 L 832.27 197.23 Q 833.68 197.23 834.26 196.48 Q 834.89 195.67 834.89 194.31 Q 834.89 193.04 834.27 192.31 Q 833.9 191.87 833.38 191.7 Q 832.85 191.54 831.8 191.54 L 830.96 191.54 M 830.96 197.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 839.93 198 L 839.93 190.77 L 840.96 190.77 L 840.96 197.23 L 844.21 197.23 L 844.21 198 M 839.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 847.93 198 L 847.93 190.77 L 849.9 190.77 Q 851.21 190.77 851.78 191.22 Q 852.35 191.66 852.35 192.67 Q 852.35 193.82 851.57 194.47 Q 850.79 195.13 849.4 195.13 L 848.95 195.13 L 848.95 198 M 847.93 198 M 848.95 194.35 L 849.36 194.35 Q 850.28 194.35 850.77 193.93 Q 851.27 193.51 851.27 192.75 Q 851.27 192.1 850.88 191.82 Q 850.49 191.54 849.58 191.54 L 848.95 191.54 M 848.95 194.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 858.5 198 L 858.5 194.98 L 856.08 190.77 L 857.25 190.77 L 859.13 194.04 L 861.15 190.77 L 862.1 190.77 L 859.52 194.96 L 859.52 198 M 858.5 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 868.35 198.18 Q 867.62 198.18 866.49 197.86 L 866.49 196.85 Q 867.71 197.41 868.5 197.41 Q 869.1 197.41 869.47 197.1 Q 869.84 196.78 869.84 196.26 Q 869.84 195.84 869.6 195.54 Q 869.35 195.24 868.71 194.88 L 868.21 194.59 Q 867.28 194.06 866.91 193.59 Q 866.53 193.13 866.53 192.51 Q 866.53 191.67 867.13 191.13 Q 867.74 190.59 868.68 190.59 Q 869.51 190.59 870.44 190.87 L 870.44 191.81 Q 869.3 191.36 868.73 191.36 Q 868.2 191.36 867.86 191.64 Q 867.51 191.93 867.51 192.36 Q 867.51 192.72 867.76 193 Q 868.02 193.27 868.69 193.66 L 869.21 193.95 Q 870.15 194.48 870.52 194.96 Q 870.89 195.43 870.89 196.1 Q 870.89 197.04 870.19 197.61 Q 869.5 198.18 868.35 198.18 M 868.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 878.03 198.18 Q 876.34 198.18 875.43 197.19 Q 874.51 196.2 874.51 194.39 Q 874.51 192.58 875.44 191.59 Q 876.38 190.59 878.08 190.59 Q 879.05 190.59 880.35 190.91 L 880.35 191.87 Q 878.87 191.36 878.06 191.36 Q 876.89 191.36 876.24 192.16 Q 875.6 192.95 875.6 194.4 Q 875.6 195.78 876.29 196.58 Q 876.97 197.38 878.17 197.38 Q 879.19 197.38 880.36 196.75 L 880.36 197.63 Q 879.29 198.18 878.03 198.18 M 878.03 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 883.93 198 L 883.93 190.77 L 886.12 190.77 Q 887.16 190.77 887.71 191.23 Q 888.27 191.69 888.27 192.57 Q 888.27 194.01 886.81 194.62 L 889.22 198 L 887.96 198 L 885.91 194.94 L 884.95 194.94 L 884.95 198 M 883.93 198 M 884.95 194.18 L 885.28 194.18 Q 887.21 194.18 887.21 192.66 Q 887.21 191.54 885.59 191.54 L 884.95 191.54 M 884.95 194.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 896.59 195.24 L 895.36 192.12 L 894.13 195.24 M 896.59 195.24 M 897.68 198 L 896.89 196 L 893.83 196 L 893.04 198 L 892.08 198 L 894.95 190.77 L 895.96 190.77 L 898.79 198 M 897.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 907.36 197.8 Q 906.05 198.18 905.07 198.18 Q 903.35 198.18 902.43 197.2 Q 901.51 196.22 901.51 194.39 Q 901.51 192.59 902.44 191.59 Q 903.37 190.59 905.06 190.59 Q 906.16 190.59 907.35 190.92 L 907.35 191.87 Q 905.86 191.36 905.06 191.36 Q 903.89 191.36 903.24 192.16 Q 902.6 192.95 902.6 194.4 Q 902.6 195.83 903.29 196.62 Q 903.98 197.41 905.23 197.41 Q 905.75 197.41 906.34 197.23 L 906.34 194.88 L 907.36 194.88 M 907.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 913.35 198.18 Q 912.62 198.18 911.49 197.86 L 911.49 196.85 Q 912.71 197.41 913.5 197.41 Q 914.1 197.41 914.47 197.1 Q 914.84 196.78 914.84 196.26 Q 914.84 195.84 914.6 195.54 Q 914.35 195.24 913.71 194.88 L 913.21 194.59 Q 912.28 194.06 911.91 193.59 Q 911.53 193.13 911.53 192.51 Q 911.53 191.67 912.13 191.13 Q 912.74 190.59 913.68 190.59 Q 914.51 190.59 915.44 190.87 L 915.44 191.81 Q 914.3 191.36 913.73 191.36 Q 913.2 191.36 912.86 191.64 Q 912.51 191.93 912.51 192.36 Q 912.51 192.72 912.76 193 Q 913.02 193.27 913.69 193.66 L 914.21 193.95 Q 915.15 194.48 915.52 194.96 Q 915.89 195.43 915.89 196.1 Q 915.89 197.04 915.19 197.61 Q 914.5 198.18 913.35 198.18 M 913.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 923.03 198.18 Q 921.34 198.18 920.43 197.19 Q 919.51 196.2 919.51 194.39 Q 919.51 192.58 920.44 191.59 Q 921.38 190.59 923.08 190.59 Q 924.05 190.59 925.35 190.91 L 925.35 191.87 Q 923.87 191.36 923.06 191.36 Q 921.89 191.36 921.24 192.16 Q 920.6 192.95 920.6 194.4 Q 920.6 195.78 921.29 196.58 Q 921.97 197.38 923.17 197.38 Q 924.19 197.38 925.36 196.75 L 925.36 197.63 Q 924.29 198.18 923.03 198.18 M 923.03 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 931.35 198.18 Q 930.62 198.18 929.49 197.86 L 929.49 196.85 Q 930.71 197.41 931.5 197.41 Q 932.1 197.41 932.47 197.1 Q 932.84 196.78 932.84 196.26 Q 932.84 195.84 932.6 195.54 Q 932.35 195.24 931.71 194.88 L 931.21 194.59 Q 930.28 194.06 929.91 193.59 Q 929.53 193.13 929.53 192.51 Q 929.53 191.67 930.13 191.13 Q 930.74 190.59 931.68 190.59 Q 932.51 190.59 933.44 190.87 L 933.44 191.81 Q 932.3 191.36 931.73 191.36 Q 931.2 191.36 930.86 191.64 Q 930.51 191.93 930.51 192.36 Q 930.51 192.72 930.76 193 Q 931.02 193.27 931.69 193.66 L 932.21 193.95 Q 933.15 194.48 933.52 194.96 Q 933.89 195.43 933.89 196.1 Q 933.89 197.04 933.19 197.61 Q 932.5 198.18 931.35 198.18 M 931.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 940.35 198.18 Q 939.62 198.18 938.49 197.86 L 938.49 196.85 Q 939.71 197.41 940.5 197.41 Q 941.1 197.41 941.47 197.1 Q 941.84 196.78 941.84 196.26 Q 941.84 195.84 941.6 195.54 Q 941.35 195.24 940.71 194.88 L 940.21 194.59 Q 939.28 194.06 938.91 193.59 Q 938.53 193.13 938.53 192.51 Q 938.53 191.67 939.13 191.13 Q 939.74 190.59 940.68 190.59 Q 941.51 190.59 942.44 190.87 L 942.44 191.81 Q 941.3 191.36 940.73 191.36 Q 940.2 191.36 939.86 191.64 Q 939.51 191.93 939.51 192.36 Q 939.51 192.72 939.76 193 Q 940.02 193.27 940.69 193.66 L 941.21 193.95 Q 942.15 194.48 942.52 194.96 Q 942.89 195.43 942.89 196.1 Q 942.89 197.04 942.19 197.61 Q 941.5 198.18 940.35 198.18 M 940.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 950.03 198.18 Q 948.34 198.18 947.43 197.19 Q 946.51 196.2 946.51 194.39 Q 946.51 192.58 947.44 191.59 Q 948.38 190.59 950.08 190.59 Q 951.05 190.59 952.35 190.91 L 952.35 191.87 Q 950.87 191.36 950.06 191.36 Q 948.89 191.36 948.24 192.16 Q 947.6 192.95 947.6 194.4 Q 947.6 195.78 948.29 196.58 Q 948.97 197.38 950.17 197.38 Q 951.19 197.38 952.36 196.75 L 952.36 197.63 Q 951.29 198.18 950.03 198.18 M 950.03 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 959.59 195.24 L 958.36 192.12 L 957.13 195.24 M 959.59 195.24 M 960.68 198 L 959.89 196 L 956.83 196 L 956.04 198 L 955.08 198 L 957.95 190.77 L 958.96 190.77 L 961.79 198 M 960.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 970.36 197.8 Q 969.05 198.18 968.07 198.18 Q 966.35 198.18 965.43 197.2 Q 964.51 196.22 964.51 194.39 Q 964.51 192.59 965.44 191.59 Q 966.37 190.59 968.06 190.59 Q 969.16 190.59 970.35 190.92 L 970.35 191.87 Q 968.86 191.36 968.06 191.36 Q 966.89 191.36 966.24 192.16 Q 965.6 192.95 965.6 194.4 Q 965.6 195.83 966.29 196.62 Q 966.98 197.41 968.23 197.41 Q 968.75 197.41 969.34 197.23 L 969.34 194.88 L 970.36 194.88 M 970.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 973.93 198 L 973.93 190.77 L 974.89 190.77 L 974.89 194.33 L 977.82 190.77 L 978.85 190.77 L 976.02 194.22 L 979.35 198 L 978.05 198 L 974.89 194.34 L 974.89 198 M 973.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 984.91 198 L 982.18 190.77 L 983.2 190.77 L 985.44 196.69 L 987.6 190.77 L 988.49 190.77 L 985.87 198 M 984.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 993.91 198 L 991.18 190.77 L 992.2 190.77 L 994.44 196.69 L 996.6 190.77 L 997.49 190.77 L 994.87 198 M 993.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1003.35 198.18 Q 1002.62 198.18 1001.49 197.86 L 1001.49 196.85 Q 1002.71 197.41 1003.5 197.41 Q 1004.1 197.41 1004.47 197.1 Q 1004.84 196.78 1004.84 196.26 Q 1004.84 195.84 1004.6 195.54 Q 1004.35 195.24 1003.71 194.88 L 1003.21 194.59 Q 1002.28 194.06 1001.91 193.59 Q 1001.53 193.13 1001.53 192.51 Q 1001.53 191.67 1002.13 191.13 Q 1002.74 190.59 1003.68 190.59 Q 1004.51 190.59 1005.44 190.87 L 1005.44 191.81 Q 1004.3 191.36 1003.73 191.36 Q 1003.2 191.36 1002.86 191.64 Q 1002.51 191.93 1002.51 192.36 Q 1002.51 192.72 1002.76 193 Q 1003.02 193.27 1003.69 193.66 L 1004.21 193.95 Q 1005.15 194.48 1005.52 194.96 Q 1005.89 195.43 1005.89 196.1 Q 1005.89 197.04 1005.19 197.61 Q 1004.5 198.18 1003.35 198.18 M 1003.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1015.36 197.8 Q 1014.05 198.18 1013.07 198.18 Q 1011.35 198.18 1010.43 197.2 Q 1009.51 196.22 1009.51 194.39 Q 1009.51 192.59 1010.44 191.59 Q 1011.37 190.59 1013.06 190.59 Q 1014.16 190.59 1015.35 190.92 L 1015.35 191.87 Q 1013.86 191.36 1013.06 191.36 Q 1011.89 191.36 1011.24 192.16 Q 1010.6 192.95 1010.6 194.4 Q 1010.6 195.83 1011.29 196.62 Q 1011.98 197.41 1013.23 197.41 Q 1013.75 197.41 1014.34 197.23 L 1014.34 194.88 L 1015.36 194.88 M 1015.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1021.35 198.18 Q 1020.62 198.18 1019.49 197.86 L 1019.49 196.85 Q 1020.71 197.41 1021.5 197.41 Q 1022.1 197.41 1022.47 197.1 Q 1022.84 196.78 1022.84 196.26 Q 1022.84 195.84 1022.6 195.54 Q 1022.35 195.24 1021.71 194.88 L 1021.21 194.59 Q 1020.28 194.06 1019.91 193.59 Q 1019.53 193.13 1019.53 192.51 Q 1019.53 191.67 1020.13 191.13 Q 1020.74 190.59 1021.68 190.59 Q 1022.51 190.59 1023.44 190.87 L 1023.44 191.81 Q 1022.3 191.36 1021.73 191.36 Q 1021.2 191.36 1020.86 191.64 Q 1020.51 191.93 1020.51 192.36 Q 1020.51 192.72 1020.76 193 Q 1021.02 193.27 1021.69 193.66 L 1022.21 193.95 Q 1023.15 194.48 1023.52 194.96 Q 1023.89 195.43 1023.89 196.1 Q 1023.89 197.04 1023.19 197.61 Q 1022.5 198.18 1021.35 198.18 M 1021.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1029.91 198 L 1027.18 190.77 L 1028.2 190.77 L 1030.44 196.69 L 1032.6 190.77 L 1033.49 190.77 L 1030.87 198 M 1029.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1036.93 198 L 1036.93 190.77 L 1039.33 190.77 Q 1040.41 190.77 1041.07 191.01 Q 1041.73 191.25 1042.22 191.82 Q 1042.98 192.73 1042.98 194.22 Q 1042.98 196.02 1042.03 197.01 Q 1041.08 198 1039.35 198 M 1036.93 198 M 1037.96 197.23 L 1039.27 197.23 Q 1040.68 197.23 1041.26 196.48 Q 1041.89 195.67 1041.89 194.31 Q 1041.89 193.04 1041.27 192.31 Q 1040.9 191.87 1040.38 191.7 Q 1039.85 191.54 1038.8 191.54 L 1037.96 191.54 M 1037.96 197.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1051.35 199.45 Q 1049.64 198.89 1048.49 198.13 Q 1048.03 198.18 1047.78 198.18 Q 1046.33 198.18 1045.42 197.13 Q 1044.51 196.07 1044.51 194.39 Q 1044.51 192.66 1045.43 191.63 Q 1046.35 190.59 1047.89 190.59 Q 1049.43 190.59 1050.35 191.63 Q 1051.27 192.66 1051.27 194.4 Q 1051.27 196.89 1049.42 197.85 Q 1050.66 198.4 1052 198.63 M 1051.35 199.45 M 1047.86 197.41 Q 1048.97 197.41 1049.57 196.62 Q 1050.18 195.82 1050.18 194.37 Q 1050.18 192.96 1049.57 192.16 Q 1048.97 191.36 1047.89 191.36 Q 1046.81 191.36 1046.2 192.16 Q 1045.6 192.96 1045.6 194.38 Q 1045.6 195.79 1046.2 196.6 Q 1046.8 197.41 1047.86 197.41 M 1047.86 197.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1057.35 198.18 Q 1056.62 198.18 1055.49 197.86 L 1055.49 196.85 Q 1056.71 197.41 1057.5 197.41 Q 1058.1 197.41 1058.47 197.1 Q 1058.84 196.78 1058.84 196.26 Q 1058.84 195.84 1058.6 195.54 Q 1058.35 195.24 1057.71 194.88 L 1057.21 194.59 Q 1056.28 194.06 1055.91 193.59 Q 1055.53 193.13 1055.53 192.51 Q 1055.53 191.67 1056.13 191.13 Q 1056.74 190.59 1057.68 190.59 Q 1058.51 190.59 1059.44 190.87 L 1059.44 191.81 Q 1058.3 191.36 1057.73 191.36 Q 1057.2 191.36 1056.86 191.64 Q 1056.51 191.93 1056.51 192.36 Q 1056.51 192.72 1056.76 193 Q 1057.02 193.27 1057.69 193.66 L 1058.21 193.95 Q 1059.15 194.48 1059.52 194.96 Q 1059.89 195.43 1059.89 196.1 Q 1059.89 197.04 1059.19 197.61 Q 1058.5 198.18 1057.35 198.18 M 1057.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1063.93 198 L 1063.93 190.77 L 1066.33 190.77 Q 1067.41 190.77 1068.07 191.01 Q 1068.73 191.25 1069.22 191.82 Q 1069.98 192.73 1069.98 194.22 Q 1069.98 196.02 1069.03 197.01 Q 1068.08 198 1066.35 198 M 1063.93 198 M 1064.96 197.23 L 1066.27 197.23 Q 1067.68 197.23 1068.26 196.48 Q 1068.89 195.67 1068.89 194.31 Q 1068.89 193.04 1068.27 192.31 Q 1067.9 191.87 1067.38 191.7 Q 1066.85 191.54 1065.8 191.54 L 1064.96 191.54 M 1064.96 197.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1074.61 198 L 1074.61 195.47 L 1072.08 195.47 L 1072.08 194.75 L 1074.61 194.75 L 1074.61 192.22 L 1075.34 192.22 L 1075.34 194.75 L 1077.87 194.75 L 1077.87 195.47 L 1075.34 195.47 L 1075.34 198 M 1074.61 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1084.35 198.18 Q 1083.62 198.18 1082.49 197.86 L 1082.49 196.85 Q 1083.71 197.41 1084.5 197.41 Q 1085.1 197.41 1085.47 197.1 Q 1085.84 196.78 1085.84 196.26 Q 1085.84 195.84 1085.6 195.54 Q 1085.35 195.24 1084.71 194.88 L 1084.21 194.59 Q 1083.28 194.06 1082.91 193.59 Q 1082.53 193.13 1082.53 192.51 Q 1082.53 191.67 1083.13 191.13 Q 1083.74 190.59 1084.68 190.59 Q 1085.51 190.59 1086.44 190.87 L 1086.44 191.81 Q 1085.3 191.36 1084.73 191.36 Q 1084.2 191.36 1083.86 191.64 Q 1083.51 191.93 1083.51 192.36 Q 1083.51 192.72 1083.76 193 Q 1084.02 193.27 1084.69 193.66 L 1085.21 193.95 Q 1086.15 194.48 1086.52 194.96 Q 1086.89 195.43 1086.89 196.1 Q 1086.89 197.04 1086.19 197.61 Q 1085.5 198.18 1084.35 198.18 M 1084.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1091.93 198 L 1091.93 190.77 L 1095.97 190.77 L 1095.97 191.54 L 1092.96 191.54 L 1092.96 193.96 L 1095.49 193.96 L 1095.49 194.72 L 1092.96 194.72 L 1092.96 198 M 1091.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1100.93 198 L 1100.93 190.77 L 1101.96 190.77 L 1101.96 197.23 L 1105.21 197.23 L 1105.21 198 M 1100.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1108.93 198 L 1108.93 190.77 L 1111.33 190.77 Q 1112.41 190.77 1113.07 191.01 Q 1113.73 191.25 1114.22 191.82 Q 1114.98 192.73 1114.98 194.22 Q 1114.98 196.02 1114.03 197.01 Q 1113.08 198 1111.35 198 M 1108.93 198 M 1109.96 197.23 L 1111.27 197.23 Q 1112.68 197.23 1113.26 196.48 Q 1113.89 195.67 1113.89 194.31 Q 1113.89 193.04 1113.27 192.31 Q 1112.9 191.87 1112.38 191.7 Q 1111.85 191.54 1110.8 191.54 L 1109.96 191.54 M 1109.96 197.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1117.93 198 L 1117.93 190.77 L 1120.33 190.77 Q 1121.41 190.77 1122.07 191.01 Q 1122.73 191.25 1123.22 191.82 Q 1123.98 192.73 1123.98 194.22 Q 1123.98 196.02 1123.03 197.01 Q 1122.08 198 1120.35 198 M 1117.93 198 M 1118.96 197.23 L 1120.27 197.23 Q 1121.68 197.23 1122.26 196.48 Q 1122.89 195.67 1122.89 194.31 Q 1122.89 193.04 1122.27 192.31 Q 1121.9 191.87 1121.38 191.7 Q 1120.85 191.54 1119.8 191.54 L 1118.96 191.54 M 1118.96 197.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1126.93 198 L 1126.93 190.77 L 1129.33 190.77 Q 1130.41 190.77 1131.07 191.01 Q 1131.73 191.25 1132.22 191.82 Q 1132.98 192.73 1132.98 194.22 Q 1132.98 196.02 1132.03 197.01 Q 1131.08 198 1129.35 198 M 1126.93 198 M 1127.96 197.23 L 1129.27 197.23 Q 1130.68 197.23 1131.26 196.48 Q 1131.89 195.67 1131.89 194.31 Q 1131.89 193.04 1131.27 192.31 Q 1130.9 191.87 1130.38 191.7 Q 1129.85 191.54 1128.8 191.54 L 1127.96 191.54 M 1127.96 197.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1141.35 199.45 Q 1139.64 198.89 1138.49 198.13 Q 1138.03 198.18 1137.78 198.18 Q 1136.33 198.18 1135.42 197.13 Q 1134.51 196.07 1134.51 194.39 Q 1134.51 192.66 1135.43 191.63 Q 1136.35 190.59 1137.89 190.59 Q 1139.43 190.59 1140.35 191.63 Q 1141.27 192.66 1141.27 194.4 Q 1141.27 196.89 1139.42 197.85 Q 1140.66 198.4 1142 198.63 M 1141.35 199.45 M 1137.86 197.41 Q 1138.97 197.41 1139.57 196.62 Q 1140.18 195.82 1140.18 194.37 Q 1140.18 192.96 1139.57 192.16 Q 1138.97 191.36 1137.89 191.36 Q 1136.81 191.36 1136.2 192.16 Q 1135.6 192.96 1135.6 194.38 Q 1135.6 195.79 1136.2 196.6 Q 1136.8 197.41 1137.86 197.41 M 1137.86 197.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1146.93 198 L 1146.93 190.77 L 1147.95 190.77 L 1147.95 198 M 1146.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1157.59 195.24 L 1156.36 192.12 L 1155.13 195.24 M 1157.59 195.24 M 1158.68 198 L 1157.89 196 L 1154.83 196 L 1154.04 198 L 1153.08 198 L 1155.95 190.77 L 1156.96 190.77 L 1159.79 198 M 1158.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1163.93 198 L 1163.93 190.77 L 1167.97 190.77 L 1167.97 191.54 L 1164.96 191.54 L 1164.96 193.86 L 1167.48 193.86 L 1167.48 194.62 L 1164.96 194.62 L 1164.96 197.23 L 1168.18 197.23 L 1168.18 198 M 1163.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1177.36 197.8 Q 1176.05 198.18 1175.07 198.18 Q 1173.35 198.18 1172.43 197.2 Q 1171.51 196.22 1171.51 194.39 Q 1171.51 192.59 1172.44 191.59 Q 1173.37 190.59 1175.06 190.59 Q 1176.16 190.59 1177.35 190.92 L 1177.35 191.87 Q 1175.86 191.36 1175.06 191.36 Q 1173.89 191.36 1173.24 192.16 Q 1172.6 192.95 1172.6 194.4 Q 1172.6 195.83 1173.29 196.62 Q 1173.98 197.41 1175.23 197.41 Q 1175.75 197.41 1176.34 197.23 L 1176.34 194.88 L 1177.36 194.88 M 1177.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1180.87 198 L 1179.01 190.77 L 1180 190.77 L 1181.48 196.48 L 1182.84 190.77 L 1183.82 190.77 L 1185.11 196.4 L 1186.71 190.77 L 1187.54 190.77 L 1185.51 198 L 1184.49 198 L 1183.22 192.43 L 1181.89 198 M 1180.87 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1191.91 198 L 1189.18 190.77 L 1190.2 190.77 L 1192.44 196.69 L 1194.6 190.77 L 1195.49 190.77 L 1192.87 198 M 1191.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1199.93 198 L 1199.93 190.77 L 1200.96 190.77 L 1200.96 197.23 L 1204.21 197.23 L 1204.21 198 M 1199.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1209.65 198 L 1209.65 191.54 L 1207.09 191.54 L 1207.09 190.77 L 1213.24 190.77 L 1213.24 191.54 L 1210.68 191.54 L 1210.68 198 M 1209.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1220.03 198.18 Q 1218.34 198.18 1217.43 197.19 Q 1216.51 196.2 1216.51 194.39 Q 1216.51 192.58 1217.44 191.59 Q 1218.38 190.59 1220.08 190.59 Q 1221.05 190.59 1222.35 190.91 L 1222.35 191.87 Q 1220.87 191.36 1220.06 191.36 Q 1218.89 191.36 1218.24 192.16 Q 1217.6 192.95 1217.6 194.4 Q 1217.6 195.78 1218.29 196.58 Q 1218.97 197.38 1220.17 197.38 Q 1221.19 197.38 1222.36 196.75 L 1222.36 197.63 Q 1221.29 198.18 1220.03 198.18 M 1220.03 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1227.91 198 L 1225.18 190.77 L 1226.2 190.77 L 1228.44 196.69 L 1230.6 190.77 L 1231.49 190.77 L 1228.87 198 M 1227.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1238.59 195.24 L 1237.36 192.12 L 1236.13 195.24 M 1238.59 195.24 M 1239.68 198 L 1238.89 196 L 1235.83 196 L 1235.04 198 L 1234.08 198 L 1236.95 190.77 L 1237.96 190.77 L 1240.79 198 M 1239.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1245.5 198 L 1245.5 194.98 L 1243.08 190.77 L 1244.25 190.77 L 1246.13 194.04 L 1248.15 190.77 L 1249.1 190.77 L 1246.52 194.96 L 1246.52 198 M 1245.5 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1252.93 198 L 1252.93 190.77 L 1254.9 190.77 Q 1256.21 190.77 1256.78 191.22 Q 1257.35 191.66 1257.35 192.67 Q 1257.35 193.82 1256.57 194.47 Q 1255.79 195.13 1254.4 195.13 L 1253.95 195.13 L 1253.95 198 M 1252.93 198 M 1253.95 194.35 L 1254.36 194.35 Q 1255.28 194.35 1255.77 193.93 Q 1256.27 193.51 1256.27 192.75 Q 1256.27 192.1 1255.88 191.82 Q 1255.49 191.54 1254.58 191.54 L 1253.95 191.54 M 1253.95 194.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1263.65 198 L 1263.65 191.54 L 1261.09 191.54 L 1261.09 190.77 L 1267.24 190.77 L 1267.24 191.54 L 1264.68 191.54 L 1264.68 198 M 1263.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1273.35 198.18 Q 1272.62 198.18 1271.49 197.86 L 1271.49 196.85 Q 1272.71 197.41 1273.5 197.41 Q 1274.1 197.41 1274.47 197.1 Q 1274.84 196.78 1274.84 196.26 Q 1274.84 195.84 1274.6 195.54 Q 1274.35 195.24 1273.71 194.88 L 1273.21 194.59 Q 1272.28 194.06 1271.91 193.59 Q 1271.53 193.13 1271.53 192.51 Q 1271.53 191.67 1272.13 191.13 Q 1272.74 190.59 1273.68 190.59 Q 1274.51 190.59 1275.44 190.87 L 1275.44 191.81 Q 1274.3 191.36 1273.73 191.36 Q 1273.2 191.36 1272.86 191.64 Q 1272.51 191.93 1272.51 192.36 Q 1272.51 192.72 1272.76 193 Q 1273.02 193.27 1273.69 193.66 L 1274.21 193.95 Q 1275.15 194.48 1275.52 194.96 Q 1275.89 195.43 1275.89 196.1 Q 1275.89 197.04 1275.19 197.61 Q 1274.5 198.18 1273.35 198.18 M 1273.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1279.93 198 L 1279.93 190.77 L 1282.33 190.77 Q 1283.41 190.77 1284.07 191.01 Q 1284.73 191.25 1285.22 191.82 Q 1285.98 192.73 1285.98 194.22 Q 1285.98 196.02 1285.03 197.01 Q 1284.08 198 1282.35 198 M 1279.93 198 M 1280.96 197.23 L 1282.27 197.23 Q 1283.68 197.23 1284.26 196.48 Q 1284.89 195.67 1284.89 194.31 Q 1284.89 193.04 1284.27 192.31 Q 1283.9 191.87 1283.38 191.7 Q 1282.85 191.54 1281.8 191.54 L 1280.96 191.54 M 1280.96 197.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1290.91 198 L 1288.18 190.77 L 1289.2 190.77 L 1291.44 196.69 L 1293.6 190.77 L 1294.49 190.77 L 1291.87 198 M 1290.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1299.65 198 L 1299.65 191.54 L 1297.09 191.54 L 1297.09 190.77 L 1303.24 190.77 L 1303.24 191.54 L 1300.68 191.54 L 1300.68 198 M 1299.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1308.93 198 L 1308.93 190.77 L 1309.95 190.77 L 1309.95 198 M 1308.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1316.93 198 L 1316.93 190.77 L 1320.97 190.77 L 1320.97 191.54 L 1317.96 191.54 L 1317.96 193.86 L 1320.48 193.86 L 1320.48 194.62 L 1317.96 194.62 L 1317.96 197.23 L 1321.18 197.23 L 1321.18 198 M 1316.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1326.65 198 L 1326.65 191.54 L 1324.09 191.54 L 1324.09 190.77 L 1330.24 190.77 L 1330.24 191.54 L 1327.68 191.54 L 1327.68 198 M 1326.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1333.93 198 L 1333.93 190.77 L 1334.96 190.77 L 1334.96 193.82 L 1338.4 193.82 L 1338.4 190.77 L 1339.42 190.77 L 1339.42 198 L 1338.4 198 L 1338.4 194.59 L 1334.96 194.59 L 1334.96 198 M 1333.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1342.93 198 L 1342.93 190.77 L 1343.89 190.77 L 1343.89 194.33 L 1346.82 190.77 L 1347.85 190.77 L 1345.02 194.22 L 1348.35 198 L 1347.05 198 L 1343.89 194.34 L 1343.89 198 M 1342.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1352.93 198 L 1352.93 190.77 L 1356.97 190.77 L 1356.97 191.54 L 1353.96 191.54 L 1353.96 193.86 L 1356.48 193.86 L 1356.48 194.62 L 1353.96 194.62 L 1353.96 197.23 L 1357.18 197.23 L 1357.18 198 M 1352.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1361.93 198 L 1361.93 190.77 L 1365.97 190.77 L 1365.97 191.54 L 1362.96 191.54 L 1362.96 193.86 L 1365.48 193.86 L 1365.48 194.62 L 1362.96 194.62 L 1362.96 197.23 L 1366.18 197.23 L 1366.18 198 M 1361.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1370.93 198 L 1370.93 190.77 L 1374.97 190.77 L 1374.97 191.54 L 1371.96 191.54 L 1371.96 193.86 L 1374.48 193.86 L 1374.48 194.62 L 1371.96 194.62 L 1371.96 197.23 L 1375.18 197.23 L 1375.18 198 M 1370.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1379.93 198 L 1379.93 190.77 L 1380.96 190.77 L 1380.96 197.23 L 1384.21 197.23 L 1384.21 198 M 1379.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1389.65 198 L 1389.65 191.54 L 1387.09 191.54 L 1387.09 190.77 L 1393.24 190.77 L 1393.24 191.54 L 1390.68 191.54 L 1390.68 198 M 1389.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1400.59 195.24 L 1399.36 192.12 L 1398.13 195.24 M 1400.59 195.24 M 1401.68 198 L 1400.89 196 L 1397.83 196 L 1397.04 198 L 1396.08 198 L 1398.95 190.77 L 1399.96 190.77 L 1402.79 198 M 1401.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1409.59 195.24 L 1408.36 192.12 L 1407.13 195.24 M 1409.59 195.24 M 1410.68 198 L 1409.89 196 L 1406.83 196 L 1406.04 198 L 1405.08 198 L 1407.95 190.77 L 1408.96 190.77 L 1411.79 198 M 1410.68 198"/></g><line x1="0" y1="188" x2="1413" y2="188" style="stroke-width: 1.0;stroke: rgb(128,128,128);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,214)" /><rect x="0" y="156" width="9" height="32" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 0.93 176 L 0.93 156.86 L 2.35 156.86 L 4.36 171.67 L 6.42 156.86 L 7.69 156.86 L 7.69 176 L 6.73 176 L 6.73 160.43 L 4.74 174.72 L 3.75 174.72 L 1.81 160.39 L 1.81 176 M 0.93 176"/></g><rect x="9" y="156" width="9" height="32" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 14.91 168.68 L 13.33 160.43 L 11.74 168.68 M 14.91 168.68 M 16.3 176 L 15.29 170.7 L 11.35 170.7 L 10.33 176 L 9.11 176 L 12.79 156.86 L 14.1 156.86 L 17.73 176 M 16.3 176"/></g><rect x="18" y="180" width="9" height="8" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 23.91 180.54 L 22.33 180.03 L 20.74 180.54 M 23.91 180.54 M 25.3 181 L 24.29 180.67 L 20.35 180.67 L 19.33 181 L 18.11 181 L 21.79 179.8 L 23.1 179.8 L 26.73 181 M 25.3 181"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 22.23 182.03 Q 20.92 182.03 18.88 181.98 L 18.88 181.81 Q 21.08 181.9 22.49 181.9 Q 23.58 181.9 24.24 181.85 Q 24.91 181.8 24.91 181.71 Q 24.91 181.64 24.47 181.59 Q 24.04 181.54 22.87 181.48 L 21.97 181.44 Q 20.31 181.35 19.63 181.27 Q 18.95 181.19 18.95 181.09 Q 18.95 180.95 20.04 180.86 Q 21.13 180.77 22.82 180.77 Q 24.32 180.77 25.99 180.82 L 25.99 180.98 Q 23.93 180.9 22.92 180.9 Q 21.96 180.9 21.34 180.95 Q 20.72 180.99 20.72 181.07 Q 20.72 181.13 21.17 181.17 Q 21.63 181.22 22.84 181.28 L 23.77 181.33 Q 25.46 181.42 26.13 181.5 Q 26.8 181.57 26.8 181.68 Q 26.8 181.84 25.55 181.94 Q 24.29 182.03 22.23 182.03 M 22.23 182.03"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 21.98 184 L 21.98 182.93 L 18.13 182.93 L 18.13 182.8 L 27.36 182.8 L 27.36 182.93 L 23.52 182.93 L 23.52 184 M 21.98 184"/></g><rect x="27" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 30.98 175 L 30.98 167.56 L 27.13 167.56 L 27.13 166.68 L 36.36 166.68 L 36.36 167.56 L 32.52 167.56 L 32.52 175 M 30.98 175"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 30.74 179 L 27.23 178.06 L 28.54 178.06 L 31.42 178.83 L 34.19 178.06 L 35.35 178.06 L 31.98 179 M 30.74 179"/></g><rect x="36" y="186" width="9" height="2" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 37.68 186 L 37.68 185.91 L 39.52 185.91 L 39.52 185.99 L 45.38 185.99 L 45.38 186 M 37.68 186"/></g><rect x="45" y="186" width="9" height="2" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 53.18 186 Q 51.49 186 50.24 186 Q 48.02 186 46.84 185.99 Q 45.65 185.98 45.65 185.96 Q 45.65 185.93 46.85 185.92 Q 48.05 185.91 50.22 185.91 Q 51.64 185.91 53.17 185.91 L 53.17 185.92 Q 51.25 185.92 50.22 185.92 Q 48.72 185.92 47.88 185.93 Q 47.05 185.94 47.05 185.96 Q 47.05 185.97 47.94 185.98 Q 48.84 185.99 50.44 185.99 Q 51.1 185.99 51.87 185.99 L 51.87 185.96 L 53.18 185.96 M 53.18 186"/></g><rect x="54" y="183" width="9" height="5" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 57.98 183 L 57.98 182.57 L 54.13 182.57 L 54.13 182.51 L 63.36 182.51 L 63.36 182.57 L 59.52 182.57 L 59.52 183 M 57.98 183"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 58.23 183.01 Q 56.92 183.01 54.88 183 L 54.88 182.96 Q 57.08 182.98 58.49 182.98 Q 59.58 182.98 60.24 182.97 Q 60.91 182.96 60.91 182.95 Q 60.91 182.93 60.47 182.92 Q 60.04 182.91 58.87 182.9 L 57.97 182.89 Q 56.31 182.88 55.63 182.86 Q 54.95 182.85 54.95 182.83 Q 54.95 182.8 56.04 182.79 Q 57.13 182.77 58.82 182.77 Q 60.32 182.77 61.99 182.78 L 61.99 182.81 Q 59.93 182.79 58.92 182.79 Q 57.96 182.79 57.34 182.8 Q 56.72 182.81 56.72 182.82 Q 56.72 182.84 57.17 182.84 Q 57.63 182.85 58.84 182.87 L 59.77 182.87 Q 61.46 182.89 62.13 182.91 Q 62.8 182.92 62.8 182.94 Q 62.8 182.97 61.55 182.99 Q 60.29 183.01 58.23 183.01 M 58.23 183.01"/></g><rect x="63" y="180" width="9" height="8" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 64.4 181 L 64.4 179.8 L 67.35 179.8 Q 69.31 179.8 70.17 179.88 Q 71.03 179.95 71.03 180.12 Q 71.03 180.31 69.86 180.42 Q 68.68 180.52 66.6 180.52 L 65.92 180.52 L 65.92 181 M 64.4 181 M 65.92 180.4 L 66.54 180.4 Q 67.91 180.4 68.66 180.33 Q 69.41 180.26 69.41 180.13 Q 69.41 180.02 68.82 179.98 Q 68.24 179.93 66.87 179.93 L 65.92 179.93 M 65.92 180.4"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 68.91 180.86 L 67.33 180.71 L 65.74 180.86 M 68.91 180.86 M 70.3 181 L 69.29 180.9 L 65.35 180.9 L 64.33 181 L 63.11 181 L 66.79 180.64 L 68.1 180.64 L 71.73 181 M 70.3 181"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 66.98 182 L 66.98 181.68 L 63.13 181.68 L 63.13 181.64 L 72.36 181.64 L 72.36 181.68 L 68.52 181.68 L 68.52 182 M 66.98 182"/></g><rect x="72" y="172" width="9" height="16" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 77.91 175.17 L 76.33 173.11 L 74.74 175.17 M 77.91 175.17 M 79.3 177 L 78.29 175.67 L 74.35 175.67 L 73.33 177 L 72.11 177 L 75.79 172.22 L 77.1 172.22 L 80.73 177 M 79.3 177"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 76.23 180.06 Q 74.92 180.06 72.88 179.95 L 72.88 179.62 Q 75.08 179.81 76.49 179.81 Q 77.58 179.81 78.24 179.7 Q 78.91 179.6 78.91 179.42 Q 78.91 179.28 78.47 179.19 Q 78.04 179.09 76.87 178.97 L 75.97 178.87 Q 74.31 178.7 73.63 178.54 Q 72.95 178.39 72.95 178.18 Q 72.95 177.91 74.04 177.73 Q 75.13 177.55 76.82 177.55 Q 78.32 177.55 79.99 177.64 L 79.99 177.95 Q 77.93 177.8 76.92 177.8 Q 75.96 177.8 75.34 177.9 Q 74.72 177.99 74.72 178.13 Q 74.72 178.25 75.17 178.34 Q 75.63 178.44 76.84 178.56 L 77.77 178.66 Q 79.46 178.84 80.13 178.99 Q 80.8 179.15 80.8 179.37 Q 80.8 179.68 79.55 179.87 Q 78.29 180.06 76.23 180.06 M 76.23 180.06"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 73.4 182 L 73.4 181.28 L 76.68 181.28 Q 78.24 181.28 79.07 181.33 Q 79.9 181.37 79.9 181.46 Q 79.9 181.6 77.71 181.66 L 81.33 182 L 79.44 182 L 76.36 181.7 L 74.92 181.7 L 74.92 182 M 73.4 182 M 74.92 181.62 L 75.42 181.62 Q 78.32 181.62 78.32 181.47 Q 78.32 181.36 75.89 181.36 L 74.92 181.36 M 74.92 181.62"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 75.98 183 L 75.98 182.36 L 72.13 182.36 L 72.13 182.28 L 81.36 182.28 L 81.36 182.36 L 77.52 182.36 L 77.52 183 M 75.98 183"/></g><rect x="81" y="172" width="9" height="16" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 82.68 177 L 82.68 172.22 L 84.52 172.22 L 84.52 176.49 L 90.38 176.49 L 90.38 177 M 82.68 177"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 83.78 180 L 83.78 178.45 L 86.86 178.45 L 86.86 180 M 83.78 180"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 86.91 180.73 L 85.33 180.42 L 83.74 180.73 M 86.91 180.73 M 88.3 181 L 87.29 180.8 L 83.35 180.8 L 82.33 181 L 81.11 181 L 84.79 180.28 L 86.1 180.28 L 89.73 181 M 88.3 181"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 81.93 182 L 81.93 181.28 L 83.35 181.28 L 85.36 181.84 L 87.42 181.28 L 88.69 181.28 L 88.69 182 L 87.73 182 L 87.73 181.42 L 85.74 181.95 L 84.75 181.95 L 82.81 181.41 L 82.81 182 M 81.93 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 84.74 183 L 81.23 182.28 L 82.54 182.28 L 85.42 182.87 L 88.19 182.28 L 89.35 182.28 L 85.98 183 M 84.74 183"/></g><rect x="90" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 94.23 176.15 Q 92.92 176.15 90.88 175.88 L 90.88 175.01 Q 93.08 175.5 94.49 175.5 Q 95.58 175.5 96.24 175.23 Q 96.91 174.95 96.91 174.51 Q 96.91 174.15 96.47 173.89 Q 96.04 173.64 94.87 173.32 L 93.97 173.08 Q 92.31 172.63 91.63 172.23 Q 90.95 171.83 90.95 171.3 Q 90.95 170.58 92.04 170.12 Q 93.13 169.66 94.82 169.66 Q 96.32 169.66 97.99 169.89 L 97.99 170.7 Q 95.93 170.31 94.92 170.31 Q 93.96 170.31 93.34 170.56 Q 92.72 170.8 92.72 171.17 Q 92.72 171.48 93.17 171.71 Q 93.63 171.95 94.84 172.28 L 95.77 172.53 Q 97.46 172.99 98.13 173.39 Q 98.8 173.8 98.8 174.37 Q 98.8 175.18 97.55 175.67 Q 96.29 176.15 94.23 176.15 M 94.23 176.15"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 93.74 180 L 93.74 179.27 L 90.12 178.25 L 91.88 178.25 L 94.69 179.04 L 97.73 178.25 L 99.16 178.25 L 95.28 179.26 L 95.28 180 M 93.74 180"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 90.93 181 L 90.93 180.19 L 92.35 180.19 L 94.36 180.82 L 96.42 180.19 L 97.69 180.19 L 97.69 181 L 96.73 181 L 96.73 180.34 L 94.74 180.95 L 93.75 180.95 L 91.81 180.34 L 91.81 181 M 90.93 181"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 91.4 182 L 91.4 181.19 L 94.35 181.19 Q 96.31 181.19 97.17 181.24 Q 98.03 181.29 98.03 181.4 Q 98.03 181.53 96.86 181.61 Q 95.68 181.68 93.6 181.68 L 92.92 181.68 L 92.92 182 M 91.4 182 M 92.92 181.59 L 93.54 181.59 Q 94.91 181.59 95.66 181.55 Q 96.41 181.5 96.41 181.41 Q 96.41 181.34 95.82 181.31 Q 95.24 181.28 93.87 181.28 L 92.92 181.28 M 92.92 181.59"/></g><rect x="99" y="172" width="9" height="16" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 107.18 176.87 Q 105.49 177.12 104.24 177.12 Q 102.02 177.12 100.84 176.47 Q 99.65 175.82 99.65 174.61 Q 99.65 173.42 100.85 172.76 Q 102.05 172.1 104.22 172.1 Q 105.64 172.1 107.17 172.31 L 107.17 172.94 Q 105.25 172.6 104.22 172.6 Q 102.72 172.6 101.88 173.13 Q 101.05 173.66 101.05 174.61 Q 101.05 175.56 101.94 176.09 Q 102.84 176.61 104.44 176.61 Q 105.1 176.61 105.87 176.49 L 105.87 174.93 L 107.18 174.93 M 107.18 176.87"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 103.23 180.06 Q 101.92 180.06 99.88 179.95 L 99.88 179.62 Q 102.08 179.81 103.49 179.81 Q 104.58 179.81 105.24 179.7 Q 105.91 179.6 105.91 179.42 Q 105.91 179.28 105.47 179.19 Q 105.04 179.09 103.87 178.97 L 102.97 178.87 Q 101.31 178.7 100.63 178.54 Q 99.95 178.39 99.95 178.18 Q 99.95 177.91 101.04 177.73 Q 102.13 177.55 103.82 177.55 Q 105.32 177.55 106.99 177.64 L 106.99 177.95 Q 104.93 177.8 103.92 177.8 Q 102.96 177.8 102.34 177.9 Q 101.72 177.99 101.72 178.13 Q 101.72 178.25 102.17 178.34 Q 102.63 178.44 103.84 178.56 L 104.77 178.66 Q 106.46 178.84 107.13 178.99 Q 107.8 179.15 107.8 179.37 Q 107.8 179.68 106.55 179.87 Q 105.29 180.06 103.23 180.06 M 103.23 180.06"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 104.91 182.41 L 103.33 181.74 L 101.74 182.41 M 104.91 182.41 M 106.3 183 L 105.29 182.57 L 101.35 182.57 L 100.33 183 L 99.11 183 L 102.79 181.45 L 104.1 181.45 L 107.73 183 M 106.3 183"/></g><rect x="108" y="175" width="9" height="13" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 111.98 178 L 111.98 175.13 L 108.13 175.13 L 108.13 174.79 L 117.36 174.79 L 117.36 175.13 L 113.52 175.13 L 113.52 178 M 111.98 178"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 113.91 180.03 L 112.33 178.94 L 110.74 180.03 M 113.91 180.03 M 115.3 181 L 114.29 180.3 L 110.35 180.3 L 109.33 181 L 108.11 181 L 111.79 178.47 L 113.1 178.47 L 116.73 181 M 115.3 181"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 109.68 183 L 109.68 182.42 L 116.95 182.42 L 116.95 182.48 L 111.52 182.48 L 111.52 182.67 L 116.08 182.67 L 116.08 182.74 L 111.52 182.74 L 111.52 183 M 109.68 183"/></g><rect x="117" y="180" width="9" height="8" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 122.91 180.54 L 121.33 180.03 L 119.74 180.54 M 122.91 180.54 M 124.3 181 L 123.29 180.67 L 119.35 180.67 L 118.33 181 L 117.11 181 L 120.79 179.8 L 122.1 179.8 L 125.73 181 M 124.3 181"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 119.78 182 L 119.78 180.8 L 122.86 180.8 L 122.86 182 M 119.78 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 117.93 184 L 117.93 182.8 L 119.35 182.8 L 121.36 183.73 L 123.42 182.8 L 124.69 182.8 L 124.69 184 L 123.73 184 L 123.73 183.03 L 121.74 183.92 L 120.75 183.92 L 118.81 183.02 L 118.81 184 M 117.93 184"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 118.68 185 L 118.68 184.64 L 125.95 184.64 L 125.95 184.68 L 120.52 184.68 L 120.52 184.8 L 125.08 184.8 L 125.08 184.84 L 120.52 184.84 L 120.52 185 M 118.68 185"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 120.98 185 L 120.98 184.68 L 117.13 184.68 L 117.13 184.64 L 126.36 184.64 L 126.36 184.68 L 122.52 184.68 L 122.52 185 M 120.98 185"/></g><rect x="126" y="175" width="9" height="13" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 129.74 178 L 126.23 174.79 L 127.54 174.79 L 130.42 177.42 L 133.19 174.79 L 134.35 174.79 L 130.98 178 M 129.74 178"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 128.78 181 L 128.78 179.06 L 131.86 179.06 L 131.86 181 M 128.78 181"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 126.93 183 L 126.93 181.74 L 128.35 181.74 L 130.36 182.71 L 132.42 181.74 L 133.69 181.74 L 133.69 183 L 132.73 183 L 132.73 181.97 L 130.74 182.92 L 129.75 182.92 L 127.81 181.97 L 127.81 183 M 126.93 183"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 127.68 184 L 127.68 183.42 L 134.95 183.42 L 134.95 183.48 L 129.52 183.48 L 129.52 183.67 L 134.08 183.67 L 134.08 183.74 L 129.52 183.74 L 129.52 184 M 127.68 184"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 127.68 184 L 127.68 183.42 L 129.52 183.42 L 129.52 183.94 L 135.38 183.94 L 135.38 184 M 127.68 184"/></g><rect x="135" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 139.23 175.32 Q 137.92 175.32 135.88 174.76 L 135.88 172.95 Q 138.08 173.96 139.49 173.96 Q 140.58 173.96 141.24 173.4 Q 141.91 172.83 141.91 171.91 Q 141.91 171.16 141.47 170.63 Q 141.04 170.1 139.87 169.45 L 138.97 168.94 Q 137.31 168.01 136.63 167.18 Q 135.95 166.35 135.95 165.25 Q 135.95 163.77 137.04 162.81 Q 138.13 161.85 139.82 161.85 Q 141.32 161.85 142.99 162.35 L 142.99 164.01 Q 140.93 163.21 139.92 163.21 Q 138.96 163.21 138.34 163.72 Q 137.72 164.22 137.72 164.98 Q 137.72 165.62 138.17 166.12 Q 138.63 166.61 139.84 167.3 L 140.77 167.82 Q 142.46 168.76 143.13 169.6 Q 143.8 170.44 143.8 171.62 Q 143.8 173.29 142.55 174.31 Q 141.29 175.32 139.23 175.32 M 139.23 175.32"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 140.91 179.55 L 139.33 179.05 L 137.74 179.55 M 140.91 179.55 M 142.3 180 L 141.29 179.68 L 137.35 179.68 L 136.33 180 L 135.11 180 L 138.79 178.83 L 140.1 178.83 L 143.73 180 M 142.3 180"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 143.18 180.97 Q 141.49 181.03 140.24 181.03 Q 138.02 181.03 136.84 180.87 Q 135.65 180.71 135.65 180.42 Q 135.65 180.13 136.85 179.97 Q 138.05 179.8 140.22 179.8 Q 141.64 179.8 143.17 179.86 L 143.17 180.01 Q 141.25 179.93 140.22 179.93 Q 138.72 179.93 137.88 180.06 Q 137.05 180.19 137.05 180.42 Q 137.05 180.65 137.94 180.78 Q 138.84 180.91 140.44 180.91 Q 141.1 180.91 141.87 180.88 L 141.87 180.5 L 143.18 180.5 M 143.18 180.97"/></g><rect x="144" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 147.98 175 L 147.98 163.53 L 144.13 163.53 L 144.13 162.17 L 153.36 162.17 L 153.36 163.53 L 149.52 163.53 L 149.52 175 M 147.98 175"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 144.93 180 L 144.93 178.83 L 146.35 178.83 L 148.36 179.74 L 150.42 178.83 L 151.69 178.83 L 151.69 180 L 150.73 180 L 150.73 179.05 L 148.74 179.92 L 147.75 179.92 L 145.81 179.05 L 145.81 180 M 144.93 180"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 148.23 181.03 Q 146.92 181.03 144.88 180.98 L 144.88 180.81 Q 147.08 180.91 148.49 180.91 Q 149.58 180.91 150.24 180.85 Q 150.91 180.8 150.91 180.72 Q 150.91 180.65 150.47 180.6 Q 150.04 180.55 148.87 180.5 L 147.97 180.45 Q 146.31 180.36 145.63 180.29 Q 144.95 180.21 144.95 180.11 Q 144.95 179.98 146.04 179.89 Q 147.13 179.8 148.82 179.8 Q 150.32 179.8 151.99 179.85 L 151.99 180 Q 149.93 179.93 148.92 179.93 Q 147.96 179.93 147.34 179.97 Q 146.72 180.02 146.72 180.09 Q 146.72 180.15 147.17 180.19 Q 147.63 180.24 148.84 180.3 L 149.77 180.35 Q 151.46 180.43 152.13 180.51 Q 152.8 180.59 152.8 180.69 Q 152.8 180.84 151.55 180.94 Q 150.29 181.03 148.23 181.03 M 148.23 181.03"/></g><rect x="153" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 157.23 175.32 Q 155.92 175.32 153.88 174.76 L 153.88 172.95 Q 156.08 173.96 157.49 173.96 Q 158.58 173.96 159.24 173.4 Q 159.91 172.83 159.91 171.91 Q 159.91 171.16 159.47 170.63 Q 159.04 170.1 157.87 169.45 L 156.97 168.94 Q 155.31 168.01 154.63 167.18 Q 153.95 166.35 153.95 165.25 Q 153.95 163.77 155.04 162.81 Q 156.13 161.85 157.82 161.85 Q 159.32 161.85 160.99 162.35 L 160.99 164.01 Q 158.93 163.21 157.92 163.21 Q 156.96 163.21 156.34 163.72 Q 155.72 164.22 155.72 164.98 Q 155.72 165.62 156.17 166.12 Q 156.63 166.61 157.84 167.3 L 158.77 167.82 Q 160.46 168.76 161.13 169.6 Q 161.8 170.44 161.8 171.62 Q 161.8 173.29 160.55 174.31 Q 159.29 175.32 157.23 175.32 M 157.23 175.32"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 158.91 179.55 L 157.33 179.05 L 155.74 179.55 M 158.91 179.55 M 160.3 180 L 159.29 179.68 L 155.35 179.68 L 154.33 180 L 153.11 180 L 156.79 178.83 L 158.1 178.83 L 161.73 180 M 160.3 180"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 156.98 181 L 156.98 179.96 L 153.13 179.96 L 153.13 179.83 L 162.36 179.83 L 162.36 179.96 L 158.52 179.96 L 158.52 181 M 156.98 181"/></g><rect x="162" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 163.68 175 L 163.68 162.17 L 170.95 162.17 L 170.95 163.53 L 165.52 163.53 L 165.52 167.83 L 170.08 167.83 L 170.08 169.18 L 165.52 169.18 L 165.52 175 M 163.68 175"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 164.78 180 L 164.78 178.83 L 167.86 178.83 L 167.86 180 M 164.78 180"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 166.23 181.03 Q 164.92 181.03 162.88 180.98 L 162.88 180.81 Q 165.08 180.91 166.49 180.91 Q 167.58 180.91 168.24 180.85 Q 168.91 180.8 168.91 180.72 Q 168.91 180.65 168.47 180.6 Q 168.04 180.55 166.87 180.5 L 165.97 180.45 Q 164.31 180.36 163.63 180.29 Q 162.95 180.21 162.95 180.11 Q 162.95 179.98 164.04 179.89 Q 165.13 179.8 166.82 179.8 Q 168.32 179.8 169.99 179.85 L 169.99 180 Q 167.93 179.93 166.92 179.93 Q 165.96 179.93 165.34 179.97 Q 164.72 180.02 164.72 180.09 Q 164.72 180.15 165.17 180.19 Q 165.63 180.24 166.84 180.3 L 167.77 180.35 Q 169.46 180.43 170.13 180.51 Q 170.8 180.59 170.8 180.69 Q 170.8 180.84 169.55 180.94 Q 168.29 181.03 166.23 181.03 M 166.23 181.03"/></g><rect x="171" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 172.68 176 L 172.68 169.81 L 174.52 169.81 L 174.52 175.34 L 180.38 175.34 L 180.38 176 M 172.68 176"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 171.93 180 L 171.93 178.25 L 173.35 178.25 L 175.36 179.6 L 177.42 178.25 L 178.69 178.25 L 178.69 180 L 177.73 180 L 177.73 178.58 L 175.74 179.88 L 174.75 179.88 L 172.81 178.57 L 172.81 180 M 171.93 180"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 176.91 180.69 L 175.33 180.34 L 173.74 180.69 M 176.91 180.69 M 178.3 181 L 177.29 180.78 L 173.35 180.78 L 172.33 181 L 171.11 181 L 174.79 180.19 L 176.1 180.19 L 179.73 181 M 178.3 181"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 173.78 182 L 173.78 181.19 L 176.86 181.19 L 176.86 182 M 173.78 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 174.74 183 L 171.23 182.19 L 172.54 182.19 L 175.42 182.85 L 178.19 182.19 L 179.35 182.19 L 175.98 183 M 174.74 183"/></g><rect x="180" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 181.4 176 L 181.4 169.81 L 184.68 169.81 Q 186.24 169.81 187.07 170.2 Q 187.9 170.6 187.9 171.35 Q 187.9 172.58 185.71 173.1 L 189.33 176 L 187.44 176 L 184.36 173.38 L 182.92 173.38 L 182.92 176 M 181.4 176 M 182.92 172.73 L 183.42 172.73 Q 186.32 172.73 186.32 171.43 Q 186.32 170.47 183.89 170.47 L 182.92 170.47 M 182.92 172.73"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 181.4 182 L 181.4 177.56 L 184.35 177.56 Q 186.31 177.56 187.17 177.83 Q 188.03 178.1 188.03 178.72 Q 188.03 179.43 186.86 179.83 Q 185.68 180.24 183.6 180.24 L 182.92 180.24 L 182.92 182 M 181.4 182 M 182.92 179.76 L 183.54 179.76 Q 184.91 179.76 185.66 179.5 Q 186.41 179.24 186.41 178.77 Q 186.41 178.37 185.82 178.2 Q 185.24 178.03 183.87 178.03 L 182.92 178.03 M 182.92 179.76"/></g><rect x="189" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 190.4 176 L 190.4 169.81 L 193.68 169.81 Q 195.24 169.81 196.07 170.2 Q 196.9 170.6 196.9 171.35 Q 196.9 172.58 194.71 173.1 L 198.33 176 L 196.44 176 L 193.36 173.38 L 191.92 173.38 L 191.92 176 M 190.4 176 M 191.92 172.73 L 192.42 172.73 Q 195.32 172.73 195.32 171.43 Q 195.32 170.47 192.89 170.47 L 191.92 170.47 M 191.92 172.73"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 190.2 180 L 190.2 178.25 L 191.44 178.25 L 191.44 179.11 L 195.2 178.25 L 196.52 178.25 L 192.88 179.09 L 197.17 180 L 195.5 180 L 191.44 179.11 L 191.44 180 M 190.2 180"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 194.91 180.69 L 193.33 180.34 L 191.74 180.69 M 194.91 180.69 M 196.3 181 L 195.29 180.78 L 191.35 180.78 L 190.33 181 L 189.11 181 L 192.79 180.19 L 194.1 180.19 L 197.73 181 M 196.3 181"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 192.98 182 L 192.98 181.28 L 189.13 181.28 L 189.13 181.19 L 198.36 181.19 L 198.36 181.28 L 194.52 181.28 L 194.52 182 M 192.98 182"/></g><rect x="198" y="178" width="9" height="10" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 206.27 180.39 Q 204.35 180.24 203.05 180.04 Q 202.54 180.05 202.26 180.05 Q 200.62 180.05 199.6 179.76 Q 198.57 179.48 198.57 179.03 Q 198.57 178.56 199.61 178.29 Q 200.64 178.01 202.37 178.01 Q 204.11 178.01 205.14 178.29 Q 206.17 178.56 206.17 179.03 Q 206.17 179.7 204.09 179.96 Q 205.49 180.11 207 180.17 M 206.27 180.39 M 202.34 179.84 Q 203.59 179.84 204.27 179.63 Q 204.95 179.41 204.95 179.02 Q 204.95 178.64 204.27 178.43 Q 203.59 178.21 202.37 178.21 Q 201.16 178.21 200.48 178.43 Q 199.8 178.64 199.8 179.03 Q 199.8 179.41 200.47 179.62 Q 201.15 179.84 202.34 179.84 M 202.34 179.84"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 199.2 182 L 199.2 180.51 L 200.44 180.51 L 200.44 181.24 L 204.2 180.51 L 205.52 180.51 L 201.88 181.22 L 206.17 182 L 204.5 182 L 200.44 181.24 L 200.44 182 M 199.2 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 203.91 182.83 L 202.33 182.64 L 200.74 182.83 M 203.91 182.83 M 205.3 183 L 204.29 182.88 L 200.35 182.88 L 199.33 183 L 198.11 183 L 201.79 182.55 L 203.1 182.55 L 206.73 183 M 205.3 183"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 199.4 183 L 199.4 182.55 L 202.35 182.55 Q 204.31 182.55 205.17 182.58 Q 206.03 182.61 206.03 182.67 Q 206.03 182.74 204.86 182.78 Q 203.68 182.82 201.6 182.82 L 200.92 182.82 L 200.92 183 M 199.4 183 M 200.92 182.77 L 201.54 182.77 Q 202.91 182.77 203.66 182.75 Q 204.41 182.72 204.41 182.67 Q 204.41 182.63 203.82 182.62 Q 203.24 182.6 201.87 182.6 L 200.92 182.6 M 200.92 182.77"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 202.23 184.01 Q 200.92 184.01 198.88 183.99 L 198.88 183.93 Q 201.08 183.96 202.49 183.96 Q 203.58 183.96 204.24 183.94 Q 204.91 183.92 204.91 183.89 Q 204.91 183.87 204.47 183.85 Q 204.04 183.83 202.87 183.81 L 201.97 183.79 Q 200.31 183.76 199.63 183.73 Q 198.95 183.7 198.95 183.66 Q 198.95 183.61 200.04 183.57 Q 201.13 183.54 202.82 183.54 Q 204.32 183.54 205.99 183.56 L 205.99 183.62 Q 203.93 183.59 202.92 183.59 Q 201.96 183.59 201.34 183.61 Q 200.72 183.62 200.72 183.65 Q 200.72 183.67 201.17 183.69 Q 201.63 183.71 202.84 183.73 L 203.77 183.75 Q 205.46 183.78 206.13 183.81 Q 206.8 183.84 206.8 183.88 Q 206.8 183.94 205.55 183.98 Q 204.29 184.01 202.23 184.01 M 202.23 184.01"/></g><rect x="207" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 208.4 176 L 208.4 169.81 L 211.35 169.81 Q 213.31 169.81 214.17 170.19 Q 215.03 170.57 215.03 171.43 Q 215.03 172.42 213.86 172.98 Q 212.68 173.54 210.6 173.54 L 209.92 173.54 L 209.92 176 M 208.4 176 M 209.92 172.88 L 210.54 172.88 Q 211.91 172.88 212.66 172.52 Q 213.41 172.16 213.41 171.5 Q 213.41 170.94 212.82 170.71 Q 212.24 170.47 210.87 170.47 L 209.92 170.47 M 209.92 172.88"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 215.27 181.54 Q 213.35 181.33 212.05 181.05 Q 211.54 181.07 211.26 181.07 Q 209.62 181.07 208.6 180.67 Q 207.57 180.28 207.57 179.65 Q 207.57 179.01 208.61 178.63 Q 209.64 178.24 211.37 178.24 Q 213.11 178.24 214.14 178.63 Q 215.17 179.01 215.17 179.66 Q 215.17 180.59 213.09 180.94 Q 214.49 181.15 216 181.23 M 215.27 181.54 M 211.34 180.78 Q 212.59 180.78 213.27 180.49 Q 213.95 180.19 213.95 179.65 Q 213.95 179.12 213.27 178.82 Q 212.59 178.53 211.37 178.53 Q 210.16 178.53 209.48 178.82 Q 208.8 179.12 208.8 179.65 Q 208.8 180.18 209.47 180.48 Q 210.15 180.78 211.34 180.78 M 211.34 180.78"/></g><rect x="216" y="172" width="9" height="16" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 221.91 175.17 L 220.33 173.11 L 218.74 175.17 M 221.91 175.17 M 223.3 177 L 222.29 175.67 L 218.35 175.67 L 217.33 177 L 216.11 177 L 219.79 172.22 L 221.1 172.22 L 224.73 177 M 223.3 177"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 219.98 180 L 219.98 177.86 L 216.13 177.86 L 216.13 177.61 L 225.36 177.61 L 225.36 177.86 L 221.52 177.86 L 221.52 180 M 219.98 180"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 219.74 183 L 216.23 181.45 L 217.54 181.45 L 220.42 182.72 L 223.19 181.45 L 224.35 181.45 L 220.98 183 M 219.74 183"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 216.93 184 L 216.93 183.28 L 218.35 183.28 L 220.36 183.84 L 222.42 183.28 L 223.69 183.28 L 223.69 184 L 222.73 184 L 222.73 183.42 L 220.74 183.95 L 219.75 183.95 L 217.81 183.41 L 217.81 184 M 216.93 184"/></g><rect x="225" y="164" width="9" height="24" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 226.4 175 L 226.4 164.24 L 229.35 164.24 Q 231.31 164.24 232.17 164.89 Q 233.03 165.55 233.03 167.06 Q 233.03 168.77 231.86 169.75 Q 230.68 170.72 228.6 170.72 L 227.92 170.72 L 227.92 175 M 226.4 175 M 227.92 169.57 L 228.54 169.57 Q 229.91 169.57 230.66 168.94 Q 231.41 168.32 231.41 167.17 Q 231.41 166.21 230.82 165.79 Q 230.24 165.38 228.87 165.38 L 227.92 165.38 M 227.92 169.57"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 228.74 182 L 225.23 178.41 L 226.54 178.41 L 229.42 181.35 L 232.19 178.41 L 233.35 178.41 L 229.98 182 M 228.74 182"/></g><rect x="234" y="178" width="9" height="10" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 237.98 180 L 237.98 178.26 L 234.13 178.26 L 234.13 178.06 L 243.36 178.06 L 243.36 178.26 L 239.52 178.26 L 239.52 180 M 237.98 180"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 236.78 182 L 236.78 180.51 L 239.86 180.51 L 239.86 182 M 236.78 182"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 235.4 184 L 235.4 182.51 L 238.35 182.51 Q 240.31 182.51 241.17 182.6 Q 242.03 182.69 242.03 182.9 Q 242.03 183.14 240.86 183.27 Q 239.68 183.41 237.6 183.41 L 236.92 183.41 L 236.92 184 M 235.4 184 M 236.92 183.25 L 237.54 183.25 Q 238.91 183.25 239.66 183.16 Q 240.41 183.07 240.41 182.91 Q 240.41 182.78 239.82 182.72 Q 239.24 182.66 237.87 182.66 L 236.92 182.66 M 236.92 183.25"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 234.93 185 L 234.93 184.03 L 236.35 184.03 L 238.36 184.78 L 240.42 184.03 L 241.69 184.03 L 241.69 185 L 240.73 185 L 240.73 184.21 L 238.74 184.93 L 237.75 184.93 L 235.81 184.21 L 235.81 185 M 234.93 185"/></g><rect x="243" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 247.23 175.21 Q 245.92 175.21 243.88 174.84 L 243.88 173.67 Q 246.08 174.33 247.49 174.33 Q 248.58 174.33 249.24 173.96 Q 249.91 173.59 249.91 173 Q 249.91 172.51 249.47 172.17 Q 249.04 171.82 247.87 171.4 L 246.97 171.07 Q 245.31 170.46 244.63 169.93 Q 243.95 169.39 243.95 168.68 Q 243.95 167.71 245.04 167.09 Q 246.13 166.47 247.82 166.47 Q 249.32 166.47 250.99 166.79 L 250.99 167.87 Q 248.93 167.36 247.92 167.36 Q 246.96 167.36 246.34 167.68 Q 245.72 168.01 245.72 168.5 Q 245.72 168.92 246.17 169.24 Q 246.63 169.56 247.84 170 L 248.77 170.34 Q 250.46 170.95 251.13 171.5 Q 251.8 172.04 251.8 172.81 Q 251.8 173.89 250.55 174.55 Q 249.29 175.21 247.23 175.21 M 247.23 175.21"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 243.93 180 L 243.93 177.96 L 245.35 177.96 L 247.36 179.54 L 249.42 177.96 L 250.69 177.96 L 250.69 180 L 249.73 180 L 249.73 178.34 L 247.74 179.86 L 246.75 179.86 L 244.81 178.34 L 244.81 180 M 243.93 180"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 248.91 180.64 L 247.33 180.23 L 245.74 180.64 M 248.91 180.64 M 250.3 181 L 249.29 180.74 L 245.35 180.74 L 244.33 181 L 243.11 181 L 246.79 180.06 L 248.1 180.06 L 251.73 181 M 250.3 181"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 244.4 183 L 244.4 182.06 L 247.35 182.06 Q 249.31 182.06 250.17 182.12 Q 251.03 182.17 251.03 182.31 Q 251.03 182.46 249.86 182.54 Q 248.68 182.63 246.6 182.63 L 245.92 182.63 L 245.92 183 M 244.4 183 M 245.92 182.52 L 246.54 182.52 Q 247.91 182.52 248.66 182.47 Q 249.41 182.42 249.41 182.32 Q 249.41 182.23 248.82 182.19 Q 248.24 182.16 246.87 182.16 L 245.92 182.16 M 245.92 182.52"/></g><rect x="252" y="172" width="9" height="16" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 253.68 177 L 253.68 172.22 L 255.52 172.22 L 255.52 176.49 L 261.38 176.49 L 261.38 177 M 253.68 177"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 255.74 180 L 252.23 177.61 L 253.54 177.61 L 256.42 179.57 L 259.19 177.61 L 260.35 177.61 L 256.98 180 M 255.74 180"/></g><g style="fill: rgb(255,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 257.18 182.02 Q 255.01 182.02 253.83 181.92 Q 252.65 181.82 252.65 181.64 Q 252.65 181.46 253.86 181.36 Q 255.06 181.26 257.24 181.26 Q 258.49 181.26 260.17 181.3 L 260.17 181.39 Q 258.26 181.34 257.22 181.34 Q 255.71 181.34 254.88 181.42 Q 254.05 181.5 254.05 181.64 Q 254.05 181.78 254.94 181.86 Q 255.82 181.94 257.36 181.94 Q 258.67 181.94 260.18 181.88 L 260.18 181.96 Q 258.81 182.02 257.18 182.02 M 257.18 182.02"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 252.93 183 L 252.93 182.28 L 254.35 182.28 L 256.36 182.84 L 258.42 182.28 L 259.69 182.28 L 259.69 183 L 258.73 183 L 258.73 182.42 L 256.74 182.95 L 255.75 182.95 L 253.81 182.41 L 253.81 183 M 252.93 183"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 255.98 184 L 255.98 183.36 L 252.13 183.36 L 252.13 183.28 L 261.36 183.28 L 261.36 183.36 L 257.52 183.36 L 257.52 184 M 255.98 184"/></g><rect x="261" y="180" width="9" height="8" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 262.4 181 L 262.4 179.8 L 265.68 179.8 Q 267.24 179.8 268.07 179.88 Q 268.9 179.96 268.9 180.1 Q 268.9 180.34 266.71 180.44 L 270.33 181 L 268.44 181 L 265.36 180.49 L 263.92 180.49 L 263.92 181 M 262.4 181 M 263.92 180.37 L 264.42 180.37 Q 267.32 180.37 267.32 180.12 Q 267.32 179.93 264.89 179.93 L 263.92 179.93 M 263.92 180.37"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 266.91 181.7 L 265.33 181.37 L 263.74 181.7 M 266.91 181.7 M 268.3 182 L 267.29 181.78 L 263.35 181.78 L 262.33 182 L 261.11 182 L 264.79 181.22 L 266.1 181.22 L 269.73 182 M 268.3 182"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 262.68 183 L 262.68 182.64 L 269.95 182.64 L 269.95 182.68 L 264.52 182.68 L 264.52 182.8 L 269.08 182.8 L 269.08 182.84 L 264.52 182.84 L 264.52 183 M 262.68 183"/></g><rect x="270" y="178" width="9" height="10" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 274.23 180.05 Q 272.92 180.05 270.88 179.96 L 270.88 179.69 Q 273.08 179.84 274.49 179.84 Q 275.58 179.84 276.24 179.76 Q 276.91 179.67 276.91 179.53 Q 276.91 179.42 276.47 179.34 Q 276.04 179.26 274.87 179.16 L 273.97 179.08 Q 272.31 178.94 271.63 178.81 Q 270.95 178.69 270.95 178.52 Q 270.95 178.3 272.04 178.15 Q 273.13 178.01 274.82 178.01 Q 276.32 178.01 277.99 178.08 L 277.99 178.33 Q 275.93 178.21 274.92 178.21 Q 273.96 178.21 273.34 178.29 Q 272.72 178.37 272.72 178.48 Q 272.72 178.58 273.17 178.65 Q 273.63 178.73 274.84 178.83 L 275.77 178.91 Q 277.46 179.05 278.13 179.18 Q 278.8 179.31 278.8 179.49 Q 278.8 179.74 277.55 179.89 Q 276.29 180.05 274.23 180.05 M 274.23 180.05"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 275.91 181.43 L 274.33 180.78 L 272.74 181.43 M 275.91 181.43 M 277.3 182 L 276.29 181.59 L 272.35 181.59 L 271.33 182 L 270.11 182 L 273.79 180.51 L 275.1 180.51 L 278.73 182 M 277.3 182"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 271.2 184 L 271.2 182.51 L 272.44 182.51 L 272.44 183.24 L 276.2 182.51 L 277.52 182.51 L 273.88 183.22 L 278.17 184 L 276.5 184 L 272.44 183.24 L 272.44 184 M 271.2 184"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 273.98 185 L 273.98 184.6 L 270.13 184.6 L 270.13 184.55 L 279.36 184.55 L 279.36 184.6 L 275.52 184.6 L 275.52 185 M 273.98 185"/></g><rect x="279" y="175" width="9" height="13" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 280.68 178 L 280.68 174.79 L 282.52 174.79 L 282.52 177.66 L 288.38 177.66 L 288.38 178 M 280.68 178"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 284.91 180.26 L 283.33 179.42 L 281.74 180.26 M 284.91 180.26 M 286.3 181 L 285.29 180.46 L 281.35 180.46 L 280.33 181 L 279.11 181 L 282.79 179.06 L 284.1 179.06 L 287.73 181 M 286.3 181"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 282.98 183 L 282.98 181.87 L 279.13 181.87 L 279.13 181.74 L 288.36 181.74 L 288.36 181.87 L 284.52 181.87 L 284.52 183 M 282.98 183"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 280.4 184 L 280.4 183.42 L 283.35 183.42 Q 285.31 183.42 286.17 183.45 Q 287.03 183.49 287.03 183.57 Q 287.03 183.66 285.86 183.72 Q 284.68 183.77 282.6 183.77 L 281.92 183.77 L 281.92 184 M 280.4 184 M 281.92 183.71 L 282.54 183.71 Q 283.91 183.71 284.66 183.67 Q 285.41 183.64 285.41 183.58 Q 285.41 183.52 284.82 183.5 Q 284.24 183.48 282.87 183.48 L 281.92 183.48 M 281.92 183.71"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 283.23 184.01 Q 281.92 184.01 279.88 183.99 L 279.88 183.91 Q 282.08 183.95 283.49 183.95 Q 284.58 183.95 285.24 183.93 Q 285.91 183.9 285.91 183.86 Q 285.91 183.83 285.47 183.8 Q 285.04 183.78 283.87 183.75 L 282.97 183.72 Q 281.31 183.68 280.63 183.64 Q 279.95 183.61 279.95 183.56 Q 279.95 183.49 281.04 183.45 Q 282.13 183.4 283.82 183.4 Q 285.32 183.4 286.99 183.42 L 286.99 183.5 Q 284.93 183.46 283.92 183.46 Q 282.96 183.46 282.34 183.49 Q 281.72 183.51 281.72 183.54 Q 281.72 183.57 282.17 183.6 Q 282.63 183.62 283.84 183.65 L 284.77 183.67 Q 286.46 183.72 287.13 183.75 Q 287.8 183.79 287.8 183.85 Q 287.8 183.92 286.55 183.97 Q 285.29 184.01 283.23 184.01 M 283.23 184.01"/></g><rect x="288" y="172" width="9" height="16" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 289.4 177 L 289.4 172.22 L 292.35 172.22 Q 294.31 172.22 295.17 172.51 Q 296.03 172.8 296.03 173.47 Q 296.03 174.23 294.86 174.67 Q 293.68 175.1 291.6 175.1 L 290.92 175.1 L 290.92 177 M 289.4 177 M 290.92 174.59 L 291.54 174.59 Q 292.91 174.59 293.66 174.31 Q 294.41 174.03 294.41 173.52 Q 294.41 173.09 293.82 172.91 Q 293.24 172.72 291.87 172.72 L 290.92 172.72 M 290.92 174.59"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 290.78 180 L 290.78 177.61 L 293.86 177.61 L 293.86 180 M 290.78 180"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 291.98 183 L 291.98 181.61 L 288.13 181.61 L 288.13 181.45 L 297.36 181.45 L 297.36 181.61 L 293.52 181.61 L 293.52 183 M 291.98 183"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 289.68 184 L 289.68 183.28 L 291.52 183.28 L 291.52 183.92 L 297.38 183.92 L 297.38 184 M 289.68 184"/></g><rect x="297" y="178" width="9" height="10" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 301.23 180.05 Q 299.92 180.05 297.88 179.96 L 297.88 179.69 Q 300.08 179.84 301.49 179.84 Q 302.58 179.84 303.24 179.76 Q 303.91 179.67 303.91 179.53 Q 303.91 179.42 303.47 179.34 Q 303.04 179.26 301.87 179.16 L 300.97 179.08 Q 299.31 178.94 298.63 178.81 Q 297.95 178.69 297.95 178.52 Q 297.95 178.3 299.04 178.15 Q 300.13 178.01 301.82 178.01 Q 303.32 178.01 304.99 178.08 L 304.99 178.33 Q 302.93 178.21 301.92 178.21 Q 300.96 178.21 300.34 178.29 Q 299.72 178.37 299.72 178.48 Q 299.72 178.58 300.17 178.65 Q 300.63 178.73 301.84 178.83 L 302.77 178.91 Q 304.46 179.05 305.13 179.18 Q 305.8 179.31 305.8 179.49 Q 305.8 179.74 304.55 179.89 Q 303.29 180.05 301.23 180.05 M 301.23 180.05"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 298.68 181 L 298.68 180.03 L 305.95 180.03 L 305.95 180.13 L 300.52 180.13 L 300.52 180.46 L 305.08 180.46 L 305.08 180.56 L 300.52 180.56 L 300.52 181 M 298.68 181"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 298.4 182 L 298.4 181.03 L 301.35 181.03 Q 303.31 181.03 304.17 181.09 Q 305.03 181.15 305.03 181.28 Q 305.03 181.44 303.86 181.53 Q 302.68 181.61 300.6 181.61 L 299.92 181.61 L 299.92 182 M 298.4 182 M 299.92 181.51 L 300.54 181.51 Q 301.91 181.51 302.66 181.45 Q 303.41 181.4 303.41 181.29 Q 303.41 181.21 302.82 181.17 Q 302.24 181.13 300.87 181.13 L 299.92 181.13 M 299.92 181.51"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 300.98 184 L 300.98 183.13 L 297.13 183.13 L 297.13 183.03 L 306.36 183.03 L 306.36 183.13 L 302.52 183.13 L 302.52 184 M 300.98 184"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 298.2 184 L 298.2 183.55 L 299.44 183.55 L 299.44 183.77 L 303.2 183.55 L 304.52 183.55 L 300.88 183.77 L 305.17 184 L 303.5 184 L 299.44 183.77 L 299.44 184 M 298.2 184"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 298.68 185 L 298.68 184.55 L 300.52 184.55 L 300.52 184.95 L 306.38 184.95 L 306.38 185 M 298.68 185"/></g><rect x="306" y="175" width="9" height="13" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 311.91 176.77 L 310.33 175.39 L 308.74 176.77 M 311.91 176.77 M 313.3 178 L 312.29 177.11 L 308.35 177.11 L 307.33 178 L 306.11 178 L 309.79 174.79 L 311.1 174.79 L 314.73 178 M 313.3 178"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 307.2 182 L 307.2 178.79 L 308.49 178.79 L 313.17 181.27 L 313.17 178.79 L 314.3 178.79 L 314.3 182 L 313.01 182 L 308.33 179.52 L 308.33 182 M 307.2 182"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 307.4 184 L 307.4 183.42 L 310.68 183.42 Q 312.24 183.42 313.07 183.45 Q 313.9 183.49 313.9 183.56 Q 313.9 183.68 311.71 183.73 L 315.33 184 L 313.44 184 L 310.36 183.75 L 308.92 183.75 L 308.92 184 M 307.4 184 M 308.92 183.69 L 309.42 183.69 Q 312.32 183.69 312.32 183.57 Q 312.32 183.48 309.89 183.48 L 308.92 183.48 M 308.92 183.69"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 309.98 184 L 309.98 183.48 L 306.13 183.48 L 306.13 183.42 L 315.36 183.42 L 315.36 183.48 L 311.52 183.48 L 311.52 184 M 309.98 184"/></g><rect x="315" y="178" width="9" height="10" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 318.74 180 L 315.23 178.06 L 316.54 178.06 L 319.42 179.65 L 322.19 178.06 L 323.35 178.06 L 319.98 180 M 318.74 180"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 316.2 182 L 316.2 180.51 L 317.49 180.51 L 322.17 181.66 L 322.17 180.51 L 323.3 180.51 L 323.3 182 L 322.01 182 L 317.33 180.85 L 317.33 182 M 316.2 182"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 318.98 183 L 318.98 182.13 L 315.13 182.13 L 315.13 182.03 L 324.36 182.03 L 324.36 182.13 L 320.52 182.13 L 320.52 183 M 318.98 183"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 320.91 183.83 L 319.33 183.64 L 317.74 183.83 M 320.91 183.83 M 322.3 184 L 321.29 183.88 L 317.35 183.88 L 316.33 184 L 315.11 184 L 318.79 183.55 L 320.1 183.55 L 323.73 184 M 322.3 184"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 316.68 184 L 316.68 183.55 L 323.95 183.55 L 323.95 183.6 L 318.52 183.6 L 318.52 183.75 L 323.08 183.75 L 323.08 183.8 L 318.52 183.8 L 318.52 184 M 316.68 184"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 316.68 185 L 316.68 184.55 L 318.52 184.55 L 318.52 184.95 L 324.38 184.95 L 324.38 185 M 316.68 185"/></g><rect x="324" y="175" width="9" height="13" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 332.18 177.91 Q 330.49 178.08 329.24 178.08 Q 327.02 178.08 325.84 177.64 Q 324.65 177.21 324.65 176.4 Q 324.65 175.6 325.85 175.16 Q 327.05 174.71 329.22 174.71 Q 330.64 174.71 332.17 174.86 L 332.17 175.28 Q 330.25 175.05 329.22 175.05 Q 327.72 175.05 326.88 175.41 Q 326.05 175.76 326.05 176.4 Q 326.05 177.04 326.94 177.39 Q 327.84 177.74 329.44 177.74 Q 330.1 177.74 330.87 177.66 L 330.87 176.62 L 332.18 176.62 M 332.18 177.91"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 327.98 181 L 327.98 179.26 L 324.13 179.26 L 324.13 179.06 L 333.36 179.06 L 333.36 179.26 L 329.52 179.26 L 329.52 181 M 327.98 181"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 325.2 183 L 325.2 181.74 L 326.44 181.74 L 326.44 182.36 L 330.2 181.74 L 331.52 181.74 L 327.88 182.34 L 332.17 183 L 330.5 183 L 326.44 182.36 L 326.44 183 M 325.2 183"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 325.4 184 L 325.4 183.42 L 328.68 183.42 Q 330.24 183.42 331.07 183.45 Q 331.9 183.49 331.9 183.56 Q 331.9 183.68 329.71 183.73 L 333.33 184 L 331.44 184 L 328.36 183.75 L 326.92 183.75 L 326.92 184 M 325.4 184 M 326.92 183.69 L 327.42 183.69 Q 330.32 183.69 330.32 183.57 Q 330.32 183.48 327.89 183.48 L 326.92 183.48 M 326.92 183.69"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 328.23 184.01 Q 326.92 184.01 324.88 183.99 L 324.88 183.91 Q 327.08 183.95 328.49 183.95 Q 329.58 183.95 330.24 183.93 Q 330.91 183.9 330.91 183.86 Q 330.91 183.83 330.47 183.8 Q 330.04 183.78 328.87 183.75 L 327.97 183.72 Q 326.31 183.68 325.63 183.64 Q 324.95 183.61 324.95 183.56 Q 324.95 183.49 326.04 183.45 Q 327.13 183.4 328.82 183.4 Q 330.32 183.4 331.99 183.42 L 331.99 183.5 Q 329.93 183.46 328.92 183.46 Q 327.96 183.46 327.34 183.49 Q 326.72 183.51 326.72 183.54 Q 326.72 183.57 327.17 183.6 Q 327.63 183.62 328.84 183.65 L 329.77 183.67 Q 331.46 183.72 332.13 183.75 Q 332.8 183.79 332.8 183.85 Q 332.8 183.92 331.55 183.97 Q 330.29 184.01 328.23 184.01 M 328.23 184.01"/></g><rect x="333" y="180" width="9" height="8" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 334.68 181 L 334.68 179.8 L 341.95 179.8 L 341.95 179.93 L 336.52 179.93 L 336.52 180.31 L 341.07 180.31 L 341.07 180.44 L 336.52 180.44 L 336.52 180.87 L 342.33 180.87 L 342.33 181 M 334.68 181"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 341.27 182.24 Q 339.35 182.15 338.05 182.02 Q 337.54 182.03 337.26 182.03 Q 335.62 182.03 334.6 181.86 Q 333.57 181.68 333.57 181.4 Q 333.57 181.12 334.61 180.95 Q 335.64 180.77 337.37 180.77 Q 339.11 180.77 340.14 180.95 Q 341.17 181.12 341.17 181.4 Q 341.17 181.82 339.09 181.97 Q 340.49 182.07 342 182.1 M 341.27 182.24 M 337.34 181.9 Q 338.59 181.9 339.27 181.77 Q 339.95 181.64 339.95 181.4 Q 339.95 181.17 339.27 181.03 Q 338.59 180.9 337.37 180.9 Q 336.16 180.9 335.48 181.03 Q 334.8 181.17 334.8 181.4 Q 334.8 181.63 335.47 181.77 Q 336.15 181.9 337.34 181.9 M 337.34 181.9"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 334.4 184 L 334.4 183.22 L 337.68 183.22 Q 339.24 183.22 340.07 183.27 Q 340.9 183.32 340.9 183.42 Q 340.9 183.57 338.71 183.64 L 342.33 184 L 340.44 184 L 337.36 183.67 L 335.92 183.67 L 335.92 184 M 334.4 184 M 335.92 183.59 L 336.42 183.59 Q 339.32 183.59 339.32 183.43 Q 339.32 183.31 336.89 183.31 L 335.92 183.31 M 335.92 183.59"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 336.74 185 L 333.23 184.22 L 334.54 184.22 L 337.42 184.86 L 340.19 184.22 L 341.35 184.22 L 337.98 185 M 336.74 185"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 338.91 184.86 L 337.33 184.71 L 335.74 184.86 M 338.91 184.86 M 340.3 185 L 339.29 184.9 L 335.35 184.9 L 334.33 185 L 333.11 185 L 336.79 184.64 L 338.1 184.64 L 341.73 185 M 340.3 185"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 334.2 186 L 334.2 185.64 L 335.49 185.64 L 340.17 185.92 L 340.17 185.64 L 341.3 185.64 L 341.3 186 L 340.01 186 L 335.33 185.72 L 335.33 186 M 334.2 186"/></g><rect x="342" y="186" width="9" height="2" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 343.68 186 L 343.68 185.91 L 350.95 185.91 L 350.95 185.92 L 345.52 185.92 L 345.52 185.95 L 350.08 185.95 L 350.08 185.96 L 345.52 185.96 L 345.52 186 M 343.68 186"/></g><rect x="351" y="186" width="9" height="2" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 352.4 186 L 352.4 185.91 L 355.35 185.91 Q 357.31 185.91 358.17 185.92 Q 359.03 185.92 359.03 185.93 Q 359.03 185.95 357.86 185.96 Q 356.68 185.96 354.6 185.96 L 353.92 185.96 L 353.92 186 M 352.4 186 M 353.92 185.95 L 354.54 185.95 Q 355.91 185.95 356.66 185.95 Q 357.41 185.94 357.41 185.93 Q 357.41 185.93 356.82 185.92 Q 356.24 185.92 354.87 185.92 L 353.92 185.92 M 353.92 185.95"/></g><rect x="360" y="175" width="9" height="13" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 365.91 176.77 L 364.33 175.39 L 362.74 176.77 M 365.91 176.77 M 367.3 178 L 366.29 177.11 L 362.35 177.11 L 361.33 178 L 360.11 178 L 363.79 174.79 L 365.1 174.79 L 368.73 178 M 367.3 178"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 364.23 182.08 Q 362.92 182.08 360.88 181.94 L 360.88 181.49 Q 363.08 181.74 364.49 181.74 Q 365.58 181.74 366.24 181.6 Q 366.91 181.46 366.91 181.23 Q 366.91 181.04 366.47 180.91 Q 366.04 180.78 364.87 180.61 L 363.97 180.49 Q 362.31 180.25 361.63 180.04 Q 360.95 179.84 360.95 179.56 Q 360.95 179.19 362.04 178.95 Q 363.13 178.71 364.82 178.71 Q 366.32 178.71 367.99 178.84 L 367.99 179.25 Q 365.93 179.05 364.92 179.05 Q 363.96 179.05 363.34 179.18 Q 362.72 179.3 362.72 179.5 Q 362.72 179.66 363.17 179.78 Q 363.63 179.9 364.84 180.07 L 365.77 180.2 Q 367.46 180.44 368.13 180.65 Q 368.8 180.86 368.8 181.15 Q 368.8 181.57 367.55 181.83 Q 366.29 182.08 364.23 182.08 M 364.23 182.08"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 368.18 183.97 Q 366.49 184.03 365.24 184.03 Q 363.02 184.03 361.84 183.86 Q 360.65 183.69 360.65 183.37 Q 360.65 183.05 361.85 182.88 Q 363.05 182.71 365.22 182.71 Q 366.64 182.71 368.17 182.76 L 368.17 182.93 Q 366.25 182.84 365.22 182.84 Q 363.72 182.84 362.88 182.98 Q 362.05 183.12 362.05 183.37 Q 362.05 183.62 362.94 183.76 Q 363.84 183.9 365.44 183.9 Q 366.1 183.9 366.87 183.87 L 366.87 183.45 L 368.18 183.45 M 368.18 183.97"/></g><rect x="369" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 370.68 175 L 370.68 166.68 L 372.52 166.68 L 372.52 174.12 L 378.38 174.12 L 378.38 175 M 370.68 175"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 370.68 179 L 370.68 178.06 L 377.95 178.06 L 377.95 178.16 L 372.52 178.16 L 372.52 178.47 L 377.08 178.47 L 377.08 178.57 L 372.52 178.57 L 372.52 179 M 370.68 179"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 377.18 179.97 Q 375.49 180.02 374.24 180.02 Q 372.02 180.02 370.84 179.9 Q 369.65 179.77 369.65 179.53 Q 369.65 179.29 370.85 179.16 Q 372.05 179.03 374.22 179.03 Q 375.64 179.03 377.17 179.08 L 377.17 179.2 Q 375.25 179.13 374.22 179.13 Q 372.72 179.13 371.88 179.24 Q 371.05 179.34 371.05 179.53 Q 371.05 179.72 371.94 179.82 Q 372.84 179.92 374.44 179.92 Q 375.1 179.92 375.87 179.9 L 375.87 179.59 L 377.18 179.59 M 377.18 179.97"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 371.78 181 L 371.78 180.06 L 374.86 180.06 L 374.86 181 M 371.78 181"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 372.74 182 L 369.23 181.06 L 370.54 181.06 L 373.42 181.83 L 376.19 181.06 L 377.35 181.06 L 373.98 182 M 372.74 182"/></g><rect x="378" y="164" width="9" height="24" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 379.68 175 L 379.68 164.24 L 386.95 164.24 L 386.95 165.38 L 381.52 165.38 L 381.52 168.99 L 386.08 168.99 L 386.08 170.11 L 381.52 170.11 L 381.52 175 M 379.68 175"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 383.91 178.59 L 382.33 178.12 L 380.74 178.59 M 383.91 178.59 M 385.3 179 L 384.29 178.7 L 380.35 178.7 L 379.33 179 L 378.11 179 L 381.79 177.92 L 383.1 177.92 L 386.73 179 M 385.3 179"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 379.68 180 L 379.68 178.92 L 381.52 178.92 L 381.52 179.89 L 387.38 179.89 L 387.38 180 M 379.68 180"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 378.93 182 L 378.93 180.92 L 380.35 180.92 L 382.36 181.76 L 384.42 180.92 L 385.69 180.92 L 385.69 182 L 384.73 182 L 384.73 181.12 L 382.74 181.93 L 381.75 181.93 L 379.81 181.12 L 379.81 182 M 378.93 182"/></g><rect x="387" y="159" width="9" height="29" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 395.18 174.57 Q 393.49 175.4 392.24 175.4 Q 390.02 175.4 388.84 173.25 Q 387.65 171.1 387.65 167.09 Q 387.65 163.15 388.85 160.97 Q 390.05 158.78 392.22 158.78 Q 393.64 158.78 395.17 159.5 L 395.17 161.57 Q 393.25 160.46 392.22 160.46 Q 390.72 160.46 389.88 162.2 Q 389.05 163.94 389.05 167.11 Q 389.05 170.24 389.94 171.98 Q 390.84 173.72 392.44 173.72 Q 393.1 173.72 393.87 173.32 L 393.87 168.17 L 395.18 168.17 M 395.18 174.57"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 388.2 181 L 388.2 179.7 L 389.44 179.7 L 389.44 180.34 L 393.2 179.7 L 394.52 179.7 L 390.88 180.32 L 395.17 181 L 393.5 181 L 389.44 180.34 L 389.44 181 M 388.2 181"/></g><rect x="396" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 397.68 175 L 397.68 162.17 L 399.52 162.17 L 399.52 173.64 L 405.38 173.64 L 405.38 175 M 397.68 175"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 397.4 180 L 397.4 178.83 L 400.35 178.83 Q 402.31 178.83 403.17 178.91 Q 404.03 178.98 404.03 179.14 Q 404.03 179.33 402.86 179.43 Q 401.68 179.54 399.6 179.54 L 398.92 179.54 L 398.92 180 M 397.4 180 M 398.92 179.41 L 399.54 179.41 Q 400.91 179.41 401.66 179.34 Q 402.41 179.28 402.41 179.15 Q 402.41 179.05 401.82 179 Q 401.24 178.96 399.87 178.96 L 398.92 178.96 M 398.92 179.41"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 397.4 181 L 397.4 179.83 L 400.68 179.83 Q 402.24 179.83 403.07 179.91 Q 403.9 179.98 403.9 180.12 Q 403.9 180.36 401.71 180.45 L 405.33 181 L 403.44 181 L 400.36 180.51 L 398.92 180.51 L 398.92 181 M 397.4 181 M 398.92 180.38 L 399.42 180.38 Q 402.32 180.38 402.32 180.14 Q 402.32 179.96 399.89 179.96 L 398.92 179.96 M 398.92 180.38"/></g><rect x="405" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 406.2 175 L 406.2 162.17 L 407.44 162.17 L 407.44 168.48 L 411.2 162.17 L 412.52 162.17 L 408.88 168.29 L 413.17 175 L 411.5 175 L 407.44 168.5 L 407.44 175 M 406.2 175"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 406.68 180 L 406.68 178.83 L 408.52 178.83 L 408.52 179.88 L 414.38 179.88 L 414.38 180 M 406.68 180"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 409.23 181.03 Q 407.92 181.03 405.88 180.98 L 405.88 180.81 Q 408.08 180.91 409.49 180.91 Q 410.58 180.91 411.24 180.85 Q 411.91 180.8 411.91 180.72 Q 411.91 180.65 411.47 180.6 Q 411.04 180.55 409.87 180.5 L 408.97 180.45 Q 407.31 180.36 406.63 180.29 Q 405.95 180.21 405.95 180.11 Q 405.95 179.98 407.04 179.89 Q 408.13 179.8 409.82 179.8 Q 411.32 179.8 412.99 179.85 L 412.99 180 Q 410.93 179.93 409.92 179.93 Q 408.96 179.93 408.34 179.97 Q 407.72 180.02 407.72 180.09 Q 407.72 180.15 408.17 180.19 Q 408.63 180.24 409.84 180.3 L 410.77 180.35 Q 412.46 180.43 413.13 180.51 Q 413.8 180.59 413.8 180.69 Q 413.8 180.84 412.55 180.94 Q 411.29 181.03 409.23 181.03 M 409.23 181.03"/></g><rect x="414" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 418.23 175.21 Q 416.92 175.21 414.88 174.84 L 414.88 173.67 Q 417.08 174.33 418.49 174.33 Q 419.58 174.33 420.24 173.96 Q 420.91 173.59 420.91 173 Q 420.91 172.51 420.47 172.17 Q 420.04 171.82 418.87 171.4 L 417.97 171.07 Q 416.31 170.46 415.63 169.93 Q 414.95 169.39 414.95 168.68 Q 414.95 167.71 416.04 167.09 Q 417.13 166.47 418.82 166.47 Q 420.32 166.47 421.99 166.79 L 421.99 167.87 Q 419.93 167.36 418.92 167.36 Q 417.96 167.36 417.34 167.68 Q 416.72 168.01 416.72 168.5 Q 416.72 168.92 417.17 169.24 Q 417.63 169.56 418.84 170 L 419.77 170.34 Q 421.46 170.95 422.13 171.5 Q 422.8 172.04 422.8 172.81 Q 422.8 173.89 421.55 174.55 Q 420.29 175.21 418.23 175.21 M 418.23 175.21"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 419.91 179.22 L 418.33 178.34 L 416.74 179.22 M 419.91 179.22 M 421.3 180 L 420.29 179.43 L 416.35 179.43 L 415.33 180 L 414.11 180 L 417.79 177.96 L 419.1 177.96 L 422.73 180 M 421.3 180"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 417.98 182 L 417.98 180.18 L 414.13 180.18 L 414.13 179.96 L 423.36 179.96 L 423.36 180.18 L 419.52 180.18 L 419.52 182 M 417.98 182"/></g><rect x="423" y="186" width="9" height="2" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 426.74 186 L 423.23 185.91 L 424.54 185.91 L 427.42 185.98 L 430.19 185.91 L 431.35 185.91 L 427.98 186 M 426.74 186"/></g><rect x="432" y="172" width="9" height="16" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 436.23 177.12 Q 434.92 177.12 432.88 176.91 L 432.88 176.24 Q 435.08 176.61 436.49 176.61 Q 437.58 176.61 438.24 176.4 Q 438.91 176.19 438.91 175.85 Q 438.91 175.57 438.47 175.37 Q 438.04 175.17 436.87 174.93 L 435.97 174.74 Q 434.31 174.39 433.63 174.08 Q 432.95 173.77 432.95 173.36 Q 432.95 172.81 434.04 172.45 Q 435.13 172.1 436.82 172.1 Q 438.32 172.1 439.99 172.28 L 439.99 172.9 Q 437.93 172.6 436.92 172.6 Q 435.96 172.6 435.34 172.79 Q 434.72 172.98 434.72 173.26 Q 434.72 173.5 435.17 173.69 Q 435.63 173.87 436.84 174.13 L 437.77 174.32 Q 439.46 174.67 440.13 174.99 Q 440.8 175.3 440.8 175.74 Q 440.8 176.36 439.55 176.74 Q 438.29 177.12 436.23 177.12 M 436.23 177.12"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 440.18 180.92 Q 438.49 181.08 437.24 181.08 Q 435.02 181.08 433.84 180.66 Q 432.65 180.23 432.65 179.45 Q 432.65 178.67 433.85 178.24 Q 435.05 177.81 437.22 177.81 Q 438.64 177.81 440.17 177.95 L 440.17 178.36 Q 438.25 178.14 437.22 178.14 Q 435.72 178.14 434.88 178.49 Q 434.05 178.83 434.05 179.45 Q 434.05 180.07 434.94 180.41 Q 435.84 180.75 437.44 180.75 Q 438.1 180.75 438.87 180.67 L 438.87 179.66 L 440.18 179.66 M 440.18 180.92"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 437.91 183.41 L 436.33 182.74 L 434.74 183.41 M 437.91 183.41 M 439.3 184 L 438.29 183.57 L 434.35 183.57 L 433.33 184 L 432.11 184 L 435.79 182.45 L 437.1 182.45 L 440.73 184 M 439.3 184"/></g><rect x="441" y="178" width="9" height="10" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 444.98 180 L 444.98 178.26 L 441.13 178.26 L 441.13 178.06 L 450.36 178.06 L 450.36 178.26 L 446.52 178.26 L 446.52 180 M 444.98 180"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 445.23 181.02 Q 443.92 181.02 441.88 180.98 L 441.88 180.85 Q 444.08 180.92 445.49 180.92 Q 446.58 180.92 447.24 180.88 Q 447.91 180.84 447.91 180.77 Q 447.91 180.71 447.47 180.67 Q 447.04 180.63 445.87 180.58 L 444.97 180.54 Q 443.31 180.47 442.63 180.41 Q 441.95 180.34 441.95 180.26 Q 441.95 180.15 443.04 180.08 Q 444.13 180 445.82 180 Q 447.32 180 448.99 180.04 L 448.99 180.17 Q 446.93 180.11 445.92 180.11 Q 444.96 180.11 444.34 180.15 Q 443.72 180.18 443.72 180.24 Q 443.72 180.29 444.17 180.33 Q 444.63 180.36 445.84 180.42 L 446.77 180.46 Q 448.46 180.53 449.13 180.59 Q 449.8 180.65 449.8 180.74 Q 449.8 180.87 448.55 180.95 Q 447.29 181.02 445.23 181.02 M 445.23 181.02"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 446.91 181.83 L 445.33 181.64 L 443.74 181.83 M 446.91 181.83 M 448.3 182 L 447.29 181.88 L 443.35 181.88 L 442.33 182 L 441.11 182 L 444.79 181.55 L 446.1 181.55 L 449.73 182 M 448.3 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 442.68 182 L 442.68 181.55 L 444.52 181.55 L 444.52 181.95 L 450.38 181.95 L 450.38 182 M 442.68 182"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 442.4 183 L 442.4 182.55 L 445.35 182.55 Q 447.31 182.55 448.17 182.58 Q 449.03 182.61 449.03 182.67 Q 449.03 182.74 447.86 182.78 Q 446.68 182.82 444.6 182.82 L 443.92 182.82 L 443.92 183 M 442.4 183 M 443.92 182.77 L 444.54 182.77 Q 445.91 182.77 446.66 182.75 Q 447.41 182.72 447.41 182.67 Q 447.41 182.63 446.82 182.62 Q 446.24 182.6 444.87 182.6 L 443.92 182.6 M 443.92 182.77"/></g><rect x="450" y="180" width="9" height="8" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 455.91 180.54 L 454.33 180.03 L 452.74 180.54 M 455.91 180.54 M 457.3 181 L 456.29 180.67 L 452.35 180.67 L 451.33 181 L 450.11 181 L 453.79 179.8 L 455.1 179.8 L 458.73 181 M 457.3 181"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 451.2 182 L 451.2 181.22 L 452.44 181.22 L 452.44 181.61 L 456.2 181.22 L 457.52 181.22 L 453.88 181.59 L 458.17 182 L 456.5 182 L 452.44 181.61 L 452.44 182 M 451.2 182"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 451.4 183 L 451.4 182.22 L 454.68 182.22 Q 456.24 182.22 457.07 182.27 Q 457.9 182.32 457.9 182.42 Q 457.9 182.57 455.71 182.64 L 459.33 183 L 457.44 183 L 454.36 182.67 L 452.92 182.67 L 452.92 183 M 451.4 183 M 452.92 182.59 L 453.42 182.59 Q 456.32 182.59 456.32 182.43 Q 456.32 182.31 453.89 182.31 L 452.92 182.31 M 452.92 182.59"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 450.93 184 L 450.93 183.64 L 452.35 183.64 L 454.36 183.92 L 456.42 183.64 L 457.69 183.64 L 457.69 184 L 456.73 184 L 456.73 183.71 L 454.74 183.98 L 453.75 183.98 L 451.81 183.71 L 451.81 184 M 450.93 184"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 454.23 184.01 Q 452.92 184.01 450.88 183.99 L 450.88 183.94 Q 453.08 183.97 454.49 183.97 Q 455.58 183.97 456.24 183.96 Q 456.91 183.94 456.91 183.91 Q 456.91 183.89 456.47 183.88 Q 456.04 183.86 454.87 183.84 L 453.97 183.83 Q 452.31 183.8 451.63 183.78 Q 450.95 183.76 450.95 183.73 Q 450.95 183.69 452.04 183.66 Q 453.13 183.63 454.82 183.63 Q 456.32 183.63 457.99 183.65 L 457.99 183.69 Q 455.93 183.67 454.92 183.67 Q 453.96 183.67 453.34 183.68 Q 452.72 183.7 452.72 183.72 Q 452.72 183.74 453.17 183.75 Q 453.63 183.77 454.84 183.78 L 455.77 183.8 Q 457.46 183.83 458.13 183.85 Q 458.8 183.87 458.8 183.91 Q 458.8 183.95 457.55 183.98 Q 456.29 184.01 454.23 184.01 M 454.23 184.01"/></g><rect x="459" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 460.4 175 L 460.4 162.17 L 463.68 162.17 Q 465.24 162.17 466.07 162.99 Q 466.9 163.8 466.9 165.35 Q 466.9 167.92 464.71 168.99 L 468.33 175 L 466.44 175 L 463.36 169.57 L 461.92 169.57 L 461.92 175 M 460.4 175 M 461.92 168.21 L 462.42 168.21 Q 465.32 168.21 465.32 165.52 Q 465.32 163.53 462.89 163.53 L 461.92 163.53 M 461.92 168.21"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 460.2 180 L 460.2 178.83 L 461.49 178.83 L 466.17 179.73 L 466.17 178.83 L 467.3 178.83 L 467.3 180 L 466.01 180 L 461.33 179.1 L 461.33 180 M 460.2 180"/></g><rect x="468" y="172" width="9" height="16" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 476.18 176.87 Q 474.49 177.12 473.24 177.12 Q 471.02 177.12 469.84 176.47 Q 468.65 175.82 468.65 174.61 Q 468.65 173.42 469.85 172.76 Q 471.05 172.1 473.22 172.1 Q 474.64 172.1 476.17 172.31 L 476.17 172.94 Q 474.25 172.6 473.22 172.6 Q 471.72 172.6 470.88 173.13 Q 470.05 173.66 470.05 174.61 Q 470.05 175.56 470.94 176.09 Q 471.84 176.61 473.44 176.61 Q 474.1 176.61 474.87 176.49 L 474.87 174.93 L 476.18 174.93 M 476.18 176.87"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 469.2 180 L 469.2 178.45 L 470.49 178.45 L 475.17 179.65 L 475.17 178.45 L 476.3 178.45 L 476.3 180 L 475.01 180 L 470.33 178.8 L 470.33 180 M 469.2 180"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 469.4 181 L 469.4 180.28 L 472.68 180.28 Q 474.24 180.28 475.07 180.33 Q 475.9 180.37 475.9 180.46 Q 475.9 180.6 473.71 180.66 L 477.33 181 L 475.44 181 L 472.36 180.7 L 470.92 180.7 L 470.92 181 M 469.4 181 M 470.92 180.62 L 471.42 180.62 Q 474.32 180.62 474.32 180.47 Q 474.32 180.36 471.89 180.36 L 470.92 180.36 M 470.92 180.62"/></g><rect x="477" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 485.18 174.78 Q 483.49 175.21 482.24 175.21 Q 480.02 175.21 478.84 174.08 Q 477.65 172.95 477.65 170.84 Q 477.65 168.77 478.85 167.62 Q 480.05 166.47 482.22 166.47 Q 483.64 166.47 485.17 166.85 L 485.17 167.94 Q 483.25 167.36 482.22 167.36 Q 480.72 167.36 479.88 168.27 Q 479.05 169.19 479.05 170.85 Q 479.05 172.5 479.94 173.41 Q 480.84 174.33 482.44 174.33 Q 483.1 174.33 483.87 174.12 L 483.87 171.41 L 485.18 171.41 M 485.18 174.78"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 478.2 180 L 478.2 177.96 L 481.29 177.96 Q 482.67 177.96 483.52 178.03 Q 484.37 178.09 484.99 178.26 Q 485.98 178.51 485.98 178.93 Q 485.98 179.44 484.75 179.72 Q 483.53 180 481.31 180 M 478.2 180 M 479.52 179.78 L 481.21 179.78 Q 483.01 179.78 483.77 179.57 Q 484.58 179.34 484.58 178.96 Q 484.58 178.6 483.78 178.39 Q 483.3 178.27 482.62 178.22 Q 481.95 178.18 480.6 178.18 L 479.52 178.18 M 479.52 179.78"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 485.27 181.19 Q 483.35 181.12 482.05 181.02 Q 481.54 181.02 481.26 181.02 Q 479.62 181.02 478.6 180.89 Q 477.57 180.75 477.57 180.53 Q 477.57 180.3 478.61 180.17 Q 479.64 180.03 481.37 180.03 Q 483.11 180.03 484.14 180.17 Q 485.17 180.3 485.17 180.53 Q 485.17 180.86 483.09 180.98 Q 484.49 181.05 486 181.08 M 485.27 181.19 M 481.34 180.92 Q 482.59 180.92 483.27 180.82 Q 483.95 180.72 483.95 180.53 Q 483.95 180.34 483.27 180.24 Q 482.59 180.13 481.37 180.13 Q 480.16 180.13 479.48 180.24 Q 478.8 180.34 478.8 180.53 Q 478.8 180.71 479.47 180.82 Q 480.15 180.92 481.34 180.92 M 481.34 180.92"/></g><rect x="486" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 487.4 176 L 487.4 169.81 L 490.68 169.81 Q 492.24 169.81 493.07 170.2 Q 493.9 170.6 493.9 171.35 Q 493.9 172.58 491.71 173.1 L 495.33 176 L 493.44 176 L 490.36 173.38 L 488.92 173.38 L 488.92 176 M 487.4 176 M 488.92 172.73 L 489.42 172.73 Q 492.32 172.73 492.32 171.43 Q 492.32 170.47 489.89 170.47 L 488.92 170.47 M 488.92 172.73"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 487.68 181 L 487.68 178.31 L 489.52 178.31 L 489.52 180.71 L 495.38 180.71 L 495.38 181 M 487.68 181"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 494.18 181.98 Q 492.49 182.02 491.24 182.02 Q 489.02 182.02 487.84 181.91 Q 486.65 181.8 486.65 181.6 Q 486.65 181.4 487.85 181.28 Q 489.05 181.17 491.22 181.17 Q 492.64 181.17 494.17 181.21 L 494.17 181.31 Q 492.25 181.26 491.22 181.26 Q 489.72 181.26 488.88 181.35 Q 488.05 181.44 488.05 181.6 Q 488.05 181.76 488.94 181.85 Q 489.84 181.93 491.44 181.93 Q 492.1 181.93 492.87 181.91 L 492.87 181.65 L 494.18 181.65 M 494.18 181.98"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 487.2 183 L 487.2 182.19 L 488.44 182.19 L 488.44 182.59 L 492.2 182.19 L 493.52 182.19 L 489.88 182.58 L 494.17 183 L 492.5 183 L 488.44 182.59 L 488.44 183 M 487.2 183"/></g><rect x="495" y="175" width="9" height="13" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 498.74 178 L 495.23 174.79 L 496.54 174.79 L 499.42 177.42 L 502.19 174.79 L 503.35 174.79 L 499.98 178 M 498.74 178"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 500.91 179.52 L 499.33 178.97 L 497.74 179.52 M 500.91 179.52 M 502.3 180 L 501.29 179.65 L 497.35 179.65 L 496.33 180 L 495.11 180 L 498.79 178.74 L 500.1 178.74 L 503.73 180 M 502.3 180"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 497.78 182 L 497.78 180.74 L 500.86 180.74 L 500.86 182 M 497.78 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 496.68 183 L 496.68 181.74 L 498.52 181.74 L 498.52 182.87 L 504.38 182.87 L 504.38 183 M 496.68 183"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 496.4 184 L 496.4 183.42 L 499.68 183.42 Q 501.24 183.42 502.07 183.45 Q 502.9 183.49 502.9 183.56 Q 502.9 183.68 500.71 183.73 L 504.33 184 L 502.44 184 L 499.36 183.75 L 497.92 183.75 L 497.92 184 M 496.4 184 M 497.92 183.69 L 498.42 183.69 Q 501.32 183.69 501.32 183.57 Q 501.32 183.48 498.89 183.48 L 497.92 183.48 M 497.92 183.69"/></g><rect x="504" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 507.98 176 L 507.98 170.47 L 504.13 170.47 L 504.13 169.81 L 513.36 169.81 L 513.36 170.47 L 509.52 170.47 L 509.52 176 M 507.98 176"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 505.4 180 L 505.4 178.25 L 508.68 178.25 Q 510.24 178.25 511.07 178.36 Q 511.9 178.47 511.9 178.68 Q 511.9 179.03 509.71 179.18 L 513.33 180 L 511.44 180 L 508.36 179.26 L 506.92 179.26 L 506.92 180 M 505.4 180 M 506.92 179.07 L 507.42 179.07 Q 510.32 179.07 510.32 178.71 Q 510.32 178.44 507.89 178.44 L 506.92 178.44 M 506.92 179.07"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 507.74 182 L 504.23 180.25 L 505.54 180.25 L 508.42 181.68 L 511.19 180.25 L 512.35 180.25 L 508.98 182 M 507.74 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 504.93 183 L 504.93 182.19 L 506.35 182.19 L 508.36 182.82 L 510.42 182.19 L 511.69 182.19 L 511.69 183 L 510.73 183 L 510.73 182.34 L 508.74 182.95 L 507.75 182.95 L 505.81 182.34 L 505.81 183 M 504.93 183"/></g><rect x="513" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 518.91 171.82 L 517.33 168.23 L 515.74 171.82 M 518.91 171.82 M 520.3 175 L 519.29 172.7 L 515.35 172.7 L 514.33 175 L 513.11 175 L 516.79 166.68 L 518.1 166.68 L 521.73 175 M 520.3 175"/></g><g style="fill: rgb(255,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 518.18 181.08 Q 516.01 181.08 514.83 180.65 Q 513.65 180.22 513.65 179.43 Q 513.65 178.65 514.86 178.21 Q 516.06 177.78 518.24 177.78 Q 519.49 177.78 521.17 177.92 L 521.17 178.34 Q 519.26 178.12 518.22 178.12 Q 516.71 178.12 515.88 178.46 Q 515.05 178.81 515.05 179.44 Q 515.05 180.04 515.94 180.38 Q 516.82 180.73 518.36 180.73 Q 519.67 180.73 521.18 180.46 L 521.18 180.84 Q 519.81 181.08 518.18 181.08 M 518.18 181.08"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 516.98 183 L 516.98 182.16 L 513.13 182.16 L 513.13 182.06 L 522.36 182.06 L 522.36 182.16 L 518.52 182.16 L 518.52 183 M 516.98 183"/></g><rect x="522" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 522.93 175 L 522.93 162.17 L 524.35 162.17 L 526.36 172.1 L 528.42 162.17 L 529.69 162.17 L 529.69 175 L 528.73 175 L 528.73 164.57 L 526.74 174.14 L 525.75 174.14 L 523.81 164.54 L 523.81 175 M 522.93 175"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 530.27 181.51 Q 528.35 181.31 527.05 181.05 Q 526.54 181.06 526.26 181.06 Q 524.62 181.06 523.6 180.69 Q 522.57 180.33 522.57 179.74 Q 522.57 179.13 523.61 178.77 Q 524.64 178.41 526.37 178.41 Q 528.11 178.41 529.14 178.77 Q 530.17 179.13 530.17 179.74 Q 530.17 180.61 528.09 180.95 Q 529.49 181.14 531 181.22 M 530.27 181.51 M 526.34 180.8 Q 527.59 180.8 528.27 180.52 Q 528.95 180.24 528.95 179.73 Q 528.95 179.24 528.27 178.96 Q 527.59 178.68 526.37 178.68 Q 525.16 178.68 524.48 178.96 Q 523.8 179.24 523.8 179.73 Q 523.8 180.23 524.47 180.51 Q 525.15 180.8 526.34 180.8 M 526.34 180.8"/></g><rect x="531" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 536.91 167.57 L 535.33 154.68 L 533.74 167.57 M 536.91 167.57 M 538.3 179 L 537.29 170.72 L 533.35 170.72 L 532.33 179 L 531.11 179 L 534.79 149.1 L 536.1 149.1 L 539.73 179 M 538.3 179"/></g><rect x="540" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 543.98 175 L 543.98 167.56 L 540.13 167.56 L 540.13 166.68 L 549.36 166.68 L 549.36 167.56 L 545.52 167.56 L 545.52 175 M 543.98 175"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 544.23 183.13 Q 542.92 183.13 540.88 182.9 L 540.88 182.17 Q 543.08 182.58 544.49 182.58 Q 545.58 182.58 546.24 182.35 Q 546.91 182.12 546.91 181.75 Q 546.91 181.45 546.47 181.24 Q 546.04 181.02 544.87 180.76 L 543.97 180.55 Q 542.31 180.18 541.63 179.84 Q 540.95 179.51 540.95 179.06 Q 540.95 178.46 542.04 178.08 Q 543.13 177.69 544.82 177.69 Q 546.32 177.69 547.99 177.89 L 547.99 178.56 Q 545.93 178.24 544.92 178.24 Q 543.96 178.24 543.34 178.44 Q 542.72 178.65 542.72 178.95 Q 542.72 179.21 543.17 179.41 Q 543.63 179.61 544.84 179.89 L 545.77 180.1 Q 547.46 180.48 548.13 180.82 Q 548.8 181.16 548.8 181.63 Q 548.8 182.31 547.55 182.72 Q 546.29 183.13 544.23 183.13 M 544.23 183.13"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 545.91 186.22 L 544.33 185.34 L 542.74 186.22 M 545.91 186.22 M 547.3 187 L 546.29 186.43 L 542.35 186.43 L 541.33 187 L 540.11 187 L 543.79 184.96 L 545.1 184.96 L 548.73 187 M 547.3 187"/></g><rect x="549" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 552.74 179 L 552.74 166.52 L 549.12 149.1 L 550.88 149.1 L 553.69 162.6 L 556.73 149.1 L 558.16 149.1 L 554.28 166.43 L 554.28 179 M 552.74 179"/></g><rect x="558" y="154" width="9" height="34" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 559.2 176 L 559.2 154.14 L 560.44 154.14 L 560.44 164.89 L 564.2 154.14 L 565.52 154.14 L 561.88 164.57 L 566.17 176 L 564.5 176 L 560.44 164.92 L 560.44 176 M 559.2 176"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 559.2 186 L 559.2 182.7 L 560.49 182.7 L 565.17 185.25 L 565.17 182.7 L 566.3 182.7 L 566.3 186 L 565.01 186 L 560.33 183.45 L 560.33 186 M 559.2 186"/></g><rect x="567" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 570.74 179 L 567.23 149.1 L 568.54 149.1 L 571.42 173.59 L 574.19 149.1 L 575.35 149.1 L 571.98 179 M 570.74 179"/></g><rect x="576" y="154" width="9" height="34" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 577.2 176 L 577.2 154.14 L 578.44 154.14 L 578.44 164.89 L 582.2 154.14 L 583.52 154.14 L 579.88 164.57 L 584.17 176 L 582.5 176 L 578.44 164.92 L 578.44 176 M 577.2 176"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 579.98 186 L 579.98 183.05 L 576.13 183.05 L 576.13 182.7 L 585.36 182.7 L 585.36 183.05 L 581.52 183.05 L 581.52 186 M 579.98 186"/></g><rect x="585" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 586.68 175 L 586.68 162.17 L 588.52 162.17 L 588.52 173.64 L 594.38 173.64 L 594.38 175 M 586.68 175"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 586.68 185 L 586.68 178.59 L 593.95 178.59 L 593.95 179.27 L 588.52 179.27 L 588.52 181.42 L 593.08 181.42 L 593.08 182.09 L 588.52 182.09 L 588.52 185 M 586.68 185"/></g><rect x="594" y="156" width="9" height="32" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 596.78 176 L 596.78 156.86 L 599.86 156.86 L 599.86 176 M 596.78 176"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 597.74 186 L 594.23 181.22 L 595.54 181.22 L 598.42 185.13 L 601.19 181.22 L 602.35 181.22 L 598.98 186 M 597.74 186"/></g><rect x="603" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 606.98 179 L 606.98 152.27 L 603.13 152.27 L 603.13 149.1 L 612.36 149.1 L 612.36 152.27 L 608.52 152.27 L 608.52 179 M 606.98 179"/></g><rect x="612" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 613.4 179 L 613.4 149.1 L 616.35 149.1 Q 618.31 149.1 619.17 150.93 Q 620.03 152.76 620.03 156.94 Q 620.03 161.71 618.86 164.41 Q 617.68 167.12 615.6 167.12 L 614.92 167.12 L 614.92 179 M 613.4 179 M 614.92 163.91 L 615.54 163.91 Q 616.91 163.91 617.66 162.17 Q 618.41 160.43 618.41 157.26 Q 618.41 154.58 617.82 153.42 Q 617.24 152.27 615.87 152.27 L 614.92 152.27 M 614.92 163.91"/></g><rect x="621" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 622.68 175 L 622.68 162.17 L 629.95 162.17 L 629.95 163.53 L 624.52 163.53 L 624.52 167.65 L 629.07 167.65 L 629.07 168.99 L 624.52 168.99 L 624.52 173.64 L 630.33 173.64 L 630.33 175 M 622.68 175"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 622.2 184 L 622.2 178.95 L 625.29 178.95 Q 626.67 178.95 627.52 179.11 Q 628.37 179.28 628.99 179.68 Q 629.98 180.32 629.98 181.35 Q 629.98 182.61 628.75 183.31 Q 627.53 184 625.31 184 M 622.2 184 M 623.52 183.46 L 625.21 183.46 Q 627.01 183.46 627.77 182.93 Q 628.58 182.37 628.58 181.42 Q 628.58 180.53 627.78 180.02 Q 627.3 179.71 626.62 179.6 Q 625.95 179.48 624.6 179.48 L 623.52 179.48 M 623.52 183.46"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 624.98 187 L 624.98 185.96 L 621.13 185.96 L 621.13 185.83 L 630.36 185.83 L 630.36 185.96 L 626.52 185.96 L 626.52 187 M 624.98 187"/></g><rect x="630" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 638.18 178.19 Q 636.49 179.75 635.24 179.75 Q 633.02 179.75 631.84 175.69 Q 630.65 171.63 630.65 164.05 Q 630.65 156.62 631.85 152.48 Q 633.05 148.35 635.22 148.35 Q 636.64 148.35 638.17 149.71 L 638.17 153.63 Q 636.25 151.53 635.22 151.53 Q 633.72 151.53 632.88 154.82 Q 632.05 158.11 632.05 164.09 Q 632.05 170.01 632.94 173.29 Q 633.84 176.58 635.44 176.58 Q 636.1 176.58 636.87 175.83 L 636.87 166.09 L 638.18 166.09 M 638.18 178.19"/></g><rect x="639" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 640.68 176 L 640.68 169.81 L 647.95 169.81 L 647.95 170.47 L 642.52 170.47 L 642.52 172.45 L 647.07 172.45 L 647.07 173.1 L 642.52 173.1 L 642.52 175.34 L 648.33 175.34 L 648.33 176 M 640.68 176"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 640.4 182 L 640.4 177.56 L 643.35 177.56 Q 645.31 177.56 646.17 177.83 Q 647.03 178.1 647.03 178.72 Q 647.03 179.43 645.86 179.83 Q 644.68 180.24 642.6 180.24 L 641.92 180.24 L 641.92 182 M 640.4 182 M 641.92 179.76 L 642.54 179.76 Q 643.91 179.76 644.66 179.5 Q 645.41 179.24 645.41 178.77 Q 645.41 178.37 644.82 178.2 Q 644.24 178.03 642.87 178.03 L 641.92 178.03 M 641.92 179.76"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 640.2 185 L 640.2 184.19 L 641.44 184.19 L 641.44 184.59 L 645.2 184.19 L 646.52 184.19 L 642.88 184.58 L 647.17 185 L 645.5 185 L 641.44 184.59 L 641.44 185 M 640.2 185"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 640.2 186 L 640.2 185.19 L 641.49 185.19 L 646.17 185.82 L 646.17 185.19 L 647.3 185.19 L 647.3 186 L 646.01 186 L 641.33 185.38 L 641.33 186 M 640.2 186"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 642.98 187 L 642.98 186.28 L 639.13 186.28 L 639.13 186.19 L 648.36 186.19 L 648.36 186.28 L 644.52 186.28 L 644.52 187 M 642.98 187"/></g><rect x="648" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 656.27 177.24 Q 654.35 176.77 653.05 176.11 Q 652.54 176.15 652.26 176.15 Q 650.62 176.15 649.6 175.25 Q 648.57 174.35 648.57 172.91 Q 648.57 171.43 649.61 170.54 Q 650.64 169.66 652.37 169.66 Q 654.11 169.66 655.14 170.54 Q 656.17 171.43 656.17 172.92 Q 656.17 175.05 654.09 175.87 Q 655.49 176.34 657 176.54 M 656.27 177.24 M 652.34 175.5 Q 653.59 175.5 654.27 174.82 Q 654.95 174.13 654.95 172.89 Q 654.95 171.68 654.27 171 Q 653.59 170.31 652.37 170.31 Q 651.16 170.31 650.48 171 Q 649.8 171.68 649.8 172.9 Q 649.8 174.11 650.47 174.8 Q 651.15 175.5 652.34 175.5 M 652.34 175.5"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 650.78 181 L 650.78 177.5 L 653.86 177.5 L 653.86 181 M 650.78 181"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 651.74 185 L 648.23 182.31 L 649.54 182.31 L 652.42 184.51 L 655.19 182.31 L 656.35 182.31 L 652.98 185 M 651.74 185"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 649.68 187 L 649.68 186.19 L 651.52 186.19 L 651.52 186.91 L 657.38 186.91 L 657.38 187 M 649.68 187"/></g><rect x="657" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 658.68 179 L 658.68 149.1 L 665.95 149.1 L 665.95 152.27 L 660.52 152.27 L 660.52 161.87 L 665.07 161.87 L 665.07 165 L 660.52 165 L 660.52 175.83 L 666.33 175.83 L 666.33 179 M 658.68 179"/></g><rect x="666" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 667.68 176 L 667.68 169.81 L 674.95 169.81 L 674.95 170.47 L 669.52 170.47 L 669.52 172.54 L 674.08 172.54 L 674.08 173.19 L 669.52 173.19 L 669.52 176 M 667.68 176"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 669.74 182 L 666.23 177.56 L 667.54 177.56 L 670.42 181.2 L 673.19 177.56 L 674.35 177.56 L 670.98 182 M 669.74 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 667.68 187 L 667.68 184.31 L 669.52 184.31 L 669.52 186.71 L 675.38 186.71 L 675.38 187 M 667.68 187"/></g><rect x="675" y="164" width="9" height="24" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 676.68 175 L 676.68 164.24 L 683.95 164.24 L 683.95 165.38 L 678.52 165.38 L 678.52 168.83 L 683.07 168.83 L 683.07 169.96 L 678.52 169.96 L 678.52 173.86 L 684.33 173.86 L 684.33 175 M 676.68 175"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 676.2 182 L 676.2 178.41 L 679.29 178.41 Q 680.67 178.41 681.52 178.53 Q 682.37 178.65 682.99 178.93 Q 683.98 179.38 683.98 180.12 Q 683.98 181.02 682.75 181.51 Q 681.53 182 679.31 182 M 676.2 182 M 677.52 181.62 L 679.21 181.62 Q 681.01 181.62 681.77 181.24 Q 682.58 180.84 682.58 180.17 Q 682.58 179.54 681.78 179.18 Q 681.3 178.96 680.62 178.87 Q 679.95 178.79 678.6 178.79 L 677.52 178.79 M 677.52 181.62"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 683.27 186.72 Q 681.35 186.44 680.05 186.07 Q 679.54 186.09 679.26 186.09 Q 677.62 186.09 676.6 185.57 Q 675.57 185.04 675.57 184.21 Q 675.57 183.35 676.61 182.84 Q 677.64 182.32 679.37 182.32 Q 681.11 182.32 682.14 182.84 Q 683.17 183.35 683.17 184.21 Q 683.17 185.45 681.09 185.92 Q 682.49 186.2 684 186.31 M 683.27 186.72 M 679.34 185.71 Q 680.59 185.71 681.27 185.31 Q 681.95 184.92 681.95 184.2 Q 681.95 183.5 681.27 183.1 Q 680.59 182.7 679.37 182.7 Q 678.16 182.7 677.48 183.1 Q 676.8 183.5 676.8 184.2 Q 676.8 184.9 677.47 185.31 Q 678.15 185.71 679.34 185.71 M 679.34 185.71"/></g><rect x="684" y="154" width="9" height="34" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 689.18 176.55 Q 687.01 176.55 685.83 173.56 Q 684.65 170.57 684.65 165.09 Q 684.65 159.62 685.86 156.61 Q 687.06 153.6 689.24 153.6 Q 690.49 153.6 692.17 154.56 L 692.17 157.47 Q 690.26 155.92 689.22 155.92 Q 687.71 155.92 686.88 158.32 Q 686.05 160.73 686.05 165.12 Q 686.05 169.3 686.94 171.71 Q 687.82 174.12 689.36 174.12 Q 690.67 174.12 692.18 172.22 L 692.18 174.88 Q 690.81 176.55 689.18 176.55 M 689.18 176.55"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 687.74 186 L 684.23 182.7 L 685.54 182.7 L 688.42 185.4 L 691.19 182.7 L 692.35 182.7 L 688.98 186 M 687.74 186"/></g><rect x="693" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 694.4 175 L 694.4 162.17 L 697.35 162.17 Q 699.31 162.17 700.17 162.96 Q 701.03 163.74 701.03 165.54 Q 701.03 167.58 699.86 168.74 Q 698.68 169.9 696.6 169.9 L 695.92 169.9 L 695.92 175 M 694.4 175 M 695.92 168.53 L 696.54 168.53 Q 697.91 168.53 698.66 167.78 Q 699.41 167.04 699.41 165.67 Q 699.41 164.52 698.82 164.03 Q 698.24 163.53 696.87 163.53 L 695.92 163.53 M 695.92 168.53"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 694.2 183 L 694.2 179.11 L 697.29 179.11 Q 698.67 179.11 699.52 179.24 Q 700.37 179.37 700.99 179.68 Q 701.98 180.17 701.98 180.96 Q 701.98 181.93 700.75 182.47 Q 699.53 183 697.31 183 M 694.2 183 M 695.52 182.59 L 697.21 182.59 Q 699.01 182.59 699.77 182.18 Q 700.58 181.75 700.58 181.02 Q 700.58 180.33 699.78 179.94 Q 699.3 179.7 698.62 179.61 Q 697.95 179.53 696.6 179.53 L 695.52 179.53 M 695.52 182.59"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 694.68 187 L 694.68 184.47 L 701.95 184.47 L 701.95 184.74 L 696.52 184.74 L 696.52 185.55 L 701.07 185.55 L 701.07 185.82 L 696.52 185.82 L 696.52 186.73 L 702.33 186.73 L 702.33 187 M 694.68 187"/></g><rect x="702" y="156" width="9" height="32" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 703.2 176 L 703.2 156.86 L 706.29 156.86 Q 707.67 156.86 708.52 157.5 Q 709.37 158.13 709.99 159.64 Q 710.98 162.05 710.98 165.98 Q 710.98 170.75 709.75 173.38 Q 708.53 176 706.31 176 M 703.2 176 M 704.52 173.97 L 706.21 173.97 Q 708.01 173.97 708.77 171.97 Q 709.58 169.83 709.58 166.24 Q 709.58 162.86 708.78 160.94 Q 708.3 159.76 707.62 159.33 Q 706.95 158.89 705.6 158.89 L 704.52 158.89 M 704.52 173.97"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 703.68 184 L 703.68 180.89 L 710.95 180.89 L 710.95 181.22 L 705.52 181.22 L 705.52 182.22 L 710.07 182.22 L 710.07 182.54 L 705.52 182.54 L 705.52 183.67 L 711.33 183.67 L 711.33 184 M 703.68 184"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 706.23 187.04 Q 704.92 187.04 702.88 186.97 L 702.88 186.77 Q 705.08 186.88 706.49 186.88 Q 707.58 186.88 708.24 186.82 Q 708.91 186.76 708.91 186.65 Q 708.91 186.57 708.47 186.51 Q 708.04 186.45 706.87 186.38 L 705.97 186.32 Q 704.31 186.22 703.63 186.12 Q 702.95 186.03 702.95 185.91 Q 702.95 185.74 704.04 185.64 Q 705.13 185.53 706.82 185.53 Q 708.32 185.53 709.99 185.58 L 709.99 185.77 Q 707.93 185.68 706.92 185.68 Q 705.96 185.68 705.34 185.74 Q 704.72 185.79 704.72 185.88 Q 704.72 185.95 705.17 186.01 Q 705.63 186.06 706.84 186.14 L 707.77 186.2 Q 709.46 186.3 710.13 186.4 Q 710.8 186.49 710.8 186.62 Q 710.8 186.81 709.55 186.92 Q 708.29 187.04 706.23 187.04 M 706.23 187.04"/></g><rect x="711" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 712.2 177 L 712.2 151.28 L 715.29 151.28 Q 716.67 151.28 717.52 152.13 Q 718.37 152.98 718.99 155.02 Q 719.98 158.25 719.98 163.53 Q 719.98 169.94 718.75 173.47 Q 717.53 177 715.31 177 M 712.2 177 M 713.52 174.27 L 715.21 174.27 Q 717.01 174.27 717.77 171.58 Q 718.58 168.71 718.58 163.88 Q 718.58 159.34 717.78 156.75 Q 717.3 155.17 716.62 154.59 Q 715.95 154.01 714.6 154.01 L 713.52 154.01 M 713.52 174.27"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 712.2 187 L 712.2 185.34 L 713.49 185.34 L 718.17 186.62 L 718.17 185.34 L 719.3 185.34 L 719.3 187 L 718.01 187 L 713.33 185.72 L 713.33 187 M 712.2 187"/></g><rect x="720" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 723.74 179 L 720.23 149.1 L 721.54 149.1 L 724.42 173.59 L 727.19 149.1 L 728.35 149.1 L 724.98 179 M 723.74 179"/></g><rect x="729" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 732.74 179 L 732.74 166.52 L 729.12 149.1 L 730.88 149.1 L 733.69 162.6 L 736.73 149.1 L 738.16 149.1 L 734.28 166.43 L 734.28 179 M 732.74 179"/></g><rect x="738" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 740.78 175 L 740.78 162.17 L 743.86 162.17 L 743.86 175 M 740.78 175"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 741.74 185 L 738.23 178.59 L 739.54 178.59 L 742.42 183.84 L 745.19 178.59 L 746.35 178.59 L 742.98 185 M 741.74 185"/></g><rect x="747" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 748.68 179 L 748.68 149.1 L 750.52 149.1 L 750.52 175.83 L 756.38 175.83 L 756.38 179 M 748.68 179"/></g><rect x="756" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 757.2 179 L 757.2 149.1 L 760.29 149.1 Q 761.67 149.1 762.52 150.09 Q 763.37 151.08 763.99 153.44 Q 764.98 157.2 764.98 163.34 Q 764.98 170.8 763.75 174.9 Q 762.53 179 760.31 179 M 757.2 179 M 758.52 175.83 L 760.21 175.83 Q 762.01 175.83 762.77 172.7 Q 763.58 169.36 763.58 163.75 Q 763.58 158.47 762.78 155.46 Q 762.3 153.63 761.62 152.95 Q 760.95 152.27 759.6 152.27 L 758.52 152.27 M 758.52 175.83"/></g><rect x="765" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 770.91 173.63 L 769.33 170.97 L 767.74 173.63 M 770.91 173.63 M 772.3 176 L 771.29 174.29 L 767.35 174.29 L 766.33 176 L 765.11 176 L 768.79 169.81 L 770.1 169.81 L 773.73 176 M 772.3 176"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 773.27 182.89 Q 771.35 182.55 770.05 182.08 Q 769.54 182.11 769.26 182.11 Q 767.62 182.11 766.6 181.46 Q 765.57 180.82 765.57 179.78 Q 765.57 178.72 766.61 178.08 Q 767.64 177.45 769.37 177.45 Q 771.11 177.45 772.14 178.09 Q 773.17 178.72 773.17 179.79 Q 773.17 181.32 771.09 181.91 Q 772.49 182.24 774 182.39 M 773.27 182.89 M 769.34 181.64 Q 770.59 181.64 771.27 181.15 Q 771.95 180.66 771.95 179.77 Q 771.95 178.9 771.27 178.41 Q 770.59 177.92 769.37 177.92 Q 768.16 177.92 767.48 178.41 Q 766.8 178.9 766.8 179.77 Q 766.8 180.64 767.47 181.14 Q 768.15 181.64 769.34 181.64 M 769.34 181.64"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 766.2 186 L 766.2 184.25 L 767.52 184.25 L 767.52 184.99 L 771.94 184.99 L 771.94 184.25 L 773.26 184.25 L 773.26 186 L 771.94 186 L 771.94 185.17 L 767.52 185.17 L 767.52 186 M 766.2 186"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 766.68 187 L 766.68 186.19 L 773.95 186.19 L 773.95 186.28 L 768.52 186.28 L 768.52 186.55 L 773.08 186.55 L 773.08 186.63 L 768.52 186.63 L 768.52 187 M 766.68 187"/></g><rect x="774" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 779.91 167.57 L 778.33 154.68 L 776.74 167.57 M 779.91 167.57 M 781.3 179 L 780.29 170.72 L 776.35 170.72 L 775.33 179 L 774.11 179 L 777.79 149.1 L 779.1 149.1 L 782.73 179 M 781.3 179"/></g><rect x="783" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 784.68 179 L 784.68 149.1 L 791.95 149.1 L 791.95 152.27 L 786.52 152.27 L 786.52 161.87 L 791.07 161.87 L 791.07 165 L 786.52 165 L 786.52 175.83 L 792.33 175.83 L 792.33 179 M 784.68 179"/></g><rect x="792" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 793.68 179 L 793.68 149.1 L 800.95 149.1 L 800.95 152.27 L 795.52 152.27 L 795.52 161.87 L 800.07 161.87 L 800.07 165 L 795.52 165 L 795.52 175.83 L 801.33 175.83 L 801.33 179 M 793.68 179"/></g><rect x="801" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 806.91 171.82 L 805.33 168.23 L 803.74 171.82 M 806.91 171.82 M 808.3 175 L 807.29 172.7 L 803.35 172.7 L 802.33 175 L 801.11 175 L 804.79 166.68 L 806.1 166.68 L 809.73 175 M 808.3 175"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 802.68 182 L 802.68 177.92 L 809.95 177.92 L 809.95 178.35 L 804.52 178.35 L 804.52 179.66 L 809.07 179.66 L 809.07 180.09 L 804.52 180.09 L 804.52 181.57 L 810.33 181.57 L 810.33 182 M 802.68 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 804.74 185 L 801.23 182.96 L 802.54 182.96 L 805.42 184.63 L 808.19 182.96 L 809.35 182.96 L 805.98 185 M 804.74 185"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 802.2 187 L 802.2 186.06 L 805.29 186.06 Q 806.67 186.06 807.52 186.09 Q 808.37 186.12 808.99 186.2 Q 809.98 186.31 809.98 186.51 Q 809.98 186.74 808.75 186.87 Q 807.53 187 805.31 187 M 802.2 187 M 803.52 186.9 L 805.21 186.9 Q 807.01 186.9 807.77 186.8 Q 808.58 186.7 808.58 186.52 Q 808.58 186.35 807.78 186.26 Q 807.3 186.2 806.62 186.18 Q 805.95 186.16 804.6 186.16 L 803.52 186.16 M 803.52 186.9"/></g><rect x="810" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 818.18 178.19 Q 816.49 179.75 815.24 179.75 Q 813.02 179.75 811.84 175.69 Q 810.65 171.63 810.65 164.05 Q 810.65 156.62 811.85 152.48 Q 813.05 148.35 815.22 148.35 Q 816.64 148.35 818.17 149.71 L 818.17 153.63 Q 816.25 151.53 815.22 151.53 Q 813.72 151.53 812.88 154.82 Q 812.05 158.11 812.05 164.09 Q 812.05 170.01 812.94 173.29 Q 813.84 176.58 815.44 176.58 Q 816.1 176.58 816.87 175.83 L 816.87 166.09 L 818.18 166.09 M 818.18 178.19"/></g><rect x="819" y="164" width="9" height="24" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 821.78 175 L 821.78 164.24 L 824.86 164.24 L 824.86 175 M 821.78 175"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 820.2 183 L 820.2 178.34 L 821.52 178.34 L 821.52 180.3 L 825.94 180.3 L 825.94 178.34 L 827.26 178.34 L 827.26 183 L 825.94 183 L 825.94 180.8 L 821.52 180.8 L 821.52 183 M 820.2 183"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 820.68 187 L 820.68 184.67 L 822.52 184.67 L 822.52 186.75 L 828.38 186.75 L 828.38 187 M 820.68 187"/></g><rect x="828" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 829.2 177 L 829.2 151.28 L 832.29 151.28 Q 833.67 151.28 834.52 152.13 Q 835.37 152.98 835.99 155.02 Q 836.98 158.25 836.98 163.53 Q 836.98 169.94 835.75 173.47 Q 834.53 177 832.31 177 M 829.2 177 M 830.52 174.27 L 832.21 174.27 Q 834.01 174.27 834.77 171.58 Q 835.58 168.71 835.58 163.88 Q 835.58 159.34 834.78 156.75 Q 834.3 155.17 833.62 154.59 Q 832.95 154.01 831.6 154.01 L 830.52 154.01 M 830.52 174.27"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 829.68 187 L 829.68 185.34 L 836.95 185.34 L 836.95 185.52 L 831.52 185.52 L 831.52 186.05 L 836.07 186.05 L 836.07 186.22 L 831.52 186.22 L 831.52 186.82 L 837.33 186.82 L 837.33 187 M 829.68 187"/></g><rect x="837" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 838.68 179 L 838.68 149.1 L 840.52 149.1 L 840.52 175.83 L 846.38 175.83 L 846.38 179 M 838.68 179"/></g><rect x="846" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 847.4 179 L 847.4 149.1 L 850.35 149.1 Q 852.31 149.1 853.17 150.93 Q 854.03 152.76 854.03 156.94 Q 854.03 161.71 852.86 164.41 Q 851.68 167.12 849.6 167.12 L 848.92 167.12 L 848.92 179 M 847.4 179 M 848.92 163.91 L 849.54 163.91 Q 850.91 163.91 851.66 162.17 Q 852.41 160.43 852.41 157.26 Q 852.41 154.58 851.82 153.42 Q 851.24 152.27 849.87 152.27 L 848.92 152.27 M 848.92 163.91"/></g><rect x="855" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 858.74 177 L 858.74 166.26 L 855.12 151.28 L 856.88 151.28 L 859.69 162.89 L 862.73 151.28 L 864.16 151.28 L 860.28 166.19 L 860.28 177 M 858.74 177"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 856.68 187 L 856.68 185.34 L 863.95 185.34 L 863.95 185.52 L 858.52 185.52 L 858.52 186.07 L 863.08 186.07 L 863.08 186.25 L 858.52 186.25 L 858.52 187 M 856.68 187"/></g><rect x="864" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 868.23 179.75 Q 866.92 179.75 864.88 178.43 L 864.88 174.23 Q 867.08 176.58 868.49 176.58 Q 869.58 176.58 870.24 175.26 Q 870.91 173.95 870.91 171.81 Q 870.91 170.05 870.47 168.82 Q 870.04 167.59 868.87 166.07 L 867.97 164.88 Q 866.31 162.7 865.63 160.77 Q 864.95 158.84 864.95 156.27 Q 864.95 152.82 866.04 150.59 Q 867.13 148.35 868.82 148.35 Q 870.32 148.35 871.99 149.51 L 871.99 153.38 Q 869.93 151.53 868.92 151.53 Q 867.96 151.53 867.34 152.7 Q 866.72 153.87 866.72 155.65 Q 866.72 157.14 867.17 158.29 Q 867.63 159.44 868.84 161.04 L 869.77 162.25 Q 871.46 164.45 872.13 166.41 Q 872.8 168.37 872.8 171.12 Q 872.8 175.02 871.55 177.38 Q 870.29 179.75 868.23 179.75 M 868.23 179.75"/></g><rect x="873" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 878.18 179.75 Q 876.01 179.75 874.83 175.66 Q 873.65 171.57 873.65 164.07 Q 873.65 156.6 874.86 152.47 Q 876.06 148.35 878.24 148.35 Q 879.49 148.35 881.17 149.67 L 881.17 153.65 Q 879.26 151.53 878.22 151.53 Q 876.71 151.53 875.88 154.82 Q 875.05 158.11 875.05 164.11 Q 875.05 169.83 875.94 173.13 Q 876.82 176.43 878.36 176.43 Q 879.67 176.43 881.18 173.83 L 881.18 177.46 Q 879.81 179.75 878.18 179.75 M 878.18 179.75"/></g><rect x="882" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 883.4 179 L 883.4 149.1 L 886.68 149.1 Q 888.24 149.1 889.07 151 Q 889.9 152.9 889.9 156.52 Q 889.9 162.49 887.71 165 L 891.33 179 L 889.44 179 L 886.36 166.35 L 884.92 166.35 L 884.92 179 M 883.4 179 M 884.92 163.18 L 885.42 163.18 Q 888.32 163.18 888.32 156.9 Q 888.32 152.27 885.89 152.27 L 884.92 152.27 M 884.92 163.18"/></g><rect x="891" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 896.91 167.57 L 895.33 154.68 L 893.74 167.57 M 896.91 167.57 M 898.3 179 L 897.29 170.72 L 893.35 170.72 L 892.33 179 L 891.11 179 L 894.79 149.1 L 896.1 149.1 L 899.73 179 M 898.3 179"/></g><rect x="900" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 908.18 178.19 Q 906.49 179.75 905.24 179.75 Q 903.02 179.75 901.84 175.69 Q 900.65 171.63 900.65 164.05 Q 900.65 156.62 901.85 152.48 Q 903.05 148.35 905.22 148.35 Q 906.64 148.35 908.17 149.71 L 908.17 153.63 Q 906.25 151.53 905.22 151.53 Q 903.72 151.53 902.88 154.82 Q 902.05 158.11 902.05 164.09 Q 902.05 170.01 902.94 173.29 Q 903.84 176.58 905.44 176.58 Q 906.1 176.58 906.87 175.83 L 906.87 166.09 L 908.18 166.09 M 908.18 178.19"/></g><rect x="909" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 913.23 179.75 Q 911.92 179.75 909.88 178.43 L 909.88 174.23 Q 912.08 176.58 913.49 176.58 Q 914.58 176.58 915.24 175.26 Q 915.91 173.95 915.91 171.81 Q 915.91 170.05 915.47 168.82 Q 915.04 167.59 913.87 166.07 L 912.97 164.88 Q 911.31 162.7 910.63 160.77 Q 909.95 158.84 909.95 156.27 Q 909.95 152.82 911.04 150.59 Q 912.13 148.35 913.82 148.35 Q 915.32 148.35 916.99 149.51 L 916.99 153.38 Q 914.93 151.53 913.92 151.53 Q 912.96 151.53 912.34 152.7 Q 911.72 153.87 911.72 155.65 Q 911.72 157.14 912.17 158.29 Q 912.63 159.44 913.84 161.04 L 914.77 162.25 Q 916.46 164.45 917.13 166.41 Q 917.8 168.37 917.8 171.12 Q 917.8 175.02 916.55 177.38 Q 915.29 179.75 913.23 179.75 M 913.23 179.75"/></g><rect x="918" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 923.18 179.75 Q 921.01 179.75 919.83 175.66 Q 918.65 171.57 918.65 164.07 Q 918.65 156.6 919.86 152.47 Q 921.06 148.35 923.24 148.35 Q 924.49 148.35 926.17 149.67 L 926.17 153.65 Q 924.26 151.53 923.22 151.53 Q 921.71 151.53 920.88 154.82 Q 920.05 158.11 920.05 164.11 Q 920.05 169.83 920.94 173.13 Q 921.82 176.43 923.36 176.43 Q 924.67 176.43 926.18 173.83 L 926.18 177.46 Q 924.81 179.75 923.18 179.75 M 923.18 179.75"/></g><rect x="927" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 931.23 179.75 Q 929.92 179.75 927.88 178.43 L 927.88 174.23 Q 930.08 176.58 931.49 176.58 Q 932.58 176.58 933.24 175.26 Q 933.91 173.95 933.91 171.81 Q 933.91 170.05 933.47 168.82 Q 933.04 167.59 931.87 166.07 L 930.97 164.88 Q 929.31 162.7 928.63 160.77 Q 927.95 158.84 927.95 156.27 Q 927.95 152.82 929.04 150.59 Q 930.13 148.35 931.82 148.35 Q 933.32 148.35 934.99 149.51 L 934.99 153.38 Q 932.93 151.53 931.92 151.53 Q 930.96 151.53 930.34 152.7 Q 929.72 153.87 929.72 155.65 Q 929.72 157.14 930.17 158.29 Q 930.63 159.44 931.84 161.04 L 932.77 162.25 Q 934.46 164.45 935.13 166.41 Q 935.8 168.37 935.8 171.12 Q 935.8 175.02 934.55 177.38 Q 933.29 179.75 931.23 179.75 M 931.23 179.75"/></g><rect x="936" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 940.23 179.75 Q 938.92 179.75 936.88 178.43 L 936.88 174.23 Q 939.08 176.58 940.49 176.58 Q 941.58 176.58 942.24 175.26 Q 942.91 173.95 942.91 171.81 Q 942.91 170.05 942.47 168.82 Q 942.04 167.59 940.87 166.07 L 939.97 164.88 Q 938.31 162.7 937.63 160.77 Q 936.95 158.84 936.95 156.27 Q 936.95 152.82 938.04 150.59 Q 939.13 148.35 940.82 148.35 Q 942.32 148.35 943.99 149.51 L 943.99 153.38 Q 941.93 151.53 940.92 151.53 Q 939.96 151.53 939.34 152.7 Q 938.72 153.87 938.72 155.65 Q 938.72 157.14 939.17 158.29 Q 939.63 159.44 940.84 161.04 L 941.77 162.25 Q 943.46 164.45 944.13 166.41 Q 944.8 168.37 944.8 171.12 Q 944.8 175.02 943.55 177.38 Q 942.29 179.75 940.23 179.75 M 940.23 179.75"/></g><rect x="945" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 950.18 179.75 Q 948.01 179.75 946.83 175.66 Q 945.65 171.57 945.65 164.07 Q 945.65 156.6 946.86 152.47 Q 948.06 148.35 950.24 148.35 Q 951.49 148.35 953.17 149.67 L 953.17 153.65 Q 951.26 151.53 950.22 151.53 Q 948.71 151.53 947.88 154.82 Q 947.05 158.11 947.05 164.11 Q 947.05 169.83 947.94 173.13 Q 948.82 176.43 950.36 176.43 Q 951.67 176.43 953.18 173.83 L 953.18 177.46 Q 951.81 179.75 950.18 179.75 M 950.18 179.75"/></g><rect x="954" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 959.91 167.57 L 958.33 154.68 L 956.74 167.57 M 959.91 167.57 M 961.3 179 L 960.29 170.72 L 956.35 170.72 L 955.33 179 L 954.11 179 L 957.79 149.1 L 959.1 149.1 L 962.73 179 M 961.3 179"/></g><rect x="963" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 971.18 178.19 Q 969.49 179.75 968.24 179.75 Q 966.02 179.75 964.84 175.69 Q 963.65 171.63 963.65 164.05 Q 963.65 156.62 964.85 152.48 Q 966.05 148.35 968.22 148.35 Q 969.64 148.35 971.17 149.71 L 971.17 153.63 Q 969.25 151.53 968.22 151.53 Q 966.72 151.53 965.88 154.82 Q 965.05 158.11 965.05 164.09 Q 965.05 170.01 965.94 173.29 Q 966.84 176.58 968.44 176.58 Q 969.1 176.58 969.87 175.83 L 969.87 166.09 L 971.18 166.09 M 971.18 178.19"/></g><rect x="972" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 973.2 179 L 973.2 149.1 L 974.44 149.1 L 974.44 163.81 L 978.2 149.1 L 979.52 149.1 L 975.88 163.36 L 980.17 179 L 978.5 179 L 974.44 163.85 L 974.44 179 M 973.2 179"/></g><rect x="981" y="156" width="9" height="32" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 984.74 176 L 981.23 156.86 L 982.54 156.86 L 985.42 172.53 L 988.19 156.86 L 989.35 156.86 L 985.98 176 M 984.74 176"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 983.78 184 L 983.78 180.89 L 986.86 180.89 L 986.86 184 M 983.78 184"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 982.68 187 L 982.68 185.56 L 984.52 185.56 L 984.52 186.85 L 990.38 186.85 L 990.38 187 M 982.68 187"/></g><rect x="990" y="164" width="9" height="24" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 993.74 175 L 990.23 164.24 L 991.54 164.24 L 994.42 173.05 L 997.19 164.24 L 998.35 164.24 L 994.98 175 M 993.74 175"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 993.98 182 L 993.98 178.79 L 990.13 178.79 L 990.13 178.41 L 999.36 178.41 L 999.36 178.79 L 995.52 178.79 L 995.52 182 M 993.98 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 995.91 184.11 L 994.33 183.1 L 992.74 184.11 M 995.91 184.11 M 997.3 185 L 996.29 184.35 L 992.35 184.35 L 991.33 185 L 990.11 185 L 993.79 182.67 L 995.1 182.67 L 998.73 185 M 997.3 185"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 991.2 187 L 991.2 185.92 L 992.44 185.92 L 992.44 186.45 L 996.2 185.92 L 997.52 185.92 L 993.88 186.44 L 998.17 187 L 996.5 187 L 992.44 186.45 L 992.44 187 M 991.2 187"/></g><rect x="999" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1003.23 175.21 Q 1001.92 175.21 999.88 174.84 L 999.88 173.67 Q 1002.08 174.33 1003.49 174.33 Q 1004.58 174.33 1005.24 173.96 Q 1005.91 173.59 1005.91 173 Q 1005.91 172.51 1005.47 172.17 Q 1005.04 171.82 1003.87 171.4 L 1002.97 171.07 Q 1001.31 170.46 1000.63 169.93 Q 999.95 169.39 999.95 168.68 Q 999.95 167.71 1001.04 167.09 Q 1002.13 166.47 1003.82 166.47 Q 1005.32 166.47 1006.99 166.79 L 1006.99 167.87 Q 1004.93 167.36 1003.92 167.36 Q 1002.96 167.36 1002.34 167.68 Q 1001.72 168.01 1001.72 168.5 Q 1001.72 168.92 1002.17 169.24 Q 1002.63 169.56 1003.84 170 L 1004.77 170.34 Q 1006.46 170.95 1007.13 171.5 Q 1007.8 172.04 1007.8 172.81 Q 1007.8 173.89 1006.55 174.55 Q 1005.29 175.21 1003.23 175.21 M 1003.23 175.21"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1007.18 180.92 Q 1005.49 181.08 1004.24 181.08 Q 1002.02 181.08 1000.84 180.65 Q 999.65 180.23 999.65 179.43 Q 999.65 178.65 1000.85 178.22 Q 1002.05 177.78 1004.22 177.78 Q 1005.64 177.78 1007.17 177.92 L 1007.17 178.34 Q 1005.25 178.12 1004.22 178.12 Q 1002.72 178.12 1001.88 178.46 Q 1001.05 178.81 1001.05 179.43 Q 1001.05 180.06 1001.94 180.4 Q 1002.84 180.75 1004.44 180.75 Q 1005.1 180.75 1005.87 180.67 L 1005.87 179.64 L 1007.18 179.64 M 1007.18 180.92"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1004.91 183.22 L 1003.33 182.34 L 1001.74 183.22 M 1004.91 183.22 M 1006.3 184 L 1005.29 183.43 L 1001.35 183.43 L 1000.33 184 L 999.11 184 L 1002.79 181.96 L 1004.1 181.96 L 1007.73 184 M 1006.3 184"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1000.2 186 L 1000.2 185.06 L 1001.49 185.06 L 1006.17 185.79 L 1006.17 185.06 L 1007.3 185.06 L 1007.3 186 L 1006.01 186 L 1001.33 185.27 L 1001.33 186 M 1000.2 186"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1002.98 187 L 1002.98 186.16 L 999.13 186.16 L 999.13 186.06 L 1008.36 186.06 L 1008.36 186.16 L 1004.52 186.16 L 1004.52 187 M 1002.98 187"/></g><rect x="1008" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1016.18 178.19 Q 1014.49 179.75 1013.24 179.75 Q 1011.02 179.75 1009.84 175.69 Q 1008.65 171.63 1008.65 164.05 Q 1008.65 156.62 1009.85 152.48 Q 1011.05 148.35 1013.22 148.35 Q 1014.64 148.35 1016.17 149.71 L 1016.17 153.63 Q 1014.25 151.53 1013.22 151.53 Q 1011.72 151.53 1010.88 154.82 Q 1010.05 158.11 1010.05 164.09 Q 1010.05 170.01 1010.94 173.29 Q 1011.84 176.58 1013.44 176.58 Q 1014.1 176.58 1014.87 175.83 L 1014.87 166.09 L 1016.18 166.09 M 1016.18 178.19"/></g><rect x="1017" y="164" width="9" height="24" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1021.23 175.27 Q 1019.92 175.27 1017.88 174.8 L 1017.88 173.28 Q 1020.08 174.13 1021.49 174.13 Q 1022.58 174.13 1023.24 173.65 Q 1023.91 173.18 1023.91 172.41 Q 1023.91 171.78 1023.47 171.33 Q 1023.04 170.89 1021.87 170.35 L 1020.97 169.92 Q 1019.31 169.13 1018.63 168.44 Q 1017.95 167.74 1017.95 166.82 Q 1017.95 165.57 1019.04 164.77 Q 1020.13 163.97 1021.82 163.97 Q 1023.32 163.97 1024.99 164.38 L 1024.99 165.78 Q 1022.93 165.11 1021.92 165.11 Q 1020.96 165.11 1020.34 165.53 Q 1019.72 165.95 1019.72 166.59 Q 1019.72 167.13 1020.17 167.55 Q 1020.63 167.96 1021.84 168.53 L 1022.77 168.97 Q 1024.46 169.76 1025.13 170.47 Q 1025.8 171.17 1025.8 172.16 Q 1025.8 173.57 1024.55 174.42 Q 1023.29 175.27 1021.23 175.27 M 1021.23 175.27"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1022.91 179.11 L 1021.33 178.1 L 1019.74 179.11 M 1022.91 179.11 M 1024.3 180 L 1023.29 179.35 L 1019.35 179.35 L 1018.33 180 L 1017.11 180 L 1020.79 177.67 L 1022.1 177.67 L 1025.73 180 M 1024.3 180"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1018.68 182 L 1018.68 180.92 L 1025.95 180.92 L 1025.95 181.04 L 1020.52 181.04 L 1020.52 181.38 L 1025.07 181.38 L 1025.07 181.5 L 1020.52 181.5 L 1020.52 181.89 L 1026.33 181.89 L 1026.33 182 M 1018.68 182"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1018.68 184 L 1018.68 182.92 L 1025.95 182.92 L 1025.95 183.04 L 1020.52 183.04 L 1020.52 183.4 L 1025.08 183.4 L 1025.08 183.51 L 1020.52 183.51 L 1020.52 184 M 1018.68 184"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1018.2 185 L 1018.2 183.92 L 1019.49 183.92 L 1024.17 184.75 L 1024.17 183.92 L 1025.3 183.92 L 1025.3 185 L 1024.01 185 L 1019.33 184.17 L 1019.33 185 M 1018.2 185"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1020.98 186 L 1020.98 185.04 L 1017.13 185.04 L 1017.13 184.92 L 1026.36 184.92 L 1026.36 185.04 L 1022.52 185.04 L 1022.52 186 M 1020.98 186"/></g><rect x="1026" y="156" width="9" height="32" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1029.74 176 L 1026.23 156.86 L 1027.54 156.86 L 1030.42 172.53 L 1033.19 156.86 L 1034.35 156.86 L 1030.98 176 M 1029.74 176"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1028.78 184 L 1028.78 180.89 L 1031.86 180.89 L 1031.86 184 M 1028.78 184"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1027.68 187 L 1027.68 185.56 L 1029.52 185.56 L 1029.52 186.85 L 1035.38 186.85 L 1035.38 187 M 1027.68 187"/></g><rect x="1035" y="156" width="9" height="32" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1036.2 176 L 1036.2 156.86 L 1039.29 156.86 Q 1040.67 156.86 1041.52 157.5 Q 1042.37 158.13 1042.99 159.64 Q 1043.98 162.05 1043.98 165.98 Q 1043.98 170.75 1042.75 173.38 Q 1041.53 176 1039.31 176 M 1036.2 176 M 1037.52 173.97 L 1039.21 173.97 Q 1041.01 173.97 1041.77 171.97 Q 1042.58 169.83 1042.58 166.24 Q 1042.58 162.86 1041.78 160.94 Q 1041.3 159.76 1040.62 159.33 Q 1039.95 158.89 1038.6 158.89 L 1037.52 158.89 M 1037.52 173.97"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1036.2 186 L 1036.2 181.22 L 1037.49 181.22 L 1042.17 184.91 L 1042.17 181.22 L 1043.3 181.22 L 1043.3 186 L 1042.01 186 L 1037.33 182.31 L 1037.33 186 M 1036.2 186"/></g><rect x="1044" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1052.27 184.98 Q 1050.35 182.7 1049.05 179.55 Q 1048.54 179.75 1048.26 179.75 Q 1046.62 179.75 1045.6 175.38 Q 1044.57 171.02 1044.57 164.05 Q 1044.57 156.9 1045.61 152.63 Q 1046.64 148.35 1048.37 148.35 Q 1050.11 148.35 1051.14 152.64 Q 1052.17 156.92 1052.17 164.11 Q 1052.17 174.41 1050.09 178.37 Q 1051.49 180.64 1053 181.61 M 1052.27 184.98 M 1048.34 176.58 Q 1049.59 176.58 1050.27 173.28 Q 1050.95 169.99 1050.95 163.97 Q 1050.95 158.13 1050.27 154.83 Q 1049.59 151.53 1048.37 151.53 Q 1047.16 151.53 1046.48 154.83 Q 1045.8 158.13 1045.8 164.01 Q 1045.8 169.87 1046.47 173.22 Q 1047.15 176.58 1048.34 176.58 M 1048.34 176.58"/></g><rect x="1053" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1057.23 175.32 Q 1055.92 175.32 1053.88 174.76 L 1053.88 172.95 Q 1056.08 173.96 1057.49 173.96 Q 1058.58 173.96 1059.24 173.4 Q 1059.91 172.83 1059.91 171.91 Q 1059.91 171.16 1059.47 170.63 Q 1059.04 170.1 1057.87 169.45 L 1056.97 168.94 Q 1055.31 168.01 1054.63 167.18 Q 1053.95 166.35 1053.95 165.25 Q 1053.95 163.77 1055.04 162.81 Q 1056.13 161.85 1057.82 161.85 Q 1059.32 161.85 1060.99 162.35 L 1060.99 164.01 Q 1058.93 163.21 1057.92 163.21 Q 1056.96 163.21 1056.34 163.72 Q 1055.72 164.22 1055.72 164.98 Q 1055.72 165.62 1056.17 166.12 Q 1056.63 166.61 1057.84 167.3 L 1058.77 167.82 Q 1060.46 168.76 1061.13 169.6 Q 1061.8 170.44 1061.8 171.62 Q 1061.8 173.29 1060.55 174.31 Q 1059.29 175.32 1057.23 175.32 M 1057.23 175.32"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1054.2 181 L 1054.2 178.47 L 1057.29 178.47 Q 1058.67 178.47 1059.52 178.56 Q 1060.37 178.64 1060.99 178.84 Q 1061.98 179.16 1061.98 179.68 Q 1061.98 180.31 1060.75 180.65 Q 1059.53 181 1057.31 181 M 1054.2 181 M 1055.52 180.73 L 1057.21 180.73 Q 1059.01 180.73 1059.77 180.47 Q 1060.58 180.19 1060.58 179.71 Q 1060.58 179.27 1059.78 179.01 Q 1059.3 178.86 1058.62 178.8 Q 1057.95 178.74 1056.6 178.74 L 1055.52 178.74 M 1055.52 180.73"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1056.98 185 L 1056.98 182.74 L 1053.13 182.74 L 1053.13 182.47 L 1062.36 182.47 L 1062.36 182.74 L 1058.52 182.74 L 1058.52 185 M 1056.98 185"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1054.68 187 L 1054.68 185.83 L 1061.95 185.83 L 1061.95 185.96 L 1056.52 185.96 L 1056.52 186.33 L 1061.07 186.33 L 1061.07 186.45 L 1056.52 186.45 L 1056.52 186.88 L 1062.33 186.88 L 1062.33 187 M 1054.68 187"/></g><rect x="1062" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1063.2 179 L 1063.2 149.1 L 1066.29 149.1 Q 1067.67 149.1 1068.52 150.09 Q 1069.37 151.08 1069.99 153.44 Q 1070.98 157.2 1070.98 163.34 Q 1070.98 170.8 1069.75 174.9 Q 1068.53 179 1066.31 179 M 1063.2 179 M 1064.52 175.83 L 1066.21 175.83 Q 1068.01 175.83 1068.77 172.7 Q 1069.58 169.36 1069.58 163.75 Q 1069.58 158.47 1068.78 155.46 Q 1068.3 153.63 1067.62 152.95 Q 1066.95 152.27 1065.6 152.27 L 1064.52 152.27 M 1064.52 175.83"/></g><rect x="1071" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1079.18 175.83 Q 1077.49 176.15 1076.24 176.15 Q 1074.02 176.15 1072.84 175.31 Q 1071.65 174.47 1071.65 172.91 Q 1071.65 171.37 1072.85 170.51 Q 1074.05 169.66 1076.22 169.66 Q 1077.64 169.66 1079.17 169.94 L 1079.17 170.75 Q 1077.25 170.31 1076.22 170.31 Q 1074.72 170.31 1073.88 170.99 Q 1073.05 171.68 1073.05 172.91 Q 1073.05 174.14 1073.94 174.82 Q 1074.84 175.5 1076.44 175.5 Q 1077.1 175.5 1077.87 175.34 L 1077.87 173.33 L 1079.18 173.33 M 1079.18 175.83"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1079.27 185.24 Q 1077.35 184.77 1076.05 184.11 Q 1075.54 184.15 1075.26 184.15 Q 1073.62 184.15 1072.6 183.25 Q 1071.57 182.35 1071.57 180.91 Q 1071.57 179.43 1072.61 178.54 Q 1073.64 177.66 1075.37 177.66 Q 1077.11 177.66 1078.14 178.54 Q 1079.17 179.43 1079.17 180.92 Q 1079.17 183.05 1077.09 183.87 Q 1078.49 184.34 1080 184.54 M 1079.27 185.24 M 1075.34 183.5 Q 1076.59 183.5 1077.27 182.82 Q 1077.95 182.13 1077.95 180.89 Q 1077.95 179.68 1077.27 179 Q 1076.59 178.31 1075.37 178.31 Q 1074.16 178.31 1073.48 179 Q 1072.8 179.68 1072.8 180.9 Q 1072.8 182.11 1073.47 182.8 Q 1074.15 183.5 1075.34 183.5 M 1075.34 183.5"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1072.68 187 L 1072.68 186.19 L 1079.95 186.19 L 1079.95 186.28 L 1074.52 186.28 L 1074.52 186.54 L 1079.07 186.54 L 1079.07 186.62 L 1074.52 186.62 L 1074.52 186.91 L 1080.33 186.91 L 1080.33 187 M 1072.68 187"/></g><rect x="1080" y="159" width="9" height="29" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1084.23 175.4 Q 1082.92 175.4 1080.88 174.7 L 1080.88 172.48 Q 1083.08 173.72 1084.49 173.72 Q 1085.58 173.72 1086.24 173.02 Q 1086.91 172.33 1086.91 171.19 Q 1086.91 170.26 1086.47 169.61 Q 1086.04 168.96 1084.87 168.16 L 1083.97 167.53 Q 1082.31 166.37 1081.63 165.35 Q 1080.95 164.33 1080.95 162.97 Q 1080.95 161.14 1082.04 159.96 Q 1083.13 158.78 1084.82 158.78 Q 1086.32 158.78 1087.99 159.39 L 1087.99 161.44 Q 1085.93 160.46 1084.92 160.46 Q 1083.96 160.46 1083.34 161.08 Q 1082.72 161.7 1082.72 162.64 Q 1082.72 163.43 1083.17 164.04 Q 1083.63 164.65 1084.84 165.49 L 1085.77 166.14 Q 1087.46 167.3 1088.13 168.34 Q 1088.8 169.38 1088.8 170.83 Q 1088.8 172.89 1087.55 174.14 Q 1086.29 175.4 1084.23 175.4 M 1084.23 175.4"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1081.2 184 L 1081.2 179.66 L 1082.49 179.66 L 1087.17 183.01 L 1087.17 179.66 L 1088.3 179.66 L 1088.3 184 L 1087.01 184 L 1082.33 180.65 L 1082.33 184 M 1081.2 184"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1081.2 187 L 1081.2 185.7 L 1082.44 185.7 L 1082.44 186.34 L 1086.2 185.7 L 1087.52 185.7 L 1083.88 186.32 L 1088.17 187 L 1086.5 187 L 1082.44 186.34 L 1082.44 187 M 1081.2 187"/></g><rect x="1089" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1090.68 177 L 1090.68 151.28 L 1097.95 151.28 L 1097.95 154.01 L 1092.52 154.01 L 1092.52 162.63 L 1097.08 162.63 L 1097.08 165.32 L 1092.52 165.32 L 1092.52 177 M 1090.68 177"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1092.74 187 L 1092.74 186.31 L 1089.12 185.34 L 1090.88 185.34 L 1093.69 186.09 L 1096.73 185.34 L 1098.16 185.34 L 1094.28 186.3 L 1094.28 187 M 1092.74 187"/></g><rect x="1098" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1099.68 179 L 1099.68 149.1 L 1101.52 149.1 L 1101.52 175.83 L 1107.38 175.83 L 1107.38 179 M 1099.68 179"/></g><rect x="1107" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1108.2 177 L 1108.2 151.28 L 1111.29 151.28 Q 1112.67 151.28 1113.52 152.13 Q 1114.37 152.98 1114.99 155.02 Q 1115.98 158.25 1115.98 163.53 Q 1115.98 169.94 1114.75 173.47 Q 1113.53 177 1111.31 177 M 1108.2 177 M 1109.52 174.27 L 1111.21 174.27 Q 1113.01 174.27 1113.77 171.58 Q 1114.58 168.71 1114.58 163.88 Q 1114.58 159.34 1113.78 156.75 Q 1113.3 155.17 1112.62 154.59 Q 1111.95 154.01 1110.6 154.01 L 1109.52 154.01 M 1109.52 174.27"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1108.2 187 L 1108.2 185.34 L 1109.49 185.34 L 1114.17 186.62 L 1114.17 185.34 L 1115.3 185.34 L 1115.3 187 L 1114.01 187 L 1109.33 185.72 L 1109.33 187 M 1108.2 187"/></g><rect x="1116" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1117.2 177 L 1117.2 151.28 L 1120.29 151.28 Q 1121.67 151.28 1122.52 152.13 Q 1123.37 152.98 1123.99 155.02 Q 1124.98 158.25 1124.98 163.53 Q 1124.98 169.94 1123.75 173.47 Q 1122.53 177 1120.31 177 M 1117.2 177 M 1118.52 174.27 L 1120.21 174.27 Q 1122.01 174.27 1122.77 171.58 Q 1123.58 168.71 1123.58 163.88 Q 1123.58 159.34 1122.78 156.75 Q 1122.3 155.17 1121.62 154.59 Q 1120.95 154.01 1119.6 154.01 L 1118.52 154.01 M 1118.52 174.27"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1117.68 187 L 1117.68 185.34 L 1124.95 185.34 L 1124.95 185.52 L 1119.52 185.52 L 1119.52 186.05 L 1124.07 186.05 L 1124.07 186.22 L 1119.52 186.22 L 1119.52 186.82 L 1125.33 186.82 L 1125.33 187 M 1117.68 187"/></g><rect x="1125" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1126.2 175 L 1126.2 166.68 L 1129.29 166.68 Q 1130.67 166.68 1131.52 166.96 Q 1132.37 167.23 1132.99 167.89 Q 1133.98 168.93 1133.98 170.64 Q 1133.98 172.72 1132.75 173.86 Q 1131.53 175 1129.31 175 M 1126.2 175 M 1127.52 174.12 L 1129.21 174.12 Q 1131.01 174.12 1131.77 173.25 Q 1132.58 172.32 1132.58 170.76 Q 1132.58 169.29 1131.78 168.45 Q 1131.3 167.94 1130.62 167.75 Q 1129.95 167.56 1128.6 167.56 L 1127.52 167.56 M 1127.52 174.12"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1126.68 182 L 1126.68 177.92 L 1133.95 177.92 L 1133.95 178.35 L 1128.52 178.35 L 1128.52 179.66 L 1133.07 179.66 L 1133.07 180.09 L 1128.52 180.09 L 1128.52 181.57 L 1134.33 181.57 L 1134.33 182 M 1126.68 182"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1133.18 183.97 Q 1131.49 184.02 1130.24 184.02 Q 1128.02 184.02 1126.84 183.9 Q 1125.65 183.77 1125.65 183.53 Q 1125.65 183.29 1126.85 183.16 Q 1128.05 183.03 1130.22 183.03 Q 1131.64 183.03 1133.17 183.08 L 1133.17 183.2 Q 1131.25 183.13 1130.22 183.13 Q 1128.72 183.13 1127.88 183.24 Q 1127.05 183.34 1127.05 183.53 Q 1127.05 183.72 1127.94 183.82 Q 1128.84 183.92 1130.44 183.92 Q 1131.1 183.92 1131.87 183.9 L 1131.87 183.59 L 1133.18 183.59 M 1133.18 183.97"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1126.2 185 L 1126.2 184.06 L 1127.49 184.06 L 1132.17 184.79 L 1132.17 184.06 L 1133.3 184.06 L 1133.3 185 L 1132.01 185 L 1127.33 184.27 L 1127.33 185 M 1126.2 185"/></g><rect x="1134" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1142.27 182.14 Q 1140.35 180.18 1139.05 177.47 Q 1138.54 177.64 1138.26 177.64 Q 1136.62 177.64 1135.6 173.89 Q 1134.57 170.14 1134.57 164.14 Q 1134.57 157.99 1135.61 154.31 Q 1136.64 150.64 1138.37 150.64 Q 1140.11 150.64 1141.14 154.32 Q 1142.17 158 1142.17 164.19 Q 1142.17 173.06 1140.09 176.46 Q 1141.49 178.41 1143 179.24 M 1142.27 182.14 M 1138.34 174.91 Q 1139.59 174.91 1140.27 172.08 Q 1140.95 169.25 1140.95 164.07 Q 1140.95 159.05 1140.27 156.21 Q 1139.59 153.36 1138.37 153.36 Q 1137.16 153.36 1136.48 156.21 Q 1135.8 159.05 1135.8 164.1 Q 1135.8 169.14 1136.47 172.03 Q 1137.15 174.91 1138.34 174.91 M 1138.34 174.91"/></g><rect x="1143" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1145.78 175 L 1145.78 166.68 L 1148.86 166.68 L 1148.86 175 M 1145.78 175"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1144.68 180 L 1144.68 177.96 L 1151.95 177.96 L 1151.95 178.18 L 1146.52 178.18 L 1146.52 178.83 L 1151.07 178.83 L 1151.07 179.04 L 1146.52 179.04 L 1146.52 179.78 L 1152.33 179.78 L 1152.33 180 M 1144.68 180"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1144.68 182 L 1144.68 179.96 L 1146.52 179.96 L 1146.52 181.78 L 1152.38 181.78 L 1152.38 182 M 1144.68 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1143.93 184 L 1143.93 183.06 L 1145.35 183.06 L 1147.36 183.79 L 1149.42 183.06 L 1150.69 183.06 L 1150.69 184 L 1149.73 184 L 1149.73 183.23 L 1147.74 183.94 L 1146.75 183.94 L 1144.81 183.23 L 1144.81 184 M 1143.93 184"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1146.74 185 L 1143.23 184.06 L 1144.54 184.06 L 1147.42 184.83 L 1150.19 184.06 L 1151.35 184.06 L 1147.98 185 M 1146.74 185"/></g><rect x="1152" y="172" width="9" height="16" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1157.91 175.17 L 1156.33 173.11 L 1154.74 175.17 M 1157.91 175.17 M 1159.3 177 L 1158.29 175.67 L 1154.35 175.67 L 1153.33 177 L 1152.11 177 L 1155.79 172.22 L 1157.1 172.22 L 1160.73 177 M 1159.3 177"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1153.68 181 L 1153.68 177.89 L 1160.95 177.89 L 1160.95 178.22 L 1155.52 178.22 L 1155.52 179.22 L 1160.07 179.22 L 1160.07 179.54 L 1155.52 179.54 L 1155.52 180.67 L 1161.33 180.67 L 1161.33 181 M 1153.68 181"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1153.2 183 L 1153.2 182.28 L 1156.29 182.28 Q 1157.67 182.28 1158.52 182.31 Q 1159.37 182.33 1159.99 182.39 Q 1160.98 182.48 1160.98 182.62 Q 1160.98 182.8 1159.75 182.9 Q 1158.53 183 1156.31 183 M 1153.2 183 M 1154.52 182.92 L 1156.21 182.92 Q 1158.01 182.92 1158.77 182.85 Q 1159.58 182.77 1159.58 182.63 Q 1159.58 182.51 1158.78 182.44 Q 1158.3 182.39 1157.62 182.37 Q 1156.95 182.36 1155.6 182.36 L 1154.52 182.36 M 1154.52 182.92"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1160.18 183.98 Q 1158.49 184.02 1157.24 184.02 Q 1155.02 184.02 1153.84 183.92 Q 1152.65 183.82 1152.65 183.64 Q 1152.65 183.46 1153.85 183.36 Q 1155.05 183.26 1157.22 183.26 Q 1158.64 183.26 1160.17 183.3 L 1160.17 183.39 Q 1158.25 183.34 1157.22 183.34 Q 1155.72 183.34 1154.88 183.42 Q 1154.05 183.5 1154.05 183.64 Q 1154.05 183.78 1154.94 183.86 Q 1155.84 183.94 1157.44 183.94 Q 1158.1 183.94 1158.87 183.92 L 1158.87 183.69 L 1160.18 183.69 M 1160.18 183.98"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1153.2 185 L 1153.2 184.28 L 1154.44 184.28 L 1154.44 184.64 L 1158.2 184.28 L 1159.52 184.28 L 1155.88 184.62 L 1160.17 185 L 1158.5 185 L 1154.44 184.64 L 1154.44 185 M 1153.2 185"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1156.23 186.02 Q 1154.92 186.02 1152.88 185.99 L 1152.88 185.89 Q 1155.08 185.94 1156.49 185.94 Q 1157.58 185.94 1158.24 185.91 Q 1158.91 185.88 1158.91 185.83 Q 1158.91 185.79 1158.47 185.76 Q 1158.04 185.73 1156.87 185.69 L 1155.97 185.66 Q 1154.31 185.61 1153.63 185.56 Q 1152.95 185.52 1152.95 185.45 Q 1152.95 185.37 1154.04 185.32 Q 1155.13 185.26 1156.82 185.26 Q 1158.32 185.26 1159.99 185.29 L 1159.99 185.39 Q 1157.93 185.34 1156.92 185.34 Q 1155.96 185.34 1155.34 185.37 Q 1154.72 185.4 1154.72 185.44 Q 1154.72 185.48 1155.17 185.5 Q 1155.63 185.53 1156.84 185.57 L 1157.77 185.6 Q 1159.46 185.65 1160.13 185.7 Q 1160.8 185.74 1160.8 185.81 Q 1160.8 185.9 1159.55 185.96 Q 1158.29 186.02 1156.23 186.02 M 1156.23 186.02"/></g><rect x="1161" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1162.68 175 L 1162.68 166.68 L 1169.95 166.68 L 1169.95 167.56 L 1164.52 167.56 L 1164.52 170.23 L 1169.07 170.23 L 1169.07 171.1 L 1164.52 171.1 L 1164.52 174.12 L 1170.33 174.12 L 1170.33 175 M 1162.68 175"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1166.91 179.8 L 1165.33 178.45 L 1163.74 179.8 M 1166.91 179.8 M 1168.3 181 L 1167.29 180.13 L 1163.35 180.13 L 1162.33 181 L 1161.11 181 L 1164.79 177.86 L 1166.1 177.86 L 1169.73 181 M 1168.3 181"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1162.2 184 L 1162.2 181.96 L 1165.29 181.96 Q 1166.67 181.96 1167.52 182.03 Q 1168.37 182.09 1168.99 182.26 Q 1169.98 182.51 1169.98 182.93 Q 1169.98 183.44 1168.75 183.72 Q 1167.53 184 1165.31 184 M 1162.2 184 M 1163.52 183.78 L 1165.21 183.78 Q 1167.01 183.78 1167.77 183.57 Q 1168.58 183.34 1168.58 182.96 Q 1168.58 182.6 1167.78 182.39 Q 1167.3 182.27 1166.62 182.22 Q 1165.95 182.18 1164.6 182.18 L 1163.52 182.18 M 1163.52 183.78"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1169.18 185.97 Q 1167.49 186.02 1166.24 186.02 Q 1164.02 186.02 1162.84 185.9 Q 1161.65 185.77 1161.65 185.53 Q 1161.65 185.29 1162.85 185.16 Q 1164.05 185.03 1166.22 185.03 Q 1167.64 185.03 1169.17 185.08 L 1169.17 185.2 Q 1167.25 185.13 1166.22 185.13 Q 1164.72 185.13 1163.88 185.24 Q 1163.05 185.34 1163.05 185.53 Q 1163.05 185.72 1163.94 185.82 Q 1164.84 185.92 1166.44 185.92 Q 1167.1 185.92 1167.87 185.9 L 1167.87 185.59 L 1169.18 185.59 M 1169.18 185.97"/></g><rect x="1170" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1178.18 176.3 Q 1176.49 177.64 1175.24 177.64 Q 1173.02 177.64 1171.84 174.15 Q 1170.65 170.66 1170.65 164.14 Q 1170.65 157.74 1171.85 154.19 Q 1173.05 150.64 1175.22 150.64 Q 1176.64 150.64 1178.17 151.8 L 1178.17 155.17 Q 1176.25 153.36 1175.22 153.36 Q 1173.72 153.36 1172.88 156.2 Q 1172.05 159.03 1172.05 164.17 Q 1172.05 169.27 1172.94 172.09 Q 1173.84 174.91 1175.44 174.91 Q 1176.1 174.91 1176.87 174.27 L 1176.87 165.89 L 1178.18 165.89 M 1178.18 176.3"/></g><rect x="1179" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1180.87 176 L 1179.01 169.81 L 1180 169.81 L 1181.48 174.7 L 1182.84 169.81 L 1183.82 169.81 L 1185.11 174.63 L 1186.71 169.81 L 1187.54 169.81 L 1185.51 176 L 1184.49 176 L 1183.22 171.23 L 1181.89 176 M 1180.87 176"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1180.68 183 L 1180.68 177.62 L 1187.95 177.62 L 1187.95 178.19 L 1182.52 178.19 L 1182.52 179.99 L 1187.08 179.99 L 1187.08 180.56 L 1182.52 180.56 L 1182.52 183 M 1180.68 183"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1182.74 186 L 1182.74 185.66 L 1179.12 185.19 L 1180.88 185.19 L 1183.69 185.56 L 1186.73 185.19 L 1188.16 185.19 L 1184.28 185.66 L 1184.28 186 M 1182.74 186"/></g><rect x="1188" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1191.74 177 L 1188.23 151.28 L 1189.54 151.28 L 1192.42 172.34 L 1195.19 151.28 L 1196.35 151.28 L 1192.98 177 M 1191.74 177"/></g><rect x="1197" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1198.68 177 L 1198.68 151.28 L 1200.52 151.28 L 1200.52 174.27 L 1206.38 174.27 L 1206.38 177 M 1198.68 177"/></g><rect x="1206" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1209.98 177 L 1209.98 154.01 L 1206.13 154.01 L 1206.13 151.28 L 1215.36 151.28 L 1215.36 154.01 L 1211.52 154.01 L 1211.52 177 M 1209.98 177"/></g><rect x="1215" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1220.18 177.64 Q 1218.01 177.64 1216.83 174.12 Q 1215.65 170.6 1215.65 164.16 Q 1215.65 157.73 1216.86 154.18 Q 1218.06 150.64 1220.24 150.64 Q 1221.49 150.64 1223.17 151.77 L 1223.17 155.19 Q 1221.26 153.36 1220.22 153.36 Q 1218.71 153.36 1217.88 156.2 Q 1217.05 159.03 1217.05 164.19 Q 1217.05 169.11 1217.94 171.95 Q 1218.82 174.79 1220.36 174.79 Q 1221.67 174.79 1223.18 172.55 L 1223.18 175.68 Q 1221.81 177.64 1220.18 177.64 M 1220.18 177.64"/></g><rect x="1224" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1227.74 175 L 1224.23 166.68 L 1225.54 166.68 L 1228.42 173.49 L 1231.19 166.68 L 1232.35 166.68 L 1228.98 175 M 1227.74 175"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1229.91 181.02 L 1228.33 178.79 L 1226.74 181.02 M 1229.91 181.02 M 1231.3 183 L 1230.29 181.57 L 1226.35 181.57 L 1225.33 183 L 1224.11 183 L 1227.79 177.82 L 1229.1 177.82 L 1232.73 183 M 1231.3 183"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1225.2 186 L 1225.2 185.06 L 1226.52 185.06 L 1226.52 185.46 L 1230.94 185.46 L 1230.94 185.06 L 1232.26 185.06 L 1232.26 186 L 1230.94 186 L 1230.94 185.56 L 1226.52 185.56 L 1226.52 186 M 1225.2 186"/></g><rect x="1233" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1238.91 167.16 L 1237.33 156.08 L 1235.74 167.16 M 1238.91 167.16 M 1240.3 177 L 1239.29 169.87 L 1235.35 169.87 L 1234.33 177 L 1233.11 177 L 1236.79 151.28 L 1238.1 151.28 L 1241.73 177 M 1240.3 177"/></g><rect x="1242" y="154" width="9" height="34" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1245.74 176 L 1245.74 166.87 L 1242.12 154.14 L 1243.88 154.14 L 1246.69 164.01 L 1249.73 154.14 L 1251.16 154.14 L 1247.28 166.81 L 1247.28 176 M 1245.74 176"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1243.68 184 L 1243.68 182.48 L 1250.95 182.48 L 1250.95 182.64 L 1245.52 182.64 L 1245.52 183.15 L 1250.08 183.15 L 1250.08 183.31 L 1245.52 183.31 L 1245.52 184 M 1243.68 184"/></g><rect x="1251" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1252.4 177 L 1252.4 151.28 L 1255.35 151.28 Q 1257.31 151.28 1258.17 152.85 Q 1259.03 154.42 1259.03 158.02 Q 1259.03 162.12 1257.86 164.45 Q 1256.68 166.78 1254.6 166.78 L 1253.92 166.78 L 1253.92 177 M 1252.4 177 M 1253.92 164.02 L 1254.54 164.02 Q 1255.91 164.02 1256.66 162.52 Q 1257.41 161.03 1257.41 158.3 Q 1257.41 155.99 1256.82 155 Q 1256.24 154.01 1254.87 154.01 L 1253.92 154.01 M 1253.92 164.02"/></g><rect x="1260" y="164" width="9" height="24" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1263.98 175 L 1263.98 165.38 L 1260.13 165.38 L 1260.13 164.24 L 1269.36 164.24 L 1269.36 165.38 L 1265.52 165.38 L 1265.52 175 M 1263.98 175"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1261.2 180 L 1261.2 177.67 L 1262.44 177.67 L 1262.44 178.82 L 1266.2 177.67 L 1267.52 177.67 L 1263.88 178.78 L 1268.17 180 L 1266.5 180 L 1262.44 178.82 L 1262.44 180 M 1261.2 180"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1268.27 183.47 Q 1266.35 183.29 1265.05 183.04 Q 1264.54 183.06 1264.26 183.06 Q 1262.62 183.06 1261.6 182.72 Q 1260.57 182.38 1260.57 181.83 Q 1260.57 181.28 1261.61 180.94 Q 1262.64 180.61 1264.37 180.61 Q 1266.11 180.61 1267.14 180.94 Q 1268.17 181.28 1268.17 181.84 Q 1268.17 182.64 1266.09 182.95 Q 1267.49 183.13 1269 183.2 M 1268.27 183.47 M 1264.34 182.81 Q 1265.59 182.81 1266.27 182.55 Q 1266.95 182.3 1266.95 181.83 Q 1266.95 181.37 1266.27 181.11 Q 1265.59 180.86 1264.37 180.86 Q 1263.16 180.86 1262.48 181.11 Q 1261.8 181.37 1261.8 181.83 Q 1261.8 182.29 1262.47 182.55 Q 1263.15 182.81 1264.34 182.81 M 1264.34 182.81"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1263.74 185 L 1260.23 183.92 L 1261.54 183.92 L 1264.42 184.81 L 1267.19 183.92 L 1268.35 183.92 L 1264.98 185 M 1263.74 185"/></g><rect x="1269" y="159" width="9" height="29" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1273.23 175.4 Q 1271.92 175.4 1269.88 174.7 L 1269.88 172.48 Q 1272.08 173.72 1273.49 173.72 Q 1274.58 173.72 1275.24 173.02 Q 1275.91 172.33 1275.91 171.19 Q 1275.91 170.26 1275.47 169.61 Q 1275.04 168.96 1273.87 168.16 L 1272.97 167.53 Q 1271.31 166.37 1270.63 165.35 Q 1269.95 164.33 1269.95 162.97 Q 1269.95 161.14 1271.04 159.96 Q 1272.13 158.78 1273.82 158.78 Q 1275.32 158.78 1276.99 159.39 L 1276.99 161.44 Q 1274.93 160.46 1273.92 160.46 Q 1272.96 160.46 1272.34 161.08 Q 1271.72 161.7 1271.72 162.64 Q 1271.72 163.43 1272.17 164.04 Q 1272.63 164.65 1273.84 165.49 L 1274.77 166.14 Q 1276.46 167.3 1277.13 168.34 Q 1277.8 169.38 1277.8 170.83 Q 1277.8 172.89 1276.55 174.14 Q 1275.29 175.4 1273.23 175.4 M 1273.23 175.4"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1277.18 182.92 Q 1275.49 183.07 1274.24 183.07 Q 1272.02 183.07 1270.84 182.69 Q 1269.65 182.31 1269.65 181.59 Q 1269.65 180.89 1270.85 180.5 Q 1272.05 180.11 1274.22 180.11 Q 1275.64 180.11 1277.17 180.24 L 1277.17 180.61 Q 1275.25 180.41 1274.22 180.41 Q 1272.72 180.41 1271.88 180.72 Q 1271.05 181.03 1271.05 181.59 Q 1271.05 182.15 1271.94 182.46 Q 1272.84 182.77 1274.44 182.77 Q 1275.1 182.77 1275.87 182.7 L 1275.87 181.78 L 1277.18 181.78 M 1277.18 182.92"/></g><g style="fill: rgb(255,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1274.18 185.03 Q 1272.01 185.03 1270.83 184.85 Q 1269.65 184.68 1269.65 184.35 Q 1269.65 184.03 1270.86 183.85 Q 1272.06 183.67 1274.24 183.67 Q 1275.49 183.67 1277.17 183.72 L 1277.17 183.9 Q 1275.26 183.8 1274.22 183.8 Q 1272.71 183.8 1271.88 183.95 Q 1271.05 184.09 1271.05 184.35 Q 1271.05 184.6 1271.94 184.74 Q 1272.82 184.89 1274.36 184.89 Q 1275.67 184.89 1277.18 184.78 L 1277.18 184.93 Q 1275.81 185.03 1274.18 185.03 M 1274.18 185.03"/></g><rect x="1278" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1279.2 177 L 1279.2 151.28 L 1282.29 151.28 Q 1283.67 151.28 1284.52 152.13 Q 1285.37 152.98 1285.99 155.02 Q 1286.98 158.25 1286.98 163.53 Q 1286.98 169.94 1285.75 173.47 Q 1284.53 177 1282.31 177 M 1279.2 177 M 1280.52 174.27 L 1282.21 174.27 Q 1284.01 174.27 1284.77 171.58 Q 1285.58 168.71 1285.58 163.88 Q 1285.58 159.34 1284.78 156.75 Q 1284.3 155.17 1283.62 154.59 Q 1282.95 154.01 1281.6 154.01 L 1280.52 154.01 M 1280.52 174.27"/></g><rect x="1287" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1290.74 177 L 1287.23 151.28 L 1288.54 151.28 L 1291.42 172.34 L 1294.19 151.28 L 1295.35 151.28 L 1291.98 177 M 1290.74 177"/></g><rect x="1296" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1299.98 175 L 1299.98 163.53 L 1296.13 163.53 L 1296.13 162.17 L 1305.36 162.17 L 1305.36 163.53 L 1301.52 163.53 L 1301.52 175 M 1299.98 175"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1299.74 184 L 1296.23 178.95 L 1297.54 178.95 L 1300.42 183.09 L 1303.19 178.95 L 1304.35 178.95 L 1300.98 184 M 1299.74 184"/></g><rect x="1305" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1307.78 177 L 1307.78 151.28 L 1310.86 151.28 L 1310.86 177 M 1307.78 177"/></g><rect x="1314" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1315.68 177 L 1315.68 151.28 L 1322.95 151.28 L 1322.95 154.01 L 1317.52 154.01 L 1317.52 162.26 L 1322.07 162.26 L 1322.07 164.96 L 1317.52 164.96 L 1317.52 174.27 L 1323.33 174.27 L 1323.33 177 M 1315.68 177"/></g><rect x="1323" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1326.98 177 L 1326.98 154.01 L 1323.13 154.01 L 1323.13 151.28 L 1332.36 151.28 L 1332.36 154.01 L 1328.52 154.01 L 1328.52 177 M 1326.98 177"/></g><rect x="1332" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1333.2 177 L 1333.2 151.28 L 1334.52 151.28 L 1334.52 162.12 L 1338.94 162.12 L 1338.94 151.28 L 1340.26 151.28 L 1340.26 177 L 1338.94 177 L 1338.94 164.85 L 1334.52 164.85 L 1334.52 177 M 1333.2 177"/></g><rect x="1341" y="154" width="9" height="34" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1342.2 176 L 1342.2 154.14 L 1343.44 154.14 L 1343.44 164.89 L 1347.2 154.14 L 1348.52 154.14 L 1344.88 164.57 L 1349.17 176 L 1347.5 176 L 1343.44 164.92 L 1343.44 176 M 1342.2 176"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1342.4 184 L 1342.4 182.48 L 1345.68 182.48 Q 1347.24 182.48 1348.07 182.57 Q 1348.9 182.67 1348.9 182.85 Q 1348.9 183.16 1346.71 183.29 L 1350.33 184 L 1348.44 184 L 1345.36 183.36 L 1343.92 183.36 L 1343.92 184 M 1342.4 184 M 1343.92 183.19 L 1344.42 183.19 Q 1347.32 183.19 1347.32 182.87 Q 1347.32 182.64 1344.89 182.64 L 1343.92 182.64 M 1343.92 183.19"/></g><rect x="1350" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1351.68 177 L 1351.68 151.28 L 1358.95 151.28 L 1358.95 154.01 L 1353.52 154.01 L 1353.52 162.26 L 1358.07 162.26 L 1358.07 164.96 L 1353.52 164.96 L 1353.52 174.27 L 1359.33 174.27 L 1359.33 177 M 1351.68 177"/></g><rect x="1359" y="159" width="9" height="29" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1360.68 175 L 1360.68 159.18 L 1367.95 159.18 L 1367.95 160.85 L 1362.52 160.85 L 1362.52 165.93 L 1367.07 165.93 L 1367.07 167.59 L 1362.52 167.59 L 1362.52 173.32 L 1368.33 173.32 L 1368.33 175 M 1360.68 175"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1364.91 181.92 L 1363.33 180.71 L 1361.74 181.92 M 1364.91 181.92 M 1366.3 183 L 1365.29 182.22 L 1361.35 182.22 L 1360.33 183 L 1359.11 183 L 1362.79 180.18 L 1364.1 180.18 L 1367.73 183 M 1366.3 183"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1360.2 185 L 1360.2 183.7 L 1363.29 183.7 Q 1364.67 183.7 1365.52 183.74 Q 1366.37 183.79 1366.99 183.89 Q 1367.98 184.05 1367.98 184.32 Q 1367.98 184.64 1366.75 184.82 Q 1365.53 185 1363.31 185 M 1360.2 185 M 1361.52 184.86 L 1363.21 184.86 Q 1365.01 184.86 1365.77 184.73 Q 1366.58 184.58 1366.58 184.34 Q 1366.58 184.11 1365.78 183.98 Q 1365.3 183.9 1364.62 183.87 Q 1363.95 183.84 1362.6 183.84 L 1361.52 183.84 M 1361.52 184.86"/></g><rect x="1368" y="164" width="9" height="24" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1369.68 175 L 1369.68 164.24 L 1376.95 164.24 L 1376.95 165.38 L 1371.52 165.38 L 1371.52 168.83 L 1376.07 168.83 L 1376.07 169.96 L 1371.52 169.96 L 1371.52 173.86 L 1377.33 173.86 L 1377.33 175 M 1369.68 175"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1369.2 183 L 1369.2 178.34 L 1372.29 178.34 Q 1373.67 178.34 1374.52 178.49 Q 1375.37 178.64 1375.99 179.01 Q 1376.98 179.6 1376.98 180.56 Q 1376.98 181.72 1375.75 182.36 Q 1374.53 183 1372.31 183 M 1369.2 183 M 1370.52 182.51 L 1372.21 182.51 Q 1374.01 182.51 1374.77 182.02 Q 1375.58 181.5 1375.58 180.62 Q 1375.58 179.8 1374.78 179.33 Q 1374.3 179.04 1373.62 178.94 Q 1372.95 178.83 1371.6 178.83 L 1370.52 178.83 M 1370.52 182.51"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1373.91 184.59 L 1372.33 184.12 L 1370.74 184.59 M 1373.91 184.59 M 1375.3 185 L 1374.29 184.7 L 1370.35 184.7 L 1369.33 185 L 1368.11 185 L 1371.79 183.92 L 1373.1 183.92 L 1376.73 185 M 1375.3 185"/></g><rect x="1377" y="159" width="9" height="29" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1378.68 175 L 1378.68 159.18 L 1380.52 159.18 L 1380.52 173.32 L 1386.38 173.32 L 1386.38 175 M 1378.68 175"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1379.78 183 L 1379.78 180.18 L 1382.86 180.18 L 1382.86 183 M 1379.78 183"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1377.93 185 L 1377.93 183.7 L 1379.35 183.7 L 1381.36 184.71 L 1383.42 183.7 L 1384.69 183.7 L 1384.69 185 L 1383.73 185 L 1383.73 183.94 L 1381.74 184.91 L 1380.75 184.91 L 1378.81 183.94 L 1378.81 185 M 1377.93 185"/></g><rect x="1386" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1389.98 176 L 1389.98 170.47 L 1386.13 170.47 L 1386.13 169.81 L 1395.36 169.81 L 1395.36 170.47 L 1391.52 170.47 L 1391.52 176 M 1389.98 176"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1389.74 182 L 1386.23 177.56 L 1387.54 177.56 L 1390.42 181.2 L 1393.19 177.56 L 1394.35 177.56 L 1390.98 182 M 1389.74 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1387.68 185 L 1387.68 184.19 L 1389.52 184.19 L 1389.52 184.91 L 1395.38 184.91 L 1395.38 185 M 1387.68 185"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1386.93 186 L 1386.93 185.19 L 1388.35 185.19 L 1390.36 185.82 L 1392.42 185.19 L 1393.69 185.19 L 1393.69 186 L 1392.73 186 L 1392.73 185.34 L 1390.74 185.95 L 1389.75 185.95 L 1387.81 185.34 L 1387.81 186 M 1386.93 186"/></g><rect x="1395" y="172" width="9" height="16" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1400.91 175.17 L 1399.33 173.11 L 1397.74 175.17 M 1400.91 175.17 M 1402.3 177 L 1401.29 175.67 L 1397.35 175.67 L 1396.33 177 L 1395.11 177 L 1398.79 172.22 L 1400.1 172.22 L 1403.73 177 M 1402.3 177"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1403.18 179.94 Q 1401.49 180.06 1400.24 180.06 Q 1398.02 180.06 1396.84 179.73 Q 1395.65 179.41 1395.65 178.8 Q 1395.65 178.21 1396.85 177.88 Q 1398.05 177.55 1400.22 177.55 Q 1401.64 177.55 1403.17 177.66 L 1403.17 177.97 Q 1401.25 177.8 1400.22 177.8 Q 1398.72 177.8 1397.88 178.07 Q 1397.05 178.33 1397.05 178.81 Q 1397.05 179.28 1397.94 179.54 Q 1398.84 179.81 1400.44 179.81 Q 1401.1 179.81 1401.87 179.75 L 1401.87 178.97 L 1403.18 178.97 M 1403.18 179.94"/></g><rect x="1404" y="186" width="9" height="2" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1409.91 185.97 L 1408.33 185.93 L 1406.74 185.97 M 1409.91 185.97 M 1411.3 186 L 1410.29 185.98 L 1406.35 185.98 L 1405.33 186 L 1404.11 186 L 1407.79 185.91 L 1409.1 185.91 L 1412.73 186 M 1411.3 186"/></g></svg>
+</div></div></div></div><script language="JavaScript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
+<script language="JavaScript" type="text/javascript"  src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script>
+<script>
+var subCatContainer = $(".sub-category-container");
+subCatContainer.scroll(
+function() {
+subCatContainer.scrollTop($(this).scrollTop());
+});
+</script></hmtl>
\ No newline at end of file
diff --git a/examples/testdata/test.jvp b/examples/testdata/test.jvp
new file mode 100644 (file)
index 0000000..f4eecc5
Binary files /dev/null and b/examples/testdata/test.jvp differ
diff --git a/examples/testdata/test.msf b/examples/testdata/test.msf
new file mode 100644 (file)
index 0000000..8a476aa
--- /dev/null
@@ -0,0 +1,93 @@
+!!AA_MULTIPLE_ALIGNMENT 1.0
+
+   MSF: 157   Type: P    Check:  4683   ..
+
+
+  Name: FER_CAPAA/1-157    Len: 157  Check: 3320  Weight: 1.00
+  Name: FER_CAPAN/1-145    Len: 157  Check: 2597  Weight: 1.00
+  Name: FER1_SOLLC/1-145   Len: 157  Check: 3815  Weight: 1.00
+  Name: Q93XJ9_SOLTU/1-145 Len: 157  Check: 4240  Weight: 1.00
+  Name: FER1_PEA/1-150     Len: 157  Check: 9547  Weight: 1.00
+  Name: Q7XA98_TRIPR/1-153 Len: 157  Check: 4969  Weight: 1.00
+  Name: FER1_MESCR/1-149   Len: 157  Check: 7664  Weight: 1.00
+  Name: FER1_SPIOL/1-148   Len: 157  Check: 5892  Weight: 1.00
+  Name: FER3_RAPSA/1-157   Len: 157  Check: 8715  Weight: 1.00
+  Name: FER1_ARATH/1-150   Len: 157  Check: 3201  Weight: 1.00
+  Name: FER_BRANA/1-157    Len: 157  Check: 7649  Weight: 1.00
+  Name: FER2_ARATH/1-150   Len: 157  Check: 4904  Weight: 1.00
+  Name: Q93Z60_ARATH/1-150 Len: 157  Check: 4436  Weight: 1.00
+  Name: FER1_MAIZE/1-150   Len: 157  Check: 4392  Weight: 1.00
+  Name: O80429_MAIZE/1-142 Len: 157  Check: 8858  Weight: 1.00
+  Name: 1A70|/1-156        Len: 156  Check:  484  Weight: 1.00
+
+
+//
+
+FER_CAPAA/1-157 ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~
+FER_CAPAN/1-145 MA......SV SATMISTSFM PRKPAVTSL. KPIPNVGE.. ALFGLKS.A.
+FER1_SOLLC/1-145 MA......SI SGTMISTSFL PRKPAVTSL. KAISNVGE.. ALFGLKS.G.
+Q93XJ9_SOLTU/1-145 MA......SI SGTMISTSFL PRKPVVTSL. KAISNVGE.. ALFGLKS.G.
+FER1_PEA/1-150 MATT...PAL YGTAVSTSFL RTQPMPMSV. TTTKAFSN.. GFLGLKT.SL
+Q7XA98_TRIPR/1-153 MATT...PAL YGTAVSTSFM RRQPVPMSV. ATTTTTKAFP SGFGLKSVST
+FER1_MESCR/1-149 MAAT..TAAL SGATMSTAFA PK..TPPMTA ALPTNVGR.. ALFGLKS.SA
+FER1_SPIOL/1-148 MAAT..TTTM MG..MATTFV PKPQAPPMMA ALPSNTGR.. SLFGLKT.GS
+FER3_RAPSA/1-157 ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~
+FER1_ARATH/1-150 MAST....AL SSAIVGTSFI RRSPAPISLR SLPSANTQ.. SLFGLKS.GT
+FER_BRANA/1-157 ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~
+FER2_ARATH/1-150 MAST....AL SSAIVSTSFL RRQQTPISLR SLPFANTQ.. SLFGLKS.ST
+Q93Z60_ARATH/1-150 MAST....AL SSAIVSTSFL RRQQTPISLR SLPFANTQ.. SLFGLKS.ST
+FER1_MAIZE/1-150 MATVLGSPRA PAFFFSSSSL RAAPAPTAV. .ALPAAKV.. GIMGRSA.SS
+O80429_MAIZE/1-142 MAAT...... ...ALSMSIL R...APPPCF SSPLRLRV.. AVAKPLA.AP
+1A70|/1-156  ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~
+
+FER_CAPAA/1-157 ~~~~~~~~~A SYKVKLITPD GPIEFDCPDD VYILDQAEEA GHDLPYSCRA
+FER_CAPAN/1-145 .NGGKVTCMA SYKVKLITPD GPIEFDCPDN VYILDQAEEA GHDLPYSCRA
+FER1_SOLLC/1-145 .RNGRITCMA SYKVKLITPE GPIEFECPDD VYILDQAEEE GHDLPYSCRA
+Q93XJ9_SOLTU/1-145 .RNGRITCMA SYKVKLITPD GPIEFECPDD VYILDQAEEE GHDLPYSCRA
+FER1_PEA/1-150 KRGDLAVAMA SYKVKLVTPD GTQEFECPSD VYILDHAEEV GIDLPYSCRA
+Q7XA98_TRIPR/1-153 KRGDLAVAMA TYKVKLITPE GPQEFDCPDD VYILDHAEEV GIELPYSCRA
+FER1_MESCR/1-149 SR.GRVTAMA AYKVTLVTPE GKQELECPDD VYILDAAEEA GIDLPYSCRA
+FER1_SPIOL/1-148 R..GGRMTMA AYKVTLVTPT GNVEFQCPDD VYILDAAEEE GIDLPYSCRA
+FER3_RAPSA/1-157 ~~~~~~~~~A TYKVKFITPE GEQEVECDDD VYVLDAAEEA GIDLPYSCRA
+FER1_ARATH/1-150 ARGGRVTAMA TYKVKFITPE GELEVECDDD VYVLDAAEEA GIDLPYSCRA
+FER_BRANA/1-157 ~~~~~~~~~A TYKVKFITPE GEQEVECDDD VYVLDAAEEA GIDLPYSCRA
+FER2_ARATH/1-150 ARGGRVTAMA TYKVKFITPE GEQEVECEED VYVLDAAEEA GLDLPYSCRA
+Q93Z60_ARATH/1-150 ARGGRVTAMA TYKVKFITPE GEQEVECEED VYVLDAAEEA GLDLPYSCRA
+FER1_MAIZE/1-150 RR..RLRAQA TYNVKLITPE GEVELQVPDD VYILDQAEED GIDLPYSCRA
+O80429_MAIZE/1-142 MRRQLLRAQA TYNVKLITPE GEVELQVPDD VYILDFAEEE GIDLPFSCRA
+1A70|/1-156  ~~~~~~~~~A AYKVTLVTPT GNVEFQCPDD VYILDAAEEE GIDLPYSCRA
+
+FER_CAPAA/1-157 GSCSSCAGKI AGGAVDQTDG NFLDDDQLEE GWVLTCVAYP QSDVTIETHK
+FER_CAPAN/1-145 GSCSSCAGKI AGGAVDQTDG NFLDDDQLEE GWVLTCVAYP QSDVTIETHK
+FER1_SOLLC/1-145 GSCSSCAGKV TAGSVDQSDG NFLDEDQEAA GFVLTCVAYP KGDVTIETHK
+Q93XJ9_SOLTU/1-145 GSCSSCAGKV TAGTVDQSDG KFLDDDQEAA GFVLTCVAYP KCDVTIETHK
+FER1_PEA/1-150 GSCSSCAGKV VGGEVDQSDG SFLDDEQIEA GFVLTCVAYP TSDVVIETHK
+Q7XA98_TRIPR/1-153 GSCSSCAGKV VNGNVNQEDG SFLDDEQIEG GWVLTCVAFP TSDVTIETHK
+FER1_MESCR/1-149 GSCSSCAGKV TSGSVNQDDG SFLDDDQIKE GWVLTCVAYP TGDVTIETHK
+FER1_SPIOL/1-148 GSCSSCAGKL KTGSLNQDDQ SFLDDDQIDE GWVLTCAAYP VSDVTIETHK
+FER3_RAPSA/1-157 GSCSSCAGKV VSGSVDQSDQ SFLDDDQIAE GFVLTCAAYP TSDVTIETHR
+FER1_ARATH/1-150 GSCSSCAGKV VSGSVDQSDQ SFLDDEQIGE GFVLTCAAYP TSDVTIETHK
+FER_BRANA/1-157 GSCSSCAGKV VSGFVDQSDE SFLDDDQIAE GFVLTCAAYP TSDVTIETHK
+FER2_ARATH/1-150 GSCSSCAGKV VSGSIDQSDQ SFLDDEQMSE GYVLTCVAYP TSDVVIETHK
+Q93Z60_ARATH/1-150 GSCSSCAGKV VSGSIDQSDQ SFLDD~~~~~ ~~~~~~~~~~ ~~~~~~~~~~
+FER1_MAIZE/1-150 GSCSSCAGKV VSGSVDQSDQ SYLDDGQIAD GWVLTCHAYP TSDVVIETHK
+O80429_MAIZE/1-142 GSCSSCAGKV VSGSVDQSDQ SFLNDNQVAD GWVLTCAAYP TSDVVIETHK
+1A70|/1-156  GSCSSCAGKL KTGSLNQDDQ SFLDDDQIDE GWVLTCAAYP VSDVTIETHK
+
+FER_CAPAA/1-157 EAELVG~
+FER_CAPAN/1-145 EAELVG~
+FER1_SOLLC/1-145 EEELTA~
+Q93XJ9_SOLTU/1-145 EEELTA~
+FER1_PEA/1-150 EEDLTA~
+Q7XA98_TRIPR/1-153 EEELTA~
+FER1_MESCR/1-149 EEELTA~
+FER1_SPIOL/1-148 EEELTA~
+FER3_RAPSA/1-157 EEDMV~~
+FER1_ARATH/1-150 EEDIV~~
+FER_BRANA/1-157 EEELV~~
+FER2_ARATH/1-150 EEAIM~~
+Q93Z60_ARATH/1-150 ~~~~~~~
+FER1_MAIZE/1-150 EEELTGA
+O80429_MAIZE/1-142 EDDLL~~
+1A70|/1-156  KEELTA
+
diff --git a/examples/testdata/test.pfam b/examples/testdata/test.pfam
new file mode 100644 (file)
index 0000000..dfaadf7
--- /dev/null
@@ -0,0 +1,17 @@
+FER_CAPAA/1-97    -----------------------------------------------------------ASYKVKLITPDGPIEFDCPDDVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDVTIETHKEAELVG-
+FER_CAPAN/1-144   MA------SVSATMISTSFMPRKPAVTSL-KPIPNVGE--ALFGLKS-A--NGGKVTCMASYKVKLITPDGPIEFDCPDNVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDVTIETHKEAELVG-
+FER1_SOLLC/1-144  MA------SISGTMISTSFLPRKPAVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPEGPIEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGSVDQSDGNFLDEDQEAAGFVLTCVAYPKGDVTIETHKEEELTA-
+Q93XJ9_SOLTU/1-144 MA------SISGTMISTSFLPRKPVVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPDGPIEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGTVDQSDGKFLDDDQEAAGFVLTCVAYPKCDVTIETHKEEELTA-
+FER1_PEA/1-149    MATT---PALYGTAVSTSFLRTQPMPMSV-TTTKAFSN--GFLGLKT-SLKRGDLAVAMASYKVKLVTPDGTQEFECPSDVYILDHAEEVGIDLPYSCRAGSCSSCAGKVVGGEVDQSDGSFLDDEQIEAGFVLTCVAYPTSDVVIETHKEEDLTA-
+Q7XA98_TRIPR/1-152 MATT---PALYGTAVSTSFMRRQPVPMSV-ATTTTTKAFPSGFGLKSVSTKRGDLAVAMATYKVKLITPEGPQEFDCPDDVYILDHAEEVGIELPYSCRAGSCSSCAGKVVNGNVNQEDGSFLDDEQIEGGWVLTCVAFPTSDVTIETHKEEELTA-
+FER1_MESCR/1-148  MAAT--TAALSGATMSTAFAPK--TPPMTAALPTNVGR--ALFGLKS-SASR-GRVTAMAAYKVTLVTPEGKQELECPDDVYILDAAEEAGIDLPYSCRAGSCSSCAGKVTSGSVNQDDGSFLDDDQIKEGWVLTCVAYPTGDVTIETHKEEELTA-
+FER1_SPIOL/1-147  MAAT--TTTMMG--MATTFVPKPQAPPMMAALPSNTGR--SLFGLKT-GSR--GGRMTMAAYKVTLVTPTGNVEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLDDDQIDEGWVLTCAAYPVSDVTIETHKEEELTA-
+FER3_RAPSA/1-96   -----------------------------------------------------------ATYKVKFITPEGEQEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDDQIAEGFVLTCAAYPTSDVTIETHREEDMV--
+FER1_ARATH/1-148  MAST----ALSSAIVGTSFIRRSPAPISLRSLPSANTQ--SLFGLKS-GTARGGRVTAMATYKVKFITPEGELEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDEQIGEGFVLTCAAYPTSDVTIETHKEEDIV--
+FER_BRANA/1-96    -----------------------------------------------------------ATYKVKFITPEGEQEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGFVDQSDESFLDDDQIAEGFVLTCAAYPTSDVTIETHKEEELV--
+FER2_ARATH/1-148  MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGEQEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDDEQMSEGYVLTCVAYPTSDVVIETHKEEAIM--
+Q93Z60_ARATH/1-118 MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGEQEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDD--------------------------------
+FER1_MAIZE/1-150  MATVLGSPRAPAFFFSSSSLRAAPAPTAV--ALPAAKV--GIMGRSA-SSRR--RLRAQATYNVKLITPEGEVELQVPDDVYILDQAEEDGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSYLDDGQIADGWVLTCHAYPTSDVVIETHKEEELTGA
+O80429_MAIZE/1-140 MAAT---------ALSMSILR---APPPCFSSPLRLRV--AVAKPLA-APMRRQLLRAQATYNVKLITPEGEVELQVPDDVYILDFAEEEGIDLPFSCRAGSCSSCAGKVVSGSVDQSDQSFLNDNQVADGWVLTCAAYPTSDVVIETHKEDDLL--
+1A70|/1-97        -----------------------------------------------------------AAYKVTLVTPTGNVEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLDDDQIDEGWVLTCAAYPVSDVTIETHKKEELTA
+
diff --git a/examples/testdata/test.pileup b/examples/testdata/test.pileup
new file mode 100644 (file)
index 0000000..d191e4b
--- /dev/null
@@ -0,0 +1,93 @@
+PileUp
+
+   MSF: 157   Type: P    Check:  1935   ..
+
+
+ Name: FER_CAPAA/1-97 oo  Len:  157  Check:  5701  Weight:  1.00
+ Name: FER_CAPAN/1-144 oo  Len:  157  Check:  8823  Weight:  1.00
+ Name: FER1_SOLLC/1-144 oo  Len:  157  Check:  41  Weight:  1.00
+ Name: Q93XJ9_SOLTU/1-144 oo  Len:  157  Check:  466  Weight:  1.00
+ Name: FER1_PEA/1-149 oo  Len:  157  Check:  5889  Weight:  1.00
+ Name: Q7XA98_TRIPR/1-152 oo  Len:  157  Check:  1438  Weight:  1.00
+ Name: FER1_MESCR/1-148 oo  Len:  157  Check:  3943  Weight:  1.00
+ Name: FER1_SPIOL/1-147 oo  Len:  157  Check:  2139  Weight:  1.00
+ Name: FER3_RAPSA/1-96 oo  Len:  157  Check:  7694  Weight:  1.00
+ Name: FER1_ARATH/1-148 oo  Len:  157  Check:  6163  Weight:  1.00
+ Name: FER_BRANA/1-96 oo  Len:  157  Check:  6628  Weight:  1.00
+ Name: FER2_ARATH/1-148 oo  Len:  157  Check:  7866  Weight:  1.00
+ Name: Q93Z60_ARATH/1-118 oo  Len:  157  Check:  3003  Weight:  1.00
+ Name: FER1_MAIZE/1-150 oo  Len:  157  Check:  4097  Weight:  1.00
+ Name: O80429_MAIZE/1-140 oo  Len:  157  Check:  1696  Weight:  1.00
+ Name: 1A70|/1-97 oo  Len:  156  Check:  6348  Weight:  1.00
+
+
+//
+
+FER_CAPAA/1-97 ---------- ---------- ---------- ---------- ----------
+FER_CAPAN/1-144 MA------SV SATMISTSFM PRKPAVTSL- KPIPNVGE-- ALFGLKS-A-
+FER1_SOLLC/1-144 MA------SI SGTMISTSFL PRKPAVTSL- KAISNVGE-- ALFGLKS-G-
+Q93XJ9_SOLTU/1-144 MA------SI SGTMISTSFL PRKPVVTSL- KAISNVGE-- ALFGLKS-G-
+FER1_PEA/1-149 MATT---PAL YGTAVSTSFL RTQPMPMSV- TTTKAFSN-- GFLGLKT-SL
+Q7XA98_TRIPR/1-152 MATT---PAL YGTAVSTSFM RRQPVPMSV- ATTTTTKAFP SGFGLKSVST
+FER1_MESCR/1-148 MAAT--TAAL SGATMSTAFA PK--TPPMTA ALPTNVGR-- ALFGLKS-SA
+FER1_SPIOL/1-147 MAAT--TTTM MG--MATTFV PKPQAPPMMA ALPSNTGR-- SLFGLKT-GS
+FER3_RAPSA/1-96 ---------- ---------- ---------- ---------- ----------
+FER1_ARATH/1-148 MAST----AL SSAIVGTSFI RRSPAPISLR SLPSANTQ-- SLFGLKS-GT
+FER_BRANA/1-96 ---------- ---------- ---------- ---------- ----------
+FER2_ARATH/1-148 MAST----AL SSAIVSTSFL RRQQTPISLR SLPFANTQ-- SLFGLKS-ST
+Q93Z60_ARATH/1-118 MAST----AL SSAIVSTSFL RRQQTPISLR SLPFANTQ-- SLFGLKS-ST
+FER1_MAIZE/1-150 MATVLGSPRA PAFFFSSSSL RAAPAPTAV- -ALPAAKV-- GIMGRSA-SS
+O80429_MAIZE/1-140 MAAT------ ---ALSMSIL R---APPPCF SSPLRLRV-- AVAKPLA-AP
+1A70|/1-97   ---------- ---------- ---------- ---------- ----------
+
+FER_CAPAA/1-97 ---------A SYKVKLITPD GPIEFDCPDD VYILDQAEEA GHDLPYSCRA
+FER_CAPAN/1-144 -NGGKVTCMA SYKVKLITPD GPIEFDCPDN VYILDQAEEA GHDLPYSCRA
+FER1_SOLLC/1-144 -RNGRITCMA SYKVKLITPE GPIEFECPDD VYILDQAEEE GHDLPYSCRA
+Q93XJ9_SOLTU/1-144 -RNGRITCMA SYKVKLITPD GPIEFECPDD VYILDQAEEE GHDLPYSCRA
+FER1_PEA/1-149 KRGDLAVAMA SYKVKLVTPD GTQEFECPSD VYILDHAEEV GIDLPYSCRA
+Q7XA98_TRIPR/1-152 KRGDLAVAMA TYKVKLITPE GPQEFDCPDD VYILDHAEEV GIELPYSCRA
+FER1_MESCR/1-148 SR-GRVTAMA AYKVTLVTPE GKQELECPDD VYILDAAEEA GIDLPYSCRA
+FER1_SPIOL/1-147 R--GGRMTMA AYKVTLVTPT GNVEFQCPDD VYILDAAEEE GIDLPYSCRA
+FER3_RAPSA/1-96 ---------A TYKVKFITPE GEQEVECDDD VYVLDAAEEA GIDLPYSCRA
+FER1_ARATH/1-148 ARGGRVTAMA TYKVKFITPE GELEVECDDD VYVLDAAEEA GIDLPYSCRA
+FER_BRANA/1-96 ---------A TYKVKFITPE GEQEVECDDD VYVLDAAEEA GIDLPYSCRA
+FER2_ARATH/1-148 ARGGRVTAMA TYKVKFITPE GEQEVECEED VYVLDAAEEA GLDLPYSCRA
+Q93Z60_ARATH/1-118 ARGGRVTAMA TYKVKFITPE GEQEVECEED VYVLDAAEEA GLDLPYSCRA
+FER1_MAIZE/1-150 RR--RLRAQA TYNVKLITPE GEVELQVPDD VYILDQAEED GIDLPYSCRA
+O80429_MAIZE/1-140 MRRQLLRAQA TYNVKLITPE GEVELQVPDD VYILDFAEEE GIDLPFSCRA
+1A70|/1-97   ---------A AYKVTLVTPT GNVEFQCPDD VYILDAAEEE GIDLPYSCRA
+
+FER_CAPAA/1-97 GSCSSCAGKI AGGAVDQTDG NFLDDDQLEE GWVLTCVAYP QSDVTIETHK
+FER_CAPAN/1-144 GSCSSCAGKI AGGAVDQTDG NFLDDDQLEE GWVLTCVAYP QSDVTIETHK
+FER1_SOLLC/1-144 GSCSSCAGKV TAGSVDQSDG NFLDEDQEAA GFVLTCVAYP KGDVTIETHK
+Q93XJ9_SOLTU/1-144 GSCSSCAGKV TAGTVDQSDG KFLDDDQEAA GFVLTCVAYP KCDVTIETHK
+FER1_PEA/1-149 GSCSSCAGKV VGGEVDQSDG SFLDDEQIEA GFVLTCVAYP TSDVVIETHK
+Q7XA98_TRIPR/1-152 GSCSSCAGKV VNGNVNQEDG SFLDDEQIEG GWVLTCVAFP TSDVTIETHK
+FER1_MESCR/1-148 GSCSSCAGKV TSGSVNQDDG SFLDDDQIKE GWVLTCVAYP TGDVTIETHK
+FER1_SPIOL/1-147 GSCSSCAGKL KTGSLNQDDQ SFLDDDQIDE GWVLTCAAYP VSDVTIETHK
+FER3_RAPSA/1-96 GSCSSCAGKV VSGSVDQSDQ SFLDDDQIAE GFVLTCAAYP TSDVTIETHR
+FER1_ARATH/1-148 GSCSSCAGKV VSGSVDQSDQ SFLDDEQIGE GFVLTCAAYP TSDVTIETHK
+FER_BRANA/1-96 GSCSSCAGKV VSGFVDQSDE SFLDDDQIAE GFVLTCAAYP TSDVTIETHK
+FER2_ARATH/1-148 GSCSSCAGKV VSGSIDQSDQ SFLDDEQMSE GYVLTCVAYP TSDVVIETHK
+Q93Z60_ARATH/1-118 GSCSSCAGKV VSGSIDQSDQ SFLDD----- ---------- ----------
+FER1_MAIZE/1-150 GSCSSCAGKV VSGSVDQSDQ SYLDDGQIAD GWVLTCHAYP TSDVVIETHK
+O80429_MAIZE/1-140 GSCSSCAGKV VSGSVDQSDQ SFLNDNQVAD GWVLTCAAYP TSDVVIETHK
+1A70|/1-97   GSCSSCAGKL KTGSLNQDDQ SFLDDDQIDE GWVLTCAAYP VSDVTIETHK
+
+FER_CAPAA/1-97 EAELVG-
+FER_CAPAN/1-144 EAELVG-
+FER1_SOLLC/1-144 EEELTA-
+Q93XJ9_SOLTU/1-144 EEELTA-
+FER1_PEA/1-149 EEDLTA-
+Q7XA98_TRIPR/1-152 EEELTA-
+FER1_MESCR/1-148 EEELTA-
+FER1_SPIOL/1-147 EEELTA-
+FER3_RAPSA/1-96 EEDMV--
+FER1_ARATH/1-148 EEDIV--
+FER_BRANA/1-96 EEELV--
+FER2_ARATH/1-148 EEAIM--
+Q93Z60_ARATH/1-118 -------
+FER1_MAIZE/1-150 EEELTGA
+O80429_MAIZE/1-140 EDDLL--
+1A70|/1-97   KEELTA
+
diff --git a/examples/testdata/test.pir b/examples/testdata/test.pir
new file mode 100644 (file)
index 0000000..689561f
--- /dev/null
@@ -0,0 +1,80 @@
+>P1;FER_CAPAA/1-97
+Ferredoxin
+-----------------------------------------------------------ASYKVKLITPDGP
+IEFDCPDDVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDV
+TIETHKEAELVG-*
+>P1;FER_CAPAN/1-144
+Ferredoxin, chloroplast precursor
+MA------SVSATMISTSFMPRKPAVTSL-KPIPNVGE--ALFGLKS-A--NGGKVTCMASYKVKLITPDGP
+IEFDCPDNVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDV
+TIETHKEAELVG-*
+>P1;FER1_SOLLC/1-144
+Ferredoxin-1, chloroplast precursor
+MA------SISGTMISTSFLPRKPAVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPEGP
+IEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGSVDQSDGNFLDEDQEAAGFVLTCVAYPKGDV
+TIETHKEEELTA-*
+>P1;Q93XJ9_SOLTU/1-144
+Ferredoxin I precursor
+MA------SISGTMISTSFLPRKPVVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPDGP
+IEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGTVDQSDGKFLDDDQEAAGFVLTCVAYPKCDV
+TIETHKEEELTA-*
+>P1;FER1_PEA/1-149
+Ferredoxin-1, chloroplast precursor
+MATT---PALYGTAVSTSFLRTQPMPMSV-TTTKAFSN--GFLGLKT-SLKRGDLAVAMASYKVKLVTPDGT
+QEFECPSDVYILDHAEEVGIDLPYSCRAGSCSSCAGKVVGGEVDQSDGSFLDDEQIEAGFVLTCVAYPTSDV
+VIETHKEEDLTA-*
+>P1;Q7XA98_TRIPR/1-152
+Ferredoxin I
+MATT---PALYGTAVSTSFMRRQPVPMSV-ATTTTTKAFPSGFGLKSVSTKRGDLAVAMATYKVKLITPEGP
+QEFDCPDDVYILDHAEEVGIELPYSCRAGSCSSCAGKVVNGNVNQEDGSFLDDEQIEGGWVLTCVAFPTSDV
+TIETHKEEELTA-*
+>P1;FER1_MESCR/1-148
+Ferredoxin-1, chloroplast precursor
+MAAT--TAALSGATMSTAFAPK--TPPMTAALPTNVGR--ALFGLKS-SASR-GRVTAMAAYKVTLVTPEGK
+QELECPDDVYILDAAEEAGIDLPYSCRAGSCSSCAGKVTSGSVNQDDGSFLDDDQIKEGWVLTCVAYPTGDV
+TIETHKEEELTA-*
+>P1;FER1_SPIOL/1-147
+Ferredoxin-1, chloroplast precursor
+MAAT--TTTMMG--MATTFVPKPQAPPMMAALPSNTGR--SLFGLKT-GSR--GGRMTMAAYKVTLVTPTGN
+VEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLDDDQIDEGWVLTCAAYPVSDV
+TIETHKEEELTA-*
+>P1;FER3_RAPSA/1-96
+Ferredoxin, leaf L-A
+-----------------------------------------------------------ATYKVKFITPEGE
+QEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDDQIAEGFVLTCAAYPTSDV
+TIETHREEDMV--*
+>P1;FER1_ARATH/1-148
+Ferredoxin-1, chloroplast precursor
+MAST----ALSSAIVGTSFIRRSPAPISLRSLPSANTQ--SLFGLKS-GTARGGRVTAMATYKVKFITPEGE
+LEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDEQIGEGFVLTCAAYPTSDV
+TIETHKEEDIV--*
+>P1;FER_BRANA/1-96
+Ferredoxin
+-----------------------------------------------------------ATYKVKFITPEGE
+QEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGFVDQSDESFLDDDQIAEGFVLTCAAYPTSDV
+TIETHKEEELV--*
+>P1;FER2_ARATH/1-148
+Ferredoxin-2, chloroplast precursor
+MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGE
+QEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDDEQMSEGYVLTCVAYPTSDV
+VIETHKEEAIM--*
+>P1;Q93Z60_ARATH/1-118
+At1g10960/T19D16_12
+MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGE
+QEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDD-------------------
+-------------*
+>P1;FER1_MAIZE/1-150
+Ferredoxin-1, chloroplast precursor
+MATVLGSPRAPAFFFSSSSLRAAPAPTAV--ALPAAKV--GIMGRSA-SSRR--RLRAQATYNVKLITPEGE
+VELQVPDDVYILDQAEEDGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSYLDDGQIADGWVLTCHAYPTSDV
+VIETHKEEELTGA*
+>P1;O80429_MAIZE/1-140
+Ferredoxin
+MAAT---------ALSMSILR---APPPCFSSPLRLRV--AVAKPLA-APMRRQLLRAQATYNVKLITPEGE
+VELQVPDDVYILDFAEEEGIDLPFSCRAGSCSSCAGKVVSGSVDQSDQSFLNDNQVADGWVLTCAAYPTSDV
+VIETHKEDDLL--*
+>P1;1A70|/1-97
+1A70| 97 residues
+-----------------------------------------------------------AAYKVTLVTPTGN
+VEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLDDDQIDEGWVLTCAAYPVSDV
+TIETHKKEELTA*
diff --git a/examples/testdata/test.rnaml b/examples/testdata/test.rnaml
new file mode 100644 (file)
index 0000000..0c716f9
--- /dev/null
@@ -0,0 +1,2200 @@
+<?xml version="1.0"?>
+<!DOCTYPE rnaml SYSTEM "rnaml.dtd">
+
+<rnaml version="1.0">
+
+   <molecule id="1">
+      <sequence>
+         <numbering-system id="1" used-in-file="false">
+            <numbering-range>
+               <start>1</start>
+               <end>89</end>
+            </numbering-range>
+         </numbering-system>
+         <numbering-table length="89" comment="sequence number in pdb file">
+            1    2    3    4    5    6    7    8    9   10 
+           11   12   13   14   15   16   17   18   19   20 
+           21   22   23   24   25   26   27   28   29   30 
+           31   32   33   34   35   36   37   38   39   40 
+           41   42   43   44   45   46   47   48   49   50 
+           51   52   53   54   55   56   57   58   59   60 
+           61   62   63   64   65   66   67   68   69   70 
+           71   72   73   74   75   76   77   78   79   80 
+           81   82   83   84   85   86   87   88   89 
+         </numbering-table>
+         <seq-data>
+            GGAGAGUAGA UGAUUCGCGU UAAGCGUGUG UGAAUGGGAU GUCGUCACAC AACGAAGCGA 
+            GAGCGCGGUG AAUCAUUGCA UCCGCUCCA
+         </seq-data>
+         <seq-annotation comment="?">
+            <segment>
+               <seg-name>LOOP1</seg-name>
+               <base-id-5p><base-id><position>60</position></base-id></base-id-5p>
+               <base-id-3p><base-id><position>61</position></base-id></base-id-3p>
+            </segment>
+         </seq-annotation>
+      </sequence>
+      <structure>
+         <model id="?">
+            <model-info>
+               <method>Crystallography ?</method>
+               <resolution>? Angstroms</resolution>
+            </model-info>
+            <base>
+               <position>1</position>
+               <base-type>G</base-type>
+               <atom serial="1">
+                  <atom-type> P  </atom-type>
+                     <coordinates>39.406 -40.727 -8.772</coordinates>
+               </atom>
+               <atom serial="9">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>35.728 -40.286 -12.682</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>2</position>
+               <base-type>G</base-type>
+               <atom serial="24">
+                  <atom-type> P  </atom-type>
+                     <coordinates>34.946 -38.900 -12.475</coordinates>
+               </atom>
+               <atom serial="32">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>30.080 -38.122 -13.566</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>3</position>
+               <base-type>A</base-type>
+               <atom serial="47">
+                  <atom-type> P  </atom-type>
+                     <coordinates>29.830 -36.592 -13.144</coordinates>
+               </atom>
+               <atom serial="55">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>25.299 -34.832 -11.157</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>4</position>
+               <base-type>G</base-type>
+               <atom serial="69">
+                  <atom-type> P  </atom-type>
+                     <coordinates>25.525 -33.291 -10.748</coordinates>
+               </atom>
+               <atom serial="77">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>22.725 -31.357 -6.447</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>5</position>
+               <base-type>A</base-type>
+               <atom serial="92">
+                  <atom-type> P  </atom-type>
+                     <coordinates>23.004 -29.821 -6.080</coordinates>
+               </atom>
+               <atom serial="100">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>21.811 -28.069 -1.298</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>6</position>
+               <base-type>G</base-type>
+               <atom serial="114">
+                  <atom-type> P  </atom-type>
+                     <coordinates>21.792 -26.530 -1.767</coordinates>
+               </atom>
+               <atom serial="122">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>24.489 -23.234 1.411</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>7</position>
+               <base-type>U</base-type>
+               <atom serial="137">
+                  <atom-type> P  </atom-type>
+                     <coordinates>24.494 -21.833 0.618</coordinates>
+               </atom>
+               <atom serial="145">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>26.796 -17.886 2.729</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>8</position>
+               <base-type>A</base-type>
+               <atom serial="157">
+                  <atom-type> P  </atom-type>
+                     <coordinates>25.940 -16.593 2.288</coordinates>
+               </atom>
+               <atom serial="165">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>27.995 -11.947 1.918</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>9</position>
+               <base-type>G</base-type>
+               <atom serial="179">
+                  <atom-type> P  </atom-type>
+                     <coordinates>26.631 -11.127 1.714</coordinates>
+               </atom>
+               <atom serial="187">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>25.187 -8.816 -3.450</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>10</position>
+               <base-type>A</base-type>
+               <atom serial="202">
+                  <atom-type> P  </atom-type>
+                     <coordinates>23.765 -8.232 -3.892</coordinates>
+               </atom>
+               <atom serial="210">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>22.114 -8.019 -8.607</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>11</position>
+               <base-type>U</base-type>
+               <atom serial="224">
+                  <atom-type> P  </atom-type>
+                     <coordinates>20.793 -7.127 -8.411</coordinates>
+               </atom>
+               <atom serial="232">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>16.589 -7.608 -11.167</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>12</position>
+               <base-type>G</base-type>
+               <atom serial="244">
+                  <atom-type> P  </atom-type>
+                     <coordinates>15.563 -6.541 -10.537</coordinates>
+               </atom>
+               <atom serial="252">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>10.446 -7.534 -10.495</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>13</position>
+               <base-type>A</base-type>
+               <atom serial="267">
+                  <atom-type> P  </atom-type>
+                     <coordinates>9.719 -6.369 -9.662</coordinates>
+               </atom>
+               <atom serial="275">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>5.301 -7.413 -7.169</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>14</position>
+               <base-type>U</base-type>
+               <atom serial="289">
+                  <atom-type> P  </atom-type>
+                     <coordinates>4.913 -6.043 -6.428</coordinates>
+               </atom>
+               <atom serial="297">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>2.471 -6.216 -1.841</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>15</position>
+               <base-type>U</base-type>
+               <atom serial="309">
+                  <atom-type> P  </atom-type>
+                     <coordinates>2.306 -4.695 -1.355</coordinates>
+               </atom>
+               <atom serial="317">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>2.523 -3.519 3.678</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>16</position>
+               <base-type>C</base-type>
+               <atom serial="329">
+                  <atom-type> P  </atom-type>
+                     <coordinates>2.410 -1.916 3.716</coordinates>
+               </atom>
+               <atom serial="337">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>4.861 0.478 7.750</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>17</position>
+               <base-type>G</base-type>
+               <atom serial="349">
+                  <atom-type> P  </atom-type>
+                     <coordinates>5.097 2.068 7.705</coordinates>
+               </atom>
+               <atom serial="357">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>9.837 5.342 8.056</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>18</position>
+               <base-type>C</base-type>
+               <atom serial="372">
+                  <atom-type> P  </atom-type>
+                     <coordinates>9.957 6.906 7.713</coordinates>
+               </atom>
+               <atom serial="380">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>14.285 9.278 6.633</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>19</position>
+               <base-type>G</base-type>
+               <atom serial="392">
+                  <atom-type> P  </atom-type>
+                     <coordinates>13.701 10.760 6.394</coordinates>
+               </atom>
+               <atom serial="400">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>16.027 13.756 2.831</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>20</position>
+               <base-type>U</base-type>
+               <atom serial="415">
+                  <atom-type> P  </atom-type>
+                     <coordinates>15.167 15.091 3.070</coordinates>
+               </atom>
+               <atom serial="423">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>13.625 17.842 -0.910</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>21</position>
+               <base-type>U</base-type>
+               <atom serial="435">
+                  <atom-type> P  </atom-type>
+                     <coordinates>12.758 18.952 -0.136</coordinates>
+               </atom>
+               <atom serial="443">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>18.055 19.867 1.942</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>22</position>
+               <base-type>A</base-type>
+               <atom serial="455">
+                  <atom-type> P  </atom-type>
+                     <coordinates>19.169 19.634 0.806</coordinates>
+               </atom>
+               <atom serial="463">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>21.578 14.723 -0.062</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>23</position>
+               <base-type>A</base-type>
+               <atom serial="477">
+                  <atom-type> P  </atom-type>
+                     <coordinates>23.185 14.817 -0.069</coordinates>
+               </atom>
+               <atom serial="485">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>24.197 10.234 2.787</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>24</position>
+               <base-type>G</base-type>
+               <atom serial="499">
+                  <atom-type> P  </atom-type>
+                     <coordinates>25.187 9.332 1.904</coordinates>
+               </atom>
+               <atom serial="507">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>23.533 4.428 0.543</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>25</position>
+               <base-type>C</base-type>
+               <atom serial="522">
+                  <atom-type> P  </atom-type>
+                     <coordinates>24.698 3.762 -0.344</coordinates>
+               </atom>
+               <atom serial="530">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>23.832 1.164 -4.830</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>26</position>
+               <base-type>G</base-type>
+               <atom serial="542">
+                  <atom-type> P  </atom-type>
+                     <coordinates>25.358 0.687 -5.012</coordinates>
+               </atom>
+               <atom serial="550">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>27.639 1.163 -9.624</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>27</position>
+               <base-type>U</base-type>
+               <atom serial="565">
+                  <atom-type> P  </atom-type>
+                     <coordinates>29.215 0.976 -9.386</coordinates>
+               </atom>
+               <atom serial="573">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>32.967 2.977 -11.808</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>28</position>
+               <base-type>G</base-type>
+               <atom serial="585">
+                  <atom-type> P  </atom-type>
+                     <coordinates>34.192 2.205 -11.110</coordinates>
+               </atom>
+               <atom serial="593">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>38.926 3.986 -11.102</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>29</position>
+               <base-type>U</base-type>
+               <atom serial="608">
+                  <atom-type> P  </atom-type>
+                     <coordinates>39.673 2.760 -10.388</coordinates>
+               </atom>
+               <atom serial="616">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>43.897 3.593 -7.402</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>30</position>
+               <base-type>G</base-type>
+               <atom serial="628">
+                  <atom-type> P  </atom-type>
+                     <coordinates>44.247 2.191 -6.693</coordinates>
+               </atom>
+               <atom serial="636">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>46.005 2.102 -1.916</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>31</position>
+               <base-type>U</base-type>
+               <atom serial="651">
+                  <atom-type> P  </atom-type>
+                     <coordinates>46.082 0.594 -1.358</coordinates>
+               </atom>
+               <atom serial="659">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>46.014 -0.378 3.660</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>32</position>
+               <base-type>G</base-type>
+               <atom serial="671">
+                  <atom-type> P  </atom-type>
+                     <coordinates>46.093 -1.940 4.026</coordinates>
+               </atom>
+               <atom serial="679">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>42.541 -5.286 7.182</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>33</position>
+               <base-type>A</base-type>
+               <atom serial="694">
+                  <atom-type> P  </atom-type>
+                     <coordinates>42.384 -6.877 7.063</coordinates>
+               </atom>
+               <atom serial="702">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>38.307 -9.190 8.881</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>34</position>
+               <base-type>A</base-type>
+               <atom serial="716">
+                  <atom-type> P  </atom-type>
+                     <coordinates>38.548 -10.772 8.689</coordinates>
+               </atom>
+               <atom serial="724">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>34.569 -13.953 8.211</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>35</position>
+               <base-type>U</base-type>
+               <atom serial="738">
+                  <atom-type> P  </atom-type>
+                     <coordinates>34.833 -15.458 7.714</coordinates>
+               </atom>
+               <atom serial="746">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>32.606 -18.340 3.220</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>36</position>
+               <base-type>G</base-type>
+               <atom serial="758">
+                  <atom-type> P  </atom-type>
+                     <coordinates>33.272 -19.727 3.692</coordinates>
+               </atom>
+               <atom serial="766">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>29.146 -23.892 4.012</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>37</position>
+               <base-type>G</base-type>
+               <atom serial="781">
+                  <atom-type> P  </atom-type>
+                     <coordinates>29.023 -23.774 5.611</coordinates>
+               </atom>
+               <atom serial="789">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>32.904 -25.203 8.677</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>38</position>
+               <base-type>G</base-type>
+               <atom serial="804">
+                  <atom-type> P  </atom-type>
+                     <coordinates>34.031 -24.091 8.410</coordinates>
+               </atom>
+               <atom serial="812">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>38.938 -24.200 8.769</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>39</position>
+               <base-type>A</base-type>
+               <atom serial="827">
+                  <atom-type> P  </atom-type>
+                     <coordinates>39.341 -22.721 8.285</coordinates>
+               </atom>
+               <atom serial="835">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>43.751 -21.471 6.096</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>40</position>
+               <base-type>U</base-type>
+               <atom serial="849">
+                  <atom-type> P  </atom-type>
+                     <coordinates>43.479 -19.903 5.856</coordinates>
+               </atom>
+               <atom serial="857">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>45.395 -17.759 1.488</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>41</position>
+               <base-type>G</base-type>
+               <atom serial="869">
+                  <atom-type> P  </atom-type>
+                     <coordinates>44.930 -16.222 1.586</coordinates>
+               </atom>
+               <atom serial="877">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>43.506 -13.581 -2.651</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>42</position>
+               <base-type>U</base-type>
+               <atom serial="892">
+                  <atom-type> P  </atom-type>
+                     <coordinates>42.831 -12.121 -2.591</coordinates>
+               </atom>
+               <atom serial="900">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>41.294 -10.286 -7.932</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>43</position>
+               <base-type>C</base-type>
+               <atom serial="912">
+                  <atom-type> P  </atom-type>
+                     <coordinates>42.354 -9.284 -8.602</coordinates>
+               </atom>
+               <atom serial="920">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>37.101 -8.296 -10.514</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>44</position>
+               <base-type>G</base-type>
+               <atom serial="932">
+                  <atom-type> P  </atom-type>
+                     <coordinates>36.225 -7.381 -9.523</coordinates>
+               </atom>
+               <atom serial="940">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>31.469 -8.612 -8.166</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>45</position>
+               <base-type>U</base-type>
+               <atom serial="955">
+                  <atom-type> P  </atom-type>
+                     <coordinates>31.072 -7.255 -7.406</coordinates>
+               </atom>
+               <atom serial="963">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>28.607 -6.549 -3.172</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>46</position>
+               <base-type>C</base-type>
+               <atom serial="975">
+                  <atom-type> P  </atom-type>
+                     <coordinates>28.715 -4.958 -2.980</coordinates>
+               </atom>
+               <atom serial="983">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>28.390 -3.209 1.978</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>47</position>
+               <base-type>A</base-type>
+               <atom serial="995">
+                  <atom-type> P  </atom-type>
+                     <coordinates>28.521 -1.606 2.045</coordinates>
+               </atom>
+               <atom serial="1003">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>30.414 1.118 5.980</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>48</position>
+               <base-type>C</base-type>
+               <atom serial="1017">
+                  <atom-type> P  </atom-type>
+                     <coordinates>30.264 2.613 5.413</coordinates>
+               </atom>
+               <atom serial="1025">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>33.914 6.098 6.836</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>49</position>
+               <base-type>A</base-type>
+               <atom serial="1037">
+                  <atom-type> P  </atom-type>
+                     <coordinates>33.658 7.488 6.071</coordinates>
+               </atom>
+               <atom serial="1045">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>37.349 10.868 4.871</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>50</position>
+               <base-type>C</base-type>
+               <atom serial="1059">
+                  <atom-type> P  </atom-type>
+                     <coordinates>36.440 12.000 4.175</coordinates>
+               </atom>
+               <atom serial="1067">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>38.419 14.513 0.075</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>51</position>
+               <base-type>A</base-type>
+               <atom serial="1079">
+                  <atom-type> P  </atom-type>
+                     <coordinates>37.256 15.394 -0.597</coordinates>
+               </atom>
+               <atom serial="1087">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>37.356 16.350 -5.434</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>52</position>
+               <base-type>A</base-type>
+               <atom serial="1101">
+                  <atom-type> P  </atom-type>
+                     <coordinates>36.109 17.208 -5.963</coordinates>
+               </atom>
+               <atom serial="1109">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>32.771 16.782 -10.663</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>53</position>
+               <base-type>C</base-type>
+               <atom serial="1123">
+                  <atom-type> P  </atom-type>
+                     <coordinates>31.552 17.777 -10.378</coordinates>
+               </atom>
+               <atom serial="1131">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>27.305 16.113 -12.908</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>54</position>
+               <base-type>G</base-type>
+               <atom serial="1143">
+                  <atom-type> P  </atom-type>
+                     <coordinates>26.189 17.220 -12.567</coordinates>
+               </atom>
+               <atom serial="1151">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>21.401 15.463 -11.735</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>55</position>
+               <base-type>A</base-type>
+               <atom serial="1166">
+                  <atom-type> P  </atom-type>
+                     <coordinates>20.593 16.847 -11.641</coordinates>
+               </atom>
+               <atom serial="1174">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>14.995 15.270 -10.886</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>56</position>
+               <base-type>A</base-type>
+               <atom serial="1188">
+                  <atom-type> P  </atom-type>
+                     <coordinates>14.099 15.609 -12.176</coordinates>
+               </atom>
+               <atom serial="1196">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>11.604 16.216 -7.225</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>57</position>
+               <base-type>G</base-type>
+               <atom serial="1210">
+                  <atom-type> P  </atom-type>
+                     <coordinates>12.080 17.523 -6.429</coordinates>
+               </atom>
+               <atom serial="1218">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>7.183 20.279 -7.550</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>58</position>
+               <base-type>C</base-type>
+               <atom serial="1233">
+                  <atom-type> P  </atom-type>
+                     <coordinates>5.983 21.146 -6.947</coordinates>
+               </atom>
+               <atom serial="1241">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>0.457 20.033 -6.497</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>59</position>
+               <base-type>G</base-type>
+               <atom serial="1253">
+                  <atom-type> P  </atom-type>
+                     <coordinates>-0.544 20.976 -5.664</coordinates>
+               </atom>
+               <atom serial="1261">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>-5.064 19.435 -4.069</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>60</position>
+               <base-type>A</base-type>
+               <atom serial="1276">
+                  <atom-type> P  </atom-type>
+                     <coordinates>-5.376 20.880 -3.446</coordinates>
+               </atom>
+               <atom serial="1284">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>-4.674 20.226 1.852</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>61</position>
+               <base-type>G</base-type>
+               <atom serial="1298">
+                  <atom-type> P  </atom-type>
+                     <coordinates>-3.473 19.173 1.806</coordinates>
+               </atom>
+               <atom serial="1306">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>-4.399 14.900 5.084</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>62</position>
+               <base-type>A</base-type>
+               <atom serial="1321">
+                  <atom-type> P  </atom-type>
+                     <coordinates>-3.268 13.764 4.956</coordinates>
+               </atom>
+               <atom serial="1329">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>-4.326 8.891 5.778</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>63</position>
+               <base-type>G</base-type>
+               <atom serial="1343">
+                  <atom-type> P  </atom-type>
+                     <coordinates>-2.954 8.206 5.320</coordinates>
+               </atom>
+               <atom serial="1351">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>-2.345 6.516 -0.228</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>64</position>
+               <base-type>C</base-type>
+               <atom serial="1366">
+                  <atom-type> P  </atom-type>
+                     <coordinates>-1.075 5.830 -0.928</coordinates>
+               </atom>
+               <atom serial="1374">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>-0.362 6.130 -5.741</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>65</position>
+               <base-type>G</base-type>
+               <atom serial="1386">
+                  <atom-type> P  </atom-type>
+                     <coordinates>0.975 5.389 -6.226</coordinates>
+               </atom>
+               <atom serial="1394">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>5.254 7.641 -9.385</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>66</position>
+               <base-type>C</base-type>
+               <atom serial="1409">
+                  <atom-type> P  </atom-type>
+                     <coordinates>6.414 6.540 -9.525</coordinates>
+               </atom>
+               <atom serial="1417">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>11.228 8.547 -10.401</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>67</position>
+               <base-type>G</base-type>
+               <atom serial="1429">
+                  <atom-type> P  </atom-type>
+                     <coordinates>12.262 7.325 -10.276</coordinates>
+               </atom>
+               <atom serial="1437">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>17.393 8.076 -7.688</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>68</position>
+               <base-type>G</base-type>
+               <atom serial="1452">
+                  <atom-type> P  </atom-type>
+                     <coordinates>18.588 8.450 -8.699</coordinates>
+               </atom>
+               <atom serial="1460">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>17.674 3.102 -7.969</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>69</position>
+               <base-type>U</base-type>
+               <atom serial="1475">
+                  <atom-type> P  </atom-type>
+                     <coordinates>17.676 1.931 -6.877</coordinates>
+               </atom>
+               <atom serial="1483">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>19.344 2.058 -2.233</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>70</position>
+               <base-type>G</base-type>
+               <atom serial="1495">
+                  <atom-type> P  </atom-type>
+                     <coordinates>19.325 0.478 -1.917</coordinates>
+               </atom>
+               <atom serial="1503">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>20.086 -1.464 2.724</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>71</position>
+               <base-type>A</base-type>
+               <atom serial="1518">
+                  <atom-type> P  </atom-type>
+                     <coordinates>20.065 -3.053 2.482</coordinates>
+               </atom>
+               <atom serial="1526">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>18.093 -6.084 6.331</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>72</position>
+               <base-type>A</base-type>
+               <atom serial="1540">
+                  <atom-type> P  </atom-type>
+                     <coordinates>18.058 -7.629 5.887</coordinates>
+               </atom>
+               <atom serial="1548">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>14.491 -10.888 7.635</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>73</position>
+               <base-type>U</base-type>
+               <atom serial="1562">
+                  <atom-type> P  </atom-type>
+                     <coordinates>14.861 -12.252 6.871</coordinates>
+               </atom>
+               <atom serial="1570">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>11.261 -15.468 5.182</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>74</position>
+               <base-type>C</base-type>
+               <atom serial="1582">
+                  <atom-type> P  </atom-type>
+                     <coordinates>12.050 -16.617 4.382</coordinates>
+               </atom>
+               <atom serial="1590">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>9.736 -18.950 0.360</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>75</position>
+               <base-type>A</base-type>
+               <atom serial="1602">
+                  <atom-type> P  </atom-type>
+                     <coordinates>10.800 -19.899 -0.381</coordinates>
+               </atom>
+               <atom serial="1610">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>10.831 -20.869 -5.373</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>76</position>
+               <base-type>U</base-type>
+               <atom serial="1624">
+                  <atom-type> P  </atom-type>
+                     <coordinates>12.149 -21.782 -5.481</coordinates>
+               </atom>
+               <atom serial="1632">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>15.150 -21.466 -9.686</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>77</position>
+               <base-type>U</base-type>
+               <atom serial="1644">
+                  <atom-type> P  </atom-type>
+                     <coordinates>16.383 -22.407 -9.255</coordinates>
+               </atom>
+               <atom serial="1652">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>21.158 -21.098 -10.643</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>78</position>
+               <base-type>G</base-type>
+               <atom serial="1664">
+                  <atom-type> P  </atom-type>
+                     <coordinates>22.003 -22.328 -10.053</coordinates>
+               </atom>
+               <atom serial="1672">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>26.870 -21.574 -8.157</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>79</position>
+               <base-type>C</base-type>
+               <atom serial="1687">
+                  <atom-type> P  </atom-type>
+                     <coordinates>27.394 -22.916 -7.439</coordinates>
+               </atom>
+               <atom serial="1695">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>32.738 -22.221 -7.672</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>80</position>
+               <base-type>A</base-type>
+               <atom serial="1707">
+                  <atom-type> P  </atom-type>
+                     <coordinates>33.094 -23.432 -8.669</coordinates>
+               </atom>
+               <atom serial="1715">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>37.970 -23.709 -10.290</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>81</position>
+               <base-type>U</base-type>
+               <atom serial="1729">
+                  <atom-type> P  </atom-type>
+                     <coordinates>38.180 -25.262 -9.938</coordinates>
+               </atom>
+               <atom serial="1737">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>42.343 -27.512 -8.310</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>82</position>
+               <base-type>C</base-type>
+               <atom serial="1749">
+                  <atom-type> P  </atom-type>
+                     <coordinates>41.594 -28.924 -8.148</coordinates>
+               </atom>
+               <atom serial="1757">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>42.976 -31.766 -3.839</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>83</position>
+               <base-type>C</base-type>
+               <atom serial="1769">
+                  <atom-type> P  </atom-type>
+                     <coordinates>41.983 -33.022 -3.698</coordinates>
+               </atom>
+               <atom serial="1777">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>40.724 -35.051 0.999</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>84</position>
+               <base-type>G</base-type>
+               <atom serial="1789">
+                  <atom-type> P  </atom-type>
+                     <coordinates>39.499 -36.072 0.803</coordinates>
+               </atom>
+               <atom serial="1797">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>35.976 -36.466 4.801</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>85</position>
+               <base-type>C</base-type>
+               <atom serial="1812">
+                  <atom-type> P  </atom-type>
+                     <coordinates>34.990 -37.680 4.429</coordinates>
+               </atom>
+               <atom serial="1820">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>30.031 -37.549 5.509</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>86</position>
+               <base-type>U</base-type>
+               <atom serial="1832">
+                  <atom-type> P  </atom-type>
+                     <coordinates>29.628 -39.018 5.001</coordinates>
+               </atom>
+               <atom serial="1840">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>25.142 -40.312 3.037</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>87</position>
+               <base-type>C</base-type>
+               <atom serial="1852">
+                  <atom-type> P  </atom-type>
+                     <coordinates>25.378 -41.854 2.656</coordinates>
+               </atom>
+               <atom serial="1860">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>22.860 -43.926 -1.490</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>88</position>
+               <base-type>C</base-type>
+               <atom serial="1872">
+                  <atom-type> P  </atom-type>
+                     <coordinates>23.430 -45.414 -1.686</coordinates>
+               </atom>
+               <atom serial="1880">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>24.098 -47.533 -6.370</coordinates>
+               </atom>
+            </base>
+            <base>
+               <position>89</position>
+               <base-type>A</base-type>
+               <atom serial="1892">
+                  <atom-type> P  </atom-type>
+                     <coordinates>24.738 -48.976 -6.070</coordinates>
+               </atom>
+               <atom serial="1900">
+                  <atom-type> O3'</atom-type>
+                     <coordinates>28.245 -51.062 -9.390</coordinates>
+               </atom>
+            </base>
+            <str-annotation>
+               <base-conformation>
+                  <base-id><position>22</position></base-id>
+                  <glycosyl>syn</glycosyl>
+               </base-conformation>
+               <base-conformation>
+                  <base-id><position>68</position></base-id>
+                  <glycosyl>syn</glycosyl>
+               </base-conformation>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>1</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>88</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>+</edge-5p>
+                  <edge-3p>+</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>2</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>87</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>+</edge-5p>
+                  <edge-3p>+</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>3</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>86</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>-</edge-5p>
+                  <edge-3p>-</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>4</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>85</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>+</edge-5p>
+                  <edge-3p>+</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>5</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>84</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>W</edge-5p>
+                  <edge-3p>W</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>6</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>37</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>S</edge-5p>
+                  <edge-3p>H</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>8</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>44</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>S</edge-5p>
+                  <edge-3p>S</edge-3p>
+                  <bond-orientation>t</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>8</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>78</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>H</edge-5p>
+                  <edge-3p>S</edge-3p>
+                  <bond-orientation>t</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>9</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>77</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>W</edge-5p>
+                  <edge-3p>W</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>10</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>76</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>-</edge-5p>
+                  <edge-3p>-</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>11</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>75</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>-</edge-5p>
+                  <edge-3p>-</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>12</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>74</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>+</edge-5p>
+                  <edge-3p>+</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>13</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>73</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>-</edge-5p>
+                  <edge-3p>-</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>14</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>72</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>-</edge-5p>
+                  <edge-3p>-</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>15</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>71</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>-</edge-5p>
+                  <edge-3p>-</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>16</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>70</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>+</edge-5p>
+                  <edge-3p>+</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>17</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>69</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>W</edge-5p>
+                  <edge-3p>W</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>18</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>67</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>+</edge-5p>
+                  <edge-3p>+</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>19</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>22</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>S</edge-5p>
+                  <edge-3p>S</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>19</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>66</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>+</edge-5p>
+                  <edge-3p>+</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>20</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>65</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>W</edge-5p>
+                  <edge-3p>W</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>23</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>55</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>H</edge-5p>
+                  <edge-3p>W</edge-3p>
+                  <bond-orientation>t</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>23</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>67</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>W</edge-5p>
+                  <edge-3p>S</edge-3p>
+                  <bond-orientation>t</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>24</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>54</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>H</edge-5p>
+                  <edge-3p>S</edge-3p>
+                  <bond-orientation>t</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>26</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>52</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>W</edge-5p>
+                  <edge-3p>W</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>27</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>51</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>-</edge-5p>
+                  <edge-3p>-</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>28</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>50</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>+</edge-5p>
+                  <edge-3p>+</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>29</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>49</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>-</edge-5p>
+                  <edge-3p>-</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>30</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>48</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>+</edge-5p>
+                  <edge-3p>+</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>31</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>47</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>-</edge-5p>
+                  <edge-3p>-</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>32</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>46</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>+</edge-5p>
+                  <edge-3p>+</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>33</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>45</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>-</edge-5p>
+                  <edge-3p>-</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>34</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>44</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>W</edge-5p>
+                  <edge-3p>W</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>35</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>42</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>W</edge-5p>
+                  <edge-3p>H</edge-3p>
+                  <bond-orientation>t</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>37</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>83</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>+</edge-5p>
+                  <edge-3p>+</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>38</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>82</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>+</edge-5p>
+                  <edge-3p>+</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>39</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>81</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>-</edge-5p>
+                  <edge-3p>-</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>40</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>80</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>-</edge-5p>
+                  <edge-3p>-</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>41</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>79</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>W</edge-5p>
+                  <edge-3p>W</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>56</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>65</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>S</edge-5p>
+                  <edge-3p>S</edge-3p>
+                  <bond-orientation>t</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>57</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>64</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>+</edge-5p>
+                  <edge-3p>+</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>58</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>63</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>+</edge-5p>
+                  <edge-3p>+</edge-3p>
+                  <bond-orientation>c</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>59</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>62</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>W</edge-5p>
+                  <edge-3p>H</edge-3p>
+                  <bond-orientation>t</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>7</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>35</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>!</edge-5p>
+                  <edge-3p>!</edge-3p>
+                  <bond-orientation>!</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>8</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>35</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>!</edge-5p>
+                  <edge-3p>!</edge-3p>
+                  <bond-orientation>!</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>23</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>54</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>!</edge-5p>
+                  <edge-3p>!</edge-3p>
+                  <bond-orientation>!</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>24</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>69</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>!</edge-5p>
+                  <edge-3p>!</edge-3p>
+                  <bond-orientation>!</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>35</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>79</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>!</edge-5p>
+                  <edge-3p>!</edge-3p>
+                  <bond-orientation>!</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>43</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>44</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>!</edge-5p>
+                  <edge-3p>!</edge-3p>
+                  <bond-orientation>!</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>54</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>55</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>!</edge-5p>
+                  <edge-3p>!</edge-3p>
+                  <bond-orientation>!</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>56</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>57</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>!</edge-5p>
+                  <edge-3p>!</edge-3p>
+                  <bond-orientation>!</bond-orientation>
+               </base-pair>
+               <base-pair comment="?">
+                  <base-id-5p>
+                     <base-id><position>68</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>69</position></base-id>
+                  </base-id-3p>
+                  <edge-5p>!</edge-5p>
+                  <edge-3p>!</edge-3p>
+                  <bond-orientation>!</bond-orientation>
+               </base-pair>
+               <helix id="H1">
+                  <base-id-5p>
+                     <base-id><position>1</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>88</position></base-id>
+                  </base-id-3p>
+                  <length>5</length>
+               </helix>
+               <helix id="H2">
+                  <base-id-5p>
+                     <base-id><position>37</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>83</position></base-id>
+                  </base-id-3p>
+                  <length>5</length>
+               </helix>
+               <helix id="H3">
+                  <base-id-5p>
+                     <base-id><position>26</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>52</position></base-id>
+                  </base-id-3p>
+                  <length>9</length>
+               </helix>
+               <helix id="H4">
+                  <base-id-5p>
+                     <base-id><position>23</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>55</position></base-id>
+                  </base-id-3p>
+                  <length>2</length>
+               </helix>
+               <helix id="H5">
+                  <base-id-5p>
+                     <base-id><position>57</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>64</position></base-id>
+                  </base-id-3p>
+                  <length>3</length>
+               </helix>
+               <helix id="H6">
+                  <base-id-5p>
+                     <base-id><position>19</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>66</position></base-id>
+                  </base-id-3p>
+                  <length>2</length>
+               </helix>
+               <helix id="H7">
+                  <base-id-5p>
+                     <base-id><position>8</position></base-id>
+                  </base-id-5p>
+                  <base-id-3p>
+                     <base-id><position>78</position></base-id>
+                  </base-id-3p>
+                  <length>10</length>
+               </helix>
+               <single-strand>
+                  <segment>
+                     <seg-name>SG1</seg-name>
+                     <base-id-5p><base-id><position>6</position></base-id></base-id-5p>
+                     <base-id-3p><base-id><position>7</position></base-id></base-id-3p>
+                  </segment>
+               </single-strand>
+               <single-strand>
+                  <segment>
+                     <seg-name>SG2</seg-name>
+                     <base-id-5p><base-id><position>18</position></base-id></base-id-5p>
+                     <base-id-3p><base-id><position>18</position></base-id></base-id-3p>
+                  </segment>
+               </single-strand>
+               <single-strand>
+                  <segment>
+                     <seg-name>SG3</seg-name>
+                     <base-id-5p><base-id><position>21</position></base-id></base-id-5p>
+                     <base-id-3p><base-id><position>22</position></base-id></base-id-3p>
+                  </segment>
+               </single-strand>
+               <single-strand>
+                  <segment>
+                     <seg-name>SG4</seg-name>
+                     <base-id-5p><base-id><position>25</position></base-id></base-id-5p>
+                     <base-id-3p><base-id><position>25</position></base-id></base-id-3p>
+                  </segment>
+               </single-strand>
+               <single-strand>
+                  <segment>
+                     <seg-name>SG5</seg-name>
+                     <base-id-5p><base-id><position>35</position></base-id></base-id-5p>
+                     <base-id-3p><base-id><position>36</position></base-id></base-id-3p>
+                  </segment>
+               </single-strand>
+               <single-strand>
+                  <segment>
+                     <seg-name>SG6</seg-name>
+                     <base-id-5p><base-id><position>42</position></base-id></base-id-5p>
+                     <base-id-3p><base-id><position>43</position></base-id></base-id-3p>
+                  </segment>
+               </single-strand>
+               <single-strand>
+                  <segment>
+                     <seg-name>SG7</seg-name>
+                     <base-id-5p><base-id><position>53</position></base-id></base-id-5p>
+                     <base-id-3p><base-id><position>53</position></base-id></base-id-3p>
+                  </segment>
+               </single-strand>
+               <single-strand>
+                  <segment>
+                     <seg-name>SG8</seg-name>
+                     <base-id-5p><base-id><position>56</position></base-id></base-id-5p>
+                     <base-id-3p><base-id><position>56</position></base-id></base-id-3p>
+                  </segment>
+               </single-strand>
+               <single-strand>
+                  <segment>
+                     <seg-name>SG9</seg-name>
+                     <base-id-5p><base-id><position>60</position></base-id></base-id-5p>
+                     <base-id-3p><base-id><position>61</position></base-id></base-id-3p>
+                  </segment>
+               </single-strand>
+               <single-strand>
+                  <segment>
+                     <seg-name>SG10</seg-name>
+                     <base-id-5p><base-id><position>67</position></base-id></base-id-5p>
+                     <base-id-3p><base-id><position>68</position></base-id></base-id-3p>
+                  </segment>
+               </single-strand>
+               <single-strand>
+                  <segment>
+                     <seg-name>SG11</seg-name>
+                     <base-id-5p><base-id><position>89</position></base-id></base-id-5p>
+                     <base-id-3p><base-id><position>89</position></base-id></base-id-3p>
+                  </segment>
+               </single-strand>
+            </str-annotation>
+            <secondary-structure-display comment="x,y coodinates">
+               <ss-base-coord>
+                  <base-id><position>1</position></base-id>
+                  <coordinates>264.792 11.342</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>2</position></base-id>
+                  <coordinates>264.792 30.246</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>3</position></base-id>
+                  <coordinates>264.792 49.149</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>4</position></base-id>
+                  <coordinates>264.792 68.053</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>5</position></base-id>
+                  <coordinates>264.792 86.957</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>6</position></base-id>
+                  <coordinates>276.134 86.957</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>7</position></base-id>
+                  <coordinates>287.476 86.957</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>8</position></base-id>
+                  <coordinates>148.757 221.618</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>9</position></base-id>
+                  <coordinates>143.395 239.745</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>10</position></base-id>
+                  <coordinates>138.033 257.872</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>11</position></base-id>
+                  <coordinates>132.670 275.999</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>12</position></base-id>
+                  <coordinates>127.308 294.126</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>13</position></base-id>
+                  <coordinates>121.946 312.254</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>14</position></base-id>
+                  <coordinates>116.584 330.381</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>15</position></base-id>
+                  <coordinates>111.221 348.508</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>16</position></base-id>
+                  <coordinates>105.859 366.635</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>17</position></base-id>
+                  <coordinates>100.497 384.762</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>18</position></base-id>
+                  <coordinates>53.294 416.207</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>19</position></base-id>
+                  <coordinates>48.034 426.256</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>20</position></base-id>
+                  <coordinates>39.267 443.003</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>21</position></base-id>
+                  <coordinates>219.423 487.713</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>22</position></base-id>
+                  <coordinates>219.423 476.370</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>23</position></base-id>
+                  <coordinates>219.423 465.028</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>24</position></base-id>
+                  <coordinates>219.423 446.125</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>25</position></base-id>
+                  <coordinates>219.423 427.221</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>26</position></base-id>
+                  <coordinates>219.423 389.414</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>27</position></base-id>
+                  <coordinates>219.423 370.510</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>28</position></base-id>
+                  <coordinates>219.423 351.607</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>29</position></base-id>
+                  <coordinates>219.423 332.703</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>30</position></base-id>
+                  <coordinates>219.423 313.800</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>31</position></base-id>
+                  <coordinates>219.423 294.896</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>32</position></base-id>
+                  <coordinates>219.423 275.992</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>33</position></base-id>
+                  <coordinates>219.423 257.089</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>34</position></base-id>
+                  <coordinates>219.423 238.185</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>35</position></base-id>
+                  <coordinates>287.476 124.764</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>36</position></base-id>
+                  <coordinates>276.134 124.764</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>37</position></base-id>
+                  <coordinates>264.792 124.764</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>38</position></base-id>
+                  <coordinates>264.792 143.667</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>39</position></base-id>
+                  <coordinates>264.792 162.571</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>40</position></base-id>
+                  <coordinates>264.792 181.474</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>41</position></base-id>
+                  <coordinates>264.792 200.378</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>42</position></base-id>
+                  <coordinates>276.134 200.378</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>43</position></base-id>
+                  <coordinates>287.476 200.378</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>44</position></base-id>
+                  <coordinates>264.792 238.185</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>45</position></base-id>
+                  <coordinates>264.792 257.089</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>46</position></base-id>
+                  <coordinates>264.792 275.992</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>47</position></base-id>
+                  <coordinates>264.792 294.896</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>48</position></base-id>
+                  <coordinates>264.792 313.800</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>49</position></base-id>
+                  <coordinates>264.792 332.703</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>50</position></base-id>
+                  <coordinates>264.792 351.607</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>51</position></base-id>
+                  <coordinates>264.792 370.510</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>52</position></base-id>
+                  <coordinates>264.792 389.414</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>53</position></base-id>
+                  <coordinates>264.792 408.318</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>54</position></base-id>
+                  <coordinates>264.792 446.125</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>55</position></base-id>
+                  <coordinates>264.792 465.028</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>56</position></base-id>
+                  <coordinates>264.792 476.370</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>57</position></base-id>
+                  <coordinates>21.732 476.499</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>58</position></base-id>
+                  <coordinates>12.965 493.246</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>59</position></base-id>
+                  <coordinates>4.198 509.994</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>60</position></base-id>
+                  <coordinates>0.000 537.223</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>61</position></base-id>
+                  <coordinates>24.408 550.000</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>62</position></base-id>
+                  <coordinates>44.392 531.035</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>63</position></base-id>
+                  <coordinates>53.159 514.288</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>64</position></base-id>
+                  <coordinates>61.927 497.540</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>65</position></base-id>
+                  <coordinates>79.461 464.045</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>66</position></base-id>
+                  <coordinates>88.228 447.297</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>67</position></base-id>
+                  <coordinates>93.488 437.249</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>68</position></base-id>
+                  <coordinates>98.749 427.200</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>69</position></base-id>
+                  <coordinates>56.992 371.893</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>70</position></base-id>
+                  <coordinates>62.354 353.766</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>71</position></base-id>
+                  <coordinates>67.716 335.638</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>72</position></base-id>
+                  <coordinates>73.079 317.511</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>73</position></base-id>
+                  <coordinates>78.441 299.384</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>74</position></base-id>
+                  <coordinates>83.803 281.257</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>75</position></base-id>
+                  <coordinates>89.165 263.130</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>76</position></base-id>
+                  <coordinates>94.527 245.003</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>77</position></base-id>
+                  <coordinates>99.890 226.876</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>78</position></base-id>
+                  <coordinates>105.252 208.749</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>79</position></base-id>
+                  <coordinates>219.423 200.378</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>80</position></base-id>
+                  <coordinates>219.423 181.474</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>81</position></base-id>
+                  <coordinates>219.423 162.571</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>82</position></base-id>
+                  <coordinates>219.423 143.667</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>83</position></base-id>
+                  <coordinates>219.423 124.764</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>84</position></base-id>
+                  <coordinates>219.423 86.957</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>85</position></base-id>
+                  <coordinates>219.423 68.053</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>86</position></base-id>
+                  <coordinates>219.423 49.149</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>87</position></base-id>
+                  <coordinates>219.423 30.246</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>88</position></base-id>
+                  <coordinates>219.423 11.342</coordinates>
+               </ss-base-coord>
+               <ss-base-coord>
+                  <base-id><position>89</position></base-id>
+                  <coordinates>219.423 0.000</coordinates>
+               </ss-base-coord>
+            </secondary-structure-display>
+         </model>
+      </structure>
+   </molecule>
+
+
+   <interactions>
+            <str-annotation>
+            </str-annotation>
+   </interactions>
+</rnaml>
\ No newline at end of file
diff --git a/examples/testdata/uniref50_test_tree b/examples/testdata/uniref50_test_tree
new file mode 100644 (file)
index 0000000..585b68b
--- /dev/null
@@ -0,0 +1 @@
+(((FER_BRANA:112.15387,FER3_RAPSA:110.84613):46.4375,FER_CAPAA:144.0625):177.2998,(O80429_MAIZE:184.40039,(FER1_MAIZE:195.79102,(((FER1_SPIOL:111.687515,FER1_MESCR:84.312485):51.929688,((Q93Z60_ARATH:398.14285,(FER2_ARATH:53.65625,FER1_ARATH:48.34375):0.0):86.725006,(Q7XA98_TRIPR:78.65277,FER1_PEA:68.34723):63.774994):7.7578125):0.58332825,((Q93XJ9_SOLTU:23.647736,FER1_SOLLC:20.352264):31.71875,FER_CAPAN:52.28125):101.7448):41.498047):37.208984):177.2998);
index c5f42df..1ece1cc 100644 (file)
  * The Jalview Authors are detailed in the 'AUTHORS' file.
  -->
 <head>
-<title>Filter Columns by Annotation</title>
+<title>Select/Hide Columns by Annotation</title>
 </head>
 
 <body>
        <p>
-               <strong> Filter Columns by Annotation </strong>
+               <strong> Select/Hide Columns by Annotation </strong>
        </p>
-       <p>Jalview allows the columns of an alignment to be filtered using
-               any annotation rows added to that alignment.</p>
-       From &quot;Select&quot; menu
-       <strong>&#8594;</strong> &quot;Select by Annotation...&quot; to bring
-       up the Select by Annotation window. The filter options vary depending
+       <p>From Jalview 2.9 columns of an alignment can be filtered using
+               any annotation row added to that alignment.</p>
+       To carry out this operation, navigate to &quot;<b>Select</b><strong><b>&#8594;</b></strong><b>Select/Hide Columns by Annotation...</b>&quot; to bring
+       up the 'Select/Hide by Annotation' window. The filter options vary depending
        on the type of annotation selected. If an annotation that has a numeric
        values is selected, the threshold filter option is activated as seen in the
-       figure on the right below.
+       figure on the right below, otherwise the dialog will exclude the threshold filter option as seen in the figure on the left.
        <br>
-       <br> 
+       <br>
+       <table>
+               <tr>
+                       <td><img src="annotationColumnSelectionWithoutSM.gif"></td>
+                       <td><img src="annotationColumnSelectionWithSM.gif"></td>
+               </tr>
+       </table>
 
-       <div style="width: 48%; float: left; margin-left: 4%">
-               <img src="annotationColumnSelectionWithoutSM.gif">
-       </div>
-       <div style="width: 48%; float: right">
-               <img src="annotationColumnSelectionWithSM.gif">
-       </div>
-       <div>&nbsp</div>
 
        <ul>
-               <li>Select which annotation to base the filtering on using the
-                       top-most selection box.</li>
+               <li>The target annotation row can be selected using the drop-down option menu in the top-most part of the window.</li>
 
                <li><strong>Search Filter</strong>
                        <ul>
-                               <li>When a text is entered in the textfield on the search
-                                       filter section, the &quot;Display Label&quot; and &quot;Description&quot;
-                                       checkboxes becomes selectable.</li>
-                               <li>On selecting any of the checkboxes, a regular expresion
+                               <li>When a text is entered in the text box within the Search
+                                       Filter section, the 'Display Label' and 'Description'
+                                       options becomes enabled for selection. </li>
+                               <li>On selecting any of the options, a regular expression
                                        search (RegEx) is executed on the specified field of the current
                                        annotation row selected, and the matching columns will be highlighted
                                        in the alignment.</li>
@@ -63,7 +60,7 @@
                <li><strong>Structure Filter</strong>
                        <ul>
                                <li>Alignment columns can also be filtered by the type of
-                                       secondary structure present in a choosen annotation row.</li>
+                                       secondary structure present in a target annotation row.</li>
                                <li>This can be achieved by ticking the type of structure you
                                        wish to filter by under the structures filter section.</li>
                        </ul>
@@ -71,7 +68,7 @@
                        <ul>
                                <li>This filter is only activated for annotation which contain
                                        numeric values</li>
-                               <li>Select whether to Filter the alignment above or below an
+                               <li>Select whether to filter the alignment above or below an
                                        adjustable threshold with the selection box within the threshold
                                        filter section.</li>
                                <li>Change the threshold value with the slider, or enter the
                        </ul>
                <li><strong>Actions</strong>
                        <ul>
-                               <li>The &quot;Select&quot; and &quot;Hide&quot; radio buttons
+                               <li>The 'Select' and 'Hide' radio buttons
                                        determines the action that will be carried out on the matching
                                        columns in the alignment during the filtering process.</li>
-                               <li>The default option is &quot;Select&quot; and this simply
+                               <li>The default option is 'Select' and this simply
                                        enables column selection on the matching alignment column.</li>
-                               <li>While the &quot;Hide&quot; option enables the matching columns to
+                               <li>While the 'Hide' option enables the matching columns to
                                        be hidden automatically during the filtering process.</li>
-                               <li>The &quot;Ok&quot; button applies the filter when clicked.</li>
-                               <li>And finally, The &quot;Cancel&quot; button restores the alignment to its previous state before the filtering when clicked. 
+                               <li>The 'Ok' button applies the filter when clicked.</li>
+                               <li>And finally, the 'Cancel' button restores the alignment to its previous state before any filtering was applied. 
                        </ul></li>
        </ul>
 
diff --git a/help/html/features/bioJsonFormat.html b/help/html/features/bioJsonFormat.html
new file mode 100644 (file)
index 0000000..a91955b
--- /dev/null
@@ -0,0 +1,52 @@
+<html>
+<!--
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview 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.
+ *  
+ * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ -->
+<head>
+<title>BioJSON-1.0</title>
+</head>
+<body>
+       <h1>BioJSON</h1>
+       BioJSON is a standardise JavaScript Object Notation (JSON) format for exchange of Bio-informatics Sequence Alignment data.      
+       BioJSON-1.0 schema/documentation is available at <a href="#">http://www.jalview.org/builds/develop/examples/biojson-doc/</a>.
+       You can keep up to date with BioJSON development and latest news at <a href="#">https://github.com/jalview/biojson/wiki</a>.
+       
+       <h2>Features supported</h2>
+       Export/Import of the following alignment elements are supported in BioJSON-1.0:
+       <ul>
+               <li>Alignment Annotations</li>
+               <li>Alignment Features</li>
+               <li>Alignment Sequences</li>
+               <li>Color Scheme</li>
+               <li>Hidden Columns</li>
+               <li>Hidden Sequences</li>
+               <li>Sequence Groups</li>
+       </ul>
+
+       <h2>Features not yet supported</h2>
+       Export/Import of the following alignment elements are not supported in BioJSON-1.0:
+       <ul>
+               <li>Reference sequence</li>
+               <li>Representative sequence</li>
+               <li>Trees</li>
+               <li>3D Structures</li>
+       </ul>
+</body>
+</html>
index 8a72d4d..16b0dc0 100644 (file)
  <td><div align="center">-blc FILE</div></td>
  <td><div align="left">Create alignment file FILE in BLC format.</div></td>
  </tr>
+  <tr> 
+ <td><div align="center">-json FILE</div></td>
+ <td><div align="left">Create alignment file FILE in JSON format.</div></td>
+ </tr>
  <tr> 
  <td><div align="center">-jalview FILE</div></td>
 
index 15dc2c6..ce7d96e 100644 (file)
 <body>
 
        <strong>PDB Sequence Fetcher</strong>
-       <p>From Jalview 2.x.x a speciliased interface was introduced for
+       <p>From Jalview 2.9, a specialised interface was introduced for
                fast and efficient discovery/retrieval of sequence data from the PDB
                database. The introduced interface enables live querying of PDB data
                on-the-fly thereby eliminating the need to memorise database accession
-               or to cross-reference other bioinformatics websites before retrieving
-               a sequence data in jalview. The underlying technology is provided by
+               or to manually cross-reference other bioinformatics websites before retrieving
+               sequence data in Jalview. The underlying infrastructure is provided by
                EBI and is based on Apache Solr which is a text based search engine.</p>
        <p>
-               The PDB Sequence Fetcher interface can be opened by selecting <strong>PDB</strong>
-               as the choice database from the <strong>'Select Database
-                       Retrieval Source'</strong> interface of <a href="seqfetch.html">Sequence
-                       Fetcher</a>.
+               The PDB Sequence Fetcher interface can be accessed from <b>&quot;File &#8594;Fetch  Sequence(s) &#8594;Select Database &#8594;PDB&quot;</b> click the ok button after selecting PDB from the  'Select Database
+                       Retrieval Source' interface.
        </p>
        <p>
                <img src="pdbseqfetcher.png" align="left"
-                       alt="PDB sequence fetcher (introduced in Jalview 2.x.x)">
+                       alt="PDB sequence fetcher (introduced in Jalview 2.9)">
        </p>
 
-       <strong>Searching the PDB Database</strong>
-       <br> Once the interface is opened, typing in the search text box
-       will execute a live query to the PDB database and display the results
-       on-the-fly as seen in the screen-shot above. Use the drop-down menu to
-       select a specific field to search by in the PDB database, the default
-       option is
-       <strong>'ALL'</strong>. Furthermore, the PDB search interface also
-       provides the following functionalities:
+       <p><strong>Searching the PDB Database</strong></p>
+       <p>When the interface is opened, a live query to the PDB database is 
+       executed every time a character is typed into the search text box, and 
+       a result is displayed on-the-fly as seen in the screenshot above.</p>
+       
+       <p>Use the drop-down menu to select a specific field to search by in the PDB database, the default
+       option is 'ALL'.</p>
+       
+       <p> Furthermore, the PDB search interface also provides the following functionalities:</p>
        <ul>
                <li>Retrieving a unique chain for a PDB entry: <br>To
                        retrieve a specific chain for a PDB entry, append the PDB ID with a
        </ul>
        <p>
                <strong>Customising displayed meta-data</strong> <br>To change
-               the displayed meta-data in the search result, click the <strong>'Configure
-                       Displayed Columns'</strong> tab, then tick off the options wanted.
+               the displayed meta-data in the search result, click the 'Configure
+                       Displayed Columns' tab, then tick off the options wanted.
        </p>
        <p>
                <strong>Importing Sequence</strong><br> After querying the PDB
                database, to import the found data into Jalview, select the entries
-               you wish to import then click the ok button at the bottom of the
+               you wish to import then click the 'Ok' button at the bottom of the
                interface.
        </p>
        <p>
                <em>The PDB Sequence Fetcher interface was introduced in Jalview
-                       2.x.x.</em>
+                       2.9</em>
        </p>
 </body>
 </html>
\ No newline at end of file
index 68c5520..2516f3f 100755 (executable)
@@ -49,7 +49,7 @@ WSDBFetch service provided by the European Bioinformatics Institute, or, since J
   one or more accession ids (as a semi-colon separated list), or press the 
   &quot;Example&quot; button to paste the example accession for the currently selected database into the retrieval box.
    Finally, press &quot;OK&quot; to initiate the retrieval.</p>
-   <p>Since Jalview 2.x.x if  PDB is selected as the sequence database, a specialised interface - <a href="pdbsequencefetcher.html">PDB Sequence Fetcher</a>  is used for discovering and retrieving the sequenec data. </p>
+   <p>Since Jalview 2.9 if  PDB is selected as the sequence database, a specialised interface - <a href="pdbsequencefetcher.html">PDB Sequence Fetcher</a>  is used for discovering and retrieving the sequenec data. </p>
        <p><strong>Specifying chains for PDB IDs</strong>
   If you are retrieving sequences from the PDB, you can retrieve
   specific chains by appending a colon and the chain id to the PDB
index 7dd69c1..1bf9f32 100644 (file)
 
 
        <strong>Associating PDB files with Sequences</strong><br>
-       Discovery/Association of PDB entries to a sequence happens
+       Discovery/Association of PDB entries to a sequence now happens
        automatically during the initialisation of the Structure Chooser
-       Interface. Jalview uses the sequence's ID to query the PDB Rest API,
+       Interface. Jalview uses the sequence's ID to query the PDB Rest API
        provided by the EBI to discover PDB Ids associated with the sequence.
 
 <br><br>
        <strong>Configuring displayed  meta-data for  Structures</strong><br>
-       To configure the visible meta-data displayed for the discovered structures, click the <strong>'Configure Displayed Columns'</strong> tab, then tick the options which you intend to make visible.
+       To configure the visible meta-data displayed for the discovered structures, click the 'Configure Displayed Columns' tab, then tick the options which you intend to make visible.
 
 <br><br>
        <strong>Auto-selection of best Structures</strong>
        <br> Jalview can automatically filter and select the best structures using various metric categories avaialble from the meta-data
        of the structures. To perform this simply select any of the following options from the drop-down menu in the Structure
        Chooser interface: Best Uniprot coverage, Higest Resolution, 
-
-       Best Quality, Highest Protein Chain etc. When the <strong>'Invert'</strong> option is selected, Jalview returns an inverse result for the current selected option in the drop-down menu.<p>
+       Best Quality, Highest Protein Chain etc. When the 'Invert' option is selected, Jalview returns an inverse result for the current selected option in the drop-down menu.<p>
+       
                <img src="schooser_main.png" style="width: 464px; height: 369px;">
                <!-- <p><img src="schooser_config.png" style="width: 463px; height: 369px; ">
        <p><img src="schooser_drop-down.png" style="width: 464px; height: 368px; ">
        </ul>
 
        <p>
-               <em>The Structure Chooser interface was introduced in Jalview 2.x.x.
+               <em>The Structure Chooser interface was introduced in Jalview 2.9.
                </em>
        </p>
 </body>
index ae56945..b457adf 100755 (executable)
@@ -77,6 +77,11 @@ THISISASEQUENCE<br></td>
 <em>...</em><br>//</td>
 <td width="23%">.phy</td>
 </tr>
+<tr>
+<td width="17%">JSON</td>
+<td width="60%">Data starts with '{' <br>Data  ends with '}' <br><br>See <a href="../features/bioJsonFormat.html">BioJson</a> for more info about Jalview JSON format <br></td>
+<td width="23%">.json</td>
+</tr>
 </table>
 <p>The file extensions are used to associate jalview alignment icons
 with alignment files: <img src="file.png" width=12 height=12 >
index a2cb603..8b50d9e 100755 (executable)
@@ -72,6 +72,7 @@
                                                <li><strong>AMSA</strong></li>
                                                <li><strong>STH</strong></li>
                                                <li><strong>Phylip</strong></li>
+                                               <li><strong>JSON</strong></li>
                                        </ul></li>
                                <li><strong>Print (Control P)<br> </strong><em>Jalview
                                                will print the alignment using the current fonts and colours of
diff --git a/lib/Jmol-12.2.4.jar b/lib/Jmol-12.2.4.jar
deleted file mode 100644 (file)
index f1254cd..0000000
Binary files a/lib/Jmol-12.2.4.jar and /dev/null differ
diff --git a/lib/Jmol-14.2.14_2015.06.11.jar b/lib/Jmol-14.2.14_2015.06.11.jar
new file mode 100644 (file)
index 0000000..f77f5f0
Binary files /dev/null and b/lib/Jmol-14.2.14_2015.06.11.jar differ
similarity index 65%
rename from lib/VARNAv3-91.jar
rename to lib/VARNAv3-93.jar
index edfbca5..b73b58d 100644 (file)
Binary files a/lib/VARNAv3-91.jar and b/lib/VARNAv3-93.jar differ
index b505d62..ac1a2e3 100644 (file)
@@ -59,8 +59,8 @@ file.reference.jalview-src=src
 file.reference.jaxrpc.jar=lib/jaxrpc.jar
 file.reference.JGoogleAnalytics_0.3.jar=lib/JGoogleAnalytics_0.3.jar
 file.reference.jhall.jar=lib/jhall.jar
-file.reference.Jmol-12.2.4.jar=lib/Jmol-12.2.4.jar
-file.reference.JmolApplet-12.2.4.jar=appletlib/JmolApplet-12.2.4.jar
+file.reference.Jmol-14.2.14_2015.06.11.jar=lib/Jmol-14.2.14_2015.06.11.jar
+file.reference.JmolApplet-14.2.14_2015.06.11.jar=appletlib/JmolApplet-14.2.14_2015.06.11.jar
 file.reference.log4j-1.2.8.jar=lib/log4j-1.2.8.jar
 file.reference.mail.jar=lib/mail.jar
 file.reference.min-jaba-client.jar=lib/min-jaba-client-2.0.jar
@@ -92,7 +92,7 @@ javac.classpath=\
     ${file.reference.jaxrpc.jar}:\
     ${file.reference.JGoogleAnalytics_0.3.jar}:\
     ${file.reference.jhall.jar}:\
-    ${file.reference.Jmol-12.2.4.jar}:\
+    ${file.reference.Jmol-14.2.14_2015.06.11.jar}:\
     ${file.reference.miglayout-4.0-swing.jar}:\
     ${file.reference.log4j-1.2.8.jar}:\
     ${file.reference.mail.jar}:\
@@ -101,7 +101,7 @@ javac.classpath=\
     ${file.reference.xml-apis.jar}:\
     ${file.reference.xercesImpl.jar}:\
     ${file.reference.wsdl4j.jar}:\
-    ${file.reference.JmolApplet-12.2.4.jar} \
+    ${file.reference.JmolApplet-14.2.14_2015.06.11.jar} \
     ${file.reference.varna-3.9-dev.jar}
 # Space-separated list of extra javac options
 javac.compilerargs=
index 1f5d4cb..822d574 100644 (file)
@@ -662,7 +662,7 @@ label.cancel_job_close_dialog = Close this dialog and cancel job
 label.input_output = Input/Output
 label.cut_paste = Cut'n'Paste
 label.adjusting_parameters_for_calculation = Adjusting parameters for existing Calculation
-label.2d_rna_structure_line = 2D RNA {0}
+label.2d_rna_structure_line = 2D RNA {0} (alignment)
 label.2d_rna_sequence_name = 2D RNA - {0}
 label.edit_name_and_description_current_group = Edit name and description of current group.
 label.view_structure_for = View structure for {0}
@@ -677,7 +677,8 @@ label.text_colour = Text Colour
 label.structure = Structure
 label.view_structure = View Structure
 label.view_protein_structure = View Protein Structure
-label.view_rna_structure = View Nucleotide Structure
+label.show_pdbstruct_dialog = 3D Structure Data ...
+label.view_rna_structure = VARNA 2D Structure
 label.clustalx_colours = Clustalx colours
 label.above_identity_percentage = Above % Identity
 label.create_sequence_details_report_annotation_for = Annotation for {0}
@@ -771,7 +772,7 @@ label.transformed_points_for_params = Transformed points for {0}
 label.graduated_color_for_params = Graduated Feature Colour for {0}
 label.select_backgroud_colour = Select Background Colour
 label.invalid_font = Invalid Font
-label.separate_multiple_accession_ids = Enter one or more PDB Ids
+label.separate_multiple_accession_ids = Enter one or more accession IDs
 label.separate_multiple_query_values = Enter one or more {0}s separated by a semi-colon ";"
 label.search_all = Enter one or more search values separated by a semi-colon ";" (Note: This Searches the entire PDB database)
 label.replace_commas_semicolons = Replace commas with semi-colons
@@ -1245,3 +1246,7 @@ info.enter_search_text_to_enable = Enter Search Text to Enable
 info.search_in_annotation_label = Search in {0} Label
 info.search_in_annotation_description = Search in {0} Description
 info.change_threshold_mode_to_enable = Change Threshold Mode to Enable
+label.null_or_unidentifiable_data = Null or unidentifiable data content pasted!
+label.unidentifiable_data = Unidentifiable Data
+label.null_or_invalid_alignment = Null or invalid alignment data!
+label.unable_to_create_alignment = Unable to create alignment
index eab6500..f60bb6a 100755 (executable)
@@ -1,26 +1,26 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
--->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vamsas="www.vamsas.ac.uk/jalview/version2" xmlns:jalview="www.jalview.org/colours" xmlns:jv="www.jalview.org" xmlns:jvws="www.jalview.org/xml/wsparamset" targetNamespace="www.jalview.org" elementFormDefault="qualified" attributeFormDefault="unqualified">
-               <xs:import namespace="www.vamsas.ac.uk/jalview/version2" schemaLocation="vamsas.xsd"/>
-       <xs:import namespace="www.jalview.org/colours" schemaLocation="JalviewUserColours.xsd"/>
-       <xs:import namespace="www.jalview.org/xml/wsparamset" schemaLocation="JalviewWsParamSet.xsd"/>
+<!-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) 
+       * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of 
+       Jalview. * * Jalview 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. * * Jalview 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 Jalview. If not, see <http://www.gnu.org/licenses/>. 
+       * The Jalview Authors are detailed in the 'AUTHORS' file. -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+       xmlns:vamsas="www.vamsas.ac.uk/jalview/version2" xmlns:jalview="www.jalview.org/colours"
+       xmlns:jv="www.jalview.org" xmlns:jvws="www.jalview.org/xml/wsparamset"
+       targetNamespace="www.jalview.org" elementFormDefault="qualified"
+       attributeFormDefault="unqualified">
+       <xs:import namespace="www.vamsas.ac.uk/jalview/version2"
+               schemaLocation="vamsas.xsd" />
+       <xs:import namespace="www.jalview.org/colours"
+               schemaLocation="JalviewUserColours.xsd" />
+       <xs:import namespace="www.jalview.org/xml/wsparamset"
+               schemaLocation="JalviewWsParamSet.xsd" />
        <xs:complexType name="JalviewModel">
                <xs:sequence>
                        <xs:element name="creationDate" type="xs:dateTime" />
                                <xs:element name="JSeq" maxOccurs="unbounded" minOccurs="0">
                                        <xs:complexType>
                                                <xs:sequence>
-                                                       <xs:element name="features"
-                                                               type="jv:feature" minOccurs="0" maxOccurs="unbounded" />
-                                                       <xs:element name="pdbids" minOccurs="0"
-                                                               maxOccurs="unbounded">
+                                                       <xs:element name="features" type="jv:feature"
+                                                               minOccurs="0" maxOccurs="unbounded" />
+                                                       <xs:element name="pdbids" minOccurs="0" maxOccurs="unbounded">
                                                                <xs:complexType>
                                                                        <xs:complexContent>
-                                                                               <xs:extension
-                                                                                       base="jv:pdbentry">
+                                                                               <xs:extension base="jv:pdbentry">
                                                                                        <xs:sequence>
-                                                                                               <xs:element
-                                                                                                       name="structureState" minOccurs="0"
+                                                                                               <xs:element name="structureState" minOccurs="0"
                                                                                                        maxOccurs="unbounded">
                                                                                                        <xs:complexType>
                                                                                                                <xs:simpleContent>
-                                                                                                                       <xs:extension
-                                                                                                                               base="xs:string">
-                                                                                                                               <xs:attributeGroup
-                                                                                                                                       ref="jv:swingwindow" />
-                                                                                                                               <xs:attribute
-                                                                                                                                       name="visible" type="xs:boolean" />
-                                                                                                                               <xs:attribute
-                                                                                                                                       name="viewId" type="xs:string" use="optional">
+                                                                                                                       <xs:extension base="xs:string">
+                                                                                                                               <xs:attributeGroup ref="jv:swingwindow" />
+                                                                                                                               <xs:attribute name="visible" type="xs:boolean" />
+                                                                                                                               <xs:attribute name="viewId" type="xs:string"
+                                                                                                                                       use="optional">
                                                                                                                                        <xs:annotation>
                                                                                                                                                <xs:documentation>
                                                                                                                                                        additional
                                                                                                                                                </xs:documentation>
                                                                                                                                        </xs:annotation>
                                                                                                                                </xs:attribute>
-                                                                                                                               <xs:attribute
-                                                                                                                                       name="alignwithAlignPanel" type="xs:boolean"
-                                                                                                                                       use="optional" default="true">
+                                                                                                                               <xs:attribute name="alignwithAlignPanel"
+                                                                                                                                       type="xs:boolean" use="optional" default="true">
                                                                                                                                        <xs:annotation>
                                                                                                                                                <xs:documentation>
                                                                                                                                                        Flag
                                                                                                                                                </xs:documentation>
                                                                                                                                        </xs:annotation>
                                                                                                                                </xs:attribute>
-                                                                                                                               <xs:attribute
-                                                                                                                                       name="colourwithAlignPanel" type="xs:boolean"
-                                                                                                                                       use="optional" default="false">
+                                                                                                                               <xs:attribute name="colourwithAlignPanel"
+                                                                                                                                       type="xs:boolean" use="optional" default="false">
                                                                                                                                        <xs:annotation>
                                                                                                                                                <xs:documentation>
                                                                                                                                                        Flag
                                                                                                                                                </xs:documentation>
                                                                                                                                        </xs:annotation>
                                                                                                                                </xs:attribute>
-                                                                                                                               <xs:attribute
-                                                                                                                                       name="colourByJmol" type="xs:boolean" use="optional"
-                                                                                                                                       default="true">
+                                                                                                                               <xs:attribute name="colourByJmol" type="xs:boolean"
+                                                                                                                                       use="optional" default="true">
                                                                                                                                        <xs:annotation>
                                                                                                                                                <xs:documentation>
                                                                                                                                                        Flag
                                                                                                                                        use="optional">
                                                                                                                                        <xs:annotation>
                                                                                                                                                <xs:documentation>
-                                                                                                                                                       An identifier for the viewer type, currently either
-                                                                                                                                                       JMOL or CHIMERA
+                                                                                                                                                       An
+                                                                                                                                                       identifier
+                                                                                                                                                       for
+                                                                                                                                                       the
+                                                                                                                                                       viewer
+                                                                                                                                                       type,
+                                                                                                                                                       currently
+                                                                                                                                                       either
+                                                                                                                                                       JMOL
+                                                                                                                                                       or
+                                                                                                                                                       CHIMERA
                                                                                                                                                </xs:documentation>
                                                                                                                                        </xs:annotation>
                                                                                                                                </xs:attribute>
                                                                        </xs:complexContent>
                                                                </xs:complexType>
                                                        </xs:element>
-                                                       <xs:element name="hiddenSequences"
-                                                               type="xs:int" minOccurs="0" maxOccurs="unbounded" />
+                                                       <xs:element name="hiddenSequences" type="xs:int"
+                                                               minOccurs="0" maxOccurs="unbounded" />
+                                                       <xs:element name="rnaViewer" minOccurs="0" maxOccurs="unbounded">
+                                                               <xs:annotation>
+                                                                       <xs:documentation>Reference to a viewer showing RNA structure
+                                                                               for this sequence. Schema supports one viewer showing multiple
+                                                                               annotations for multiple sequences, though currently only one
+                                                                               annotation for one sequence (gapped or trimmed) is used
+                                                                       </xs:documentation>
+                                                               </xs:annotation>
+                                                               <xs:complexType>
+                                                                       <xs:sequence>
+                                                                               <xs:element name="secondaryStructure" minOccurs="1"
+                                                                                       maxOccurs="unbounded">
+                                                                                       <xs:complexType>
+                                                                                               <xs:attribute name="title" type="xs:string" />
+                                                                                               <xs:attribute name="annotationId" type="xs:string"
+                                                                                                       use="required">
+                                                                                                       <xs:annotation>
+                                                                                                               <xs:documentation>id attribute of Annotation in
+                                                                                                                       vamsasModel for
+                                                                                                                       the secondary structure annotation shown
+                                                                                                                       in the viewer
+                                                                                                               </xs:documentation>
+                                                                                                       </xs:annotation>
+                                                                                               </xs:attribute>
+                                                                                               <xs:attribute name="gapped" type="xs:boolean">
+                                                                                                       <xs:annotation>
+                                                                                                               <xs:documentation>if true the RNA structure is shown with gaps, if false without
+                                                                                                               </xs:documentation>
+                                                                                                       </xs:annotation>
+                                                                                               </xs:attribute>
+                                                                                               <xs:attribute name="viewerState" type="xs:string">
+                                                                                                       <xs:annotation>
+                                                                                                               <xs:documentation>name of the project jar entry that holds
+                                                                                                                       the VARNA viewer state for the structure
+                                                                                                               </xs:documentation>
+                                                                                                       </xs:annotation>
+                                                                                               </xs:attribute>
+                                                                                       </xs:complexType>
+                                                                               </xs:element>
+                                                                       </xs:sequence>
+                                                                       <xs:attributeGroup ref="jv:swingwindow" />
+                                                                       <xs:attribute name="title" type="xs:string" />
+                                                                       <xs:attribute name="viewId" type="xs:string">
+                                                                               <xs:annotation>
+                                                                                       <xs:documentation>An id unique to the RNA viewer panel
+                                                                                       </xs:documentation>
+                                                                               </xs:annotation>
+                                                                       </xs:attribute>
+                                                                       <xs:attribute name="dividerLocation" type="xs:int">
+                                                                               <xs:annotation>
+                                                                                       <xs:documentation>horizontal position of split pane divider
+                                                                                       </xs:documentation>
+                                                                               </xs:annotation>
+                                                                       </xs:attribute>
+                                                                       <xs:attribute name="selectedRna" type="xs:int">
+                                                                               <xs:annotation>
+                                                                                       <xs:documentation>Index of the selected structure in the
+                                                                                               viewer panel
+                                                                                       </xs:documentation>
+                                                                               </xs:annotation>
+                                                                       </xs:attribute>
+                                                               </xs:complexType>
+                                                       </xs:element>
                                                </xs:sequence>
-                                               <xs:attribute name="colour" type="xs:int"
-                                                       use="optional" />
-                                               <xs:attribute name="start" type="xs:int"
-                                                       use="required" />
-                                               <xs:attribute name="end" type="xs:int"
-                                                       use="required" />
-                                               <xs:attribute name="id" type="xs:string"
-                                                       use="required" />
+                                               <xs:attribute name="colour" type="xs:int" use="optional" />
+                                               <xs:attribute name="start" type="xs:int" use="required" />
+                                               <xs:attribute name="end" type="xs:int" use="required" />
+                                               <xs:attribute name="id" type="xs:string" use="required" />
                                                <xs:attribute name="hidden" type="xs:boolean" />
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element name="JGroup" minOccurs="0"
-                                       maxOccurs="unbounded">
+                               <xs:element name="JGroup" minOccurs="0" maxOccurs="unbounded">
                                        <xs:complexType>
-            <xs:sequence>
+                                               <xs:sequence>
                                                        <xs:element name="seq" type="xs:string" maxOccurs="unbounded" />
                                                        <xs:element name="annotationColours" type="jv:AnnotationColourScheme"
                                                                minOccurs="0" maxOccurs="1" />
                                                <xs:attribute name="end" type="xs:int" />
                                                <xs:attribute name="name" type="xs:string" />
                                                <xs:attribute name="colour" type="xs:string" />
-                                               <xs:attribute name="consThreshold"
-                                                       type="xs:int" />
+                                               <xs:attribute name="consThreshold" type="xs:int" />
                                                <xs:attribute name="pidThreshold" type="xs:int" />
-                                               <xs:attribute name="outlineColour"
-                                                       type="xs:int" />
-                                               <xs:attribute name="displayBoxes"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="displayText"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="colourText"
-                                                       type="xs:boolean" />
+                                               <xs:attribute name="outlineColour" type="xs:int" />
+                                               <xs:attribute name="displayBoxes" type="xs:boolean" />
+                                               <xs:attribute name="displayText" type="xs:boolean" />
+                                               <xs:attribute name="colourText" type="xs:boolean" />
                                                <xs:attribute name="textCol1" type="xs:int" />
                                                <xs:attribute name="textCol2" type="xs:int" />
-                                               <xs:attribute name="textColThreshold"
-                                                       type="xs:int" />
-                                               <xs:attribute name="showUnconserved"
-                                                       type="xs:boolean" use="optional" />
-                                               <xs:attribute name="ignoreGapsinConsensus"
-                                                       type="xs:boolean" use="optional" default="true" />
-                                               <xs:attribute name="showConsensusHistogram"
-                                                       type="xs:boolean" use="optional" default="true" />
-                                               <xs:attribute name="showSequenceLogo"
-                                                       type="xs:boolean" use="optional" default="false" />
-                                               <xs:attribute name="normaliseSequenceLogo"
-              type="xs:boolean" use="optional" default="false" />
-            <xs:attribute name="id" type="xs:string"
-                                                       use="optional">
+                                               <xs:attribute name="textColThreshold" type="xs:int" />
+                                               <xs:attribute name="showUnconserved" type="xs:boolean"
+                                                       use="optional" />
+                                               <xs:attribute name="ignoreGapsinConsensus" type="xs:boolean"
+                                                       use="optional" default="true" />
+                                               <xs:attribute name="showConsensusHistogram" type="xs:boolean"
+                                                       use="optional" default="true" />
+                                               <xs:attribute name="showSequenceLogo" type="xs:boolean"
+                                                       use="optional" default="false" />
+                                               <xs:attribute name="normaliseSequenceLogo" type="xs:boolean"
+                                                       use="optional" default="false" />
+                                               <xs:attribute name="id" type="xs:string" use="optional">
                                                        <xs:annotation>
                                                                <xs:documentation>
                                                                        Optional sequence group ID (only
-                                                                       needs to be unique for this
+                                                                       needs to be
+                                                                       unique for this
                                                                        alignment)
                                                                </xs:documentation>
                                                        </xs:annotation>
                                                </xs:attribute>
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element name="Viewport" maxOccurs="unbounded" minOccurs="0">
+                               <xs:element name="Viewport" maxOccurs="unbounded"
+                                       minOccurs="0">
                                        <xs:complexType>
                                                <xs:sequence>
-                                                       <xs:element name="AnnotationColours" type="jv:AnnotationColourScheme" 
+                                                       <xs:element name="AnnotationColours" type="jv:AnnotationColourScheme"
                                                                minOccurs="0" maxOccurs="1">
                                                        </xs:element>
-                                                       <xs:element name="hiddenColumns"
-                                                               minOccurs="0" maxOccurs="unbounded">
+                                                       <xs:element name="hiddenColumns" minOccurs="0"
+                                                               maxOccurs="unbounded">
                                                                <xs:complexType>
-                                                                       <xs:attribute name="start"
-                                                                               type="xs:int" />
-                                                                       <xs:attribute name="end"
-                                                                               type="xs:int" />
+                                                                       <xs:attribute name="start" type="xs:int" />
+                                                                       <xs:attribute name="end" type="xs:int" />
                                                                </xs:complexType>
                                                        </xs:element>
-                                                       <xs:element name="calcIdParam" 
-                                                        
-                                                       minOccurs="0" maxOccurs="unbounded">
-                                                       <xs:complexType>
-                                                       <xs:complexContent>
-                                                       <xs:extension base="jvws:WebServiceParameterSet">
-                                                       <xs:attribute name="calcId" type="xs:string" use="required">
-                                                       <xs:annotation>
-                                                       <xs:documentation>handle for the calculation which uses this parameter set</xs:documentation></xs:annotation>
-                                                       </xs:attribute>
-                                                       <xs:attribute name="needsUpdate" type="xs:boolean" use="optional" default="false">
-                                                       <xs:annotation><xs:documentation>should the calculation be performed immediately after loading in order to refresh results</xs:documentation></xs:annotation>
-                                                       </xs:attribute>
-                                                       <xs:attribute name="autoUpdate" type="xs:boolean" use="required">
-                                                       <xs:annotation><xs:documentation>should the calculation be automatically performed on edits</xs:documentation></xs:annotation>
-                                                       </xs:attribute>
-                                                       </xs:extension>
-                                                       </xs:complexContent>
-                                                       </xs:complexType>
+                                                       <xs:element name="calcIdParam" minOccurs="0"
+                                                               maxOccurs="unbounded">
+                                                               <xs:complexType>
+                                                                       <xs:complexContent>
+                                                                               <xs:extension base="jvws:WebServiceParameterSet">
+                                                                                       <xs:attribute name="calcId" type="xs:string"
+                                                                                               use="required">
+                                                                                               <xs:annotation>
+                                                                                                       <xs:documentation>handle for the calculation which uses
+                                                                                                               this parameter set
+                                                                                                       </xs:documentation>
+                                                                                               </xs:annotation>
+                                                                                       </xs:attribute>
+                                                                                       <xs:attribute name="needsUpdate" type="xs:boolean"
+                                                                                               use="optional" default="false">
+                                                                                               <xs:annotation>
+                                                                                                       <xs:documentation>should the calculation be performed
+                                                                                                               immediately after loading in order to refresh results
+                                                                                                       </xs:documentation>
+                                                                                               </xs:annotation>
+                                                                                       </xs:attribute>
+                                                                                       <xs:attribute name="autoUpdate" type="xs:boolean"
+                                                                                               use="required">
+                                                                                               <xs:annotation>
+                                                                                                       <xs:documentation>should the calculation be automatically
+                                                                                                               performed on edits
+                                                                                                       </xs:documentation>
+                                                                                               </xs:annotation>
+                                                                                       </xs:attribute>
+                                                                               </xs:extension>
+                                                                       </xs:complexContent>
+                                                               </xs:complexType>
                                                        </xs:element>
                                                </xs:sequence>
                                                <xs:attributeGroup ref="jv:swingwindow" />
-                                               <xs:attribute name="conservationSelected"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="pidSelected"
-                                                       type="xs:boolean" />
+                                               <xs:attribute name="conservationSelected" type="xs:boolean" />
+                                               <xs:attribute name="pidSelected" type="xs:boolean" />
                                                <xs:attribute name="bgColour" type="xs:string" />
-                                               <xs:attribute name="consThreshold"
-                                                       type="xs:int" />
+                                               <xs:attribute name="consThreshold" type="xs:int" />
                                                <xs:attribute name="pidThreshold" type="xs:int" />
                                                <xs:attribute name="title" type="xs:string" />
-                                               <xs:attribute name="showFullId"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="rightAlignIds"
-                                                       type="xs:boolean" />
+                                               <xs:attribute name="showFullId" type="xs:boolean" />
+                                               <xs:attribute name="rightAlignIds" type="xs:boolean" />
                                                <xs:attribute name="showText" type="xs:boolean" />
-                                               <xs:attribute name="showColourText"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="showUnconserved"
-                                                       type="xs:boolean" use="optional" default="false" />
-                                               <xs:attribute name="showBoxes"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="wrapAlignment"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="renderGaps"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="showSequenceFeatures"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="showNPfeatureTooltip"
-                                                       type="xs:boolean" use="optional" />
-                                               <xs:attribute name="showDbRefTooltip"
-                                                       type="xs:boolean" use="optional" />
-                                               <xs:attribute name="followHighlight"
-                                                       type="xs:boolean" use="optional" default="true" />
-                                               <xs:attribute name="followSelection"
-                                                       type="xs:boolean" use="optional" default="true" />
-                                               <xs:attribute name="showAnnotation"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="centreColumnLabels"
-                                                       type="xs:boolean" use="optional" default="false" />
-                                               <xs:attribute name="showGroupConservation"
-                                                       type="xs:boolean" use="optional" default="false" />
-                                               <xs:attribute name="showGroupConsensus"
-                                                       type="xs:boolean" use="optional" default="false" />
-                                               <xs:attribute name="showConsensusHistogram"
-                                                       type="xs:boolean" use="optional" default="true" />
-                                               <xs:attribute name="showSequenceLogo"
-                                                       type="xs:boolean" use="optional" default="false" />
-                                   <xs:attribute name="normaliseSequenceLogo"
-                                     type="xs:boolean" use="optional" default="false" />
-                                               <xs:attribute name="ignoreGapsinConsensus"
-                                                       type="xs:boolean" use="optional" default="true" />
-                                                       <xs:attribute name="startRes" type="xs:int" />
+                                               <xs:attribute name="showColourText" type="xs:boolean" />
+                                               <xs:attribute name="showUnconserved" type="xs:boolean"
+                                                       use="optional" default="false" />
+                                               <xs:attribute name="showBoxes" type="xs:boolean" />
+                                               <xs:attribute name="wrapAlignment" type="xs:boolean" />
+                                               <xs:attribute name="renderGaps" type="xs:boolean" />
+                                               <xs:attribute name="showSequenceFeatures" type="xs:boolean" />
+                                               <xs:attribute name="showNPfeatureTooltip" type="xs:boolean"
+                                                       use="optional" />
+                                               <xs:attribute name="showDbRefTooltip" type="xs:boolean"
+                                                       use="optional" />
+                                               <xs:attribute name="followHighlight" type="xs:boolean"
+                                                       use="optional" default="true" />
+                                               <xs:attribute name="followSelection" type="xs:boolean"
+                                                       use="optional" default="true" />
+                                               <xs:attribute name="showAnnotation" type="xs:boolean" />
+                                               <xs:attribute name="centreColumnLabels" type="xs:boolean"
+                                                       use="optional" default="false" />
+                                               <xs:attribute name="showGroupConservation" type="xs:boolean"
+                                                       use="optional" default="false" />
+                                               <xs:attribute name="showGroupConsensus" type="xs:boolean"
+                                                       use="optional" default="false" />
+                                               <xs:attribute name="showConsensusHistogram" type="xs:boolean"
+                                                       use="optional" default="true" />
+                                               <xs:attribute name="showSequenceLogo" type="xs:boolean"
+                                                       use="optional" default="false" />
+                                               <xs:attribute name="normaliseSequenceLogo" type="xs:boolean"
+                                                       use="optional" default="false" />
+                                               <xs:attribute name="ignoreGapsinConsensus" type="xs:boolean"
+                                                       use="optional" default="true" />
+                                               <xs:attribute name="startRes" type="xs:int" />
                                                <xs:attribute name="startSeq" type="xs:int" />
                                                <xs:attribute name="fontName" type="xs:string" />
                                                <xs:attribute name="fontSize" type="xs:int" />
                                                <xs:attribute name="fontStyle" type="xs:int" />
                                                <xs:attribute name="viewName" type="xs:string" />
-                                               <xs:attribute name="sequenceSetId"
-                                                       type="xs:string" />
-                                               <xs:attribute name="gatheredViews"
-                                                       type="xs:boolean" />
+                                               <xs:attribute name="sequenceSetId" type="xs:string" />
+                                               <xs:attribute name="gatheredViews" type="xs:boolean" />
                                                <xs:attribute name="textCol1" type="xs:int" />
                                                <xs:attribute name="textCol2" type="xs:int" />
-                                               <xs:attribute name="textColThreshold"
-                                                       type="xs:int" />
-                                               <xs:attribute name="id" type="xs:ID"
-                                                       use="optional">
+                                               <xs:attribute name="textColThreshold" type="xs:int" />
+                                               <xs:attribute name="id" type="xs:ID" use="optional">
                                                        <xs:annotation>
                                                                <xs:documentation>
                                                                        unique id used by jalview to
-                                                                       synchronize between stored and
+                                                                       synchronize
+                                                                       between stored and
                                                                        instantiated views
                                                                </xs:documentation>
                                                        </xs:annotation>
                                                        use="optional">
                                                        <xs:annotation>
                                                                <xs:documentation>
-                                                                       The viewport id of this viewport's (cdna/protein) coding complement, if any
+                                                                       The viewport id of this viewport's
+                                                                       (cdna/protein) coding complement, if any
                                                                </xs:documentation>
                                                        </xs:annotation>
                                                </xs:attribute>
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element name="UserColours" minOccurs="0"
-                                       maxOccurs="unbounded">
+                               <xs:element name="UserColours" minOccurs="0" maxOccurs="unbounded">
                                        <xs:complexType>
                                                <xs:sequence>
-                                                       <xs:element name="UserColourScheme"
-                                                               type="jalview:JalviewUserColours" />
+                                                       <xs:element name="UserColourScheme" type="jalview:JalviewUserColours" />
                                                </xs:sequence>
                                                <xs:attribute name="id" type="xs:string" />
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element name="tree" minOccurs="0"
-                                       maxOccurs="unbounded">
+                               <xs:element name="tree" minOccurs="0" maxOccurs="unbounded">
                                        <xs:complexType>
                                                <xs:sequence minOccurs="0">
                                                        <xs:element name="title" type="xs:string" />
                                                <xs:attribute name="fontSize" type="xs:int" />
                                                <xs:attribute name="fontStyle" type="xs:int" />
                                                <xs:attribute name="threshold" type="xs:float" />
-                                               <xs:attribute name="showBootstrap"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="showDistances"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="markUnlinked"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="fitToWindow"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="currentTree"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="id" type="xs:ID"
-                                                       use="optional">
+                                               <xs:attribute name="showBootstrap" type="xs:boolean" />
+                                               <xs:attribute name="showDistances" type="xs:boolean" />
+                                               <xs:attribute name="markUnlinked" type="xs:boolean" />
+                                               <xs:attribute name="fitToWindow" type="xs:boolean" />
+                                               <xs:attribute name="currentTree" type="xs:boolean" />
+                                               <xs:attribute name="id" type="xs:ID" use="optional">
                                                        <xs:annotation>
                                                                <xs:documentation>
                                                                        Tree ID added for binding tree
-                                                                       visualization settings to vamsas
+                                                                       visualization
+                                                                       settings to vamsas
                                                                        document trees in jalview 2.4.1
                                                                </xs:documentation>
                                                        </xs:annotation>
                                <xs:element name="FeatureSettings" minOccurs="0">
                                        <xs:complexType>
                                                <xs:sequence>
-                                                       <xs:element name="setting" minOccurs="0"
-                                                               maxOccurs="unbounded">
+                                                       <xs:element name="setting" minOccurs="0" maxOccurs="unbounded">
                                                                <xs:complexType>
-                                                                       <xs:attribute name="type"
-                                                                               type="xs:string" use="required" />
-                                                                       <xs:attribute name="colour"
-                                                                               type="xs:int" use="required" />
-                                                                       <xs:attribute name="display"
-                                                                               type="xs:boolean" use="required" />
-                                                                       <xs:attribute name="order"
-                                                                               type="xs:float" use="optional" />
-                                                                       <xs:attribute name="mincolour"
-                                                                               type="xs:int" use="optional">
+                                                                       <xs:attribute name="type" type="xs:string" use="required" />
+                                                                       <xs:attribute name="colour" type="xs:int" use="required" />
+                                                                       <xs:attribute name="display" type="xs:boolean"
+                                                                               use="required" />
+                                                                       <xs:attribute name="order" type="xs:float" use="optional" />
+                                                                       <xs:attribute name="mincolour" type="xs:int" use="optional">
                                                                                <xs:annotation>
                                                                                        <xs:documentation>
                                                                                                Optional minimum colour
-                                                                                               for graduated feature
+                                                                                               for graduated
+                                                                                               feature
                                                                                                colour
                                                                                        </xs:documentation>
                                                                                </xs:annotation>
                                                                        </xs:attribute>
-                                                                       <xs:attribute name="threshold"
-                                                                               type="xs:float" use="optional">
+                                                                       <xs:attribute name="threshold" type="xs:float"
+                                                                               use="optional">
                                                                                <xs:annotation>
                                                                                        <xs:documentation>
                                                                                                threshold value for
                                                                                        </xs:documentation>
                                                                                </xs:annotation>
                                                                        </xs:attribute>
-                                                                       <xs:attribute name="threshstate"
-                                                                               type="xs:int" use="optional">
+                                                                       <xs:attribute name="threshstate" type="xs:int"
+                                                                               use="optional">
                                                                                <xs:annotation>
                                                                                        <xs:documentation>
                                                                                                threshold type for
                                                                                        </xs:documentation>
                                                                                </xs:annotation>
                                                                        </xs:attribute>
-                                                                       <xs:attribute name="max"
-                                                                               type="xs:float" use="optional" />
-                                                                       <xs:attribute name="min"
-                                                                               type="xs:float" use="optional" />
-                                                                       <xs:attribute name="colourByLabel"
-                                                                               type="xs:boolean" use="optional" />
-                                                                       <xs:attribute name="autoScale"
-                                                                               type="xs:boolean" use="optional" />
+                                                                       <xs:attribute name="max" type="xs:float" use="optional" />
+                                                                       <xs:attribute name="min" type="xs:float" use="optional" />
+                                                                       <xs:attribute name="colourByLabel" type="xs:boolean"
+                                                                               use="optional" />
+                                                                       <xs:attribute name="autoScale" type="xs:boolean"
+                                                                               use="optional" />
                                                                </xs:complexType>
                                                        </xs:element>
-                                                       <xs:element name="group" minOccurs="0"
-                                                               maxOccurs="unbounded">
+                                                       <xs:element name="group" minOccurs="0" maxOccurs="unbounded">
                                                                <xs:complexType>
-                                                                       <xs:attribute name="name"
-                                                                               type="xs:string" use="required" />
-                                                                       <xs:attribute name="display"
-                                                                               type="xs:boolean" use="required" />
+                                                                       <xs:attribute name="name" type="xs:string" use="required" />
+                                                                       <xs:attribute name="display" type="xs:boolean"
+                                                                               use="required" />
                                                                </xs:complexType>
                                                        </xs:element>
                                                </xs:sequence>
                <xs:sequence>
                        <xs:element name="otherData" minOccurs="0" maxOccurs="unbounded">
                                <xs:complexType>
-                                       <xs:attribute name="key" type="xs:string" use="required"/>
-                                       <xs:attribute name="value" type="xs:string" use="required"/>
+                                       <xs:attribute name="key" type="xs:string" use="required" />
+                                       <xs:attribute name="value" type="xs:string" use="required" />
                                </xs:complexType>
                        </xs:element>
                </xs:sequence>
-               <xs:attribute name="begin" type="xs:int" use="required"/>
-               <xs:attribute name="end" type="xs:int" use="required"/>
-               <xs:attribute name="type" type="xs:string" use="required"/>
-               <xs:attribute name="description" type="xs:string" use="optional"/>
-               <xs:attribute name="status" type="xs:string" use="optional"/>
-               <xs:attribute name="featureGroup" type="xs:string" use="optional"/>
-               <xs:attribute name="score" type="xs:float" use="optional"/>
+               <xs:attribute name="begin" type="xs:int" use="required" />
+               <xs:attribute name="end" type="xs:int" use="required" />
+               <xs:attribute name="type" type="xs:string" use="required" />
+               <xs:attribute name="description" type="xs:string" use="optional" />
+               <xs:attribute name="status" type="xs:string" use="optional" />
+               <xs:attribute name="featureGroup" type="xs:string" use="optional" />
+               <xs:attribute name="score" type="xs:float" use="optional" />
        </xs:complexType>
        <xs:complexType name="pdbentry">
                <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:element name="property" minOccurs="0" maxOccurs="unbounded">
                                <xs:complexType>
-                                       <xs:attribute name="name" type="xs:string" use="required"/>
-                                       <xs:attribute name="value" type="xs:string" use="required"/>
+                                       <xs:attribute name="name" type="xs:string" use="required" />
+                                       <xs:attribute name="value" type="xs:string" use="required" />
                                </xs:complexType>
                        </xs:element>
                </xs:sequence>
-               <xs:attribute name="id" type="xs:string" use="required"/>
-               <xs:attribute name="type" type="xs:string" use="optional"/>
-               <xs:attribute name="file" type="xs:string"/>
+               <xs:attribute name="id" type="xs:string" use="required" />
+               <xs:attribute name="type" type="xs:string" use="optional" />
+               <xs:attribute name="file" type="xs:string" />
        </xs:complexType>
-       <!-- 
-       <xs:complexType name="reportWindow">
-       <xs:annotation>
-       <xs:documentation>Generic type for windows containing mime-typed data associated with other jalview windows</xs:documentation>
-       </xs:annotation>
-       <xs:sequence>
-       </xs:sequence>
-    <xs:attribute name="id" type="xs:string" use="required"/>
-    <xs:attribute name="type" type="xs:string" use="optional"/>
-    <xs:attribute name="file" type="xs:string" use="optional"/>
+       <!-- <xs:complexType name="reportWindow"> <xs:annotation> <xs:documentation>Generic 
+               type for windows containing mime-typed data associated with other jalview 
+               windows</xs:documentation> </xs:annotation> <xs:sequence> </xs:sequence> 
+               <xs:attribute name="id" type="xs:string" use="required"/> <xs:attribute name="type" 
+               type="xs:string" use="optional"/> <xs:attribute name="file" type="xs:string" 
+               use="optional"/> </xs:complexType> -->
+       <xs:attributeGroup name="swingwindow">
+               <xs:annotation>
+                       <xs:documentation>
+                               base attributes for windows displayed in Jalview
+                               desktop.
+                       </xs:documentation>
+               </xs:annotation>
+               <xs:attribute name="width" type="xs:int" />
+               <xs:attribute name="height" type="xs:int" />
+               <xs:attribute name="xpos" type="xs:int" />
+               <xs:attribute name="ypos" type="xs:int" />
+       </xs:attributeGroup>
+       <xs:complexType name="AnnotationColourScheme">
+               <xs:attribute name="aboveThreshold" type="xs:int" />
+               <xs:attribute name="annotation" type="xs:string" />
+               <xs:attribute name="minColour" type="xs:int" />
+               <xs:attribute name="maxColour" type="xs:int" />
+               <xs:attribute name="colourScheme" type="xs:string" />
+               <xs:attribute name="threshold" type="xs:float" />
+               <xs:attribute name="perSequence" type="xs:boolean" use="optional" />
+               <xs:attribute name="predefinedColours" type="xs:boolean"
+                       use="optional" />
        </xs:complexType>
- -->
-    <xs:attributeGroup name="swingwindow">
-    <xs:annotation>
-    <xs:documentation>
-      base attributes for windows displayed in Jalview desktop.
-    </xs:documentation>
-    </xs:annotation>
-      <xs:attribute name="width" type="xs:int"/>
-      <xs:attribute name="height" type="xs:int"/>
-      <xs:attribute name="xpos" type="xs:int"/>
-      <xs:attribute name="ypos" type="xs:int"/>
-    </xs:attributeGroup>
-  <xs:complexType name="AnnotationColourScheme">
-       <xs:attribute name="aboveThreshold" type="xs:int" />
-       <xs:attribute name="annotation" type="xs:string" />
-       <xs:attribute name="minColour" type="xs:int" />
-       <xs:attribute name="maxColour" type="xs:int" />
-       <xs:attribute name="colourScheme" type="xs:string" />
-       <xs:attribute name="threshold" type="xs:float" />
-       <xs:attribute name="perSequence" type="xs:boolean" use="optional" />
-       <xs:attribute name="predefinedColours" type="xs:boolean"
-               use="optional" />
-  </xs:complexType>
-  
+
 </xs:schema>
index b66778c..7cc72cf 100644 (file)
@@ -1,5 +1,7 @@
 package ext.edu.ucsf.rbvi.strucviz2;
 
+import jalview.ws.HttpClientUtils;
+
 import java.awt.Color;
 import java.io.BufferedReader;
 import java.io.File;
@@ -20,8 +22,6 @@ import org.slf4j.LoggerFactory;
 import ext.edu.ucsf.rbvi.strucviz2.StructureManager.ModelType;
 import ext.edu.ucsf.rbvi.strucviz2.port.ListenerThreads;
 
-import jalview.ws.HttpClientUtils;
-
 /**
  * This object maintains the Chimera communication information.
  */
@@ -554,8 +554,8 @@ public class ChimeraManager
     for (String chimeraPath : chimeraPaths)
     {
       File path = new File(chimeraPath);
-      // enable the next line to simulate Chimera not installed
-      // File path = new File(chimeraPath + "x");
+      // uncomment the next line to simulate Chimera not installed
+      // path = new File(chimeraPath + "x");
       if (!path.canExecute())
       {
         error += "File '" + path + "' does not exist.\n";
@@ -565,6 +565,8 @@ public class ChimeraManager
       {
         List<String> args = new ArrayList<String>();
         args.add(chimeraPath);
+        // shows Chimera output window but suppresses REST responses:
+        // args.add("--debug");
         args.add("--start");
         args.add("RESTServer");
         ProcessBuilder pb = new ProcessBuilder(args);
@@ -589,7 +591,7 @@ public class ChimeraManager
       // TODO: [Optional] Check Chimera version and show a warning if below 1.8
       // Ask Chimera to give us updates
       // startListening(); // later - see ChimeraListener
-      return true;
+      return (chimeraRestPort > 0);
     }
 
     // Tell the user that Chimera could not be started because of an error
@@ -606,20 +608,29 @@ public class ChimeraManager
     InputStream readChan = chimera.getInputStream();
     BufferedReader lineReader = new BufferedReader(new InputStreamReader(
             readChan));
-    String response = null;
+    StringBuilder responses = new StringBuilder();
     try
     {
-      // expect: REST server on host 127.0.0.1 port port_number
-      response = lineReader.readLine();
-      String [] tokens = response.split(" ");
-      if (tokens.length == 7 && "port".equals(tokens[5])) {
-        port = Integer.parseInt(tokens[6]);
-        logger.info("Chimera REST service listening on port "
-                + chimeraRestPort);
+      String response = lineReader.readLine();
+      while (response != null)
+      {
+        responses.append("\n" + response);
+        // expect: REST server on host 127.0.0.1 port port_number
+        if (response.startsWith("REST server"))
+        {
+          String[] tokens = response.split(" ");
+          if (tokens.length == 7 && "port".equals(tokens[5]))
+          {
+            port = Integer.parseInt(tokens[6]);
+            break;
+          }
+        }
+        response = lineReader.readLine();
       }
     } catch (Exception e)
     {
-      logger.error("Failed to get REST port number from " + response + ": "
+      logger.error("Failed to get REST port number from " + responses
+              + ": "
               + e.getMessage());
     } finally
     {
@@ -630,6 +641,13 @@ public class ChimeraManager
       {
       }
     }
+    if (port == 0)
+    {
+      System.err
+              .println("Failed to start Chimera with REST service, response was: "
+                      + responses);
+    }
+    logger.info("Chimera REST service listening on port " + chimeraRestPort);
     return port;
   }
 
index 69c39df..50045dc 100755 (executable)
@@ -596,7 +596,6 @@ public class AAFrequency
       // array holds #seqs, #ungapped, then codon counts indexed by codon
       final int[] codonCounts = (int[]) hci.get(PROFILE);
       int totalCount = 0;
-      StringBuilder mouseOver = new StringBuilder(32);
 
       /*
        * First pass - get total count and find the highest
@@ -636,26 +635,56 @@ public class AAFrequency
        */
 
       /*
-       * Scan sorted array backwards for most frequent values first.
+       * Scan sorted array backwards for most frequent values first. Show
+       * repeated values compactly.
        */
+      StringBuilder mouseOver = new StringBuilder(32);
+      StringBuilder samePercent = new StringBuilder();
+      String percent = null;
+      String lastPercent = null;
+      Format fmt = getPercentageFormat(nseqs);
+
       for (int j = codons.length - 1; j >= 0; j--)
       {
         int codonCount = sortedCodonCounts[j];
         if (codonCount == 0)
         {
+          /*
+           * remaining codons are 0% - ignore, but finish off the last one if
+           * necessary
+           */
+          if (samePercent.length() > 0)
+          {
+            mouseOver.append(samePercent).append(": ").append(percent)
+                    .append("% ");
+          }
           break;
         }
         int codonEncoded = codons[j];
         final int pct = codonCount * 100 / totalCount;
         String codon = String
                 .valueOf(CodingUtils.decodeCodon(codonEncoded));
-        Format fmt = getPercentageFormat(nseqs);
-        String formatted = fmt == null ? Integer.toString(pct) : fmt
+        percent = fmt == null ? Integer.toString(pct) : fmt
                 .form(pct);
         if (showProfileLogo || codonCount == modalCodonCount)
         {
-          mouseOver.append(codon).append(": ").append(formatted)
-                  .append("% ");
+          if (percent.equals(lastPercent) && j > 0)
+          {
+            samePercent.append(samePercent.length() == 0 ? "" : ", ");
+            samePercent.append(codon);
+          }
+          else
+          {
+            if (samePercent.length() > 0)
+            {
+              mouseOver.append(samePercent).append(": ")
+                      .append(lastPercent)
+                      .append("% ");
+            }
+            samePercent.setLength(0);
+            samePercent.append(codon);
+          }
+          lastPercent = percent;
         }
       }
 
index 2fad332..0022af6 100755 (executable)
@@ -820,7 +820,7 @@ public class AlignmentSorter
         else
         {
           // or, also take a look at the scores if necessary.
-          if (!ignoreScore && sf[f].getScore() != Float.NaN)
+          if (!ignoreScore && !Float.isNaN(sf[f].getScore()))
           {
             if (seqScores[i] == 0)
             {
index cf56bf3..9b67cf5 100644 (file)
@@ -68,10 +68,4 @@ public interface AlignExportSettingI
    */
   public boolean isExportGroups();
 
-  /**
-   * Checks if settings/export process is cancelled
-   * 
-   * @return
-   */
-  public boolean isCancelled();
 }
index 133a739..c699b54 100644 (file)
@@ -40,4 +40,10 @@ public interface ComplexAlignFile
    */
   public SequenceI[] getHiddenSequences();
 
+  /**
+   * Retrieves displayed features from a complex file parser
+   * 
+   * @return
+   */
+  public FeaturesDisplayedI getDisplayedFeatures();
 }
index ca1d158..0225dc7 100644 (file)
@@ -106,6 +106,8 @@ import java.util.Map;
 import java.util.StringTokenizer;
 import java.util.Vector;
 
+import org.jmol.viewer.Viewer;
+
 public class AlignFrame extends EmbmenuFrame implements ActionListener,
         ItemListener, KeyListener, AlignViewControllerGuiI
 {
@@ -927,7 +929,9 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
               : showForSequences);
         aa.visible = visible;
     }
-    alignPanel.validateAnnotationDimensions(false);
+    alignPanel.validateAnnotationDimensions(true);
+    validate();
+    repaint();
   }
 
   private void setAnnotationSortOrder(SequenceAnnotationOrder order)
@@ -3870,10 +3874,10 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
   public SequenceStructureBinding addStructureViewInstance(
           Object jmolviewer, String[] sequenceIds)
   {
-    org.jmol.api.JmolViewer viewer = null;
+    Viewer viewer = null;
     try
     {
-      viewer = (org.jmol.api.JmolViewer) jmolviewer;
+      viewer = (Viewer) jmolviewer;
     } catch (ClassCastException ex)
     {
       System.err.println("Unsupported viewer object :"
index 0516533..463c6c3 100644 (file)
  */
 package jalview.appletgui;
 
+import jalview.analysis.AnnotationSorter;
+import jalview.api.AlignViewportI;
+import jalview.api.AlignmentViewPanel;
+import jalview.bin.JalviewLite;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.SearchResults;
+import jalview.datamodel.SequenceI;
+import jalview.structure.StructureSelectionManager;
+
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.Dimension;
@@ -34,15 +43,6 @@ import java.awt.event.ComponentAdapter;
 import java.awt.event.ComponentEvent;
 import java.util.List;
 
-import jalview.analysis.AnnotationSorter;
-import jalview.api.AlignViewportI;
-import jalview.api.AlignmentViewPanel;
-import jalview.bin.JalviewLite;
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.SearchResults;
-import jalview.datamodel.SequenceI;
-import jalview.structure.StructureSelectionManager;
-
 public class AlignmentPanel extends Panel implements AdjustmentListener,
         AlignmentViewPanel
 {
@@ -552,70 +552,60 @@ public class AlignmentPanel extends Panel implements AdjustmentListener,
   }
 
   /**
-   * calculate the annotation dimensions and refresh slider values accordingly.
-   * need to do repaints/notifys afterwards.
+   * Calculate the annotation dimensions and refresh slider values accordingly.
+   * Need to do repaints/notifys afterwards.
    */
   protected void validateAnnotationDimensions(boolean adjustPanelHeight)
   {
-    boolean modified = false;
-    int height = av.calcPanelHeight();
-    int minsize = 0;
-    if (hscroll.isVisible())
-    {
-      height += (minsize = hscroll.getPreferredSize().height);
-    }
-    if (apvscroll.isVisible())
-    {
-      minsize += apvscroll.getPreferredSize().height;
-    }
-    int mheight = height;
-    Dimension d = sequenceHolderPanel.getSize(), e = idPanel.getSize();
-    int seqandannot = d.height - scalePanelHolder.getSize().height;
+    int rowHeight = av.getCharHeight();
+    int alignmentHeight = rowHeight * av.getAlignment().getHeight();
+    int annotationHeight = av.calcPanelHeight();
+
+    int mheight = annotationHeight;
+    Dimension d = sequenceHolderPanel.getSize();
+
+    int availableHeight = d.height - scalePanelHolder.getHeight();
 
     if (adjustPanelHeight)
     {
-      // NOTE: this logic is different in the application. Need a better
-      // algorithm to define behaviour
-      // sets initial preferred height
-      // try and set height according to alignment
-      float sscaling = (float) ((av.getCharHeight() * av.getAlignment()
-              .getHeight()) / (1.0 * mheight));
-      if (sscaling > 0.5)
-      {
-        // if the alignment is too big then
-        // default is 0.5 split
-        height = seqandannot / 2;
-      }
-      else
+      /*
+       * If not enough vertical space, maximize annotation height while keeping
+       * at least two rows of alignment visible
+       */
+      if (annotationHeight + alignmentHeight > availableHeight)
       {
-        // otherwise just set the panel so that one row of sequence is visible
-        height = -av.getCharHeight() * 1
-                + (int) (seqandannot * (1 - sscaling));
+        annotationHeight = Math.min(annotationHeight, availableHeight - 2
+                * rowHeight);
       }
     }
     else
     {
       // maintain same window layout whilst updating sliders
-      height = annotationPanelHolder.getSize().height;
+      annotationHeight = annotationPanelHolder.getSize().height;
     }
 
-    if (seqandannot - height < 5)
+    if (availableHeight - annotationHeight < 5)
     {
-      height = seqandannot;
+      annotationHeight = availableHeight;
     }
-    annotationPanel.setSize(new Dimension(d.width, height));
-    alabels.setSize(new Dimension(e.width, height));
-    annotationSpaceFillerHolder.setSize(new Dimension(e.width, height));
-    annotationPanelHolder.setSize(new Dimension(d.width, height));
+
+    annotationPanel.setSize(new Dimension(d.width, annotationHeight));
+    annotationPanelHolder.setSize(new Dimension(d.width, annotationHeight));
     // seqPanelHolder.setSize(d.width, seqandannot - height);
     seqPanel.seqCanvas
             .setSize(d.width, seqPanel.seqCanvas.getSize().height);
+
+    Dimension e = idPanel.getSize();
+    alabels.setSize(new Dimension(e.width, annotationHeight));
+    annotationSpaceFillerHolder.setSize(new Dimension(e.width,
+            annotationHeight));
+
     int s = apvscroll.getValue();
-    if (s > mheight - height)
+    if (s > mheight - annotationHeight)
     {
       s = 0;
     }
-    apvscroll.setValues(s, height, 0, mheight);
+    apvscroll.setValues(s, annotationHeight, 0, mheight);
     annotationPanel.setScrollOffset(apvscroll.getValue(), false);
     alabels.setScrollOffset(apvscroll.getValue(), false);
   }
index f54717d..e889467 100644 (file)
  */
 package jalview.appletgui;
 
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.PDBEntry;
+import jalview.datamodel.SequenceI;
+import jalview.io.AppletFormatAdapter;
+import jalview.io.FileParse;
+import jalview.schemes.BuriedColourScheme;
+import jalview.schemes.HelixColourScheme;
+import jalview.schemes.HydrophobicColourScheme;
+import jalview.schemes.PurinePyrimidineColourScheme;
+import jalview.schemes.StrandColourScheme;
+import jalview.schemes.TaylorColourScheme;
+import jalview.schemes.TurnColourScheme;
+import jalview.schemes.UserColourScheme;
+import jalview.schemes.ZappoColourScheme;
+import jalview.structure.StructureSelectionManager;
+import jalview.util.MessageManager;
+
 import java.awt.BorderLayout;
 import java.awt.CheckboxMenuItem;
 import java.awt.Color;
@@ -31,7 +48,6 @@ import java.awt.Menu;
 import java.awt.MenuBar;
 import java.awt.MenuItem;
 import java.awt.Panel;
-import java.awt.Rectangle;
 import java.awt.TextArea;
 import java.awt.TextField;
 import java.awt.event.ActionEvent;
@@ -44,25 +60,9 @@ import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 import java.util.ArrayList;
 import java.util.Hashtable;
+import java.util.List;
 import java.util.Vector;
 
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.PDBEntry;
-import jalview.datamodel.SequenceI;
-import jalview.io.AppletFormatAdapter;
-import jalview.io.FileParse;
-import jalview.schemes.BuriedColourScheme;
-import jalview.schemes.HelixColourScheme;
-import jalview.schemes.HydrophobicColourScheme;
-import jalview.schemes.PurinePyrimidineColourScheme;
-import jalview.schemes.StrandColourScheme;
-import jalview.schemes.TaylorColourScheme;
-import jalview.schemes.TurnColourScheme;
-import jalview.schemes.UserColourScheme;
-import jalview.schemes.ZappoColourScheme;
-import jalview.structure.StructureSelectionManager;
-import jalview.util.MessageManager;
-
 public class AppletJmol extends EmbmenuFrame implements
 // StructureListener,
         KeyListener, ActionListener, ItemListener
@@ -130,7 +130,8 @@ public class AppletJmol extends EmbmenuFrame implements
 
   AlignmentPanel ap;
 
-  ArrayList _aps = new ArrayList();
+  List<AlignmentPanel> _aps = new ArrayList<AlignmentPanel>(); // remove? never
+                                                               // added to
 
   String fileLoadingError;
 
@@ -280,7 +281,7 @@ public class AppletJmol extends EmbmenuFrame implements
       dispose();
       return;
     }
-    jmb.newJmolPopup(true, "Jmol", true);
+    // jmb.newJmolPopup(true, "Jmol", true);
 
     this.addWindowListener(new WindowAdapter()
     {
@@ -370,7 +371,7 @@ public class AppletJmol extends EmbmenuFrame implements
     jmb.loadInline(string);
   }
 
-  void setChainMenuItems(Vector chains)
+  void setChainMenuItems(Vector<String> chains)
   {
     chainMenu.removeAll();
 
@@ -380,10 +381,9 @@ public class AppletJmol extends EmbmenuFrame implements
     chainMenu.add(menuItem);
 
     CheckboxMenuItem menuItemCB;
-    for (int c = 0; c < chains.size(); c++)
+    for (String ch : chains)
     {
-      menuItemCB = new CheckboxMenuItem(chains.elementAt(c).toString(),
-              true);
+      menuItemCB = new CheckboxMenuItem(ch, true);
       menuItemCB.addItemListener(this);
       chainMenu.add(menuItemCB);
     }
@@ -393,9 +393,7 @@ public class AppletJmol extends EmbmenuFrame implements
 
   void centerViewer()
   {
-    Vector toshow = new Vector();
-    String lbl;
-    int mlength, p, mnum;
+    Vector<String> toshow = new Vector<String>();
     for (int i = 0; i < chainMenu.getItemCount(); i++)
     {
       if (chainMenu.getItem(i) instanceof CheckboxMenuItem)
@@ -547,7 +545,7 @@ public class AppletJmol extends EmbmenuFrame implements
     else if (evt.getSource() == seqColour)
     {
       setEnabled(seqColour);
-      jmb.colourBySequence(ap.av.isShowSequenceFeatures(), ap);
+      jmb.colourBySequence(ap);
     }
     else if (!allChainsSelected)
     {
@@ -576,8 +574,8 @@ public class AppletJmol extends EmbmenuFrame implements
 
   public void updateColours(Object source)
   {
-    AlignmentPanel ap = (AlignmentPanel) source;
-    jmb.colourBySequence(ap.av.isShowSequenceFeatures(), ap);
+    AlignmentPanel panel = (AlignmentPanel) source;
+    jmb.colourBySequence(panel);
   }
 
   public void updateTitleAndMenus()
@@ -588,7 +586,7 @@ public class AppletJmol extends EmbmenuFrame implements
       return;
     }
     setChainMenuItems(jmb.chainNames);
-    jmb.colourBySequence(ap.av.isShowSequenceFeatures(), ap);
+    jmb.colourBySequence(ap);
 
     setTitle(jmb.getViewerTitle());
   }
@@ -643,8 +641,6 @@ public class AppletJmol extends EmbmenuFrame implements
   {
     Dimension currentSize = new Dimension();
 
-    Rectangle rectClip = new Rectangle();
-
     public void update(Graphics g)
     {
       paint(g);
@@ -653,7 +649,6 @@ public class AppletJmol extends EmbmenuFrame implements
     public void paint(Graphics g)
     {
       currentSize = this.getSize();
-      rectClip = g.getClipBounds();
 
       if (jmb.viewer == null)
       {
@@ -666,7 +661,8 @@ public class AppletJmol extends EmbmenuFrame implements
       }
       else
       {
-        jmb.viewer.renderScreenImage(g, currentSize, rectClip);
+        jmb.viewer.renderScreenImage(g, currentSize.width,
+                currentSize.height);
       }
     }
   }
@@ -698,9 +694,9 @@ public class AppletJmol extends EmbmenuFrame implements
   {
     for (int i = 0; i < _aps.size(); i++)
     {
-      if (((AlignmentPanel) _aps.get(i)).av.getAlignment() == alignment)
+      if (_aps.get(i).av.getAlignment() == alignment)
       {
-        return ((AlignmentPanel) _aps.get(i));
+        return (_aps.get(i));
       }
     }
     return ap;
index 80fafe3..7035058 100644 (file)
@@ -23,16 +23,19 @@ package jalview.appletgui;
 import jalview.api.AlignmentViewPanel;
 import jalview.datamodel.PDBEntry;
 import jalview.datamodel.SequenceI;
+import jalview.ext.jmol.JalviewJmolBinding;
 import jalview.structure.StructureSelectionManager;
 
 import java.awt.Container;
-import java.util.BitSet;
+import java.util.Map;
+
+import javajs.awt.Dimension;
 
 import org.jmol.api.JmolAppConsoleInterface;
-import org.jmol.api.JmolViewer;
-import org.jmol.popup.JmolPopup;
+import org.jmol.console.AppletConsole;
+import org.jmol.java.BS;
 
-class AppletJmolBinding extends jalview.ext.jmol.JalviewJmolBinding
+class AppletJmolBinding extends JalviewJmolBinding
 {
 
   /**
@@ -48,6 +51,7 @@ class AppletJmolBinding extends jalview.ext.jmol.JalviewJmolBinding
     appletJmolBinding = appletJmol;
   }
 
+  @Override
   public jalview.api.FeatureRenderer getFeatureRenderer(
           AlignmentViewPanel alignment)
   {
@@ -68,12 +72,14 @@ class AppletJmolBinding extends jalview.ext.jmol.JalviewJmolBinding
     return appletJmolBinding.fr;
   }
 
+  @Override
   public jalview.api.SequenceRenderer getSequenceRenderer(
           AlignmentViewPanel alignment)
   {
     return new SequenceRenderer(((AlignmentPanel) alignment).av);
   }
 
+  @Override
   public void sendConsoleEcho(String strEcho)
   {
     if (appletJmolBinding.scriptWindow == null)
@@ -84,6 +90,7 @@ class AppletJmolBinding extends jalview.ext.jmol.JalviewJmolBinding
     appletJmolBinding.history.append("\n" + strEcho);
   }
 
+  @Override
   public void sendConsoleMessage(String strStatus)
   {
     if (appletJmolBinding.history != null && strStatus != null
@@ -93,12 +100,14 @@ class AppletJmolBinding extends jalview.ext.jmol.JalviewJmolBinding
     }
   }
 
+  @Override
   public void showUrl(String url, String target)
   {
     appletJmolBinding.ap.alignFrame.showURL(url, target);
 
   }
 
+  @Override
   public void refreshGUI()
   {
     appletJmolBinding.updateTitleAndMenus();
@@ -107,7 +116,7 @@ class AppletJmolBinding extends jalview.ext.jmol.JalviewJmolBinding
   public void updateColours(Object source)
   {
     AlignmentPanel ap = (AlignmentPanel) source;
-    colourBySequence(ap.av.isShowSequenceFeatures(), ap);
+    colourBySequence(ap);
   }
 
   public void showUrl(String url)
@@ -124,17 +133,17 @@ class AppletJmolBinding extends jalview.ext.jmol.JalviewJmolBinding
   public void newJmolPopup(boolean translateLocale, String menuName,
           boolean asPopup)
   {
-
-    jmolpopup = new JmolPopup();
-    jmolpopup.initialize(viewer, translateLocale, menuName, asPopup);
+    // jmolpopup = new JmolAwtPopup(); // is this used?
+    // jmolpopup.jpiInitialize((viewer), menuName);
   }
 
+  @Override
   public void notifyScriptTermination(String strStatus, int msWalltime)
   {
     // do nothing.
   }
 
-  public void selectionChanged(BitSet arg0)
+  public void selectionChanged(BS arg0)
   {
     // TODO Auto-generated method stub
 
@@ -153,12 +162,11 @@ class AppletJmolBinding extends jalview.ext.jmol.JalviewJmolBinding
   }
 
   @Override
-  protected JmolAppConsoleInterface createJmolConsole(JmolViewer viewer2,
+  protected JmolAppConsoleInterface createJmolConsole(
           Container consolePanel, String buttonsToShow)
   {
-    // return new org.jmol.console.AppletConsole(viewer2, consolePanel);
-    JmolAppConsoleInterface appc = new org.jmol.console.AppletConsole()
-            .getAppConsole(viewer2);
+    JmolAppConsoleInterface appc = new AppletConsole();
+    appc.start(viewer);
     return appc;
   }
 
@@ -175,9 +183,16 @@ class AppletJmolBinding extends jalview.ext.jmol.JalviewJmolBinding
   }
 
   @Override
-  public void resizeInnerPanel(String data)
+  public Dimension resizeInnerPanel(String data)
   {
     // TODO Auto-generated method stub
+    return null;
+  }
 
+  @Override
+  public Map<String, Object> getJSpecViewProperty(String arg0)
+  {
+    // TODO Auto-generated method stub
+    return null;
   }
 }
index cec77d2..c1035bd 100644 (file)
@@ -29,12 +29,13 @@ import jalview.ext.jmol.JalviewJmolBinding;
 
 import java.awt.Container;
 import java.util.ArrayList;
-import java.util.BitSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Vector;
 
 import org.jmol.api.JmolAppConsoleInterface;
-import org.jmol.api.JmolViewer;
+import org.jmol.java.BS;
+import org.jmol.viewer.Viewer;
 
 /**
  * bind an alignment view to an external Jmol instance.
@@ -55,7 +56,7 @@ public class ExtJmol extends JalviewJmolBinding
             chains, protocol);
   }
 
-  public ExtJmol(JmolViewer viewer, AlignmentPanel alignPanel,
+  public ExtJmol(Viewer viewer, AlignmentPanel alignPanel,
           SequenceI[][] seqs)
   {
     super(alignPanel.getStructureSelectionManager(), seqs, viewer);
@@ -75,6 +76,7 @@ public class ExtJmol extends JalviewJmolBinding
     showUrl(arg0, "jmol");
   }
 
+  @Override
   public FeatureRenderer getFeatureRenderer(AlignmentViewPanel alignment)
   {
     AlignmentPanel ap = (AlignmentPanel) alignment;
@@ -88,41 +90,48 @@ public class ExtJmol extends JalviewJmolBinding
     }
   }
 
+  @Override
   public SequenceRenderer getSequenceRenderer(AlignmentViewPanel alignment)
   {
     return ((AlignmentPanel) alignment).getSequenceRenderer();
   }
 
+  @Override
   public void notifyScriptTermination(String strStatus, int msWalltime)
   {
     // ignore
   }
 
+  @Override
   public void sendConsoleEcho(String strEcho)
   {
     // ignore
   }
 
+  @Override
   public void sendConsoleMessage(String strStatus)
   {
     // ignore
   }
 
+  @Override
   public void showUrl(String url, String target)
   {
     ap.alignFrame.showURL(url, target);
   }
 
+  @Override
   public void refreshGUI()
   {
     // ignore
   }
 
-  public void selectionChanged(BitSet arg0)
+  public void selectionChanged(BS arg0)
   {
     System.out.println(arg0);
   }
 
+  @Override
   public void refreshPdbEntries()
   {
     List<PDBEntry> pdbe = new ArrayList<PDBEntry>();
@@ -130,12 +139,12 @@ public class ExtJmol extends JalviewJmolBinding
     SequenceI[] sq = ap.av.getAlignment().getSequencesArray();
     for (int s = 0; s < sq.length; s++)
     {
-      Vector pdbids = sq[s].getPDBId();
+      Vector<PDBEntry> pdbids = sq[s].getPDBId();
       if (pdbids != null)
       {
         for (int pe = 0, peSize = pdbids.size(); pe < peSize; pe++)
         {
-          PDBEntry pentry = (PDBEntry) pdbids.elementAt(pe);
+          PDBEntry pentry = pdbids.elementAt(pe);
           if (!fileids.contains(pentry.getId()))
           {
             pdbe.add(pentry);
@@ -166,7 +175,7 @@ public class ExtJmol extends JalviewJmolBinding
   }
 
   @Override
-  protected JmolAppConsoleInterface createJmolConsole(JmolViewer viewer2,
+  protected JmolAppConsoleInterface createJmolConsole(
           Container consolePanel, String buttonsToShow)
   {
     // TODO Auto-generated method stub
@@ -188,4 +197,11 @@ public class ExtJmol extends JalviewJmolBinding
 
   }
 
+  @Override
+  public Map<String, Object> getJSpecViewProperty(String arg0)
+  {
+    // TODO Auto-generated method stub
+    return null;
+  }
+
 }
index 258b8b6..8f24f11 100755 (executable)
  */
 package jalview.appletgui;
 
+import jalview.datamodel.Sequence;
+import jalview.datamodel.SequenceFeature;
+import jalview.datamodel.SequenceGroup;
+import jalview.datamodel.SequenceI;
+import jalview.util.UrlLink;
+import jalview.viewmodel.AlignmentViewport;
+
 import java.awt.BorderLayout;
 import java.awt.Panel;
 import java.awt.event.InputEvent;
@@ -29,13 +36,6 @@ import java.awt.event.MouseMotionListener;
 import java.util.List;
 import java.util.Vector;
 
-import jalview.datamodel.Sequence;
-import jalview.datamodel.SequenceFeature;
-import jalview.datamodel.SequenceGroup;
-import jalview.datamodel.SequenceI;
-import jalview.util.UrlLink;
-import jalview.viewmodel.AlignmentViewport;
-
 public class IdPanel extends Panel implements MouseListener,
         MouseMotionListener
 {
@@ -142,7 +142,7 @@ public class IdPanel extends Panel implements MouseListener,
             nl = true;
           }
           ;
-          if (sf[sl].getScore() != Float.NaN && sf[sl].getScore() != 0f)
+          if (!Float.isNaN(sf[sl].getScore()) && sf[sl].getScore() != 0f)
           {
             tooltiptext.append(" Score = ");
             tooltiptext.append(sf[sl].getScore());
index 00a042d..177d56f 100755 (executable)
@@ -109,7 +109,14 @@ public class Jalview
       System.setProperty("java.awt.headless", "true");
       headless = true;
     }
-    Cache.loadProperties(aparser.getValue("props")); // must do this before
+    String usrPropsFile = aparser.getValue("props");
+    Cache.loadProperties(usrPropsFile); // must do this before
+    if (usrPropsFile != null)
+    {
+      System.out.println("CMD [-props " + usrPropsFile
+              + "] executed successfully!");
+    }
+
     // anything else!
 
     final String jabawsUrl = aparser.getValue("jabaws");
@@ -118,6 +125,8 @@ public class Jalview
       try
       {
         Jws2Discoverer.getDiscoverer().setPreferredUrl(jabawsUrl);
+        System.out.println("CMD [-jabaws " + jabawsUrl
+                + "] executed successfully!");
       } catch (MalformedURLException e)
       {
         System.err.println("Invalid jabaws parameter: " + jabawsUrl
@@ -195,6 +204,11 @@ public class Jalview
       {
         startUsageStats(desktop);
       }
+      else
+      {
+        System.err.println("CMD [-nousagestats] executed successfully!");
+      }
+
       if (!aparser.contains("noquestionnaire"))
       {
         String url = aparser.getValue("questionnaire");
@@ -204,6 +218,8 @@ public class Jalview
           // questionnaire
           Cache.log.debug("Starting questionnaire url at " + url);
           desktop.checkForQuestionnaire(url);
+          System.out.println("CMD questionnaire[-" + url
+                  + "] executed successfully!");
         }
         else
         {
@@ -222,13 +238,21 @@ public class Jalview
           }
         }
       }
+      else
+      {
+        System.err
+.println("CMD [-noquestionnaire] executed successfully!");
+      }
       desktop.checkForNews();
     }
 
-    BioJsHTMLOutput.updateBioJS();
+    if (!isHeadlessMode())
+    {
+      BioJsHTMLOutput.updateBioJS();
+    }
 
     String file = null, protocol = null, format = null, data = null;
-    jalview.io.FileLoader fileLoader = new jalview.io.FileLoader();
+    jalview.io.FileLoader fileLoader = new jalview.io.FileLoader(!headless);
     Vector getFeatures = null; // vector of das source nicknames to fetch
     // features from
     // loading is done.
@@ -337,7 +361,7 @@ public class Jalview
         desktop.setProgressBar(MessageManager.getString("status.processing_commandline_args"),
                 progress = System.currentTimeMillis());
       }
-      System.out.println("Opening file: " + file);
+      System.out.println("CMD [-open " + file + "] executed successfully!");
 
       if (!file.startsWith("http://"))
       {
@@ -379,8 +403,11 @@ public class Jalview
             ucs.parseAppletParameter(data);
             cs = ucs;
           }
-
-          System.out.println("colour is " + data);
+          else
+          {
+            System.out.println("CMD [-color " + data
+                    + "] executed successfully!");
+          }
           af.changeColour(cs);
         }
 
@@ -390,34 +417,55 @@ public class Jalview
         {
           af.parseFeaturesFile(data,
                   jalview.io.AppletFormatAdapter.checkProtocol(data));
-          System.out.println("Added " + data);
+          // System.out.println("Added " + data);
+          System.out.println("CMD groups[-" + data
+                  + "]  executed successfully!");
         }
         data = aparser.getValue("features", true);
         if (data != null)
         {
           af.parseFeaturesFile(data,
                   jalview.io.AppletFormatAdapter.checkProtocol(data));
-          System.out.println("Added " + data);
+          // System.out.println("Added " + data);
+          System.out.println("CMD [-features " + data
+                  + "]  executed successfully!");
         }
 
         data = aparser.getValue("annotations", true);
         if (data != null)
         {
           af.loadJalviewDataFile(data, null, null, null);
-          System.out.println("Added " + data);
+          // System.out.println("Added " + data);
+          System.out.println("CMD [-annotations " + data
+                  + "] executed successfully!");
         }
         // set or clear the sortbytree flag.
         if (aparser.contains("sortbytree"))
         {
           af.getViewport().setSortByTree(true);
+          if (af.getViewport().getSortByTree())
+          {
+            System.out
+.println("CMD [-sortbytree] executed successfully!");
+          }
         }
         if (aparser.contains("no-annotation"))
         {
           af.getViewport().setShowAnnotation(false);
+          if (!af.getViewport().isShowAnnotation())
+          {
+            System.out
+.println("CMD no-annotation executed successfully!");
+          }
         }
         if (aparser.contains("nosortbytree"))
         {
           af.getViewport().setSortByTree(false);
+          if (!af.getViewport().getSortByTree())
+          {
+            System.out
+                    .println("CMD [-nosortbytree] executed successfully!");
+          }
         }
         data = aparser.getValue("tree", true);
         if (data != null)
@@ -425,13 +473,14 @@ public class Jalview
           jalview.io.NewickFile fin = null;
           try
           {
+            System.out.println("CMD [-tree " + data
+                    + "] executed successfully!");
             fin = new jalview.io.NewickFile(data,
                     jalview.io.AppletFormatAdapter.checkProtocol(data));
             if (fin != null)
             {
               af.getViewport().setCurrentTree(
                       af.ShowNewickTree(fin, data).getTree());
-              System.out.println("Added tree " + data);
             }
           } catch (IOException ex)
           {
@@ -472,6 +521,9 @@ public class Jalview
             System.out.println("Executing script " + groovyscript);
             executeGroovyScript(groovyscript, new Object[]
             { desktop, af });
+
+            System.out.println("CMD groovy[" + groovyscript
+                    + "] executed successfully!");
           }
           else
           {
@@ -518,8 +570,10 @@ public class Jalview
           }
           else if (format.equalsIgnoreCase("eps"))
           {
-            System.out.println("Creating EPS file: " + file);
-            af.createEPS(new java.io.File(file));
+            File outputFile = new java.io.File(file);
+            System.out.println("Creating EPS file: "
+                    + outputFile.getAbsolutePath());
+            af.createEPS(outputFile);
             continue;
           }
 
@@ -639,6 +693,7 @@ public class Jalview
                     + "-pileup FILE\tCreate alignment file FILE in Pileup format\n"
                     + "-pir FILE\tCreate alignment file FILE in PIR format.\n"
                     + "-blc FILE\tCreate alignment file FILE in BLC format.\n"
+                    + "-json FILE\tCreate alignment file FILE in JSON format.\n"
                     + "-jalview FILE\tCreate alignment file FILE in Jalview format.\n"
                     + "-png FILE\tCreate PNG image FILE from alignment.\n"
                     + "-svg FILE\tCreate SVG image FILE from alignment.\n"
@@ -925,6 +980,8 @@ public class Jalview
         }
         source.addElement(nickname);
       }
+      System.out.println("CMD [-dasserver " + data
+              + "] executed successfully!");
     } // loop until no more server entries are found.
     if (locsources != null && locsources.indexOf('|') > -1)
     {
@@ -963,6 +1020,16 @@ public class Jalview
     }
     return ff;
   }
+
+  public static boolean isHeadlessMode()
+  {
+    String isheadless = System.getProperty("java.awt.headless");
+    if (isheadless != null && isheadless.equalsIgnoreCase("true"))
+    {
+      return true;
+    }
+    return false;
+  }
 }
 
 /**
@@ -1131,4 +1198,4 @@ class FeatureFetcher
     return queued == 0 && running == 0;
   }
 
-};
+}
index ae5c63f..8a9c54b 100644 (file)
@@ -69,7 +69,6 @@ import java.util.List;
 import java.util.StringTokenizer;
 import java.util.Vector;
 
-import netscape.javascript.JSException;
 import netscape.javascript.JSObject;
 
 /**
@@ -1533,7 +1532,7 @@ public class JalviewLite extends Applet implements
         {
           notFailed = true;
         }
-      } catch (JSException jsex)
+      } catch (Exception jsex)
       {
         System.err.println("Attempt " + tries
                 + " to access LiveConnect javascript failed.");
index 0cc2514..5b107b5 100644 (file)
@@ -1,27 +1,14 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-//---------------------------------/
-//- Imported classes and packages -/
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
@@ -32,162 +19,151 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Alignment implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _annotation.
-   */
-  private jalview.binding.Annotation _annotation;
-
-  /**
-   * Field _sequenceSet.
-   */
-  private jalview.binding.SequenceSet _sequenceSet;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Alignment()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Returns the value of field 'annotation'.
-   * 
-   * @return the value of field 'Annotation'.
-   */
-  public jalview.binding.Annotation getAnnotation()
-  {
-    return this._annotation;
-  }
-
-  /**
-   * Returns the value of field 'sequenceSet'.
-   * 
-   * @return the value of field 'SequenceSet'.
-   */
-  public jalview.binding.SequenceSet getSequenceSet()
-  {
-    return this._sequenceSet;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class Alignment implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _annotation.
+     */
+    private jalview.binding.Annotation _annotation;
+
+    /**
+     * Field _sequenceSet.
+     */
+    private jalview.binding.SequenceSet _sequenceSet;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Alignment() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Returns the value of field 'annotation'.
+     * 
+     * @return the value of field 'Annotation'.
+     */
+    public jalview.binding.Annotation getAnnotation(
+    ) {
+        return this._annotation;
+    }
+
+    /**
+     * Returns the value of field 'sequenceSet'.
+     * 
+     * @return the value of field 'SequenceSet'.
+     */
+    public jalview.binding.SequenceSet getSequenceSet(
+    ) {
+        return this._sequenceSet;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'annotation'.
+     * 
+     * @param annotation the value of field 'annotation'.
+     */
+    public void setAnnotation(
+            final jalview.binding.Annotation annotation) {
+        this._annotation = annotation;
+    }
+
+    /**
+     * Sets the value of field 'sequenceSet'.
+     * 
+     * @param sequenceSet the value of field 'sequenceSet'.
+     */
+    public void setSequenceSet(
+            final jalview.binding.SequenceSet sequenceSet) {
+        this._sequenceSet = sequenceSet;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.Alignment
+     */
+    public static jalview.binding.Alignment unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.Alignment) Unmarshaller.unmarshal(jalview.binding.Alignment.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'annotation'.
-   * 
-   * @param annotation
-   *          the value of field 'annotation'.
-   */
-  public void setAnnotation(final jalview.binding.Annotation annotation)
-  {
-    this._annotation = annotation;
-  }
-
-  /**
-   * Sets the value of field 'sequenceSet'.
-   * 
-   * @param sequenceSet
-   *          the value of field 'sequenceSet'.
-   */
-  public void setSequenceSet(final jalview.binding.SequenceSet sequenceSet)
-  {
-    this._sequenceSet = sequenceSet;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.Alignment
-   */
-  public static jalview.binding.Alignment unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.Alignment) Unmarshaller.unmarshal(
-            jalview.binding.Alignment.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
index 005adf0..108d3ad 100644 (file)
@@ -1,30 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
-//- Imported classes and packages -/
-//---------------------------------/
-
-import jalview.util.MessageManager;
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -34,443 +19,414 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Annotation implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _graph.
-   */
-  private boolean _graph;
-
-  /**
-   * keeps track of state for field: _graph
-   */
-  private boolean _has_graph;
-
-  /**
-   * Field _graphType.
-   */
-  private int _graphType;
-
-  /**
-   * keeps track of state for field: _graphType
-   */
-  private boolean _has_graphType;
-
-  /**
-   * Field _annotationElementList.
-   */
-  private java.util.Vector _annotationElementList;
-
-  /**
-   * Field _label.
-   */
-  private java.lang.String _label;
-
-  /**
-   * Field _description.
-   */
-  private java.lang.String _description;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Annotation()
-  {
-    super();
-    this._annotationElementList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vAnnotationElement
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addAnnotationElement(
-          final jalview.binding.AnnotationElement vAnnotationElement)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._annotationElementList.addElement(vAnnotationElement);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vAnnotationElement
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addAnnotationElement(final int index,
-          final jalview.binding.AnnotationElement vAnnotationElement)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._annotationElementList.add(index, vAnnotationElement);
-  }
-
-  /**
-     */
-  public void deleteGraph()
-  {
-    this._has_graph = false;
-  }
-
-  /**
-     */
-  public void deleteGraphType()
-  {
-    this._has_graphType = false;
-  }
-
-  /**
-   * Method enumerateAnnotationElement.
-   * 
-   * @return an Enumeration over all jalview.binding.AnnotationElement elements
-   */
-  public java.util.Enumeration enumerateAnnotationElement()
-  {
-    return this._annotationElementList.elements();
-  }
-
-  /**
-   * Method getAnnotationElement.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.AnnotationElement at the given
-   *         index
-   */
-  public jalview.binding.AnnotationElement getAnnotationElement(
-          final int index) throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._annotationElementList.size())
-    {
-      throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                 "getAnnotationElement",
-                 Integer.valueOf(index).toString(),
-                 Integer.valueOf((this._annotationElementList.size() - 1)).toString()
-      }));
+public class Annotation implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _graph.
+     */
+    private boolean _graph;
+
+    /**
+     * keeps track of state for field: _graph
+     */
+    private boolean _has_graph;
+
+    /**
+     * Field _graphType.
+     */
+    private int _graphType;
+
+    /**
+     * keeps track of state for field: _graphType
+     */
+    private boolean _has_graphType;
+
+    /**
+     * Field _annotationElementList.
+     */
+    private java.util.Vector _annotationElementList;
+
+    /**
+     * Field _label.
+     */
+    private java.lang.String _label;
+
+    /**
+     * Field _description.
+     */
+    private java.lang.String _description;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Annotation() {
+        super();
+        this._annotationElementList = new java.util.Vector();
     }
 
-    return (jalview.binding.AnnotationElement) _annotationElementList
-            .get(index);
-  }
-
-  /**
-   * Method getAnnotationElement.Returns the contents of the collection in an
-   * Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.AnnotationElement[] getAnnotationElement()
-  {
-    jalview.binding.AnnotationElement[] array = new jalview.binding.AnnotationElement[0];
-    return (jalview.binding.AnnotationElement[]) this._annotationElementList
-            .toArray(array);
-  }
-
-  /**
-   * Method getAnnotationElementCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getAnnotationElementCount()
-  {
-    return this._annotationElementList.size();
-  }
-
-  /**
-   * Returns the value of field 'description'.
-   * 
-   * @return the value of field 'Description'.
-   */
-  public java.lang.String getDescription()
-  {
-    return this._description;
-  }
-
-  /**
-   * Returns the value of field 'graph'.
-   * 
-   * @return the value of field 'Graph'.
-   */
-  public boolean getGraph()
-  {
-    return this._graph;
-  }
-
-  /**
-   * Returns the value of field 'graphType'.
-   * 
-   * @return the value of field 'GraphType'.
-   */
-  public int getGraphType()
-  {
-    return this._graphType;
-  }
-
-  /**
-   * Returns the value of field 'label'.
-   * 
-   * @return the value of field 'Label'.
-   */
-  public java.lang.String getLabel()
-  {
-    return this._label;
-  }
-
-  /**
-   * Method hasGraph.
-   * 
-   * @return true if at least one Graph has been added
-   */
-  public boolean hasGraph()
-  {
-    return this._has_graph;
-  }
-
-  /**
-   * Method hasGraphType.
-   * 
-   * @return true if at least one GraphType has been added
-   */
-  public boolean hasGraphType()
-  {
-    return this._has_graphType;
-  }
-
-  /**
-   * Returns the value of field 'graph'.
-   * 
-   * @return the value of field 'Graph'.
-   */
-  public boolean isGraph()
-  {
-    return this._graph;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vAnnotationElement
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addAnnotationElement(
+            final jalview.binding.AnnotationElement vAnnotationElement)
+    throws java.lang.IndexOutOfBoundsException {
+        this._annotationElementList.addElement(vAnnotationElement);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-     */
-  public void removeAllAnnotationElement()
-  {
-    this._annotationElementList.clear();
-  }
-
-  /**
-   * Method removeAnnotationElement.
-   * 
-   * @param vAnnotationElement
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeAnnotationElement(
-          final jalview.binding.AnnotationElement vAnnotationElement)
-  {
-    boolean removed = _annotationElementList.remove(vAnnotationElement);
-    return removed;
-  }
-
-  /**
-   * Method removeAnnotationElementAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.AnnotationElement removeAnnotationElementAt(
-          final int index)
-  {
-    java.lang.Object obj = this._annotationElementList.remove(index);
-    return (jalview.binding.AnnotationElement) obj;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vAnnotationElement
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void setAnnotationElement(final int index,
-          final jalview.binding.AnnotationElement vAnnotationElement)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._annotationElementList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                 "setAnnotationElement",
-                 Integer.valueOf(index).toString(),
-                 Integer.valueOf((this._annotationElementList.size() - 1)).toString()
-        }));
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vAnnotationElement
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addAnnotationElement(
+            final int index,
+            final jalview.binding.AnnotationElement vAnnotationElement)
+    throws java.lang.IndexOutOfBoundsException {
+        this._annotationElementList.add(index, vAnnotationElement);
+    }
+
+    /**
+     */
+    public void deleteGraph(
+    ) {
+        this._has_graph= false;
+    }
+
+    /**
+     */
+    public void deleteGraphType(
+    ) {
+        this._has_graphType= false;
+    }
+
+    /**
+     * Method enumerateAnnotationElement.
+     * 
+     * @return an Enumeration over all
+     * jalview.binding.AnnotationElement elements
+     */
+    public java.util.Enumeration enumerateAnnotationElement(
+    ) {
+        return this._annotationElementList.elements();
+    }
+
+    /**
+     * Method getAnnotationElement.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.AnnotationElement
+     * at the given index
+     */
+    public jalview.binding.AnnotationElement getAnnotationElement(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._annotationElementList.size()) {
+            throw new IndexOutOfBoundsException("getAnnotationElement: Index value '" + index + "' not in range [0.." + (this._annotationElementList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.AnnotationElement) _annotationElementList.get(index);
     }
 
-    this._annotationElementList.set(index, vAnnotationElement);
-  }
-
-  /**
-   * 
-   * 
-   * @param vAnnotationElementArray
-   */
-  public void setAnnotationElement(
-          final jalview.binding.AnnotationElement[] vAnnotationElementArray)
-  {
-    // -- copy array
-    _annotationElementList.clear();
-
-    for (int i = 0; i < vAnnotationElementArray.length; i++)
-    {
-      this._annotationElementList.add(vAnnotationElementArray[i]);
+    /**
+     * Method getAnnotationElement.Returns the contents of the
+     * collection in an Array.  <p>Note:  Just in case the
+     * collection contents are changing in another thread, we pass
+     * a 0-length Array of the correct type into the API call. 
+     * This way we <i>know</i> that the Array returned is of
+     * exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.AnnotationElement[] getAnnotationElement(
+    ) {
+        jalview.binding.AnnotationElement[] array = new jalview.binding.AnnotationElement[0];
+        return (jalview.binding.AnnotationElement[]) this._annotationElementList.toArray(array);
+    }
+
+    /**
+     * Method getAnnotationElementCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getAnnotationElementCount(
+    ) {
+        return this._annotationElementList.size();
+    }
+
+    /**
+     * Returns the value of field 'description'.
+     * 
+     * @return the value of field 'Description'.
+     */
+    public java.lang.String getDescription(
+    ) {
+        return this._description;
+    }
+
+    /**
+     * Returns the value of field 'graph'.
+     * 
+     * @return the value of field 'Graph'.
+     */
+    public boolean getGraph(
+    ) {
+        return this._graph;
+    }
+
+    /**
+     * Returns the value of field 'graphType'.
+     * 
+     * @return the value of field 'GraphType'.
+     */
+    public int getGraphType(
+    ) {
+        return this._graphType;
+    }
+
+    /**
+     * Returns the value of field 'label'.
+     * 
+     * @return the value of field 'Label'.
+     */
+    public java.lang.String getLabel(
+    ) {
+        return this._label;
+    }
+
+    /**
+     * Method hasGraph.
+     * 
+     * @return true if at least one Graph has been added
+     */
+    public boolean hasGraph(
+    ) {
+        return this._has_graph;
+    }
+
+    /**
+     * Method hasGraphType.
+     * 
+     * @return true if at least one GraphType has been added
+     */
+    public boolean hasGraphType(
+    ) {
+        return this._has_graphType;
+    }
+
+    /**
+     * Returns the value of field 'graph'.
+     * 
+     * @return the value of field 'Graph'.
+     */
+    public boolean isGraph(
+    ) {
+        return this._graph;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllAnnotationElement(
+    ) {
+        this._annotationElementList.clear();
+    }
+
+    /**
+     * Method removeAnnotationElement.
+     * 
+     * @param vAnnotationElement
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeAnnotationElement(
+            final jalview.binding.AnnotationElement vAnnotationElement) {
+        boolean removed = _annotationElementList.remove(vAnnotationElement);
+        return removed;
+    }
+
+    /**
+     * Method removeAnnotationElementAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.AnnotationElement removeAnnotationElementAt(
+            final int index) {
+        java.lang.Object obj = this._annotationElementList.remove(index);
+        return (jalview.binding.AnnotationElement) obj;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vAnnotationElement
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setAnnotationElement(
+            final int index,
+            final jalview.binding.AnnotationElement vAnnotationElement)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._annotationElementList.size()) {
+            throw new IndexOutOfBoundsException("setAnnotationElement: Index value '" + index + "' not in range [0.." + (this._annotationElementList.size() - 1) + "]");
+        }
+        
+        this._annotationElementList.set(index, vAnnotationElement);
+    }
+
+    /**
+     * 
+     * 
+     * @param vAnnotationElementArray
+     */
+    public void setAnnotationElement(
+            final jalview.binding.AnnotationElement[] vAnnotationElementArray) {
+        //-- copy array
+        _annotationElementList.clear();
+        
+        for (int i = 0; i < vAnnotationElementArray.length; i++) {
+                this._annotationElementList.add(vAnnotationElementArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'description'.
+     * 
+     * @param description the value of field 'description'.
+     */
+    public void setDescription(
+            final java.lang.String description) {
+        this._description = description;
+    }
+
+    /**
+     * Sets the value of field 'graph'.
+     * 
+     * @param graph the value of field 'graph'.
+     */
+    public void setGraph(
+            final boolean graph) {
+        this._graph = graph;
+        this._has_graph = true;
+    }
+
+    /**
+     * Sets the value of field 'graphType'.
+     * 
+     * @param graphType the value of field 'graphType'.
+     */
+    public void setGraphType(
+            final int graphType) {
+        this._graphType = graphType;
+        this._has_graphType = true;
+    }
+
+    /**
+     * Sets the value of field 'label'.
+     * 
+     * @param label the value of field 'label'.
+     */
+    public void setLabel(
+            final java.lang.String label) {
+        this._label = label;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.Annotation
+     */
+    public static jalview.binding.Annotation unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.Annotation) Unmarshaller.unmarshal(jalview.binding.Annotation.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-  }
-
-  /**
-   * Sets the value of field 'description'.
-   * 
-   * @param description
-   *          the value of field 'description'.
-   */
-  public void setDescription(final java.lang.String description)
-  {
-    this._description = description;
-  }
-
-  /**
-   * Sets the value of field 'graph'.
-   * 
-   * @param graph
-   *          the value of field 'graph'.
-   */
-  public void setGraph(final boolean graph)
-  {
-    this._graph = graph;
-    this._has_graph = true;
-  }
-
-  /**
-   * Sets the value of field 'graphType'.
-   * 
-   * @param graphType
-   *          the value of field 'graphType'.
-   */
-  public void setGraphType(final int graphType)
-  {
-    this._graphType = graphType;
-    this._has_graphType = true;
-  }
-
-  /**
-   * Sets the value of field 'label'.
-   * 
-   * @param label
-   *          the value of field 'label'.
-   */
-  public void setLabel(final java.lang.String label)
-  {
-    this._label = label;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.Annotation
-   */
-  public static jalview.binding.Annotation unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.Annotation) Unmarshaller.unmarshal(
-            jalview.binding.Annotation.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
index 7bd3d43..d133fe0 100644 (file)
@@ -1,27 +1,14 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-//---------------------------------/
-//- Imported classes and packages -/
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
@@ -32,287 +19,273 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class AnnotationElement implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _position.
-   */
-  private int _position;
-
-  /**
-   * keeps track of state for field: _position
-   */
-  private boolean _has_position;
-
-  /**
-   * Field _displayCharacter.
-   */
-  private java.lang.String _displayCharacter;
-
-  /**
-   * Field _description.
-   */
-  private java.lang.String _description;
-
-  /**
-   * Field _secondaryStructure.
-   */
-  private java.lang.String _secondaryStructure;
-
-  /**
-   * Field _value.
-   */
-  private float _value;
-
-  /**
-   * keeps track of state for field: _value
-   */
-  private boolean _has_value;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public AnnotationElement()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
+public class AnnotationElement implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _position.
+     */
+    private int _position;
+
+    /**
+     * keeps track of state for field: _position
+     */
+    private boolean _has_position;
+
+    /**
+     * Field _displayCharacter.
+     */
+    private java.lang.String _displayCharacter;
+
+    /**
+     * Field _description.
+     */
+    private java.lang.String _description;
+
+    /**
+     * Field _secondaryStructure.
+     */
+    private java.lang.String _secondaryStructure;
+
+    /**
+     * Field _value.
+     */
+    private float _value;
+
+    /**
+     * keeps track of state for field: _value
+     */
+    private boolean _has_value;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public AnnotationElement() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deletePosition(
+    ) {
+        this._has_position= false;
+    }
+
+    /**
+     */
+    public void deleteValue(
+    ) {
+        this._has_value= false;
+    }
+
+    /**
+     * Returns the value of field 'description'.
+     * 
+     * @return the value of field 'Description'.
+     */
+    public java.lang.String getDescription(
+    ) {
+        return this._description;
+    }
+
+    /**
+     * Returns the value of field 'displayCharacter'.
+     * 
+     * @return the value of field 'DisplayCharacter'.
+     */
+    public java.lang.String getDisplayCharacter(
+    ) {
+        return this._displayCharacter;
+    }
+
+    /**
+     * Returns the value of field 'position'.
+     * 
+     * @return the value of field 'Position'.
      */
-  public void deletePosition()
-  {
-    this._has_position = false;
-  }
+    public int getPosition(
+    ) {
+        return this._position;
+    }
+
+    /**
+     * Returns the value of field 'secondaryStructure'.
+     * 
+     * @return the value of field 'SecondaryStructure'.
+     */
+    public java.lang.String getSecondaryStructure(
+    ) {
+        return this._secondaryStructure;
+    }
+
+    /**
+     * Returns the value of field 'value'.
+     * 
+     * @return the value of field 'Value'.
+     */
+    public float getValue(
+    ) {
+        return this._value;
+    }
+
+    /**
+     * Method hasPosition.
+     * 
+     * @return true if at least one Position has been added
+     */
+    public boolean hasPosition(
+    ) {
+        return this._has_position;
+    }
+
+    /**
+     * Method hasValue.
+     * 
+     * @return true if at least one Value has been added
+     */
+    public boolean hasValue(
+    ) {
+        return this._has_value;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'description'.
+     * 
+     * @param description the value of field 'description'.
+     */
+    public void setDescription(
+            final java.lang.String description) {
+        this._description = description;
+    }
+
+    /**
+     * Sets the value of field 'displayCharacter'.
+     * 
+     * @param displayCharacter the value of field 'displayCharacter'
+     */
+    public void setDisplayCharacter(
+            final java.lang.String displayCharacter) {
+        this._displayCharacter = displayCharacter;
+    }
+
+    /**
+     * Sets the value of field 'position'.
+     * 
+     * @param position the value of field 'position'.
+     */
+    public void setPosition(
+            final int position) {
+        this._position = position;
+        this._has_position = true;
+    }
+
+    /**
+     * Sets the value of field 'secondaryStructure'.
+     * 
+     * @param secondaryStructure the value of field
+     * 'secondaryStructure'.
+     */
+    public void setSecondaryStructure(
+            final java.lang.String secondaryStructure) {
+        this._secondaryStructure = secondaryStructure;
+    }
+
+    /**
+     * Sets the value of field 'value'.
+     * 
+     * @param value the value of field 'value'.
+     */
+    public void setValue(
+            final float value) {
+        this._value = value;
+        this._has_value = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.AnnotationElement
+     */
+    public static jalview.binding.AnnotationElement unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.AnnotationElement) Unmarshaller.unmarshal(jalview.binding.AnnotationElement.class, reader);
+    }
 
-  /**
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
      */
-  public void deleteValue()
-  {
-    this._has_value = false;
-  }
-
-  /**
-   * Returns the value of field 'description'.
-   * 
-   * @return the value of field 'Description'.
-   */
-  public java.lang.String getDescription()
-  {
-    return this._description;
-  }
-
-  /**
-   * Returns the value of field 'displayCharacter'.
-   * 
-   * @return the value of field 'DisplayCharacter'.
-   */
-  public java.lang.String getDisplayCharacter()
-  {
-    return this._displayCharacter;
-  }
-
-  /**
-   * Returns the value of field 'position'.
-   * 
-   * @return the value of field 'Position'.
-   */
-  public int getPosition()
-  {
-    return this._position;
-  }
-
-  /**
-   * Returns the value of field 'secondaryStructure'.
-   * 
-   * @return the value of field 'SecondaryStructure'.
-   */
-  public java.lang.String getSecondaryStructure()
-  {
-    return this._secondaryStructure;
-  }
-
-  /**
-   * Returns the value of field 'value'.
-   * 
-   * @return the value of field 'Value'.
-   */
-  public float getValue()
-  {
-    return this._value;
-  }
-
-  /**
-   * Method hasPosition.
-   * 
-   * @return true if at least one Position has been added
-   */
-  public boolean hasPosition()
-  {
-    return this._has_position;
-  }
-
-  /**
-   * Method hasValue.
-   * 
-   * @return true if at least one Value has been added
-   */
-  public boolean hasValue()
-  {
-    return this._has_value;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'description'.
-   * 
-   * @param description
-   *          the value of field 'description'.
-   */
-  public void setDescription(final java.lang.String description)
-  {
-    this._description = description;
-  }
-
-  /**
-   * Sets the value of field 'displayCharacter'.
-   * 
-   * @param displayCharacter
-   *          the value of field 'displayCharacter'
-   */
-  public void setDisplayCharacter(final java.lang.String displayCharacter)
-  {
-    this._displayCharacter = displayCharacter;
-  }
-
-  /**
-   * Sets the value of field 'position'.
-   * 
-   * @param position
-   *          the value of field 'position'.
-   */
-  public void setPosition(final int position)
-  {
-    this._position = position;
-    this._has_position = true;
-  }
-
-  /**
-   * Sets the value of field 'secondaryStructure'.
-   * 
-   * @param secondaryStructure
-   *          the value of field 'secondaryStructure'.
-   */
-  public void setSecondaryStructure(
-          final java.lang.String secondaryStructure)
-  {
-    this._secondaryStructure = secondaryStructure;
-  }
-
-  /**
-   * Sets the value of field 'value'.
-   * 
-   * @param value
-   *          the value of field 'value'.
-   */
-  public void setValue(final float value)
-  {
-    this._value = value;
-    this._has_value = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.AnnotationElement
-   */
-  public static jalview.binding.AnnotationElement unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.AnnotationElement) Unmarshaller.unmarshal(
-            jalview.binding.AnnotationElement.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
index f761ac1..c041723 100644 (file)
@@ -1,27 +1,14 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-//---------------------------------/
-//- Imported classes and packages -/
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
@@ -32,480 +19,465 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Colour implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _name.
-   */
-  private java.lang.String _name;
-
-  /**
-   * Field _RGB.
-   */
-  private java.lang.String _RGB;
-
-  /**
-   * Field _minRGB.
-   */
-  private java.lang.String _minRGB;
-
-  /**
-   * loosely specified enumeration: NONE,ABOVE, or BELOW
-   */
-  private java.lang.String _threshType;
-
-  /**
-   * Field _threshold.
-   */
-  private float _threshold;
-
-  /**
-   * keeps track of state for field: _threshold
-   */
-  private boolean _has_threshold;
-
-  /**
-   * Field _max.
-   */
-  private float _max;
-
-  /**
-   * keeps track of state for field: _max
-   */
-  private boolean _has_max;
-
-  /**
-   * Field _min.
-   */
-  private float _min;
-
-  /**
-   * keeps track of state for field: _min
-   */
-  private boolean _has_min;
-
-  /**
-   * Field _colourByLabel.
-   */
-  private boolean _colourByLabel;
-
-  /**
-   * keeps track of state for field: _colourByLabel
-   */
-  private boolean _has_colourByLabel;
-
-  /**
-   * Field _autoScale.
-   */
-  private boolean _autoScale;
-
-  /**
-   * keeps track of state for field: _autoScale
-   */
-  private boolean _has_autoScale;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Colour()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-     */
-  public void deleteAutoScale()
-  {
-    this._has_autoScale = false;
-  }
-
-  /**
-     */
-  public void deleteColourByLabel()
-  {
-    this._has_colourByLabel = false;
-  }
-
-  /**
-     */
-  public void deleteMax()
-  {
-    this._has_max = false;
-  }
-
-  /**
-     */
-  public void deleteMin()
-  {
-    this._has_min = false;
-  }
-
-  /**
-     */
-  public void deleteThreshold()
-  {
-    this._has_threshold = false;
-  }
-
-  /**
-   * Returns the value of field 'autoScale'.
-   * 
-   * @return the value of field 'AutoScale'.
-   */
-  public boolean getAutoScale()
-  {
-    return this._autoScale;
-  }
-
-  /**
-   * Returns the value of field 'colourByLabel'.
-   * 
-   * @return the value of field 'ColourByLabel'.
-   */
-  public boolean getColourByLabel()
-  {
-    return this._colourByLabel;
-  }
-
-  /**
-   * Returns the value of field 'max'.
-   * 
-   * @return the value of field 'Max'.
-   */
-  public float getMax()
-  {
-    return this._max;
-  }
-
-  /**
-   * Returns the value of field 'min'.
-   * 
-   * @return the value of field 'Min'.
-   */
-  public float getMin()
-  {
-    return this._min;
-  }
-
-  /**
-   * Returns the value of field 'minRGB'.
-   * 
-   * @return the value of field 'MinRGB'.
-   */
-  public java.lang.String getMinRGB()
-  {
-    return this._minRGB;
-  }
-
-  /**
-   * Returns the value of field 'name'.
-   * 
-   * @return the value of field 'Name'.
-   */
-  public java.lang.String getName()
-  {
-    return this._name;
-  }
-
-  /**
-   * Returns the value of field 'RGB'.
-   * 
-   * @return the value of field 'RGB'.
-   */
-  public java.lang.String getRGB()
-  {
-    return this._RGB;
-  }
-
-  /**
-   * Returns the value of field 'threshType'. The field 'threshType' has the
-   * following description: loosely specified enumeration: NONE,ABOVE, or BELOW
-   * 
-   * @return the value of field 'ThreshType'.
-   */
-  public java.lang.String getThreshType()
-  {
-    return this._threshType;
-  }
-
-  /**
-   * Returns the value of field 'threshold'.
-   * 
-   * @return the value of field 'Threshold'.
-   */
-  public float getThreshold()
-  {
-    return this._threshold;
-  }
-
-  /**
-   * Method hasAutoScale.
-   * 
-   * @return true if at least one AutoScale has been added
-   */
-  public boolean hasAutoScale()
-  {
-    return this._has_autoScale;
-  }
-
-  /**
-   * Method hasColourByLabel.
-   * 
-   * @return true if at least one ColourByLabel has been added
-   */
-  public boolean hasColourByLabel()
-  {
-    return this._has_colourByLabel;
-  }
-
-  /**
-   * Method hasMax.
-   * 
-   * @return true if at least one Max has been added
-   */
-  public boolean hasMax()
-  {
-    return this._has_max;
-  }
-
-  /**
-   * Method hasMin.
-   * 
-   * @return true if at least one Min has been added
-   */
-  public boolean hasMin()
-  {
-    return this._has_min;
-  }
-
-  /**
-   * Method hasThreshold.
-   * 
-   * @return true if at least one Threshold has been added
-   */
-  public boolean hasThreshold()
-  {
-    return this._has_threshold;
-  }
-
-  /**
-   * Returns the value of field 'autoScale'.
-   * 
-   * @return the value of field 'AutoScale'.
-   */
-  public boolean isAutoScale()
-  {
-    return this._autoScale;
-  }
-
-  /**
-   * Returns the value of field 'colourByLabel'.
-   * 
-   * @return the value of field 'ColourByLabel'.
-   */
-  public boolean isColourByLabel()
-  {
-    return this._colourByLabel;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'autoScale'.
-   * 
-   * @param autoScale
-   *          the value of field 'autoScale'.
-   */
-  public void setAutoScale(final boolean autoScale)
-  {
-    this._autoScale = autoScale;
-    this._has_autoScale = true;
-  }
-
-  /**
-   * Sets the value of field 'colourByLabel'.
-   * 
-   * @param colourByLabel
-   *          the value of field 'colourByLabel'.
-   */
-  public void setColourByLabel(final boolean colourByLabel)
-  {
-    this._colourByLabel = colourByLabel;
-    this._has_colourByLabel = true;
-  }
-
-  /**
-   * Sets the value of field 'max'.
-   * 
-   * @param max
-   *          the value of field 'max'.
-   */
-  public void setMax(final float max)
-  {
-    this._max = max;
-    this._has_max = true;
-  }
-
-  /**
-   * Sets the value of field 'min'.
-   * 
-   * @param min
-   *          the value of field 'min'.
-   */
-  public void setMin(final float min)
-  {
-    this._min = min;
-    this._has_min = true;
-  }
-
-  /**
-   * Sets the value of field 'minRGB'.
-   * 
-   * @param minRGB
-   *          the value of field 'minRGB'.
-   */
-  public void setMinRGB(final java.lang.String minRGB)
-  {
-    this._minRGB = minRGB;
-  }
-
-  /**
-   * Sets the value of field 'name'.
-   * 
-   * @param name
-   *          the value of field 'name'.
-   */
-  public void setName(final java.lang.String name)
-  {
-    this._name = name;
-  }
-
-  /**
-   * Sets the value of field 'RGB'.
-   * 
-   * @param RGB
-   *          the value of field 'RGB'.
-   */
-  public void setRGB(final java.lang.String RGB)
-  {
-    this._RGB = RGB;
-  }
-
-  /**
-   * Sets the value of field 'threshType'. The field 'threshType' has the
-   * following description: loosely specified enumeration: NONE,ABOVE, or BELOW
-   * 
-   * @param threshType
-   *          the value of field 'threshType'.
-   */
-  public void setThreshType(final java.lang.String threshType)
-  {
-    this._threshType = threshType;
-  }
-
-  /**
-   * Sets the value of field 'threshold'.
-   * 
-   * @param threshold
-   *          the value of field 'threshold'.
-   */
-  public void setThreshold(final float threshold)
-  {
-    this._threshold = threshold;
-    this._has_threshold = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.Colour
-   */
-  public static jalview.binding.Colour unmarshal(final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.Colour) Unmarshaller.unmarshal(
-            jalview.binding.Colour.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class Colour implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _name.
+     */
+    private java.lang.String _name;
+
+    /**
+     * Field _RGB.
+     */
+    private java.lang.String _RGB;
+
+    /**
+     * Field _minRGB.
+     */
+    private java.lang.String _minRGB;
+
+    /**
+     * loosely specified enumeration: NONE,ABOVE, or BELOW
+     */
+    private java.lang.String _threshType;
+
+    /**
+     * Field _threshold.
+     */
+    private float _threshold;
+
+    /**
+     * keeps track of state for field: _threshold
+     */
+    private boolean _has_threshold;
+
+    /**
+     * Field _max.
+     */
+    private float _max;
+
+    /**
+     * keeps track of state for field: _max
+     */
+    private boolean _has_max;
+
+    /**
+     * Field _min.
+     */
+    private float _min;
+
+    /**
+     * keeps track of state for field: _min
+     */
+    private boolean _has_min;
+
+    /**
+     * Field _colourByLabel.
+     */
+    private boolean _colourByLabel;
+
+    /**
+     * keeps track of state for field: _colourByLabel
+     */
+    private boolean _has_colourByLabel;
+
+    /**
+     * Field _autoScale.
+     */
+    private boolean _autoScale;
+
+    /**
+     * keeps track of state for field: _autoScale
+     */
+    private boolean _has_autoScale;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Colour() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deleteAutoScale(
+    ) {
+        this._has_autoScale= false;
+    }
+
+    /**
+     */
+    public void deleteColourByLabel(
+    ) {
+        this._has_colourByLabel= false;
+    }
+
+    /**
+     */
+    public void deleteMax(
+    ) {
+        this._has_max= false;
+    }
+
+    /**
+     */
+    public void deleteMin(
+    ) {
+        this._has_min= false;
+    }
+
+    /**
+     */
+    public void deleteThreshold(
+    ) {
+        this._has_threshold= false;
+    }
+
+    /**
+     * Returns the value of field 'autoScale'.
+     * 
+     * @return the value of field 'AutoScale'.
+     */
+    public boolean getAutoScale(
+    ) {
+        return this._autoScale;
+    }
+
+    /**
+     * Returns the value of field 'colourByLabel'.
+     * 
+     * @return the value of field 'ColourByLabel'.
+     */
+    public boolean getColourByLabel(
+    ) {
+        return this._colourByLabel;
+    }
+
+    /**
+     * Returns the value of field 'max'.
+     * 
+     * @return the value of field 'Max'.
+     */
+    public float getMax(
+    ) {
+        return this._max;
+    }
+
+    /**
+     * Returns the value of field 'min'.
+     * 
+     * @return the value of field 'Min'.
+     */
+    public float getMin(
+    ) {
+        return this._min;
+    }
+
+    /**
+     * Returns the value of field 'minRGB'.
+     * 
+     * @return the value of field 'MinRGB'.
+     */
+    public java.lang.String getMinRGB(
+    ) {
+        return this._minRGB;
+    }
+
+    /**
+     * Returns the value of field 'name'.
+     * 
+     * @return the value of field 'Name'.
+     */
+    public java.lang.String getName(
+    ) {
+        return this._name;
+    }
+
+    /**
+     * Returns the value of field 'RGB'.
+     * 
+     * @return the value of field 'RGB'.
+     */
+    public java.lang.String getRGB(
+    ) {
+        return this._RGB;
+    }
+
+    /**
+     * Returns the value of field 'threshType'. The field
+     * 'threshType' has the following description: loosely
+     * specified enumeration: NONE,ABOVE, or BELOW
+     * 
+     * @return the value of field 'ThreshType'.
+     */
+    public java.lang.String getThreshType(
+    ) {
+        return this._threshType;
+    }
+
+    /**
+     * Returns the value of field 'threshold'.
+     * 
+     * @return the value of field 'Threshold'.
+     */
+    public float getThreshold(
+    ) {
+        return this._threshold;
+    }
+
+    /**
+     * Method hasAutoScale.
+     * 
+     * @return true if at least one AutoScale has been added
+     */
+    public boolean hasAutoScale(
+    ) {
+        return this._has_autoScale;
+    }
+
+    /**
+     * Method hasColourByLabel.
+     * 
+     * @return true if at least one ColourByLabel has been added
+     */
+    public boolean hasColourByLabel(
+    ) {
+        return this._has_colourByLabel;
+    }
+
+    /**
+     * Method hasMax.
+     * 
+     * @return true if at least one Max has been added
+     */
+    public boolean hasMax(
+    ) {
+        return this._has_max;
+    }
+
+    /**
+     * Method hasMin.
+     * 
+     * @return true if at least one Min has been added
+     */
+    public boolean hasMin(
+    ) {
+        return this._has_min;
+    }
+
+    /**
+     * Method hasThreshold.
+     * 
+     * @return true if at least one Threshold has been added
+     */
+    public boolean hasThreshold(
+    ) {
+        return this._has_threshold;
+    }
+
+    /**
+     * Returns the value of field 'autoScale'.
+     * 
+     * @return the value of field 'AutoScale'.
+     */
+    public boolean isAutoScale(
+    ) {
+        return this._autoScale;
+    }
+
+    /**
+     * Returns the value of field 'colourByLabel'.
+     * 
+     * @return the value of field 'ColourByLabel'.
+     */
+    public boolean isColourByLabel(
+    ) {
+        return this._colourByLabel;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'autoScale'.
+     * 
+     * @param autoScale the value of field 'autoScale'.
+     */
+    public void setAutoScale(
+            final boolean autoScale) {
+        this._autoScale = autoScale;
+        this._has_autoScale = true;
+    }
+
+    /**
+     * Sets the value of field 'colourByLabel'.
+     * 
+     * @param colourByLabel the value of field 'colourByLabel'.
+     */
+    public void setColourByLabel(
+            final boolean colourByLabel) {
+        this._colourByLabel = colourByLabel;
+        this._has_colourByLabel = true;
+    }
+
+    /**
+     * Sets the value of field 'max'.
+     * 
+     * @param max the value of field 'max'.
+     */
+    public void setMax(
+            final float max) {
+        this._max = max;
+        this._has_max = true;
+    }
+
+    /**
+     * Sets the value of field 'min'.
+     * 
+     * @param min the value of field 'min'.
+     */
+    public void setMin(
+            final float min) {
+        this._min = min;
+        this._has_min = true;
+    }
+
+    /**
+     * Sets the value of field 'minRGB'.
+     * 
+     * @param minRGB the value of field 'minRGB'.
+     */
+    public void setMinRGB(
+            final java.lang.String minRGB) {
+        this._minRGB = minRGB;
+    }
+
+    /**
+     * Sets the value of field 'name'.
+     * 
+     * @param name the value of field 'name'.
+     */
+    public void setName(
+            final java.lang.String name) {
+        this._name = name;
+    }
+
+    /**
+     * Sets the value of field 'RGB'.
+     * 
+     * @param RGB the value of field 'RGB'.
+     */
+    public void setRGB(
+            final java.lang.String RGB) {
+        this._RGB = RGB;
+    }
+
+    /**
+     * Sets the value of field 'threshType'. The field 'threshType'
+     * has the following description: loosely specified
+     * enumeration: NONE,ABOVE, or BELOW
+     * 
+     * @param threshType the value of field 'threshType'.
+     */
+    public void setThreshType(
+            final java.lang.String threshType) {
+        this._threshType = threshType;
+    }
+
+    /**
+     * Sets the value of field 'threshold'.
+     * 
+     * @param threshold the value of field 'threshold'.
+     */
+    public void setThreshold(
+            final float threshold) {
+        this._threshold = threshold;
+        this._has_threshold = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.Colour
+     */
+    public static jalview.binding.Colour unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.Colour) Unmarshaller.unmarshal(jalview.binding.Colour.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
index ccc0d82..d429df3 100644 (file)
@@ -1,27 +1,14 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-//---------------------------------/
-//- Imported classes and packages -/
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
@@ -32,286 +19,272 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Feature implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _begin.
-   */
-  private int _begin;
-
-  /**
-   * keeps track of state for field: _begin
-   */
-  private boolean _has_begin;
-
-  /**
-   * Field _end.
-   */
-  private int _end;
-
-  /**
-   * keeps track of state for field: _end
-   */
-  private boolean _has_end;
-
-  /**
-   * Field _type.
-   */
-  private java.lang.String _type;
-
-  /**
-   * Field _description.
-   */
-  private java.lang.String _description;
-
-  /**
-   * Field _status.
-   */
-  private java.lang.String _status;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Feature()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
+public class Feature implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _begin.
+     */
+    private int _begin;
+
+    /**
+     * keeps track of state for field: _begin
+     */
+    private boolean _has_begin;
+
+    /**
+     * Field _end.
+     */
+    private int _end;
+
+    /**
+     * keeps track of state for field: _end
+     */
+    private boolean _has_end;
+
+    /**
+     * Field _type.
+     */
+    private java.lang.String _type;
+
+    /**
+     * Field _description.
+     */
+    private java.lang.String _description;
+
+    /**
+     * Field _status.
+     */
+    private java.lang.String _status;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Feature() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deleteBegin(
+    ) {
+        this._has_begin= false;
+    }
+
+    /**
+     */
+    public void deleteEnd(
+    ) {
+        this._has_end= false;
+    }
+
+    /**
+     * Returns the value of field 'begin'.
+     * 
+     * @return the value of field 'Begin'.
+     */
+    public int getBegin(
+    ) {
+        return this._begin;
+    }
+
+    /**
+     * Returns the value of field 'description'.
+     * 
+     * @return the value of field 'Description'.
+     */
+    public java.lang.String getDescription(
+    ) {
+        return this._description;
+    }
+
+    /**
+     * Returns the value of field 'end'.
+     * 
+     * @return the value of field 'End'.
      */
-  public void deleteBegin()
-  {
-    this._has_begin = false;
-  }
+    public int getEnd(
+    ) {
+        return this._end;
+    }
+
+    /**
+     * Returns the value of field 'status'.
+     * 
+     * @return the value of field 'Status'.
+     */
+    public java.lang.String getStatus(
+    ) {
+        return this._status;
+    }
+
+    /**
+     * Returns the value of field 'type'.
+     * 
+     * @return the value of field 'Type'.
+     */
+    public java.lang.String getType(
+    ) {
+        return this._type;
+    }
+
+    /**
+     * Method hasBegin.
+     * 
+     * @return true if at least one Begin has been added
+     */
+    public boolean hasBegin(
+    ) {
+        return this._has_begin;
+    }
+
+    /**
+     * Method hasEnd.
+     * 
+     * @return true if at least one End has been added
+     */
+    public boolean hasEnd(
+    ) {
+        return this._has_end;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'begin'.
+     * 
+     * @param begin the value of field 'begin'.
+     */
+    public void setBegin(
+            final int begin) {
+        this._begin = begin;
+        this._has_begin = true;
+    }
+
+    /**
+     * Sets the value of field 'description'.
+     * 
+     * @param description the value of field 'description'.
+     */
+    public void setDescription(
+            final java.lang.String description) {
+        this._description = description;
+    }
+
+    /**
+     * Sets the value of field 'end'.
+     * 
+     * @param end the value of field 'end'.
+     */
+    public void setEnd(
+            final int end) {
+        this._end = end;
+        this._has_end = true;
+    }
+
+    /**
+     * Sets the value of field 'status'.
+     * 
+     * @param status the value of field 'status'.
+     */
+    public void setStatus(
+            final java.lang.String status) {
+        this._status = status;
+    }
+
+    /**
+     * Sets the value of field 'type'.
+     * 
+     * @param type the value of field 'type'.
+     */
+    public void setType(
+            final java.lang.String type) {
+        this._type = type;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.Feature
+     */
+    public static jalview.binding.Feature unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.Feature) Unmarshaller.unmarshal(jalview.binding.Feature.class, reader);
+    }
 
-  /**
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
      */
-  public void deleteEnd()
-  {
-    this._has_end = false;
-  }
-
-  /**
-   * Returns the value of field 'begin'.
-   * 
-   * @return the value of field 'Begin'.
-   */
-  public int getBegin()
-  {
-    return this._begin;
-  }
-
-  /**
-   * Returns the value of field 'description'.
-   * 
-   * @return the value of field 'Description'.
-   */
-  public java.lang.String getDescription()
-  {
-    return this._description;
-  }
-
-  /**
-   * Returns the value of field 'end'.
-   * 
-   * @return the value of field 'End'.
-   */
-  public int getEnd()
-  {
-    return this._end;
-  }
-
-  /**
-   * Returns the value of field 'status'.
-   * 
-   * @return the value of field 'Status'.
-   */
-  public java.lang.String getStatus()
-  {
-    return this._status;
-  }
-
-  /**
-   * Returns the value of field 'type'.
-   * 
-   * @return the value of field 'Type'.
-   */
-  public java.lang.String getType()
-  {
-    return this._type;
-  }
-
-  /**
-   * Method hasBegin.
-   * 
-   * @return true if at least one Begin has been added
-   */
-  public boolean hasBegin()
-  {
-    return this._has_begin;
-  }
-
-  /**
-   * Method hasEnd.
-   * 
-   * @return true if at least one End has been added
-   */
-  public boolean hasEnd()
-  {
-    return this._has_end;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'begin'.
-   * 
-   * @param begin
-   *          the value of field 'begin'.
-   */
-  public void setBegin(final int begin)
-  {
-    this._begin = begin;
-    this._has_begin = true;
-  }
-
-  /**
-   * Sets the value of field 'description'.
-   * 
-   * @param description
-   *          the value of field 'description'.
-   */
-  public void setDescription(final java.lang.String description)
-  {
-    this._description = description;
-  }
-
-  /**
-   * Sets the value of field 'end'.
-   * 
-   * @param end
-   *          the value of field 'end'.
-   */
-  public void setEnd(final int end)
-  {
-    this._end = end;
-    this._has_end = true;
-  }
-
-  /**
-   * Sets the value of field 'status'.
-   * 
-   * @param status
-   *          the value of field 'status'.
-   */
-  public void setStatus(final java.lang.String status)
-  {
-    this._status = status;
-  }
-
-  /**
-   * Sets the value of field 'type'.
-   * 
-   * @param type
-   *          the value of field 'type'.
-   */
-  public void setType(final java.lang.String type)
-  {
-    this._type = type;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.Feature
-   */
-  public static jalview.binding.Feature unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.Feature) Unmarshaller.unmarshal(
-            jalview.binding.Feature.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
index 0ce377c..f3d06be 100644 (file)
@@ -1,31 +1,16 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-//---------------------------------/
-//- Imported classes and packages -/
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
 
-import jalview.util.MessageManager;
-
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
 
@@ -34,275 +19,257 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class FeatureSettings implements java.io.Serializable
-{
+public class FeatureSettings implements java.io.Serializable {
 
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
 
-  /**
-   * Field _settingList.
-   */
-  private java.util.Vector _settingList;
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
 
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
+    /**
+     * Field _settingList.
+     */
+    private java.util.Vector _settingList;
 
-  public FeatureSettings()
-  {
-    super();
-    this._settingList = new java.util.Vector();
-  }
 
-  // -----------/
-  // - Methods -/
-  // -----------/
+      //----------------/
+     //- Constructors -/
+    //----------------/
 
-  /**
-   * 
-   * 
-   * @param vSetting
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addSetting(final jalview.binding.Setting vSetting)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._settingList.addElement(vSetting);
-  }
+    public FeatureSettings() {
+        super();
+        this._settingList = new java.util.Vector();
+    }
 
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSetting
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addSetting(final int index,
-          final jalview.binding.Setting vSetting)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._settingList.add(index, vSetting);
-  }
 
-  /**
-   * Method enumerateSetting.
-   * 
-   * @return an Enumeration over all jalview.binding.Setting elements
-   */
-  public java.util.Enumeration enumerateSetting()
-  {
-    return this._settingList.elements();
-  }
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-  /**
-   * Method getSetting.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.Setting at the given index
-   */
-  public jalview.binding.Setting getSetting(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._settingList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                         "getSetting",
-                         Integer.valueOf(index).toString(),
-                         Integer.valueOf((this._settingList.size() - 1)).toString()
-          }));         
+    /**
+     * 
+     * 
+     * @param vSetting
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSetting(
+            final jalview.binding.Setting vSetting)
+    throws java.lang.IndexOutOfBoundsException {
+        this._settingList.addElement(vSetting);
     }
 
-    return (jalview.binding.Setting) _settingList.get(index);
-  }
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSetting
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSetting(
+            final int index,
+            final jalview.binding.Setting vSetting)
+    throws java.lang.IndexOutOfBoundsException {
+        this._settingList.add(index, vSetting);
+    }
 
-  /**
-   * Method getSetting.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.Setting[] getSetting()
-  {
-    jalview.binding.Setting[] array = new jalview.binding.Setting[0];
-    return (jalview.binding.Setting[]) this._settingList.toArray(array);
-  }
+    /**
+     * Method enumerateSetting.
+     * 
+     * @return an Enumeration over all jalview.binding.Setting
+     * elements
+     */
+    public java.util.Enumeration enumerateSetting(
+    ) {
+        return this._settingList.elements();
+    }
 
-  /**
-   * Method getSettingCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getSettingCount()
-  {
-    return this._settingList.size();
-  }
+    /**
+     * Method getSetting.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.Setting at the
+     * given index
+     */
+    public jalview.binding.Setting getSetting(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._settingList.size()) {
+            throw new IndexOutOfBoundsException("getSetting: Index value '" + index + "' not in range [0.." + (this._settingList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.Setting) _settingList.get(index);
+    }
 
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+    /**
+     * Method getSetting.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.Setting[] getSetting(
+    ) {
+        jalview.binding.Setting[] array = new jalview.binding.Setting[0];
+        return (jalview.binding.Setting[]) this._settingList.toArray(array);
     }
-    return true;
-  }
 
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
+    /**
+     * Method getSettingCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getSettingCount(
+    ) {
+        return this._settingList.size();
+    }
 
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
 
-  /**
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
      */
-  public void removeAllSetting()
-  {
-    this._settingList.clear();
-  }
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
 
-  /**
-   * Method removeSetting.
-   * 
-   * @param vSetting
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeSetting(final jalview.binding.Setting vSetting)
-  {
-    boolean removed = _settingList.remove(vSetting);
-    return removed;
-  }
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
 
-  /**
-   * Method removeSettingAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.Setting removeSettingAt(final int index)
-  {
-    java.lang.Object obj = this._settingList.remove(index);
-    return (jalview.binding.Setting) obj;
-  }
+    /**
+     */
+    public void removeAllSetting(
+    ) {
+        this._settingList.clear();
+    }
 
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSetting
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void setSetting(final int index,
-          final jalview.binding.Setting vSetting)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._settingList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                 "setSetting",
-                 Integer.valueOf(index).toString(),
-                 Integer.valueOf((this._settingList.size() - 1)).toString()
-        }));           
+    /**
+     * Method removeSetting.
+     * 
+     * @param vSetting
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeSetting(
+            final jalview.binding.Setting vSetting) {
+        boolean removed = _settingList.remove(vSetting);
+        return removed;
     }
 
-    this._settingList.set(index, vSetting);
-  }
+    /**
+     * Method removeSettingAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.Setting removeSettingAt(
+            final int index) {
+        java.lang.Object obj = this._settingList.remove(index);
+        return (jalview.binding.Setting) obj;
+    }
 
-  /**
-   * 
-   * 
-   * @param vSettingArray
-   */
-  public void setSetting(final jalview.binding.Setting[] vSettingArray)
-  {
-    // -- copy array
-    _settingList.clear();
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSetting
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setSetting(
+            final int index,
+            final jalview.binding.Setting vSetting)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._settingList.size()) {
+            throw new IndexOutOfBoundsException("setSetting: Index value '" + index + "' not in range [0.." + (this._settingList.size() - 1) + "]");
+        }
+        
+        this._settingList.set(index, vSetting);
+    }
 
-    for (int i = 0; i < vSettingArray.length; i++)
-    {
-      this._settingList.add(vSettingArray[i]);
+    /**
+     * 
+     * 
+     * @param vSettingArray
+     */
+    public void setSetting(
+            final jalview.binding.Setting[] vSettingArray) {
+        //-- copy array
+        _settingList.clear();
+        
+        for (int i = 0; i < vSettingArray.length; i++) {
+                this._settingList.add(vSettingArray[i]);
+        }
     }
-  }
 
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.FeatureSettings
-   */
-  public static jalview.binding.FeatureSettings unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.FeatureSettings) Unmarshaller.unmarshal(
-            jalview.binding.FeatureSettings.class, reader);
-  }
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.FeatureSettings
+     */
+    public static jalview.binding.FeatureSettings unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.FeatureSettings) Unmarshaller.unmarshal(jalview.binding.FeatureSettings.class, reader);
+    }
 
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
index 6d398c1..e50ae7c 100644 (file)
@@ -1,27 +1,14 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-//---------------------------------/
-//- Imported classes and packages -/
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
@@ -32,106 +19,98 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Features extends Feature implements java.io.Serializable
+public class Features extends Feature 
+implements java.io.Serializable
 {
 
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
 
-  public Features()
-  {
-    super();
-  }
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Features() {
+        super();
+    }
+
 
-  // -----------/
-  // - Methods -/
-  // -----------/
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
     }
-    return true;
-  }
 
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
 
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
 
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.Feature
-   */
-  public static jalview.binding.Feature unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.Feature) Unmarshaller.unmarshal(
-            jalview.binding.Features.class, reader);
-  }
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.Feature
+     */
+    public static jalview.binding.Feature unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.Feature) Unmarshaller.unmarshal(jalview.binding.Features.class, reader);
+    }
 
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
index c1f9cd3..862eebd 100644 (file)
@@ -1,30 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
-//- Imported classes and packages -/
-//---------------------------------/
-
-import jalview.util.MessageManager;
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -34,748 +19,721 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class JGroup implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _start.
-   */
-  private int _start;
-
-  /**
-   * keeps track of state for field: _start
-   */
-  private boolean _has_start;
-
-  /**
-   * Field _end.
-   */
-  private int _end;
-
-  /**
-   * keeps track of state for field: _end
-   */
-  private boolean _has_end;
-
-  /**
-   * Field _name.
-   */
-  private java.lang.String _name;
-
-  /**
-   * Field _colour.
-   */
-  private java.lang.String _colour;
-
-  /**
-   * Field _consThreshold.
-   */
-  private int _consThreshold;
-
-  /**
-   * keeps track of state for field: _consThreshold
-   */
-  private boolean _has_consThreshold;
-
-  /**
-   * Field _pidThreshold.
-   */
-  private int _pidThreshold;
-
-  /**
-   * keeps track of state for field: _pidThreshold
-   */
-  private boolean _has_pidThreshold;
-
-  /**
-   * Field _outlineColour.
-   */
-  private int _outlineColour;
-
-  /**
-   * keeps track of state for field: _outlineColour
-   */
-  private boolean _has_outlineColour;
-
-  /**
-   * Field _displayBoxes.
-   */
-  private boolean _displayBoxes;
-
-  /**
-   * keeps track of state for field: _displayBoxes
-   */
-  private boolean _has_displayBoxes;
-
-  /**
-   * Field _displayText.
-   */
-  private boolean _displayText;
-
-  /**
-   * keeps track of state for field: _displayText
-   */
-  private boolean _has_displayText;
-
-  /**
-   * Field _colourText.
-   */
-  private boolean _colourText;
-
-  /**
-   * keeps track of state for field: _colourText
-   */
-  private boolean _has_colourText;
-
-  /**
-   * Field _seqList.
-   */
-  private java.util.Vector _seqList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public JGroup()
-  {
-    super();
-    this._seqList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vSeq
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addSeq(final int vSeq)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._seqList.addElement(new java.lang.Integer(vSeq));
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSeq
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addSeq(final int index, final int vSeq)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._seqList.add(index, new java.lang.Integer(vSeq));
-  }
-
-  /**
-     */
-  public void deleteColourText()
-  {
-    this._has_colourText = false;
-  }
-
-  /**
-     */
-  public void deleteConsThreshold()
-  {
-    this._has_consThreshold = false;
-  }
-
-  /**
-     */
-  public void deleteDisplayBoxes()
-  {
-    this._has_displayBoxes = false;
-  }
-
-  /**
-     */
-  public void deleteDisplayText()
-  {
-    this._has_displayText = false;
-  }
-
-  /**
-     */
-  public void deleteEnd()
-  {
-    this._has_end = false;
-  }
-
-  /**
-     */
-  public void deleteOutlineColour()
-  {
-    this._has_outlineColour = false;
-  }
-
-  /**
-     */
-  public void deletePidThreshold()
-  {
-    this._has_pidThreshold = false;
-  }
-
-  /**
-     */
-  public void deleteStart()
-  {
-    this._has_start = false;
-  }
-
-  /**
-   * Method enumerateSeq.
-   * 
-   * @return an Enumeration over all int elements
-   */
-  public java.util.Enumeration enumerateSeq()
-  {
-    return this._seqList.elements();
-  }
-
-  /**
-   * Returns the value of field 'colour'.
-   * 
-   * @return the value of field 'Colour'.
-   */
-  public java.lang.String getColour()
-  {
-    return this._colour;
-  }
-
-  /**
-   * Returns the value of field 'colourText'.
-   * 
-   * @return the value of field 'ColourText'.
-   */
-  public boolean getColourText()
-  {
-    return this._colourText;
-  }
-
-  /**
-   * Returns the value of field 'consThreshold'.
-   * 
-   * @return the value of field 'ConsThreshold'.
-   */
-  public int getConsThreshold()
-  {
-    return this._consThreshold;
-  }
-
-  /**
-   * Returns the value of field 'displayBoxes'.
-   * 
-   * @return the value of field 'DisplayBoxes'.
-   */
-  public boolean getDisplayBoxes()
-  {
-    return this._displayBoxes;
-  }
-
-  /**
-   * Returns the value of field 'displayText'.
-   * 
-   * @return the value of field 'DisplayText'.
-   */
-  public boolean getDisplayText()
-  {
-    return this._displayText;
-  }
-
-  /**
-   * Returns the value of field 'end'.
-   * 
-   * @return the value of field 'End'.
-   */
-  public int getEnd()
-  {
-    return this._end;
-  }
-
-  /**
-   * Returns the value of field 'name'.
-   * 
-   * @return the value of field 'Name'.
-   */
-  public java.lang.String getName()
-  {
-    return this._name;
-  }
-
-  /**
-   * Returns the value of field 'outlineColour'.
-   * 
-   * @return the value of field 'OutlineColour'.
-   */
-  public int getOutlineColour()
-  {
-    return this._outlineColour;
-  }
-
-  /**
-   * Returns the value of field 'pidThreshold'.
-   * 
-   * @return the value of field 'PidThreshold'.
-   */
-  public int getPidThreshold()
-  {
-    return this._pidThreshold;
-  }
-
-  /**
-   * Method getSeq.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   * @return the value of the int at the given index
-   */
-  public int getSeq(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._seqList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                 "getSeq",
-                 Integer.valueOf(index).toString(),
-                 Integer.valueOf((this._seqList.size() - 1)).toString()
-        })); 
-    }
-
-    return ((java.lang.Integer) _seqList.get(index)).intValue();
-  }
-
-  /**
-   * Method getSeq.Returns the contents of the collection in an Array.
-   * 
-   * @return this collection as an Array
-   */
-  public int[] getSeq()
-  {
-    int size = this._seqList.size();
-    int[] array = new int[size];
-    java.util.Iterator iter = _seqList.iterator();
-    for (int index = 0; index < size; index++)
-    {
-      array[index] = ((java.lang.Integer) iter.next()).intValue();
-    }
-    return array;
-  }
-
-  /**
-   * Method getSeqCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getSeqCount()
-  {
-    return this._seqList.size();
-  }
-
-  /**
-   * Returns the value of field 'start'.
-   * 
-   * @return the value of field 'Start'.
-   */
-  public int getStart()
-  {
-    return this._start;
-  }
-
-  /**
-   * Method hasColourText.
-   * 
-   * @return true if at least one ColourText has been added
-   */
-  public boolean hasColourText()
-  {
-    return this._has_colourText;
-  }
-
-  /**
-   * Method hasConsThreshold.
-   * 
-   * @return true if at least one ConsThreshold has been added
-   */
-  public boolean hasConsThreshold()
-  {
-    return this._has_consThreshold;
-  }
-
-  /**
-   * Method hasDisplayBoxes.
-   * 
-   * @return true if at least one DisplayBoxes has been added
-   */
-  public boolean hasDisplayBoxes()
-  {
-    return this._has_displayBoxes;
-  }
-
-  /**
-   * Method hasDisplayText.
-   * 
-   * @return true if at least one DisplayText has been added
-   */
-  public boolean hasDisplayText()
-  {
-    return this._has_displayText;
-  }
-
-  /**
-   * Method hasEnd.
-   * 
-   * @return true if at least one End has been added
-   */
-  public boolean hasEnd()
-  {
-    return this._has_end;
-  }
-
-  /**
-   * Method hasOutlineColour.
-   * 
-   * @return true if at least one OutlineColour has been added
-   */
-  public boolean hasOutlineColour()
-  {
-    return this._has_outlineColour;
-  }
-
-  /**
-   * Method hasPidThreshold.
-   * 
-   * @return true if at least one PidThreshold has been added
-   */
-  public boolean hasPidThreshold()
-  {
-    return this._has_pidThreshold;
-  }
-
-  /**
-   * Method hasStart.
-   * 
-   * @return true if at least one Start has been added
-   */
-  public boolean hasStart()
-  {
-    return this._has_start;
-  }
-
-  /**
-   * Returns the value of field 'colourText'.
-   * 
-   * @return the value of field 'ColourText'.
-   */
-  public boolean isColourText()
-  {
-    return this._colourText;
-  }
-
-  /**
-   * Returns the value of field 'displayBoxes'.
-   * 
-   * @return the value of field 'DisplayBoxes'.
-   */
-  public boolean isDisplayBoxes()
-  {
-    return this._displayBoxes;
-  }
-
-  /**
-   * Returns the value of field 'displayText'.
-   * 
-   * @return the value of field 'DisplayText'.
-   */
-  public boolean isDisplayText()
-  {
-    return this._displayText;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-     */
-  public void removeAllSeq()
-  {
-    this._seqList.clear();
-  }
-
-  /**
-   * Method removeSeq.
-   * 
-   * @param vSeq
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeSeq(final int vSeq)
-  {
-    boolean removed = _seqList.remove(new java.lang.Integer(vSeq));
-    return removed;
-  }
-
-  /**
-   * Method removeSeqAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public int removeSeqAt(final int index)
-  {
-    java.lang.Object obj = this._seqList.remove(index);
-    return ((java.lang.Integer) obj).intValue();
-  }
-
-  /**
-   * Sets the value of field 'colour'.
-   * 
-   * @param colour
-   *          the value of field 'colour'.
-   */
-  public void setColour(final java.lang.String colour)
-  {
-    this._colour = colour;
-  }
-
-  /**
-   * Sets the value of field 'colourText'.
-   * 
-   * @param colourText
-   *          the value of field 'colourText'.
-   */
-  public void setColourText(final boolean colourText)
-  {
-    this._colourText = colourText;
-    this._has_colourText = true;
-  }
-
-  /**
-   * Sets the value of field 'consThreshold'.
-   * 
-   * @param consThreshold
-   *          the value of field 'consThreshold'.
-   */
-  public void setConsThreshold(final int consThreshold)
-  {
-    this._consThreshold = consThreshold;
-    this._has_consThreshold = true;
-  }
-
-  /**
-   * Sets the value of field 'displayBoxes'.
-   * 
-   * @param displayBoxes
-   *          the value of field 'displayBoxes'.
-   */
-  public void setDisplayBoxes(final boolean displayBoxes)
-  {
-    this._displayBoxes = displayBoxes;
-    this._has_displayBoxes = true;
-  }
-
-  /**
-   * Sets the value of field 'displayText'.
-   * 
-   * @param displayText
-   *          the value of field 'displayText'.
-   */
-  public void setDisplayText(final boolean displayText)
-  {
-    this._displayText = displayText;
-    this._has_displayText = true;
-  }
-
-  /**
-   * Sets the value of field 'end'.
-   * 
-   * @param end
-   *          the value of field 'end'.
-   */
-  public void setEnd(final int end)
-  {
-    this._end = end;
-    this._has_end = true;
-  }
-
-  /**
-   * Sets the value of field 'name'.
-   * 
-   * @param name
-   *          the value of field 'name'.
-   */
-  public void setName(final java.lang.String name)
-  {
-    this._name = name;
-  }
-
-  /**
-   * Sets the value of field 'outlineColour'.
-   * 
-   * @param outlineColour
-   *          the value of field 'outlineColour'.
-   */
-  public void setOutlineColour(final int outlineColour)
-  {
-    this._outlineColour = outlineColour;
-    this._has_outlineColour = true;
-  }
-
-  /**
-   * Sets the value of field 'pidThreshold'.
-   * 
-   * @param pidThreshold
-   *          the value of field 'pidThreshold'.
-   */
-  public void setPidThreshold(final int pidThreshold)
-  {
-    this._pidThreshold = pidThreshold;
-    this._has_pidThreshold = true;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSeq
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void setSeq(final int index, final int vSeq)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._seqList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                         "setSeq",
-                         Integer.valueOf(index).toString(),
-                         Integer.valueOf((this._seqList.size() - 1)).toString()
-          })); 
-    }
-
-    this._seqList.set(index, new java.lang.Integer(vSeq));
-  }
-
-  /**
-   * 
-   * 
-   * @param vSeqArray
-   */
-  public void setSeq(final int[] vSeqArray)
-  {
-    // -- copy array
-    _seqList.clear();
-
-    for (int i = 0; i < vSeqArray.length; i++)
-    {
-      this._seqList.add(new java.lang.Integer(vSeqArray[i]));
-    }
-  }
-
-  /**
-   * Sets the value of field 'start'.
-   * 
-   * @param start
-   *          the value of field 'start'.
-   */
-  public void setStart(final int start)
-  {
-    this._start = start;
-    this._has_start = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.JGroup
-   */
-  public static jalview.binding.JGroup unmarshal(final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.JGroup) Unmarshaller.unmarshal(
-            jalview.binding.JGroup.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class JGroup implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _start.
+     */
+    private int _start;
+
+    /**
+     * keeps track of state for field: _start
+     */
+    private boolean _has_start;
+
+    /**
+     * Field _end.
+     */
+    private int _end;
+
+    /**
+     * keeps track of state for field: _end
+     */
+    private boolean _has_end;
+
+    /**
+     * Field _name.
+     */
+    private java.lang.String _name;
+
+    /**
+     * Field _colour.
+     */
+    private java.lang.String _colour;
+
+    /**
+     * Field _consThreshold.
+     */
+    private int _consThreshold;
+
+    /**
+     * keeps track of state for field: _consThreshold
+     */
+    private boolean _has_consThreshold;
+
+    /**
+     * Field _pidThreshold.
+     */
+    private int _pidThreshold;
+
+    /**
+     * keeps track of state for field: _pidThreshold
+     */
+    private boolean _has_pidThreshold;
+
+    /**
+     * Field _outlineColour.
+     */
+    private int _outlineColour;
+
+    /**
+     * keeps track of state for field: _outlineColour
+     */
+    private boolean _has_outlineColour;
+
+    /**
+     * Field _displayBoxes.
+     */
+    private boolean _displayBoxes;
+
+    /**
+     * keeps track of state for field: _displayBoxes
+     */
+    private boolean _has_displayBoxes;
+
+    /**
+     * Field _displayText.
+     */
+    private boolean _displayText;
+
+    /**
+     * keeps track of state for field: _displayText
+     */
+    private boolean _has_displayText;
+
+    /**
+     * Field _colourText.
+     */
+    private boolean _colourText;
+
+    /**
+     * keeps track of state for field: _colourText
+     */
+    private boolean _has_colourText;
+
+    /**
+     * Field _seqList.
+     */
+    private java.util.Vector _seqList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public JGroup() {
+        super();
+        this._seqList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vSeq
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSeq(
+            final int vSeq)
+    throws java.lang.IndexOutOfBoundsException {
+        this._seqList.addElement(new java.lang.Integer(vSeq));
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSeq
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSeq(
+            final int index,
+            final int vSeq)
+    throws java.lang.IndexOutOfBoundsException {
+        this._seqList.add(index, new java.lang.Integer(vSeq));
+    }
+
+    /**
+     */
+    public void deleteColourText(
+    ) {
+        this._has_colourText= false;
+    }
+
+    /**
+     */
+    public void deleteConsThreshold(
+    ) {
+        this._has_consThreshold= false;
+    }
+
+    /**
+     */
+    public void deleteDisplayBoxes(
+    ) {
+        this._has_displayBoxes= false;
+    }
+
+    /**
+     */
+    public void deleteDisplayText(
+    ) {
+        this._has_displayText= false;
+    }
+
+    /**
+     */
+    public void deleteEnd(
+    ) {
+        this._has_end= false;
+    }
+
+    /**
+     */
+    public void deleteOutlineColour(
+    ) {
+        this._has_outlineColour= false;
+    }
+
+    /**
+     */
+    public void deletePidThreshold(
+    ) {
+        this._has_pidThreshold= false;
+    }
+
+    /**
+     */
+    public void deleteStart(
+    ) {
+        this._has_start= false;
+    }
+
+    /**
+     * Method enumerateSeq.
+     * 
+     * @return an Enumeration over all int elements
+     */
+    public java.util.Enumeration enumerateSeq(
+    ) {
+        return this._seqList.elements();
+    }
+
+    /**
+     * Returns the value of field 'colour'.
+     * 
+     * @return the value of field 'Colour'.
+     */
+    public java.lang.String getColour(
+    ) {
+        return this._colour;
+    }
+
+    /**
+     * Returns the value of field 'colourText'.
+     * 
+     * @return the value of field 'ColourText'.
+     */
+    public boolean getColourText(
+    ) {
+        return this._colourText;
+    }
+
+    /**
+     * Returns the value of field 'consThreshold'.
+     * 
+     * @return the value of field 'ConsThreshold'.
+     */
+    public int getConsThreshold(
+    ) {
+        return this._consThreshold;
+    }
+
+    /**
+     * Returns the value of field 'displayBoxes'.
+     * 
+     * @return the value of field 'DisplayBoxes'.
+     */
+    public boolean getDisplayBoxes(
+    ) {
+        return this._displayBoxes;
+    }
+
+    /**
+     * Returns the value of field 'displayText'.
+     * 
+     * @return the value of field 'DisplayText'.
+     */
+    public boolean getDisplayText(
+    ) {
+        return this._displayText;
+    }
+
+    /**
+     * Returns the value of field 'end'.
+     * 
+     * @return the value of field 'End'.
+     */
+    public int getEnd(
+    ) {
+        return this._end;
+    }
+
+    /**
+     * Returns the value of field 'name'.
+     * 
+     * @return the value of field 'Name'.
+     */
+    public java.lang.String getName(
+    ) {
+        return this._name;
+    }
+
+    /**
+     * Returns the value of field 'outlineColour'.
+     * 
+     * @return the value of field 'OutlineColour'.
+     */
+    public int getOutlineColour(
+    ) {
+        return this._outlineColour;
+    }
+
+    /**
+     * Returns the value of field 'pidThreshold'.
+     * 
+     * @return the value of field 'PidThreshold'.
+     */
+    public int getPidThreshold(
+    ) {
+        return this._pidThreshold;
+    }
+
+    /**
+     * Method getSeq.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the int at the given index
+     */
+    public int getSeq(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._seqList.size()) {
+            throw new IndexOutOfBoundsException("getSeq: Index value '" + index + "' not in range [0.." + (this._seqList.size() - 1) + "]");
+        }
+        
+        return ((java.lang.Integer) _seqList.get(index)).intValue();
+    }
+
+    /**
+     * Method getSeq.Returns the contents of the collection in an
+     * Array.  
+     * 
+     * @return this collection as an Array
+     */
+    public int[] getSeq(
+    ) {
+        int size = this._seqList.size();
+        int[] array = new int[size];
+        java.util.Iterator iter = _seqList.iterator();
+        for (int index = 0; index < size; index++) {
+            array[index] = ((java.lang.Integer) iter.next()).intValue();
+        }
+        return array;
+    }
+
+    /**
+     * Method getSeqCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getSeqCount(
+    ) {
+        return this._seqList.size();
+    }
+
+    /**
+     * Returns the value of field 'start'.
+     * 
+     * @return the value of field 'Start'.
+     */
+    public int getStart(
+    ) {
+        return this._start;
+    }
+
+    /**
+     * Method hasColourText.
+     * 
+     * @return true if at least one ColourText has been added
+     */
+    public boolean hasColourText(
+    ) {
+        return this._has_colourText;
+    }
+
+    /**
+     * Method hasConsThreshold.
+     * 
+     * @return true if at least one ConsThreshold has been added
+     */
+    public boolean hasConsThreshold(
+    ) {
+        return this._has_consThreshold;
+    }
+
+    /**
+     * Method hasDisplayBoxes.
+     * 
+     * @return true if at least one DisplayBoxes has been added
+     */
+    public boolean hasDisplayBoxes(
+    ) {
+        return this._has_displayBoxes;
+    }
+
+    /**
+     * Method hasDisplayText.
+     * 
+     * @return true if at least one DisplayText has been added
+     */
+    public boolean hasDisplayText(
+    ) {
+        return this._has_displayText;
+    }
+
+    /**
+     * Method hasEnd.
+     * 
+     * @return true if at least one End has been added
+     */
+    public boolean hasEnd(
+    ) {
+        return this._has_end;
+    }
+
+    /**
+     * Method hasOutlineColour.
+     * 
+     * @return true if at least one OutlineColour has been added
+     */
+    public boolean hasOutlineColour(
+    ) {
+        return this._has_outlineColour;
+    }
+
+    /**
+     * Method hasPidThreshold.
+     * 
+     * @return true if at least one PidThreshold has been added
+     */
+    public boolean hasPidThreshold(
+    ) {
+        return this._has_pidThreshold;
+    }
+
+    /**
+     * Method hasStart.
+     * 
+     * @return true if at least one Start has been added
+     */
+    public boolean hasStart(
+    ) {
+        return this._has_start;
+    }
+
+    /**
+     * Returns the value of field 'colourText'.
+     * 
+     * @return the value of field 'ColourText'.
+     */
+    public boolean isColourText(
+    ) {
+        return this._colourText;
+    }
+
+    /**
+     * Returns the value of field 'displayBoxes'.
+     * 
+     * @return the value of field 'DisplayBoxes'.
+     */
+    public boolean isDisplayBoxes(
+    ) {
+        return this._displayBoxes;
+    }
+
+    /**
+     * Returns the value of field 'displayText'.
+     * 
+     * @return the value of field 'DisplayText'.
+     */
+    public boolean isDisplayText(
+    ) {
+        return this._displayText;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllSeq(
+    ) {
+        this._seqList.clear();
+    }
+
+    /**
+     * Method removeSeq.
+     * 
+     * @param vSeq
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeSeq(
+            final int vSeq) {
+        boolean removed = _seqList.remove(new java.lang.Integer(vSeq));
+        return removed;
+    }
+
+    /**
+     * Method removeSeqAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public int removeSeqAt(
+            final int index) {
+        java.lang.Object obj = this._seqList.remove(index);
+        return ((java.lang.Integer) obj).intValue();
+    }
+
+    /**
+     * Sets the value of field 'colour'.
+     * 
+     * @param colour the value of field 'colour'.
+     */
+    public void setColour(
+            final java.lang.String colour) {
+        this._colour = colour;
+    }
+
+    /**
+     * Sets the value of field 'colourText'.
+     * 
+     * @param colourText the value of field 'colourText'.
+     */
+    public void setColourText(
+            final boolean colourText) {
+        this._colourText = colourText;
+        this._has_colourText = true;
+    }
+
+    /**
+     * Sets the value of field 'consThreshold'.
+     * 
+     * @param consThreshold the value of field 'consThreshold'.
+     */
+    public void setConsThreshold(
+            final int consThreshold) {
+        this._consThreshold = consThreshold;
+        this._has_consThreshold = true;
+    }
+
+    /**
+     * Sets the value of field 'displayBoxes'.
+     * 
+     * @param displayBoxes the value of field 'displayBoxes'.
+     */
+    public void setDisplayBoxes(
+            final boolean displayBoxes) {
+        this._displayBoxes = displayBoxes;
+        this._has_displayBoxes = true;
+    }
+
+    /**
+     * Sets the value of field 'displayText'.
+     * 
+     * @param displayText the value of field 'displayText'.
+     */
+    public void setDisplayText(
+            final boolean displayText) {
+        this._displayText = displayText;
+        this._has_displayText = true;
+    }
+
+    /**
+     * Sets the value of field 'end'.
+     * 
+     * @param end the value of field 'end'.
+     */
+    public void setEnd(
+            final int end) {
+        this._end = end;
+        this._has_end = true;
+    }
+
+    /**
+     * Sets the value of field 'name'.
+     * 
+     * @param name the value of field 'name'.
+     */
+    public void setName(
+            final java.lang.String name) {
+        this._name = name;
+    }
+
+    /**
+     * Sets the value of field 'outlineColour'.
+     * 
+     * @param outlineColour the value of field 'outlineColour'.
+     */
+    public void setOutlineColour(
+            final int outlineColour) {
+        this._outlineColour = outlineColour;
+        this._has_outlineColour = true;
+    }
+
+    /**
+     * Sets the value of field 'pidThreshold'.
+     * 
+     * @param pidThreshold the value of field 'pidThreshold'.
+     */
+    public void setPidThreshold(
+            final int pidThreshold) {
+        this._pidThreshold = pidThreshold;
+        this._has_pidThreshold = true;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSeq
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setSeq(
+            final int index,
+            final int vSeq)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._seqList.size()) {
+            throw new IndexOutOfBoundsException("setSeq: Index value '" + index + "' not in range [0.." + (this._seqList.size() - 1) + "]");
+        }
+        
+        this._seqList.set(index, new java.lang.Integer(vSeq));
+    }
+
+    /**
+     * 
+     * 
+     * @param vSeqArray
+     */
+    public void setSeq(
+            final int[] vSeqArray) {
+        //-- copy array
+        _seqList.clear();
+        
+        for (int i = 0; i < vSeqArray.length; i++) {
+                this._seqList.add(new java.lang.Integer(vSeqArray[i]));
+        }
+    }
+
+    /**
+     * Sets the value of field 'start'.
+     * 
+     * @param start the value of field 'start'.
+     */
+    public void setStart(
+            final int start) {
+        this._start = start;
+        this._has_start = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.JGroup
+     */
+    public static jalview.binding.JGroup unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.JGroup) Unmarshaller.unmarshal(jalview.binding.JGroup.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
index 68d545f..14b1f2f 100644 (file)
@@ -1,30 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
-//- Imported classes and packages -/
-//---------------------------------/
-
-import jalview.util.MessageManager;
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -34,635 +19,605 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class JSeq implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _colour.
-   */
-  private int _colour;
-
-  /**
-   * keeps track of state for field: _colour
-   */
-  private boolean _has_colour;
-
-  /**
-   * Field _start.
-   */
-  private int _start;
-
-  /**
-   * keeps track of state for field: _start
-   */
-  private boolean _has_start;
-
-  /**
-   * Field _end.
-   */
-  private int _end;
-
-  /**
-   * keeps track of state for field: _end
-   */
-  private boolean _has_end;
-
-  /**
-   * Field _id.
-   */
-  private int _id;
-
-  /**
-   * keeps track of state for field: _id
-   */
-  private boolean _has_id;
-
-  /**
-   * Field _featuresList.
-   */
-  private java.util.Vector _featuresList;
-
-  /**
-   * Field _pdbidsList.
-   */
-  private java.util.Vector _pdbidsList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public JSeq()
-  {
-    super();
-    this._featuresList = new java.util.Vector();
-    this._pdbidsList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vFeatures
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addFeatures(final jalview.binding.Features vFeatures)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._featuresList.addElement(vFeatures);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vFeatures
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addFeatures(final int index,
-          final jalview.binding.Features vFeatures)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._featuresList.add(index, vFeatures);
-  }
-
-  /**
-   * 
-   * 
-   * @param vPdbids
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addPdbids(final jalview.binding.Pdbids vPdbids)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._pdbidsList.addElement(vPdbids);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vPdbids
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addPdbids(final int index,
-          final jalview.binding.Pdbids vPdbids)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._pdbidsList.add(index, vPdbids);
-  }
-
-  /**
-     */
-  public void deleteColour()
-  {
-    this._has_colour = false;
-  }
-
-  /**
-     */
-  public void deleteEnd()
-  {
-    this._has_end = false;
-  }
-
-  /**
-     */
-  public void deleteId()
-  {
-    this._has_id = false;
-  }
-
-  /**
-     */
-  public void deleteStart()
-  {
-    this._has_start = false;
-  }
-
-  /**
-   * Method enumerateFeatures.
-   * 
-   * @return an Enumeration over all jalview.binding.Features elements
-   */
-  public java.util.Enumeration enumerateFeatures()
-  {
-    return this._featuresList.elements();
-  }
-
-  /**
-   * Method enumeratePdbids.
-   * 
-   * @return an Enumeration over all jalview.binding.Pdbids elements
-   */
-  public java.util.Enumeration enumeratePdbids()
-  {
-    return this._pdbidsList.elements();
-  }
-
-  /**
-   * Returns the value of field 'colour'.
-   * 
-   * @return the value of field 'Colour'.
-   */
-  public int getColour()
-  {
-    return this._colour;
-  }
-
-  /**
-   * Returns the value of field 'end'.
-   * 
-   * @return the value of field 'End'.
-   */
-  public int getEnd()
-  {
-    return this._end;
-  }
-
-  /**
-   * Method getFeatures.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.Features at the given index
-   */
-  public jalview.binding.Features getFeatures(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._featuresList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                 "getFeatures",
-                 Integer.valueOf(index).toString(),
-                 Integer.valueOf((this._featuresList.size() - 1)).toString()
-        })); 
-    }
-
-    return (jalview.binding.Features) _featuresList.get(index);
-  }
-
-  /**
-   * Method getFeatures.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.Features[] getFeatures()
-  {
-    jalview.binding.Features[] array = new jalview.binding.Features[0];
-    return (jalview.binding.Features[]) this._featuresList.toArray(array);
-  }
-
-  /**
-   * Method getFeaturesCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getFeaturesCount()
-  {
-    return this._featuresList.size();
-  }
-
-  /**
-   * Returns the value of field 'id'.
-   * 
-   * @return the value of field 'Id'.
-   */
-  public int getId()
-  {
-    return this._id;
-  }
-
-  /**
-   * Method getPdbids.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.Pdbids at the given index
-   */
-  public jalview.binding.Pdbids getPdbids(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._pdbidsList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                         "getPdbids",
-                         Integer.valueOf(index).toString(),
-                         Integer.valueOf((this._pdbidsList.size() - 1)).toString()
-          })); 
-    }
-
-    return (jalview.binding.Pdbids) _pdbidsList.get(index);
-  }
-
-  /**
-   * Method getPdbids.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.Pdbids[] getPdbids()
-  {
-    jalview.binding.Pdbids[] array = new jalview.binding.Pdbids[0];
-    return (jalview.binding.Pdbids[]) this._pdbidsList.toArray(array);
-  }
-
-  /**
-   * Method getPdbidsCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getPdbidsCount()
-  {
-    return this._pdbidsList.size();
-  }
-
-  /**
-   * Returns the value of field 'start'.
-   * 
-   * @return the value of field 'Start'.
-   */
-  public int getStart()
-  {
-    return this._start;
-  }
-
-  /**
-   * Method hasColour.
-   * 
-   * @return true if at least one Colour has been added
-   */
-  public boolean hasColour()
-  {
-    return this._has_colour;
-  }
-
-  /**
-   * Method hasEnd.
-   * 
-   * @return true if at least one End has been added
-   */
-  public boolean hasEnd()
-  {
-    return this._has_end;
-  }
-
-  /**
-   * Method hasId.
-   * 
-   * @return true if at least one Id has been added
-   */
-  public boolean hasId()
-  {
-    return this._has_id;
-  }
-
-  /**
-   * Method hasStart.
-   * 
-   * @return true if at least one Start has been added
-   */
-  public boolean hasStart()
-  {
-    return this._has_start;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-     */
-  public void removeAllFeatures()
-  {
-    this._featuresList.clear();
-  }
-
-  /**
-     */
-  public void removeAllPdbids()
-  {
-    this._pdbidsList.clear();
-  }
-
-  /**
-   * Method removeFeatures.
-   * 
-   * @param vFeatures
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeFeatures(final jalview.binding.Features vFeatures)
-  {
-    boolean removed = _featuresList.remove(vFeatures);
-    return removed;
-  }
-
-  /**
-   * Method removeFeaturesAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.Features removeFeaturesAt(final int index)
-  {
-    java.lang.Object obj = this._featuresList.remove(index);
-    return (jalview.binding.Features) obj;
-  }
-
-  /**
-   * Method removePdbids.
-   * 
-   * @param vPdbids
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removePdbids(final jalview.binding.Pdbids vPdbids)
-  {
-    boolean removed = _pdbidsList.remove(vPdbids);
-    return removed;
-  }
-
-  /**
-   * Method removePdbidsAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.Pdbids removePdbidsAt(final int index)
-  {
-    java.lang.Object obj = this._pdbidsList.remove(index);
-    return (jalview.binding.Pdbids) obj;
-  }
-
-  /**
-   * Sets the value of field 'colour'.
-   * 
-   * @param colour
-   *          the value of field 'colour'.
-   */
-  public void setColour(final int colour)
-  {
-    this._colour = colour;
-    this._has_colour = true;
-  }
-
-  /**
-   * Sets the value of field 'end'.
-   * 
-   * @param end
-   *          the value of field 'end'.
-   */
-  public void setEnd(final int end)
-  {
-    this._end = end;
-    this._has_end = true;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vFeatures
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void setFeatures(final int index,
-          final jalview.binding.Features vFeatures)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._featuresList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                 "setFeatures",
-                 Integer.valueOf(index).toString(),
-                 Integer.valueOf((this._featuresList.size() - 1)).toString()
-        })); 
-    }
-
-    this._featuresList.set(index, vFeatures);
-  }
-
-  /**
-   * 
-   * 
-   * @param vFeaturesArray
-   */
-  public void setFeatures(final jalview.binding.Features[] vFeaturesArray)
-  {
-    // -- copy array
-    _featuresList.clear();
-
-    for (int i = 0; i < vFeaturesArray.length; i++)
-    {
-      this._featuresList.add(vFeaturesArray[i]);
-    }
-  }
-
-  /**
-   * Sets the value of field 'id'.
-   * 
-   * @param id
-   *          the value of field 'id'.
-   */
-  public void setId(final int id)
-  {
-    this._id = id;
-    this._has_id = true;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vPdbids
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void setPdbids(final int index,
-          final jalview.binding.Pdbids vPdbids)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._pdbidsList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                         "setPdbids",
-                         Integer.valueOf(index).toString(),
-                         Integer.valueOf((this._pdbidsList.size() - 1)).toString()
-          })); 
-    }
-
-    this._pdbidsList.set(index, vPdbids);
-  }
-
-  /**
-   * 
-   * 
-   * @param vPdbidsArray
-   */
-  public void setPdbids(final jalview.binding.Pdbids[] vPdbidsArray)
-  {
-    // -- copy array
-    _pdbidsList.clear();
-
-    for (int i = 0; i < vPdbidsArray.length; i++)
-    {
-      this._pdbidsList.add(vPdbidsArray[i]);
-    }
-  }
-
-  /**
-   * Sets the value of field 'start'.
-   * 
-   * @param start
-   *          the value of field 'start'.
-   */
-  public void setStart(final int start)
-  {
-    this._start = start;
-    this._has_start = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.JSeq
-   */
-  public static jalview.binding.JSeq unmarshal(final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.JSeq) Unmarshaller.unmarshal(
-            jalview.binding.JSeq.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class JSeq implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _colour.
+     */
+    private int _colour;
+
+    /**
+     * keeps track of state for field: _colour
+     */
+    private boolean _has_colour;
+
+    /**
+     * Field _start.
+     */
+    private int _start;
+
+    /**
+     * keeps track of state for field: _start
+     */
+    private boolean _has_start;
+
+    /**
+     * Field _end.
+     */
+    private int _end;
+
+    /**
+     * keeps track of state for field: _end
+     */
+    private boolean _has_end;
+
+    /**
+     * Field _id.
+     */
+    private int _id;
+
+    /**
+     * keeps track of state for field: _id
+     */
+    private boolean _has_id;
+
+    /**
+     * Field _featuresList.
+     */
+    private java.util.Vector _featuresList;
+
+    /**
+     * Field _pdbidsList.
+     */
+    private java.util.Vector _pdbidsList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public JSeq() {
+        super();
+        this._featuresList = new java.util.Vector();
+        this._pdbidsList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vFeatures
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addFeatures(
+            final jalview.binding.Features vFeatures)
+    throws java.lang.IndexOutOfBoundsException {
+        this._featuresList.addElement(vFeatures);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vFeatures
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addFeatures(
+            final int index,
+            final jalview.binding.Features vFeatures)
+    throws java.lang.IndexOutOfBoundsException {
+        this._featuresList.add(index, vFeatures);
+    }
+
+    /**
+     * 
+     * 
+     * @param vPdbids
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addPdbids(
+            final jalview.binding.Pdbids vPdbids)
+    throws java.lang.IndexOutOfBoundsException {
+        this._pdbidsList.addElement(vPdbids);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vPdbids
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addPdbids(
+            final int index,
+            final jalview.binding.Pdbids vPdbids)
+    throws java.lang.IndexOutOfBoundsException {
+        this._pdbidsList.add(index, vPdbids);
+    }
+
+    /**
+     */
+    public void deleteColour(
+    ) {
+        this._has_colour= false;
+    }
+
+    /**
+     */
+    public void deleteEnd(
+    ) {
+        this._has_end= false;
+    }
+
+    /**
+     */
+    public void deleteId(
+    ) {
+        this._has_id= false;
+    }
+
+    /**
+     */
+    public void deleteStart(
+    ) {
+        this._has_start= false;
+    }
+
+    /**
+     * Method enumerateFeatures.
+     * 
+     * @return an Enumeration over all jalview.binding.Features
+     * elements
+     */
+    public java.util.Enumeration enumerateFeatures(
+    ) {
+        return this._featuresList.elements();
+    }
+
+    /**
+     * Method enumeratePdbids.
+     * 
+     * @return an Enumeration over all jalview.binding.Pdbids
+     * elements
+     */
+    public java.util.Enumeration enumeratePdbids(
+    ) {
+        return this._pdbidsList.elements();
+    }
+
+    /**
+     * Returns the value of field 'colour'.
+     * 
+     * @return the value of field 'Colour'.
+     */
+    public int getColour(
+    ) {
+        return this._colour;
+    }
+
+    /**
+     * Returns the value of field 'end'.
+     * 
+     * @return the value of field 'End'.
+     */
+    public int getEnd(
+    ) {
+        return this._end;
+    }
+
+    /**
+     * Method getFeatures.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.Features at the
+     * given index
+     */
+    public jalview.binding.Features getFeatures(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._featuresList.size()) {
+            throw new IndexOutOfBoundsException("getFeatures: Index value '" + index + "' not in range [0.." + (this._featuresList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.Features) _featuresList.get(index);
+    }
+
+    /**
+     * Method getFeatures.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.Features[] getFeatures(
+    ) {
+        jalview.binding.Features[] array = new jalview.binding.Features[0];
+        return (jalview.binding.Features[]) this._featuresList.toArray(array);
+    }
+
+    /**
+     * Method getFeaturesCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getFeaturesCount(
+    ) {
+        return this._featuresList.size();
+    }
+
+    /**
+     * Returns the value of field 'id'.
+     * 
+     * @return the value of field 'Id'.
+     */
+    public int getId(
+    ) {
+        return this._id;
+    }
+
+    /**
+     * Method getPdbids.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.Pdbids at the given
+     * index
+     */
+    public jalview.binding.Pdbids getPdbids(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._pdbidsList.size()) {
+            throw new IndexOutOfBoundsException("getPdbids: Index value '" + index + "' not in range [0.." + (this._pdbidsList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.Pdbids) _pdbidsList.get(index);
+    }
+
+    /**
+     * Method getPdbids.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.Pdbids[] getPdbids(
+    ) {
+        jalview.binding.Pdbids[] array = new jalview.binding.Pdbids[0];
+        return (jalview.binding.Pdbids[]) this._pdbidsList.toArray(array);
+    }
+
+    /**
+     * Method getPdbidsCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getPdbidsCount(
+    ) {
+        return this._pdbidsList.size();
+    }
+
+    /**
+     * Returns the value of field 'start'.
+     * 
+     * @return the value of field 'Start'.
+     */
+    public int getStart(
+    ) {
+        return this._start;
+    }
+
+    /**
+     * Method hasColour.
+     * 
+     * @return true if at least one Colour has been added
+     */
+    public boolean hasColour(
+    ) {
+        return this._has_colour;
+    }
+
+    /**
+     * Method hasEnd.
+     * 
+     * @return true if at least one End has been added
+     */
+    public boolean hasEnd(
+    ) {
+        return this._has_end;
+    }
+
+    /**
+     * Method hasId.
+     * 
+     * @return true if at least one Id has been added
+     */
+    public boolean hasId(
+    ) {
+        return this._has_id;
+    }
+
+    /**
+     * Method hasStart.
+     * 
+     * @return true if at least one Start has been added
+     */
+    public boolean hasStart(
+    ) {
+        return this._has_start;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllFeatures(
+    ) {
+        this._featuresList.clear();
+    }
+
+    /**
+     */
+    public void removeAllPdbids(
+    ) {
+        this._pdbidsList.clear();
+    }
+
+    /**
+     * Method removeFeatures.
+     * 
+     * @param vFeatures
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeFeatures(
+            final jalview.binding.Features vFeatures) {
+        boolean removed = _featuresList.remove(vFeatures);
+        return removed;
+    }
+
+    /**
+     * Method removeFeaturesAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.Features removeFeaturesAt(
+            final int index) {
+        java.lang.Object obj = this._featuresList.remove(index);
+        return (jalview.binding.Features) obj;
+    }
+
+    /**
+     * Method removePdbids.
+     * 
+     * @param vPdbids
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removePdbids(
+            final jalview.binding.Pdbids vPdbids) {
+        boolean removed = _pdbidsList.remove(vPdbids);
+        return removed;
+    }
+
+    /**
+     * Method removePdbidsAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.Pdbids removePdbidsAt(
+            final int index) {
+        java.lang.Object obj = this._pdbidsList.remove(index);
+        return (jalview.binding.Pdbids) obj;
+    }
+
+    /**
+     * Sets the value of field 'colour'.
+     * 
+     * @param colour the value of field 'colour'.
+     */
+    public void setColour(
+            final int colour) {
+        this._colour = colour;
+        this._has_colour = true;
+    }
+
+    /**
+     * Sets the value of field 'end'.
+     * 
+     * @param end the value of field 'end'.
+     */
+    public void setEnd(
+            final int end) {
+        this._end = end;
+        this._has_end = true;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vFeatures
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setFeatures(
+            final int index,
+            final jalview.binding.Features vFeatures)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._featuresList.size()) {
+            throw new IndexOutOfBoundsException("setFeatures: Index value '" + index + "' not in range [0.." + (this._featuresList.size() - 1) + "]");
+        }
+        
+        this._featuresList.set(index, vFeatures);
+    }
+
+    /**
+     * 
+     * 
+     * @param vFeaturesArray
+     */
+    public void setFeatures(
+            final jalview.binding.Features[] vFeaturesArray) {
+        //-- copy array
+        _featuresList.clear();
+        
+        for (int i = 0; i < vFeaturesArray.length; i++) {
+                this._featuresList.add(vFeaturesArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'id'.
+     * 
+     * @param id the value of field 'id'.
+     */
+    public void setId(
+            final int id) {
+        this._id = id;
+        this._has_id = true;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vPdbids
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setPdbids(
+            final int index,
+            final jalview.binding.Pdbids vPdbids)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._pdbidsList.size()) {
+            throw new IndexOutOfBoundsException("setPdbids: Index value '" + index + "' not in range [0.." + (this._pdbidsList.size() - 1) + "]");
+        }
+        
+        this._pdbidsList.set(index, vPdbids);
+    }
+
+    /**
+     * 
+     * 
+     * @param vPdbidsArray
+     */
+    public void setPdbids(
+            final jalview.binding.Pdbids[] vPdbidsArray) {
+        //-- copy array
+        _pdbidsList.clear();
+        
+        for (int i = 0; i < vPdbidsArray.length; i++) {
+                this._pdbidsList.add(vPdbidsArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'start'.
+     * 
+     * @param start the value of field 'start'.
+     */
+    public void setStart(
+            final int start) {
+        this._start = start;
+        this._has_start = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.JSeq
+     */
+    public static jalview.binding.JSeq unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.JSeq) Unmarshaller.unmarshal(jalview.binding.JSeq.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
index cebd813..21f8be9 100644 (file)
@@ -1,27 +1,14 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-//---------------------------------/
-//- Imported classes and packages -/
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
@@ -32,215 +19,202 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class JalviewModel implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _creationDate.
-   */
-  private java.util.Date _creationDate;
-
-  /**
-   * Field _version.
-   */
-  private java.lang.String _version;
-
-  /**
-   * Field _vamsasModel.
-   */
-  private jalview.binding.VamsasModel _vamsasModel;
-
-  /**
-   * Field _jalviewModelSequence.
-   */
-  private jalview.binding.JalviewModelSequence _jalviewModelSequence;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public JalviewModel()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Returns the value of field 'creationDate'.
-   * 
-   * @return the value of field 'CreationDate'.
-   */
-  public java.util.Date getCreationDate()
-  {
-    return this._creationDate;
-  }
-
-  /**
-   * Returns the value of field 'jalviewModelSequence'.
-   * 
-   * @return the value of field 'JalviewModelSequence'.
-   */
-  public jalview.binding.JalviewModelSequence getJalviewModelSequence()
-  {
-    return this._jalviewModelSequence;
-  }
-
-  /**
-   * Returns the value of field 'vamsasModel'.
-   * 
-   * @return the value of field 'VamsasModel'.
-   */
-  public jalview.binding.VamsasModel getVamsasModel()
-  {
-    return this._vamsasModel;
-  }
-
-  /**
-   * Returns the value of field 'version'.
-   * 
-   * @return the value of field 'Version'.
-   */
-  public java.lang.String getVersion()
-  {
-    return this._version;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class JalviewModel implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _creationDate.
+     */
+    private java.util.Date _creationDate;
+
+    /**
+     * Field _version.
+     */
+    private java.lang.String _version;
+
+    /**
+     * Field _vamsasModel.
+     */
+    private jalview.binding.VamsasModel _vamsasModel;
+
+    /**
+     * Field _jalviewModelSequence.
+     */
+    private jalview.binding.JalviewModelSequence _jalviewModelSequence;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public JalviewModel() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Returns the value of field 'creationDate'.
+     * 
+     * @return the value of field 'CreationDate'.
+     */
+    public java.util.Date getCreationDate(
+    ) {
+        return this._creationDate;
+    }
+
+    /**
+     * Returns the value of field 'jalviewModelSequence'.
+     * 
+     * @return the value of field 'JalviewModelSequence'.
+     */
+    public jalview.binding.JalviewModelSequence getJalviewModelSequence(
+    ) {
+        return this._jalviewModelSequence;
+    }
+
+    /**
+     * Returns the value of field 'vamsasModel'.
+     * 
+     * @return the value of field 'VamsasModel'.
+     */
+    public jalview.binding.VamsasModel getVamsasModel(
+    ) {
+        return this._vamsasModel;
+    }
+
+    /**
+     * Returns the value of field 'version'.
+     * 
+     * @return the value of field 'Version'.
+     */
+    public java.lang.String getVersion(
+    ) {
+        return this._version;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'creationDate'.
+     * 
+     * @param creationDate the value of field 'creationDate'.
+     */
+    public void setCreationDate(
+            final java.util.Date creationDate) {
+        this._creationDate = creationDate;
+    }
+
+    /**
+     * Sets the value of field 'jalviewModelSequence'.
+     * 
+     * @param jalviewModelSequence the value of field
+     * 'jalviewModelSequence'.
+     */
+    public void setJalviewModelSequence(
+            final jalview.binding.JalviewModelSequence jalviewModelSequence) {
+        this._jalviewModelSequence = jalviewModelSequence;
+    }
+
+    /**
+     * Sets the value of field 'vamsasModel'.
+     * 
+     * @param vamsasModel the value of field 'vamsasModel'.
+     */
+    public void setVamsasModel(
+            final jalview.binding.VamsasModel vamsasModel) {
+        this._vamsasModel = vamsasModel;
+    }
+
+    /**
+     * Sets the value of field 'version'.
+     * 
+     * @param version the value of field 'version'.
+     */
+    public void setVersion(
+            final java.lang.String version) {
+        this._version = version;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.JalviewModel
+     */
+    public static jalview.binding.JalviewModel unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.JalviewModel) Unmarshaller.unmarshal(jalview.binding.JalviewModel.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'creationDate'.
-   * 
-   * @param creationDate
-   *          the value of field 'creationDate'.
-   */
-  public void setCreationDate(final java.util.Date creationDate)
-  {
-    this._creationDate = creationDate;
-  }
-
-  /**
-   * Sets the value of field 'jalviewModelSequence'.
-   * 
-   * @param jalviewModelSequence
-   *          the value of field 'jalviewModelSequence'.
-   */
-  public void setJalviewModelSequence(
-          final jalview.binding.JalviewModelSequence jalviewModelSequence)
-  {
-    this._jalviewModelSequence = jalviewModelSequence;
-  }
-
-  /**
-   * Sets the value of field 'vamsasModel'.
-   * 
-   * @param vamsasModel
-   *          the value of field 'vamsasModel'.
-   */
-  public void setVamsasModel(final jalview.binding.VamsasModel vamsasModel)
-  {
-    this._vamsasModel = vamsasModel;
-  }
-
-  /**
-   * Sets the value of field 'version'.
-   * 
-   * @param version
-   *          the value of field 'version'.
-   */
-  public void setVersion(final java.lang.String version)
-  {
-    this._version = version;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.JalviewModel
-   */
-  public static jalview.binding.JalviewModel unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.JalviewModel) Unmarshaller.unmarshal(
-            jalview.binding.JalviewModel.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
index 43fa983..5ebcee6 100644 (file)
@@ -1,30 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
-//- Imported classes and packages -/
-//---------------------------------/
-
-import jalview.util.MessageManager;
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -34,961 +19,904 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class JalviewModelSequence implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _JSeqList.
-   */
-  private java.util.Vector _JSeqList;
-
-  /**
-   * Field _JGroupList.
-   */
-  private java.util.Vector _JGroupList;
-
-  /**
-   * Field _viewportList.
-   */
-  private java.util.Vector _viewportList;
-
-  /**
-   * Field _userColoursList.
-   */
-  private java.util.Vector _userColoursList;
-
-  /**
-   * Field _treeList.
-   */
-  private java.util.Vector _treeList;
-
-  /**
-   * Field _featureSettings.
-   */
-  private jalview.binding.FeatureSettings _featureSettings;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public JalviewModelSequence()
-  {
-    super();
-    this._JSeqList = new java.util.Vector();
-    this._JGroupList = new java.util.Vector();
-    this._viewportList = new java.util.Vector();
-    this._userColoursList = new java.util.Vector();
-    this._treeList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vJGroup
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addJGroup(final jalview.binding.JGroup vJGroup)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._JGroupList.addElement(vJGroup);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vJGroup
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addJGroup(final int index,
-          final jalview.binding.JGroup vJGroup)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._JGroupList.add(index, vJGroup);
-  }
-
-  /**
-   * 
-   * 
-   * @param vJSeq
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addJSeq(final jalview.binding.JSeq vJSeq)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._JSeqList.addElement(vJSeq);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vJSeq
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addJSeq(final int index, final jalview.binding.JSeq vJSeq)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._JSeqList.add(index, vJSeq);
-  }
-
-  /**
-   * 
-   * 
-   * @param vTree
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addTree(final jalview.binding.Tree vTree)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._treeList.addElement(vTree);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vTree
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addTree(final int index, final jalview.binding.Tree vTree)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._treeList.add(index, vTree);
-  }
-
-  /**
-   * 
-   * 
-   * @param vUserColours
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addUserColours(final jalview.binding.UserColours vUserColours)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._userColoursList.addElement(vUserColours);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vUserColours
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addUserColours(final int index,
-          final jalview.binding.UserColours vUserColours)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._userColoursList.add(index, vUserColours);
-  }
-
-  /**
-   * 
-   * 
-   * @param vViewport
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addViewport(final jalview.binding.Viewport vViewport)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._viewportList.addElement(vViewport);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vViewport
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addViewport(final int index,
-          final jalview.binding.Viewport vViewport)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._viewportList.add(index, vViewport);
-  }
-
-  /**
-   * Method enumerateJGroup.
-   * 
-   * @return an Enumeration over all jalview.binding.JGroup elements
-   */
-  public java.util.Enumeration enumerateJGroup()
-  {
-    return this._JGroupList.elements();
-  }
-
-  /**
-   * Method enumerateJSeq.
-   * 
-   * @return an Enumeration over all jalview.binding.JSeq elements
-   */
-  public java.util.Enumeration enumerateJSeq()
-  {
-    return this._JSeqList.elements();
-  }
-
-  /**
-   * Method enumerateTree.
-   * 
-   * @return an Enumeration over all jalview.binding.Tree elements
-   */
-  public java.util.Enumeration enumerateTree()
-  {
-    return this._treeList.elements();
-  }
-
-  /**
-   * Method enumerateUserColours.
-   * 
-   * @return an Enumeration over all jalview.binding.UserColours elements
-   */
-  public java.util.Enumeration enumerateUserColours()
-  {
-    return this._userColoursList.elements();
-  }
-
-  /**
-   * Method enumerateViewport.
-   * 
-   * @return an Enumeration over all jalview.binding.Viewport elements
-   */
-  public java.util.Enumeration enumerateViewport()
-  {
-    return this._viewportList.elements();
-  }
-
-  /**
-   * Returns the value of field 'featureSettings'.
-   * 
-   * @return the value of field 'FeatureSettings'.
-   */
-  public jalview.binding.FeatureSettings getFeatureSettings()
-  {
-    return this._featureSettings;
-  }
-
-  /**
-   * Method getJGroup.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.JGroup at the given index
-   */
-  public jalview.binding.JGroup getJGroup(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._JGroupList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                 "getJGroup",
-                 Integer.valueOf(index).toString(),
-                 Integer.valueOf((this._JGroupList.size() - 1)).toString()
-        }));
-    }
-
-    return (jalview.binding.JGroup) _JGroupList.get(index);
-  }
-
-  /**
-   * Method getJGroup.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.JGroup[] getJGroup()
-  {
-    jalview.binding.JGroup[] array = new jalview.binding.JGroup[0];
-    return (jalview.binding.JGroup[]) this._JGroupList.toArray(array);
-  }
-
-  /**
-   * Method getJGroupCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getJGroupCount()
-  {
-    return this._JGroupList.size();
-  }
-
-  /**
-   * Method getJSeq.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.JSeq at the given index
-   */
-  public jalview.binding.JSeq getJSeq(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._JSeqList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                         "getJSeq",
-                         Integer.valueOf(index).toString(),
-                         Integer.valueOf((this._JSeqList.size() - 1)).toString()
-          }));
-    }
-
-    return (jalview.binding.JSeq) _JSeqList.get(index);
-  }
-
-  /**
-   * Method getJSeq.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.JSeq[] getJSeq()
-  {
-    jalview.binding.JSeq[] array = new jalview.binding.JSeq[0];
-    return (jalview.binding.JSeq[]) this._JSeqList.toArray(array);
-  }
-
-  /**
-   * Method getJSeqCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getJSeqCount()
-  {
-    return this._JSeqList.size();
-  }
-
-  /**
-   * Method getTree.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.Tree at the given index
-   */
-  public jalview.binding.Tree getTree(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._treeList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                 "getJgetTreeSeq",
-                 Integer.valueOf(index).toString(),
-                 Integer.valueOf((this._treeList.size() - 1)).toString()
-        })); 
-    }
-
-    return (jalview.binding.Tree) _treeList.get(index);
-  }
-
-  /**
-   * Method getTree.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.Tree[] getTree()
-  {
-    jalview.binding.Tree[] array = new jalview.binding.Tree[0];
-    return (jalview.binding.Tree[]) this._treeList.toArray(array);
-  }
-
-  /**
-   * Method getTreeCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getTreeCount()
-  {
-    return this._treeList.size();
-  }
-
-  /**
-   * Method getUserColours.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.UserColours at the given index
-   */
-  public jalview.binding.UserColours getUserColours(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._userColoursList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                         "getUserColours",
-                         Integer.valueOf(index).toString(),
-                         Integer.valueOf((this._userColoursList.size() - 1)).toString()
-          })); 
-    }
-
-    return (jalview.binding.UserColours) _userColoursList.get(index);
-  }
-
-  /**
-   * Method getUserColours.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.UserColours[] getUserColours()
-  {
-    jalview.binding.UserColours[] array = new jalview.binding.UserColours[0];
-    return (jalview.binding.UserColours[]) this._userColoursList
-            .toArray(array);
-  }
-
-  /**
-   * Method getUserColoursCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getUserColoursCount()
-  {
-    return this._userColoursList.size();
-  }
-
-  /**
-   * Method getViewport.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.Viewport at the given index
-   */
-  public jalview.binding.Viewport getViewport(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._viewportList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                 "getViewport",
-                 Integer.valueOf(index).toString(),
-                 Integer.valueOf((this._viewportList.size() - 1)).toString()
-        })); 
-    }
-
-    return (jalview.binding.Viewport) _viewportList.get(index);
-  }
-
-  /**
-   * Method getViewport.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.Viewport[] getViewport()
-  {
-    jalview.binding.Viewport[] array = new jalview.binding.Viewport[0];
-    return (jalview.binding.Viewport[]) this._viewportList.toArray(array);
-  }
-
-  /**
-   * Method getViewportCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getViewportCount()
-  {
-    return this._viewportList.size();
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-     */
-  public void removeAllJGroup()
-  {
-    this._JGroupList.clear();
-  }
-
-  /**
-     */
-  public void removeAllJSeq()
-  {
-    this._JSeqList.clear();
-  }
-
-  /**
-     */
-  public void removeAllTree()
-  {
-    this._treeList.clear();
-  }
-
-  /**
-     */
-  public void removeAllUserColours()
-  {
-    this._userColoursList.clear();
-  }
-
-  /**
-     */
-  public void removeAllViewport()
-  {
-    this._viewportList.clear();
-  }
-
-  /**
-   * Method removeJGroup.
-   * 
-   * @param vJGroup
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeJGroup(final jalview.binding.JGroup vJGroup)
-  {
-    boolean removed = _JGroupList.remove(vJGroup);
-    return removed;
-  }
-
-  /**
-   * Method removeJGroupAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.JGroup removeJGroupAt(final int index)
-  {
-    java.lang.Object obj = this._JGroupList.remove(index);
-    return (jalview.binding.JGroup) obj;
-  }
-
-  /**
-   * Method removeJSeq.
-   * 
-   * @param vJSeq
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeJSeq(final jalview.binding.JSeq vJSeq)
-  {
-    boolean removed = _JSeqList.remove(vJSeq);
-    return removed;
-  }
-
-  /**
-   * Method removeJSeqAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.JSeq removeJSeqAt(final int index)
-  {
-    java.lang.Object obj = this._JSeqList.remove(index);
-    return (jalview.binding.JSeq) obj;
-  }
-
-  /**
-   * Method removeTree.
-   * 
-   * @param vTree
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeTree(final jalview.binding.Tree vTree)
-  {
-    boolean removed = _treeList.remove(vTree);
-    return removed;
-  }
-
-  /**
-   * Method removeTreeAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.Tree removeTreeAt(final int index)
-  {
-    java.lang.Object obj = this._treeList.remove(index);
-    return (jalview.binding.Tree) obj;
-  }
-
-  /**
-   * Method removeUserColours.
-   * 
-   * @param vUserColours
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeUserColours(
-          final jalview.binding.UserColours vUserColours)
-  {
-    boolean removed = _userColoursList.remove(vUserColours);
-    return removed;
-  }
-
-  /**
-   * Method removeUserColoursAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.UserColours removeUserColoursAt(final int index)
-  {
-    java.lang.Object obj = this._userColoursList.remove(index);
-    return (jalview.binding.UserColours) obj;
-  }
-
-  /**
-   * Method removeViewport.
-   * 
-   * @param vViewport
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeViewport(final jalview.binding.Viewport vViewport)
-  {
-    boolean removed = _viewportList.remove(vViewport);
-    return removed;
-  }
-
-  /**
-   * Method removeViewportAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.Viewport removeViewportAt(final int index)
-  {
-    java.lang.Object obj = this._viewportList.remove(index);
-    return (jalview.binding.Viewport) obj;
-  }
-
-  /**
-   * Sets the value of field 'featureSettings'.
-   * 
-   * @param featureSettings
-   *          the value of field 'featureSettings'.
-   */
-  public void setFeatureSettings(
-          final jalview.binding.FeatureSettings featureSettings)
-  {
-    this._featureSettings = featureSettings;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vJGroup
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void setJGroup(final int index,
-          final jalview.binding.JGroup vJGroup)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._JGroupList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                         "setJGroup",
-                         Integer.valueOf(index).toString(),
-                         Integer.valueOf((this._JGroupList.size() - 1)).toString()
-          })); 
-    }
-
-    this._JGroupList.set(index, vJGroup);
-  }
-
-  /**
-   * 
-   * 
-   * @param vJGroupArray
-   */
-  public void setJGroup(final jalview.binding.JGroup[] vJGroupArray)
-  {
-    // -- copy array
-    _JGroupList.clear();
-
-    for (int i = 0; i < vJGroupArray.length; i++)
-    {
-      this._JGroupList.add(vJGroupArray[i]);
-    }
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vJSeq
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void setJSeq(final int index, final jalview.binding.JSeq vJSeq)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._JSeqList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                 "setJSeq",
-                 Integer.valueOf(index).toString(),
-                 Integer.valueOf((this._JSeqList.size() - 1)).toString()
-        })); 
-    }
-
-    this._JSeqList.set(index, vJSeq);
-  }
-
-  /**
-   * 
-   * 
-   * @param vJSeqArray
-   */
-  public void setJSeq(final jalview.binding.JSeq[] vJSeqArray)
-  {
-    // -- copy array
-    _JSeqList.clear();
-
-    for (int i = 0; i < vJSeqArray.length; i++)
-    {
-      this._JSeqList.add(vJSeqArray[i]);
-    }
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vTree
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void setTree(final int index, final jalview.binding.Tree vTree)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._treeList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                         "setTree",
-                         Integer.valueOf(index).toString(),
-                         Integer.valueOf((this._treeList.size() - 1)).toString()
-          })); 
-    }
-
-    this._treeList.set(index, vTree);
-  }
-
-  /**
-   * 
-   * 
-   * @param vTreeArray
-   */
-  public void setTree(final jalview.binding.Tree[] vTreeArray)
-  {
-    // -- copy array
-    _treeList.clear();
-
-    for (int i = 0; i < vTreeArray.length; i++)
-    {
-      this._treeList.add(vTreeArray[i]);
-    }
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vUserColours
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void setUserColours(final int index,
-          final jalview.binding.UserColours vUserColours)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._userColoursList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                 "setUserColours",
-                 Integer.valueOf(index).toString(),
-                 Integer.valueOf((this._userColoursList.size() - 1)).toString()
-        })); 
-    }
-
-    this._userColoursList.set(index, vUserColours);
-  }
-
-  /**
-   * 
-   * 
-   * @param vUserColoursArray
-   */
-  public void setUserColours(
-          final jalview.binding.UserColours[] vUserColoursArray)
-  {
-    // -- copy array
-    _userColoursList.clear();
-
-    for (int i = 0; i < vUserColoursArray.length; i++)
-    {
-      this._userColoursList.add(vUserColoursArray[i]);
-    }
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vViewport
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void setViewport(final int index,
-          final jalview.binding.Viewport vViewport)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._viewportList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                         "setViewport",
-                         Integer.valueOf(index).toString(),
-                         Integer.valueOf((this._viewportList.size() - 1)).toString()
-          })); 
-    }
-
-    this._viewportList.set(index, vViewport);
-  }
-
-  /**
-   * 
-   * 
-   * @param vViewportArray
-   */
-  public void setViewport(final jalview.binding.Viewport[] vViewportArray)
-  {
-    // -- copy array
-    _viewportList.clear();
-
-    for (int i = 0; i < vViewportArray.length; i++)
-    {
-      this._viewportList.add(vViewportArray[i]);
-    }
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.JalviewModelSequence
-   */
-  public static jalview.binding.JalviewModelSequence unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.JalviewModelSequence) Unmarshaller.unmarshal(
-            jalview.binding.JalviewModelSequence.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class JalviewModelSequence implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _JSeqList.
+     */
+    private java.util.Vector _JSeqList;
+
+    /**
+     * Field _JGroupList.
+     */
+    private java.util.Vector _JGroupList;
+
+    /**
+     * Field _viewportList.
+     */
+    private java.util.Vector _viewportList;
+
+    /**
+     * Field _userColoursList.
+     */
+    private java.util.Vector _userColoursList;
+
+    /**
+     * Field _treeList.
+     */
+    private java.util.Vector _treeList;
+
+    /**
+     * Field _featureSettings.
+     */
+    private jalview.binding.FeatureSettings _featureSettings;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public JalviewModelSequence() {
+        super();
+        this._JSeqList = new java.util.Vector();
+        this._JGroupList = new java.util.Vector();
+        this._viewportList = new java.util.Vector();
+        this._userColoursList = new java.util.Vector();
+        this._treeList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vJGroup
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addJGroup(
+            final jalview.binding.JGroup vJGroup)
+    throws java.lang.IndexOutOfBoundsException {
+        this._JGroupList.addElement(vJGroup);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vJGroup
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addJGroup(
+            final int index,
+            final jalview.binding.JGroup vJGroup)
+    throws java.lang.IndexOutOfBoundsException {
+        this._JGroupList.add(index, vJGroup);
+    }
+
+    /**
+     * 
+     * 
+     * @param vJSeq
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addJSeq(
+            final jalview.binding.JSeq vJSeq)
+    throws java.lang.IndexOutOfBoundsException {
+        this._JSeqList.addElement(vJSeq);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vJSeq
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addJSeq(
+            final int index,
+            final jalview.binding.JSeq vJSeq)
+    throws java.lang.IndexOutOfBoundsException {
+        this._JSeqList.add(index, vJSeq);
+    }
+
+    /**
+     * 
+     * 
+     * @param vTree
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addTree(
+            final jalview.binding.Tree vTree)
+    throws java.lang.IndexOutOfBoundsException {
+        this._treeList.addElement(vTree);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vTree
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addTree(
+            final int index,
+            final jalview.binding.Tree vTree)
+    throws java.lang.IndexOutOfBoundsException {
+        this._treeList.add(index, vTree);
+    }
+
+    /**
+     * 
+     * 
+     * @param vUserColours
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addUserColours(
+            final jalview.binding.UserColours vUserColours)
+    throws java.lang.IndexOutOfBoundsException {
+        this._userColoursList.addElement(vUserColours);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vUserColours
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addUserColours(
+            final int index,
+            final jalview.binding.UserColours vUserColours)
+    throws java.lang.IndexOutOfBoundsException {
+        this._userColoursList.add(index, vUserColours);
+    }
+
+    /**
+     * 
+     * 
+     * @param vViewport
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addViewport(
+            final jalview.binding.Viewport vViewport)
+    throws java.lang.IndexOutOfBoundsException {
+        this._viewportList.addElement(vViewport);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vViewport
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addViewport(
+            final int index,
+            final jalview.binding.Viewport vViewport)
+    throws java.lang.IndexOutOfBoundsException {
+        this._viewportList.add(index, vViewport);
+    }
+
+    /**
+     * Method enumerateJGroup.
+     * 
+     * @return an Enumeration over all jalview.binding.JGroup
+     * elements
+     */
+    public java.util.Enumeration enumerateJGroup(
+    ) {
+        return this._JGroupList.elements();
+    }
+
+    /**
+     * Method enumerateJSeq.
+     * 
+     * @return an Enumeration over all jalview.binding.JSeq elements
+     */
+    public java.util.Enumeration enumerateJSeq(
+    ) {
+        return this._JSeqList.elements();
+    }
+
+    /**
+     * Method enumerateTree.
+     * 
+     * @return an Enumeration over all jalview.binding.Tree elements
+     */
+    public java.util.Enumeration enumerateTree(
+    ) {
+        return this._treeList.elements();
+    }
+
+    /**
+     * Method enumerateUserColours.
+     * 
+     * @return an Enumeration over all jalview.binding.UserColours
+     * elements
+     */
+    public java.util.Enumeration enumerateUserColours(
+    ) {
+        return this._userColoursList.elements();
+    }
+
+    /**
+     * Method enumerateViewport.
+     * 
+     * @return an Enumeration over all jalview.binding.Viewport
+     * elements
+     */
+    public java.util.Enumeration enumerateViewport(
+    ) {
+        return this._viewportList.elements();
+    }
+
+    /**
+     * Returns the value of field 'featureSettings'.
+     * 
+     * @return the value of field 'FeatureSettings'.
+     */
+    public jalview.binding.FeatureSettings getFeatureSettings(
+    ) {
+        return this._featureSettings;
+    }
+
+    /**
+     * Method getJGroup.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.JGroup at the given
+     * index
+     */
+    public jalview.binding.JGroup getJGroup(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._JGroupList.size()) {
+            throw new IndexOutOfBoundsException("getJGroup: Index value '" + index + "' not in range [0.." + (this._JGroupList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.JGroup) _JGroupList.get(index);
+    }
+
+    /**
+     * Method getJGroup.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.JGroup[] getJGroup(
+    ) {
+        jalview.binding.JGroup[] array = new jalview.binding.JGroup[0];
+        return (jalview.binding.JGroup[]) this._JGroupList.toArray(array);
+    }
+
+    /**
+     * Method getJGroupCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getJGroupCount(
+    ) {
+        return this._JGroupList.size();
+    }
+
+    /**
+     * Method getJSeq.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.JSeq at the given
+     * index
+     */
+    public jalview.binding.JSeq getJSeq(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._JSeqList.size()) {
+            throw new IndexOutOfBoundsException("getJSeq: Index value '" + index + "' not in range [0.." + (this._JSeqList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.JSeq) _JSeqList.get(index);
+    }
+
+    /**
+     * Method getJSeq.Returns the contents of the collection in an
+     * Array.  <p>Note:  Just in case the collection contents are
+     * changing in another thread, we pass a 0-length Array of the
+     * correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.JSeq[] getJSeq(
+    ) {
+        jalview.binding.JSeq[] array = new jalview.binding.JSeq[0];
+        return (jalview.binding.JSeq[]) this._JSeqList.toArray(array);
+    }
+
+    /**
+     * Method getJSeqCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getJSeqCount(
+    ) {
+        return this._JSeqList.size();
+    }
+
+    /**
+     * Method getTree.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.Tree at the given
+     * index
+     */
+    public jalview.binding.Tree getTree(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._treeList.size()) {
+            throw new IndexOutOfBoundsException("getTree: Index value '" + index + "' not in range [0.." + (this._treeList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.Tree) _treeList.get(index);
+    }
+
+    /**
+     * Method getTree.Returns the contents of the collection in an
+     * Array.  <p>Note:  Just in case the collection contents are
+     * changing in another thread, we pass a 0-length Array of the
+     * correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.Tree[] getTree(
+    ) {
+        jalview.binding.Tree[] array = new jalview.binding.Tree[0];
+        return (jalview.binding.Tree[]) this._treeList.toArray(array);
+    }
+
+    /**
+     * Method getTreeCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getTreeCount(
+    ) {
+        return this._treeList.size();
+    }
+
+    /**
+     * Method getUserColours.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.UserColours at the
+     * given index
+     */
+    public jalview.binding.UserColours getUserColours(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._userColoursList.size()) {
+            throw new IndexOutOfBoundsException("getUserColours: Index value '" + index + "' not in range [0.." + (this._userColoursList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.UserColours) _userColoursList.get(index);
+    }
+
+    /**
+     * Method getUserColours.Returns the contents of the collection
+     * in an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.UserColours[] getUserColours(
+    ) {
+        jalview.binding.UserColours[] array = new jalview.binding.UserColours[0];
+        return (jalview.binding.UserColours[]) this._userColoursList.toArray(array);
+    }
+
+    /**
+     * Method getUserColoursCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getUserColoursCount(
+    ) {
+        return this._userColoursList.size();
+    }
+
+    /**
+     * Method getViewport.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.Viewport at the
+     * given index
+     */
+    public jalview.binding.Viewport getViewport(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._viewportList.size()) {
+            throw new IndexOutOfBoundsException("getViewport: Index value '" + index + "' not in range [0.." + (this._viewportList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.Viewport) _viewportList.get(index);
+    }
+
+    /**
+     * Method getViewport.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.Viewport[] getViewport(
+    ) {
+        jalview.binding.Viewport[] array = new jalview.binding.Viewport[0];
+        return (jalview.binding.Viewport[]) this._viewportList.toArray(array);
+    }
+
+    /**
+     * Method getViewportCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getViewportCount(
+    ) {
+        return this._viewportList.size();
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllJGroup(
+    ) {
+        this._JGroupList.clear();
+    }
+
+    /**
+     */
+    public void removeAllJSeq(
+    ) {
+        this._JSeqList.clear();
+    }
+
+    /**
+     */
+    public void removeAllTree(
+    ) {
+        this._treeList.clear();
+    }
+
+    /**
+     */
+    public void removeAllUserColours(
+    ) {
+        this._userColoursList.clear();
+    }
+
+    /**
+     */
+    public void removeAllViewport(
+    ) {
+        this._viewportList.clear();
+    }
+
+    /**
+     * Method removeJGroup.
+     * 
+     * @param vJGroup
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeJGroup(
+            final jalview.binding.JGroup vJGroup) {
+        boolean removed = _JGroupList.remove(vJGroup);
+        return removed;
+    }
+
+    /**
+     * Method removeJGroupAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.JGroup removeJGroupAt(
+            final int index) {
+        java.lang.Object obj = this._JGroupList.remove(index);
+        return (jalview.binding.JGroup) obj;
+    }
+
+    /**
+     * Method removeJSeq.
+     * 
+     * @param vJSeq
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeJSeq(
+            final jalview.binding.JSeq vJSeq) {
+        boolean removed = _JSeqList.remove(vJSeq);
+        return removed;
+    }
+
+    /**
+     * Method removeJSeqAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.JSeq removeJSeqAt(
+            final int index) {
+        java.lang.Object obj = this._JSeqList.remove(index);
+        return (jalview.binding.JSeq) obj;
+    }
+
+    /**
+     * Method removeTree.
+     * 
+     * @param vTree
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeTree(
+            final jalview.binding.Tree vTree) {
+        boolean removed = _treeList.remove(vTree);
+        return removed;
+    }
+
+    /**
+     * Method removeTreeAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.Tree removeTreeAt(
+            final int index) {
+        java.lang.Object obj = this._treeList.remove(index);
+        return (jalview.binding.Tree) obj;
+    }
+
+    /**
+     * Method removeUserColours.
+     * 
+     * @param vUserColours
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeUserColours(
+            final jalview.binding.UserColours vUserColours) {
+        boolean removed = _userColoursList.remove(vUserColours);
+        return removed;
+    }
+
+    /**
+     * Method removeUserColoursAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.UserColours removeUserColoursAt(
+            final int index) {
+        java.lang.Object obj = this._userColoursList.remove(index);
+        return (jalview.binding.UserColours) obj;
+    }
+
+    /**
+     * Method removeViewport.
+     * 
+     * @param vViewport
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeViewport(
+            final jalview.binding.Viewport vViewport) {
+        boolean removed = _viewportList.remove(vViewport);
+        return removed;
+    }
+
+    /**
+     * Method removeViewportAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.Viewport removeViewportAt(
+            final int index) {
+        java.lang.Object obj = this._viewportList.remove(index);
+        return (jalview.binding.Viewport) obj;
+    }
+
+    /**
+     * Sets the value of field 'featureSettings'.
+     * 
+     * @param featureSettings the value of field 'featureSettings'.
+     */
+    public void setFeatureSettings(
+            final jalview.binding.FeatureSettings featureSettings) {
+        this._featureSettings = featureSettings;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vJGroup
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setJGroup(
+            final int index,
+            final jalview.binding.JGroup vJGroup)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._JGroupList.size()) {
+            throw new IndexOutOfBoundsException("setJGroup: Index value '" + index + "' not in range [0.." + (this._JGroupList.size() - 1) + "]");
+        }
+        
+        this._JGroupList.set(index, vJGroup);
+    }
+
+    /**
+     * 
+     * 
+     * @param vJGroupArray
+     */
+    public void setJGroup(
+            final jalview.binding.JGroup[] vJGroupArray) {
+        //-- copy array
+        _JGroupList.clear();
+        
+        for (int i = 0; i < vJGroupArray.length; i++) {
+                this._JGroupList.add(vJGroupArray[i]);
+        }
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vJSeq
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setJSeq(
+            final int index,
+            final jalview.binding.JSeq vJSeq)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._JSeqList.size()) {
+            throw new IndexOutOfBoundsException("setJSeq: Index value '" + index + "' not in range [0.." + (this._JSeqList.size() - 1) + "]");
+        }
+        
+        this._JSeqList.set(index, vJSeq);
+    }
+
+    /**
+     * 
+     * 
+     * @param vJSeqArray
+     */
+    public void setJSeq(
+            final jalview.binding.JSeq[] vJSeqArray) {
+        //-- copy array
+        _JSeqList.clear();
+        
+        for (int i = 0; i < vJSeqArray.length; i++) {
+                this._JSeqList.add(vJSeqArray[i]);
+        }
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vTree
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setTree(
+            final int index,
+            final jalview.binding.Tree vTree)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._treeList.size()) {
+            throw new IndexOutOfBoundsException("setTree: Index value '" + index + "' not in range [0.." + (this._treeList.size() - 1) + "]");
+        }
+        
+        this._treeList.set(index, vTree);
+    }
+
+    /**
+     * 
+     * 
+     * @param vTreeArray
+     */
+    public void setTree(
+            final jalview.binding.Tree[] vTreeArray) {
+        //-- copy array
+        _treeList.clear();
+        
+        for (int i = 0; i < vTreeArray.length; i++) {
+                this._treeList.add(vTreeArray[i]);
+        }
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vUserColours
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setUserColours(
+            final int index,
+            final jalview.binding.UserColours vUserColours)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._userColoursList.size()) {
+            throw new IndexOutOfBoundsException("setUserColours: Index value '" + index + "' not in range [0.." + (this._userColoursList.size() - 1) + "]");
+        }
+        
+        this._userColoursList.set(index, vUserColours);
+    }
+
+    /**
+     * 
+     * 
+     * @param vUserColoursArray
+     */
+    public void setUserColours(
+            final jalview.binding.UserColours[] vUserColoursArray) {
+        //-- copy array
+        _userColoursList.clear();
+        
+        for (int i = 0; i < vUserColoursArray.length; i++) {
+                this._userColoursList.add(vUserColoursArray[i]);
+        }
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vViewport
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setViewport(
+            final int index,
+            final jalview.binding.Viewport vViewport)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._viewportList.size()) {
+            throw new IndexOutOfBoundsException("setViewport: Index value '" + index + "' not in range [0.." + (this._viewportList.size() - 1) + "]");
+        }
+        
+        this._viewportList.set(index, vViewport);
+    }
+
+    /**
+     * 
+     * 
+     * @param vViewportArray
+     */
+    public void setViewport(
+            final jalview.binding.Viewport[] vViewportArray) {
+        //-- copy array
+        _viewportList.clear();
+        
+        for (int i = 0; i < vViewportArray.length; i++) {
+                this._viewportList.add(vViewportArray[i]);
+        }
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.JalviewModelSequence
+     */
+    public static jalview.binding.JalviewModelSequence unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.JalviewModelSequence) Unmarshaller.unmarshal(jalview.binding.JalviewModelSequence.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
index f368245..9a6465b 100644 (file)
@@ -1,31 +1,16 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-//---------------------------------/
-//- Imported classes and packages -/
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
 
-import jalview.util.MessageManager;
-
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
 
@@ -34,330 +19,312 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class JalviewUserColours implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _schemeName.
-   */
-  private java.lang.String _schemeName;
-
-  /**
-   * Jalview colour scheme document version.
-   * 
-   */
-  private java.lang.String _version;
-
-  /**
-   * Field _colourList.
-   */
-  private java.util.Vector _colourList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public JalviewUserColours()
-  {
-    super();
-    this._colourList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vColour
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addColour(final Colour vColour)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._colourList.addElement(vColour);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vColour
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addColour(final int index, final Colour vColour)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._colourList.add(index, vColour);
-  }
-
-  /**
-   * Method enumerateColour.
-   * 
-   * @return an Enumeration over all Colour elements
-   */
-  public java.util.Enumeration enumerateColour()
-  {
-    return this._colourList.elements();
-  }
-
-  /**
-   * Method getColour.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   * @return the value of the Colour at the given index
-   */
-  public Colour getColour(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._colourList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                 "getColour",
-                 Integer.valueOf(index).toString(),
-                 Integer.valueOf((this._colourList.size() - 1)).toString()
-        })); 
+public class JalviewUserColours implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _schemeName.
+     */
+    private java.lang.String _schemeName;
+
+    /**
+     * Jalview colour scheme document version.
+     *  
+     */
+    private java.lang.String _version;
+
+    /**
+     * Field _colourList.
+     */
+    private java.util.Vector _colourList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public JalviewUserColours() {
+        super();
+        this._colourList = new java.util.Vector();
     }
 
-    return (Colour) _colourList.get(index);
-  }
-
-  /**
-   * Method getColour.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public Colour[] getColour()
-  {
-    Colour[] array = new Colour[0];
-    return (Colour[]) this._colourList.toArray(array);
-  }
-
-  /**
-   * Method getColourCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getColourCount()
-  {
-    return this._colourList.size();
-  }
-
-  /**
-   * Returns the value of field 'schemeName'.
-   * 
-   * @return the value of field 'SchemeName'.
-   */
-  public java.lang.String getSchemeName()
-  {
-    return this._schemeName;
-  }
-
-  /**
-   * Returns the value of field 'version'. The field 'version' has the following
-   * description: Jalview colour scheme document version.
-   * 
-   * 
-   * @return the value of field 'Version'.
-   */
-  public java.lang.String getVersion()
-  {
-    return this._version;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vColour
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addColour(
+            final Colour vColour)
+    throws java.lang.IndexOutOfBoundsException {
+        this._colourList.addElement(vColour);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vColour
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addColour(
+            final int index,
+            final Colour vColour)
+    throws java.lang.IndexOutOfBoundsException {
+        this._colourList.add(index, vColour);
+    }
+
+    /**
+     * Method enumerateColour.
+     * 
+     * @return an Enumeration over all Colour elements
+     */
+    public java.util.Enumeration enumerateColour(
+    ) {
+        return this._colourList.elements();
+    }
+
+    /**
+     * Method getColour.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the Colour at the given index
+     */
+    public Colour getColour(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._colourList.size()) {
+            throw new IndexOutOfBoundsException("getColour: Index value '" + index + "' not in range [0.." + (this._colourList.size() - 1) + "]");
+        }
+        
+        return (Colour) _colourList.get(index);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
+
+    /**
+     * Method getColour.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public Colour[] getColour(
+    ) {
+        Colour[] array = new Colour[0];
+        return (Colour[]) this._colourList.toArray(array);
+    }
+
+    /**
+     * Method getColourCount.
+     * 
+     * @return the size of this collection
      */
-  public void removeAllColour()
-  {
-    this._colourList.clear();
-  }
-
-  /**
-   * Method removeColour.
-   * 
-   * @param vColour
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeColour(final Colour vColour)
-  {
-    boolean removed = _colourList.remove(vColour);
-    return removed;
-  }
-
-  /**
-   * Method removeColourAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public Colour removeColourAt(final int index)
-  {
-    java.lang.Object obj = this._colourList.remove(index);
-    return (Colour) obj;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vColour
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void setColour(final int index, final Colour vColour)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._colourList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                         "setColour",
-                         Integer.valueOf(index).toString(),
-                         Integer.valueOf((this._colourList.size() - 1)).toString()
-          })); 
+    public int getColourCount(
+    ) {
+        return this._colourList.size();
     }
 
-    this._colourList.set(index, vColour);
-  }
-
-  /**
-   * 
-   * 
-   * @param vColourArray
-   */
-  public void setColour(final Colour[] vColourArray)
-  {
-    // -- copy array
-    _colourList.clear();
-
-    for (int i = 0; i < vColourArray.length; i++)
-    {
-      this._colourList.add(vColourArray[i]);
+    /**
+     * Returns the value of field 'schemeName'.
+     * 
+     * @return the value of field 'SchemeName'.
+     */
+    public java.lang.String getSchemeName(
+    ) {
+        return this._schemeName;
+    }
+
+    /**
+     * Returns the value of field 'version'. The field 'version'
+     * has the following description: Jalview colour scheme
+     * document version.
+     *  
+     * 
+     * @return the value of field 'Version'.
+     */
+    public java.lang.String getVersion(
+    ) {
+        return this._version;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllColour(
+    ) {
+        this._colourList.clear();
+    }
+
+    /**
+     * Method removeColour.
+     * 
+     * @param vColour
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeColour(
+            final Colour vColour) {
+        boolean removed = _colourList.remove(vColour);
+        return removed;
+    }
+
+    /**
+     * Method removeColourAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public Colour removeColourAt(
+            final int index) {
+        java.lang.Object obj = this._colourList.remove(index);
+        return (Colour) obj;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vColour
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setColour(
+            final int index,
+            final Colour vColour)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._colourList.size()) {
+            throw new IndexOutOfBoundsException("setColour: Index value '" + index + "' not in range [0.." + (this._colourList.size() - 1) + "]");
+        }
+        
+        this._colourList.set(index, vColour);
+    }
+
+    /**
+     * 
+     * 
+     * @param vColourArray
+     */
+    public void setColour(
+            final Colour[] vColourArray) {
+        //-- copy array
+        _colourList.clear();
+        
+        for (int i = 0; i < vColourArray.length; i++) {
+                this._colourList.add(vColourArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'schemeName'.
+     * 
+     * @param schemeName the value of field 'schemeName'.
+     */
+    public void setSchemeName(
+            final java.lang.String schemeName) {
+        this._schemeName = schemeName;
+    }
+
+    /**
+     * Sets the value of field 'version'. The field 'version' has
+     * the following description: Jalview colour scheme document
+     * version.
+     *  
+     * 
+     * @param version the value of field 'version'.
+     */
+    public void setVersion(
+            final java.lang.String version) {
+        this._version = version;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.JalviewUserColours
+     */
+    public static jalview.binding.JalviewUserColours unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.JalviewUserColours) Unmarshaller.unmarshal(jalview.binding.JalviewUserColours.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-  }
-
-  /**
-   * Sets the value of field 'schemeName'.
-   * 
-   * @param schemeName
-   *          the value of field 'schemeName'.
-   */
-  public void setSchemeName(final java.lang.String schemeName)
-  {
-    this._schemeName = schemeName;
-  }
-
-  /**
-   * Sets the value of field 'version'. The field 'version' has the following
-   * description: Jalview colour scheme document version.
-   * 
-   * 
-   * @param version
-   *          the value of field 'version'.
-   */
-  public void setVersion(final java.lang.String version)
-  {
-    this._version = version;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.JalviewUserColours
-   */
-  public static jalview.binding.JalviewUserColours unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.JalviewUserColours) Unmarshaller.unmarshal(
-            jalview.binding.JalviewUserColours.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
index b2bade5..cac4cf6 100644 (file)
@@ -1,31 +1,16 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-//---------------------------------/
-//- Imported classes and packages -/
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
 
-import jalview.util.MessageManager;
-
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
 
@@ -34,330 +19,308 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Pdbentry implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _id.
-   */
-  private java.lang.String _id;
-
-  /**
-   * Field _type.
-   */
-  private java.lang.String _type;
-
-  /**
-   * Field _items.
-   */
-  private java.util.Vector _items;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Pdbentry()
-  {
-    super();
-    this._items = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vPdbentryItem
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addPdbentryItem(
-          final jalview.binding.PdbentryItem vPdbentryItem)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._items.addElement(vPdbentryItem);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vPdbentryItem
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addPdbentryItem(final int index,
-          final jalview.binding.PdbentryItem vPdbentryItem)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._items.add(index, vPdbentryItem);
-  }
-
-  /**
-   * Method enumeratePdbentryItem.
-   * 
-   * @return an Enumeration over all jalview.binding.PdbentryItem elements
-   */
-  public java.util.Enumeration enumeratePdbentryItem()
-  {
-    return this._items.elements();
-  }
-
-  /**
-   * Returns the value of field 'id'.
-   * 
-   * @return the value of field 'Id'.
-   */
-  public java.lang.String getId()
-  {
-    return this._id;
-  }
-
-  /**
-   * Method getPdbentryItem.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.PdbentryItem at the given index
-   */
-  public jalview.binding.PdbentryItem getPdbentryItem(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._items.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                 "getPdbentryItem",
-                 Integer.valueOf(index).toString(),
-                 Integer.valueOf((this._items.size() - 1)).toString()
-        })); 
+public class Pdbentry implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _id.
+     */
+    private java.lang.String _id;
+
+    /**
+     * Field _type.
+     */
+    private java.lang.String _type;
+
+    /**
+     * Field _items.
+     */
+    private java.util.Vector _items;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Pdbentry() {
+        super();
+        this._items = new java.util.Vector();
     }
 
-    return (jalview.binding.PdbentryItem) _items.get(index);
-  }
-
-  /**
-   * Method getPdbentryItem.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.PdbentryItem[] getPdbentryItem()
-  {
-    jalview.binding.PdbentryItem[] array = new jalview.binding.PdbentryItem[0];
-    return (jalview.binding.PdbentryItem[]) this._items.toArray(array);
-  }
-
-  /**
-   * Method getPdbentryItemCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getPdbentryItemCount()
-  {
-    return this._items.size();
-  }
-
-  /**
-   * Returns the value of field 'type'.
-   * 
-   * @return the value of field 'Type'.
-   */
-  public java.lang.String getType()
-  {
-    return this._type;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vPdbentryItem
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addPdbentryItem(
+            final jalview.binding.PdbentryItem vPdbentryItem)
+    throws java.lang.IndexOutOfBoundsException {
+        this._items.addElement(vPdbentryItem);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vPdbentryItem
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addPdbentryItem(
+            final int index,
+            final jalview.binding.PdbentryItem vPdbentryItem)
+    throws java.lang.IndexOutOfBoundsException {
+        this._items.add(index, vPdbentryItem);
+    }
+
+    /**
+     * Method enumeratePdbentryItem.
+     * 
+     * @return an Enumeration over all jalview.binding.PdbentryItem
+     * elements
+     */
+    public java.util.Enumeration enumeratePdbentryItem(
+    ) {
+        return this._items.elements();
+    }
+
+    /**
+     * Returns the value of field 'id'.
+     * 
+     * @return the value of field 'Id'.
+     */
+    public java.lang.String getId(
+    ) {
+        return this._id;
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
+
+    /**
+     * Method getPdbentryItem.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.PdbentryItem at the
+     * given index
+     */
+    public jalview.binding.PdbentryItem getPdbentryItem(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._items.size()) {
+            throw new IndexOutOfBoundsException("getPdbentryItem: Index value '" + index + "' not in range [0.." + (this._items.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.PdbentryItem) _items.get(index);
+    }
+
+    /**
+     * Method getPdbentryItem.Returns the contents of the
+     * collection in an Array.  <p>Note:  Just in case the
+     * collection contents are changing in another thread, we pass
+     * a 0-length Array of the correct type into the API call. 
+     * This way we <i>know</i> that the Array returned is of
+     * exactly the correct length.
+     * 
+     * @return this collection as an Array
      */
-  public void removeAllPdbentryItem()
-  {
-    this._items.clear();
-  }
-
-  /**
-   * Method removePdbentryItem.
-   * 
-   * @param vPdbentryItem
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removePdbentryItem(
-          final jalview.binding.PdbentryItem vPdbentryItem)
-  {
-    boolean removed = _items.remove(vPdbentryItem);
-    return removed;
-  }
-
-  /**
-   * Method removePdbentryItemAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.PdbentryItem removePdbentryItemAt(final int index)
-  {
-    java.lang.Object obj = this._items.remove(index);
-    return (jalview.binding.PdbentryItem) obj;
-  }
-
-  /**
-   * Sets the value of field 'id'.
-   * 
-   * @param id
-   *          the value of field 'id'.
-   */
-  public void setId(final java.lang.String id)
-  {
-    this._id = id;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vPdbentryItem
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void setPdbentryItem(final int index,
-          final jalview.binding.PdbentryItem vPdbentryItem)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._items.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                         "setPdbentryItem",
-                         Integer.valueOf(index).toString(),
-                         Integer.valueOf((this._items.size() - 1)).toString()
-          })); 
+    public jalview.binding.PdbentryItem[] getPdbentryItem(
+    ) {
+        jalview.binding.PdbentryItem[] array = new jalview.binding.PdbentryItem[0];
+        return (jalview.binding.PdbentryItem[]) this._items.toArray(array);
     }
 
-    this._items.set(index, vPdbentryItem);
-  }
-
-  /**
-   * 
-   * 
-   * @param vPdbentryItemArray
-   */
-  public void setPdbentryItem(
-          final jalview.binding.PdbentryItem[] vPdbentryItemArray)
-  {
-    // -- copy array
-    _items.clear();
-
-    for (int i = 0; i < vPdbentryItemArray.length; i++)
-    {
-      this._items.add(vPdbentryItemArray[i]);
+    /**
+     * Method getPdbentryItemCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getPdbentryItemCount(
+    ) {
+        return this._items.size();
+    }
+
+    /**
+     * Returns the value of field 'type'.
+     * 
+     * @return the value of field 'Type'.
+     */
+    public java.lang.String getType(
+    ) {
+        return this._type;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllPdbentryItem(
+    ) {
+        this._items.clear();
+    }
+
+    /**
+     * Method removePdbentryItem.
+     * 
+     * @param vPdbentryItem
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removePdbentryItem(
+            final jalview.binding.PdbentryItem vPdbentryItem) {
+        boolean removed = _items.remove(vPdbentryItem);
+        return removed;
+    }
+
+    /**
+     * Method removePdbentryItemAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.PdbentryItem removePdbentryItemAt(
+            final int index) {
+        java.lang.Object obj = this._items.remove(index);
+        return (jalview.binding.PdbentryItem) obj;
+    }
+
+    /**
+     * Sets the value of field 'id'.
+     * 
+     * @param id the value of field 'id'.
+     */
+    public void setId(
+            final java.lang.String id) {
+        this._id = id;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vPdbentryItem
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setPdbentryItem(
+            final int index,
+            final jalview.binding.PdbentryItem vPdbentryItem)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._items.size()) {
+            throw new IndexOutOfBoundsException("setPdbentryItem: Index value '" + index + "' not in range [0.." + (this._items.size() - 1) + "]");
+        }
+        
+        this._items.set(index, vPdbentryItem);
+    }
+
+    /**
+     * 
+     * 
+     * @param vPdbentryItemArray
+     */
+    public void setPdbentryItem(
+            final jalview.binding.PdbentryItem[] vPdbentryItemArray) {
+        //-- copy array
+        _items.clear();
+        
+        for (int i = 0; i < vPdbentryItemArray.length; i++) {
+                this._items.add(vPdbentryItemArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'type'.
+     * 
+     * @param type the value of field 'type'.
+     */
+    public void setType(
+            final java.lang.String type) {
+        this._type = type;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.Pdbentry
+     */
+    public static jalview.binding.Pdbentry unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.Pdbentry) Unmarshaller.unmarshal(jalview.binding.Pdbentry.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-  }
-
-  /**
-   * Sets the value of field 'type'.
-   * 
-   * @param type
-   *          the value of field 'type'.
-   */
-  public void setType(final java.lang.String type)
-  {
-    this._type = type;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.Pdbentry
-   */
-  public static jalview.binding.Pdbentry unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.Pdbentry) Unmarshaller.unmarshal(
-            jalview.binding.Pdbentry.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
index 2e8d77d..83bc40a 100644 (file)
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
-package jalview.binding;
 
-import jalview.util.MessageManager;
+package jalview.binding;
 
 /**
  * Class PdbentryItem.
  * 
  * @version $Revision$ $Date$
  */
-public class PdbentryItem implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _propertyList.
-   */
-  private java.util.Vector _propertyList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public PdbentryItem()
-  {
-    super();
-    this._propertyList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vProperty
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addProperty(final jalview.binding.Property vProperty)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._propertyList.addElement(vProperty);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vProperty
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addProperty(final int index,
-          final jalview.binding.Property vProperty)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._propertyList.add(index, vProperty);
-  }
-
-  /**
-   * Method enumerateProperty.
-   * 
-   * @return an Enumeration over all jalview.binding.Property elements
-   */
-  public java.util.Enumeration enumerateProperty()
-  {
-    return this._propertyList.elements();
-  }
-
-  /**
-   * Method getProperty.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.Property at the given index
-   */
-  public jalview.binding.Property getProperty(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._propertyList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                 "getProperty",
-                 Integer.valueOf(index).toString(),
-                 Integer.valueOf((this._propertyList.size() - 1)).toString()
-        })); 
+public class PdbentryItem implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _propertyList.
+     */
+    private java.util.Vector _propertyList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public PdbentryItem() {
+        super();
+        this._propertyList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vProperty
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addProperty(
+            final jalview.binding.Property vProperty)
+    throws java.lang.IndexOutOfBoundsException {
+        this._propertyList.addElement(vProperty);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vProperty
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addProperty(
+            final int index,
+            final jalview.binding.Property vProperty)
+    throws java.lang.IndexOutOfBoundsException {
+        this._propertyList.add(index, vProperty);
+    }
+
+    /**
+     * Method enumerateProperty.
+     * 
+     * @return an Enumeration over all jalview.binding.Property
+     * elements
+     */
+    public java.util.Enumeration enumerateProperty(
+    ) {
+        return this._propertyList.elements();
+    }
+
+    /**
+     * Method getProperty.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.Property at the
+     * given index
+     */
+    public jalview.binding.Property getProperty(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._propertyList.size()) {
+            throw new IndexOutOfBoundsException("getProperty: Index value '" + index + "' not in range [0.." + (this._propertyList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.Property) _propertyList.get(index);
+    }
+
+    /**
+     * Method getProperty.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.Property[] getProperty(
+    ) {
+        jalview.binding.Property[] array = new jalview.binding.Property[0];
+        return (jalview.binding.Property[]) this._propertyList.toArray(array);
+    }
+
+    /**
+     * Method getPropertyCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getPropertyCount(
+    ) {
+        return this._propertyList.size();
     }
 
-    return (jalview.binding.Property) _propertyList.get(index);
-  }
-
-  /**
-   * Method getProperty.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.Property[] getProperty()
-  {
-    jalview.binding.Property[] array = new jalview.binding.Property[0];
-    return (jalview.binding.Property[]) this._propertyList.toArray(array);
-  }
-
-  /**
-   * Method getPropertyCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getPropertyCount()
-  {
-    return this._propertyList.size();
-  }
-
-  /**
+    /**
      */
-  public void removeAllProperty()
-  {
-    this._propertyList.clear();
-  }
-
-  /**
-   * Method removeProperty.
-   * 
-   * @param vProperty
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeProperty(final jalview.binding.Property vProperty)
-  {
-    boolean removed = _propertyList.remove(vProperty);
-    return removed;
-  }
-
-  /**
-   * Method removePropertyAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.Property removePropertyAt(final int index)
-  {
-    java.lang.Object obj = this._propertyList.remove(index);
-    return (jalview.binding.Property) obj;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vProperty
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void setProperty(final int index,
-          final jalview.binding.Property vProperty)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._propertyList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                         "setProperty",
-                         Integer.valueOf(index).toString(),
-                         Integer.valueOf((this._propertyList.size() - 1)).toString()
-          })); 
+    public void removeAllProperty(
+    ) {
+        this._propertyList.clear();
     }
 
-    this._propertyList.set(index, vProperty);
-  }
-
-  /**
-   * 
-   * 
-   * @param vPropertyArray
-   */
-  public void setProperty(final jalview.binding.Property[] vPropertyArray)
-  {
-    // -- copy array
-    _propertyList.clear();
-
-    for (int i = 0; i < vPropertyArray.length; i++)
-    {
-      this._propertyList.add(vPropertyArray[i]);
+    /**
+     * Method removeProperty.
+     * 
+     * @param vProperty
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeProperty(
+            final jalview.binding.Property vProperty) {
+        boolean removed = _propertyList.remove(vProperty);
+        return removed;
+    }
+
+    /**
+     * Method removePropertyAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.Property removePropertyAt(
+            final int index) {
+        java.lang.Object obj = this._propertyList.remove(index);
+        return (jalview.binding.Property) obj;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vProperty
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setProperty(
+            final int index,
+            final jalview.binding.Property vProperty)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._propertyList.size()) {
+            throw new IndexOutOfBoundsException("setProperty: Index value '" + index + "' not in range [0.." + (this._propertyList.size() - 1) + "]");
+        }
+        
+        this._propertyList.set(index, vProperty);
+    }
+
+    /**
+     * 
+     * 
+     * @param vPropertyArray
+     */
+    public void setProperty(
+            final jalview.binding.Property[] vPropertyArray) {
+        //-- copy array
+        _propertyList.clear();
+        
+        for (int i = 0; i < vPropertyArray.length; i++) {
+                this._propertyList.add(vPropertyArray[i]);
+        }
     }
-  }
 
 }
index a37f249..b4745a2 100644 (file)
@@ -1,27 +1,14 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-//---------------------------------/
-//- Imported classes and packages -/
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
@@ -32,106 +19,98 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Pdbids extends Pdbentry implements java.io.Serializable
+public class Pdbids extends Pdbentry 
+implements java.io.Serializable
 {
 
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
 
-  public Pdbids()
-  {
-    super();
-  }
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Pdbids() {
+        super();
+    }
+
 
-  // -----------/
-  // - Methods -/
-  // -----------/
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
     }
-    return true;
-  }
 
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
 
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
 
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.Pdbentry
-   */
-  public static jalview.binding.Pdbentry unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.Pdbentry) Unmarshaller.unmarshal(
-            jalview.binding.Pdbids.class, reader);
-  }
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.Pdbentry
+     */
+    public static jalview.binding.Pdbentry unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.Pdbentry) Unmarshaller.unmarshal(jalview.binding.Pdbids.class, reader);
+    }
 
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
index 8a3eb8c..f1114f7 100644 (file)
@@ -1,27 +1,14 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-//---------------------------------/
-//- Imported classes and packages -/
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
@@ -32,162 +19,151 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Property implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _name.
-   */
-  private java.lang.String _name;
-
-  /**
-   * Field _value.
-   */
-  private java.lang.String _value;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Property()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Returns the value of field 'name'.
-   * 
-   * @return the value of field 'Name'.
-   */
-  public java.lang.String getName()
-  {
-    return this._name;
-  }
-
-  /**
-   * Returns the value of field 'value'.
-   * 
-   * @return the value of field 'Value'.
-   */
-  public java.lang.String getValue()
-  {
-    return this._value;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class Property implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _name.
+     */
+    private java.lang.String _name;
+
+    /**
+     * Field _value.
+     */
+    private java.lang.String _value;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Property() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Returns the value of field 'name'.
+     * 
+     * @return the value of field 'Name'.
+     */
+    public java.lang.String getName(
+    ) {
+        return this._name;
+    }
+
+    /**
+     * Returns the value of field 'value'.
+     * 
+     * @return the value of field 'Value'.
+     */
+    public java.lang.String getValue(
+    ) {
+        return this._value;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'name'.
+     * 
+     * @param name the value of field 'name'.
+     */
+    public void setName(
+            final java.lang.String name) {
+        this._name = name;
+    }
+
+    /**
+     * Sets the value of field 'value'.
+     * 
+     * @param value the value of field 'value'.
+     */
+    public void setValue(
+            final java.lang.String value) {
+        this._value = value;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.Property
+     */
+    public static jalview.binding.Property unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.Property) Unmarshaller.unmarshal(jalview.binding.Property.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'name'.
-   * 
-   * @param name
-   *          the value of field 'name'.
-   */
-  public void setName(final java.lang.String name)
-  {
-    this._name = name;
-  }
-
-  /**
-   * Sets the value of field 'value'.
-   * 
-   * @param value
-   *          the value of field 'value'.
-   */
-  public void setValue(final java.lang.String value)
-  {
-    this._value = value;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.Property
-   */
-  public static jalview.binding.Property unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.Property) Unmarshaller.unmarshal(
-            jalview.binding.Property.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
index 17762a3..9c8cbc2 100644 (file)
@@ -1,27 +1,14 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-//---------------------------------/
-//- Imported classes and packages -/
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
@@ -32,106 +19,98 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Sequence extends SequenceType implements java.io.Serializable
+public class Sequence extends SequenceType 
+implements java.io.Serializable
 {
 
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
 
-  public Sequence()
-  {
-    super();
-  }
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Sequence() {
+        super();
+    }
+
 
-  // -----------/
-  // - Methods -/
-  // -----------/
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
     }
-    return true;
-  }
 
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
 
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
 
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.SequenceType
-   */
-  public static jalview.binding.SequenceType unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.SequenceType) Unmarshaller.unmarshal(
-            jalview.binding.Sequence.class, reader);
-  }
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.SequenceType
+     */
+    public static jalview.binding.SequenceType unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.SequenceType) Unmarshaller.unmarshal(jalview.binding.Sequence.class, reader);
+    }
 
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
index 05da739..13a9020 100644 (file)
@@ -1,30 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
-//- Imported classes and packages -/
-//---------------------------------/
-
-import jalview.util.MessageManager;
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -34,528 +19,496 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class SequenceSet implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _gapChar.
-   */
-  private java.lang.String _gapChar;
-
-  /**
-   * Field _aligned.
-   */
-  private boolean _aligned;
-
-  /**
-   * keeps track of state for field: _aligned
-   */
-  private boolean _has_aligned;
-
-  /**
-   * Field _sequenceList.
-   */
-  private java.util.Vector _sequenceList;
-
-  /**
-   * Field _annotationList.
-   */
-  private java.util.Vector _annotationList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public SequenceSet()
-  {
-    super();
-    this._sequenceList = new java.util.Vector();
-    this._annotationList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vAnnotation
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addAnnotation(final jalview.binding.Annotation vAnnotation)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._annotationList.addElement(vAnnotation);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vAnnotation
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addAnnotation(final int index,
-          final jalview.binding.Annotation vAnnotation)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._annotationList.add(index, vAnnotation);
-  }
-
-  /**
-   * 
-   * 
-   * @param vSequence
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addSequence(final jalview.binding.Sequence vSequence)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._sequenceList.addElement(vSequence);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSequence
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addSequence(final int index,
-          final jalview.binding.Sequence vSequence)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._sequenceList.add(index, vSequence);
-  }
-
-  /**
-     */
-  public void deleteAligned()
-  {
-    this._has_aligned = false;
-  }
-
-  /**
-   * Method enumerateAnnotation.
-   * 
-   * @return an Enumeration over all jalview.binding.Annotation elements
-   */
-  public java.util.Enumeration enumerateAnnotation()
-  {
-    return this._annotationList.elements();
-  }
-
-  /**
-   * Method enumerateSequence.
-   * 
-   * @return an Enumeration over all jalview.binding.Sequence elements
-   */
-  public java.util.Enumeration enumerateSequence()
-  {
-    return this._sequenceList.elements();
-  }
-
-  /**
-   * Returns the value of field 'aligned'.
-   * 
-   * @return the value of field 'Aligned'.
-   */
-  public boolean getAligned()
-  {
-    return this._aligned;
-  }
-
-  /**
-   * Method getAnnotation.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.Annotation at the given index
-   */
-  public jalview.binding.Annotation getAnnotation(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._annotationList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                 "getAnnotation",
-                 Integer.valueOf(index).toString(),
-                 Integer.valueOf((this._annotationList.size() - 1)).toString()
-        })); 
-    }
-
-    return (jalview.binding.Annotation) _annotationList.get(index);
-  }
-
-  /**
-   * Method getAnnotation.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.Annotation[] getAnnotation()
-  {
-    jalview.binding.Annotation[] array = new jalview.binding.Annotation[0];
-    return (jalview.binding.Annotation[]) this._annotationList
-            .toArray(array);
-  }
-
-  /**
-   * Method getAnnotationCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getAnnotationCount()
-  {
-    return this._annotationList.size();
-  }
-
-  /**
-   * Returns the value of field 'gapChar'.
-   * 
-   * @return the value of field 'GapChar'.
-   */
-  public java.lang.String getGapChar()
-  {
-    return this._gapChar;
-  }
-
-  /**
-   * Method getSequence.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.Sequence at the given index
-   */
-  public jalview.binding.Sequence getSequence(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._sequenceList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                         "getSequence",
-                         Integer.valueOf(index).toString(),
-                         Integer.valueOf((this._sequenceList.size() - 1)).toString()
-          })); 
-    }
-
-    return (jalview.binding.Sequence) _sequenceList.get(index);
-  }
-
-  /**
-   * Method getSequence.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.Sequence[] getSequence()
-  {
-    jalview.binding.Sequence[] array = new jalview.binding.Sequence[0];
-    return (jalview.binding.Sequence[]) this._sequenceList.toArray(array);
-  }
-
-  /**
-   * Method getSequenceCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getSequenceCount()
-  {
-    return this._sequenceList.size();
-  }
-
-  /**
-   * Method hasAligned.
-   * 
-   * @return true if at least one Aligned has been added
-   */
-  public boolean hasAligned()
-  {
-    return this._has_aligned;
-  }
-
-  /**
-   * Returns the value of field 'aligned'.
-   * 
-   * @return the value of field 'Aligned'.
-   */
-  public boolean isAligned()
-  {
-    return this._aligned;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-     */
-  public void removeAllAnnotation()
-  {
-    this._annotationList.clear();
-  }
-
-  /**
-     */
-  public void removeAllSequence()
-  {
-    this._sequenceList.clear();
-  }
-
-  /**
-   * Method removeAnnotation.
-   * 
-   * @param vAnnotation
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeAnnotation(
-          final jalview.binding.Annotation vAnnotation)
-  {
-    boolean removed = _annotationList.remove(vAnnotation);
-    return removed;
-  }
-
-  /**
-   * Method removeAnnotationAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.Annotation removeAnnotationAt(final int index)
-  {
-    java.lang.Object obj = this._annotationList.remove(index);
-    return (jalview.binding.Annotation) obj;
-  }
-
-  /**
-   * Method removeSequence.
-   * 
-   * @param vSequence
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeSequence(final jalview.binding.Sequence vSequence)
-  {
-    boolean removed = _sequenceList.remove(vSequence);
-    return removed;
-  }
-
-  /**
-   * Method removeSequenceAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.Sequence removeSequenceAt(final int index)
-  {
-    java.lang.Object obj = this._sequenceList.remove(index);
-    return (jalview.binding.Sequence) obj;
-  }
-
-  /**
-   * Sets the value of field 'aligned'.
-   * 
-   * @param aligned
-   *          the value of field 'aligned'.
-   */
-  public void setAligned(final boolean aligned)
-  {
-    this._aligned = aligned;
-    this._has_aligned = true;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vAnnotation
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void setAnnotation(final int index,
-          final jalview.binding.Annotation vAnnotation)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._annotationList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                 "setAnnotation",
-                 Integer.valueOf(index).toString(),
-                 Integer.valueOf((this._annotationList.size() - 1)).toString()
-        })); 
-    }
-
-    this._annotationList.set(index, vAnnotation);
-  }
-
-  /**
-   * 
-   * 
-   * @param vAnnotationArray
-   */
-  public void setAnnotation(
-          final jalview.binding.Annotation[] vAnnotationArray)
-  {
-    // -- copy array
-    _annotationList.clear();
-
-    for (int i = 0; i < vAnnotationArray.length; i++)
-    {
-      this._annotationList.add(vAnnotationArray[i]);
-    }
-  }
-
-  /**
-   * Sets the value of field 'gapChar'.
-   * 
-   * @param gapChar
-   *          the value of field 'gapChar'.
-   */
-  public void setGapChar(final java.lang.String gapChar)
-  {
-    this._gapChar = gapChar;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSequence
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void setSequence(final int index,
-          final jalview.binding.Sequence vSequence)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._sequenceList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                         "setSequence",
-                         Integer.valueOf(index).toString(),
-                         Integer.valueOf((this._sequenceList.size() - 1)).toString()
-          })); 
-    }
-
-    this._sequenceList.set(index, vSequence);
-  }
-
-  /**
-   * 
-   * 
-   * @param vSequenceArray
-   */
-  public void setSequence(final jalview.binding.Sequence[] vSequenceArray)
-  {
-    // -- copy array
-    _sequenceList.clear();
-
-    for (int i = 0; i < vSequenceArray.length; i++)
-    {
-      this._sequenceList.add(vSequenceArray[i]);
-    }
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.SequenceSet
-   */
-  public static jalview.binding.SequenceSet unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.SequenceSet) Unmarshaller.unmarshal(
-            jalview.binding.SequenceSet.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class SequenceSet implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _gapChar.
+     */
+    private java.lang.String _gapChar;
+
+    /**
+     * Field _aligned.
+     */
+    private boolean _aligned;
+
+    /**
+     * keeps track of state for field: _aligned
+     */
+    private boolean _has_aligned;
+
+    /**
+     * Field _sequenceList.
+     */
+    private java.util.Vector _sequenceList;
+
+    /**
+     * Field _annotationList.
+     */
+    private java.util.Vector _annotationList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public SequenceSet() {
+        super();
+        this._sequenceList = new java.util.Vector();
+        this._annotationList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vAnnotation
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addAnnotation(
+            final jalview.binding.Annotation vAnnotation)
+    throws java.lang.IndexOutOfBoundsException {
+        this._annotationList.addElement(vAnnotation);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vAnnotation
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addAnnotation(
+            final int index,
+            final jalview.binding.Annotation vAnnotation)
+    throws java.lang.IndexOutOfBoundsException {
+        this._annotationList.add(index, vAnnotation);
+    }
+
+    /**
+     * 
+     * 
+     * @param vSequence
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSequence(
+            final jalview.binding.Sequence vSequence)
+    throws java.lang.IndexOutOfBoundsException {
+        this._sequenceList.addElement(vSequence);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSequence
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSequence(
+            final int index,
+            final jalview.binding.Sequence vSequence)
+    throws java.lang.IndexOutOfBoundsException {
+        this._sequenceList.add(index, vSequence);
+    }
+
+    /**
+     */
+    public void deleteAligned(
+    ) {
+        this._has_aligned= false;
+    }
+
+    /**
+     * Method enumerateAnnotation.
+     * 
+     * @return an Enumeration over all jalview.binding.Annotation
+     * elements
+     */
+    public java.util.Enumeration enumerateAnnotation(
+    ) {
+        return this._annotationList.elements();
+    }
+
+    /**
+     * Method enumerateSequence.
+     * 
+     * @return an Enumeration over all jalview.binding.Sequence
+     * elements
+     */
+    public java.util.Enumeration enumerateSequence(
+    ) {
+        return this._sequenceList.elements();
+    }
+
+    /**
+     * Returns the value of field 'aligned'.
+     * 
+     * @return the value of field 'Aligned'.
+     */
+    public boolean getAligned(
+    ) {
+        return this._aligned;
+    }
+
+    /**
+     * Method getAnnotation.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.Annotation at the
+     * given index
+     */
+    public jalview.binding.Annotation getAnnotation(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._annotationList.size()) {
+            throw new IndexOutOfBoundsException("getAnnotation: Index value '" + index + "' not in range [0.." + (this._annotationList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.Annotation) _annotationList.get(index);
+    }
+
+    /**
+     * Method getAnnotation.Returns the contents of the collection
+     * in an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.Annotation[] getAnnotation(
+    ) {
+        jalview.binding.Annotation[] array = new jalview.binding.Annotation[0];
+        return (jalview.binding.Annotation[]) this._annotationList.toArray(array);
+    }
+
+    /**
+     * Method getAnnotationCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getAnnotationCount(
+    ) {
+        return this._annotationList.size();
+    }
+
+    /**
+     * Returns the value of field 'gapChar'.
+     * 
+     * @return the value of field 'GapChar'.
+     */
+    public java.lang.String getGapChar(
+    ) {
+        return this._gapChar;
+    }
+
+    /**
+     * Method getSequence.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.Sequence at the
+     * given index
+     */
+    public jalview.binding.Sequence getSequence(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._sequenceList.size()) {
+            throw new IndexOutOfBoundsException("getSequence: Index value '" + index + "' not in range [0.." + (this._sequenceList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.Sequence) _sequenceList.get(index);
+    }
+
+    /**
+     * Method getSequence.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.Sequence[] getSequence(
+    ) {
+        jalview.binding.Sequence[] array = new jalview.binding.Sequence[0];
+        return (jalview.binding.Sequence[]) this._sequenceList.toArray(array);
+    }
+
+    /**
+     * Method getSequenceCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getSequenceCount(
+    ) {
+        return this._sequenceList.size();
+    }
+
+    /**
+     * Method hasAligned.
+     * 
+     * @return true if at least one Aligned has been added
+     */
+    public boolean hasAligned(
+    ) {
+        return this._has_aligned;
+    }
+
+    /**
+     * Returns the value of field 'aligned'.
+     * 
+     * @return the value of field 'Aligned'.
+     */
+    public boolean isAligned(
+    ) {
+        return this._aligned;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllAnnotation(
+    ) {
+        this._annotationList.clear();
+    }
+
+    /**
+     */
+    public void removeAllSequence(
+    ) {
+        this._sequenceList.clear();
+    }
+
+    /**
+     * Method removeAnnotation.
+     * 
+     * @param vAnnotation
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeAnnotation(
+            final jalview.binding.Annotation vAnnotation) {
+        boolean removed = _annotationList.remove(vAnnotation);
+        return removed;
+    }
+
+    /**
+     * Method removeAnnotationAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.Annotation removeAnnotationAt(
+            final int index) {
+        java.lang.Object obj = this._annotationList.remove(index);
+        return (jalview.binding.Annotation) obj;
+    }
+
+    /**
+     * Method removeSequence.
+     * 
+     * @param vSequence
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeSequence(
+            final jalview.binding.Sequence vSequence) {
+        boolean removed = _sequenceList.remove(vSequence);
+        return removed;
+    }
+
+    /**
+     * Method removeSequenceAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.Sequence removeSequenceAt(
+            final int index) {
+        java.lang.Object obj = this._sequenceList.remove(index);
+        return (jalview.binding.Sequence) obj;
+    }
+
+    /**
+     * Sets the value of field 'aligned'.
+     * 
+     * @param aligned the value of field 'aligned'.
+     */
+    public void setAligned(
+            final boolean aligned) {
+        this._aligned = aligned;
+        this._has_aligned = true;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vAnnotation
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setAnnotation(
+            final int index,
+            final jalview.binding.Annotation vAnnotation)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._annotationList.size()) {
+            throw new IndexOutOfBoundsException("setAnnotation: Index value '" + index + "' not in range [0.." + (this._annotationList.size() - 1) + "]");
+        }
+        
+        this._annotationList.set(index, vAnnotation);
+    }
+
+    /**
+     * 
+     * 
+     * @param vAnnotationArray
+     */
+    public void setAnnotation(
+            final jalview.binding.Annotation[] vAnnotationArray) {
+        //-- copy array
+        _annotationList.clear();
+        
+        for (int i = 0; i < vAnnotationArray.length; i++) {
+                this._annotationList.add(vAnnotationArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'gapChar'.
+     * 
+     * @param gapChar the value of field 'gapChar'.
+     */
+    public void setGapChar(
+            final java.lang.String gapChar) {
+        this._gapChar = gapChar;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSequence
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setSequence(
+            final int index,
+            final jalview.binding.Sequence vSequence)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._sequenceList.size()) {
+            throw new IndexOutOfBoundsException("setSequence: Index value '" + index + "' not in range [0.." + (this._sequenceList.size() - 1) + "]");
+        }
+        
+        this._sequenceList.set(index, vSequence);
+    }
+
+    /**
+     * 
+     * 
+     * @param vSequenceArray
+     */
+    public void setSequence(
+            final jalview.binding.Sequence[] vSequenceArray) {
+        //-- copy array
+        _sequenceList.clear();
+        
+        for (int i = 0; i < vSequenceArray.length; i++) {
+                this._sequenceList.add(vSequenceArray[i]);
+        }
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.SequenceSet
+     */
+    public static jalview.binding.SequenceSet unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.SequenceSet) Unmarshaller.unmarshal(jalview.binding.SequenceSet.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
index c23a93b..1bb2a62 100644 (file)
@@ -1,27 +1,14 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-//---------------------------------/
-//- Imported classes and packages -/
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
@@ -32,188 +19,176 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class SequenceType implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _id.
-   */
-  private java.lang.String _id;
-
-  /**
-   * Field _sequence.
-   */
-  private java.lang.String _sequence;
-
-  /**
-   * Field _name.
-   */
-  private java.lang.String _name;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public SequenceType()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Returns the value of field 'id'.
-   * 
-   * @return the value of field 'Id'.
-   */
-  public java.lang.String getId()
-  {
-    return this._id;
-  }
-
-  /**
-   * Returns the value of field 'name'.
-   * 
-   * @return the value of field 'Name'.
-   */
-  public java.lang.String getName()
-  {
-    return this._name;
-  }
-
-  /**
-   * Returns the value of field 'sequence'.
-   * 
-   * @return the value of field 'Sequence'.
-   */
-  public java.lang.String getSequence()
-  {
-    return this._sequence;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class SequenceType implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _id.
+     */
+    private java.lang.String _id;
+
+    /**
+     * Field _sequence.
+     */
+    private java.lang.String _sequence;
+
+    /**
+     * Field _name.
+     */
+    private java.lang.String _name;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public SequenceType() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Returns the value of field 'id'.
+     * 
+     * @return the value of field 'Id'.
+     */
+    public java.lang.String getId(
+    ) {
+        return this._id;
+    }
+
+    /**
+     * Returns the value of field 'name'.
+     * 
+     * @return the value of field 'Name'.
+     */
+    public java.lang.String getName(
+    ) {
+        return this._name;
+    }
+
+    /**
+     * Returns the value of field 'sequence'.
+     * 
+     * @return the value of field 'Sequence'.
+     */
+    public java.lang.String getSequence(
+    ) {
+        return this._sequence;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'id'.
+     * 
+     * @param id the value of field 'id'.
+     */
+    public void setId(
+            final java.lang.String id) {
+        this._id = id;
+    }
+
+    /**
+     * Sets the value of field 'name'.
+     * 
+     * @param name the value of field 'name'.
+     */
+    public void setName(
+            final java.lang.String name) {
+        this._name = name;
+    }
+
+    /**
+     * Sets the value of field 'sequence'.
+     * 
+     * @param sequence the value of field 'sequence'.
+     */
+    public void setSequence(
+            final java.lang.String sequence) {
+        this._sequence = sequence;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.SequenceType
+     */
+    public static jalview.binding.SequenceType unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.SequenceType) Unmarshaller.unmarshal(jalview.binding.SequenceType.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'id'.
-   * 
-   * @param id
-   *          the value of field 'id'.
-   */
-  public void setId(final java.lang.String id)
-  {
-    this._id = id;
-  }
-
-  /**
-   * Sets the value of field 'name'.
-   * 
-   * @param name
-   *          the value of field 'name'.
-   */
-  public void setName(final java.lang.String name)
-  {
-    this._name = name;
-  }
-
-  /**
-   * Sets the value of field 'sequence'.
-   * 
-   * @param sequence
-   *          the value of field 'sequence'.
-   */
-  public void setSequence(final java.lang.String sequence)
-  {
-    this._sequence = sequence;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.SequenceType
-   */
-  public static jalview.binding.SequenceType unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.SequenceType) Unmarshaller.unmarshal(
-            jalview.binding.SequenceType.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
index bde410f..9cd84b4 100644 (file)
@@ -1,27 +1,14 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-//---------------------------------/
-//- Imported classes and packages -/
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
@@ -32,244 +19,232 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Setting implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _type.
-   */
-  private java.lang.String _type;
-
-  /**
-   * Field _colour.
-   */
-  private int _colour;
-
-  /**
-   * keeps track of state for field: _colour
-   */
-  private boolean _has_colour;
-
-  /**
-   * Field _display.
-   */
-  private boolean _display;
-
-  /**
-   * keeps track of state for field: _display
-   */
-  private boolean _has_display;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Setting()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
+public class Setting implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _type.
+     */
+    private java.lang.String _type;
+
+    /**
+     * Field _colour.
+     */
+    private int _colour;
+
+    /**
+     * keeps track of state for field: _colour
+     */
+    private boolean _has_colour;
+
+    /**
+     * Field _display.
+     */
+    private boolean _display;
+
+    /**
+     * keeps track of state for field: _display
+     */
+    private boolean _has_display;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Setting() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
      */
-  public void deleteColour()
-  {
-    this._has_colour = false;
-  }
+    public void deleteColour(
+    ) {
+        this._has_colour= false;
+    }
+
+    /**
+     */
+    public void deleteDisplay(
+    ) {
+        this._has_display= false;
+    }
+
+    /**
+     * Returns the value of field 'colour'.
+     * 
+     * @return the value of field 'Colour'.
+     */
+    public int getColour(
+    ) {
+        return this._colour;
+    }
+
+    /**
+     * Returns the value of field 'display'.
+     * 
+     * @return the value of field 'Display'.
+     */
+    public boolean getDisplay(
+    ) {
+        return this._display;
+    }
+
+    /**
+     * Returns the value of field 'type'.
+     * 
+     * @return the value of field 'Type'.
+     */
+    public java.lang.String getType(
+    ) {
+        return this._type;
+    }
+
+    /**
+     * Method hasColour.
+     * 
+     * @return true if at least one Colour has been added
+     */
+    public boolean hasColour(
+    ) {
+        return this._has_colour;
+    }
+
+    /**
+     * Method hasDisplay.
+     * 
+     * @return true if at least one Display has been added
+     */
+    public boolean hasDisplay(
+    ) {
+        return this._has_display;
+    }
+
+    /**
+     * Returns the value of field 'display'.
+     * 
+     * @return the value of field 'Display'.
+     */
+    public boolean isDisplay(
+    ) {
+        return this._display;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'colour'.
+     * 
+     * @param colour the value of field 'colour'.
+     */
+    public void setColour(
+            final int colour) {
+        this._colour = colour;
+        this._has_colour = true;
+    }
+
+    /**
+     * Sets the value of field 'display'.
+     * 
+     * @param display the value of field 'display'.
+     */
+    public void setDisplay(
+            final boolean display) {
+        this._display = display;
+        this._has_display = true;
+    }
+
+    /**
+     * Sets the value of field 'type'.
+     * 
+     * @param type the value of field 'type'.
+     */
+    public void setType(
+            final java.lang.String type) {
+        this._type = type;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.Setting
+     */
+    public static jalview.binding.Setting unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.Setting) Unmarshaller.unmarshal(jalview.binding.Setting.class, reader);
+    }
 
-  /**
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
      */
-  public void deleteDisplay()
-  {
-    this._has_display = false;
-  }
-
-  /**
-   * Returns the value of field 'colour'.
-   * 
-   * @return the value of field 'Colour'.
-   */
-  public int getColour()
-  {
-    return this._colour;
-  }
-
-  /**
-   * Returns the value of field 'display'.
-   * 
-   * @return the value of field 'Display'.
-   */
-  public boolean getDisplay()
-  {
-    return this._display;
-  }
-
-  /**
-   * Returns the value of field 'type'.
-   * 
-   * @return the value of field 'Type'.
-   */
-  public java.lang.String getType()
-  {
-    return this._type;
-  }
-
-  /**
-   * Method hasColour.
-   * 
-   * @return true if at least one Colour has been added
-   */
-  public boolean hasColour()
-  {
-    return this._has_colour;
-  }
-
-  /**
-   * Method hasDisplay.
-   * 
-   * @return true if at least one Display has been added
-   */
-  public boolean hasDisplay()
-  {
-    return this._has_display;
-  }
-
-  /**
-   * Returns the value of field 'display'.
-   * 
-   * @return the value of field 'Display'.
-   */
-  public boolean isDisplay()
-  {
-    return this._display;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'colour'.
-   * 
-   * @param colour
-   *          the value of field 'colour'.
-   */
-  public void setColour(final int colour)
-  {
-    this._colour = colour;
-    this._has_colour = true;
-  }
-
-  /**
-   * Sets the value of field 'display'.
-   * 
-   * @param display
-   *          the value of field 'display'.
-   */
-  public void setDisplay(final boolean display)
-  {
-    this._display = display;
-    this._has_display = true;
-  }
-
-  /**
-   * Sets the value of field 'type'.
-   * 
-   * @param type
-   *          the value of field 'type'.
-   */
-  public void setType(final java.lang.String type)
-  {
-    this._type = type;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.Setting
-   */
-  public static jalview.binding.Setting unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.Setting) Unmarshaller.unmarshal(
-            jalview.binding.Setting.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
index 59d1319..5f138d0 100644 (file)
@@ -1,27 +1,14 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-//---------------------------------/
-//- Imported classes and packages -/
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
@@ -32,825 +19,802 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Tree implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _width.
-   */
-  private int _width;
-
-  /**
-   * keeps track of state for field: _width
-   */
-  private boolean _has_width;
-
-  /**
-   * Field _height.
-   */
-  private int _height;
-
-  /**
-   * keeps track of state for field: _height
-   */
-  private boolean _has_height;
-
-  /**
-   * Field _xpos.
-   */
-  private int _xpos;
-
-  /**
-   * keeps track of state for field: _xpos
-   */
-  private boolean _has_xpos;
-
-  /**
-   * Field _ypos.
-   */
-  private int _ypos;
-
-  /**
-   * keeps track of state for field: _ypos
-   */
-  private boolean _has_ypos;
-
-  /**
-   * Field _fontName.
-   */
-  private java.lang.String _fontName;
-
-  /**
-   * Field _fontSize.
-   */
-  private int _fontSize;
-
-  /**
-   * keeps track of state for field: _fontSize
-   */
-  private boolean _has_fontSize;
-
-  /**
-   * Field _fontStyle.
-   */
-  private int _fontStyle;
-
-  /**
-   * keeps track of state for field: _fontStyle
-   */
-  private boolean _has_fontStyle;
-
-  /**
-   * Field _threshold.
-   */
-  private float _threshold;
-
-  /**
-   * keeps track of state for field: _threshold
-   */
-  private boolean _has_threshold;
-
-  /**
-   * Field _showBootstrap.
-   */
-  private boolean _showBootstrap;
-
-  /**
-   * keeps track of state for field: _showBootstrap
-   */
-  private boolean _has_showBootstrap;
-
-  /**
-   * Field _showDistances.
-   */
-  private boolean _showDistances;
-
-  /**
-   * keeps track of state for field: _showDistances
-   */
-  private boolean _has_showDistances;
-
-  /**
-   * Field _markUnlinked.
-   */
-  private boolean _markUnlinked;
-
-  /**
-   * keeps track of state for field: _markUnlinked
-   */
-  private boolean _has_markUnlinked;
-
-  /**
-   * Field _fitToWindow.
-   */
-  private boolean _fitToWindow;
-
-  /**
-   * keeps track of state for field: _fitToWindow
-   */
-  private boolean _has_fitToWindow;
-
-  /**
-   * Field _currentTree.
-   */
-  private boolean _currentTree;
-
-  /**
-   * keeps track of state for field: _currentTree
-   */
-  private boolean _has_currentTree;
-
-  /**
-   * Field _title.
-   */
-  private java.lang.String _title;
-
-  /**
-   * Field _newick.
-   */
-  private java.lang.String _newick;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Tree()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-     */
-  public void deleteCurrentTree()
-  {
-    this._has_currentTree = false;
-  }
-
-  /**
-     */
-  public void deleteFitToWindow()
-  {
-    this._has_fitToWindow = false;
-  }
-
-  /**
-     */
-  public void deleteFontSize()
-  {
-    this._has_fontSize = false;
-  }
-
-  /**
-     */
-  public void deleteFontStyle()
-  {
-    this._has_fontStyle = false;
-  }
-
-  /**
-     */
-  public void deleteHeight()
-  {
-    this._has_height = false;
-  }
-
-  /**
-     */
-  public void deleteMarkUnlinked()
-  {
-    this._has_markUnlinked = false;
-  }
-
-  /**
-     */
-  public void deleteShowBootstrap()
-  {
-    this._has_showBootstrap = false;
-  }
-
-  /**
-     */
-  public void deleteShowDistances()
-  {
-    this._has_showDistances = false;
-  }
-
-  /**
-     */
-  public void deleteThreshold()
-  {
-    this._has_threshold = false;
-  }
-
-  /**
-     */
-  public void deleteWidth()
-  {
-    this._has_width = false;
-  }
-
-  /**
-     */
-  public void deleteXpos()
-  {
-    this._has_xpos = false;
-  }
-
-  /**
-     */
-  public void deleteYpos()
-  {
-    this._has_ypos = false;
-  }
-
-  /**
-   * Returns the value of field 'currentTree'.
-   * 
-   * @return the value of field 'CurrentTree'.
-   */
-  public boolean getCurrentTree()
-  {
-    return this._currentTree;
-  }
-
-  /**
-   * Returns the value of field 'fitToWindow'.
-   * 
-   * @return the value of field 'FitToWindow'.
-   */
-  public boolean getFitToWindow()
-  {
-    return this._fitToWindow;
-  }
-
-  /**
-   * Returns the value of field 'fontName'.
-   * 
-   * @return the value of field 'FontName'.
-   */
-  public java.lang.String getFontName()
-  {
-    return this._fontName;
-  }
-
-  /**
-   * Returns the value of field 'fontSize'.
-   * 
-   * @return the value of field 'FontSize'.
-   */
-  public int getFontSize()
-  {
-    return this._fontSize;
-  }
-
-  /**
-   * Returns the value of field 'fontStyle'.
-   * 
-   * @return the value of field 'FontStyle'.
-   */
-  public int getFontStyle()
-  {
-    return this._fontStyle;
-  }
-
-  /**
-   * Returns the value of field 'height'.
-   * 
-   * @return the value of field 'Height'.
-   */
-  public int getHeight()
-  {
-    return this._height;
-  }
-
-  /**
-   * Returns the value of field 'markUnlinked'.
-   * 
-   * @return the value of field 'MarkUnlinked'.
-   */
-  public boolean getMarkUnlinked()
-  {
-    return this._markUnlinked;
-  }
-
-  /**
-   * Returns the value of field 'newick'.
-   * 
-   * @return the value of field 'Newick'.
-   */
-  public java.lang.String getNewick()
-  {
-    return this._newick;
-  }
-
-  /**
-   * Returns the value of field 'showBootstrap'.
-   * 
-   * @return the value of field 'ShowBootstrap'.
-   */
-  public boolean getShowBootstrap()
-  {
-    return this._showBootstrap;
-  }
-
-  /**
-   * Returns the value of field 'showDistances'.
-   * 
-   * @return the value of field 'ShowDistances'.
-   */
-  public boolean getShowDistances()
-  {
-    return this._showDistances;
-  }
-
-  /**
-   * Returns the value of field 'threshold'.
-   * 
-   * @return the value of field 'Threshold'.
-   */
-  public float getThreshold()
-  {
-    return this._threshold;
-  }
-
-  /**
-   * Returns the value of field 'title'.
-   * 
-   * @return the value of field 'Title'.
-   */
-  public java.lang.String getTitle()
-  {
-    return this._title;
-  }
-
-  /**
-   * Returns the value of field 'width'.
-   * 
-   * @return the value of field 'Width'.
-   */
-  public int getWidth()
-  {
-    return this._width;
-  }
-
-  /**
-   * Returns the value of field 'xpos'.
-   * 
-   * @return the value of field 'Xpos'.
-   */
-  public int getXpos()
-  {
-    return this._xpos;
-  }
-
-  /**
-   * Returns the value of field 'ypos'.
-   * 
-   * @return the value of field 'Ypos'.
-   */
-  public int getYpos()
-  {
-    return this._ypos;
-  }
-
-  /**
-   * Method hasCurrentTree.
-   * 
-   * @return true if at least one CurrentTree has been added
-   */
-  public boolean hasCurrentTree()
-  {
-    return this._has_currentTree;
-  }
-
-  /**
-   * Method hasFitToWindow.
-   * 
-   * @return true if at least one FitToWindow has been added
-   */
-  public boolean hasFitToWindow()
-  {
-    return this._has_fitToWindow;
-  }
-
-  /**
-   * Method hasFontSize.
-   * 
-   * @return true if at least one FontSize has been added
-   */
-  public boolean hasFontSize()
-  {
-    return this._has_fontSize;
-  }
-
-  /**
-   * Method hasFontStyle.
-   * 
-   * @return true if at least one FontStyle has been added
-   */
-  public boolean hasFontStyle()
-  {
-    return this._has_fontStyle;
-  }
-
-  /**
-   * Method hasHeight.
-   * 
-   * @return true if at least one Height has been added
-   */
-  public boolean hasHeight()
-  {
-    return this._has_height;
-  }
-
-  /**
-   * Method hasMarkUnlinked.
-   * 
-   * @return true if at least one MarkUnlinked has been added
-   */
-  public boolean hasMarkUnlinked()
-  {
-    return this._has_markUnlinked;
-  }
-
-  /**
-   * Method hasShowBootstrap.
-   * 
-   * @return true if at least one ShowBootstrap has been added
-   */
-  public boolean hasShowBootstrap()
-  {
-    return this._has_showBootstrap;
-  }
-
-  /**
-   * Method hasShowDistances.
-   * 
-   * @return true if at least one ShowDistances has been added
-   */
-  public boolean hasShowDistances()
-  {
-    return this._has_showDistances;
-  }
-
-  /**
-   * Method hasThreshold.
-   * 
-   * @return true if at least one Threshold has been added
-   */
-  public boolean hasThreshold()
-  {
-    return this._has_threshold;
-  }
-
-  /**
-   * Method hasWidth.
-   * 
-   * @return true if at least one Width has been added
-   */
-  public boolean hasWidth()
-  {
-    return this._has_width;
-  }
-
-  /**
-   * Method hasXpos.
-   * 
-   * @return true if at least one Xpos has been added
-   */
-  public boolean hasXpos()
-  {
-    return this._has_xpos;
-  }
-
-  /**
-   * Method hasYpos.
-   * 
-   * @return true if at least one Ypos has been added
-   */
-  public boolean hasYpos()
-  {
-    return this._has_ypos;
-  }
-
-  /**
-   * Returns the value of field 'currentTree'.
-   * 
-   * @return the value of field 'CurrentTree'.
-   */
-  public boolean isCurrentTree()
-  {
-    return this._currentTree;
-  }
-
-  /**
-   * Returns the value of field 'fitToWindow'.
-   * 
-   * @return the value of field 'FitToWindow'.
-   */
-  public boolean isFitToWindow()
-  {
-    return this._fitToWindow;
-  }
-
-  /**
-   * Returns the value of field 'markUnlinked'.
-   * 
-   * @return the value of field 'MarkUnlinked'.
-   */
-  public boolean isMarkUnlinked()
-  {
-    return this._markUnlinked;
-  }
-
-  /**
-   * Returns the value of field 'showBootstrap'.
-   * 
-   * @return the value of field 'ShowBootstrap'.
-   */
-  public boolean isShowBootstrap()
-  {
-    return this._showBootstrap;
-  }
-
-  /**
-   * Returns the value of field 'showDistances'.
-   * 
-   * @return the value of field 'ShowDistances'.
-   */
-  public boolean isShowDistances()
-  {
-    return this._showDistances;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'currentTree'.
-   * 
-   * @param currentTree
-   *          the value of field 'currentTree'.
-   */
-  public void setCurrentTree(final boolean currentTree)
-  {
-    this._currentTree = currentTree;
-    this._has_currentTree = true;
-  }
-
-  /**
-   * Sets the value of field 'fitToWindow'.
-   * 
-   * @param fitToWindow
-   *          the value of field 'fitToWindow'.
-   */
-  public void setFitToWindow(final boolean fitToWindow)
-  {
-    this._fitToWindow = fitToWindow;
-    this._has_fitToWindow = true;
-  }
-
-  /**
-   * Sets the value of field 'fontName'.
-   * 
-   * @param fontName
-   *          the value of field 'fontName'.
-   */
-  public void setFontName(final java.lang.String fontName)
-  {
-    this._fontName = fontName;
-  }
-
-  /**
-   * Sets the value of field 'fontSize'.
-   * 
-   * @param fontSize
-   *          the value of field 'fontSize'.
-   */
-  public void setFontSize(final int fontSize)
-  {
-    this._fontSize = fontSize;
-    this._has_fontSize = true;
-  }
-
-  /**
-   * Sets the value of field 'fontStyle'.
-   * 
-   * @param fontStyle
-   *          the value of field 'fontStyle'.
-   */
-  public void setFontStyle(final int fontStyle)
-  {
-    this._fontStyle = fontStyle;
-    this._has_fontStyle = true;
-  }
-
-  /**
-   * Sets the value of field 'height'.
-   * 
-   * @param height
-   *          the value of field 'height'.
-   */
-  public void setHeight(final int height)
-  {
-    this._height = height;
-    this._has_height = true;
-  }
-
-  /**
-   * Sets the value of field 'markUnlinked'.
-   * 
-   * @param markUnlinked
-   *          the value of field 'markUnlinked'.
-   */
-  public void setMarkUnlinked(final boolean markUnlinked)
-  {
-    this._markUnlinked = markUnlinked;
-    this._has_markUnlinked = true;
-  }
-
-  /**
-   * Sets the value of field 'newick'.
-   * 
-   * @param newick
-   *          the value of field 'newick'.
-   */
-  public void setNewick(final java.lang.String newick)
-  {
-    this._newick = newick;
-  }
-
-  /**
-   * Sets the value of field 'showBootstrap'.
-   * 
-   * @param showBootstrap
-   *          the value of field 'showBootstrap'.
-   */
-  public void setShowBootstrap(final boolean showBootstrap)
-  {
-    this._showBootstrap = showBootstrap;
-    this._has_showBootstrap = true;
-  }
-
-  /**
-   * Sets the value of field 'showDistances'.
-   * 
-   * @param showDistances
-   *          the value of field 'showDistances'.
-   */
-  public void setShowDistances(final boolean showDistances)
-  {
-    this._showDistances = showDistances;
-    this._has_showDistances = true;
-  }
-
-  /**
-   * Sets the value of field 'threshold'.
-   * 
-   * @param threshold
-   *          the value of field 'threshold'.
-   */
-  public void setThreshold(final float threshold)
-  {
-    this._threshold = threshold;
-    this._has_threshold = true;
-  }
-
-  /**
-   * Sets the value of field 'title'.
-   * 
-   * @param title
-   *          the value of field 'title'.
-   */
-  public void setTitle(final java.lang.String title)
-  {
-    this._title = title;
-  }
-
-  /**
-   * Sets the value of field 'width'.
-   * 
-   * @param width
-   *          the value of field 'width'.
-   */
-  public void setWidth(final int width)
-  {
-    this._width = width;
-    this._has_width = true;
-  }
-
-  /**
-   * Sets the value of field 'xpos'.
-   * 
-   * @param xpos
-   *          the value of field 'xpos'.
-   */
-  public void setXpos(final int xpos)
-  {
-    this._xpos = xpos;
-    this._has_xpos = true;
-  }
-
-  /**
-   * Sets the value of field 'ypos'.
-   * 
-   * @param ypos
-   *          the value of field 'ypos'.
-   */
-  public void setYpos(final int ypos)
-  {
-    this._ypos = ypos;
-    this._has_ypos = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.Tree
-   */
-  public static jalview.binding.Tree unmarshal(final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.Tree) Unmarshaller.unmarshal(
-            jalview.binding.Tree.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class Tree implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _width.
+     */
+    private int _width;
+
+    /**
+     * keeps track of state for field: _width
+     */
+    private boolean _has_width;
+
+    /**
+     * Field _height.
+     */
+    private int _height;
+
+    /**
+     * keeps track of state for field: _height
+     */
+    private boolean _has_height;
+
+    /**
+     * Field _xpos.
+     */
+    private int _xpos;
+
+    /**
+     * keeps track of state for field: _xpos
+     */
+    private boolean _has_xpos;
+
+    /**
+     * Field _ypos.
+     */
+    private int _ypos;
+
+    /**
+     * keeps track of state for field: _ypos
+     */
+    private boolean _has_ypos;
+
+    /**
+     * Field _fontName.
+     */
+    private java.lang.String _fontName;
+
+    /**
+     * Field _fontSize.
+     */
+    private int _fontSize;
+
+    /**
+     * keeps track of state for field: _fontSize
+     */
+    private boolean _has_fontSize;
+
+    /**
+     * Field _fontStyle.
+     */
+    private int _fontStyle;
+
+    /**
+     * keeps track of state for field: _fontStyle
+     */
+    private boolean _has_fontStyle;
+
+    /**
+     * Field _threshold.
+     */
+    private float _threshold;
+
+    /**
+     * keeps track of state for field: _threshold
+     */
+    private boolean _has_threshold;
+
+    /**
+     * Field _showBootstrap.
+     */
+    private boolean _showBootstrap;
+
+    /**
+     * keeps track of state for field: _showBootstrap
+     */
+    private boolean _has_showBootstrap;
+
+    /**
+     * Field _showDistances.
+     */
+    private boolean _showDistances;
+
+    /**
+     * keeps track of state for field: _showDistances
+     */
+    private boolean _has_showDistances;
+
+    /**
+     * Field _markUnlinked.
+     */
+    private boolean _markUnlinked;
+
+    /**
+     * keeps track of state for field: _markUnlinked
+     */
+    private boolean _has_markUnlinked;
+
+    /**
+     * Field _fitToWindow.
+     */
+    private boolean _fitToWindow;
+
+    /**
+     * keeps track of state for field: _fitToWindow
+     */
+    private boolean _has_fitToWindow;
+
+    /**
+     * Field _currentTree.
+     */
+    private boolean _currentTree;
+
+    /**
+     * keeps track of state for field: _currentTree
+     */
+    private boolean _has_currentTree;
+
+    /**
+     * Field _title.
+     */
+    private java.lang.String _title;
+
+    /**
+     * Field _newick.
+     */
+    private java.lang.String _newick;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Tree() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deleteCurrentTree(
+    ) {
+        this._has_currentTree= false;
+    }
+
+    /**
+     */
+    public void deleteFitToWindow(
+    ) {
+        this._has_fitToWindow= false;
+    }
+
+    /**
+     */
+    public void deleteFontSize(
+    ) {
+        this._has_fontSize= false;
+    }
+
+    /**
+     */
+    public void deleteFontStyle(
+    ) {
+        this._has_fontStyle= false;
+    }
+
+    /**
+     */
+    public void deleteHeight(
+    ) {
+        this._has_height= false;
+    }
+
+    /**
+     */
+    public void deleteMarkUnlinked(
+    ) {
+        this._has_markUnlinked= false;
+    }
+
+    /**
+     */
+    public void deleteShowBootstrap(
+    ) {
+        this._has_showBootstrap= false;
+    }
+
+    /**
+     */
+    public void deleteShowDistances(
+    ) {
+        this._has_showDistances= false;
+    }
+
+    /**
+     */
+    public void deleteThreshold(
+    ) {
+        this._has_threshold= false;
+    }
+
+    /**
+     */
+    public void deleteWidth(
+    ) {
+        this._has_width= false;
+    }
+
+    /**
+     */
+    public void deleteXpos(
+    ) {
+        this._has_xpos= false;
+    }
+
+    /**
+     */
+    public void deleteYpos(
+    ) {
+        this._has_ypos= false;
+    }
+
+    /**
+     * Returns the value of field 'currentTree'.
+     * 
+     * @return the value of field 'CurrentTree'.
+     */
+    public boolean getCurrentTree(
+    ) {
+        return this._currentTree;
+    }
+
+    /**
+     * Returns the value of field 'fitToWindow'.
+     * 
+     * @return the value of field 'FitToWindow'.
+     */
+    public boolean getFitToWindow(
+    ) {
+        return this._fitToWindow;
+    }
+
+    /**
+     * Returns the value of field 'fontName'.
+     * 
+     * @return the value of field 'FontName'.
+     */
+    public java.lang.String getFontName(
+    ) {
+        return this._fontName;
+    }
+
+    /**
+     * Returns the value of field 'fontSize'.
+     * 
+     * @return the value of field 'FontSize'.
+     */
+    public int getFontSize(
+    ) {
+        return this._fontSize;
+    }
+
+    /**
+     * Returns the value of field 'fontStyle'.
+     * 
+     * @return the value of field 'FontStyle'.
+     */
+    public int getFontStyle(
+    ) {
+        return this._fontStyle;
+    }
+
+    /**
+     * Returns the value of field 'height'.
+     * 
+     * @return the value of field 'Height'.
+     */
+    public int getHeight(
+    ) {
+        return this._height;
+    }
+
+    /**
+     * Returns the value of field 'markUnlinked'.
+     * 
+     * @return the value of field 'MarkUnlinked'.
+     */
+    public boolean getMarkUnlinked(
+    ) {
+        return this._markUnlinked;
+    }
+
+    /**
+     * Returns the value of field 'newick'.
+     * 
+     * @return the value of field 'Newick'.
+     */
+    public java.lang.String getNewick(
+    ) {
+        return this._newick;
+    }
+
+    /**
+     * Returns the value of field 'showBootstrap'.
+     * 
+     * @return the value of field 'ShowBootstrap'.
+     */
+    public boolean getShowBootstrap(
+    ) {
+        return this._showBootstrap;
+    }
+
+    /**
+     * Returns the value of field 'showDistances'.
+     * 
+     * @return the value of field 'ShowDistances'.
+     */
+    public boolean getShowDistances(
+    ) {
+        return this._showDistances;
+    }
+
+    /**
+     * Returns the value of field 'threshold'.
+     * 
+     * @return the value of field 'Threshold'.
+     */
+    public float getThreshold(
+    ) {
+        return this._threshold;
+    }
+
+    /**
+     * Returns the value of field 'title'.
+     * 
+     * @return the value of field 'Title'.
+     */
+    public java.lang.String getTitle(
+    ) {
+        return this._title;
+    }
+
+    /**
+     * Returns the value of field 'width'.
+     * 
+     * @return the value of field 'Width'.
+     */
+    public int getWidth(
+    ) {
+        return this._width;
+    }
+
+    /**
+     * Returns the value of field 'xpos'.
+     * 
+     * @return the value of field 'Xpos'.
+     */
+    public int getXpos(
+    ) {
+        return this._xpos;
+    }
+
+    /**
+     * Returns the value of field 'ypos'.
+     * 
+     * @return the value of field 'Ypos'.
+     */
+    public int getYpos(
+    ) {
+        return this._ypos;
+    }
+
+    /**
+     * Method hasCurrentTree.
+     * 
+     * @return true if at least one CurrentTree has been added
+     */
+    public boolean hasCurrentTree(
+    ) {
+        return this._has_currentTree;
+    }
+
+    /**
+     * Method hasFitToWindow.
+     * 
+     * @return true if at least one FitToWindow has been added
+     */
+    public boolean hasFitToWindow(
+    ) {
+        return this._has_fitToWindow;
+    }
+
+    /**
+     * Method hasFontSize.
+     * 
+     * @return true if at least one FontSize has been added
+     */
+    public boolean hasFontSize(
+    ) {
+        return this._has_fontSize;
+    }
+
+    /**
+     * Method hasFontStyle.
+     * 
+     * @return true if at least one FontStyle has been added
+     */
+    public boolean hasFontStyle(
+    ) {
+        return this._has_fontStyle;
+    }
+
+    /**
+     * Method hasHeight.
+     * 
+     * @return true if at least one Height has been added
+     */
+    public boolean hasHeight(
+    ) {
+        return this._has_height;
+    }
+
+    /**
+     * Method hasMarkUnlinked.
+     * 
+     * @return true if at least one MarkUnlinked has been added
+     */
+    public boolean hasMarkUnlinked(
+    ) {
+        return this._has_markUnlinked;
+    }
+
+    /**
+     * Method hasShowBootstrap.
+     * 
+     * @return true if at least one ShowBootstrap has been added
+     */
+    public boolean hasShowBootstrap(
+    ) {
+        return this._has_showBootstrap;
+    }
+
+    /**
+     * Method hasShowDistances.
+     * 
+     * @return true if at least one ShowDistances has been added
+     */
+    public boolean hasShowDistances(
+    ) {
+        return this._has_showDistances;
+    }
+
+    /**
+     * Method hasThreshold.
+     * 
+     * @return true if at least one Threshold has been added
+     */
+    public boolean hasThreshold(
+    ) {
+        return this._has_threshold;
+    }
+
+    /**
+     * Method hasWidth.
+     * 
+     * @return true if at least one Width has been added
+     */
+    public boolean hasWidth(
+    ) {
+        return this._has_width;
+    }
+
+    /**
+     * Method hasXpos.
+     * 
+     * @return true if at least one Xpos has been added
+     */
+    public boolean hasXpos(
+    ) {
+        return this._has_xpos;
+    }
+
+    /**
+     * Method hasYpos.
+     * 
+     * @return true if at least one Ypos has been added
+     */
+    public boolean hasYpos(
+    ) {
+        return this._has_ypos;
+    }
+
+    /**
+     * Returns the value of field 'currentTree'.
+     * 
+     * @return the value of field 'CurrentTree'.
+     */
+    public boolean isCurrentTree(
+    ) {
+        return this._currentTree;
+    }
+
+    /**
+     * Returns the value of field 'fitToWindow'.
+     * 
+     * @return the value of field 'FitToWindow'.
+     */
+    public boolean isFitToWindow(
+    ) {
+        return this._fitToWindow;
+    }
+
+    /**
+     * Returns the value of field 'markUnlinked'.
+     * 
+     * @return the value of field 'MarkUnlinked'.
+     */
+    public boolean isMarkUnlinked(
+    ) {
+        return this._markUnlinked;
+    }
+
+    /**
+     * Returns the value of field 'showBootstrap'.
+     * 
+     * @return the value of field 'ShowBootstrap'.
+     */
+    public boolean isShowBootstrap(
+    ) {
+        return this._showBootstrap;
+    }
+
+    /**
+     * Returns the value of field 'showDistances'.
+     * 
+     * @return the value of field 'ShowDistances'.
+     */
+    public boolean isShowDistances(
+    ) {
+        return this._showDistances;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'currentTree'.
+     * 
+     * @param currentTree the value of field 'currentTree'.
+     */
+    public void setCurrentTree(
+            final boolean currentTree) {
+        this._currentTree = currentTree;
+        this._has_currentTree = true;
+    }
+
+    /**
+     * Sets the value of field 'fitToWindow'.
+     * 
+     * @param fitToWindow the value of field 'fitToWindow'.
+     */
+    public void setFitToWindow(
+            final boolean fitToWindow) {
+        this._fitToWindow = fitToWindow;
+        this._has_fitToWindow = true;
+    }
+
+    /**
+     * Sets the value of field 'fontName'.
+     * 
+     * @param fontName the value of field 'fontName'.
+     */
+    public void setFontName(
+            final java.lang.String fontName) {
+        this._fontName = fontName;
+    }
+
+    /**
+     * Sets the value of field 'fontSize'.
+     * 
+     * @param fontSize the value of field 'fontSize'.
+     */
+    public void setFontSize(
+            final int fontSize) {
+        this._fontSize = fontSize;
+        this._has_fontSize = true;
+    }
+
+    /**
+     * Sets the value of field 'fontStyle'.
+     * 
+     * @param fontStyle the value of field 'fontStyle'.
+     */
+    public void setFontStyle(
+            final int fontStyle) {
+        this._fontStyle = fontStyle;
+        this._has_fontStyle = true;
+    }
+
+    /**
+     * Sets the value of field 'height'.
+     * 
+     * @param height the value of field 'height'.
+     */
+    public void setHeight(
+            final int height) {
+        this._height = height;
+        this._has_height = true;
+    }
+
+    /**
+     * Sets the value of field 'markUnlinked'.
+     * 
+     * @param markUnlinked the value of field 'markUnlinked'.
+     */
+    public void setMarkUnlinked(
+            final boolean markUnlinked) {
+        this._markUnlinked = markUnlinked;
+        this._has_markUnlinked = true;
+    }
+
+    /**
+     * Sets the value of field 'newick'.
+     * 
+     * @param newick the value of field 'newick'.
+     */
+    public void setNewick(
+            final java.lang.String newick) {
+        this._newick = newick;
+    }
+
+    /**
+     * Sets the value of field 'showBootstrap'.
+     * 
+     * @param showBootstrap the value of field 'showBootstrap'.
+     */
+    public void setShowBootstrap(
+            final boolean showBootstrap) {
+        this._showBootstrap = showBootstrap;
+        this._has_showBootstrap = true;
+    }
+
+    /**
+     * Sets the value of field 'showDistances'.
+     * 
+     * @param showDistances the value of field 'showDistances'.
+     */
+    public void setShowDistances(
+            final boolean showDistances) {
+        this._showDistances = showDistances;
+        this._has_showDistances = true;
+    }
+
+    /**
+     * Sets the value of field 'threshold'.
+     * 
+     * @param threshold the value of field 'threshold'.
+     */
+    public void setThreshold(
+            final float threshold) {
+        this._threshold = threshold;
+        this._has_threshold = true;
+    }
+
+    /**
+     * Sets the value of field 'title'.
+     * 
+     * @param title the value of field 'title'.
+     */
+    public void setTitle(
+            final java.lang.String title) {
+        this._title = title;
+    }
+
+    /**
+     * Sets the value of field 'width'.
+     * 
+     * @param width the value of field 'width'.
+     */
+    public void setWidth(
+            final int width) {
+        this._width = width;
+        this._has_width = true;
+    }
+
+    /**
+     * Sets the value of field 'xpos'.
+     * 
+     * @param xpos the value of field 'xpos'.
+     */
+    public void setXpos(
+            final int xpos) {
+        this._xpos = xpos;
+        this._has_xpos = true;
+    }
+
+    /**
+     * Sets the value of field 'ypos'.
+     * 
+     * @param ypos the value of field 'ypos'.
+     */
+    public void setYpos(
+            final int ypos) {
+        this._ypos = ypos;
+        this._has_ypos = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.Tree
+     */
+    public static jalview.binding.Tree unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.Tree) Unmarshaller.unmarshal(jalview.binding.Tree.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
index 18fa2e1..24c97ff 100644 (file)
@@ -1,27 +1,14 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-//---------------------------------/
-//- Imported classes and packages -/
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
@@ -32,107 +19,98 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class UserColourScheme extends JalviewUserColours implements
-        java.io.Serializable
+public class UserColourScheme extends JalviewUserColours 
+implements java.io.Serializable
 {
 
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
 
-  public UserColourScheme()
-  {
-    super();
-  }
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public UserColourScheme() {
+        super();
+    }
+
 
-  // -----------/
-  // - Methods -/
-  // -----------/
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
     }
-    return true;
-  }
 
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
 
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
 
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.JalviewUserColours
-   */
-  public static jalview.binding.JalviewUserColours unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.JalviewUserColours) Unmarshaller.unmarshal(
-            jalview.binding.UserColourScheme.class, reader);
-  }
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.JalviewUserColours
+     */
+    public static jalview.binding.JalviewUserColours unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.JalviewUserColours) Unmarshaller.unmarshal(jalview.binding.UserColourScheme.class, reader);
+    }
 
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
index 96bb810..bdefe05 100644 (file)
@@ -1,27 +1,14 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-//---------------------------------/
-//- Imported classes and packages -/
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
@@ -32,163 +19,151 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class UserColours implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _id.
-   */
-  private java.lang.String _id;
-
-  /**
-   * Field _userColourScheme.
-   */
-  private jalview.binding.UserColourScheme _userColourScheme;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public UserColours()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Returns the value of field 'id'.
-   * 
-   * @return the value of field 'Id'.
-   */
-  public java.lang.String getId()
-  {
-    return this._id;
-  }
-
-  /**
-   * Returns the value of field 'userColourScheme'.
-   * 
-   * @return the value of field 'UserColourScheme'.
-   */
-  public jalview.binding.UserColourScheme getUserColourScheme()
-  {
-    return this._userColourScheme;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class UserColours implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _id.
+     */
+    private java.lang.String _id;
+
+    /**
+     * Field _userColourScheme.
+     */
+    private jalview.binding.UserColourScheme _userColourScheme;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public UserColours() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Returns the value of field 'id'.
+     * 
+     * @return the value of field 'Id'.
+     */
+    public java.lang.String getId(
+    ) {
+        return this._id;
+    }
+
+    /**
+     * Returns the value of field 'userColourScheme'.
+     * 
+     * @return the value of field 'UserColourScheme'.
+     */
+    public jalview.binding.UserColourScheme getUserColourScheme(
+    ) {
+        return this._userColourScheme;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'id'.
+     * 
+     * @param id the value of field 'id'.
+     */
+    public void setId(
+            final java.lang.String id) {
+        this._id = id;
+    }
+
+    /**
+     * Sets the value of field 'userColourScheme'.
+     * 
+     * @param userColourScheme the value of field 'userColourScheme'
+     */
+    public void setUserColourScheme(
+            final jalview.binding.UserColourScheme userColourScheme) {
+        this._userColourScheme = userColourScheme;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.UserColours
+     */
+    public static jalview.binding.UserColours unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.UserColours) Unmarshaller.unmarshal(jalview.binding.UserColours.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'id'.
-   * 
-   * @param id
-   *          the value of field 'id'.
-   */
-  public void setId(final java.lang.String id)
-  {
-    this._id = id;
-  }
-
-  /**
-   * Sets the value of field 'userColourScheme'.
-   * 
-   * @param userColourScheme
-   *          the value of field 'userColourScheme'
-   */
-  public void setUserColourScheme(
-          final jalview.binding.UserColourScheme userColourScheme)
-  {
-    this._userColourScheme = userColourScheme;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.UserColours
-   */
-  public static jalview.binding.UserColours unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.UserColours) Unmarshaller.unmarshal(
-            jalview.binding.UserColours.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
index d7f98ce..1c92bd3 100644 (file)
@@ -1,31 +1,16 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-//---------------------------------/
-//- Imported classes and packages -/
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
 
-import jalview.util.MessageManager;
-
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
 
@@ -34,598 +19,563 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class VAMSAS implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _alignmentList.
-   */
-  private java.util.Vector _alignmentList;
-
-  /**
-   * Field _treeList.
-   */
-  private java.util.Vector _treeList;
-
-  /**
-   * Field _sequenceSetList.
-   */
-  private java.util.Vector _sequenceSetList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public VAMSAS()
-  {
-    super();
-    this._alignmentList = new java.util.Vector();
-    this._treeList = new java.util.Vector();
-    this._sequenceSetList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vAlignment
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addAlignment(final Alignment vAlignment)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._alignmentList.addElement(vAlignment);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vAlignment
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addAlignment(final int index, final Alignment vAlignment)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._alignmentList.add(index, vAlignment);
-  }
-
-  /**
-   * 
-   * 
-   * @param vSequenceSet
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addSequenceSet(final SequenceSet vSequenceSet)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._sequenceSetList.addElement(vSequenceSet);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSequenceSet
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addSequenceSet(final int index, final SequenceSet vSequenceSet)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._sequenceSetList.add(index, vSequenceSet);
-  }
-
-  /**
-   * 
-   * 
-   * @param vTree
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addTree(final java.lang.String vTree)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._treeList.addElement(vTree);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vTree
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void addTree(final int index, final java.lang.String vTree)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._treeList.add(index, vTree);
-  }
-
-  /**
-   * Method enumerateAlignment.
-   * 
-   * @return an Enumeration over all Alignment elements
-   */
-  public java.util.Enumeration enumerateAlignment()
-  {
-    return this._alignmentList.elements();
-  }
-
-  /**
-   * Method enumerateSequenceSet.
-   * 
-   * @return an Enumeration over all SequenceSet elements
-   */
-  public java.util.Enumeration enumerateSequenceSet()
-  {
-    return this._sequenceSetList.elements();
-  }
-
-  /**
-   * Method enumerateTree.
-   * 
-   * @return an Enumeration over all java.lang.String elements
-   */
-  public java.util.Enumeration enumerateTree()
-  {
-    return this._treeList.elements();
-  }
-
-  /**
-   * Method getAlignment.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   * @return the value of the Alignment at the given index
-   */
-  public Alignment getAlignment(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._alignmentList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                 "getAlignment",
-                 Integer.valueOf(index).toString(),
-                 Integer.valueOf((this._alignmentList.size() - 1)).toString()
-        })); 
-    }
-
-    return (Alignment) _alignmentList.get(index);
-  }
-
-  /**
-   * Method getAlignment.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public Alignment[] getAlignment()
-  {
-    Alignment[] array = new Alignment[0];
-    return (Alignment[]) this._alignmentList.toArray(array);
-  }
-
-  /**
-   * Method getAlignmentCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getAlignmentCount()
-  {
-    return this._alignmentList.size();
-  }
-
-  /**
-   * Method getSequenceSet.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   * @return the value of the SequenceSet at the given index
-   */
-  public SequenceSet getSequenceSet(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._sequenceSetList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                         "getSequenceSet",
-                         Integer.valueOf(index).toString(),
-                         Integer.valueOf((this._sequenceSetList.size() - 1)).toString()
-          })); 
-    }
-
-    return (SequenceSet) _sequenceSetList.get(index);
-  }
-
-  /**
-   * Method getSequenceSet.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public SequenceSet[] getSequenceSet()
-  {
-    SequenceSet[] array = new SequenceSet[0];
-    return (SequenceSet[]) this._sequenceSetList.toArray(array);
-  }
-
-  /**
-   * Method getSequenceSetCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getSequenceSetCount()
-  {
-    return this._sequenceSetList.size();
-  }
-
-  /**
-   * Method getTree.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   * @return the value of the java.lang.String at the given index
-   */
-  public java.lang.String getTree(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._treeList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                 "getTree",
-                 Integer.valueOf(index).toString(),
-                 Integer.valueOf((this._treeList.size() - 1)).toString()
-        })); 
-    }
-
-    return (java.lang.String) _treeList.get(index);
-  }
-
-  /**
-   * Method getTree.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public java.lang.String[] getTree()
-  {
-    java.lang.String[] array = new java.lang.String[0];
-    return (java.lang.String[]) this._treeList.toArray(array);
-  }
-
-  /**
-   * Method getTreeCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getTreeCount()
-  {
-    return this._treeList.size();
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Method removeAlignment.
-   * 
-   * @param vAlignment
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeAlignment(final Alignment vAlignment)
-  {
-    boolean removed = _alignmentList.remove(vAlignment);
-    return removed;
-  }
-
-  /**
-   * Method removeAlignmentAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public Alignment removeAlignmentAt(final int index)
-  {
-    java.lang.Object obj = this._alignmentList.remove(index);
-    return (Alignment) obj;
-  }
-
-  /**
-     */
-  public void removeAllAlignment()
-  {
-    this._alignmentList.clear();
-  }
-
-  /**
-     */
-  public void removeAllSequenceSet()
-  {
-    this._sequenceSetList.clear();
-  }
-
-  /**
-     */
-  public void removeAllTree()
-  {
-    this._treeList.clear();
-  }
-
-  /**
-   * Method removeSequenceSet.
-   * 
-   * @param vSequenceSet
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeSequenceSet(final SequenceSet vSequenceSet)
-  {
-    boolean removed = _sequenceSetList.remove(vSequenceSet);
-    return removed;
-  }
-
-  /**
-   * Method removeSequenceSetAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public SequenceSet removeSequenceSetAt(final int index)
-  {
-    java.lang.Object obj = this._sequenceSetList.remove(index);
-    return (SequenceSet) obj;
-  }
-
-  /**
-   * Method removeTree.
-   * 
-   * @param vTree
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeTree(final java.lang.String vTree)
-  {
-    boolean removed = _treeList.remove(vTree);
-    return removed;
-  }
-
-  /**
-   * Method removeTreeAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public java.lang.String removeTreeAt(final int index)
-  {
-    java.lang.Object obj = this._treeList.remove(index);
-    return (java.lang.String) obj;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vAlignment
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void setAlignment(final int index, final Alignment vAlignment)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._alignmentList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                         "setAlignment",
-                         Integer.valueOf(index).toString(),
-                         Integer.valueOf((this._alignmentList.size() - 1)).toString()
-          })); 
-    }
-
-    this._alignmentList.set(index, vAlignment);
-  }
-
-  /**
-   * 
-   * 
-   * @param vAlignmentArray
-   */
-  public void setAlignment(final Alignment[] vAlignmentArray)
-  {
-    // -- copy array
-    _alignmentList.clear();
-
-    for (int i = 0; i < vAlignmentArray.length; i++)
-    {
-      this._alignmentList.add(vAlignmentArray[i]);
-    }
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSequenceSet
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void setSequenceSet(final int index, final SequenceSet vSequenceSet)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._sequenceSetList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                 "setSequenceSet",
-                 Integer.valueOf(index).toString(),
-                 Integer.valueOf((this._sequenceSetList.size() - 1)).toString()
-        })); 
-    }
-
-    this._sequenceSetList.set(index, vSequenceSet);
-  }
-
-  /**
-   * 
-   * 
-   * @param vSequenceSetArray
-   */
-  public void setSequenceSet(final SequenceSet[] vSequenceSetArray)
-  {
-    // -- copy array
-    _sequenceSetList.clear();
-
-    for (int i = 0; i < vSequenceSetArray.length; i++)
-    {
-      this._sequenceSetList.add(vSequenceSetArray[i]);
-    }
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vTree
-   * @throws java.lang.IndexOutOfBoundsException
-   *           if the index given is outside the bounds of the collection
-   */
-  public void setTree(final int index, final java.lang.String vTree)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._treeList.size())
-    {
-        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
-                         "setTree",
-                         Integer.valueOf(index).toString(),
-                         Integer.valueOf((this._treeList.size() - 1)).toString()
-          })); 
-    }
-
-    this._treeList.set(index, vTree);
-  }
-
-  /**
-   * 
-   * 
-   * @param vTreeArray
-   */
-  public void setTree(final java.lang.String[] vTreeArray)
-  {
-    // -- copy array
-    _treeList.clear();
-
-    for (int i = 0; i < vTreeArray.length; i++)
-    {
-      this._treeList.add(vTreeArray[i]);
-    }
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.VAMSAS
-   */
-  public static jalview.binding.VAMSAS unmarshal(final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.VAMSAS) Unmarshaller.unmarshal(
-            jalview.binding.VAMSAS.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class VAMSAS implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _alignmentList.
+     */
+    private java.util.Vector _alignmentList;
+
+    /**
+     * Field _treeList.
+     */
+    private java.util.Vector _treeList;
+
+    /**
+     * Field _sequenceSetList.
+     */
+    private java.util.Vector _sequenceSetList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public VAMSAS() {
+        super();
+        this._alignmentList = new java.util.Vector();
+        this._treeList = new java.util.Vector();
+        this._sequenceSetList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vAlignment
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addAlignment(
+            final Alignment vAlignment)
+    throws java.lang.IndexOutOfBoundsException {
+        this._alignmentList.addElement(vAlignment);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vAlignment
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addAlignment(
+            final int index,
+            final Alignment vAlignment)
+    throws java.lang.IndexOutOfBoundsException {
+        this._alignmentList.add(index, vAlignment);
+    }
+
+    /**
+     * 
+     * 
+     * @param vSequenceSet
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSequenceSet(
+            final SequenceSet vSequenceSet)
+    throws java.lang.IndexOutOfBoundsException {
+        this._sequenceSetList.addElement(vSequenceSet);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSequenceSet
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSequenceSet(
+            final int index,
+            final SequenceSet vSequenceSet)
+    throws java.lang.IndexOutOfBoundsException {
+        this._sequenceSetList.add(index, vSequenceSet);
+    }
+
+    /**
+     * 
+     * 
+     * @param vTree
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addTree(
+            final java.lang.String vTree)
+    throws java.lang.IndexOutOfBoundsException {
+        this._treeList.addElement(vTree);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vTree
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addTree(
+            final int index,
+            final java.lang.String vTree)
+    throws java.lang.IndexOutOfBoundsException {
+        this._treeList.add(index, vTree);
+    }
+
+    /**
+     * Method enumerateAlignment.
+     * 
+     * @return an Enumeration over all Alignment elements
+     */
+    public java.util.Enumeration enumerateAlignment(
+    ) {
+        return this._alignmentList.elements();
+    }
+
+    /**
+     * Method enumerateSequenceSet.
+     * 
+     * @return an Enumeration over all SequenceSet elements
+     */
+    public java.util.Enumeration enumerateSequenceSet(
+    ) {
+        return this._sequenceSetList.elements();
+    }
+
+    /**
+     * Method enumerateTree.
+     * 
+     * @return an Enumeration over all java.lang.String elements
+     */
+    public java.util.Enumeration enumerateTree(
+    ) {
+        return this._treeList.elements();
+    }
+
+    /**
+     * Method getAlignment.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the Alignment at the given index
+     */
+    public Alignment getAlignment(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._alignmentList.size()) {
+            throw new IndexOutOfBoundsException("getAlignment: Index value '" + index + "' not in range [0.." + (this._alignmentList.size() - 1) + "]");
+        }
+        
+        return (Alignment) _alignmentList.get(index);
+    }
+
+    /**
+     * Method getAlignment.Returns the contents of the collection
+     * in an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public Alignment[] getAlignment(
+    ) {
+        Alignment[] array = new Alignment[0];
+        return (Alignment[]) this._alignmentList.toArray(array);
+    }
+
+    /**
+     * Method getAlignmentCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getAlignmentCount(
+    ) {
+        return this._alignmentList.size();
+    }
+
+    /**
+     * Method getSequenceSet.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the SequenceSet at the given index
+     */
+    public SequenceSet getSequenceSet(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._sequenceSetList.size()) {
+            throw new IndexOutOfBoundsException("getSequenceSet: Index value '" + index + "' not in range [0.." + (this._sequenceSetList.size() - 1) + "]");
+        }
+        
+        return (SequenceSet) _sequenceSetList.get(index);
+    }
+
+    /**
+     * Method getSequenceSet.Returns the contents of the collection
+     * in an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public SequenceSet[] getSequenceSet(
+    ) {
+        SequenceSet[] array = new SequenceSet[0];
+        return (SequenceSet[]) this._sequenceSetList.toArray(array);
+    }
+
+    /**
+     * Method getSequenceSetCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getSequenceSetCount(
+    ) {
+        return this._sequenceSetList.size();
+    }
+
+    /**
+     * Method getTree.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the java.lang.String at the given index
+     */
+    public java.lang.String getTree(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._treeList.size()) {
+            throw new IndexOutOfBoundsException("getTree: Index value '" + index + "' not in range [0.." + (this._treeList.size() - 1) + "]");
+        }
+        
+        return (java.lang.String) _treeList.get(index);
+    }
+
+    /**
+     * Method getTree.Returns the contents of the collection in an
+     * Array.  <p>Note:  Just in case the collection contents are
+     * changing in another thread, we pass a 0-length Array of the
+     * correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public java.lang.String[] getTree(
+    ) {
+        java.lang.String[] array = new java.lang.String[0];
+        return (java.lang.String[]) this._treeList.toArray(array);
+    }
+
+    /**
+     * Method getTreeCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getTreeCount(
+    ) {
+        return this._treeList.size();
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Method removeAlignment.
+     * 
+     * @param vAlignment
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeAlignment(
+            final Alignment vAlignment) {
+        boolean removed = _alignmentList.remove(vAlignment);
+        return removed;
+    }
+
+    /**
+     * Method removeAlignmentAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public Alignment removeAlignmentAt(
+            final int index) {
+        java.lang.Object obj = this._alignmentList.remove(index);
+        return (Alignment) obj;
+    }
+
+    /**
+     */
+    public void removeAllAlignment(
+    ) {
+        this._alignmentList.clear();
+    }
+
+    /**
+     */
+    public void removeAllSequenceSet(
+    ) {
+        this._sequenceSetList.clear();
+    }
+
+    /**
+     */
+    public void removeAllTree(
+    ) {
+        this._treeList.clear();
+    }
+
+    /**
+     * Method removeSequenceSet.
+     * 
+     * @param vSequenceSet
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeSequenceSet(
+            final SequenceSet vSequenceSet) {
+        boolean removed = _sequenceSetList.remove(vSequenceSet);
+        return removed;
+    }
+
+    /**
+     * Method removeSequenceSetAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public SequenceSet removeSequenceSetAt(
+            final int index) {
+        java.lang.Object obj = this._sequenceSetList.remove(index);
+        return (SequenceSet) obj;
+    }
+
+    /**
+     * Method removeTree.
+     * 
+     * @param vTree
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeTree(
+            final java.lang.String vTree) {
+        boolean removed = _treeList.remove(vTree);
+        return removed;
+    }
+
+    /**
+     * Method removeTreeAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public java.lang.String removeTreeAt(
+            final int index) {
+        java.lang.Object obj = this._treeList.remove(index);
+        return (java.lang.String) obj;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vAlignment
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setAlignment(
+            final int index,
+            final Alignment vAlignment)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._alignmentList.size()) {
+            throw new IndexOutOfBoundsException("setAlignment: Index value '" + index + "' not in range [0.." + (this._alignmentList.size() - 1) + "]");
+        }
+        
+        this._alignmentList.set(index, vAlignment);
+    }
+
+    /**
+     * 
+     * 
+     * @param vAlignmentArray
+     */
+    public void setAlignment(
+            final Alignment[] vAlignmentArray) {
+        //-- copy array
+        _alignmentList.clear();
+        
+        for (int i = 0; i < vAlignmentArray.length; i++) {
+                this._alignmentList.add(vAlignmentArray[i]);
+        }
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSequenceSet
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setSequenceSet(
+            final int index,
+            final SequenceSet vSequenceSet)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._sequenceSetList.size()) {
+            throw new IndexOutOfBoundsException("setSequenceSet: Index value '" + index + "' not in range [0.." + (this._sequenceSetList.size() - 1) + "]");
+        }
+        
+        this._sequenceSetList.set(index, vSequenceSet);
+    }
+
+    /**
+     * 
+     * 
+     * @param vSequenceSetArray
+     */
+    public void setSequenceSet(
+            final SequenceSet[] vSequenceSetArray) {
+        //-- copy array
+        _sequenceSetList.clear();
+        
+        for (int i = 0; i < vSequenceSetArray.length; i++) {
+                this._sequenceSetList.add(vSequenceSetArray[i]);
+        }
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vTree
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setTree(
+            final int index,
+            final java.lang.String vTree)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._treeList.size()) {
+            throw new IndexOutOfBoundsException("setTree: Index value '" + index + "' not in range [0.." + (this._treeList.size() - 1) + "]");
+        }
+        
+        this._treeList.set(index, vTree);
+    }
+
+    /**
+     * 
+     * 
+     * @param vTreeArray
+     */
+    public void setTree(
+            final java.lang.String[] vTreeArray) {
+        //-- copy array
+        _treeList.clear();
+        
+        for (int i = 0; i < vTreeArray.length; i++) {
+                this._treeList.add(vTreeArray[i]);
+        }
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.VAMSAS
+     */
+    public static jalview.binding.VAMSAS unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.VAMSAS) Unmarshaller.unmarshal(jalview.binding.VAMSAS.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
index c57556a..5fda35e 100644 (file)
@@ -1,27 +1,14 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-//---------------------------------/
-//- Imported classes and packages -/
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
@@ -32,105 +19,98 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class VamsasModel extends VAMSAS implements java.io.Serializable
+public class VamsasModel extends VAMSAS 
+implements java.io.Serializable
 {
 
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
 
-  public VamsasModel()
-  {
-    super();
-  }
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public VamsasModel() {
+        super();
+    }
+
 
-  // -----------/
-  // - Methods -/
-  // -----------/
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
     }
-    return true;
-  }
 
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
 
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
 
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.VAMSAS
-   */
-  public static jalview.binding.VAMSAS unmarshal(final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.VAMSAS) Unmarshaller.unmarshal(
-            jalview.binding.VamsasModel.class, reader);
-  }
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.VAMSAS
+     */
+    public static jalview.binding.VAMSAS unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.VAMSAS) Unmarshaller.unmarshal(jalview.binding.VamsasModel.class, reader);
+    }
 
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
index af2f286..643c323 100644 (file)
@@ -1,27 +1,14 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-//---------------------------------/
-//- Imported classes and packages -/
+  //---------------------------------/
+ //- Imported classes and packages -/
 //---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
@@ -32,1445 +19,1414 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Viewport implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _conservationSelected.
-   */
-  private boolean _conservationSelected;
-
-  /**
-   * keeps track of state for field: _conservationSelected
-   */
-  private boolean _has_conservationSelected;
-
-  /**
-   * Field _pidSelected.
-   */
-  private boolean _pidSelected;
-
-  /**
-   * keeps track of state for field: _pidSelected
-   */
-  private boolean _has_pidSelected;
-
-  /**
-   * Field _bgColour.
-   */
-  private java.lang.String _bgColour;
-
-  /**
-   * Field _consThreshold.
-   */
-  private int _consThreshold;
-
-  /**
-   * keeps track of state for field: _consThreshold
-   */
-  private boolean _has_consThreshold;
-
-  /**
-   * Field _pidThreshold.
-   */
-  private int _pidThreshold;
-
-  /**
-   * keeps track of state for field: _pidThreshold
-   */
-  private boolean _has_pidThreshold;
-
-  /**
-   * Field _title.
-   */
-  private java.lang.String _title;
-
-  /**
-   * Field _showFullId.
-   */
-  private boolean _showFullId;
-
-  /**
-   * keeps track of state for field: _showFullId
-   */
-  private boolean _has_showFullId;
-
-  /**
-   * Field _showText.
-   */
-  private boolean _showText;
-
-  /**
-   * keeps track of state for field: _showText
-   */
-  private boolean _has_showText;
-
-  /**
-   * Field _showColourText.
-   */
-  private boolean _showColourText;
-
-  /**
-   * keeps track of state for field: _showColourText
-   */
-  private boolean _has_showColourText;
-
-  /**
-   * Field _showBoxes.
-   */
-  private boolean _showBoxes;
-
-  /**
-   * keeps track of state for field: _showBoxes
-   */
-  private boolean _has_showBoxes;
-
-  /**
-   * Field _wrapAlignment.
-   */
-  private boolean _wrapAlignment;
-
-  /**
-   * keeps track of state for field: _wrapAlignment
-   */
-  private boolean _has_wrapAlignment;
-
-  /**
-   * Field _renderGaps.
-   */
-  private boolean _renderGaps;
-
-  /**
-   * keeps track of state for field: _renderGaps
-   */
-  private boolean _has_renderGaps;
-
-  /**
-   * Field _showSequenceFeatures.
-   */
-  private boolean _showSequenceFeatures;
-
-  /**
-   * keeps track of state for field: _showSequenceFeatures
-   */
-  private boolean _has_showSequenceFeatures;
-
-  /**
-   * Field _showAnnotation.
-   */
-  private boolean _showAnnotation;
-
-  /**
-   * keeps track of state for field: _showAnnotation
-   */
-  private boolean _has_showAnnotation;
-
-  /**
-   * Field _showConservation.
-   */
-  private boolean _showConservation;
-
-  /**
-   * keeps track of state for field: _showConservation
-   */
-  private boolean _has_showConservation;
-
-  /**
-   * Field _showQuality.
-   */
-  private boolean _showQuality;
-
-  /**
-   * keeps track of state for field: _showQuality
-   */
-  private boolean _has_showQuality;
-
-  /**
-   * Field _showIdentity.
-   */
-  private boolean _showIdentity;
-
-  /**
-   * keeps track of state for field: _showIdentity
-   */
-  private boolean _has_showIdentity;
-
-  /**
-   * Field _xpos.
-   */
-  private int _xpos;
-
-  /**
-   * keeps track of state for field: _xpos
-   */
-  private boolean _has_xpos;
-
-  /**
-   * Field _ypos.
-   */
-  private int _ypos;
-
-  /**
-   * keeps track of state for field: _ypos
-   */
-  private boolean _has_ypos;
-
-  /**
-   * Field _width.
-   */
-  private int _width;
-
-  /**
-   * keeps track of state for field: _width
-   */
-  private boolean _has_width;
-
-  /**
-   * Field _height.
-   */
-  private int _height;
-
-  /**
-   * keeps track of state for field: _height
-   */
-  private boolean _has_height;
-
-  /**
-   * Field _startRes.
-   */
-  private int _startRes;
-
-  /**
-   * keeps track of state for field: _startRes
-   */
-  private boolean _has_startRes;
-
-  /**
-   * Field _startSeq.
-   */
-  private int _startSeq;
-
-  /**
-   * keeps track of state for field: _startSeq
-   */
-  private boolean _has_startSeq;
-
-  /**
-   * Field _fontName.
-   */
-  private java.lang.String _fontName;
-
-  /**
-   * Field _fontSize.
-   */
-  private int _fontSize;
-
-  /**
-   * keeps track of state for field: _fontSize
-   */
-  private boolean _has_fontSize;
-
-  /**
-   * Field _fontStyle.
-   */
-  private int _fontStyle;
-
-  /**
-   * keeps track of state for field: _fontStyle
-   */
-  private boolean _has_fontStyle;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Viewport()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
+public class Viewport implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _conservationSelected.
+     */
+    private boolean _conservationSelected;
+
+    /**
+     * keeps track of state for field: _conservationSelected
+     */
+    private boolean _has_conservationSelected;
+
+    /**
+     * Field _pidSelected.
+     */
+    private boolean _pidSelected;
+
+    /**
+     * keeps track of state for field: _pidSelected
+     */
+    private boolean _has_pidSelected;
+
+    /**
+     * Field _bgColour.
+     */
+    private java.lang.String _bgColour;
+
+    /**
+     * Field _consThreshold.
+     */
+    private int _consThreshold;
+
+    /**
+     * keeps track of state for field: _consThreshold
+     */
+    private boolean _has_consThreshold;
+
+    /**
+     * Field _pidThreshold.
+     */
+    private int _pidThreshold;
+
+    /**
+     * keeps track of state for field: _pidThreshold
+     */
+    private boolean _has_pidThreshold;
+
+    /**
+     * Field _title.
+     */
+    private java.lang.String _title;
+
+    /**
+     * Field _showFullId.
+     */
+    private boolean _showFullId;
+
+    /**
+     * keeps track of state for field: _showFullId
+     */
+    private boolean _has_showFullId;
+
+    /**
+     * Field _showText.
+     */
+    private boolean _showText;
+
+    /**
+     * keeps track of state for field: _showText
+     */
+    private boolean _has_showText;
+
+    /**
+     * Field _showColourText.
+     */
+    private boolean _showColourText;
+
+    /**
+     * keeps track of state for field: _showColourText
+     */
+    private boolean _has_showColourText;
+
+    /**
+     * Field _showBoxes.
+     */
+    private boolean _showBoxes;
+
+    /**
+     * keeps track of state for field: _showBoxes
+     */
+    private boolean _has_showBoxes;
+
+    /**
+     * Field _wrapAlignment.
+     */
+    private boolean _wrapAlignment;
+
+    /**
+     * keeps track of state for field: _wrapAlignment
+     */
+    private boolean _has_wrapAlignment;
+
+    /**
+     * Field _renderGaps.
+     */
+    private boolean _renderGaps;
+
+    /**
+     * keeps track of state for field: _renderGaps
+     */
+    private boolean _has_renderGaps;
+
+    /**
+     * Field _showSequenceFeatures.
+     */
+    private boolean _showSequenceFeatures;
+
+    /**
+     * keeps track of state for field: _showSequenceFeatures
+     */
+    private boolean _has_showSequenceFeatures;
+
+    /**
+     * Field _showAnnotation.
+     */
+    private boolean _showAnnotation;
+
+    /**
+     * keeps track of state for field: _showAnnotation
+     */
+    private boolean _has_showAnnotation;
+
+    /**
+     * Field _showConservation.
+     */
+    private boolean _showConservation;
+
+    /**
+     * keeps track of state for field: _showConservation
+     */
+    private boolean _has_showConservation;
+
+    /**
+     * Field _showQuality.
+     */
+    private boolean _showQuality;
+
+    /**
+     * keeps track of state for field: _showQuality
+     */
+    private boolean _has_showQuality;
+
+    /**
+     * Field _showIdentity.
+     */
+    private boolean _showIdentity;
+
+    /**
+     * keeps track of state for field: _showIdentity
+     */
+    private boolean _has_showIdentity;
+
+    /**
+     * Field _xpos.
+     */
+    private int _xpos;
+
+    /**
+     * keeps track of state for field: _xpos
+     */
+    private boolean _has_xpos;
+
+    /**
+     * Field _ypos.
+     */
+    private int _ypos;
+
+    /**
+     * keeps track of state for field: _ypos
+     */
+    private boolean _has_ypos;
+
+    /**
+     * Field _width.
+     */
+    private int _width;
 
-  /**
+    /**
+     * keeps track of state for field: _width
      */
-  public void deleteConsThreshold()
-  {
-    this._has_consThreshold = false;
-  }
+    private boolean _has_width;
 
-  /**
+    /**
+     * Field _height.
      */
-  public void deleteConservationSelected()
-  {
-    this._has_conservationSelected = false;
-  }
+    private int _height;
 
-  /**
+    /**
+     * keeps track of state for field: _height
      */
-  public void deleteFontSize()
-  {
-    this._has_fontSize = false;
-  }
+    private boolean _has_height;
 
-  /**
+    /**
+     * Field _startRes.
      */
-  public void deleteFontStyle()
-  {
-    this._has_fontStyle = false;
-  }
+    private int _startRes;
 
-  /**
+    /**
+     * keeps track of state for field: _startRes
      */
-  public void deleteHeight()
-  {
-    this._has_height = false;
-  }
+    private boolean _has_startRes;
 
-  /**
+    /**
+     * Field _startSeq.
      */
-  public void deletePidSelected()
-  {
-    this._has_pidSelected = false;
-  }
+    private int _startSeq;
 
-  /**
+    /**
+     * keeps track of state for field: _startSeq
      */
-  public void deletePidThreshold()
-  {
-    this._has_pidThreshold = false;
-  }
+    private boolean _has_startSeq;
 
-  /**
+    /**
+     * Field _fontName.
      */
-  public void deleteRenderGaps()
-  {
-    this._has_renderGaps = false;
-  }
+    private java.lang.String _fontName;
 
-  /**
+    /**
+     * Field _fontSize.
      */
-  public void deleteShowAnnotation()
-  {
-    this._has_showAnnotation = false;
-  }
+    private int _fontSize;
 
-  /**
+    /**
+     * keeps track of state for field: _fontSize
      */
-  public void deleteShowBoxes()
-  {
-    this._has_showBoxes = false;
-  }
+    private boolean _has_fontSize;
 
-  /**
+    /**
+     * Field _fontStyle.
      */
-  public void deleteShowColourText()
-  {
-    this._has_showColourText = false;
-  }
+    private int _fontStyle;
 
-  /**
+    /**
+     * keeps track of state for field: _fontStyle
      */
-  public void deleteShowConservation()
-  {
-    this._has_showConservation = false;
-  }
+    private boolean _has_fontStyle;
 
-  /**
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Viewport() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deleteConsThreshold(
+    ) {
+        this._has_consThreshold= false;
+    }
+
+    /**
      */
-  public void deleteShowFullId()
-  {
-    this._has_showFullId = false;
-  }
+    public void deleteConservationSelected(
+    ) {
+        this._has_conservationSelected= false;
+    }
 
-  /**
+    /**
      */
-  public void deleteShowIdentity()
-  {
-    this._has_showIdentity = false;
-  }
+    public void deleteFontSize(
+    ) {
+        this._has_fontSize= false;
+    }
+
+    /**
+     */
+    public void deleteFontStyle(
+    ) {
+        this._has_fontStyle= false;
+    }
+
+    /**
+     */
+    public void deleteHeight(
+    ) {
+        this._has_height= false;
+    }
+
+    /**
+     */
+    public void deletePidSelected(
+    ) {
+        this._has_pidSelected= false;
+    }
+
+    /**
+     */
+    public void deletePidThreshold(
+    ) {
+        this._has_pidThreshold= false;
+    }
+
+    /**
+     */
+    public void deleteRenderGaps(
+    ) {
+        this._has_renderGaps= false;
+    }
+
+    /**
+     */
+    public void deleteShowAnnotation(
+    ) {
+        this._has_showAnnotation= false;
+    }
+
+    /**
+     */
+    public void deleteShowBoxes(
+    ) {
+        this._has_showBoxes= false;
+    }
+
+    /**
+     */
+    public void deleteShowColourText(
+    ) {
+        this._has_showColourText= false;
+    }
+
+    /**
+     */
+    public void deleteShowConservation(
+    ) {
+        this._has_showConservation= false;
+    }
+
+    /**
+     */
+    public void deleteShowFullId(
+    ) {
+        this._has_showFullId= false;
+    }
+
+    /**
+     */
+    public void deleteShowIdentity(
+    ) {
+        this._has_showIdentity= false;
+    }
+
+    /**
+     */
+    public void deleteShowQuality(
+    ) {
+        this._has_showQuality= false;
+    }
+
+    /**
+     */
+    public void deleteShowSequenceFeatures(
+    ) {
+        this._has_showSequenceFeatures= false;
+    }
+
+    /**
+     */
+    public void deleteShowText(
+    ) {
+        this._has_showText= false;
+    }
+
+    /**
+     */
+    public void deleteStartRes(
+    ) {
+        this._has_startRes= false;
+    }
+
+    /**
+     */
+    public void deleteStartSeq(
+    ) {
+        this._has_startSeq= false;
+    }
+
+    /**
+     */
+    public void deleteWidth(
+    ) {
+        this._has_width= false;
+    }
+
+    /**
+     */
+    public void deleteWrapAlignment(
+    ) {
+        this._has_wrapAlignment= false;
+    }
+
+    /**
+     */
+    public void deleteXpos(
+    ) {
+        this._has_xpos= false;
+    }
+
+    /**
+     */
+    public void deleteYpos(
+    ) {
+        this._has_ypos= false;
+    }
+
+    /**
+     * Returns the value of field 'bgColour'.
+     * 
+     * @return the value of field 'BgColour'.
+     */
+    public java.lang.String getBgColour(
+    ) {
+        return this._bgColour;
+    }
+
+    /**
+     * Returns the value of field 'consThreshold'.
+     * 
+     * @return the value of field 'ConsThreshold'.
+     */
+    public int getConsThreshold(
+    ) {
+        return this._consThreshold;
+    }
+
+    /**
+     * Returns the value of field 'conservationSelected'.
+     * 
+     * @return the value of field 'ConservationSelected'.
+     */
+    public boolean getConservationSelected(
+    ) {
+        return this._conservationSelected;
+    }
+
+    /**
+     * Returns the value of field 'fontName'.
+     * 
+     * @return the value of field 'FontName'.
+     */
+    public java.lang.String getFontName(
+    ) {
+        return this._fontName;
+    }
+
+    /**
+     * Returns the value of field 'fontSize'.
+     * 
+     * @return the value of field 'FontSize'.
+     */
+    public int getFontSize(
+    ) {
+        return this._fontSize;
+    }
+
+    /**
+     * Returns the value of field 'fontStyle'.
+     * 
+     * @return the value of field 'FontStyle'.
+     */
+    public int getFontStyle(
+    ) {
+        return this._fontStyle;
+    }
+
+    /**
+     * Returns the value of field 'height'.
+     * 
+     * @return the value of field 'Height'.
+     */
+    public int getHeight(
+    ) {
+        return this._height;
+    }
+
+    /**
+     * Returns the value of field 'pidSelected'.
+     * 
+     * @return the value of field 'PidSelected'.
+     */
+    public boolean getPidSelected(
+    ) {
+        return this._pidSelected;
+    }
+
+    /**
+     * Returns the value of field 'pidThreshold'.
+     * 
+     * @return the value of field 'PidThreshold'.
+     */
+    public int getPidThreshold(
+    ) {
+        return this._pidThreshold;
+    }
+
+    /**
+     * Returns the value of field 'renderGaps'.
+     * 
+     * @return the value of field 'RenderGaps'.
+     */
+    public boolean getRenderGaps(
+    ) {
+        return this._renderGaps;
+    }
+
+    /**
+     * Returns the value of field 'showAnnotation'.
+     * 
+     * @return the value of field 'ShowAnnotation'.
+     */
+    public boolean getShowAnnotation(
+    ) {
+        return this._showAnnotation;
+    }
+
+    /**
+     * Returns the value of field 'showBoxes'.
+     * 
+     * @return the value of field 'ShowBoxes'.
+     */
+    public boolean getShowBoxes(
+    ) {
+        return this._showBoxes;
+    }
+
+    /**
+     * Returns the value of field 'showColourText'.
+     * 
+     * @return the value of field 'ShowColourText'.
+     */
+    public boolean getShowColourText(
+    ) {
+        return this._showColourText;
+    }
+
+    /**
+     * Returns the value of field 'showConservation'.
+     * 
+     * @return the value of field 'ShowConservation'.
+     */
+    public boolean getShowConservation(
+    ) {
+        return this._showConservation;
+    }
+
+    /**
+     * Returns the value of field 'showFullId'.
+     * 
+     * @return the value of field 'ShowFullId'.
+     */
+    public boolean getShowFullId(
+    ) {
+        return this._showFullId;
+    }
+
+    /**
+     * Returns the value of field 'showIdentity'.
+     * 
+     * @return the value of field 'ShowIdentity'.
+     */
+    public boolean getShowIdentity(
+    ) {
+        return this._showIdentity;
+    }
+
+    /**
+     * Returns the value of field 'showQuality'.
+     * 
+     * @return the value of field 'ShowQuality'.
+     */
+    public boolean getShowQuality(
+    ) {
+        return this._showQuality;
+    }
+
+    /**
+     * Returns the value of field 'showSequenceFeatures'.
+     * 
+     * @return the value of field 'ShowSequenceFeatures'.
+     */
+    public boolean getShowSequenceFeatures(
+    ) {
+        return this._showSequenceFeatures;
+    }
+
+    /**
+     * Returns the value of field 'showText'.
+     * 
+     * @return the value of field 'ShowText'.
+     */
+    public boolean getShowText(
+    ) {
+        return this._showText;
+    }
+
+    /**
+     * Returns the value of field 'startRes'.
+     * 
+     * @return the value of field 'StartRes'.
+     */
+    public int getStartRes(
+    ) {
+        return this._startRes;
+    }
+
+    /**
+     * Returns the value of field 'startSeq'.
+     * 
+     * @return the value of field 'StartSeq'.
+     */
+    public int getStartSeq(
+    ) {
+        return this._startSeq;
+    }
 
-  /**
+    /**
+     * Returns the value of field 'title'.
+     * 
+     * @return the value of field 'Title'.
      */
-  public void deleteShowQuality()
-  {
-    this._has_showQuality = false;
-  }
-
-  /**
-     */
-  public void deleteShowSequenceFeatures()
-  {
-    this._has_showSequenceFeatures = false;
-  }
-
-  /**
-     */
-  public void deleteShowText()
-  {
-    this._has_showText = false;
-  }
-
-  /**
-     */
-  public void deleteStartRes()
-  {
-    this._has_startRes = false;
-  }
-
-  /**
-     */
-  public void deleteStartSeq()
-  {
-    this._has_startSeq = false;
-  }
-
-  /**
-     */
-  public void deleteWidth()
-  {
-    this._has_width = false;
-  }
-
-  /**
-     */
-  public void deleteWrapAlignment()
-  {
-    this._has_wrapAlignment = false;
-  }
-
-  /**
-     */
-  public void deleteXpos()
-  {
-    this._has_xpos = false;
-  }
-
-  /**
-     */
-  public void deleteYpos()
-  {
-    this._has_ypos = false;
-  }
-
-  /**
-   * Returns the value of field 'bgColour'.
-   * 
-   * @return the value of field 'BgColour'.
-   */
-  public java.lang.String getBgColour()
-  {
-    return this._bgColour;
-  }
-
-  /**
-   * Returns the value of field 'consThreshold'.
-   * 
-   * @return the value of field 'ConsThreshold'.
-   */
-  public int getConsThreshold()
-  {
-    return this._consThreshold;
-  }
-
-  /**
-   * Returns the value of field 'conservationSelected'.
-   * 
-   * @return the value of field 'ConservationSelected'.
-   */
-  public boolean getConservationSelected()
-  {
-    return this._conservationSelected;
-  }
-
-  /**
-   * Returns the value of field 'fontName'.
-   * 
-   * @return the value of field 'FontName'.
-   */
-  public java.lang.String getFontName()
-  {
-    return this._fontName;
-  }
-
-  /**
-   * Returns the value of field 'fontSize'.
-   * 
-   * @return the value of field 'FontSize'.
-   */
-  public int getFontSize()
-  {
-    return this._fontSize;
-  }
-
-  /**
-   * Returns the value of field 'fontStyle'.
-   * 
-   * @return the value of field 'FontStyle'.
-   */
-  public int getFontStyle()
-  {
-    return this._fontStyle;
-  }
-
-  /**
-   * Returns the value of field 'height'.
-   * 
-   * @return the value of field 'Height'.
-   */
-  public int getHeight()
-  {
-    return this._height;
-  }
-
-  /**
-   * Returns the value of field 'pidSelected'.
-   * 
-   * @return the value of field 'PidSelected'.
-   */
-  public boolean getPidSelected()
-  {
-    return this._pidSelected;
-  }
-
-  /**
-   * Returns the value of field 'pidThreshold'.
-   * 
-   * @return the value of field 'PidThreshold'.
-   */
-  public int getPidThreshold()
-  {
-    return this._pidThreshold;
-  }
-
-  /**
-   * Returns the value of field 'renderGaps'.
-   * 
-   * @return the value of field 'RenderGaps'.
-   */
-  public boolean getRenderGaps()
-  {
-    return this._renderGaps;
-  }
-
-  /**
-   * Returns the value of field 'showAnnotation'.
-   * 
-   * @return the value of field 'ShowAnnotation'.
-   */
-  public boolean getShowAnnotation()
-  {
-    return this._showAnnotation;
-  }
-
-  /**
-   * Returns the value of field 'showBoxes'.
-   * 
-   * @return the value of field 'ShowBoxes'.
-   */
-  public boolean getShowBoxes()
-  {
-    return this._showBoxes;
-  }
-
-  /**
-   * Returns the value of field 'showColourText'.
-   * 
-   * @return the value of field 'ShowColourText'.
-   */
-  public boolean getShowColourText()
-  {
-    return this._showColourText;
-  }
-
-  /**
-   * Returns the value of field 'showConservation'.
-   * 
-   * @return the value of field 'ShowConservation'.
-   */
-  public boolean getShowConservation()
-  {
-    return this._showConservation;
-  }
-
-  /**
-   * Returns the value of field 'showFullId'.
-   * 
-   * @return the value of field 'ShowFullId'.
-   */
-  public boolean getShowFullId()
-  {
-    return this._showFullId;
-  }
-
-  /**
-   * Returns the value of field 'showIdentity'.
-   * 
-   * @return the value of field 'ShowIdentity'.
-   */
-  public boolean getShowIdentity()
-  {
-    return this._showIdentity;
-  }
-
-  /**
-   * Returns the value of field 'showQuality'.
-   * 
-   * @return the value of field 'ShowQuality'.
-   */
-  public boolean getShowQuality()
-  {
-    return this._showQuality;
-  }
-
-  /**
-   * Returns the value of field 'showSequenceFeatures'.
-   * 
-   * @return the value of field 'ShowSequenceFeatures'.
-   */
-  public boolean getShowSequenceFeatures()
-  {
-    return this._showSequenceFeatures;
-  }
-
-  /**
-   * Returns the value of field 'showText'.
-   * 
-   * @return the value of field 'ShowText'.
-   */
-  public boolean getShowText()
-  {
-    return this._showText;
-  }
-
-  /**
-   * Returns the value of field 'startRes'.
-   * 
-   * @return the value of field 'StartRes'.
-   */
-  public int getStartRes()
-  {
-    return this._startRes;
-  }
-
-  /**
-   * Returns the value of field 'startSeq'.
-   * 
-   * @return the value of field 'StartSeq'.
-   */
-  public int getStartSeq()
-  {
-    return this._startSeq;
-  }
-
-  /**
-   * Returns the value of field 'title'.
-   * 
-   * @return the value of field 'Title'.
-   */
-  public java.lang.String getTitle()
-  {
-    return this._title;
-  }
-
-  /**
-   * Returns the value of field 'width'.
-   * 
-   * @return the value of field 'Width'.
-   */
-  public int getWidth()
-  {
-    return this._width;
-  }
-
-  /**
-   * Returns the value of field 'wrapAlignment'.
-   * 
-   * @return the value of field 'WrapAlignment'.
-   */
-  public boolean getWrapAlignment()
-  {
-    return this._wrapAlignment;
-  }
-
-  /**
-   * Returns the value of field 'xpos'.
-   * 
-   * @return the value of field 'Xpos'.
-   */
-  public int getXpos()
-  {
-    return this._xpos;
-  }
-
-  /**
-   * Returns the value of field 'ypos'.
-   * 
-   * @return the value of field 'Ypos'.
-   */
-  public int getYpos()
-  {
-    return this._ypos;
-  }
-
-  /**
-   * Method hasConsThreshold.
-   * 
-   * @return true if at least one ConsThreshold has been added
-   */
-  public boolean hasConsThreshold()
-  {
-    return this._has_consThreshold;
-  }
-
-  /**
-   * Method hasConservationSelected.
-   * 
-   * @return true if at least one ConservationSelected has been added
-   */
-  public boolean hasConservationSelected()
-  {
-    return this._has_conservationSelected;
-  }
-
-  /**
-   * Method hasFontSize.
-   * 
-   * @return true if at least one FontSize has been added
-   */
-  public boolean hasFontSize()
-  {
-    return this._has_fontSize;
-  }
-
-  /**
-   * Method hasFontStyle.
-   * 
-   * @return true if at least one FontStyle has been added
-   */
-  public boolean hasFontStyle()
-  {
-    return this._has_fontStyle;
-  }
-
-  /**
-   * Method hasHeight.
-   * 
-   * @return true if at least one Height has been added
-   */
-  public boolean hasHeight()
-  {
-    return this._has_height;
-  }
-
-  /**
-   * Method hasPidSelected.
-   * 
-   * @return true if at least one PidSelected has been added
-   */
-  public boolean hasPidSelected()
-  {
-    return this._has_pidSelected;
-  }
-
-  /**
-   * Method hasPidThreshold.
-   * 
-   * @return true if at least one PidThreshold has been added
-   */
-  public boolean hasPidThreshold()
-  {
-    return this._has_pidThreshold;
-  }
-
-  /**
-   * Method hasRenderGaps.
-   * 
-   * @return true if at least one RenderGaps has been added
-   */
-  public boolean hasRenderGaps()
-  {
-    return this._has_renderGaps;
-  }
-
-  /**
-   * Method hasShowAnnotation.
-   * 
-   * @return true if at least one ShowAnnotation has been added
-   */
-  public boolean hasShowAnnotation()
-  {
-    return this._has_showAnnotation;
-  }
-
-  /**
-   * Method hasShowBoxes.
-   * 
-   * @return true if at least one ShowBoxes has been added
-   */
-  public boolean hasShowBoxes()
-  {
-    return this._has_showBoxes;
-  }
-
-  /**
-   * Method hasShowColourText.
-   * 
-   * @return true if at least one ShowColourText has been added
-   */
-  public boolean hasShowColourText()
-  {
-    return this._has_showColourText;
-  }
-
-  /**
-   * Method hasShowConservation.
-   * 
-   * @return true if at least one ShowConservation has been added
-   */
-  public boolean hasShowConservation()
-  {
-    return this._has_showConservation;
-  }
-
-  /**
-   * Method hasShowFullId.
-   * 
-   * @return true if at least one ShowFullId has been added
-   */
-  public boolean hasShowFullId()
-  {
-    return this._has_showFullId;
-  }
-
-  /**
-   * Method hasShowIdentity.
-   * 
-   * @return true if at least one ShowIdentity has been added
-   */
-  public boolean hasShowIdentity()
-  {
-    return this._has_showIdentity;
-  }
-
-  /**
-   * Method hasShowQuality.
-   * 
-   * @return true if at least one ShowQuality has been added
-   */
-  public boolean hasShowQuality()
-  {
-    return this._has_showQuality;
-  }
-
-  /**
-   * Method hasShowSequenceFeatures.
-   * 
-   * @return true if at least one ShowSequenceFeatures has been added
-   */
-  public boolean hasShowSequenceFeatures()
-  {
-    return this._has_showSequenceFeatures;
-  }
-
-  /**
-   * Method hasShowText.
-   * 
-   * @return true if at least one ShowText has been added
-   */
-  public boolean hasShowText()
-  {
-    return this._has_showText;
-  }
-
-  /**
-   * Method hasStartRes.
-   * 
-   * @return true if at least one StartRes has been added
-   */
-  public boolean hasStartRes()
-  {
-    return this._has_startRes;
-  }
-
-  /**
-   * Method hasStartSeq.
-   * 
-   * @return true if at least one StartSeq has been added
-   */
-  public boolean hasStartSeq()
-  {
-    return this._has_startSeq;
-  }
-
-  /**
-   * Method hasWidth.
-   * 
-   * @return true if at least one Width has been added
-   */
-  public boolean hasWidth()
-  {
-    return this._has_width;
-  }
-
-  /**
-   * Method hasWrapAlignment.
-   * 
-   * @return true if at least one WrapAlignment has been added
-   */
-  public boolean hasWrapAlignment()
-  {
-    return this._has_wrapAlignment;
-  }
-
-  /**
-   * Method hasXpos.
-   * 
-   * @return true if at least one Xpos has been added
-   */
-  public boolean hasXpos()
-  {
-    return this._has_xpos;
-  }
-
-  /**
-   * Method hasYpos.
-   * 
-   * @return true if at least one Ypos has been added
-   */
-  public boolean hasYpos()
-  {
-    return this._has_ypos;
-  }
-
-  /**
-   * Returns the value of field 'conservationSelected'.
-   * 
-   * @return the value of field 'ConservationSelected'.
-   */
-  public boolean isConservationSelected()
-  {
-    return this._conservationSelected;
-  }
-
-  /**
-   * Returns the value of field 'pidSelected'.
-   * 
-   * @return the value of field 'PidSelected'.
-   */
-  public boolean isPidSelected()
-  {
-    return this._pidSelected;
-  }
-
-  /**
-   * Returns the value of field 'renderGaps'.
-   * 
-   * @return the value of field 'RenderGaps'.
-   */
-  public boolean isRenderGaps()
-  {
-    return this._renderGaps;
-  }
-
-  /**
-   * Returns the value of field 'showAnnotation'.
-   * 
-   * @return the value of field 'ShowAnnotation'.
-   */
-  public boolean isShowAnnotation()
-  {
-    return this._showAnnotation;
-  }
-
-  /**
-   * Returns the value of field 'showBoxes'.
-   * 
-   * @return the value of field 'ShowBoxes'.
-   */
-  public boolean isShowBoxes()
-  {
-    return this._showBoxes;
-  }
-
-  /**
-   * Returns the value of field 'showColourText'.
-   * 
-   * @return the value of field 'ShowColourText'.
-   */
-  public boolean isShowColourText()
-  {
-    return this._showColourText;
-  }
-
-  /**
-   * Returns the value of field 'showConservation'.
-   * 
-   * @return the value of field 'ShowConservation'.
-   */
-  public boolean isShowConservation()
-  {
-    return this._showConservation;
-  }
-
-  /**
-   * Returns the value of field 'showFullId'.
-   * 
-   * @return the value of field 'ShowFullId'.
-   */
-  public boolean isShowFullId()
-  {
-    return this._showFullId;
-  }
-
-  /**
-   * Returns the value of field 'showIdentity'.
-   * 
-   * @return the value of field 'ShowIdentity'.
-   */
-  public boolean isShowIdentity()
-  {
-    return this._showIdentity;
-  }
-
-  /**
-   * Returns the value of field 'showQuality'.
-   * 
-   * @return the value of field 'ShowQuality'.
-   */
-  public boolean isShowQuality()
-  {
-    return this._showQuality;
-  }
-
-  /**
-   * Returns the value of field 'showSequenceFeatures'.
-   * 
-   * @return the value of field 'ShowSequenceFeatures'.
-   */
-  public boolean isShowSequenceFeatures()
-  {
-    return this._showSequenceFeatures;
-  }
-
-  /**
-   * Returns the value of field 'showText'.
-   * 
-   * @return the value of field 'ShowText'.
-   */
-  public boolean isShowText()
-  {
-    return this._showText;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * Returns the value of field 'wrapAlignment'.
-   * 
-   * @return the value of field 'WrapAlignment'.
-   */
-  public boolean isWrapAlignment()
-  {
-    return this._wrapAlignment;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *           if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'bgColour'.
-   * 
-   * @param bgColour
-   *          the value of field 'bgColour'.
-   */
-  public void setBgColour(final java.lang.String bgColour)
-  {
-    this._bgColour = bgColour;
-  }
-
-  /**
-   * Sets the value of field 'consThreshold'.
-   * 
-   * @param consThreshold
-   *          the value of field 'consThreshold'.
-   */
-  public void setConsThreshold(final int consThreshold)
-  {
-    this._consThreshold = consThreshold;
-    this._has_consThreshold = true;
-  }
-
-  /**
-   * Sets the value of field 'conservationSelected'.
-   * 
-   * @param conservationSelected
-   *          the value of field 'conservationSelected'.
-   */
-  public void setConservationSelected(final boolean conservationSelected)
-  {
-    this._conservationSelected = conservationSelected;
-    this._has_conservationSelected = true;
-  }
-
-  /**
-   * Sets the value of field 'fontName'.
-   * 
-   * @param fontName
-   *          the value of field 'fontName'.
-   */
-  public void setFontName(final java.lang.String fontName)
-  {
-    this._fontName = fontName;
-  }
-
-  /**
-   * Sets the value of field 'fontSize'.
-   * 
-   * @param fontSize
-   *          the value of field 'fontSize'.
-   */
-  public void setFontSize(final int fontSize)
-  {
-    this._fontSize = fontSize;
-    this._has_fontSize = true;
-  }
-
-  /**
-   * Sets the value of field 'fontStyle'.
-   * 
-   * @param fontStyle
-   *          the value of field 'fontStyle'.
-   */
-  public void setFontStyle(final int fontStyle)
-  {
-    this._fontStyle = fontStyle;
-    this._has_fontStyle = true;
-  }
-
-  /**
-   * Sets the value of field 'height'.
-   * 
-   * @param height
-   *          the value of field 'height'.
-   */
-  public void setHeight(final int height)
-  {
-    this._height = height;
-    this._has_height = true;
-  }
-
-  /**
-   * Sets the value of field 'pidSelected'.
-   * 
-   * @param pidSelected
-   *          the value of field 'pidSelected'.
-   */
-  public void setPidSelected(final boolean pidSelected)
-  {
-    this._pidSelected = pidSelected;
-    this._has_pidSelected = true;
-  }
-
-  /**
-   * Sets the value of field 'pidThreshold'.
-   * 
-   * @param pidThreshold
-   *          the value of field 'pidThreshold'.
-   */
-  public void setPidThreshold(final int pidThreshold)
-  {
-    this._pidThreshold = pidThreshold;
-    this._has_pidThreshold = true;
-  }
-
-  /**
-   * Sets the value of field 'renderGaps'.
-   * 
-   * @param renderGaps
-   *          the value of field 'renderGaps'.
-   */
-  public void setRenderGaps(final boolean renderGaps)
-  {
-    this._renderGaps = renderGaps;
-    this._has_renderGaps = true;
-  }
-
-  /**
-   * Sets the value of field 'showAnnotation'.
-   * 
-   * @param showAnnotation
-   *          the value of field 'showAnnotation'.
-   */
-  public void setShowAnnotation(final boolean showAnnotation)
-  {
-    this._showAnnotation = showAnnotation;
-    this._has_showAnnotation = true;
-  }
-
-  /**
-   * Sets the value of field 'showBoxes'.
-   * 
-   * @param showBoxes
-   *          the value of field 'showBoxes'.
-   */
-  public void setShowBoxes(final boolean showBoxes)
-  {
-    this._showBoxes = showBoxes;
-    this._has_showBoxes = true;
-  }
-
-  /**
-   * Sets the value of field 'showColourText'.
-   * 
-   * @param showColourText
-   *          the value of field 'showColourText'.
-   */
-  public void setShowColourText(final boolean showColourText)
-  {
-    this._showColourText = showColourText;
-    this._has_showColourText = true;
-  }
-
-  /**
-   * Sets the value of field 'showConservation'.
-   * 
-   * @param showConservation
-   *          the value of field 'showConservation'
-   */
-  public void setShowConservation(final boolean showConservation)
-  {
-    this._showConservation = showConservation;
-    this._has_showConservation = true;
-  }
-
-  /**
-   * Sets the value of field 'showFullId'.
-   * 
-   * @param showFullId
-   *          the value of field 'showFullId'.
-   */
-  public void setShowFullId(final boolean showFullId)
-  {
-    this._showFullId = showFullId;
-    this._has_showFullId = true;
-  }
-
-  /**
-   * Sets the value of field 'showIdentity'.
-   * 
-   * @param showIdentity
-   *          the value of field 'showIdentity'.
-   */
-  public void setShowIdentity(final boolean showIdentity)
-  {
-    this._showIdentity = showIdentity;
-    this._has_showIdentity = true;
-  }
-
-  /**
-   * Sets the value of field 'showQuality'.
-   * 
-   * @param showQuality
-   *          the value of field 'showQuality'.
-   */
-  public void setShowQuality(final boolean showQuality)
-  {
-    this._showQuality = showQuality;
-    this._has_showQuality = true;
-  }
-
-  /**
-   * Sets the value of field 'showSequenceFeatures'.
-   * 
-   * @param showSequenceFeatures
-   *          the value of field 'showSequenceFeatures'.
-   */
-  public void setShowSequenceFeatures(final boolean showSequenceFeatures)
-  {
-    this._showSequenceFeatures = showSequenceFeatures;
-    this._has_showSequenceFeatures = true;
-  }
-
-  /**
-   * Sets the value of field 'showText'.
-   * 
-   * @param showText
-   *          the value of field 'showText'.
-   */
-  public void setShowText(final boolean showText)
-  {
-    this._showText = showText;
-    this._has_showText = true;
-  }
-
-  /**
-   * Sets the value of field 'startRes'.
-   * 
-   * @param startRes
-   *          the value of field 'startRes'.
-   */
-  public void setStartRes(final int startRes)
-  {
-    this._startRes = startRes;
-    this._has_startRes = true;
-  }
-
-  /**
-   * Sets the value of field 'startSeq'.
-   * 
-   * @param startSeq
-   *          the value of field 'startSeq'.
-   */
-  public void setStartSeq(final int startSeq)
-  {
-    this._startSeq = startSeq;
-    this._has_startSeq = true;
-  }
-
-  /**
-   * Sets the value of field 'title'.
-   * 
-   * @param title
-   *          the value of field 'title'.
-   */
-  public void setTitle(final java.lang.String title)
-  {
-    this._title = title;
-  }
-
-  /**
-   * Sets the value of field 'width'.
-   * 
-   * @param width
-   *          the value of field 'width'.
-   */
-  public void setWidth(final int width)
-  {
-    this._width = width;
-    this._has_width = true;
-  }
-
-  /**
-   * Sets the value of field 'wrapAlignment'.
-   * 
-   * @param wrapAlignment
-   *          the value of field 'wrapAlignment'.
-   */
-  public void setWrapAlignment(final boolean wrapAlignment)
-  {
-    this._wrapAlignment = wrapAlignment;
-    this._has_wrapAlignment = true;
-  }
-
-  /**
-   * Sets the value of field 'xpos'.
-   * 
-   * @param xpos
-   *          the value of field 'xpos'.
-   */
-  public void setXpos(final int xpos)
-  {
-    this._xpos = xpos;
-    this._has_xpos = true;
-  }
-
-  /**
-   * Sets the value of field 'ypos'.
-   * 
-   * @param ypos
-   *          the value of field 'ypos'.
-   */
-  public void setYpos(final int ypos)
-  {
-    this._ypos = ypos;
-    this._has_ypos = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *           if object is null or if any SAXException is thrown during
-   *           marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   * @return the unmarshaled jalview.binding.Viewport
-   */
-  public static jalview.binding.Viewport unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.Viewport) Unmarshaller.unmarshal(
-            jalview.binding.Viewport.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *           if this object is an invalid instance according to the schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+    public java.lang.String getTitle(
+    ) {
+        return this._title;
+    }
+
+    /**
+     * Returns the value of field 'width'.
+     * 
+     * @return the value of field 'Width'.
+     */
+    public int getWidth(
+    ) {
+        return this._width;
+    }
+
+    /**
+     * Returns the value of field 'wrapAlignment'.
+     * 
+     * @return the value of field 'WrapAlignment'.
+     */
+    public boolean getWrapAlignment(
+    ) {
+        return this._wrapAlignment;
+    }
+
+    /**
+     * Returns the value of field 'xpos'.
+     * 
+     * @return the value of field 'Xpos'.
+     */
+    public int getXpos(
+    ) {
+        return this._xpos;
+    }
+
+    /**
+     * Returns the value of field 'ypos'.
+     * 
+     * @return the value of field 'Ypos'.
+     */
+    public int getYpos(
+    ) {
+        return this._ypos;
+    }
+
+    /**
+     * Method hasConsThreshold.
+     * 
+     * @return true if at least one ConsThreshold has been added
+     */
+    public boolean hasConsThreshold(
+    ) {
+        return this._has_consThreshold;
+    }
+
+    /**
+     * Method hasConservationSelected.
+     * 
+     * @return true if at least one ConservationSelected has been
+     * added
+     */
+    public boolean hasConservationSelected(
+    ) {
+        return this._has_conservationSelected;
+    }
+
+    /**
+     * Method hasFontSize.
+     * 
+     * @return true if at least one FontSize has been added
+     */
+    public boolean hasFontSize(
+    ) {
+        return this._has_fontSize;
+    }
+
+    /**
+     * Method hasFontStyle.
+     * 
+     * @return true if at least one FontStyle has been added
+     */
+    public boolean hasFontStyle(
+    ) {
+        return this._has_fontStyle;
+    }
+
+    /**
+     * Method hasHeight.
+     * 
+     * @return true if at least one Height has been added
+     */
+    public boolean hasHeight(
+    ) {
+        return this._has_height;
+    }
+
+    /**
+     * Method hasPidSelected.
+     * 
+     * @return true if at least one PidSelected has been added
+     */
+    public boolean hasPidSelected(
+    ) {
+        return this._has_pidSelected;
+    }
+
+    /**
+     * Method hasPidThreshold.
+     * 
+     * @return true if at least one PidThreshold has been added
+     */
+    public boolean hasPidThreshold(
+    ) {
+        return this._has_pidThreshold;
+    }
+
+    /**
+     * Method hasRenderGaps.
+     * 
+     * @return true if at least one RenderGaps has been added
+     */
+    public boolean hasRenderGaps(
+    ) {
+        return this._has_renderGaps;
+    }
+
+    /**
+     * Method hasShowAnnotation.
+     * 
+     * @return true if at least one ShowAnnotation has been added
+     */
+    public boolean hasShowAnnotation(
+    ) {
+        return this._has_showAnnotation;
+    }
+
+    /**
+     * Method hasShowBoxes.
+     * 
+     * @return true if at least one ShowBoxes has been added
+     */
+    public boolean hasShowBoxes(
+    ) {
+        return this._has_showBoxes;
+    }
+
+    /**
+     * Method hasShowColourText.
+     * 
+     * @return true if at least one ShowColourText has been added
+     */
+    public boolean hasShowColourText(
+    ) {
+        return this._has_showColourText;
+    }
+
+    /**
+     * Method hasShowConservation.
+     * 
+     * @return true if at least one ShowConservation has been added
+     */
+    public boolean hasShowConservation(
+    ) {
+        return this._has_showConservation;
+    }
+
+    /**
+     * Method hasShowFullId.
+     * 
+     * @return true if at least one ShowFullId has been added
+     */
+    public boolean hasShowFullId(
+    ) {
+        return this._has_showFullId;
+    }
+
+    /**
+     * Method hasShowIdentity.
+     * 
+     * @return true if at least one ShowIdentity has been added
+     */
+    public boolean hasShowIdentity(
+    ) {
+        return this._has_showIdentity;
+    }
+
+    /**
+     * Method hasShowQuality.
+     * 
+     * @return true if at least one ShowQuality has been added
+     */
+    public boolean hasShowQuality(
+    ) {
+        return this._has_showQuality;
+    }
+
+    /**
+     * Method hasShowSequenceFeatures.
+     * 
+     * @return true if at least one ShowSequenceFeatures has been
+     * added
+     */
+    public boolean hasShowSequenceFeatures(
+    ) {
+        return this._has_showSequenceFeatures;
+    }
+
+    /**
+     * Method hasShowText.
+     * 
+     * @return true if at least one ShowText has been added
+     */
+    public boolean hasShowText(
+    ) {
+        return this._has_showText;
+    }
+
+    /**
+     * Method hasStartRes.
+     * 
+     * @return true if at least one StartRes has been added
+     */
+    public boolean hasStartRes(
+    ) {
+        return this._has_startRes;
+    }
+
+    /**
+     * Method hasStartSeq.
+     * 
+     * @return true if at least one StartSeq has been added
+     */
+    public boolean hasStartSeq(
+    ) {
+        return this._has_startSeq;
+    }
+
+    /**
+     * Method hasWidth.
+     * 
+     * @return true if at least one Width has been added
+     */
+    public boolean hasWidth(
+    ) {
+        return this._has_width;
+    }
+
+    /**
+     * Method hasWrapAlignment.
+     * 
+     * @return true if at least one WrapAlignment has been added
+     */
+    public boolean hasWrapAlignment(
+    ) {
+        return this._has_wrapAlignment;
+    }
+
+    /**
+     * Method hasXpos.
+     * 
+     * @return true if at least one Xpos has been added
+     */
+    public boolean hasXpos(
+    ) {
+        return this._has_xpos;
+    }
+
+    /**
+     * Method hasYpos.
+     * 
+     * @return true if at least one Ypos has been added
+     */
+    public boolean hasYpos(
+    ) {
+        return this._has_ypos;
+    }
+
+    /**
+     * Returns the value of field 'conservationSelected'.
+     * 
+     * @return the value of field 'ConservationSelected'.
+     */
+    public boolean isConservationSelected(
+    ) {
+        return this._conservationSelected;
+    }
+
+    /**
+     * Returns the value of field 'pidSelected'.
+     * 
+     * @return the value of field 'PidSelected'.
+     */
+    public boolean isPidSelected(
+    ) {
+        return this._pidSelected;
+    }
+
+    /**
+     * Returns the value of field 'renderGaps'.
+     * 
+     * @return the value of field 'RenderGaps'.
+     */
+    public boolean isRenderGaps(
+    ) {
+        return this._renderGaps;
+    }
+
+    /**
+     * Returns the value of field 'showAnnotation'.
+     * 
+     * @return the value of field 'ShowAnnotation'.
+     */
+    public boolean isShowAnnotation(
+    ) {
+        return this._showAnnotation;
+    }
+
+    /**
+     * Returns the value of field 'showBoxes'.
+     * 
+     * @return the value of field 'ShowBoxes'.
+     */
+    public boolean isShowBoxes(
+    ) {
+        return this._showBoxes;
+    }
+
+    /**
+     * Returns the value of field 'showColourText'.
+     * 
+     * @return the value of field 'ShowColourText'.
+     */
+    public boolean isShowColourText(
+    ) {
+        return this._showColourText;
+    }
+
+    /**
+     * Returns the value of field 'showConservation'.
+     * 
+     * @return the value of field 'ShowConservation'.
+     */
+    public boolean isShowConservation(
+    ) {
+        return this._showConservation;
+    }
+
+    /**
+     * Returns the value of field 'showFullId'.
+     * 
+     * @return the value of field 'ShowFullId'.
+     */
+    public boolean isShowFullId(
+    ) {
+        return this._showFullId;
+    }
+
+    /**
+     * Returns the value of field 'showIdentity'.
+     * 
+     * @return the value of field 'ShowIdentity'.
+     */
+    public boolean isShowIdentity(
+    ) {
+        return this._showIdentity;
+    }
+
+    /**
+     * Returns the value of field 'showQuality'.
+     * 
+     * @return the value of field 'ShowQuality'.
+     */
+    public boolean isShowQuality(
+    ) {
+        return this._showQuality;
+    }
+
+    /**
+     * Returns the value of field 'showSequenceFeatures'.
+     * 
+     * @return the value of field 'ShowSequenceFeatures'.
+     */
+    public boolean isShowSequenceFeatures(
+    ) {
+        return this._showSequenceFeatures;
+    }
+
+    /**
+     * Returns the value of field 'showText'.
+     * 
+     * @return the value of field 'ShowText'.
+     */
+    public boolean isShowText(
+    ) {
+        return this._showText;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Returns the value of field 'wrapAlignment'.
+     * 
+     * @return the value of field 'WrapAlignment'.
+     */
+    public boolean isWrapAlignment(
+    ) {
+        return this._wrapAlignment;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'bgColour'.
+     * 
+     * @param bgColour the value of field 'bgColour'.
+     */
+    public void setBgColour(
+            final java.lang.String bgColour) {
+        this._bgColour = bgColour;
+    }
+
+    /**
+     * Sets the value of field 'consThreshold'.
+     * 
+     * @param consThreshold the value of field 'consThreshold'.
+     */
+    public void setConsThreshold(
+            final int consThreshold) {
+        this._consThreshold = consThreshold;
+        this._has_consThreshold = true;
+    }
+
+    /**
+     * Sets the value of field 'conservationSelected'.
+     * 
+     * @param conservationSelected the value of field
+     * 'conservationSelected'.
+     */
+    public void setConservationSelected(
+            final boolean conservationSelected) {
+        this._conservationSelected = conservationSelected;
+        this._has_conservationSelected = true;
+    }
+
+    /**
+     * Sets the value of field 'fontName'.
+     * 
+     * @param fontName the value of field 'fontName'.
+     */
+    public void setFontName(
+            final java.lang.String fontName) {
+        this._fontName = fontName;
+    }
+
+    /**
+     * Sets the value of field 'fontSize'.
+     * 
+     * @param fontSize the value of field 'fontSize'.
+     */
+    public void setFontSize(
+            final int fontSize) {
+        this._fontSize = fontSize;
+        this._has_fontSize = true;
+    }
+
+    /**
+     * Sets the value of field 'fontStyle'.
+     * 
+     * @param fontStyle the value of field 'fontStyle'.
+     */
+    public void setFontStyle(
+            final int fontStyle) {
+        this._fontStyle = fontStyle;
+        this._has_fontStyle = true;
+    }
+
+    /**
+     * Sets the value of field 'height'.
+     * 
+     * @param height the value of field 'height'.
+     */
+    public void setHeight(
+            final int height) {
+        this._height = height;
+        this._has_height = true;
+    }
+
+    /**
+     * Sets the value of field 'pidSelected'.
+     * 
+     * @param pidSelected the value of field 'pidSelected'.
+     */
+    public void setPidSelected(
+            final boolean pidSelected) {
+        this._pidSelected = pidSelected;
+        this._has_pidSelected = true;
+    }
+
+    /**
+     * Sets the value of field 'pidThreshold'.
+     * 
+     * @param pidThreshold the value of field 'pidThreshold'.
+     */
+    public void setPidThreshold(
+            final int pidThreshold) {
+        this._pidThreshold = pidThreshold;
+        this._has_pidThreshold = true;
+    }
+
+    /**
+     * Sets the value of field 'renderGaps'.
+     * 
+     * @param renderGaps the value of field 'renderGaps'.
+     */
+    public void setRenderGaps(
+            final boolean renderGaps) {
+        this._renderGaps = renderGaps;
+        this._has_renderGaps = true;
+    }
+
+    /**
+     * Sets the value of field 'showAnnotation'.
+     * 
+     * @param showAnnotation the value of field 'showAnnotation'.
+     */
+    public void setShowAnnotation(
+            final boolean showAnnotation) {
+        this._showAnnotation = showAnnotation;
+        this._has_showAnnotation = true;
+    }
+
+    /**
+     * Sets the value of field 'showBoxes'.
+     * 
+     * @param showBoxes the value of field 'showBoxes'.
+     */
+    public void setShowBoxes(
+            final boolean showBoxes) {
+        this._showBoxes = showBoxes;
+        this._has_showBoxes = true;
+    }
+
+    /**
+     * Sets the value of field 'showColourText'.
+     * 
+     * @param showColourText the value of field 'showColourText'.
+     */
+    public void setShowColourText(
+            final boolean showColourText) {
+        this._showColourText = showColourText;
+        this._has_showColourText = true;
+    }
+
+    /**
+     * Sets the value of field 'showConservation'.
+     * 
+     * @param showConservation the value of field 'showConservation'
+     */
+    public void setShowConservation(
+            final boolean showConservation) {
+        this._showConservation = showConservation;
+        this._has_showConservation = true;
+    }
+
+    /**
+     * Sets the value of field 'showFullId'.
+     * 
+     * @param showFullId the value of field 'showFullId'.
+     */
+    public void setShowFullId(
+            final boolean showFullId) {
+        this._showFullId = showFullId;
+        this._has_showFullId = true;
+    }
+
+    /**
+     * Sets the value of field 'showIdentity'.
+     * 
+     * @param showIdentity the value of field 'showIdentity'.
+     */
+    public void setShowIdentity(
+            final boolean showIdentity) {
+        this._showIdentity = showIdentity;
+        this._has_showIdentity = true;
+    }
+
+    /**
+     * Sets the value of field 'showQuality'.
+     * 
+     * @param showQuality the value of field 'showQuality'.
+     */
+    public void setShowQuality(
+            final boolean showQuality) {
+        this._showQuality = showQuality;
+        this._has_showQuality = true;
+    }
+
+    /**
+     * Sets the value of field 'showSequenceFeatures'.
+     * 
+     * @param showSequenceFeatures the value of field
+     * 'showSequenceFeatures'.
+     */
+    public void setShowSequenceFeatures(
+            final boolean showSequenceFeatures) {
+        this._showSequenceFeatures = showSequenceFeatures;
+        this._has_showSequenceFeatures = true;
+    }
+
+    /**
+     * Sets the value of field 'showText'.
+     * 
+     * @param showText the value of field 'showText'.
+     */
+    public void setShowText(
+            final boolean showText) {
+        this._showText = showText;
+        this._has_showText = true;
+    }
+
+    /**
+     * Sets the value of field 'startRes'.
+     * 
+     * @param startRes the value of field 'startRes'.
+     */
+    public void setStartRes(
+            final int startRes) {
+        this._startRes = startRes;
+        this._has_startRes = true;
+    }
+
+    /**
+     * Sets the value of field 'startSeq'.
+     * 
+     * @param startSeq the value of field 'startSeq'.
+     */
+    public void setStartSeq(
+            final int startSeq) {
+        this._startSeq = startSeq;
+        this._has_startSeq = true;
+    }
+
+    /**
+     * Sets the value of field 'title'.
+     * 
+     * @param title the value of field 'title'.
+     */
+    public void setTitle(
+            final java.lang.String title) {
+        this._title = title;
+    }
+
+    /**
+     * Sets the value of field 'width'.
+     * 
+     * @param width the value of field 'width'.
+     */
+    public void setWidth(
+            final int width) {
+        this._width = width;
+        this._has_width = true;
+    }
+
+    /**
+     * Sets the value of field 'wrapAlignment'.
+     * 
+     * @param wrapAlignment the value of field 'wrapAlignment'.
+     */
+    public void setWrapAlignment(
+            final boolean wrapAlignment) {
+        this._wrapAlignment = wrapAlignment;
+        this._has_wrapAlignment = true;
+    }
+
+    /**
+     * Sets the value of field 'xpos'.
+     * 
+     * @param xpos the value of field 'xpos'.
+     */
+    public void setXpos(
+            final int xpos) {
+        this._xpos = xpos;
+        this._has_xpos = true;
+    }
+
+    /**
+     * Sets the value of field 'ypos'.
+     * 
+     * @param ypos the value of field 'ypos'.
+     */
+    public void setYpos(
+            final int ypos) {
+        this._ypos = ypos;
+        this._has_ypos = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.Viewport
+     */
+    public static jalview.binding.Viewport unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.Viewport) Unmarshaller.unmarshal(jalview.binding.Viewport.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
index 81046f1..15df67b 100755 (executable)
  */
 package jalview.datamodel;
 
+import jalview.analysis.AlignmentUtils;
+import jalview.io.FastaFile;
+import jalview.util.MessageManager;
+
 import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.HashSet;
@@ -30,10 +34,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.Vector;
 
-import jalview.analysis.AlignmentUtils;
-import jalview.io.FastaFile;
-import jalview.util.MessageManager;
-
 /**
  * Data structure to hold and manipulate a multiple sequence alignment
  */
@@ -1734,4 +1734,19 @@ public class Alignment implements AlignmentI
     }
     return names;
   }
+
+  @Override
+  public boolean hasValidSequence()
+  {
+    boolean hasValidSeq = false;
+    for (SequenceI seq : getSequences())
+    {
+      if (seq.getSequenceAsString().matches("(-*[a-zA-Z]-*){1}[a-zA-Z-]*"))
+      {
+        hasValidSeq = true;
+        break;
+      }
+    }
+    return hasValidSeq;
+  }
 }
index 4c5ea17..322fd54 100755 (executable)
  */
 package jalview.datamodel;
 
-import jalview.analysis.Rna;
-import jalview.analysis.SecStrConsensus.SimpleBP;
-import jalview.analysis.WUSSParseException;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -32,6 +28,10 @@ import java.util.Iterator;
 import java.util.Map;
 import java.util.Map.Entry;
 
+import jalview.analysis.Rna;
+import jalview.analysis.SecStrConsensus.SimpleBP;
+import jalview.analysis.WUSSParseException;
+
 /**
  * DOCUMENT ME!
  * 
@@ -40,6 +40,8 @@ import java.util.Map.Entry;
  */
 public class AlignmentAnnotation
 {
+  private static final String ANNOTATION_ID_PREFIX = "ann";
+
   /*
    * Identifers for different types of profile data
    */
@@ -49,6 +51,8 @@ public class AlignmentAnnotation
 
   public static final int CDNA_PROFILE = 2;
 
+  private static long counter = 0;
+
   /**
    * If true, this annotations is calculated every edit, eg consensus, quality
    * or conservation graphs
@@ -282,6 +286,7 @@ public class AlignmentAnnotation
   public AlignmentAnnotation(String label, String description,
           Annotation[] annotations)
   {
+    setAnnotationId();
     // always editable?
     editable = true;
     this.label = label;
@@ -458,8 +463,6 @@ public class AlignmentAnnotation
         _updateRnaSecStr(new AnnotCharSequence());
       }
     }
-
-    annotationId = this.hashCode() + "";
   }
 
   /**
@@ -565,6 +568,7 @@ public class AlignmentAnnotation
   public AlignmentAnnotation(String label, String description,
           Annotation[] annotations, float min, float max, int graphType)
   {
+    setAnnotationId();
     // graphs are not editable
     editable = graphType == 0;
 
@@ -664,6 +668,7 @@ public class AlignmentAnnotation
    */
   public AlignmentAnnotation(AlignmentAnnotation annotation)
   {
+    setAnnotationId();
     this.label = new String(annotation.label);
     if (annotation.description != null)
     {
@@ -1382,4 +1387,18 @@ public class AlignmentAnnotation
     return sequenceMapping == null ? null : sequenceMapping.get(position);
 
   }
+
+  /**
+   * Set the id to "ann" followed by a counter that increments so as to be
+   * unique for the lifetime of the JVM
+   */
+  protected final void setAnnotationId()
+  {
+    this.annotationId = ANNOTATION_ID_PREFIX + Long.toString(nextId());
+  }
+
+  protected static synchronized long nextId()
+  {
+    return counter++;
+  }
 }
diff --git a/src/jalview/datamodel/AlignmentExportData.java b/src/jalview/datamodel/AlignmentExportData.java
new file mode 100644 (file)
index 0000000..46da85d
--- /dev/null
@@ -0,0 +1,63 @@
+package jalview.datamodel;
+
+import jalview.gui.AlignExportSettings;
+
+public class AlignmentExportData
+{
+  private AlignmentI alignment;
+
+  private String[] omitHidden;
+
+  private int[] startEnd;
+
+  private AlignExportSettings settings;
+
+  public AlignmentExportData(AlignmentI align, String[] ommit,
+          int[] startEnd, AlignExportSettings settings)
+  {
+    this.alignment = align;
+    this.omitHidden = ommit;
+    this.startEnd = startEnd;
+    this.settings = settings;
+  }
+
+  public AlignmentI getAlignment()
+  {
+    return alignment;
+  }
+
+  public void setAlignment(AlignmentI alignment)
+  {
+    this.alignment = alignment;
+  }
+
+  public String[] getOmitHidden()
+  {
+    return omitHidden;
+  }
+
+  public void setOmitHidden(String[] omitHidden)
+  {
+    this.omitHidden = omitHidden;
+  }
+
+  public int[] getStartEndPostions()
+  {
+    return startEnd;
+  }
+
+  public void setStartEndPostions(int[] startEnd)
+  {
+    this.startEnd = startEnd;
+  }
+
+  public AlignExportSettings getSettings()
+  {
+    return settings;
+  }
+
+  public void setSettings(AlignExportSettings settings)
+  {
+    this.settings = settings;
+  }
+}
index 67e5743..8194bf0 100755 (executable)
@@ -517,4 +517,12 @@ public interface AlignmentI extends AnnotatedCollectionI
    * @return
    */
   Set<String> getSequenceNames();
+
+  /**
+   * Checks if the alignment has at least one sequence with one non-gaped
+   * residue
+   * 
+   * @return
+   */
+  public boolean hasValidSequence();
 }
index dae81ef..71ebbb3 100755 (executable)
@@ -107,9 +107,13 @@ public class Annotation
       return;
     }
     if (that.displayCharacter != null)
+    {
       displayCharacter = new String(that.displayCharacter);
+    }
     if (that.description != null)
+    {
       description = new String(that.description);
+    }
     secondaryStructure = that.secondaryStructure;
     value = that.value;
     colour = that.colour;
@@ -168,7 +172,7 @@ public class Annotation
     {
       sb.append(",");
     }
-    if (value != Float.NaN)
+    if (!Float.isNaN(value))
     {
       sb.append(value);
     }
diff --git a/src/jalview/datamodel/RnaViewerModel.java b/src/jalview/datamodel/RnaViewerModel.java
new file mode 100644 (file)
index 0000000..33783ec
--- /dev/null
@@ -0,0 +1,46 @@
+package jalview.datamodel;
+
+
+/**
+ * A data bean class to hold properties of an RNA viewer
+ */
+public class RnaViewerModel
+{
+  public final String viewId;
+
+  public final String title;
+
+  public final int x;
+
+  public final int y;
+
+  public final int width;
+
+  public final int height;
+
+  public final int dividerLocation;
+
+  /**
+   * Constructor
+   * 
+   * @param viewId
+   * @param title
+   * @param xpos
+   * @param ypos
+   * @param width
+   * @param height
+   * @param dividerLocation
+   */
+  public RnaViewerModel(String viewId, String title, int xpos, int ypos,
+          int width,
+ int height, int dividerLocation)
+  {
+    this.viewId = viewId;
+    this.title = title;
+    this.x = xpos;
+    this.y = ypos;
+    this.width = width;
+    this.height = height;
+    this.dividerLocation = dividerLocation;
+  }
+}
index 37bb7a9..c78ec22 100755 (executable)
@@ -20,6 +20,9 @@
  */
 package jalview.datamodel;
 
+import jalview.analysis.AlignSeq;
+import jalview.util.StringUtils;
+
 import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.List;
@@ -27,9 +30,6 @@ import java.util.Vector;
 
 import fr.orsay.lri.varna.models.rna.RNA;
 
-import jalview.analysis.AlignSeq;
-import jalview.util.StringUtils;
-
 /**
  * 
  * Implements the SequenceI interface for a char[] based sequence object.
@@ -768,7 +768,7 @@ public class Sequence extends ASequence implements SequenceI
   public void deleteChars(int i, int j)
   {
     int newstart = start, newend = end;
-    if (i >= sequence.length)
+    if (i >= sequence.length || i < 0)
     {
       return;
     }
index 3f890ba..9c9447e 100644 (file)
  */
 package jalview.datamodel.xdb.embl;
 
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Vector;
-
 import jalview.datamodel.DBRefEntry;
 import jalview.datamodel.DBRefSource;
 import jalview.datamodel.FeatureProperties;
@@ -33,6 +28,10 @@ import jalview.datamodel.Sequence;
 import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceI;
 
+import java.util.Hashtable;
+import java.util.Map.Entry;
+import java.util.Vector;
+
 /**
  * Data model for one entry returned from an EMBL query, as marshalled by a
  * Castor binding file
@@ -397,7 +396,7 @@ public class EmblEntry
           boolean noPeptide, String sourceDb)
   { // TODO: ensure emblEntry.getSequences behaves correctly for returning all
     // cases of noNa and noPeptide
-    Vector seqs = new Vector();
+    Vector<SequenceI> seqs = new Vector<SequenceI>();
     Sequence dna = null;
     if (!noNa)
     {
@@ -415,26 +414,23 @@ public class EmblEntry
       // TODO: transform EMBL Database refs to canonical form
       if (dbRefs != null)
       {
-        for (Iterator i = dbRefs.iterator(); i.hasNext(); dna
-                .addDBRef((DBRefEntry) i.next()))
+        for (DBRefEntry dbref : dbRefs)
         {
-          ;
+          dna.addDBRef(dbref);
         }
       }
     }
     try
     {
-      for (Iterator i = features.iterator(); i.hasNext();)
+      for (EmblFeature feature: features)
       {
-        EmblFeature feature = (EmblFeature) i.next();
         if (!noNa)
         {
-          if (feature.dbRefs != null && feature.dbRefs.size() > 0)
+          if (feature.dbRefs != null)
           {
-            for (Iterator dbr = feature.dbRefs.iterator(); dbr.hasNext(); dna
-                    .addDBRef((DBRefEntry) dbr.next()))
+            for (DBRefEntry dbref : feature.dbRefs)
             {
-              ;
+              dna.addDBRef(dbref);
             }
           }
         }
@@ -445,14 +441,14 @@ public class EmblEntry
         else
         {
           // General feature type.
+          // TODO this is just duplicated code ??
           if (!noNa)
           {
-            if (feature.dbRefs != null && feature.dbRefs.size() > 0)
+            if (feature.dbRefs != null)
             {
-              for (Iterator dbr = feature.dbRefs.iterator(); dbr.hasNext(); dna
-                      .addDBRef((DBRefEntry) dbr.next()))
+              for (DBRefEntry dbref : feature.dbRefs)
               {
-                ;
+                dna.addDBRef(dbref);
               }
             }
           }
@@ -474,7 +470,7 @@ public class EmblEntry
     SequenceI[] sqs = new SequenceI[seqs.size()];
     for (int i = 0, j = seqs.size(); i < j; i++)
     {
-      sqs[i] = (SequenceI) seqs.elementAt(i);
+      sqs[i] = seqs.elementAt(i);
       seqs.set(i, null);
     }
     return sqs;
@@ -496,19 +492,16 @@ public class EmblEntry
    *          flag for generation of Peptide sequence objects
    */
   private void parseCodingFeature(EmblFeature feature, String sourceDb,
-          Vector seqs, Sequence dna, boolean noPeptide)
+          Vector<SequenceI> seqs, Sequence dna, boolean noPeptide)
   {
     boolean isEmblCdna = sourceDb.equals(DBRefSource.EMBLCDS);
     // extract coding region(s)
     jalview.datamodel.Mapping map = null;
     int[] exon = null;
-    if (feature.locations != null && feature.locations.size() > 0)
+    if (feature.locations != null)
     {
-      for (Enumeration locs = feature.locations.elements(); locs
-              .hasMoreElements();)
+      for (EmblFeatureLocations loc : feature.locations)
       {
-        EmblFeatureLocations loc = (EmblFeatureLocations) locs
-                .nextElement();
         int[] se = loc.getElementRanges(accession);
         if (exon == null)
         {
@@ -526,19 +519,17 @@ public class EmblEntry
     String prseq = null;
     String prname = new String();
     String prid = null;
-    Hashtable vals = new Hashtable();
+    Hashtable<String, String> vals = new Hashtable<String, String>();
     int prstart = 1;
     // get qualifiers
-    if (feature.getQualifiers() != null
-            && feature.getQualifiers().size() > 0)
+    if (feature.getQualifiers() != null)
     {
-      for (Iterator quals = feature.getQualifiers().iterator(); quals
-              .hasNext();)
+      for (Qualifier q : feature.getQualifiers())
       {
-        Qualifier q = (Qualifier) quals.next();
-        if (q.getName().equals("translation"))
+        String qname = q.getName();
+        if (qname.equals("translation"))
         {
-          StringBuffer prsq = new StringBuffer(q.getValues()[0]);
+          StringBuilder prsq = new StringBuilder(q.getValues()[0]);
           int p = prsq.indexOf(" ");
           while (p > -1)
           {
@@ -549,15 +540,15 @@ public class EmblEntry
           prsq = null;
 
         }
-        else if (q.getName().equals("protein_id"))
+        else if (qname.equals("protein_id"))
         {
           prid = q.getValues()[0];
         }
-        else if (q.getName().equals("codon_start"))
+        else if (qname.equals("codon_start"))
         {
           prstart = Integer.parseInt(q.getValues()[0]);
         }
-        else if (q.getName().equals("product"))
+        else if (qname.equals("product"))
         {
           prname = q.getValues()[0];
         }
@@ -565,7 +556,7 @@ public class EmblEntry
         {
           // throw anything else into the additional properties hash
           String[] s = q.getValues();
-          StringBuffer sb = new StringBuffer();
+          StringBuilder sb = new StringBuilder();
           if (s != null)
           {
             for (int i = 0; i < s.length; i++)
@@ -574,15 +565,15 @@ public class EmblEntry
               sb.append("\n");
             }
           }
-          vals.put(q.getName(), sb.toString());
+          vals.put(qname, sb.toString());
         }
       }
     }
     Sequence product = null;
     DBRefEntry protEMBLCDS = null;
     exon = adjustForPrStart(prstart, exon);
-    boolean noProteinDbref=true;
-    
+    boolean noProteinDbref = true;
+
     if (prseq != null && prname != null && prid != null)
     {
       // extract proteins.
@@ -663,9 +654,9 @@ public class EmblEntry
             protEMBLCDS = new DBRefEntry(pcdnaref);
             protEMBLCDS.setSource(DBRefSource.EMBLCDSProduct);
             product.addDBRef(protEMBLCDS);
-            
-          }     
-          
+
+          }
+
         }
       }
       // add cds feature to dna seq - this may include the stop codon
@@ -676,31 +667,25 @@ public class EmblEntry
         sf.setEnd(exon[xint + 1]);
         sf.setType(feature.getName());
         sf.setFeatureGroup(sourceDb);
-        sf.setDescription("Exon " + (1 + xint / 2)
-                + " for protein '" + prname + "' EMBLCDS:" + prid);
+        sf.setDescription("Exon " + (1 + xint / 2) + " for protein '"
+                + prname + "' EMBLCDS:" + prid);
         sf.setValue(FeatureProperties.EXONPOS, new Integer(1 + xint));
         sf.setValue(FeatureProperties.EXONPRODUCT, prname);
-        if (vals != null && vals.size() > 0)
+        if (vals != null)
         {
-          Enumeration kv = vals.keys();
-          while (kv.hasMoreElements())
+          for (Entry<String, String> val : vals.entrySet())
           {
-            Object key = kv.nextElement();
-            if (key != null)
-            {
-              sf.setValue(key.toString(), vals.get(key));
-            }
+            sf.setValue(val.getKey(), val.getValue());
           }
         }
         dna.addSequenceFeature(sf);
       }
     }
     // add dbRefs to sequence
-    if (feature.dbRefs != null && feature.dbRefs.size() > 0)
+    if (feature.dbRefs != null)
     {
-      for (Iterator dbr = feature.dbRefs.iterator(); dbr.hasNext();)
+      for (DBRefEntry ref : feature.dbRefs)
       {
-        DBRefEntry ref = (DBRefEntry) dbr.next();
         ref.setSource(jalview.util.DBRefUtils.getCanonicalName(ref
                 .getSource()));
         // Hard code the kind of protein product accessions that EMBL cite
@@ -755,7 +740,7 @@ public class EmblEntry
                   .setMap(new Mapping(product, map.getMap().getInverse()));
         }
         product.addDBRef(protEMBLCDS);
-          
+
         // Add converse mapping reference
         if (map != null)
         {
index cdd137b..c7496df 100644 (file)
  */
 package jalview.ext.jmol;
 
+import jalview.api.AlignmentViewPanel;
+import jalview.api.FeatureRenderer;
+import jalview.api.SequenceRenderer;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.PDBEntry;
+import jalview.datamodel.SequenceI;
+import jalview.io.AppletFormatAdapter;
+import jalview.schemes.ColourSchemeI;
+import jalview.schemes.ResidueProperties;
+import jalview.structure.AtomSpec;
+import jalview.structure.StructureMappingcommandSet;
+import jalview.structure.StructureSelectionManager;
+import jalview.structures.models.AAStructureBindingModel;
+
 import java.awt.Color;
 import java.awt.Container;
 import java.awt.event.ComponentEvent;
@@ -32,28 +47,17 @@ import java.util.List;
 import java.util.Map;
 import java.util.Vector;
 
+import javajs.awt.Dimension;
+
 import org.jmol.adapter.smarter.SmarterJmolAdapter;
 import org.jmol.api.JmolAppConsoleInterface;
 import org.jmol.api.JmolSelectionListener;
 import org.jmol.api.JmolStatusListener;
 import org.jmol.api.JmolViewer;
-import org.jmol.constant.EnumCallback;
-import org.jmol.popup.JmolPopup;
-
-import jalview.api.AlignmentViewPanel;
-import jalview.api.FeatureRenderer;
-import jalview.api.SequenceRenderer;
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.ColumnSelection;
-import jalview.datamodel.PDBEntry;
-import jalview.datamodel.SequenceI;
-import jalview.io.AppletFormatAdapter;
-import jalview.schemes.ColourSchemeI;
-import jalview.schemes.ResidueProperties;
-import jalview.structure.AtomSpec;
-import jalview.structure.StructureMappingcommandSet;
-import jalview.structure.StructureSelectionManager;
-import jalview.structures.models.AAStructureBindingModel;
+import org.jmol.c.CBK;
+import org.jmol.script.T;
+import org.jmol.viewer.JC;
+import org.jmol.viewer.Viewer;
 
 public abstract class JalviewJmolBinding extends AAStructureBindingModel
         implements JmolStatusListener, JmolSelectionListener,
@@ -72,13 +76,11 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
    */
   private boolean associateNewStructs = false;
 
-  Vector atomsPicked = new Vector();
-
-  public Vector chainNames;
+  Vector<String> atomsPicked = new Vector<String>();
 
-  Hashtable chainFile;
+  public Vector<String> chainNames;
 
-  StringBuffer eval = new StringBuffer();
+  Hashtable<String, String> chainFile;
 
   public String fileLoadingError;
 
@@ -88,7 +90,7 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
    */
   int frameNo = 0;
 
-  protected JmolPopup jmolpopup;
+  // protected JmolGenericPopup jmolpopup; // not used - remove?
 
   String lastCommand;
 
@@ -103,7 +105,7 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
 
   StringBuffer resetLastRes = new StringBuffer();
 
-  public JmolViewer viewer;
+  public Viewer viewer;
 
   public JalviewJmolBinding(StructureSelectionManager ssm,
           PDBEntry[] pdbentry, SequenceI[][] sequenceIs, String[][] chains,
@@ -120,7 +122,7 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
   }
 
   public JalviewJmolBinding(StructureSelectionManager ssm,
-          SequenceI[][] seqs, JmolViewer theViewer)
+          SequenceI[][] seqs, Viewer theViewer)
   {
     super(ssm, seqs);
 
@@ -137,7 +139,7 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
    */
   public String getViewerTitle()
   {
-    return getViewerTitle("JMol", true);
+    return getViewerTitle("Jmol", true);
   }
 
   /**
@@ -147,15 +149,13 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
    * @param chainList
    *          list of chains to make visible
    */
-  public void centerViewer(Vector chainList)
+  public void centerViewer(Vector<String> chainList)
   {
-    StringBuffer cmd = new StringBuffer();
-    String lbl;
+    StringBuilder cmd = new StringBuilder(128);
     int mlength, p;
-    for (int i = 0, iSize = chainList.size(); i < iSize; i++)
+    for (String lbl : chainList)
     {
       mlength = 0;
-      lbl = (String) chainList.elementAt(i);
       do
       {
         p = mlength;
@@ -163,7 +163,7 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
       } while (p < mlength && mlength < (lbl.length() - 2));
       // TODO: lookup each pdb id and recover proper model number for it.
       cmd.append(":" + lbl.substring(mlength + 1) + " /"
-              + (1 + getModelNum((String) chainFile.get(lbl))) + " or ");
+              + (1 + getModelNum(chainFile.get(lbl))) + " or ");
     }
     if (cmd.length() > 0)
     {
@@ -174,7 +174,7 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
 
   public void closeViewer()
   {
-    viewer.setModeMouse(org.jmol.viewer.JmolConstants.MOUSE_NONE);
+    viewer.acm.setModeMouse(JC.MOUSE_NONE);
     // remove listeners for all structures in viewer
     getSsm().removeStructureViewerListener(this, this.getPdbFile());
     // and shut down jmol
@@ -489,9 +489,10 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
    * using the getFeatureRenderer() and getSequenceRenderer() renderers but only
    * if colourBySequence is enabled.
    */
-  public void colourBySequence(boolean showFeatures,
-          jalview.api.AlignmentViewPanel alignmentv)
+  public void colourBySequence(AlignmentViewPanel alignmentv)
   {
+    boolean showFeatures = alignmentv.getAlignViewport()
+            .isShowSequenceFeatures();
     if (!colourBySequence || !isLoadingFinished())
     {
       return;
@@ -586,7 +587,10 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
       return null;
     }
     // TODO: verify atomIndex is selecting correct model.
-    return new Color(viewer.getAtomArgb(atomIndex));
+    // return new Color(viewer.getAtomArgb(atomIndex)); Jmol 12.2.4
+    int colour = viewer.ms.at[atomIndex]
+            .atomPropertyInt(T.color);
+    return new Color(colour);
   }
 
   /**
@@ -642,26 +646,33 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
     }
     if (modelFileNames == null)
     {
-
-      String mset[] = new String[viewer.getModelCount()];
+      String mset[] = new String[viewer.ms.mc];
       _modelFileNameMap = new int[mset.length];
-      int j = 1;
-      String m = viewer.getModelFileName(0);
+      String m = viewer.ms.getModelFileName(0);
       if (m != null)
       {
+        mset[0] = m;
         try
         {
           mset[0] = new File(m).getAbsolutePath();
         } catch (AccessControlException x)
         {
-          // usually not allowed to do this in applet, so keep raw handle
+          // usually not allowed to do this in applet
+          System.err
+                  .println("jmolBinding: Using local file string from Jmol: "
+                          + m);
+        }
+        if (mset[0].indexOf("/file:") != -1)
+        {
+          // applet path with docroot - discard as format won't match pdbfile
           mset[0] = m;
-          // System.err.println("jmolBinding: Using local file string from Jmol: "+m);
         }
       }
+      int j = 1;
       for (int i = 1; i < mset.length; i++)
       {
-        m = viewer.getModelFileName(i);
+        m = viewer.ms.getModelFileName(i);
+        mset[j] = m;
         if (m != null)
         {
           try
@@ -670,7 +681,6 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
           } catch (AccessControlException x)
           {
             // usually not allowed to do this in applet, so keep raw handle
-            mset[j] = m;
             // System.err.println("jmolBinding: Using local file string from Jmol: "+m);
           }
         }
@@ -714,7 +724,8 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
 
   public void handlePopupMenu(int x, int y)
   {
-    jmolpopup.show(x, y);
+    // jmolpopup.show(x, y);
+    // jmolpopup.jpiShow(x, y);
   }
 
   /**
@@ -744,12 +755,10 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
 
     // look up file model number for this pdbfile
     int mdlNum = 0;
-    String fn;
     // may need to adjust for URLencoding here - we don't worry about that yet.
     while (mdlNum < modelFileNames.length
             && !pdbfile.equals(modelFileNames[mdlNum]))
     {
-      // System.out.println("nomatch:"+pdbfile+"\nmodelfn:"+fn);
       mdlNum++;
     }
     if (mdlNum == modelFileNames.length)
@@ -765,31 +774,31 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
       viewer.evalStringQuiet(resetLastRes.toString());
     }
 
-    eval.setLength(0);
-    eval.append("select " + pdbResNum); // +modelNum
+    StringBuilder cmd = new StringBuilder(64);
+    cmd.append("select " + pdbResNum); // +modelNum
 
     resetLastRes.setLength(0);
     resetLastRes.append("select " + pdbResNum); // +modelNum
 
-    eval.append(":");
+    cmd.append(":");
     resetLastRes.append(":");
     if (!chain.equals(" "))
     {
-      eval.append(chain);
+      cmd.append(chain);
       resetLastRes.append(chain);
     }
     {
-      eval.append(" /" + (mdlNum + 1));
+      cmd.append(" /" + (mdlNum + 1));
       resetLastRes.append("/" + (mdlNum + 1));
     }
-    eval.append(";wireframe 100;" + eval.toString() + " and not hetero;");
+    cmd.append(";wireframe 100;" + cmd.toString() + " and not hetero;");
 
     resetLastRes.append(";wireframe 0;" + resetLastRes.toString()
             + " and not hetero; spacefill 0;");
 
-    eval.append("spacefill 200;select none");
+    cmd.append("spacefill 200;select none");
 
-    viewer.evalStringQuiet(eval.toString());
+    viewer.evalStringQuiet(cmd.toString());
     jmolHistory(true);
 
   }
@@ -877,7 +886,8 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
         pdbfilename = modelFileNames[_mp];
         if (pdbfilename == null)
         {
-          pdbfilename = new File(viewer.getModelFileName(mnumber))
+          pdbfilename = new File(
+                  viewer.ms.getModelFileName(mnumber))
                   .getAbsolutePath();
         }
 
@@ -965,7 +975,7 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
   }
 
   @Override
-  public void notifyCallback(EnumCallback type, Object[] data)
+  public void notifyCallback(CBK type, Object[] data)
   {
     try
     {
@@ -1019,7 +1029,7 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
   }
 
   @Override
-  public boolean notifyEnabled(EnumCallback callbackPick)
+  public boolean notifyEnabled(CBK callbackPick)
   {
     switch (callbackPick)
     {
@@ -1032,13 +1042,9 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
     case HOVER:
     case ERROR:
       return true;
-    case RESIZE:
-    case SYNC:
-    case CLICK:
-    case ANIMFRAME:
-    case MINIMIZATION:
+    default:
+      return false;
     }
-    return false;
   }
 
   // incremented every time a load notification is successfully handled -
@@ -1069,8 +1075,8 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
     fileLoadingError = null;
     String[] oldmodels = modelFileNames;
     modelFileNames = null;
-    chainNames = new Vector();
-    chainFile = new Hashtable();
+    chainNames = new Vector<String>();
+    chainFile = new Hashtable<String, String>();
     boolean notifyLoaded = false;
     String[] modelfilenames = getPdbFile();
     // first check if we've lost any structures
@@ -1114,7 +1120,7 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
       String fileName = modelfilenames[modelnum];
       boolean foundEntry = false;
       MCview.PDBfile pdb = null;
-      String pdbfile = null, pdbfhash = null;
+      String pdbfile = null;
       // model was probably loaded inline - so check the pdb file hashcode
       if (loadedInline)
       {
@@ -1123,7 +1129,6 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
         // 'best guess'
         pdbfile = viewer.getData("" + (1 + _modelFileNameMap[modelnum])
                 + ".0", "PDB");
-        pdbfhash = "" + pdbfile.hashCode();
       }
         // search pdbentries and sequences to find correct pdbentry for this
         // model
@@ -1144,9 +1149,9 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
         }
         else
         {
-          File fl;
-          if (matches = (fl = new File(getPdbEntry(pe).getFile()))
-                  .equals(new File(fileName)))
+          File fl = new File(getPdbEntry(pe).getFile());
+          matches = fl.equals(new File(fileName));
+          if (matches)
           {
             foundEntry = true;
             // TODO: Jmol can in principle retrieve from CLASSLOADER but
@@ -1204,11 +1209,11 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
     }
     // FILE LOADED OK
     // so finally, update the jmol bits and pieces
-    if (jmolpopup != null)
-    {
-      // potential for deadlock here:
-      // jmolpopup.updateComputedMenus();
-    }
+    // if (jmolpopup != null)
+    // {
+    // // potential for deadlock here:
+    // // jmolpopup.updateComputedMenus();
+    // }
     if (!isLoadingFromArchive())
     {
       viewer.evalStringQuiet("model 0; select backbone;restrict;cartoon;wireframe off;spacefill off");
@@ -1360,12 +1365,14 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
     {
       commandOptions = "";
     }
-    viewer = JmolViewer.allocateViewer(renderPanel,
+    viewer = (Viewer) JmolViewer.allocateViewer(renderPanel,
             (jmolfileio ? new SmarterJmolAdapter() : null), htmlName
                     + ((Object) this).toString(), documentBase, codeBase,
             commandOptions, this);
 
-    console = createJmolConsole(viewer, consolePanel, buttonsToShow);
+    viewer.setJmolStatusListener(this); // extends JmolCallbackListener
+
+    console = createJmolConsole(consolePanel, buttonsToShow);
     if (consolePanel != null)
     {
       consolePanel.addComponentListener(this);
@@ -1375,7 +1382,7 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
   }
 
   protected abstract JmolAppConsoleInterface createJmolConsole(
-          JmolViewer viewer2, Container consolePanel, String buttonsToShow);
+          Container consolePanel, String buttonsToShow);
 
   protected org.jmol.api.JmolAppConsoleInterface console = null;
 
@@ -1388,10 +1395,10 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
   }
 
   @Override
-  public void resizeInnerPanel(String data)
+  public Dimension resizeInnerPanel(String data)
   {
     // Jalview doesn't honour resize panel requests
-
+    return null;
   }
 
   public boolean isFinishedInit()
@@ -1458,3 +1465,4 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
     showConsole(false);
   }
 }
+
index 3df8957..3b6f0c2 100644 (file)
@@ -34,13 +34,15 @@ import java.io.IOException;
 import java.util.Hashtable;
 import java.util.Map;
 
+import javajs.awt.Dimension;
+
 import org.jmol.api.JmolStatusListener;
 import org.jmol.api.JmolViewer;
-import org.jmol.constant.EnumCallback;
+import org.jmol.c.CBK;
 import org.jmol.modelset.Group;
 import org.jmol.modelset.Model;
 import org.jmol.modelset.ModelSet;
-import org.jmol.modelset.Polymer;
+import org.jmol.modelsetbio.BioModel;
 import org.jmol.modelsetbio.BioPolymer;
 import org.jmol.viewer.Viewer;
 import org.openscience.jmol.app.JmolApp;
@@ -82,19 +84,18 @@ public class PDBFileWithJmol extends AlignFile implements
   private Viewer getJmolData()
   {
     if (viewer == null)
-    { // note that -o -n -x are all implied
+    { // note that -o -n -x are all implied // TODO check for Jmol 14.2
       jmolApp = new JmolApp();
       jmolApp.isDataOnly = true;
       jmolApp.haveConsole = false;
       jmolApp.haveDisplay = false;
-      jmolApp.exitUponCompletion = true;
       try
       {
         viewer = (Viewer) JmolViewer.allocateViewer(null, null, null, null,
-                null, jmolApp.commandOptions, this);
+                null, "-x -o -n", this);
         viewer.setScreenDimension(jmolApp.startupWidth,
                 jmolApp.startupHeight);
-        jmolApp.startViewer(viewer, null);
+        jmolApp.startViewer(viewer, null, false);
       } catch (ClassCastException x)
       {
         throw new Error(MessageManager.formatMessage("error.jmol_version_not_compatible_with_jalview_version", new String[]{JmolViewer.getJmolVersion()}),
@@ -129,136 +130,147 @@ public class PDBFileWithJmol extends AlignFile implements
     Viewer jmd = getJmolData();
     jmd.openReader(getDataName(), getDataName(), getReader());
     waitForScript(jmd);
-    if (jmd.getModelCount() > 0)
+
+    if (jmd.ms.mc > 0)
     {
-      ModelSet ms = jmd.getModelSet();
-      String structs = ms.calculateStructures(null, true, false, true);
+      ModelSet ms = jmd.ms;
+      // Jmol 14.2 added third argument doReport = false
+      ms.calculateStructures(null, true, false, false, true);
       // System.out.println("Structs\n"+structs);
-      for (Model model : ms.getModels())
+      Group group = null;
+      int modelIndex = -1;
+      for (Model model : ms.am)
       {
-        for (int _bp = 0, _bpc = model.getBioPolymerCount(); _bp < _bpc; _bp++)
+        modelIndex++;
+        for (BioPolymer bp : ((BioModel) model).bioPolymers)
         {
-          Polymer bp = model.getBioPolymer(_bp);
-          if (bp instanceof BioPolymer)
+          int lastChainId = 0; // int value of character e.g. 65 for A
+          String lastChainIdAlpha = "";
+
+          int[] groups = bp.getLeadAtomIndices();
+          char seq[] = new char[groups.length], secstr[] = new char[groups.length], secstrcode[] = new char[groups.length];
+          int groupc = 0, len = 0, firstrnum = 1, lastrnum = 0;
+
+          do
           {
-            BioPolymer biopoly = (BioPolymer) bp;
-            char _lastChainId = 0;
-            int[] groups = biopoly.getLeadAtomIndices();
-            Group[] bpgrp = biopoly.getGroups();
-            char seq[] = new char[groups.length], secstr[] = new char[groups.length], secstrcode[] = new char[groups.length];
-            int groupc = 0, len = 0, firstrnum = 1, lastrnum = 0;
-            do
+            if (groupc >= groups.length
+                    || ms.at[groups[groupc]].group.chain.chainID != lastChainId)
             {
-              if (groupc >= groups.length
-                      || ms.atoms[groups[groupc]].getChainID() != _lastChainId)
+              /*
+               * on change of chain (or at end), construct the sequence and
+               * secondary structure annotation for the last chain
+               */
+              if (len > 0)
               {
-                if (len > 0)
+                boolean isNa = bp.isNucleic();
+                // normalise sequence from Jmol to jalview
+                int[] cinds = isNa ? ResidueProperties.nucleotideIndex
+                        : ResidueProperties.aaIndex;
+                int nonGap = isNa ? ResidueProperties.maxNucleotideIndex
+                        : ResidueProperties.maxProteinIndex;
+                char ngc = 'X';
+                char newseq[] = new char[len];
+                Annotation asecstr[] = new Annotation[len + firstrnum - 1];
+                for (int p = 0; p < len; p++)
                 {
-                  boolean isNa = (biopoly.isDna() || biopoly.isRna());
-                  // normalise sequence from Jmol to jalview 
-                  int[] cinds = isNa ? ResidueProperties.nucleotideIndex : ResidueProperties.aaIndex;
-                  int nonGap = isNa ? ResidueProperties.maxNucleotideIndex
-                          : ResidueProperties.maxProteinIndex;
-                  char ngc = 'X';
-                  char newseq[] = new char[len];
-                  Annotation asecstr[] = new Annotation[len+firstrnum-1];
-                  for (int p = 0; p < len; p++)
+                  newseq[p] = cinds[seq[p]] == nonGap ? ngc : seq[p];
+                  if (secstr[p] >= 'A' && secstr[p] <= 'z')
                   {
-                    newseq[p] = cinds[seq[p]] == nonGap ? ngc : seq[p];
-                    if (secstr[p] >= 'A' && secstr[p] <= 'z')
-                    {
-                      asecstr[p] = new Annotation("" + secstr[p], null,
-                              secstrcode[p], Float.NaN);
-                    }
+                    asecstr[p] = new Annotation("" + secstr[p], null,
+                            secstrcode[p], Float.NaN);
                   }
-                  SequenceI sq = new Sequence("" + getDataName() + "|"
-                          + model.getModelTitle() + "|" + _lastChainId,
-                          newseq, firstrnum, lastrnum);
-                  PDBEntry pdbe = new PDBEntry();
-                  pdbe.setFile(getDataName());
-                  pdbe.setId(getDataName());
-                  pdbe.setProperty(new Hashtable());
-                  // pdbe.getProperty().put("CHAIN", "" + _lastChainId);
-                  pdbe.setChainCode(String.valueOf(_lastChainId));
-                  sq.addPDBId(pdbe);
-                  // JAL-1533
-                  // Need to put the number of models for this polymer somewhere for Chimera/others to grab
-                  //                  pdbe.getProperty().put("PDBMODELS", biopoly.)
-                  seqs.add(sq);
-                  if (!isNa)
+                }
+                String modelTitle = (String) ms
+                        .getInfo(modelIndex, "title");
+                SequenceI sq = new Sequence("" + getDataName() + "|"
+                        + modelTitle + "|" + lastChainIdAlpha, newseq,
+                        firstrnum, lastrnum);
+                PDBEntry pdbe = new PDBEntry();
+                pdbe.setFile(getDataName());
+                pdbe.setId(getDataName());
+                pdbe.setProperty(new Hashtable());
+                // pdbe.getProperty().put("CHAIN", "" + _lastChainId);
+                pdbe.setChainCode(lastChainIdAlpha);
+                sq.addPDBId(pdbe);
+                // JAL-1533
+                // Need to put the number of models for this polymer somewhere
+                // for Chimera/others to grab
+                // pdbe.getProperty().put("PDBMODELS", biopoly.)
+                seqs.add(sq);
+                if (!isNa)
+                {
+                  String mt = modelTitle == null ? getDataName()
+                          : modelTitle;
+                  if (lastChainId >= ' ')
                   {
-                    String mt = model.getModelTitle() == null ? getDataName()
-                            : model.getModelTitle();
-                    if (_lastChainId >= ' ')
-                    {
-                      mt += _lastChainId;
-                    }
-                    AlignmentAnnotation ann = new AlignmentAnnotation(
-                            "Secondary Structure",
-                            "Secondary Structure for " + mt, asecstr);
-                    ann.belowAlignment=true;
-                    ann.visible=true;
-                    ann.autoCalculated=false;
-                    ann.setCalcId(getClass().getName());
-                    sq.addAlignmentAnnotation(ann);
-                    ann.adjustForAlignment();
-                    ann.validateRangeAndDisplay();
-                    annotations.add(ann);
+                    mt += lastChainIdAlpha;
                   }
+                  AlignmentAnnotation ann = new AlignmentAnnotation(
+                          "Secondary Structure", "Secondary Structure for "
+                                  + mt, asecstr);
+                  ann.belowAlignment = true;
+                  ann.visible = true;
+                  ann.autoCalculated = false;
+                  ann.setCalcId(getClass().getName());
+                  sq.addAlignmentAnnotation(ann);
+                  ann.adjustForAlignment();
+                  ann.validateRangeAndDisplay();
+                  annotations.add(ann);
                 }
-                len = 0;
-                firstrnum = 1;
-                lastrnum = 0;
               }
-              if (groupc < groups.length)
+              len = 0;
+              firstrnum = 1;
+              lastrnum = 0;
+            }
+            if (groupc < groups.length)
+            {
+              group = ms.at[groups[groupc]].group;
+              if (len == 0)
+              {
+                firstrnum = group.getResno();
+                lastChainId = group.chain.chainID;
+                lastChainIdAlpha = group.chain.getIDStr();
+              }
+              else
               {
-                if (len == 0)
+                lastrnum = group.getResno();
+              }
+              seq[len] = group.getGroup1();
+              switch (group.getProteinStructureSubType())
+              {
+              case HELIX310:
+                if (secstr[len] == 0)
                 {
-                  firstrnum = bpgrp[groupc].getResno();
-                  _lastChainId = bpgrp[groupc].getChainID();
+                  secstr[len] = '3';
                 }
-                else
+              case HELIXALPHA:
+                if (secstr[len] == 0)
                 {
-                  lastrnum = bpgrp[groupc].getResno();
+                  secstr[len] = 'H';
                 }
-                seq[len] = bpgrp[groupc].getGroup1();
-                switch (bpgrp[groupc].getProteinStructureSubType())
+              case HELIXPI:
+                if (secstr[len] == 0)
                 {
-                case HELIX_310:
-                  if (secstr[len] == 0)
-                  {
-                    secstr[len] = '3';
-                  }
-                case HELIX_ALPHA:
-                  if (secstr[len] == 0)
-                  {
-                    secstr[len] = 'H';
-                  }
-                case HELIX_PI:
-                  if (secstr[len] == 0)
-                  {
-                    secstr[len] = 'P';
-                  }
-                case HELIX:
-                  if (secstr[len] == 0)
-                  {
-                    secstr[len] = 'H';
-                  }
-                  secstrcode[len] = 'H';
-                  break;
-                case SHEET:
-                  secstr[len] = 'E';
-                  secstrcode[len] = 'E';
-                  break;
-                default:
-                  secstr[len] = 0;
-                  secstrcode[len] = 0;
+                  secstr[len] = 'P';
+                }
+              case HELIX:
+                if (secstr[len] == 0)
+                {
+                  secstr[len] = 'H';
                 }
-                len++;
+                secstrcode[len] = 'H';
+                break;
+              case SHEET:
+                secstr[len] = 'E';
+                secstrcode[len] = 'E';
+                break;
+              default:
+                secstr[len] = 0;
+                secstrcode[len] = 0;
               }
-            } while (groupc++ < groups.length);
-
-          }
+              len++;
+            }
+          } while (groupc++ < groups.length);
         }
       }
 
@@ -305,7 +317,7 @@ public class PDBFileWithJmol extends AlignFile implements
    * System.err.println("Squashed Jmol callback handler error:");
    * e.printStackTrace(); } }
    */
-  public void notifyCallback(EnumCallback type, Object[] data)
+  public void notifyCallback(CBK type, Object[] data)
   {
     String strInfo = (data == null || data[1] == null ? null : data[1]
             .toString());
@@ -343,13 +355,6 @@ public class PDBFileWithJmol extends AlignFile implements
     }
   }
 
-  private void notifyFileLoaded(String string, String string2,
-          String string3, String string4, int intValue)
-  {
-    // TODO Auto-generated method stub
-
-  }
-
   String lastConsoleEcho = "";
 
   private void sendConsoleEcho(String string)
@@ -378,7 +383,7 @@ public class PDBFileWithJmol extends AlignFile implements
   }
 
   @Override
-  public boolean notifyEnabled(EnumCallback callbackPick)
+  public boolean notifyEnabled(CBK callbackPick)
   {
     switch (callbackPick)
     {
@@ -388,16 +393,9 @@ public class PDBFileWithJmol extends AlignFile implements
     case LOADSTRUCT:
     case ERROR:
       return true;
-    case MEASURE:
-    case PICK:
-    case HOVER:
-    case RESIZE:
-    case SYNC:
-    case CLICK:
-    case ANIMFRAME:
-    case MINIMIZATION:
+    default:
+      return false;
     }
-    return false;
   }
 
   @Override
@@ -444,10 +442,15 @@ public class PDBFileWithJmol extends AlignFile implements
   }
 
   @Override
-  public void resizeInnerPanel(String data)
+  public Dimension resizeInnerPanel(String data)
   {
-    // TODO Auto-generated method stub
+    return null;
+  }
 
+  @Override
+  public Map<String, Object> getJSpecViewProperty(String arg0)
+  {
+    return null;
   }
 
 }
diff --git a/src/jalview/ext/varna/RnaModel.java b/src/jalview/ext/varna/RnaModel.java
new file mode 100644 (file)
index 0000000..b39ea94
--- /dev/null
@@ -0,0 +1,32 @@
+package jalview.ext.varna;
+
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.SequenceI;
+
+import fr.orsay.lri.varna.models.rna.RNA;
+
+/**
+ * Data bean wrapping the data items that define one RNA view
+ */
+public class RnaModel
+{
+  public final String title;
+
+  public final AlignmentAnnotation ann;
+
+  public final SequenceI seq;
+
+  public final boolean gapped;
+
+  public final RNA rna;
+
+  public RnaModel(String t, AlignmentAnnotation aa, SequenceI s, RNA r,
+          boolean g)
+  {
+    title = t;
+    ann = aa;
+    seq = s;
+    rna = r;
+    gapped = g;
+  }
+}
\ No newline at end of file
index fe7c940..49bb64a 100644 (file)
@@ -1,14 +1,15 @@
 package jalview.gui;
 
+import jalview.api.AlignExportSettingI;
+import jalview.bin.Jalview;
+import jalview.jbgui.GAlignExportSettings;
+
 import java.awt.event.ActionEvent;
 
 import javax.swing.JDialog;
 import javax.swing.JInternalFrame;
 import javax.swing.JOptionPane;
 
-import jalview.api.AlignExportSettingI;
-import jalview.jbgui.GAlignExportSettings;
-
 @SuppressWarnings("serial")
 public class AlignExportSettings extends GAlignExportSettings implements
         AlignExportSettingI
@@ -17,52 +18,25 @@ public class AlignExportSettings extends GAlignExportSettings implements
 
   boolean cancelled = false;
 
-  private int width = 450;
-
-  private int height = 200;
-
   JDialog dialog;
 
   public AlignExportSettings(boolean hasHiddenSeq, boolean hasHiddenCols,
           String alignFileFormat)
   {
     super(hasHiddenSeq, hasHiddenCols, alignFileFormat);
-
-    // frame = new JInternalFrame();
-    // frame.setContentPane(this);
-    // frame.setLayer(JLayeredPane.PALETTE_LAYER);
-    // Desktop.addInternalFrame(frame, "Export Settings", width, height);
-
-    JOptionPane pane = new JOptionPane(null, JOptionPane.DEFAULT_OPTION,
-            JOptionPane.DEFAULT_OPTION, null, new Object[]
-            { this });
-    dialog = pane.createDialog(Desktop.desktop, "Export Settings");
-
-    // dialog = new JDialog(Desktop.instance, true);
-    // dialog.setTitle("Export Settings");
-
-    dialog.pack();
-    dialog.setVisible(true);
-
-    dialog.setContentPane(this);
-    dialog.validate();
-
+    if (!Jalview.isHeadlessMode() && isShowDialog())
+    {
+      JOptionPane pane = new JOptionPane(null, JOptionPane.DEFAULT_OPTION,
+              JOptionPane.DEFAULT_OPTION, null, new Object[]
+              { this });
+      dialog = pane.createDialog(Desktop.desktop, "Export Settings");
+      dialog.pack();
+      dialog.setVisible(true);
+      dialog.setContentPane(this);
+      dialog.validate();
+    }
   }
 
-  // public static void main(String[] args)
-  // {
-  // new AlignExportSettings(false, false, false);
-  // }
-
-  // public void cancel_actionPerformed(ActionEvent e)
-  // {
-    // try
-    // {
-    // frame.setClosed(true);
-    // } catch (Exception ex)
-    // {
-    // }
-  // }
 
   public void ok_actionPerformed(ActionEvent e)
   {
@@ -106,7 +80,6 @@ public class AlignExportSettings extends GAlignExportSettings implements
     return chkExportGrps.isSelected();
   }
 
-  @Override
   public boolean isCancelled()
   {
     return cancelled;
index 01353d8..68d7397 100644 (file)
@@ -28,7 +28,6 @@ import jalview.analysis.CrossRef;
 import jalview.analysis.Dna;
 import jalview.analysis.ParseProperties;
 import jalview.analysis.SequenceIdMatcher;
-import jalview.api.AlignExportSettingI;
 import jalview.api.AlignViewControllerGuiI;
 import jalview.api.AlignViewControllerI;
 import jalview.api.AlignViewportI;
@@ -38,6 +37,7 @@ import jalview.api.SplitContainerI;
 import jalview.api.ViewStyleI;
 import jalview.api.analysis.ScoreModelI;
 import jalview.bin.Cache;
+import jalview.bin.Jalview;
 import jalview.commands.CommandI;
 import jalview.commands.EditCommand;
 import jalview.commands.EditCommand.Action;
@@ -49,6 +49,7 @@ import jalview.commands.TrimRegionCommand;
 import jalview.datamodel.AlignedCodonFrame;
 import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.AlignmentExportData;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.AlignmentOrder;
 import jalview.datamodel.AlignmentView;
@@ -335,7 +336,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    */
   void init()
   {
-    progressBar = new ProgressBar(this.statusPanel, this.statusBar);
+    if (!Jalview.isHeadlessMode())
+    {
+      progressBar = new ProgressBar(this.statusPanel, this.statusBar);
+    }
 
     avc = new jalview.controller.AlignViewController(this, viewport,
             alignPanel);
@@ -1135,13 +1139,20 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       {
         warningMessage("Cannot save file " + fileName + " using format "
                 + format, "Alignment output format not supported");
-        saveAs_actionPerformed(null);
-        // JBPNote need to have a raise_gui flag here
+        if (!Jalview.isHeadlessMode())
+        {
+          saveAs_actionPerformed(null);
+        }
         return false;
       }
 
-      ExportData exportData = getAlignmentForExport(format);
-      FormatAdapter f = new FormatAdapter(alignPanel);
+      AlignmentExportData exportData = getAlignmentForExport(format, viewport);
+      if (exportData.getSettings().isCancelled())
+      {
+        return false;
+      }
+      FormatAdapter f = new FormatAdapter(alignPanel,
+              exportData.getSettings());
       String output = f.formatSequences(format,
               exportData.getAlignment(), // class cast exceptions will
               // occur in the distant future
@@ -1213,7 +1224,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   protected void outputText_actionPerformed(ActionEvent e)
   {
 
-    ExportData exportData = getAlignmentForExport(e.getActionCommand());
+    AlignmentExportData exportData = getAlignmentForExport(
+            e.getActionCommand(), viewport);
     if (exportData.getSettings().isCancelled())
     {
       return;
@@ -1239,7 +1251,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   }
 
-  public ExportData getAlignmentForExport(String exportFomat)
+  public static AlignmentExportData getAlignmentForExport(String exportFomat,
+          AlignViewportI viewport)
   {
     AlignmentI alignmentToExport = null;
     String[] omitHidden = null;
@@ -1254,7 +1267,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     { 0, alignmentToExport.getWidth() - 1 };
 
     boolean hasHiddenSeqs = hiddenSeqs.getSize() > 0;
-    AlignExportSettingI settings = new AlignExportSettings(hasHiddenSeqs,
+    AlignExportSettings settings = new AlignExportSettings(hasHiddenSeqs,
             viewport.hasHiddenColumns(), exportFomat);
     settings.isExportAnnotations();
 
@@ -1273,8 +1286,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       alignmentStartEnd = getStartEnd(alignmentStartEnd, viewport
               .getColumnSelection().getHiddenColumns());
     }
-    return new ExportData(alignmentToExport, omitHidden, alignmentStartEnd,
+    AlignmentExportData ed = new AlignmentExportData(alignmentToExport, omitHidden, alignmentStartEnd,
             settings);
+    return ed;
   }
 
   private static int[] getStartEnd(int[] aligmentStartEnd,
@@ -1814,9 +1828,14 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
               viewport.getSelectionGroup().getEndRes() + groupAdjustment);
     }
 
+    /*
+     * just extend the last slide command if compatible; but not if in
+     * SplitFrame mode (to ensure all edits are broadcast - JAL-1802)
+     */
     boolean appendHistoryItem = false;
     Deque<CommandI> historyList = viewport.getHistoryList();
-    if (historyList != null
+    boolean inSplitFrame = getSplitViewContainer() != null;
+    if (!inSplitFrame && historyList != null
             && historyList.size() > 0
             && historyList.peek() instanceof SlideSequencesCommand)
     {
@@ -4842,7 +4861,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
             // temporary flag until SplitFrame is released
             boolean asSplitFrame = Cache.getDefault(
-                    Preferences.ENABLE_SPLIT_FRAME, false);
+                    Preferences.ENABLE_SPLIT_FRAME, true);
             if (asSplitFrame)
             {
               /*
@@ -4974,7 +4993,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
               "label.translation_of_params", new Object[]
               { this.getTitle() });
       af.setTitle(newTitle);
-      if (Cache.getDefault(Preferences.ENABLE_SPLIT_FRAME, false))
+      if (Cache.getDefault(Preferences.ENABLE_SPLIT_FRAME, true))
       {
         final SequenceI[] seqs = viewport.getSelectionAsNewSequence();
         viewport.openSplitFrame(af, new Alignment(seqs),
@@ -5983,7 +6002,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         aa.visible = visible;
       }
     }
-    alignPanel.validateAnnotationDimensions(false);
+    alignPanel.validateAnnotationDimensions(true);
     alignPanel.alignmentChanged();
   }
 
@@ -6071,66 +6090,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     }
   }
 
-  public class ExportData
-  {
-    private AlignmentI alignment;
-
-    private String[] omitHidden;
-
-    private int[] startEnd;
-
-    private AlignExportSettingI settings;
-
-    public ExportData(AlignmentI align, String[] ommit, int[] startEnd,
-            AlignExportSettingI settings)
-    {
-      this.alignment = align;
-      this.omitHidden = ommit;
-      this.startEnd = startEnd;
-      this.settings = settings;
-    }
-
-    public AlignmentI getAlignment()
-    {
-      return alignment;
-    }
-
-    public void setAlignment(AlignmentI alignment)
-    {
-      this.alignment = alignment;
-    }
-
-    public String[] getOmitHidden()
-    {
-      return omitHidden;
-    }
-
-    public void setOmitHidden(String[] omitHidden)
-    {
-      this.omitHidden = omitHidden;
-    }
-
-    public int[] getStartEndPostions()
-    {
-      return startEnd;
-    }
-
-    public void setStartEndPostions(int[] startEnd)
-    {
-      this.startEnd = startEnd;
-    }
-
-    public AlignExportSettingI getSettings()
-    {
-      return settings;
-    }
-
-    public void setSettings(AlignExportSettingI settings)
-    {
-      this.settings = settings;
-    }
-  }
-
 }
 
 class PrintThread extends Thread
index fc889ad..c18c989 100644 (file)
@@ -799,7 +799,7 @@ public class AlignViewport extends AlignmentViewport implements
      * If any cDNA/protein mappings can be made between the alignments, offer to
      * open a linked alignment with split frame option.
      */
-    if (Cache.getDefault(Preferences.ENABLE_SPLIT_FRAME, false))
+    if (Cache.getDefault(Preferences.ENABLE_SPLIT_FRAME, true))
     {
       if (AlignmentUtils.isMappable(al, getAlignment()))
       {
@@ -909,6 +909,7 @@ public class AlignViewport extends AlignmentViewport implements
 
     if (openSplitPane)
     {
+      al.alignAs(thisAlignment);
       protein = openSplitFrame(newAlignFrame, thisAlignment,
               protein.getCodonFrames());
     }
@@ -1027,13 +1028,13 @@ public class AlignViewport extends AlignmentViewport implements
      * is found, the result will be empty.
      */
     SearchResults sr = new SearchResults();
-    int seqOffset = findComplementScrollTarget(sr);
+    int verticalOffset = findComplementScrollTarget(sr);
     if (!sr.isEmpty())
     {
       // TODO would like next line without cast but needs more refactoring...
       final AlignmentPanel complementPanel = ((AlignViewport) getCodingComplement()).getAlignPanel();
       complementPanel.setFollowingComplementScroll(true);
-      complementPanel.scrollToCentre(sr, seqOffset);
+      complementPanel.scrollToCentre(sr, verticalOffset);
     }
   }
 
index 5bc46f4..ad7e75c 100644 (file)
  */
 package jalview.gui;
 
+import jalview.analysis.AnnotationSorter;
+import jalview.api.AlignViewportI;
+import jalview.api.AlignmentViewPanel;
+import jalview.bin.Cache;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.SearchResults;
+import jalview.datamodel.SequenceFeature;
+import jalview.datamodel.SequenceGroup;
+import jalview.datamodel.SequenceI;
+import jalview.jbgui.GAlignmentPanel;
+import jalview.math.AlignmentDimension;
+import jalview.schemes.ResidueProperties;
+import jalview.structure.StructureSelectionManager;
+import jalview.util.MessageManager;
+import jalview.util.Platform;
+
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.Container;
@@ -27,6 +43,7 @@ import java.awt.Dimension;
 import java.awt.Font;
 import java.awt.FontMetrics;
 import java.awt.Graphics;
+import java.awt.Insets;
 import java.awt.event.AdjustmentEvent;
 import java.awt.event.AdjustmentListener;
 import java.awt.print.PageFormat;
@@ -41,21 +58,6 @@ import java.util.List;
 
 import javax.swing.SwingUtilities;
 
-import jalview.analysis.AnnotationSorter;
-import jalview.api.AlignViewportI;
-import jalview.api.AlignmentViewPanel;
-import jalview.bin.Cache;
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.SearchResults;
-import jalview.datamodel.SequenceFeature;
-import jalview.datamodel.SequenceGroup;
-import jalview.datamodel.SequenceI;
-import jalview.jbgui.GAlignmentPanel;
-import jalview.math.AlignmentDimension;
-import jalview.schemes.ResidueProperties;
-import jalview.structure.StructureSelectionManager;
-import jalview.util.MessageManager;
-
 /**
  * DOCUMENT ME!
  * 
@@ -304,7 +306,7 @@ public class AlignmentPanel extends GAlignmentPanel implements
    */
   public boolean scrollToPosition(SearchResults results)
   {
-    return scrollToPosition(results, true, false);
+    return scrollToPosition(results, 0, true, false);
   }
 
   /**
@@ -317,7 +319,7 @@ public class AlignmentPanel extends GAlignmentPanel implements
    */
   public boolean scrollToPosition(SearchResults searchResults, boolean redrawOverview)
   {
-    return scrollToPosition(searchResults, redrawOverview, false);
+    return scrollToPosition(searchResults, 0, redrawOverview, false);
   }
 
   /**
@@ -325,6 +327,9 @@ public class AlignmentPanel extends GAlignmentPanel implements
    * (if any)
    * 
    * @param results
+   * @param verticalOffset
+   *          if greater than zero, allows scrolling to a position below the
+   *          first displayed sequence
    * @param redrawOverview
    *          - when set, the overview will be recalculated (takes longer)
    * @param centre
@@ -332,6 +337,7 @@ public class AlignmentPanel extends GAlignmentPanel implements
    * @return false if results were not found
    */
   public boolean scrollToPosition(SearchResults results,
+          int verticalOffset,
           boolean redrawOverview, boolean centre)
   {
     int startv, endv, starts, ends;
@@ -390,6 +396,12 @@ public class AlignmentPanel extends GAlignmentPanel implements
           }
         }
       }
+
+      /*
+       * allow for offset of target sequence (actually scroll to one above it)
+       */
+      seqIndex = Math.max(0, seqIndex - verticalOffset);
+
       if (!av.getWrapAlignment())
       {
         if ((startv = av.getStartRes()) >= start)
@@ -511,47 +523,47 @@ public class AlignmentPanel extends GAlignmentPanel implements
    */
   protected void validateAnnotationDimensions(boolean adjustPanelHeight)
   {
-    int height = getAnnotationPanel().adjustPanelHeight();
-
-    int theight = av.getCharHeight()
-            * (av.getAlignment().getHeight() + (!av.hasHiddenRows() ? 0
-                    : av.getAlignment().getHiddenSequences().getSize()));
-    float sscaling = (float) (theight / (1.0 * theight + height));
-    float ascaling = (float) (height * 1.0 / alignFrame.getHeight());
-    int rheight = alignFrame.getHeight() - height - av.getCharHeight();
+    int annotationHeight = getAnnotationPanel().adjustPanelHeight();
+
     if (adjustPanelHeight)
     {
-      // NOTE: this logic is different in the applet. Need a better algorithm to
-      // define behaviour
-      // try and set height according to alignment
-      if (ascaling > 0 && sscaling < 0.5)
-      {
-        // if the alignment is too big then
-        // default is 0.5 split
-        height = alignFrame.getHeight() / 2;
-      }
-      else
+      int rowHeight = av.getCharHeight();
+      int alignmentHeight = rowHeight * av.getAlignment().getHeight();
+
+      /*
+       * Estimate available height in the AlignFrame for alignment +
+       * annotations. Deduct an estimate for title bar, menu bar, scale panel,
+       * hscroll, status bar (as these are not laid out we can't inspect their
+       * actual heights). Insets gives frame borders.
+       */
+      int stuff = Platform.isAMac() ? 80 : 100;
+      Insets insets = alignFrame.getInsets();
+      int availableHeight = alignFrame.getHeight() - stuff - insets.top
+              - insets.bottom;
+
+      /*
+       * If not enough vertical space, maximize annotation height while keeping
+       * at least two rows of alignment visible
+       */
+      if (annotationHeight + alignmentHeight > availableHeight)
       {
-        // if space for more than one sequence row left when annotation is fully
-        // displayed then set height to annotation height
-        // otherwise, leave at least two lines of sequence shown.
-        height = (rheight > av.getCharHeight()) ? height
-                : (-av.getCharHeight() * 3 + (int) (alignFrame.getHeight() * (1 - sscaling)));
+        annotationHeight = Math.min(annotationHeight, availableHeight - 2
+                * rowHeight);
       }
     }
     else
     {
       // maintain same window layout whilst updating sliders
-      height = annotationScroller.getSize().height;
+      annotationHeight = annotationScroller.getSize().height;
     }
     hscroll.addNotify();
 
     annotationScroller.setPreferredSize(new Dimension(annotationScroller
-            .getWidth(), height));
+            .getWidth(), annotationHeight));
 
     annotationSpaceFillerHolder.setPreferredSize(new Dimension(
-            annotationSpaceFillerHolder.getWidth(), height));
-    annotationScroller.validate();// repaint();
+            annotationSpaceFillerHolder.getWidth(), annotationHeight));
+    annotationScroller.validate();
     annotationScroller.addNotify();
   }
 
@@ -1727,10 +1739,10 @@ public class AlignmentPanel extends GAlignmentPanel implements
    * @param sr
    *          holds mapped region(s) of this alignment that we are scrolling
    *          'to'; may be modified for sequence offset by this method
-   * @param seqOffset
+   * @param verticalOffset
    *          the number of visible sequences to show above the mapped region
    */
-  public void scrollToCentre(SearchResults sr, int seqOffset)
+  public void scrollToCentre(SearchResults sr, int verticalOffset)
   {
     /*
      * To avoid jumpy vertical scrolling (if some sequences are gapped or not
@@ -1744,7 +1756,6 @@ public class AlignmentPanel extends GAlignmentPanel implements
      * This is like AlignmentI.findIndex(seq) but here we are matching the
      * dataset sequence not the aligned sequence
      */
-    int sequenceIndex = 0;
     boolean matched = false;
     for (SequenceI seq : seqs)
     {
@@ -1753,20 +1764,16 @@ public class AlignmentPanel extends GAlignmentPanel implements
         matched = true;
         break;
       }
-      sequenceIndex++;
     }
     if (!matched)
     {
       return; // failsafe, shouldn't happen
     }
-    sequenceIndex = Math.max(0, sequenceIndex - seqOffset);
-    sr.getResults().get(0)
-            .setSequence(av.getAlignment().getSequenceAt(sequenceIndex));
 
     /*
      * Scroll to position but centring the target residue.
      */
-    scrollToPosition(sr, true, true);
+    scrollToPosition(sr, verticalOffset, true, true);
   }
 
   /**
index c952c13..97752f2 100755 (executable)
@@ -139,7 +139,7 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
   public AnnotationPanel(AlignmentPanel ap)
   {
 
-    MAC = new jalview.util.Platform().isAMac();
+    MAC = jalview.util.Platform.isAMac();
 
     ToolTipManager.sharedInstance().registerComponent(this);
     ToolTipManager.sharedInstance().setInitialDelay(0);
index c2a7299..a16ea68 100644 (file)
  */
 package jalview.gui;
 
+import jalview.bin.Cache;
+import jalview.datamodel.Alignment;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.PDBEntry;
+import jalview.datamodel.SequenceI;
+import jalview.gui.StructureViewer.ViewerType;
+import jalview.io.AppletFormatAdapter;
+import jalview.io.JalviewFileChooser;
+import jalview.io.JalviewFileView;
+import jalview.schemes.BuriedColourScheme;
+import jalview.schemes.ColourSchemeI;
+import jalview.schemes.HelixColourScheme;
+import jalview.schemes.HydrophobicColourScheme;
+import jalview.schemes.PurinePyrimidineColourScheme;
+import jalview.schemes.StrandColourScheme;
+import jalview.schemes.TaylorColourScheme;
+import jalview.schemes.TurnColourScheme;
+import jalview.schemes.ZappoColourScheme;
+import jalview.structures.models.AAStructureBindingModel;
+import jalview.util.MessageManager;
+import jalview.util.Platform;
+
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.Dimension;
@@ -34,8 +57,8 @@ import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.FileReader;
+import java.io.IOException;
 import java.io.PrintWriter;
-import java.util.Enumeration;
 import java.util.Vector;
 
 import javax.swing.JCheckBoxMenuItem;
@@ -51,29 +74,6 @@ import javax.swing.event.InternalFrameEvent;
 import javax.swing.event.MenuEvent;
 import javax.swing.event.MenuListener;
 
-import jalview.bin.Cache;
-import jalview.datamodel.Alignment;
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.ColumnSelection;
-import jalview.datamodel.PDBEntry;
-import jalview.datamodel.SequenceI;
-import jalview.gui.StructureViewer.ViewerType;
-import jalview.io.AppletFormatAdapter;
-import jalview.io.JalviewFileChooser;
-import jalview.io.JalviewFileView;
-import jalview.schemes.BuriedColourScheme;
-import jalview.schemes.ColourSchemeI;
-import jalview.schemes.HelixColourScheme;
-import jalview.schemes.HydrophobicColourScheme;
-import jalview.schemes.PurinePyrimidineColourScheme;
-import jalview.schemes.StrandColourScheme;
-import jalview.schemes.TaylorColourScheme;
-import jalview.schemes.TurnColourScheme;
-import jalview.schemes.ZappoColourScheme;
-import jalview.structures.models.AAStructureBindingModel;
-import jalview.util.MessageManager;
-import jalview.util.Platform;
-
 public class AppJmol extends StructureViewerBase
 {
   AppJmolBinding jmb;
@@ -84,41 +84,8 @@ public class AppJmol extends StructureViewerBase
 
   RenderPanel renderPanel;
 
-  Vector atomsPicked = new Vector();
-
   private boolean addingStructures = false;
 
-  /**
-   * 
-   * @param file
-   * @param id
-   * @param seq
-   * @param ap
-   * @param loadStatus
-   * @param bounds
-   * @deprecated defaults to AppJmol(String[] files, ... , viewid);
-   */
-  @Deprecated
-  public AppJmol(String file, String id, SequenceI[] seq,
-          AlignmentPanel ap, String loadStatus, Rectangle bounds)
-  {
-    this(file, id, seq, ap, loadStatus, bounds, null);
-  }
-
-  /**
-   * @deprecated
-   */
-  @Deprecated
-  public AppJmol(String file, String id, SequenceI[] seq,
-          AlignmentPanel ap, String loadStatus, Rectangle bounds,
-          String viewid)
-  {
-    this(new String[]
-    { file }, new String[]
-    { id }, new SequenceI[][]
-    { seq }, ap, true, true, false, loadStatus, bounds, viewid);
-  }
-
   ViewSelectionMenu seqColourBy;
 
   /**
@@ -185,6 +152,7 @@ public class AppJmol extends StructureViewerBase
 
     this.addInternalFrameListener(new InternalFrameAdapter()
     {
+      @Override
       public void internalFrameClosing(InternalFrameEvent internalFrameEvent)
       {
         closeViewer(false);
@@ -345,36 +313,30 @@ public class AppJmol extends StructureViewerBase
         return;
       }
     }
-    // /////////////////////////////////
-    // Check if there are other Jmol views involving this alignment
-    // and prompt user about adding this molecule to one of them
-    Vector existingViews = getJmolsFor(ap);
-    if (existingViews.size() > 0)
+
+    /*
+     * Check if there are other Jmol views involving this alignment and prompt
+     * user about adding this molecule to one of them
+     */
+    for (AppJmol topJmol : getJmolsFor(ap))
     {
-      Enumeration jm = existingViews.elements();
-      while (jm.hasMoreElements())
+      // TODO: highlight topJmol in view somehow
+      int option = JOptionPane.showInternalConfirmDialog(Desktop.desktop,
+              MessageManager.formatMessage("label.add_pdbentry_to_view",
+                      new String[]
+                      { pdbentry.getId(), topJmol.getTitle() }),
+              MessageManager
+                      .getString("label.align_to_existing_structure_view"),
+              JOptionPane.YES_NO_CANCEL_OPTION);
+      if (option == JOptionPane.CANCEL_OPTION)
       {
-        AppJmol topJmol = (AppJmol) jm.nextElement();
-        // TODO: highlight topJmol in view somehow
-        int option = JOptionPane
-                .showInternalConfirmDialog(
-                        Desktop.desktop,
-                        MessageManager.formatMessage(
-                                "label.add_pdbentry_to_view", new String[]
-                                { pdbentry.getId(), topJmol.getTitle() }),
-                        MessageManager
-                                .getString("label.align_to_existing_structure_view"),
-                        JOptionPane.YES_NO_CANCEL_OPTION);
-        if (option == JOptionPane.CANCEL_OPTION)
-        {
-          return;
-        }
-        if (option == JOptionPane.YES_OPTION)
-        {
-          topJmol.useAlignmentPanelForSuperposition(ap);
-          topJmol.addStructure(pdbentry, seq, chains, true, ap.alignFrame);
-          return;
-        }
+        return;
+      }
+      if (option == JOptionPane.YES_OPTION)
+      {
+        topJmol.useAlignmentPanelForSuperposition(ap);
+        topJmol.addStructure(pdbentry, seq, chains, true, ap.alignFrame);
+        return;
       }
     }
     // /////////////////////////////////
@@ -407,6 +369,7 @@ public class AppJmol extends StructureViewerBase
     }
     this.addInternalFrameListener(new InternalFrameAdapter()
     {
+      @Override
       public void internalFrameClosing(InternalFrameEvent internalFrameEvent)
       {
         closeViewer(false);
@@ -489,18 +452,18 @@ public class AppJmol extends StructureViewerBase
     return;
   }
 
-  private Vector getJmolsFor(AlignmentPanel apanel)
+  private Vector<AppJmol> getJmolsFor(AlignmentPanel apanel)
   {
-    Vector result = new Vector();
+    Vector<AppJmol> result = new Vector<AppJmol>();
     JInternalFrame[] frames = Desktop.instance.getAllFrames();
 
     for (JInternalFrame frame : frames)
     {
       if (frame instanceof AppJmol)
       {
-        if (((StructureViewerBase) frame).isLinkedWith(apanel))
+        if (((AppJmol) frame).isLinkedWith(apanel))
         {
-          result.addElement(frame);
+          result.addElement((AppJmol) frame);
         }
       }
     }
@@ -524,10 +487,10 @@ public class AppJmol extends StructureViewerBase
       scriptWindow = new JPanel(bl);
       scriptWindow.setVisible(false);
     }
-    ;
+
     jmb.allocateViewer(renderPanel, true, "", null, null, "", scriptWindow,
             null);
-    jmb.newJmolPopup(true, "Jmol", true);
+    // jmb.newJmolPopup("Jmol");
     if (command == null)
     {
       command = "";
@@ -536,7 +499,7 @@ public class AppJmol extends StructureViewerBase
     jmb.setFinishedInit(true);
   }
 
-  void setChainMenuItems(Vector chains)
+  void setChainMenuItems(Vector<String> chains)
   {
     chainMenu.removeAll();
     if (chains == null)
@@ -564,9 +527,9 @@ public class AppJmol extends StructureViewerBase
 
     chainMenu.add(menuItem);
 
-    for (int c = 0; c < chains.size(); c++)
+    for (String chain : chains)
     {
-      menuItem = new JCheckBoxMenuItem(chains.elementAt(c).toString(), true);
+      menuItem = new JCheckBoxMenuItem(chain, true);
       menuItem.addItemListener(new ItemListener()
       {
         public void itemStateChanged(ItemEvent evt)
@@ -588,9 +551,7 @@ public class AppJmol extends StructureViewerBase
 
   void centerViewer()
   {
-    Vector toshow = new Vector();
-    String lbl;
-    int mlength, p, mnum;
+    Vector<String> toshow = new Vector<String>();
     for (int i = 0; i < chainMenu.getItemCount(); i++)
     {
       if (chainMenu.getItem(i) instanceof JCheckBoxMenuItem)
@@ -763,7 +724,7 @@ public class AppJmol extends StructureViewerBase
 
       // need to wait around until script has finished
       while (addingStructures ? lastnotify >= jmb.getLoadNotifiesHandled()
-              : (jmb.isFinishedInit() && jmb.getPdbFile() != null && jmb
+              : (!jmb.isFinishedInit() && jmb.getPdbFile() != null && jmb
                       .getPdbFile().length != jmb.getPdbCount()))
       {
         try
@@ -774,6 +735,7 @@ public class AppJmol extends StructureViewerBase
         {
         }
       }
+
       // refresh the sequence colours for the new structure(s)
       for (AlignmentPanel ap : _colourwith)
       {
@@ -813,10 +775,11 @@ public class AppJmol extends StructureViewerBase
 
     if (value == JalviewFileChooser.APPROVE_OPTION)
     {
+      BufferedReader in = null;
       try
       {
         // TODO: cope with multiple PDB files in view
-        BufferedReader in = new BufferedReader(new FileReader(
+        in = new BufferedReader(new FileReader(
                 jmb.getPdbFile()[0]));
         File outFile = chooser.getSelectedFile();
 
@@ -833,6 +796,18 @@ public class AppJmol extends StructureViewerBase
       } catch (Exception ex)
       {
         ex.printStackTrace();
+      } finally
+      {
+        if (in != null)
+        {
+          try
+          {
+            in.close();
+          } catch (IOException e)
+          {
+            // ignore
+          }
+        }
       }
     }
   }
@@ -899,8 +874,7 @@ public class AppJmol extends StructureViewerBase
 
     if (im.getGraphics() != null)
     {
-      Rectangle rect = new Rectangle(width, height);
-      jmb.viewer.renderScreenImage(im.getGraphics(), rect.getSize(), rect);
+      jmb.viewer.renderScreenImage(im.getGraphics(), width, height);
       im.writeImage();
     }
   }
@@ -936,7 +910,7 @@ public class AppJmol extends StructureViewerBase
       // Set the colour using the current view for the associated alignframe
       for (AlignmentPanel ap : _colourwith)
       {
-        jmb.colourBySequence(ap.av.isShowSequenceFeatures(), ap);
+        jmb.colourBySequence(ap);
       }
     }
   }
@@ -1077,12 +1051,10 @@ public class AppJmol extends StructureViewerBase
   {
     final Dimension currentSize = new Dimension();
 
-    final Rectangle rectClip = new Rectangle();
-
+    @Override
     public void paintComponent(Graphics g)
     {
       getSize(currentSize);
-      g.getClipBounds(rectClip);
 
       if (jmb != null && jmb.fileLoadingError != null)
       {
@@ -1121,7 +1093,8 @@ public class AppJmol extends StructureViewerBase
       }
       else
       {
-        jmb.viewer.renderScreenImage(g, currentSize, rectClip);
+        jmb.viewer.renderScreenImage(g, currentSize.width,
+                currentSize.height);
       }
     }
   }
index 3a376b8..5c4346e 100644 (file)
@@ -28,12 +28,11 @@ import jalview.ext.jmol.JalviewJmolBinding;
 import jalview.structure.StructureSelectionManager;
 
 import java.awt.Container;
-import java.util.BitSet;
+import java.util.Map;
 
 import org.jmol.api.JmolAppConsoleInterface;
-import org.jmol.api.JmolViewer;
-import org.jmol.popup.JmolPopup;
-import org.openscience.jmol.app.jmolpanel.AppConsole;
+import org.jmol.java.BS;
+import org.openscience.jmol.app.jmolpanel.console.AppConsole;
 
 public class AppJmolBinding extends JalviewJmolBinding
 {
@@ -77,6 +76,7 @@ public class AppJmolBinding extends JalviewJmolBinding
     return new SequenceRenderer(((AlignmentPanel) alignment).av);
   }
 
+  @Override
   public void sendConsoleEcho(String strEcho)
   {
     if (console != null)
@@ -85,6 +85,7 @@ public class AppJmolBinding extends JalviewJmolBinding
     }
   }
 
+  @Override
   public void sendConsoleMessage(String strStatus)
   {
     if (console != null && strStatus != null)
@@ -124,7 +125,7 @@ public class AppJmolBinding extends JalviewJmolBinding
 
   public void updateColours(Object source)
   {
-    AlignmentPanel ap = (AlignmentPanel) source, topap;
+    AlignmentPanel ap = (AlignmentPanel) source;
     // ignore events from panels not used to colour this view
     if (!appJmolWindow.isUsedforcolourby(ap))
     {
@@ -132,10 +133,11 @@ public class AppJmolBinding extends JalviewJmolBinding
     }
     if (!isLoadingFromArchive())
     {
-      colourBySequence(ap.av.isShowSequenceFeatures(), ap);
+      colourBySequence(ap);
     }
   }
 
+  @Override
   public void notifyScriptTermination(String strStatus, int msWalltime)
   {
     // todo - script termination doesn't happen ?
@@ -149,34 +151,37 @@ public class AppJmolBinding extends JalviewJmolBinding
     showUrl(url, "jmol");
   }
 
-  public void newJmolPopup(boolean translateLocale, String menuName,
-          boolean asPopup)
+  public void newJmolPopup(String menuName)
   {
-    jmolpopup = new JmolPopup();
-    jmolpopup.initialize(viewer, translateLocale, menuName, asPopup);
+    // jmolpopup = new JmolAwtPopup();
+    // jmolpopup.jpiInitialize((viewer), menuName);
   }
 
-  public void selectionChanged(BitSet arg0)
+  @Override
+  public void selectionChanged(BS arg0)
   {
     // TODO Auto-generated method stub
 
   }
 
+  @Override
   public void refreshPdbEntries()
   {
     // TODO Auto-generated method stub
 
   }
 
+  @Override
   public void showConsole(boolean b)
   {
     appJmolWindow.showConsole(b);
   }
 
   @Override
-  protected JmolAppConsoleInterface createJmolConsole(JmolViewer viewer2,
+  protected JmolAppConsoleInterface createJmolConsole(
           Container consolePanel, String buttonsToShow)
   {
+    viewer.setJmolCallbackListener(this);
     return new AppConsole(viewer, consolePanel, buttonsToShow);
   }
 
@@ -195,4 +200,11 @@ public class AppJmolBinding extends JalviewJmolBinding
       appJmolWindow.removeAlignmentPanel(((SeqPanel) svl).ap);
     }
   }
+
+  @Override
+  public Map<String, Object> getJSpecViewProperty(String arg0)
+  {
+    // TODO Auto-generated method stub
+    return null;
+  }
 }
index 5c3785a..99bcff4 100644 (file)
  */
 package jalview.gui;
 
+import jalview.analysis.AlignSeq;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.RnaViewerModel;
+import jalview.datamodel.SequenceGroup;
+import jalview.datamodel.SequenceI;
+import jalview.ext.varna.RnaModel;
+import jalview.structure.SecondaryStructureListener;
+import jalview.structure.SelectionListener;
+import jalview.structure.SelectionSource;
+import jalview.structure.StructureSelectionManager;
+import jalview.structure.VamsasSource;
+import jalview.util.Comparison;
+import jalview.util.MessageManager;
+import jalview.util.ShiftList;
+
 import java.awt.BorderLayout;
 import java.awt.Color;
-import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Hashtable;
+import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 
 import javax.swing.JInternalFrame;
 import javax.swing.JSplitPane;
@@ -35,102 +51,165 @@ import javax.swing.event.InternalFrameEvent;
 
 import fr.orsay.lri.varna.VARNAPanel;
 import fr.orsay.lri.varna.exceptions.ExceptionFileFormatOrSyntax;
+import fr.orsay.lri.varna.exceptions.ExceptionLoadingFailed;
 import fr.orsay.lri.varna.exceptions.ExceptionUnmatchedClosingParentheses;
-import fr.orsay.lri.varna.interfaces.InterfaceVARNAListener;
 import fr.orsay.lri.varna.interfaces.InterfaceVARNASelectionListener;
 import fr.orsay.lri.varna.models.BaseList;
-import fr.orsay.lri.varna.models.VARNAConfig;
+import fr.orsay.lri.varna.models.FullBackup;
 import fr.orsay.lri.varna.models.annotations.HighlightRegionAnnotation;
 import fr.orsay.lri.varna.models.rna.ModeleBase;
 import fr.orsay.lri.varna.models.rna.RNA;
 
-import jalview.bin.Cache;
-import jalview.datamodel.ColumnSelection;
-import jalview.datamodel.SequenceGroup;
-import jalview.datamodel.SequenceI;
-import jalview.structure.SecondaryStructureListener;
-import jalview.structure.SelectionListener;
-import jalview.structure.SelectionSource;
-import jalview.structure.StructureSelectionManager;
-import jalview.structure.VamsasSource;
-import jalview.util.MessageManager;
-import jalview.util.ShiftList;
-
-public class AppVarna extends JInternalFrame implements
-        InterfaceVARNAListener, SelectionListener,
-        SecondaryStructureListener// implements
-                                  // Runnable,SequenceStructureBinding,
-                                  // ViewSetProvider
-        , InterfaceVARNASelectionListener, VamsasSource
-
+public class AppVarna extends JInternalFrame implements SelectionListener,
+        SecondaryStructureListener, InterfaceVARNASelectionListener,
+        VamsasSource
 {
-  AppVarnaBinding vab;
+  private static final byte[] PAIRS = new byte[]
+  { '(', ')', '[', ']', '{', '}', '<', '>' };
 
-  VARNAPanel varnaPanel;
+  private AppVarnaBinding vab;
 
-  public String name;
+  private AlignmentPanel ap;
 
-  public StructureSelectionManager ssm;
+  private String viewId;
+
+  private StructureSelectionManager ssm;
 
   /*
-   * public AppVarna(){ vab = new AppVarnaBinding(); initVarna(); }
+   * Lookup for sequence and annotation mapped to each RNA in the viewer. Using
+   * a linked hashmap means that order is preserved when saved to the project.
    */
+  private Map<RNA, RnaModel> models = new LinkedHashMap<RNA, RnaModel>();
+
+  private Map<RNA, ShiftList> offsets = new Hashtable<RNA, ShiftList>();
 
-  AlignmentPanel ap;
+  private Map<RNA, ShiftList> offsetsInv = new Hashtable<RNA, ShiftList>();
 
-  public AppVarna(String sname, SequenceI seq, String strucseq,
-          String struc, String name, AlignmentPanel ap)
+  private JSplitPane split;
+
+  private VarnaHighlighter mouseOverHighlighter = new VarnaHighlighter();
+
+  private VarnaHighlighter selectionHighlighter = new VarnaHighlighter();
+
+  private class VarnaHighlighter
   {
+    private HighlightRegionAnnotation _lastHighlight;
 
-    // System.out.println("1:"+sname);
-    // System.out.println("2:"+seq);
-    // System.out.println("3:"+strucseq);
-    // System.out.println("4:"+struc);
-    // System.out.println("5:"+name);
-    // System.out.println("6:"+ap);
-    this.ap = ap;
-    ArrayList<RNA> rnaList = new ArrayList<RNA>();
-    RNA rna1 = new RNA(name);
-    try
+    private RNA _lastRNAhighlighted = null;
+
+    public VarnaHighlighter()
     {
 
-      rna1.setRNA(strucseq, replaceOddGaps(struc));
-      // System.out.println("The sequence is :"+rna1.getSeq());
-      // System.out.println("The sequence is:"+struc);
-      // System.out.println("The sequence is:"+replaceOddGaps(struc).toString());
-    } catch (ExceptionUnmatchedClosingParentheses e2)
+    }
+
+    /**
+     * Constructor when restoring from Varna session, including any highlight
+     * state
+     * 
+     * @param rna
+     */
+    public VarnaHighlighter(RNA rna)
     {
-      e2.printStackTrace();
-    } catch (ExceptionFileFormatOrSyntax e3)
+      // TODO nice try but doesn't work; do we need a highlighter per model?
+      _lastRNAhighlighted = rna;
+      List<HighlightRegionAnnotation> highlights = rna.getHighlightRegion();
+      if (highlights != null && !highlights.isEmpty())
+      {
+        _lastHighlight = highlights.get(0);
+      }
+    }
+
+    public void highlightRegion(RNA rna, int start, int end)
     {
-      e3.printStackTrace();
+      clearLastSelection();
+      HighlightRegionAnnotation highlight = new HighlightRegionAnnotation(
+              rna.getBasesBetween(start, end));
+      rna.addHighlightRegion(highlight);
+      _lastHighlight = highlight;
+      _lastRNAhighlighted = rna;
     }
-    RNA trim = trimRNA(rna1, "trimmed " + sname);
-    rnaList.add(trim);
-    rnaList.add(rna1);
 
-    rnas.put(seq, rna1);
-    rnas.put(seq, trim);
-    rna1.setName(sname + " (with gaps)");
+    public HighlightRegionAnnotation getLastHighlight()
+    {
+      return _lastHighlight;
+    }
 
+    /**
+     * Clears all structure selection and refreshes the display
+     */
+    public void clearSelection()
     {
-      seqs.put(trim, seq);
-      seqs.put(rna1, seq);
+      if (_lastRNAhighlighted != null)
+      {
+        _lastRNAhighlighted.getHighlightRegion().clear();
+        vab.updateSelectedRNA(_lastRNAhighlighted);
+        _lastRNAhighlighted = null;
+        _lastHighlight = null;
+      }
+    }
 
-      /**
-       * if (false || seq.getStart()!=1) { for (RNA rshift:rnaList) { ShiftList
-       * shift=offsets.get(rshift); if (shift==null) { offsets.put(rshift,
-       * shift=new ShiftList());} shift.addShift(1, seq.getStart()-1);
-       * offsetsInv.put(rshift, shift.getInverse()); } }
-       **/
+    /**
+     * Clear the last structure selection
+     */
+    public void clearLastSelection()
+    {
+      if (_lastRNAhighlighted != null)
+      {
+        _lastRNAhighlighted.removeHighlightRegion(_lastHighlight);
+        _lastRNAhighlighted = null;
+        _lastHighlight = null;
+      }
     }
-    vab = new AppVarnaBinding(rnaList);
-    // vab = new AppVarnaBinding(seq,struc);
-    this.name = sname + " trimmed to " + name;
+  }
+
+  /**
+   * Constructor
+   * 
+   * @param seq
+   *          the RNA sequence
+   * @param aa
+   *          the annotation with the secondary structure string
+   * @param ap
+   *          the AlignmentPanel creating this object
+   */
+  public AppVarna(SequenceI seq, AlignmentAnnotation aa, AlignmentPanel ap)
+  {
+    this(ap);
+
+    String sname = aa.sequenceRef == null ? "secondary structure (alignment)"
+            : seq.getName() + " structure";
+    String theTitle = sname
+            + (aa.sequenceRef == null ? " trimmed to " + seq.getName() : "");
+    theTitle = MessageManager.formatMessage("label.varna_params",
+            new String[]
+            { theTitle });
+    setTitle(theTitle);
+
+    String gappedTitle = sname + " (with gaps)";
+    RnaModel gappedModel = new RnaModel(gappedTitle, aa, seq, null, true);
+    addModel(gappedModel, gappedTitle);
+
+    String trimmedTitle = "trimmed " + sname;
+    RnaModel trimmedModel = new RnaModel(trimmedTitle, aa, seq, null, false);
+    addModel(trimmedModel, trimmedTitle);
+    vab.setSelectedIndex(0);
+  }
+
+
+  /**
+   * Constructor that links the viewer to a parent panel (but has no structures
+   * yet - use addModel to add them)
+   * 
+   * @param ap
+   */
+  protected AppVarna(AlignmentPanel ap)
+  {
+    this.ap = ap;
+    this.viewId = System.currentTimeMillis() + "." + this.hashCode();
+    vab = new AppVarnaBinding();
     initVarna();
 
-    ssm = ap.getStructureSelectionManager();
-    // System.out.println(ssm.toString());
+    this.ssm = ap.getStructureSelectionManager();
     ssm.addStructureViewerListener(this);
     ssm.addSelectionListener(this);
     addInternalFrameListener(new InternalFrameAdapter()
@@ -141,40 +220,52 @@ public class AppVarna extends JInternalFrame implements
         close();
       }
     });
+  }
 
+  /**
+   * Constructor given viewer data read from a saved project file
+   * 
+   * @param model
+   * @param ap
+   *          the (or a) parent alignment panel
+   */
+  public AppVarna(RnaViewerModel model, AlignmentPanel ap)
+  {
+    this(ap);
+    setTitle(model.title);
+    this.viewId = model.viewId;
+    setBounds(model.x, model.y, model.width, model.height);
+    this.split.setDividerLocation(model.dividerLocation);
   }
 
+  /**
+   * Constructs a split pane with an empty selection list and display panel, and
+   * adds it to the desktop
+   */
   public void initVarna()
   {
-
-    // vab.setFinishedInit(false);
-    varnaPanel = vab.get_varnaPanel();
+    VARNAPanel varnaPanel = vab.get_varnaPanel();
     setBackground(Color.white);
-    JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true,
+    split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true,
             vab.getListPanel(), varnaPanel);
     getContentPane().setLayout(new BorderLayout());
     getContentPane().add(split, BorderLayout.CENTER);
-    // getContentPane().add(vab.getTools(), BorderLayout.NORTH);
-    varnaPanel.addVARNAListener(this);
+
     varnaPanel.addSelectionListener(this);
-    jalview.gui.Desktop.addInternalFrame(this,
-            MessageManager.formatMessage("label.varna_params", new String[]
-            { name }), getBounds().width, getBounds().height);
+    jalview.gui.Desktop.addInternalFrame(this, "", getBounds().width,
+            getBounds().height);
     this.pack();
     showPanel(true);
-
-  }
-
-  public String replaceOddGaps(String oldStr)
-  {
-    String patternStr = "[^([{<>}])]";
-    String replacementStr = ".";
-    Pattern pattern = Pattern.compile(patternStr);
-    Matcher matcher = pattern.matcher(oldStr);
-    String newStr = matcher.replaceAll(replacementStr);
-    return newStr;
   }
 
+  /**
+   * Constructs a new RNA model from the given one, without gaps. Also
+   * calculates and saves a 'shift list'
+   * 
+   * @param rna
+   * @param name
+   * @return
+   */
   public RNA trimRNA(RNA rna, String name)
   {
     ShiftList offset = new ShiftList();
@@ -182,7 +273,8 @@ public class AppVarna extends JInternalFrame implements
     RNA rnaTrim = new RNA(name);
     try
     {
-      rnaTrim.setRNA(rna.getSeq(), replaceOddGaps(rna.getStructDBN()));
+      String structDBN = rna.getStructDBN(true);
+      rnaTrim.setRNA(rna.getSeq(), replaceOddGaps(structDBN));
     } catch (ExceptionUnmatchedClosingParentheses e2)
     {
       e2.printStackTrace();
@@ -191,19 +283,23 @@ public class AppVarna extends JInternalFrame implements
       e3.printStackTrace();
     }
 
-    StringBuffer seq = new StringBuffer(rnaTrim.getSeq());
-    StringBuffer struc = new StringBuffer(rnaTrim.getStructDBN());
-    int ofstart = -1, sleng = rnaTrim.getSeq().length();
+    String seq = rnaTrim.getSeq();
+    StringBuilder struc = new StringBuilder(256);
+    struc.append(rnaTrim.getStructDBN(true));
+    int ofstart = -1;
+    int sleng = seq.length();
+
     for (int i = 0; i < sleng; i++)
     {
-      // TODO: Jalview utility for gap detection java.utils.isGap()
-      // TODO: Switch to jalview rna datamodel
-      if (jalview.util.Comparison.isGap(seq.charAt(i)))
+      if (Comparison.isGap(seq.charAt(i)))
       {
         if (ofstart == -1)
         {
           ofstart = i;
         }
+        /*
+         * mark base or base & pair in the structure with *
+         */
         if (!rnaTrim.findPair(i).isEmpty())
         {
           int m = rnaTrim.findPair(i).get(1);
@@ -232,35 +328,37 @@ public class AppVarna extends JInternalFrame implements
       offset.addShift(offset.shift(ofstart), ofstart - sleng);
       ofstart = -1;
     }
-    String newSeq = rnaTrim.getSeq().replace("-", "");
-    rnaTrim.getSeq().replace(".", "");
+
+    /*
+     * remove the marked gaps from the structure
+     */
     String newStruc = struc.toString().replace("*", "");
 
+    /*
+     * remove gaps from the sequence
+     */
+    String newSeq = AlignSeq.extractGaps(Comparison.GapChars, seq);
+
     try
     {
       rnaTrim.setRNA(newSeq, newStruc);
       registerOffset(rnaTrim, offset);
     } catch (ExceptionUnmatchedClosingParentheses e)
     {
-      // TODO Auto-generated catch block
       e.printStackTrace();
     } catch (ExceptionFileFormatOrSyntax e)
     {
-      // TODO Auto-generated catch block
       e.printStackTrace();
     }
     return rnaTrim;
   }
 
-  // needs to be many-many
-  Map<RNA, SequenceI> seqs = new Hashtable<RNA, SequenceI>();
-
-  Map<SequenceI, RNA> rnas = new Hashtable<SequenceI, RNA>();
-
-  Map<RNA, ShiftList> offsets = new Hashtable<RNA, ShiftList>();
-
-  Map<RNA, ShiftList> offsetsInv = new Hashtable<RNA, ShiftList>();
-
+  /**
+   * Save the sequence to structure mapping, and also its inverse.
+   * 
+   * @param rnaTrim
+   * @param offset
+   */
   private void registerOffset(RNA rnaTrim, ShiftList offset)
   {
     offsets.put(rnaTrim, offset);
@@ -272,115 +370,37 @@ public class AppVarna extends JInternalFrame implements
     this.setVisible(show);
   }
 
-  private boolean _started = false;
-
-  public void run()
-  {
-    _started = true;
-
-    try
-    {
-      initVarna();
-    } catch (OutOfMemoryError oomerror)
-    {
-      new OOMWarning("When trying to open the Varna viewer!", oomerror);
-    } catch (Exception ex)
-    {
-      Cache.log.error("Couldn't open Varna viewer!", ex);
-    }
-  }
-
-  @Override
-  public void onUINewStructure(VARNAConfig v, RNA r)
-  {
-
-  }
-
-  @Override
-  public void onWarningEmitted(String s)
-  {
-    // TODO Auto-generated method stub
-
-  }
-
-  private class VarnaHighlighter
-  {
-    private HighlightRegionAnnotation _lastHighlight;
-
-    private RNA _lastRNAhighlighted = null;
-
-    public void highlightRegion(RNA rna, int start, int end)
-    {
-      clearSelection(null);
-      HighlightRegionAnnotation highlight = new HighlightRegionAnnotation(
-              rna.getBasesBetween(start, end));
-      rna.addHighlightRegion(highlight);
-      _lastHighlight = highlight;
-      _lastRNAhighlighted = rna;
-
-    }
-
-    public HighlightRegionAnnotation getLastHighlight()
-    {
-      return _lastHighlight;
-    }
-
-    public RNA getLastRNA()
-    {
-      return _lastRNAhighlighted;
-    }
-
-    public void clearSelection(AppVarnaBinding vab)
-    {
-      if (_lastRNAhighlighted != null)
-      {
-        _lastRNAhighlighted.removeHighlightRegion(_lastHighlight);
-        if (vab != null)
-        {
-          vab.updateSelectedRNA(_lastRNAhighlighted);
-        }
-        _lastRNAhighlighted = null;
-        _lastHighlight = null;
-
-      }
-    }
-  }
-
-  VarnaHighlighter mouseOverHighlighter = new VarnaHighlighter(),
-          selectionHighlighter = new VarnaHighlighter();
-
   /**
    * If a mouseOver event from the AlignmentPanel is noticed the currently
    * selected RNA in the VARNA window is highlighted at the specific position.
    * To be able to remove it before the next highlight it is saved in
    * _lastHighlight
+   * 
+   * @param sequence
+   * @param index
+   *          the aligned sequence position (base 0)
+   * @param position
+   *          the dataset sequence position (base 1)
    */
   @Override
-  public void mouseOverSequence(SequenceI sequence, int index)
+  public void mouseOverSequence(SequenceI sequence, final int index,
+          final int position)
   {
     RNA rna = vab.getSelectedRNA();
-    if (seqs.get(rna) == sequence)
+    if (rna == null)
     {
-      ShiftList shift = offsets.get(rna);
-      if (shift != null)
-      {
-        // System.err.print("Orig pos:"+index);
-        index = shift.shift(index);
-        // System.err.println("\nFinal pos:"+index);
-      }
-      mouseOverHighlighter.highlightRegion(rna, index, index);
+      return;
+    }
+    RnaModel rnaModel = models.get(rna);
+    if (rnaModel.seq == sequence)
+    {
+      int highlightPos = rnaModel.gapped ? index : position - 1;
+      mouseOverHighlighter.highlightRegion(rna, highlightPos, highlightPos);
       vab.updateSelectedRNA(rna);
     }
   }
 
   @Override
-  public void onStructureRedrawn()
-  {
-    // TODO Auto-generated method stub
-
-  }
-
-  @Override
   public void selection(SequenceGroup seqsel, ColumnSelection colsel,
           SelectionSource source)
   {
@@ -390,10 +410,14 @@ public class AppVarna extends JInternalFrame implements
       // TODO - reuse many-one panel-view system in jmol viewer
       return;
     }
+    RNA rna = vab.getSelectedRNA();
+    if (rna == null)
+    {
+      return;
+    }
     if (seqsel != null && seqsel.getSize() > 0)
     {
       int start = seqsel.getStartRes(), end = seqsel.getEndRes();
-      RNA rna = vab.getSelectedRNA();
       ShiftList shift = offsets.get(rna);
       if (shift != null)
       {
@@ -408,27 +432,30 @@ public class AppVarna extends JInternalFrame implements
     }
     else
     {
-      selectionHighlighter.clearSelection(vab);
+      selectionHighlighter.clearSelection();
     }
   }
 
+  /**
+   * Respond to a change of the base hovered over in the Varna viewer
+   */
   @Override
-  public void onHoverChanged(ModeleBase arg0, ModeleBase arg1)
+  public void onHoverChanged(ModeleBase previousBase, ModeleBase newBase)
   {
     RNA rna = vab.getSelectedRNA();
     ShiftList shift = offsetsInv.get(rna);
-    SequenceI seq = seqs.get(rna);
-    if (arg1 != null && seq != null)
+    SequenceI seq = models.get(rna).seq;
+    if (newBase != null && seq != null)
     {
       if (shift != null)
       {
-        int i = shift.shift(arg1.getIndex());
+        int i = shift.shift(newBase.getIndex());
         // System.err.println("shifted "+(arg1.getIndex())+" to "+i);
         ssm.mouseOverVamsasSequence(seq, i, this);
       }
       else
       {
-        ssm.mouseOverVamsasSequence(seq, arg1.getIndex(), this);
+        ssm.mouseOverVamsasSequence(seq, newBase.getIndex(), this);
       }
     }
   }
@@ -441,18 +468,56 @@ public class AppVarna extends JInternalFrame implements
 
   }
 
-  @Override
-  public void onTranslationChanged()
+  /**
+   * Returns the path to a temporary file containing a representation of the
+   * state of one Varna display
+   * 
+   * @param rna
+   * 
+   * @return
+   */
+  public String getStateInfo(RNA rna)
   {
-    // TODO Auto-generated method stub
+    return vab.getStateInfo(rna);
+  }
 
+  public AlignmentPanel getAlignmentPanel()
+  {
+    return ap;
   }
 
-  @Override
-  public void onZoomLevelChanged()
+  public String getViewId()
+  {
+    return viewId;
+  }
+
+  /**
+   * Returns true if any of the viewer's models (not necessarily the one
+   * currently displayed) is for the given sequence
+   * 
+   * @param seq
+   * @return
+   */
+  public boolean isListeningFor(SequenceI seq)
   {
-    // TODO Auto-generated method stub
+    for (RnaModel model : models.values())
+    {
+      if (model.seq == seq)
+      {
+        return true;
+      }
+    }
+    return false;
+  }
 
+  /**
+   * Returns a value representing the horizontal split divider location
+   * 
+   * @return
+   */
+  public int getDividerLocation()
+  {
+    return split == null ? 0 : split.getDividerLocation();
   }
 
   /**
@@ -461,7 +526,7 @@ public class AppVarna extends JInternalFrame implements
   protected void close()
   {
     /*
-     * Deregister as a listener, to free references to this object
+     * Deregister as a listener, to release references to this object
      */
     if (ssm != null)
     {
@@ -470,4 +535,222 @@ public class AppVarna extends JInternalFrame implements
     }
   }
 
+  /**
+   * Returns the secondary structure annotation that this viewer displays for
+   * the given sequence
+   * 
+   * @return
+   */
+  public AlignmentAnnotation getAnnotation(SequenceI seq)
+  {
+    for (RnaModel model : models.values())
+    {
+      if (model.seq == seq)
+      {
+        return model.ann;
+      }
+    }
+    return null;
+  }
+
+  public int getSelectedIndex()
+  {
+    return this.vab.getSelectedIndex();
+  }
+
+  /**
+   * Returns the set of models shown by the viewer
+   * 
+   * @return
+   */
+  public Collection<RnaModel> getModels()
+  {
+    return models.values();
+  }
+
+  /**
+   * Add a model (e.g. loaded from project file)
+   * 
+   * @param rna
+   * @param modelName
+   */
+  public RNA addModel(RnaModel model, String modelName)
+  {
+    if (!model.ann.isValidStruc())
+    {
+      throw new IllegalArgumentException("Invalid RNA structure annotation");
+    }
+
+    /*
+     * opened on request in Jalview session
+     */
+    RNA rna = new RNA(modelName);
+    String struc = model.ann.getRNAStruc();
+    struc = replaceOddGaps(struc);
+
+    String strucseq = model.seq.getSequenceAsString();
+    try
+    {
+      rna.setRNA(strucseq, struc);
+    } catch (ExceptionUnmatchedClosingParentheses e2)
+    {
+      e2.printStackTrace();
+    } catch (ExceptionFileFormatOrSyntax e3)
+    {
+      e3.printStackTrace();
+    }
+
+    if (!model.gapped)
+    {
+      rna = trimRNA(rna, modelName);
+    }
+    models.put(rna, new RnaModel(modelName, model.ann, model.seq, rna,
+            model.gapped));
+    vab.addStructure(rna);
+    return rna;
+  }
+
+  /**
+   * Constructs a shift list that describes the gaps in the sequence
+   * 
+   * @param seq
+   * @return
+   */
+  protected ShiftList buildOffset(SequenceI seq)
+  {
+    // TODO refactor to avoid duplication with trimRNA()
+    // TODO JAL-1789 bugs in use of ShiftList here
+    ShiftList offset = new ShiftList();
+    int ofstart = -1;
+    int sleng = seq.getLength();
+    char[] seqChars = seq.getSequence();
+
+    for (int i = 0; i < sleng; i++)
+    {
+      if (Comparison.isGap(seqChars[i]))
+      {
+        if (ofstart == -1)
+        {
+          ofstart = i;
+        }
+      }
+      else
+      {
+        if (ofstart > -1)
+        {
+          offset.addShift(offset.shift(ofstart), ofstart - i);
+          ofstart = -1;
+        }
+      }
+    }
+    // final gap
+    if (ofstart > -1)
+    {
+      offset.addShift(offset.shift(ofstart), ofstart - sleng);
+      ofstart = -1;
+    }
+    return offset;
+  }
+
+  /**
+   * Set the selected index in the model selection list
+   * 
+   * @param selectedIndex
+   */
+  public void setInitialSelection(final int selectedIndex)
+  {
+    /*
+     * empirically it needs a second for Varna/AWT to finish loading/drawing
+     * models for this to work; SwingUtilities.invokeLater _not_ a solution;
+     * explanation and/or better solution welcome!
+     */
+    synchronized (this)
+    {
+      try
+      {
+        wait(1000);
+      } catch (InterruptedException e)
+      {
+        // meh
+      }
+    }
+    vab.setSelectedIndex(selectedIndex);
+  }
+
+
+  /**
+   * Add a model with associated Varna session file
+   * 
+   * @param rna
+   * @param modelName
+   */
+  public RNA addModelSession(RnaModel model, String modelName,
+          String sessionFile)
+  {
+    if (!model.ann.isValidStruc())
+    {
+      throw new IllegalArgumentException("Invalid RNA structure annotation");
+    }
+
+    try
+    {
+      FullBackup fromSession = vab.vp.loadSession(sessionFile);
+      vab.addStructure(fromSession.rna, fromSession.config);
+      RNA rna = fromSession.rna;
+      // copy the model, but now including the RNA object
+      RnaModel newModel = new RnaModel(model.title, model.ann, model.seq,
+              rna, model.gapped);
+      if (!model.gapped)
+      {
+        registerOffset(rna, buildOffset(model.seq));
+      }
+      models.put(rna, newModel);
+      // capture rna selection state when saved
+      selectionHighlighter = new VarnaHighlighter(rna);
+      return fromSession.rna;
+    } catch (ExceptionLoadingFailed e)
+    {
+      System.err
+              .println("Error restoring Varna session: " + e.getMessage());
+      return null;
+    }
+  }
+
+
+  /**
+   * Replace everything except RNA secondary structure characters with a period
+   * 
+   * @param s
+   * @return
+   */
+  public static String replaceOddGaps(String s)
+  {
+    if (s == null)
+    {
+      return null;
+    }
+
+    // this is measured to be 10 times faster than a regex replace
+    boolean changed = false;
+    byte[] bytes = s.getBytes();
+    for (int i = 0; i < bytes.length; i++)
+    {
+      boolean ok = false;
+      // todo check for ((b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z')) if
+      // wanted also
+      for (int j = 0; !ok && (j < PAIRS.length); j++)
+      {
+        if (bytes[i] == PAIRS[j])
+        {
+          ok = true;
+        }
+      }
+      if (!ok)
+      {
+        bytes[i] = '.';
+        changed = true;
+      }
+    }
+    return changed ? new String(bytes) : s;
+  }
 }
index 38385f0..25af7d1 100644 (file)
  */
 package jalview.gui;
 
+import jalview.datamodel.SequenceI;
+import jalview.ext.varna.JalviewVarnaBinding;
+import jalview.structure.AtomSpec;
+import jalview.util.MessageManager;
+
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.Component;
 import java.awt.Dimension;
-import java.awt.Font;
-import java.awt.GridLayout;
 import java.awt.datatransfer.DataFlavor;
 import java.awt.datatransfer.Transferable;
 import java.awt.dnd.DnDConstants;
 import java.awt.dnd.DropTarget;
-import java.awt.dnd.DropTargetDragEvent;
+import java.awt.dnd.DropTargetAdapter;
 import java.awt.dnd.DropTargetDropEvent;
-import java.awt.dnd.DropTargetEvent;
-import java.awt.dnd.DropTargetListener;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
 import java.awt.event.ComponentEvent;
+import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
 import java.io.File;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
 import javax.swing.DefaultListModel;
 import javax.swing.DefaultListSelectionModel;
-import javax.swing.JButton;
 import javax.swing.JLabel;
 import javax.swing.JList;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
-import javax.swing.JTextField;
 import javax.swing.ListModel;
 import javax.swing.ListSelectionModel;
 import javax.swing.event.ListSelectionEvent;
@@ -59,70 +57,17 @@ import javax.swing.event.ListSelectionListener;
 
 import fr.orsay.lri.varna.VARNAPanel;
 import fr.orsay.lri.varna.components.ReorderableJList;
-import fr.orsay.lri.varna.exceptions.ExceptionFileFormatOrSyntax;
 import fr.orsay.lri.varna.exceptions.ExceptionLoadingFailed;
+import fr.orsay.lri.varna.exceptions.ExceptionNAViewAlgorithm;
 import fr.orsay.lri.varna.exceptions.ExceptionNonEqualLength;
-import fr.orsay.lri.varna.exceptions.ExceptionUnmatchedClosingParentheses;
-import fr.orsay.lri.varna.interfaces.InterfaceVARNAListener;
 import fr.orsay.lri.varna.models.FullBackup;
 import fr.orsay.lri.varna.models.VARNAConfig;
-import fr.orsay.lri.varna.models.rna.Mapping;
 import fr.orsay.lri.varna.models.rna.RNA;
 
-import jalview.datamodel.SequenceI;
-import jalview.structure.AtomSpec;
-import jalview.util.MessageManager;
-
-public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding
-        implements DropTargetListener, InterfaceVARNAListener,
-        MouseListener
+public class AppVarnaBinding extends JalviewVarnaBinding
 {
-
-  /**
-        * 
-        */
-  // private static final long serialVersionUID = -790155708306987257L;
-
-  private String DEFAULT_SEQUENCE = "CAGCACGACACUAGCAGUCAGUGUCAGACUGCAIACAGCACGACACUAGCAGUCAGUGUCAGACUGCAIACAGCACGACACUAGCAGUCAGUGUCAGACUGCAIA";
-
-  private String DEFAULT_STRUCTURE1 = "..(((((...(((((...(((((...(((((.....)))))...))))).....(((((...(((((.....)))))...))))).....)))))...)))))..";
-
-  private String DEFAULT_STRUCTURE2 = "..(((((...(((((...(((((........(((((...(((((.....)))))...)))))..................))))).....)))))...)))))..";
-
   public VARNAPanel vp;
 
-  protected JPanel _tools = new JPanel();
-
-  private JPanel _input = new JPanel();
-
-  private JPanel _seqPanel = new JPanel();
-
-  private JPanel _strPanel = new JPanel();
-
-  private JLabel _info = new JLabel();
-
-  private JTextField _str = new JTextField();
-
-  private JTextField _seq = new JTextField();
-
-  private JLabel _strLabel = new JLabel(
-          MessageManager.getString("label.str"));
-
-  private JLabel _seqLabel = new JLabel(
-          MessageManager.getString("label.seq"));
-
-  private JButton _createButton = new JButton(
-          MessageManager.getString("action.create"));
-
-  private JButton _updateButton = new JButton(
-          MessageManager.getString("action.update"));
-
-  private JButton _deleteButton = new JButton(
-          MessageManager.getString("action.delete"));
-
-  private JButton _duplicateButton = new JButton(
-          MessageManager.getString("action.snapshot"));
-
   protected JPanel _listPanel = new JPanel();
 
   private ReorderableJList _sideList = null;
@@ -141,32 +86,23 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding
 
   private BackupHolder _rnaList;
 
-  /*
-   * public AppVarnaBinding() { //super("VARNA in Jalview");
-   * //this.set_seq("ATGC"); //this.set_str(".()."); //RNAPanelDemoInit();
-   * 
-   * //initVarna("ATGCATGATATATATATAT","....((((...))))....");
-   * initVarna(this.DEFAULT_SEQUENCE,this.DEFAULT_STRUCTURE1); }
+  /**
+   * Constructor
    */
-
-  public AppVarnaBinding(String seq, String struc)
-  {
-    // super("VARNA in Jalview");
-    initVarna(seq, struc);
-
-  }
-
-  public AppVarnaBinding(ArrayList<RNA> rnaList)
+  public AppVarnaBinding()
   {
-
-    // super("VARNA in Jalview");
-    initVarnaEdit(rnaList);
+    init();
   }
 
-  private void initVarna(String seq, String str)
+  /**
+   * Constructs the VARNAPanel and an (empty) selection list of structures to
+   * show in it
+   */
+  private void init()
   {
+    DefaultListModel<FullBackup> dlm = new DefaultListModel<FullBackup>();
 
-    DefaultListModel dlm = new DefaultListModel();
+    int marginTools = 40;
 
     DefaultListSelectionModel m = new DefaultListSelectionModel();
     m.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
@@ -174,212 +110,53 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding
 
     _sideList = new ReorderableJList();
     _sideList.setModel(dlm);
-    _sideList.addMouseListener(this);
-    _sideList.setSelectionModel(m);
-    _sideList.setPreferredSize(new Dimension(100, 0));
-    _sideList.addListSelectionListener(new ListSelectionListener()
+    _sideList.addMouseListener(new MouseAdapter()
     {
-      public void valueChanged(ListSelectionEvent arg0)
-      {
-        if (!_sideList.isSelectionEmpty() && !arg0.getValueIsAdjusting())
-        {
-          FullBackup sel = (FullBackup) _sideList.getSelectedValue();
-          Mapping map = Mapping.DefaultOutermostMapping(vp.getRNA()
-                  .getSize(), sel.rna.getSize());
-          vp.showRNAInterpolated(sel.rna, sel.config, map);
-          _seq.setText(sel.rna.getSeq());
-          _str.setText(sel.rna.getStructDBN());
-        }
+      @Override
+      public void mouseClicked(MouseEvent e) {
+        AppVarnaBinding.this.mouseClicked(e);
       }
     });
-
-    _rnaList = new BackupHolder(dlm, _sideList);
-    RNA _RNA1 = new RNA("User defined 1");
-
-    try
-    {
-
-      vp = new VARNAPanel("0", ".");
-      _RNA1.setRNA(seq, str);
-      _RNA1.drawRNARadiate(vp.getConfig());
-    } catch (ExceptionNonEqualLength e)
-    {
-      vp.errorDialog(e);
-    } catch (ExceptionUnmatchedClosingParentheses e2)
-    {
-      e2.printStackTrace();
-    } catch (ExceptionFileFormatOrSyntax e3)
-    {
-      e3.printStackTrace();
-    }
-    vp.setPreferredSize(new Dimension(400, 400));
-    _rnaList.add(vp.getConfig().clone(), _RNA1, generateDefaultName(), true);
-
-    // TODO setBackground(_backgroundColor);
-    vp.setBackground(_backgroundColor);
-
-    // TODO getContentPane().setLayout(new BorderLayout());
-    // TODO getContentPane().add(vp, BorderLayout.CENTER);
-
-    // setVisible(true);
-    vp.addVARNAListener(this);
-  }
-
-  private void initVarnaEdit(ArrayList<RNA> rnaInList)
-  {
-
-    DefaultListModel dlm = new DefaultListModel();
-
-    int marginTools = 40;
-
-    DefaultListSelectionModel m = new DefaultListSelectionModel();
-    m.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
-    m.setLeadAnchorNotificationEnabled(false);
-
-    _sideList = new ReorderableJList();
-    _sideList.setModel(dlm);
-    _sideList.addMouseListener(this);
     _sideList.setSelectionModel(m);
     _sideList.setPreferredSize(new Dimension(100, 0));
     _sideList.addListSelectionListener(new ListSelectionListener()
     {
-      public void valueChanged(ListSelectionEvent arg0)
+      public void valueChanged(ListSelectionEvent evt)
       {
-        // System.out.println(arg0);
-        if (!_sideList.isSelectionEmpty() && !arg0.getValueIsAdjusting())
-        {
-          FullBackup sel = (FullBackup) _sideList.getSelectedValue();
-          Mapping map = Mapping.DefaultOutermostMapping(vp.getRNA()
-                  .getSize(), sel.rna.getSize());
-          // vp.showRNAInterpolated(sel.rna, sel.config, map);
-          vp.showRNA(sel.rna, sel.config);
-          // _seq.setText(sel.rna.getSeq());
-          _str.setText(sel.rna.getStructDBN());
-        }
+        changeSelectedStructure_actionPerformed(evt);
       }
     });
     _rnaList = new BackupHolder(dlm, _sideList);
 
     try
     {
-
       vp = new VARNAPanel("0", ".");
-      for (int i = 0; i < rnaInList.size(); i++)
-      {
-        rnaInList.get(i).drawRNARadiate(vp.getConfig());
-
-      }
     } catch (ExceptionNonEqualLength e)
     {
       vp.errorDialog(e);
     }
     vp.setPreferredSize(new Dimension(400, 400));
-    for (int i = 0; i < rnaInList.size(); i++)
-    {
-      if (i < rnaInList.size() - 1)
-      {
-        _rnaList.add(vp.getConfig().clone(), rnaInList.get(i), rnaInList
-                .get(i).getName());
-      }
-      else
-      {
-        _rnaList.add(vp.getConfig().clone(), rnaInList.get(i), rnaInList
-                .get(i).getName(), true);
-      }
-    }
-
-    /*
-     * _rnaList.add(vp.getConfig().clone(),_RNA2,generateDefaultName());
-     * _rnaList.add(vp.getConfig().clone(),_RNA1,generateDefaultName(),true);
-     */
 
     JScrollPane listScroller = new JScrollPane(_sideList);
     listScroller.setPreferredSize(new Dimension(150, 0));
 
     vp.setBackground(_backgroundColor);
 
-    Font textFieldsFont = Font.decode("MonoSpaced-PLAIN-12");
-
-    // _seqLabel.setHorizontalTextPosition(JLabel.LEFT);
-    // _seqLabel.setPreferredSize(new Dimension(marginTools, 15));
-    _seq.setFont(textFieldsFont);
-    _seq.setText(rnaInList.get(0).getSeq());
-
-    _updateButton.addActionListener(new ActionListener()
-    {
-      public void actionPerformed(ActionEvent e)
-      {
-        FullBackup sel = (FullBackup) _sideList.getSelectedValue();
-        sel.rna.setSequence("A");
-      }
-    });
-
-    // _seqPanel.setLayout(new BorderLayout());
-    // _seqPanel.add(_seqLabel, BorderLayout.WEST);
-    // _seqPanel.add(_seq, BorderLayout.CENTER);
-
-    _strLabel.setPreferredSize(new Dimension(marginTools, 15));
-    _strLabel.setHorizontalTextPosition(JLabel.LEFT);
-    _str.setFont(textFieldsFont);
-    _strPanel.setLayout(new BorderLayout());
-    _strPanel.add(_strLabel, BorderLayout.WEST);
-    _strPanel.add(_str, BorderLayout.CENTER);
-
-    _input.setLayout(new GridLayout(1, 0));
-    // _input.add(_seqPanel);
-    _input.add(_strPanel);
-
-    JPanel goPanel = new JPanel();
-    goPanel.setLayout(new BorderLayout());
-
-    _tools.setLayout(new BorderLayout());
-    _tools.add(_input, BorderLayout.CENTER);
-    // _tools.add(_info, BorderLayout.SOUTH);
-    _tools.add(goPanel, BorderLayout.EAST);
-
-    /*
-     * _deleteButton.addActionListener(new ActionListener() { public void
-     * actionPerformed(ActionEvent e) { _rnaList.removeSelected(); } });
-     * _duplicateButton.addActionListener(new ActionListener() { public void
-     * actionPerformed(ActionEvent e) {
-     * _rnaList.add((VARNAConfig)vp.getConfig().
-     * clone(),vp.getRNA().clone(),vp.getRNA
-     * ().getName()+"-"+DateFormat.getTimeInstance(DateFormat.LONG).format(new
-     * Date()),true); }});
-     */
-    goPanel.add(_updateButton, BorderLayout.CENTER);
-
-    JPanel ops = new JPanel();
-    ops.setLayout(new GridLayout(1, 2));
-    ops.add(_deleteButton);
-    ops.add(_duplicateButton);
-
     JLabel j = new JLabel(
             MessageManager.getString("label.structures_manager"),
             JLabel.CENTER);
     _listPanel.setLayout(new BorderLayout());
 
-    // _listPanel.add(ops, BorderLayout.SOUTH);
     _listPanel.add(j, BorderLayout.NORTH);
     _listPanel.add(listScroller, BorderLayout.CENTER);
 
-    // JSplitPane split = new
-    // JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,_listPanel,vp);
-    /**
-     * TODO getContentPane().setLayout(new BorderLayout());
-     * getContentPane().add(split, BorderLayout.CENTER);
-     * getContentPane().add(_tools, BorderLayout.NORTH);
-     */
-
-    // TODO setVisible(true);
-    DropTarget dt = new DropTarget(vp, this);
-
-    vp.addVARNAListener(this);
-  }
-
-  public JPanel getTools()
-  {
-    return _tools;
+    new DropTarget(vp, new DropTargetAdapter() {
+      @Override
+      public void drop(DropTargetDropEvent dtde)
+      {
+        AppVarnaBinding.this.drop(dtde);
+      }
+    });
   }
 
   public JPanel getListPanel()
@@ -388,13 +165,19 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding
   }
 
   /**
-   * TODO: Is it effective to transfer the whole RNA?
+   * Returns the currently selected RNA, or null if none selected
    * 
-   * @return Currently selected RNA
+   * @return
    */
   public RNA getSelectedRNA()
   {
-    return _rnaList.getElementAt(_sideList.getSelectedIndex()).rna;
+    int selectedIndex = _sideList.getSelectedIndex();
+    if (selectedIndex < 0)
+    {
+      return null;
+    }
+    FullBackup selected = _rnaList.getElementAt(selectedIndex);
+    return selected.rna;
   }
 
   /**
@@ -408,123 +191,11 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding
     vp.showRNA(rnaEdit);
   }
 
-  /*
-   * private void RNAPanelDemoInit() { DefaultListModel dlm = new
-   * DefaultListModel();
-   * 
-   * 
-   * int marginTools = 40;
-   * 
-   * DefaultListSelectionModel m = new DefaultListSelectionModel();
-   * m.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
-   * m.setLeadAnchorNotificationEnabled(false);
-   * 
-   * 
-   * _sideList = new ReorderableJList(); _sideList.setModel(dlm);
-   * _sideList.addMouseListener(this); _sideList.setSelectionModel(m);
-   * _sideList.setPreferredSize(new Dimension(100, 0));
-   * _sideList.addListSelectionListener( new ListSelectionListener(){ public
-   * void valueChanged(ListSelectionEvent arg0) { //System.out.println(arg0); if
-   * (!_sideList.isSelectionEmpty() && !arg0.getValueIsAdjusting()) { FullBackup
-   * sel = (FullBackup) _sideList.getSelectedValue(); Mapping map =
-   * Mapping.DefaultOutermostMapping(vp.getRNA().getSize(), sel.rna.getSize());
-   * vp.showRNAInterpolated(sel.rna,sel.config,map);
-   * _seq.setText(sel.rna.getSeq()); _str.setText(sel.rna.getStructDBN()); } }
-   * });
-   * 
-   * _rnaList = new BackupHolder(dlm,_sideList); RNA _RNA1 = new
-   * RNA("User defined 1"); RNA _RNA2 = new RNA("User defined 2"); try { vp =
-   * new VARNAPanel("0","."); _RNA1.setRNA(DEFAULT_SEQUENCE,
-   * DEFAULT_STRUCTURE1); _RNA1.drawRNARadiate(vp.getConfig());
-   * _RNA2.setRNA(DEFAULT_SEQUENCE, DEFAULT_STRUCTURE2);
-   * _RNA2.drawRNARadiate(vp.getConfig()); } catch (ExceptionNonEqualLength e) {
-   * vp.errorDialog(e); } catch (ExceptionUnmatchedClosingParentheses e2) {
-   * e2.printStackTrace(); } catch (ExceptionFileFormatOrSyntax e3) {
-   * e3.printStackTrace(); } vp.setPreferredSize(new Dimension(400, 400));
-   * _rnaList.add(vp.getConfig().clone(),_RNA2,generateDefaultName());
-   * _rnaList.add(vp.getConfig().clone(),_RNA1,generateDefaultName(),true);
-   * 
-   * JScrollPane listScroller = new JScrollPane(_sideList);
-   * listScroller.setPreferredSize(new Dimension(150, 0));
-   * 
-   * setBackground(_backgroundColor); vp.setBackground(_backgroundColor);
-   * 
-   * 
-   * Font textFieldsFont = Font.decode("MonoSpaced-PLAIN-12");
-   * 
-   * _seqLabel.setHorizontalTextPosition(JLabel.LEFT);
-   * _seqLabel.setPreferredSize(new Dimension(marginTools, 15));
-   * _seq.setFont(textFieldsFont); _seq.setText(DEFAULT_SEQUENCE);
-   * 
-   * _createButton.addActionListener(new ActionListener() { public void
-   * actionPerformed(ActionEvent e) { try { RNA nRNA = new
-   * RNA(generateDefaultName()); nRNA.setRNA(_seq.getText(), _str.getText());
-   * nRNA.drawRNARadiate(vp.getConfig()); _rnaList.add(new
-   * VARNAConfig(),nRNA,true); } catch (ExceptionUnmatchedClosingParentheses e1)
-   * { JOptionPane.showMessageDialog(vp, e1.getMessage(),"Error",
-   * JOptionPane.ERROR_MESSAGE); } catch (ExceptionFileFormatOrSyntax e1) {
-   * JOptionPane.showMessageDialog(vp, e1.getMessage(),"Error",
-   * JOptionPane.ERROR_MESSAGE); } } });
-   * 
-   * 
-   * _seqPanel.setLayout(new BorderLayout()); _seqPanel.add(_seqLabel,
-   * BorderLayout.WEST); _seqPanel.add(_seq, BorderLayout.CENTER);
-   * 
-   * _strLabel.setPreferredSize(new Dimension(marginTools, 15));
-   * _strLabel.setHorizontalTextPosition(JLabel.LEFT);
-   * _str.setFont(textFieldsFont); _strPanel.setLayout(new BorderLayout());
-   * _strPanel.add(_strLabel, BorderLayout.WEST); _strPanel.add(_str,
-   * BorderLayout.CENTER);
-   * 
-   * _input.setLayout(new GridLayout(2, 0)); _input.add(_seqPanel);
-   * _input.add(_strPanel);
-   * 
-   * JPanel goPanel = new JPanel(); goPanel.setLayout(new BorderLayout());
-   * 
-   * _tools.setLayout(new BorderLayout()); _tools.add(_input,
-   * BorderLayout.CENTER); _tools.add(_info, BorderLayout.SOUTH);
-   * _tools.add(goPanel, BorderLayout.EAST);
-   * 
-   * _deleteButton.addActionListener(new ActionListener() { public void
-   * actionPerformed(ActionEvent e) { _rnaList.removeSelected(); } });
-   * _duplicateButton.addActionListener(new ActionListener() { public void
-   * actionPerformed(ActionEvent e) {
-   * _rnaList.add((VARNAConfig)vp.getConfig().clone
-   * (),vp.getRNA().clone(),vp.getRNA
-   * ().getName()+"-"+DateFormat.getTimeInstance(DateFormat.LONG).format(new
-   * Date()),true); }});
-   * 
-   * JPanel ops = new JPanel(); ops.setLayout(new GridLayout(1,2));
-   * ops.add(_deleteButton); ops.add(_duplicateButton);
-   * 
-   * JLabel j = new JLabel("Structures Manager",JLabel.CENTER);
-   * _listPanel.setLayout(new BorderLayout());
-   * 
-   * _listPanel.add(ops,BorderLayout.SOUTH);
-   * _listPanel.add(j,BorderLayout.NORTH);
-   * _listPanel.add(listScroller,BorderLayout.CENTER);
-   * 
-   * goPanel.add(_createButton, BorderLayout.CENTER);
-   * 
-   * JSplitPane split = new
-   * JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,_listPanel,vp);
-   * getContentPane().setLayout(new BorderLayout()); getContentPane().add(split,
-   * BorderLayout.CENTER); getContentPane().add(_tools, BorderLayout.NORTH);
-   * 
-   * setVisible(true); DropTarget dt = new DropTarget(vp, this);
-   * 
-   * vp.addVARNAListener(this); }
-   */
   public static String generateDefaultName()
   {
     return "User file #" + _nextID++;
   }
 
-  public RNA getRNA()
-  {
-    return (RNA) _sideList.getSelectedValue();
-  }
-
   public String[][] getParameterInfo()
   {
     String[][] info =
@@ -537,12 +208,6 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding
     return info;
   }
 
-  public void init()
-  {
-    vp.setBackground(_backgroundColor);
-    _error = true;
-  }
-
   @SuppressWarnings("unused")
   private Color getSafeColor(String col, Color def)
   {
@@ -573,60 +238,6 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding
     vp = surface;
   }
 
-  public String get_seq()
-  {
-    return _seq.getText();
-  }
-
-  public void set_seq(String _seq)
-  {
-    this._seq.setText(_seq);
-  }
-
-  public String get_str()
-  {
-    return _str.getText();
-  }
-
-  public void set_str(String _str)
-  {
-    this._str.setText(_str);
-  }
-
-  public JLabel get_info()
-  {
-    return _info;
-  }
-
-  public void set_info(JLabel _info)
-  {
-    this._info = _info;
-  }
-
-  /*
-   * public static void main(String[] args) { AppVarnaBinding d = new
-   * AppVarnaBinding(); d.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-   * d.pack(); d.setVisible(true); }
-   */
-
-  public void dragEnter(DropTargetDragEvent arg0)
-  {
-    // TODO Auto-generated method stub
-
-  }
-
-  public void dragExit(DropTargetEvent arg0)
-  {
-    // TODO Auto-generated method stub
-
-  }
-
-  public void dragOver(DropTargetDragEvent arg0)
-  {
-    // TODO Auto-generated method stub
-
-  }
-
   public void drop(DropTargetDropEvent dtde)
   {
     try
@@ -653,7 +264,7 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding
                 if (c instanceof VARNAPanel)
                 {
                   String path = o.toString();
-                  VARNAPanel vp = (VARNAPanel) c;
+                  VARNAPanel varnaPanel = (VARNAPanel) c;
                   try
                   {
                     FullBackup bck = VARNAPanel.importSession(path);
@@ -665,7 +276,7 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding
                             .loadSecStr(path);
                     for (RNA r : mdls)
                     {
-                      r.drawRNA(vp.getConfig());
+                      r.drawRNA(varnaPanel.getConfig());
                       String name = r.getName();
                       if (name.equals(""))
                       {
@@ -676,7 +287,7 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding
                       {
                         name += " (Model " + mn++ + ")";
                       }
-                      _rnaList.add(vp.getConfig().clone(), r, name, true);
+                      _rnaList.add(varnaPanel.getConfig().clone(), r, name, true);
                     }
                   }
                 }
@@ -698,147 +309,67 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding
 
   }
 
-  public void dropActionChanged(DropTargetDragEvent arg0)
-  {
-  }
-
   private class BackupHolder
   {
-    private DefaultListModel _rnaList;
+    private DefaultListModel<FullBackup> _rnalist;
 
-    private ArrayList<RNA> _rnas = new ArrayList<RNA>();
+    private List<RNA> _rnas = new ArrayList<RNA>();
 
     JList _l;
 
-    public BackupHolder(DefaultListModel rnaList, JList l)
+    public BackupHolder(DefaultListModel<FullBackup> rnaList, JList l)
     {
-      _rnaList = rnaList;
+      _rnalist = rnaList;
       _l = l;
     }
 
-    public void add(VARNAConfig c, RNA r)
-    {
-      add(c, r, r.getName(), false);
-    }
-
-    public void add(VARNAConfig c, RNA r, boolean select)
-    {
-      add(c, r, r.getName(), select);
-    }
-
     public void add(VARNAConfig c, RNA r, String name)
     {
       add(c, r, name, false);
     }
 
+    /**
+     * Adds an entry to the end of the selection list and (optionally) sets it
+     * as selected
+     * 
+     * @param c
+     * @param r
+     * @param name
+     * @param select
+     */
     public void add(VARNAConfig c, RNA r, String name, boolean select)
     {
       if (select)
       {
-        _l.removeSelectionInterval(0, _rnaList.size());
+        _l.removeSelectionInterval(0, _rnalist.size());
       }
       if (name.equals(""))
       {
         name = generateDefaultName();
       }
       FullBackup bck = new FullBackup(c, r, name);
-      _rnas.add(0, r);
-      _rnaList.add(0, bck);
+      _rnas.add(r);
+      _rnalist.addElement(bck);
       if (select)
       {
         _l.setSelectedIndex(0);
       }
     }
 
-    public void remove(int i)
-    {
-      _rnas.remove(i);
-      _rnaList.remove(i);
-
-    }
-
-    public DefaultListModel getModel()
-    {
-      return _rnaList;
-    }
-
-    public boolean contains(RNA r)
-    {
-      return _rnas.contains(r);
-    }
-
-    /*
-     * public int getSize() { return _rnaList.getSize(); }
-     */
     public FullBackup getElementAt(int i)
     {
-      return (FullBackup) _rnaList.getElementAt(i);
-    }
-
-    public void removeSelected()
-    {
-      int i = _l.getSelectedIndex();
-      if (i != -1)
-      {
-        if (_rnaList.getSize() == 1)
-        {
-          RNA r = new RNA();
-          try
-          {
-            r.setRNA(" ", ".");
-          } catch (ExceptionUnmatchedClosingParentheses e1)
-          {
-          } catch (ExceptionFileFormatOrSyntax e1)
-          {
-          }
-          vp.showRNA(r);
-          vp.repaint();
-        }
-        else
-        {
-          int newi = i + 1;
-          if (newi == _rnaList.getSize())
-          {
-            newi = _rnaList.getSize() - 2;
-          }
-          FullBackup bck = (FullBackup) _rnaList.getElementAt(newi);
-          _l.setSelectedValue(bck, true);
-        }
-        _rnaList.remove(i);
-      }
-
+      return _rnalist.getElementAt(i);
     }
   }
 
-  public void onLayoutChanged()
-  {
-    // TODO Auto-generated method stub
-
-  }
-
-  public void onUINewStructure(VARNAConfig v, RNA r)
-  {
-    // patch to fix infinite loop
-    // The problem is that onUINewStructure is called when user clicks
-    // check with Yann about whether Jalview should do anything with this event.
-    // e.g. if user has used VARNA's menu to import a structure .. Jalview may
-    // need to be told which structure is displayed.
-
-    // _rnaList.add(v, r, "", true);
-  }
-
-  public void onWarningEmitted(String s)
-  {
-  }
-
   public void mouseClicked(MouseEvent e)
   {
     if (e.getClickCount() == 2)
     {
       int index = _sideList.locationToIndex(e.getPoint());
-      ListModel dlm = _sideList.getModel();
-      FullBackup item = (FullBackup) dlm.getElementAt(index);
-      ;
+      ListModel<FullBackup> dlm = _sideList.getModel();
+      // FullBackup item = dlm.getElementAt(index);
+
       _sideList.ensureIndexIsVisible(index);
       /*
        * TODO Object newName = JOptionPane.showInputDialog( this,
@@ -850,22 +381,6 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding
     }
   }
 
-  public void mouseEntered(MouseEvent arg0)
-  {
-  }
-
-  public void mouseExited(MouseEvent arg0)
-  {
-  }
-
-  public void mousePressed(MouseEvent arg0)
-  {
-  }
-
-  public void mouseReleased(MouseEvent arg0)
-  {
-  }
-
   @Override
   public String[] getPdbFile()
   {
@@ -903,28 +418,157 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding
   }
 
   @Override
-  public void onStructureRedrawn()
+  public void highlightAtoms(List<AtomSpec> atoms)
   {
   }
 
   @Override
-  public void onZoomLevelChanged()
+  public boolean isListeningFor(SequenceI seq)
   {
+    return true;
   }
 
-  @Override
-  public void onTranslationChanged()
+  /**
+   * Returns the path to a temporary file containing a representation of the
+   * state of the Varna display, or null on any error
+   * 
+   * @param rna
+   * @param jds
+   * 
+   * @return
+   */
+  public String getStateInfo(RNA rna)
   {
+    if (vp == null)
+    {
+      return null;
+    }
+
+    /*
+     * we have to show the RNA we want to save in the viewer; get the currently
+     * displayed model first so we can restore it
+     */
+    FullBackup sel = (FullBackup) _sideList.getSelectedValue();
+
+    FullBackup model = null;
+    ListModel models = _sideList.getModel();
+    for (int i = 0; i < models.getSize(); i++)
+    {
+      model = (FullBackup) models.getElementAt(i);
+      if (model.rna == rna)
+      {
+        break;
+      }
+    }
+    if (model == null)
+    {
+      return null;
+    }
+
+    /*
+     * switch display
+     */
+    vp.showRNA(model.rna, model.config);
+
+    try
+    {
+      File temp;
+      temp = File.createTempFile("varna", null);
+      temp.deleteOnExit();
+      String filePath = temp.getAbsolutePath();
+      vp.toXML(filePath);
+
+      /*
+       * restore the previous display
+       */
+      vp.showRNA(sel.rna, sel.config);
+      
+      return filePath;
+    } catch (IOException e)
+    {
+      return null;
+    }
   }
 
-  @Override
-  public void highlightAtoms(List<AtomSpec> atoms)
+  public int getSelectedIndex()
   {
+    return _sideList.getSelectedIndex();
   }
 
-  @Override
-  public boolean isListeningFor(SequenceI seq)
+  /**
+   * Switch the Varna display to the structure selected in the left hand panel
+   * 
+   * @param evt
+   */
+  protected void changeSelectedStructure_actionPerformed(ListSelectionEvent evt)
   {
-    return true;
+    if (!evt.getValueIsAdjusting())
+    {
+      showSelectedStructure();
+    }
+  }
+
+  /**
+   * 
+   */
+  protected void showSelectedStructure()
+  {
+    FullBackup sel = (FullBackup) _sideList.getSelectedValue();
+    if (sel != null)
+    {
+      vp.showRNA(sel.rna, sel.config);
+    }
+  }
+
+  /**
+   * Set and display the selected item in the list of structures
+   * 
+   * @param selectedRna
+   */
+  public void setSelectedIndex(final int selectedRna)
+  {
+    /*
+     * note this does nothing if, say, selecting item 3 when only 1 has been
+     * added on load
+     */
+    _sideList.setSelectedIndex(selectedRna);
+    // TODO ? need a worker thread to get this to happen properly
+  }
+
+  /**
+   * Add an RNA structure to the selection list
+   * 
+   * @param rna
+   */
+  public void addStructure(RNA rna)
+  {
+    VARNAConfig config = vp.getConfig().clone();
+    addStructure(rna, config);
+  }
+
+  /**
+   * @param rna
+   * @param config
+   */
+  protected void addStructure(final RNA rna, final VARNAConfig config)
+  {
+    drawRna(rna, config);
+    _rnaList.add(config, rna, rna.getName());
+  }
+
+  /**
+   * @param rna
+   * @param config
+   */
+  protected void drawRna(final RNA rna, final VARNAConfig config)
+  {
+    try
+    {
+      rna.drawRNA(rna.getDrawMode(), config);
+    } catch (ExceptionNAViewAlgorithm e)
+    {
+      // only throwable for draw mode = 3 NAView
+      System.err.println("Error drawing RNA: " + e.getMessage());
+    }
   }
 }
index 1e6da78..f644e95 100644 (file)
@@ -1378,11 +1378,10 @@ public class ChimeraViewFrame extends StructureViewerBase
           is.close();
         } catch (IOException e)
         {
-          // ignoreß
+          // ignore
         }
       }
     }
-    // return this.chimeraSessionFile == null ? "" : chimeraSessionFile;
   }
 
   @Override
index 7268ae5..e08bfcd 100644 (file)
@@ -23,6 +23,8 @@ package jalview.gui;
 import jalview.api.AlignViewportI;
 import jalview.api.AlignmentViewPanel;
 import jalview.api.ComplexAlignFile;
+import jalview.api.FeaturesDisplayedI;
+import jalview.bin.Jalview;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.ColumnSelection;
 import jalview.datamodel.SequenceI;
@@ -194,7 +196,28 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
    */
   public void ok_actionPerformed(ActionEvent e)
   {
-    String format = new IdentifyFile().Identify(getText(), "Paste");
+    String text = getText();
+    if (text.trim().length() < 1)
+    {
+      return;
+    }
+
+    String format = new IdentifyFile().Identify(text, "Paste");
+    if (format == null || format.equalsIgnoreCase("EMPTY DATA FILE"))
+    {
+      System.err.println(MessageManager
+              .getString("label.null_or_unidentifiable_data"));
+      if (!Jalview.isHeadlessMode())
+      {
+        JOptionPane.showMessageDialog(null,
+ MessageManager
+                .getString("label.null_or_unidentifiable_data"),
+                MessageManager.getString("label.unidentifiable_data"),
+                JOptionPane.ERROR_MESSAGE);
+      }
+      return;
+    }
+
     // TODO: identify feature, annotation or tree file and parse appropriately.
     AlignmentI al = null;
 
@@ -217,7 +240,7 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
       }
     }
 
-    if (al != null)
+    if (al != null && al.hasValidSequence())
     {
       String title = MessageManager.formatMessage(
               "label.input_cut_paste_params", new String[]
@@ -239,11 +262,13 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
           boolean showSeqFeatures = ((ComplexAlignFile) source)
                   .isShowSeqFeatures();
           ColourSchemeI cs = ((ComplexAlignFile) source).getColourScheme();
+          FeaturesDisplayedI fd = ((ComplexAlignFile) source)
+                  .getDisplayedFeatures();
           af = new AlignFrame(al, hiddenSeqs, colSel,
                   AlignFrame.DEFAULT_WIDTH,
                   AlignFrame.DEFAULT_HEIGHT);
-
           af.getViewport().setShowSequenceFeatures(showSeqFeatures);
+          af.getViewport().setFeaturesDisplayed(fd);
           af.changeColour(cs);
         }
         else
@@ -267,6 +292,22 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
         }
       }
     }
+    else
+    {
+      System.err.println(MessageManager
+              .getString("label.null_or_invalid_alignment"));
+      if (!Jalview.isHeadlessMode())
+      {
+        JOptionPane
+                .showMessageDialog(
+                        null,
+                        MessageManager
+                                .getString("label.null_or_invalid_alignment"),
+                        MessageManager
+                                .getString("label.unable_to_create_alignment"),
+                        JOptionPane.ERROR_MESSAGE);
+      }
+    }
   }
 
 
index cc9daa1..6a95363 100644 (file)
@@ -1133,7 +1133,8 @@ public class Desktop extends jalview.jbgui.GDesktop implements
   public void inputTextboxMenuItem_actionPerformed(AlignViewport viewport)
   {
     CutAndPasteTransfer cap = new CutAndPasteTransfer();
-    cap.setForInput(viewport.getAlignPanel());
+//    cap.setForInput(viewport.getAlignPanel());
+    cap.setForInput(null);
     Desktop.addInternalFrame(cap,
             MessageManager.getString("label.cut_paste_alignmen_file"),
             true, 600, 500);
@@ -2616,28 +2617,6 @@ public class Desktop extends jalview.jbgui.GDesktop implements
       (t0 = new Thread(discoverer)).start();
     }
 
-    // ENFIN services are EOLed as of Jalview 2.8.1 release
-    if (false)
-    {
-      try
-      {
-        if (Cache.getDefault("SHOW_ENFIN_SERVICES", true))
-        {
-          // EnfinEnvision web service menu entries are rebuild every time the
-          // menu is shown, so no changeSupport events are needed.
-          jalview.ws.EnfinEnvision2OneWay.getInstance();
-          (t1 = new Thread(jalview.ws.EnfinEnvision2OneWay.getInstance()))
-                  .start();
-        }
-      } catch (Exception e)
-      {
-        Cache.log
-                .info("Exception when trying to launch Envision2 workflow discovery.",
-                        e);
-        Cache.log.info(e.getStackTrace());
-      }
-    }
-
     if (Cache.getDefault("SHOW_JWS2_SERVICES", true))
     {
       if (jalview.ws.jws2.Jws2Discoverer.getDiscoverer().isRunning())
index e443512..3b90bf6 100644 (file)
  */
 package jalview.gui;
 
-import java.awt.Rectangle;
-import java.io.BufferedReader;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.lang.reflect.InvocationTargetException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.IdentityHashMap;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.StringTokenizer;
-import java.util.Vector;
-import java.util.jar.JarEntry;
-import java.util.jar.JarInputStream;
-import java.util.jar.JarOutputStream;
-
-import javax.swing.JInternalFrame;
-import javax.swing.JOptionPane;
-import javax.swing.SwingUtilities;
-
-import org.exolab.castor.xml.Marshaller;
-import org.exolab.castor.xml.Unmarshaller;
-
 import jalview.api.structures.JalviewStructureDisplayI;
 import jalview.bin.Cache;
 import jalview.datamodel.AlignedCodonFrame;
@@ -66,9 +27,12 @@ import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.PDBEntry;
+import jalview.datamodel.RnaViewerModel;
+import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
 import jalview.datamodel.StructureViewerModel;
 import jalview.datamodel.StructureViewerModel.StructureData;
+import jalview.ext.varna.RnaModel;
 import jalview.gui.StructureViewer.ViewerType;
 import jalview.schemabinding.version2.AlcodMap;
 import jalview.schemabinding.version2.AlcodonFrame;
@@ -92,6 +56,8 @@ import jalview.schemabinding.version2.OtherData;
 import jalview.schemabinding.version2.PdbentryItem;
 import jalview.schemabinding.version2.Pdbids;
 import jalview.schemabinding.version2.Property;
+import jalview.schemabinding.version2.RnaViewer;
+import jalview.schemabinding.version2.SecondaryStructure;
 import jalview.schemabinding.version2.Sequence;
 import jalview.schemabinding.version2.SequenceSet;
 import jalview.schemabinding.version2.SequenceSetProperties;
@@ -123,6 +89,45 @@ import jalview.ws.params.ArgumentI;
 import jalview.ws.params.AutoCalcSetting;
 import jalview.ws.params.WsParamSetI;
 
+import java.awt.Rectangle;
+import java.io.BufferedReader;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.lang.reflect.InvocationTargetException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.IdentityHashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.StringTokenizer;
+import java.util.Vector;
+import java.util.jar.JarEntry;
+import java.util.jar.JarInputStream;
+import java.util.jar.JarOutputStream;
+
+import javax.swing.JInternalFrame;
+import javax.swing.JOptionPane;
+import javax.swing.SwingUtilities;
+
+import org.exolab.castor.xml.Marshaller;
+import org.exolab.castor.xml.Unmarshaller;
+
 /**
  * Write out the current jalview desktop state as a Jalview XML stream.
  * 
@@ -135,8 +140,15 @@ import jalview.ws.params.WsParamSetI;
  */
 public class Jalview2XML
 {
+  private static final String VIEWER_PREFIX = "viewer_";
+
+  private static final String RNA_PREFIX = "rna_";
+
   private static final String UTF_8 = "UTF-8";
 
+  // use this with nextCounter() to make unique names for entities
+  private int counter = 0;
+
   /*
    * SequenceI reference -> XML ID string in jalview XML. Populated as XML reps
    * of sequence objects are created.
@@ -160,6 +172,12 @@ public class Jalview2XML
    */
   private Map<Viewport, AlignFrame> splitFrameCandidates = new HashMap<Viewport, AlignFrame>();
 
+  /*
+   * Map from displayed rna structure models to their saved session state jar
+   * entry names
+   */
+  private Map<RnaModel, String> rnaSessions = new HashMap<RnaModel, String>();
+
   /**
    * create/return unique hash string for sq
    * 
@@ -369,7 +387,7 @@ public class Jalview2XML
    */
   public void saveState(JarOutputStream jout)
   {
-    AlignFrame[] frames = Desktop.getAlignFrames(); // Desktop.desktop.getAllFrames();
+    AlignFrame[] frames = Desktop.getAlignFrames();
 
     if (frames == null)
     {
@@ -378,6 +396,13 @@ public class Jalview2XML
 
     Hashtable<String, AlignFrame> dsses = new Hashtable<String, AlignFrame>();
 
+    /*
+     * ensure cached data is clear before starting
+     */
+    // todo tidy up seqRefIds, seqsToIds initialisation / reset
+    rnaSessions.clear();
+    splitFrameCandidates.clear();
+
     try
     {
 
@@ -385,6 +410,7 @@ public class Jalview2XML
       // //////////////////////////////////////////////////
 
       List<String> shortNames = new ArrayList<String>();
+      List<String> viewIds = new ArrayList<String>();
 
       // REVERSE ORDER
       for (int i = frames.length - 1; i > -1; i--)
@@ -411,7 +437,7 @@ public class Jalview2XML
             fileName = fileName + ".xml";
           }
 
-          saveState(apanel, fileName, jout);
+          saveState(apanel, fileName, jout, viewIds);
 
           String dssid = getDatasetIdRef(af.getViewport().getAlignment()
                   .getDataset());
@@ -497,6 +523,8 @@ public class Jalview2XML
       FileOutputStream fos = new FileOutputStream(jarFile);
       JarOutputStream jout = new JarOutputStream(fos);
       Hashtable<String, AlignFrame> dsses = new Hashtable<String, AlignFrame>();
+      List<String> viewIds = new ArrayList<String>();
+
       for (AlignmentPanel apanel : af.alignPanels)
       {
         String jfileName = apSize == 1 ? fileName : fileName + ap;
@@ -505,7 +533,7 @@ public class Jalview2XML
         {
           jfileName = jfileName + ".xml";
         }
-        saveState(apanel, jfileName, jout);
+        saveState(apanel, jfileName, jout, viewIds);
         String dssid = getDatasetIdRef(af.getViewport().getAlignment()
                 .getDataset());
         if (!dsses.containsKey(dssid))
@@ -543,7 +571,7 @@ public class Jalview2XML
       {
         jfileName = jfileName + ".xml";
       }
-      saveState(_af.alignPanel, jfileName, true, jout);
+      saveState(_af.alignPanel, jfileName, true, jout, null);
     }
   }
 
@@ -557,13 +585,14 @@ public class Jalview2XML
    *          name of alignment panel written to output stream
    * @param jout
    *          jar output stream
+   * @param viewIds
    * @param out
    *          jar entry name
    */
   public JalviewModel saveState(AlignmentPanel ap, String fileName,
-          JarOutputStream jout)
+          JarOutputStream jout, List<String> viewIds)
   {
-    return saveState(ap, fileName, false, jout);
+    return saveState(ap, fileName, false, jout, viewIds);
   }
 
   /**
@@ -583,10 +612,15 @@ public class Jalview2XML
    *          jar entry name
    */
   public JalviewModel saveState(AlignmentPanel ap, String fileName,
-          boolean storeDS, JarOutputStream jout)
+          boolean storeDS, JarOutputStream jout, List<String> viewIds)
   {
+    if (viewIds == null)
+    {
+      viewIds = new ArrayList<String>();
+    }
+
     initSeqRefs();
-    List<String> viewIds = new ArrayList<String>();
+
     List<UserColourScheme> userColours = new ArrayList<UserColourScheme>();
 
     AlignViewport av = ap.av;
@@ -638,14 +672,12 @@ public class Jalview2XML
     Set<String> calcIdSet = new HashSet<String>();
 
     // SAVE SEQUENCES
-    String id = "";
-    jalview.datamodel.SequenceI jds, jdatasq;
     for (int i = 0; i < jal.getHeight(); i++)
     {
-      jds = jal.getSequenceAt(i);
-      jdatasq = jds.getDatasetSequence() == null ? jds : jds
-              .getDatasetSequence();
-      id = seqHash(jds);
+      final SequenceI jds = jal.getSequenceAt(i);
+      final SequenceI jdatasq = jds.getDatasetSequence() == null ? jds
+              : jds.getDatasetSequence();
+      String id = seqHash(jds);
 
       if (seqRefIds.get(id) != null)
       {
@@ -703,8 +735,7 @@ public class Jalview2XML
 
       if (jds.getSequenceFeatures() != null)
       {
-        jalview.datamodel.SequenceFeature[] sf = jds
-                .getSequenceFeatures();
+        jalview.datamodel.SequenceFeature[] sf = jds.getSequenceFeatures();
         int index = 0;
         while (index < sf.length)
         {
@@ -774,8 +805,8 @@ public class Jalview2XML
               matchedFile = saveStructureState(ap, jds, pdb, entry,
                       viewIds, matchedFile, viewFrame);
               /*
-               * Only store each structure viewer's state once in each XML
-               * document. First time through only (storeDS==false)
+               * Only store each structure viewer's state once in the project
+               * jar. First time through only (storeDS==false)
                */
               String viewId = viewFrame.getViewId();
               if (!storeDS && !viewIds.contains(viewId))
@@ -783,8 +814,9 @@ public class Jalview2XML
                 viewIds.add(viewId);
                 try
                 {
+                  String viewerState = viewFrame.getStateInfo();
                   writeJarEntry(jout, getViewerJarEntryName(viewId),
-                          viewFrame.getStateInfo().getBytes());
+                          viewerState.getBytes());
                 } catch (IOException e)
                 {
                   System.err.println("Error saving viewer state: "
@@ -834,6 +866,8 @@ public class Jalview2XML
         }
       }
 
+      saveRnaViewers(jout, jseq, jds, viewIds, ap, storeDS);
+
       jms.addJSeq(jseq);
     }
 
@@ -864,36 +898,36 @@ public class Jalview2XML
           }
         }
 
-//      {
-//        AlcodonFrame alc = new AlcodonFrame();
-//        vamsasSet.addAlcodonFrame(alc);
-//        for (int p = 0; p < acf.aaWidth; p++)
-//        {
-//          Alcodon cmap = new Alcodon();
-//          if (acf.codons[p] != null)
-//          {
-//            // Null codons indicate a gapped column in the translated peptide
-//            // alignment.
-//            cmap.setPos1(acf.codons[p][0]);
-//            cmap.setPos2(acf.codons[p][1]);
-//            cmap.setPos3(acf.codons[p][2]);
-//          }
-//          alc.addAlcodon(cmap);
-//        }
-//        if (acf.getProtMappings() != null
-//                && acf.getProtMappings().length > 0)
-//        {
-//          SequenceI[] dnas = acf.getdnaSeqs();
-//          jalview.datamodel.Mapping[] pmaps = acf.getProtMappings();
-//          for (int m = 0; m < pmaps.length; m++)
-//          {
-//            AlcodMap alcmap = new AlcodMap();
-//            alcmap.setDnasq(seqHash(dnas[m]));
-//            alcmap.setMapping(createVamsasMapping(pmaps[m], dnas[m], null,
-//                    false));
-//            alc.addAlcodMap(alcmap);
-//          }
-//        }
+        // {
+        // AlcodonFrame alc = new AlcodonFrame();
+        // vamsasSet.addAlcodonFrame(alc);
+        // for (int p = 0; p < acf.aaWidth; p++)
+        // {
+        // Alcodon cmap = new Alcodon();
+        // if (acf.codons[p] != null)
+        // {
+        // // Null codons indicate a gapped column in the translated peptide
+        // // alignment.
+        // cmap.setPos1(acf.codons[p][0]);
+        // cmap.setPos2(acf.codons[p][1]);
+        // cmap.setPos3(acf.codons[p][2]);
+        // }
+        // alc.addAlcodon(cmap);
+        // }
+        // if (acf.getProtMappings() != null
+        // && acf.getProtMappings().length > 0)
+        // {
+        // SequenceI[] dnas = acf.getdnaSeqs();
+        // jalview.datamodel.Mapping[] pmaps = acf.getProtMappings();
+        // for (int m = 0; m < pmaps.length; m++)
+        // {
+        // AlcodMap alcmap = new AlcodMap();
+        // alcmap.setDnasq(seqHash(dnas[m]));
+        // alcmap.setMapping(createVamsasMapping(pmaps[m], dnas[m], null,
+        // false));
+        // alc.addAlcodMap(alcmap);
+        // }
+        // }
       }
     }
 
@@ -942,35 +976,17 @@ public class Jalview2XML
       }
     }
 
-    /*
-     * Save associated Varna panels
-     */
-    if (Desktop.desktop != null)
-    {
-      for (JInternalFrame frame : Desktop.desktop.getAllFrames())
-      {
-        if (frame instanceof AppVarna)
-        {
-          AppVarna vp = (AppVarna) frame;
-          if (vp.ap == ap)
-          {
-            // save Varna state
-          }
-        }
-      }
-    }
-
     // SAVE ANNOTATIONS
     /**
      * store forward refs from an annotationRow to any groups
      */
-    IdentityHashMap groupRefs = new IdentityHashMap();
+    IdentityHashMap<SequenceGroup, String> groupRefs = new IdentityHashMap<SequenceGroup, String>();
     if (storeDS)
     {
       for (SequenceI sq : jal.getSequences())
       {
         // Store annotation on dataset sequences only
-        jalview.datamodel.AlignmentAnnotation[] aa = sq.getAnnotation();
+        AlignmentAnnotation[] aa = sq.getAnnotation();
         if (aa != null && aa.length > 0)
         {
           storeAlignmentAnnotation(aa, groupRefs, av, calcIdSet, storeDS,
@@ -983,8 +999,7 @@ public class Jalview2XML
       if (jal.getAlignmentAnnotation() != null)
       {
         // Store the annotation shown on the alignment.
-        jalview.datamodel.AlignmentAnnotation[] aa = jal
-                .getAlignmentAnnotation();
+        AlignmentAnnotation[] aa = jal.getAlignmentAnnotation();
         storeAlignmentAnnotation(aa, groupRefs, av, calcIdSet, storeDS,
                 vamsasSet);
       }
@@ -996,70 +1011,66 @@ public class Jalview2XML
       int i = -1;
       for (jalview.datamodel.SequenceGroup sg : jal.getGroups())
       {
-        groups[++i] = new JGroup();
+        JGroup jGroup = new JGroup();
+        groups[++i] = jGroup;
 
-        groups[i].setStart(sg.getStartRes());
-        groups[i].setEnd(sg.getEndRes());
-        groups[i].setName(sg.getName());
+        jGroup.setStart(sg.getStartRes());
+        jGroup.setEnd(sg.getEndRes());
+        jGroup.setName(sg.getName());
         if (groupRefs.containsKey(sg))
         {
-          // group has references so set it's ID field
-          groups[i].setId(groupRefs.get(sg).toString());
+          // group has references so set its ID field
+          jGroup.setId(groupRefs.get(sg));
         }
         if (sg.cs != null)
         {
           if (sg.cs.conservationApplied())
           {
-            groups[i].setConsThreshold(sg.cs.getConservationInc());
+            jGroup.setConsThreshold(sg.cs.getConservationInc());
 
             if (sg.cs instanceof jalview.schemes.UserColourScheme)
             {
-              groups[i].setColour(setUserColourScheme(sg.cs, userColours,
-                      jms));
+              jGroup.setColour(setUserColourScheme(sg.cs, userColours, jms));
             }
             else
             {
-              groups[i]
-                      .setColour(ColourSchemeProperty.getColourName(sg.cs));
+              jGroup.setColour(ColourSchemeProperty.getColourName(sg.cs));
             }
           }
           else if (sg.cs instanceof jalview.schemes.AnnotationColourGradient)
           {
-            groups[i].setColour("AnnotationColourGradient");
-            groups[i].setAnnotationColours(constructAnnotationColours(
+            jGroup.setColour("AnnotationColourGradient");
+            jGroup.setAnnotationColours(constructAnnotationColours(
                     (jalview.schemes.AnnotationColourGradient) sg.cs,
                     userColours, jms));
           }
           else if (sg.cs instanceof jalview.schemes.UserColourScheme)
           {
-            groups[i]
-                    .setColour(setUserColourScheme(sg.cs, userColours, jms));
+            jGroup.setColour(setUserColourScheme(sg.cs, userColours, jms));
           }
           else
           {
-            groups[i].setColour(ColourSchemeProperty.getColourName(sg.cs));
+            jGroup.setColour(ColourSchemeProperty.getColourName(sg.cs));
           }
 
-          groups[i].setPidThreshold(sg.cs.getThreshold());
+          jGroup.setPidThreshold(sg.cs.getThreshold());
         }
 
-        groups[i].setOutlineColour(sg.getOutlineColour().getRGB());
-        groups[i].setDisplayBoxes(sg.getDisplayBoxes());
-        groups[i].setDisplayText(sg.getDisplayText());
-        groups[i].setColourText(sg.getColourText());
-        groups[i].setTextCol1(sg.textColour.getRGB());
-        groups[i].setTextCol2(sg.textColour2.getRGB());
-        groups[i].setTextColThreshold(sg.thresholdTextColour);
-        groups[i].setShowUnconserved(sg.getShowNonconserved());
-        groups[i].setIgnoreGapsinConsensus(sg.getIgnoreGapsConsensus());
-        groups[i].setShowConsensusHistogram(sg.isShowConsensusHistogram());
-        groups[i].setShowSequenceLogo(sg.isShowSequenceLogo());
-        groups[i].setNormaliseSequenceLogo(sg.isNormaliseSequenceLogo());
-        for (int s = 0; s < sg.getSize(); s++)
-        {
-          jalview.datamodel.Sequence seq = (jalview.datamodel.Sequence) sg
-                  .getSequenceAt(s);
-          groups[i].addSeq(seqHash(seq));
+        jGroup.setOutlineColour(sg.getOutlineColour().getRGB());
+        jGroup.setDisplayBoxes(sg.getDisplayBoxes());
+        jGroup.setDisplayText(sg.getDisplayText());
+        jGroup.setColourText(sg.getColourText());
+        jGroup.setTextCol1(sg.textColour.getRGB());
+        jGroup.setTextCol2(sg.textColour2.getRGB());
+        jGroup.setTextColThreshold(sg.thresholdTextColour);
+        jGroup.setShowUnconserved(sg.getShowNonconserved());
+        jGroup.setIgnoreGapsinConsensus(sg.getIgnoreGapsConsensus());
+        jGroup.setShowConsensusHistogram(sg.isShowConsensusHistogram());
+        jGroup.setShowSequenceLogo(sg.isShowSequenceLogo());
+        jGroup.setNormaliseSequenceLogo(sg.isNormaliseSequenceLogo());
+        for (SequenceI seq : sg.getSequences())
+        {
+          jGroup.addSeq(seqHash(seq));
         }
       }
 
@@ -1195,8 +1206,8 @@ public class Jalview2XML
             else
             {
               setting.setColour(ap.getSeqPanel().seqCanvas
-                      .getFeatureRenderer()
-                      .getColour(renderOrder[ro]).getRGB());
+                      .getFeatureRenderer().getColour(renderOrder[ro])
+                      .getRGB());
             }
 
             setting.setDisplay(av.getFeaturesDisplayed().isVisible(
@@ -1310,6 +1321,7 @@ public class Jalview2XML
       // using save and then load
       try
       {
+        System.out.println("Writing jar entry " + fileName);
         JarEntry entry = new JarEntry(fileName);
         jout.putNextEntry(entry);
         PrintWriter pout = new PrintWriter(new OutputStreamWriter(jout,
@@ -1328,14 +1340,112 @@ public class Jalview2XML
   }
 
   /**
-   * Copy the contents of a file to a new file added to the output jar
+   * Save any Varna viewers linked to this sequence. Writes an rnaViewer element
+   * for each viewer, with
+   * <ul>
+   * <li>viewer geometry (position, size, split pane divider location)</li>
+   * <li>index of the selected structure in the viewer (currently shows gapped
+   * or ungapped)</li>
+   * <li>the id of the annotation holding RNA secondary structure</li>
+   * <li>(currently only one SS is shown per viewer, may be more in future)</li>
+   * </ul>
+   * Varna viewer state is also written out (in native Varna XML) to separate
+   * project jar entries. A separate entry is written for each RNA structure
+   * displayed, with the naming convention
+   * <ul>
+   * <li>rna_viewId_sequenceId_annotationId_[gapped|trimmed]</li>
+   * </ul>
+   * 
+   * @param jout
+   * @param jseq
+   * @param jds
+   * @param viewIds
+   * @param ap
+   * @param storeDataset
+   */
+  protected void saveRnaViewers(JarOutputStream jout, JSeq jseq,
+          final SequenceI jds, List<String> viewIds, AlignmentPanel ap,
+          boolean storeDataset)
+  {
+    if (Desktop.desktop == null)
+    {
+      return;
+    }
+    JInternalFrame[] frames = Desktop.desktop.getAllFrames();
+    for (int f = frames.length - 1; f > -1; f--)
+    {
+      if (frames[f] instanceof AppVarna)
+      {
+        AppVarna varna = (AppVarna) frames[f];
+        /*
+         * link the sequence to every viewer that is showing it and is linked to
+         * its alignment panel
+         */
+        if (varna.isListeningFor(jds) && ap == varna.getAlignmentPanel())
+        {
+          String viewId = varna.getViewId();
+          RnaViewer rna = new RnaViewer();
+          rna.setViewId(viewId);
+          rna.setTitle(varna.getTitle());
+          rna.setXpos(varna.getX());
+          rna.setYpos(varna.getY());
+          rna.setWidth(varna.getWidth());
+          rna.setHeight(varna.getHeight());
+          rna.setDividerLocation(varna.getDividerLocation());
+          rna.setSelectedRna(varna.getSelectedIndex());
+          jseq.addRnaViewer(rna);
+
+          /*
+           * Store each Varna panel's state once in the project per sequence.
+           * First time through only (storeDataset==false)
+           */
+          // boolean storeSessions = false;
+          // String sequenceViewId = viewId + seqsToIds.get(jds);
+          // if (!storeDataset && !viewIds.contains(sequenceViewId))
+          // {
+          // viewIds.add(sequenceViewId);
+          // storeSessions = true;
+          // }
+          for (RnaModel model : varna.getModels())
+          {
+            if (model.seq == jds)
+            {
+              /*
+               * VARNA saves each view (sequence or alignment secondary
+               * structure, gapped or trimmed) as a separate XML file
+               */
+              String jarEntryName = rnaSessions.get(model);
+              if (jarEntryName == null)
+              {
+
+                String varnaStateFile = varna.getStateInfo(model.rna);
+                jarEntryName = RNA_PREFIX + viewId + "_" + nextCounter();
+                copyFileToJar(jout, varnaStateFile, jarEntryName);
+                rnaSessions.put(model, jarEntryName);
+              }
+              SecondaryStructure ss = new SecondaryStructure();
+              String annotationId = varna.getAnnotation(jds).annotationId;
+              ss.setAnnotationId(annotationId);
+              ss.setViewerState(jarEntryName);
+              ss.setGapped(model.gapped);
+              ss.setTitle(model.title);
+              rna.addSecondaryStructure(ss);
+            }
+          }
+        }
+      }
+    }
+  }
+
+  /**
+   * Copy the contents of a file to a new entry added to the output jar
    * 
    * @param jout
    * @param infilePath
-   * @param jarfileName
+   * @param jarEntryName
    */
   protected void copyFileToJar(JarOutputStream jout, String infilePath,
-          String jarfileName)
+          String jarEntryName)
   {
     DataInputStream dis = null;
     try
@@ -1346,7 +1456,7 @@ public class Jalview2XML
         dis = new DataInputStream(new FileInputStream(file));
         byte[] data = new byte[(int) file.length()];
         dis.readFully(data);
-        writeJarEntry(jout, jarfileName, data);
+        writeJarEntry(jout, jarEntryName, data);
       }
     } catch (Exception ex)
     {
@@ -1370,16 +1480,17 @@ public class Jalview2XML
    * Write the data to a new entry of given name in the output jar file
    * 
    * @param jout
-   * @param jarfileName
+   * @param jarEntryName
    * @param data
    * @throws IOException
    */
-  protected void writeJarEntry(JarOutputStream jout, String jarfileName,
+  protected void writeJarEntry(JarOutputStream jout, String jarEntryName,
           byte[] data) throws IOException
   {
     if (jout != null)
     {
-      jout.putNextEntry(new JarEntry(jarfileName));
+      System.out.println("Writing jar entry " + jarEntryName);
+      jout.putNextEntry(new JarEntry(jarEntryName));
       DataOutputStream dout = new DataOutputStream(jout);
       dout.write(data, 0, data.length);
       dout.flush();
@@ -1490,62 +1601,65 @@ public class Jalview2XML
   }
 
   private void storeAlignmentAnnotation(AlignmentAnnotation[] aa,
-          IdentityHashMap groupRefs, AlignmentViewport av,
-          Set<String> calcIdSet, boolean storeDS, SequenceSet vamsasSet)
+          IdentityHashMap<SequenceGroup, String> groupRefs,
+          AlignmentViewport av, Set<String> calcIdSet, boolean storeDS,
+          SequenceSet vamsasSet)
   {
 
     for (int i = 0; i < aa.length; i++)
     {
       Annotation an = new Annotation();
 
-      if (aa[i].annotationId != null)
+      AlignmentAnnotation annotation = aa[i];
+      if (annotation.annotationId != null)
       {
-        annotationIds.put(aa[i].annotationId, aa[i]);
+        annotationIds.put(annotation.annotationId, annotation);
       }
 
-      an.setId(aa[i].annotationId);
+      an.setId(annotation.annotationId);
 
-      an.setVisible(aa[i].visible);
+      an.setVisible(annotation.visible);
 
-      an.setDescription(aa[i].description);
+      an.setDescription(annotation.description);
 
-      if (aa[i].sequenceRef != null)
+      if (annotation.sequenceRef != null)
       {
-        // TODO later annotation sequenceRef should be the XML ID of the
-        // sequence rather than its display name
-        an.setSequenceRef(aa[i].sequenceRef.getName());
+        // 2.9 JAL-1781 xref on sequence id rather than name
+        an.setSequenceRef(seqsToIds.get(annotation.sequenceRef));
       }
-      if (aa[i].groupRef != null)
+      if (annotation.groupRef != null)
       {
-        Object groupIdr = groupRefs.get(aa[i].groupRef);
+        String groupIdr = groupRefs.get(annotation.groupRef);
         if (groupIdr == null)
         {
           // make a locally unique String
-          groupRefs.put(aa[i].groupRef,
+          groupRefs.put(
+                  annotation.groupRef,
                   groupIdr = ("" + System.currentTimeMillis()
-                          + aa[i].groupRef.getName() + groupRefs.size()));
+                          + annotation.groupRef.getName() + groupRefs
+                          .size()));
         }
         an.setGroupRef(groupIdr.toString());
       }
 
       // store all visualization attributes for annotation
-      an.setGraphHeight(aa[i].graphHeight);
-      an.setCentreColLabels(aa[i].centreColLabels);
-      an.setScaleColLabels(aa[i].scaleColLabel);
-      an.setShowAllColLabels(aa[i].showAllColLabels);
-      an.setBelowAlignment(aa[i].belowAlignment);
+      an.setGraphHeight(annotation.graphHeight);
+      an.setCentreColLabels(annotation.centreColLabels);
+      an.setScaleColLabels(annotation.scaleColLabel);
+      an.setShowAllColLabels(annotation.showAllColLabels);
+      an.setBelowAlignment(annotation.belowAlignment);
 
-      if (aa[i].graph > 0)
+      if (annotation.graph > 0)
       {
         an.setGraph(true);
-        an.setGraphType(aa[i].graph);
-        an.setGraphGroup(aa[i].graphGroup);
-        if (aa[i].getThreshold() != null)
+        an.setGraphType(annotation.graph);
+        an.setGraphGroup(annotation.graphGroup);
+        if (annotation.getThreshold() != null)
         {
           ThresholdLine line = new ThresholdLine();
-          line.setLabel(aa[i].getThreshold().label);
-          line.setValue(aa[i].getThreshold().value);
-          line.setColour(aa[i].getThreshold().colour.getRGB());
+          line.setLabel(annotation.getThreshold().label);
+          line.setValue(annotation.getThreshold().value);
+          line.setColour(annotation.getThreshold().colour.getRGB());
           an.setThresholdLine(line);
         }
       }
@@ -1554,78 +1668,78 @@ public class Jalview2XML
         an.setGraph(false);
       }
 
-      an.setLabel(aa[i].label);
+      an.setLabel(annotation.label);
 
-      if (aa[i] == av.getAlignmentQualityAnnot()
-              || aa[i] == av.getAlignmentConservationAnnotation()
-              || aa[i] == av.getAlignmentConsensusAnnotation()
-              || aa[i].autoCalculated)
+      if (annotation == av.getAlignmentQualityAnnot()
+              || annotation == av.getAlignmentConservationAnnotation()
+              || annotation == av.getAlignmentConsensusAnnotation()
+              || annotation.autoCalculated)
       {
         // new way of indicating autocalculated annotation -
-        an.setAutoCalculated(aa[i].autoCalculated);
+        an.setAutoCalculated(annotation.autoCalculated);
       }
-      if (aa[i].hasScore())
+      if (annotation.hasScore())
       {
-        an.setScore(aa[i].getScore());
+        an.setScore(annotation.getScore());
       }
 
-      if (aa[i].getCalcId() != null)
+      if (annotation.getCalcId() != null)
       {
-        calcIdSet.add(aa[i].getCalcId());
-        an.setCalcId(aa[i].getCalcId());
+        calcIdSet.add(annotation.getCalcId());
+        an.setCalcId(annotation.getCalcId());
       }
-      if (aa[i].hasProperties())
+      if (annotation.hasProperties())
       {
-        for (String pr : aa[i].getProperties())
+        for (String pr : annotation.getProperties())
         {
           Property prop = new Property();
           prop.setName(pr);
-          prop.setValue(aa[i].getProperty(pr));
+          prop.setValue(annotation.getProperty(pr));
           an.addProperty(prop);
         }
       }
 
       AnnotationElement ae;
-      if (aa[i].annotations != null)
+      if (annotation.annotations != null)
       {
         an.setScoreOnly(false);
-        for (int a = 0; a < aa[i].annotations.length; a++)
+        for (int a = 0; a < annotation.annotations.length; a++)
         {
-          if ((aa[i] == null) || (aa[i].annotations[a] == null))
+          if ((annotation == null) || (annotation.annotations[a] == null))
           {
             continue;
           }
 
           ae = new AnnotationElement();
-          if (aa[i].annotations[a].description != null)
+          if (annotation.annotations[a].description != null)
           {
-            ae.setDescription(aa[i].annotations[a].description);
+            ae.setDescription(annotation.annotations[a].description);
           }
-          if (aa[i].annotations[a].displayCharacter != null)
+          if (annotation.annotations[a].displayCharacter != null)
           {
-            ae.setDisplayCharacter(aa[i].annotations[a].displayCharacter);
+            ae.setDisplayCharacter(annotation.annotations[a].displayCharacter);
           }
 
-          if (!Float.isNaN(aa[i].annotations[a].value))
+          if (!Float.isNaN(annotation.annotations[a].value))
           {
-            ae.setValue(aa[i].annotations[a].value);
+            ae.setValue(annotation.annotations[a].value);
           }
 
           ae.setPosition(a);
-          if (aa[i].annotations[a].secondaryStructure > ' ')
+          if (annotation.annotations[a].secondaryStructure > ' ')
           {
-            ae.setSecondaryStructure(aa[i].annotations[a].secondaryStructure
+            ae.setSecondaryStructure(annotation.annotations[a].secondaryStructure
                     + "");
           }
 
-          if (aa[i].annotations[a].colour != null
-                  && aa[i].annotations[a].colour != java.awt.Color.black)
+          if (annotation.annotations[a].colour != null
+                  && annotation.annotations[a].colour != java.awt.Color.black)
           {
-            ae.setColour(aa[i].annotations[a].colour.getRGB());
+            ae.setColour(annotation.annotations[a].colour.getRGB());
           }
 
           an.addAnnotationElement(ae);
-          if (aa[i].autoCalculated)
+          if (annotation.autoCalculated)
           {
             // only write one non-null entry into the annotation row -
             // sufficient to get the visualization attributes necessary to
@@ -1638,7 +1752,7 @@ public class Jalview2XML
       {
         an.setScoreOnly(true);
       }
-      if (!storeDS || (storeDS && !aa[i].autoCalculated))
+      if (!storeDS || (storeDS && !annotation.autoCalculated))
       {
         // skip autocalculated annotation - these are only provided for
         // alignments
@@ -2058,7 +2172,7 @@ public class Jalview2XML
         });
       } catch (Exception x)
       {
-
+        System.err.println("Error loading alignment: " + x.getMessage());
       }
     }
     return af;
@@ -2174,13 +2288,7 @@ public class Jalview2XML
         }
       } while (jarentry != null);
       resolveFrefedSequences();
-    } catch (java.io.FileNotFoundException ex)
-    {
-      ex.printStackTrace();
-      errorMessage = "Couldn't locate Jalview XML file : " + file;
-      System.err.println("Exception whilst loading jalview XML file : "
-              + ex + "\n");
-    } catch (java.net.UnknownHostException ex)
+    } catch (IOException ex)
     {
       ex.printStackTrace();
       errorMessage = "Couldn't locate Jalview XML file : " + file;
@@ -2307,7 +2415,8 @@ public class Jalview2XML
             .entrySet())
     {
       AlignFrame af = candidate.getValue();
-      if (!addedToSplitFrames.contains(af)) {
+      if (!addedToSplitFrames.contains(af))
+      {
         Viewport view = candidate.getKey();
         Desktop.addInternalFrame(af, view.getTitle(), view.getWidth(),
                 view.getHeight());
@@ -2740,10 +2849,11 @@ public class Jalview2XML
     // ////////////////////////////////
     // LOAD ANNOTATIONS
     List<JvAnnotRow> autoAlan = new ArrayList<JvAnnotRow>();
-    /**
+
+    /*
      * store any annotations which forward reference a group's ID
      */
-    Hashtable<String, ArrayList<jalview.datamodel.AlignmentAnnotation>> groupAnnotRefs = new Hashtable<String, ArrayList<jalview.datamodel.AlignmentAnnotation>>();
+    Map<String, List<AlignmentAnnotation>> groupAnnotRefs = new Hashtable<String, List<AlignmentAnnotation>>();
 
     if (vamsasSet.getAnnotationCount() > 0)
     {
@@ -2751,39 +2861,42 @@ public class Jalview2XML
 
       for (int i = 0; i < an.length; i++)
       {
+        Annotation annotation = an[i];
+
         /**
          * test if annotation is automatically calculated for this view only
          */
         boolean autoForView = false;
-        if (an[i].getLabel().equals("Quality")
-                || an[i].getLabel().equals("Conservation")
-                || an[i].getLabel().equals("Consensus"))
+        if (annotation.getLabel().equals("Quality")
+                || annotation.getLabel().equals("Conservation")
+                || annotation.getLabel().equals("Consensus"))
         {
           // Kludge for pre 2.5 projects which lacked the autocalculated flag
           autoForView = true;
-          if (!an[i].hasAutoCalculated())
+          if (!annotation.hasAutoCalculated())
           {
-            an[i].setAutoCalculated(true);
+            annotation.setAutoCalculated(true);
           }
         }
         if (autoForView
-                || (an[i].hasAutoCalculated() && an[i].isAutoCalculated()))
+                || (annotation.hasAutoCalculated() && annotation
+                        .isAutoCalculated()))
         {
           // remove ID - we don't recover annotation from other views for
           // view-specific annotation
-          an[i].setId(null);
+          annotation.setId(null);
         }
 
         // set visiblity for other annotation in this view
-        if (an[i].getId() != null
-                && annotationIds.containsKey(an[i].getId()))
+        String annotationId = annotation.getId();
+        if (annotationId != null && annotationIds.containsKey(annotationId))
         {
-          AlignmentAnnotation jda = annotationIds.get(an[i].getId());
+          AlignmentAnnotation jda = annotationIds.get(annotationId);
           // in principle Visible should always be true for annotation displayed
           // in multiple views
-          if (an[i].hasVisible())
+          if (annotation.hasVisible())
           {
-            jda.visible = an[i].getVisible();
+            jda.visible = annotation.getVisible();
           }
 
           al.addAnnotation(jda);
@@ -2791,11 +2904,11 @@ public class Jalview2XML
           continue;
         }
         // Construct new annotation from model.
-        AnnotationElement[] ae = an[i].getAnnotationElement();
+        AnnotationElement[] ae = annotation.getAnnotationElement();
         jalview.datamodel.Annotation[] anot = null;
         java.awt.Color firstColour = null;
         int anpos;
-        if (!an[i].getScoreOnly())
+        if (!annotation.getScoreOnly())
         {
           anot = new jalview.datamodel.Annotation[al.getWidth()];
           for (int aa = 0; aa < ae.length && aa < anot.length; aa++)
@@ -2832,27 +2945,27 @@ public class Jalview2XML
         }
         jalview.datamodel.AlignmentAnnotation jaa = null;
 
-        if (an[i].getGraph())
+        if (annotation.getGraph())
         {
           float llim = 0, hlim = 0;
           // if (autoForView || an[i].isAutoCalculated()) {
           // hlim=11f;
           // }
-          jaa = new jalview.datamodel.AlignmentAnnotation(an[i].getLabel(),
-                  an[i].getDescription(), anot, llim, hlim,
-                  an[i].getGraphType());
+          jaa = new jalview.datamodel.AlignmentAnnotation(
+                  annotation.getLabel(), annotation.getDescription(), anot,
+                  llim, hlim, annotation.getGraphType());
 
-          jaa.graphGroup = an[i].getGraphGroup();
+          jaa.graphGroup = annotation.getGraphGroup();
           jaa._linecolour = firstColour;
-          if (an[i].getThresholdLine() != null)
+          if (annotation.getThresholdLine() != null)
           {
-            jaa.setThreshold(new jalview.datamodel.GraphLine(an[i]
-                    .getThresholdLine().getValue(), an[i]
+            jaa.setThreshold(new jalview.datamodel.GraphLine(annotation
+                    .getThresholdLine().getValue(), annotation
                     .getThresholdLine().getLabel(), new java.awt.Color(
-                    an[i].getThresholdLine().getColour())));
+                    annotation.getThresholdLine().getColour())));
 
           }
-          if (autoForView || an[i].isAutoCalculated())
+          if (autoForView || annotation.isAutoCalculated())
           {
             // Hardwire the symbol display line to ensure that labels for
             // histograms are displayed
@@ -2872,19 +2985,26 @@ public class Jalview2XML
           jaa.annotationId = an[i].getId();
         }
         // recover sequence association
-        if (an[i].getSequenceRef() != null)
+        String sequenceRef = an[i].getSequenceRef();
+        if (sequenceRef != null)
         {
-          if (al.findName(an[i].getSequenceRef()) != null)
+          // from 2.9 sequenceRef is to sequence id (JAL-1781)
+          SequenceI sequence = seqRefIds.get(sequenceRef);
+          if (sequence == null)
           {
-            jaa.createSequenceMapping(al.findName(an[i].getSequenceRef()),
-                    1, true);
-            al.findName(an[i].getSequenceRef()).addAlignmentAnnotation(jaa);
+            // in pre-2.9 projects sequence ref is to sequence name
+            sequence = al.findName(sequenceRef);
+          }
+          if (sequence != null)
+          {
+            jaa.createSequenceMapping(sequence, 1, true);
+            sequence.addAlignmentAnnotation(jaa);
           }
         }
         // and make a note of any group association
         if (an[i].getGroupRef() != null && an[i].getGroupRef().length() > 0)
         {
-          ArrayList<jalview.datamodel.AlignmentAnnotation> aal = groupAnnotRefs
+          List<jalview.datamodel.AlignmentAnnotation> aal = groupAnnotRefs
                   .get(an[i].getGroupRef());
           if (aal == null)
           {
@@ -2958,37 +3078,37 @@ public class Jalview2XML
       boolean addAnnotSchemeGroup = false;
       for (int i = 0; i < groups.length; i++)
       {
+        JGroup jGroup = groups[i];
         ColourSchemeI cs = null;
-
-        if (groups[i].getColour() != null)
+        if (jGroup.getColour() != null)
         {
-          if (groups[i].getColour().startsWith("ucs"))
+          if (jGroup.getColour().startsWith("ucs"))
           {
-            cs = getUserColourScheme(jms, groups[i].getColour());
+            cs = getUserColourScheme(jms, jGroup.getColour());
           }
-          else if (groups[i].getColour().equals("AnnotationColourGradient")
-                  && groups[i].getAnnotationColours() != null)
+          else if (jGroup.getColour().equals("AnnotationColourGradient")
+                  && jGroup.getAnnotationColours() != null)
           {
             addAnnotSchemeGroup = true;
             cs = null;
           }
           else
           {
-            cs = ColourSchemeProperty.getColour(al, groups[i].getColour());
+            cs = ColourSchemeProperty.getColour(al, jGroup.getColour());
           }
 
           if (cs != null)
           {
-            cs.setThreshold(groups[i].getPidThreshold(), true);
+            cs.setThreshold(jGroup.getPidThreshold(), true);
           }
         }
 
-        Vector seqs = new Vector();
+        Vector<SequenceI> seqs = new Vector<SequenceI>();
 
-        for (int s = 0; s < groups[i].getSeqCount(); s++)
+        for (int s = 0; s < jGroup.getSeqCount(); s++)
         {
-          String seqId = groups[i].getSeq(s) + "";
-          jalview.datamodel.SequenceI ts = seqRefIds.get(seqId);
+          String seqId = jGroup.getSeq(s) + "";
+          SequenceI ts = seqRefIds.get(seqId);
 
           if (ts != null)
           {
@@ -3001,36 +3121,35 @@ public class Jalview2XML
           continue;
         }
 
-        jalview.datamodel.SequenceGroup sg = new jalview.datamodel.SequenceGroup(
-                seqs, groups[i].getName(), cs, groups[i].getDisplayBoxes(),
-                groups[i].getDisplayText(), groups[i].getColourText(),
-                groups[i].getStart(), groups[i].getEnd());
+        SequenceGroup sg = new SequenceGroup(seqs, jGroup.getName(), cs,
+                jGroup.getDisplayBoxes(), jGroup.getDisplayText(),
+                jGroup.getColourText(), jGroup.getStart(), jGroup.getEnd());
 
-        sg.setOutlineColour(new java.awt.Color(groups[i].getOutlineColour()));
+        sg.setOutlineColour(new java.awt.Color(jGroup.getOutlineColour()));
 
-        sg.textColour = new java.awt.Color(groups[i].getTextCol1());
-        sg.textColour2 = new java.awt.Color(groups[i].getTextCol2());
-        sg.setShowNonconserved(groups[i].hasShowUnconserved() ? groups[i]
+        sg.textColour = new java.awt.Color(jGroup.getTextCol1());
+        sg.textColour2 = new java.awt.Color(jGroup.getTextCol2());
+        sg.setShowNonconserved(jGroup.hasShowUnconserved() ? jGroup
                 .isShowUnconserved() : false);
-        sg.thresholdTextColour = groups[i].getTextColThreshold();
-        if (groups[i].hasShowConsensusHistogram())
+        sg.thresholdTextColour = jGroup.getTextColThreshold();
+        if (jGroup.hasShowConsensusHistogram())
         {
-          sg.setShowConsensusHistogram(groups[i].isShowConsensusHistogram());
+          sg.setShowConsensusHistogram(jGroup.isShowConsensusHistogram());
         }
         ;
-        if (groups[i].hasShowSequenceLogo())
+        if (jGroup.hasShowSequenceLogo())
         {
-          sg.setshowSequenceLogo(groups[i].isShowSequenceLogo());
+          sg.setshowSequenceLogo(jGroup.isShowSequenceLogo());
         }
-        if (groups[i].hasNormaliseSequenceLogo())
+        if (jGroup.hasNormaliseSequenceLogo())
         {
-          sg.setNormaliseSequenceLogo(groups[i].isNormaliseSequenceLogo());
+          sg.setNormaliseSequenceLogo(jGroup.isNormaliseSequenceLogo());
         }
-        if (groups[i].hasIgnoreGapsinConsensus())
+        if (jGroup.hasIgnoreGapsinConsensus())
         {
-          sg.setIgnoreGapsConsensus(groups[i].getIgnoreGapsinConsensus());
+          sg.setIgnoreGapsConsensus(jGroup.getIgnoreGapsinConsensus());
         }
-        if (groups[i].getConsThreshold() != 0)
+        if (jGroup.getConsThreshold() != 0)
         {
           jalview.analysis.Conservation c = new jalview.analysis.Conservation(
                   "All", ResidueProperties.propHash, 3,
@@ -3040,14 +3159,14 @@ public class Jalview2XML
           sg.cs.setConservation(c);
         }
 
-        if (groups[i].getId() != null && groupAnnotRefs.size() > 0)
+        if (jGroup.getId() != null && groupAnnotRefs.size() > 0)
         {
           // re-instate unique group/annotation row reference
-          ArrayList<jalview.datamodel.AlignmentAnnotation> jaal = groupAnnotRefs
-                  .get(groups[i].getId());
+          List<AlignmentAnnotation> jaal = groupAnnotRefs.get(jGroup
+                  .getId());
           if (jaal != null)
           {
-            for (jalview.datamodel.AlignmentAnnotation jaa : jaal)
+            for (AlignmentAnnotation jaa : jaal)
             {
               jaa.groupRef = sg;
               if (jaa.autoCalculated)
@@ -3072,8 +3191,8 @@ public class Jalview2XML
         if (addAnnotSchemeGroup)
         {
           // reconstruct the annotation colourscheme
-          sg.cs = constructAnnotationColour(
-                  groups[i].getAnnotationColours(), null, al, jms, false);
+          sg.cs = constructAnnotationColour(jGroup.getAnnotationColours(),
+                  null, al, jms, false);
         }
       }
     }
@@ -3164,90 +3283,202 @@ public class Jalview2XML
       av = af.viewport;
       ap = af.alignPanel;
     }
-    // LOAD TREES
-    // /////////////////////////////////////
-    if (loadTreesAndStructures && jms.getTreeCount() > 0)
+
+    /*
+     * Load any trees, PDB structures and viewers
+     * 
+     * Not done if flag is false (when this method is used for New View)
+     */
+    if (loadTreesAndStructures)
     {
-      try
+      loadTrees(jms, view, af, av, ap);
+      loadPDBStructures(jprovider, jseqs, af, ap);
+      loadRnaViewers(jprovider, jseqs, ap);
+    }
+    // and finally return.
+    return af;
+  }
+
+  /**
+   * Instantiate and link any saved RNA (Varna) viewers. The state of the Varna
+   * panel is restored from separate jar entries, two (gapped and trimmed) per
+   * sequence and secondary structure.
+   * 
+   * Currently each viewer shows just one sequence and structure (gapped and
+   * trimmed), however this method is designed to support multiple sequences or
+   * structures in viewers if wanted in future.
+   * 
+   * @param jprovider
+   * @param jseqs
+   * @param ap
+   */
+  private void loadRnaViewers(jarInputStreamProvider jprovider,
+          JSeq[] jseqs, AlignmentPanel ap)
+  {
+    /*
+     * scan the sequences for references to viewers; create each one the first
+     * time it is referenced, add Rna models to existing viewers
+     */
+    for (JSeq jseq : jseqs)
+    {
+      for (int i = 0; i < jseq.getRnaViewerCount(); i++)
       {
-        for (int t = 0; t < jms.getTreeCount(); t++)
+        RnaViewer viewer = jseq.getRnaViewer(i);
+        AppVarna appVarna = findOrCreateVarnaViewer(viewer,
+                uniqueSetSuffix, ap);
+
+        for (int j = 0; j < viewer.getSecondaryStructureCount(); j++)
         {
+          SecondaryStructure ss = viewer.getSecondaryStructure(j);
+          SequenceI seq = seqRefIds.get(jseq.getId());
+          AlignmentAnnotation ann = this.annotationIds.get(ss
+                  .getAnnotationId());
 
-          Tree tree = jms.getTree(t);
+          /*
+           * add the structure to the Varna display (with session state copied
+           * from the jar to a temporary file)
+           */
+          boolean gapped = ss.isGapped();
+          String rnaTitle = ss.getTitle();
+          String sessionState = ss.getViewerState();
+          String tempStateFile = copyJarEntry(jprovider, sessionState,
+                  "varna");
+          RnaModel rna = new RnaModel(rnaTitle, ann, seq, null, gapped);
+          appVarna.addModelSession(rna, rnaTitle, tempStateFile);
+        }
+        appVarna.setInitialSelection(viewer.getSelectedRna());
+      }
+    }
+  }
 
-          TreePanel tp = (TreePanel) retrieveExistingObj(tree.getId());
-          if (tp == null)
-          {
-            tp = af.ShowNewickTree(
-                    new jalview.io.NewickFile(tree.getNewick()),
-                    tree.getTitle(), tree.getWidth(), tree.getHeight(),
-                    tree.getXpos(), tree.getYpos());
-            if (tree.getId() != null)
-            {
-              // perhaps bind the tree id to something ?
-            }
-          }
-          else
-          {
-            // update local tree attributes ?
-            // TODO: should check if tp has been manipulated by user - if so its
-            // settings shouldn't be modified
-            tp.setTitle(tree.getTitle());
-            tp.setBounds(new Rectangle(tree.getXpos(), tree.getYpos(), tree
-                    .getWidth(), tree.getHeight()));
-            tp.av = av; // af.viewport; // TODO: verify 'associate with all
-            // views'
-            // works still
-            tp.treeCanvas.av = av; // af.viewport;
-            tp.treeCanvas.ap = ap; // af.alignPanel;
+  /**
+   * Locate and return an already instantiated matching AppVarna, or create one
+   * if not found
+   * 
+   * @param viewer
+   * @param viewIdSuffix
+   * @param ap
+   * @return
+   */
+  protected AppVarna findOrCreateVarnaViewer(RnaViewer viewer,
+          String viewIdSuffix, AlignmentPanel ap)
+  {
+    /*
+     * on each load a suffix is appended to the saved viewId, to avoid conflicts
+     * if load is repeated
+     */
+    String postLoadId = viewer.getViewId() + viewIdSuffix;
+    for (JInternalFrame frame : getAllFrames())
+    {
+      if (frame instanceof AppVarna)
+      {
+        AppVarna varna = (AppVarna) frame;
+        if (postLoadId.equals(varna.getViewId()))
+        {
+          // this viewer is already instantiated
+          // could in future here add ap as another 'parent' of the
+          // AppVarna window; currently just 1-to-many
+          return varna;
+        }
+      }
+    }
 
-          }
-          if (tp == null)
-          {
-            warn("There was a problem recovering stored Newick tree: \n"
-                    + tree.getNewick());
-            continue;
-          }
+    /*
+     * viewer not found - make it
+     */
+    RnaViewerModel model = new RnaViewerModel(postLoadId,
+            viewer.getTitle(), viewer.getXpos(), viewer.getYpos(),
+            viewer.getWidth(), viewer.getHeight(),
+            viewer.getDividerLocation());
+    AppVarna varna = new AppVarna(model, ap);
 
-          tp.fitToWindow.setState(tree.getFitToWindow());
-          tp.fitToWindow_actionPerformed(null);
+    return varna;
+  }
 
-          if (tree.getFontName() != null)
-          {
-            tp.setTreeFont(new java.awt.Font(tree.getFontName(), tree
-                    .getFontStyle(), tree.getFontSize()));
-          }
-          else
+  /**
+   * Load any saved trees
+   * 
+   * @param jms
+   * @param view
+   * @param af
+   * @param av
+   * @param ap
+   */
+  protected void loadTrees(JalviewModelSequence jms, Viewport view,
+          AlignFrame af, AlignViewport av, AlignmentPanel ap)
+  {
+    // TODO result of automated refactoring - are all these parameters needed?
+    try
+    {
+      for (int t = 0; t < jms.getTreeCount(); t++)
+      {
+
+        Tree tree = jms.getTree(t);
+
+        TreePanel tp = (TreePanel) retrieveExistingObj(tree.getId());
+        if (tp == null)
+        {
+          tp = af.ShowNewickTree(
+                  new jalview.io.NewickFile(tree.getNewick()),
+                  tree.getTitle(), tree.getWidth(), tree.getHeight(),
+                  tree.getXpos(), tree.getYpos());
+          if (tree.getId() != null)
           {
-            tp.setTreeFont(new java.awt.Font(view.getFontName(), view
-                    .getFontStyle(), tree.getFontSize()));
+            // perhaps bind the tree id to something ?
           }
+        }
+        else
+        {
+          // update local tree attributes ?
+          // TODO: should check if tp has been manipulated by user - if so its
+          // settings shouldn't be modified
+          tp.setTitle(tree.getTitle());
+          tp.setBounds(new Rectangle(tree.getXpos(), tree.getYpos(), tree
+                  .getWidth(), tree.getHeight()));
+          tp.av = av; // af.viewport; // TODO: verify 'associate with all
+          // views'
+          // works still
+          tp.treeCanvas.av = av; // af.viewport;
+          tp.treeCanvas.ap = ap; // af.alignPanel;
 
-          tp.showPlaceholders(tree.getMarkUnlinked());
-          tp.showBootstrap(tree.getShowBootstrap());
-          tp.showDistances(tree.getShowDistances());
+        }
+        if (tp == null)
+        {
+          warn("There was a problem recovering stored Newick tree: \n"
+                  + tree.getNewick());
+          continue;
+        }
 
-          tp.treeCanvas.threshold = tree.getThreshold();
+        tp.fitToWindow.setState(tree.getFitToWindow());
+        tp.fitToWindow_actionPerformed(null);
 
-          if (tree.getCurrentTree())
-          {
-            af.viewport.setCurrentTree(tp.getTree());
-          }
+        if (tree.getFontName() != null)
+        {
+          tp.setTreeFont(new java.awt.Font(tree.getFontName(), tree
+                  .getFontStyle(), tree.getFontSize()));
+        }
+        else
+        {
+          tp.setTreeFont(new java.awt.Font(view.getFontName(), view
+                  .getFontStyle(), tree.getFontSize()));
         }
 
-      } catch (Exception ex)
-      {
-        ex.printStackTrace();
+        tp.showPlaceholders(tree.getMarkUnlinked());
+        tp.showBootstrap(tree.getShowBootstrap());
+        tp.showDistances(tree.getShowDistances());
+
+        tp.treeCanvas.threshold = tree.getThreshold();
+
+        if (tree.getCurrentTree())
+        {
+          af.viewport.setCurrentTree(tp.getTree());
+        }
       }
-    }
 
-    // //LOAD STRUCTURES
-    if (loadTreesAndStructures)
+    } catch (Exception ex)
     {
-      loadStructures(jprovider, jseqs, af, ap);
+      ex.printStackTrace();
     }
-    // and finally return.
-    return af;
   }
 
   /**
@@ -3258,7 +3489,7 @@ public class Jalview2XML
    * @param af
    * @param ap
    */
-  protected void loadStructures(jarInputStreamProvider jprovider,
+  protected void loadPDBStructures(jarInputStreamProvider jprovider,
           JSeq[] jseqs, AlignFrame af, AlignmentPanel ap)
   {
     /*
@@ -3442,21 +3673,22 @@ public class Jalview2XML
    * @param af
    * @param jprovider
    */
-  protected void createChimeraViewer(Entry<String, StructureViewerModel> viewerData,
-          AlignFrame af,
+  protected void createChimeraViewer(
+          Entry<String, StructureViewerModel> viewerData, AlignFrame af,
           jarInputStreamProvider jprovider)
   {
     StructureViewerModel data = viewerData.getValue();
-    String chimeraSessionFile =  data.getStateData();
+    String chimeraSessionFile = data.getStateData();
 
     /*
      * Copy Chimera session from jar entry "viewer_"+viewId to a temporary file
      * 
-     * Note this is the 'saved' viewId as in the project file XML, _not_ the
+     * NB this is the 'saved' viewId as in the project file XML, _not_ the
      * 'uniquified' sviewid used to reconstruct the viewer here
      */
-    chimeraSessionFile = copyJarEntry(jprovider,
-            getViewerJarEntryName(data.getViewId()), "chimera");
+    String viewerJarEntryName = getViewerJarEntryName(data.getViewId());
+    chimeraSessionFile = copyJarEntry(jprovider, viewerJarEntryName,
+            "chimera");
 
     Set<Entry<File, StructureData>> fileData = data.getFileData()
             .entrySet();
@@ -3481,9 +3713,10 @@ public class Jalview2XML
     final SequenceI[][] seqsArray = allseqs.toArray(new SequenceI[allseqs
             .size()][]);
     String newViewId = viewerData.getKey();
+
     ChimeraViewFrame cvf = new ChimeraViewFrame(chimeraSessionFile,
-            af.alignPanel, pdbArray,
-            seqsArray, colourByChimera, colourBySequence, newViewId);
+            af.alignPanel, pdbArray, seqsArray, colourByChimera,
+            colourBySequence, newViewId);
     cvf.setSize(data.getWidth(), data.getHeight());
     cvf.setLocation(data.getX(), data.getY());
   }
@@ -3572,16 +3805,23 @@ public class Jalview2XML
       newFileLoc.append(";");
     }
 
-    if (newFileLoc.length() > 0)
+    if (newFileLoc.length() == 0)
     {
-      int histbug = newFileLoc.indexOf("history = ");
+      return;
+    }
+    int histbug = newFileLoc.indexOf("history = ");
+    if (histbug > -1)
+    {
+      /*
+       * change "history = [true|false];" to "history = [1|0];"
+       */
       histbug += 10;
       int diff = histbug == -1 ? -1 : newFileLoc.indexOf(";", histbug);
       String val = (diff == -1) ? null : newFileLoc
               .substring(histbug, diff);
       if (val != null && val.length() >= 4)
       {
-        if (val.contains("e"))
+        if (val.contains("e")) // eh? what can it be?
         {
           if (val.trim().equals("true"))
           {
@@ -3594,54 +3834,55 @@ public class Jalview2XML
           newFileLoc.replace(histbug, diff, val);
         }
       }
+    }
 
-      final String[] pdbf = pdbfilenames.toArray(new String[pdbfilenames
-              .size()]);
-      final String[] id = pdbids.toArray(new String[pdbids.size()]);
-      final SequenceI[][] sq = seqmaps
-              .toArray(new SequenceI[seqmaps.size()][]);
-      final String fileloc = newFileLoc.toString();
-      final String sviewid = viewerData.getKey();
-      final AlignFrame alf = af;
-      final Rectangle rect = new Rectangle(svattrib.getX(),
-              svattrib.getY(), svattrib.getWidth(), svattrib.getHeight());
-      try
+    final String[] pdbf = pdbfilenames.toArray(new String[pdbfilenames
+            .size()]);
+    final String[] id = pdbids.toArray(new String[pdbids.size()]);
+    final SequenceI[][] sq = seqmaps
+            .toArray(new SequenceI[seqmaps.size()][]);
+    final String fileloc = newFileLoc.toString();
+    final String sviewid = viewerData.getKey();
+    final AlignFrame alf = af;
+    final Rectangle rect = new Rectangle(svattrib.getX(), svattrib.getY(),
+            svattrib.getWidth(), svattrib.getHeight());
+    try
+    {
+      javax.swing.SwingUtilities.invokeAndWait(new Runnable()
       {
-        javax.swing.SwingUtilities.invokeAndWait(new Runnable()
+        @Override
+        public void run()
         {
-          @Override
-          public void run()
+          JalviewStructureDisplayI sview = null;
+          try
           {
-            JalviewStructureDisplayI sview = null;
-            try
-            {
-              sview = new StructureViewer(alf.alignPanel
-                      .getStructureSelectionManager()).createView(
-                      StructureViewer.ViewerType.JMOL, pdbf, id, sq,
-                      alf.alignPanel, svattrib, fileloc, rect, sviewid);
-              addNewStructureViewer(sview);
-            } catch (OutOfMemoryError ex)
+            sview = new StructureViewer(alf.alignPanel
+                    .getStructureSelectionManager()).createView(
+                    StructureViewer.ViewerType.JMOL, pdbf, id, sq,
+                    alf.alignPanel, svattrib, fileloc, rect, sviewid);
+            addNewStructureViewer(sview);
+          } catch (OutOfMemoryError ex)
+          {
+            new OOMWarning("restoring structure view for PDB id " + id,
+                    (OutOfMemoryError) ex.getCause());
+            if (sview != null && sview.isVisible())
             {
-              new OOMWarning("restoring structure view for PDB id " + id,
-                      (OutOfMemoryError) ex.getCause());
-              if (sview != null && sview.isVisible())
-              {
-                sview.closeViewer(false);
-                sview.setVisible(false);
-                sview.dispose();
-              }
+              sview.closeViewer(false);
+              sview.setVisible(false);
+              sview.dispose();
             }
           }
-        });
-      } catch (InvocationTargetException ex)
-      {
-        warn("Unexpected error when opening Jmol view.", ex);
+        }
+      });
+    } catch (InvocationTargetException ex)
+    {
+      warn("Unexpected error when opening Jmol view.", ex);
 
-      } catch (InterruptedException e)
-      {
-        // e.printStackTrace();
-      }
+    } catch (InterruptedException e)
+    {
+      // e.printStackTrace();
     }
+
   }
 
   /**
@@ -3653,7 +3894,7 @@ public class Jalview2XML
    */
   protected String getViewerJarEntryName(String viewId)
   {
-    return "viewer_" + viewId;
+    return VIEWER_PREFIX + viewId;
   }
 
   /**
@@ -3794,7 +4035,8 @@ public class Jalview2XML
    * @return true if version is development/null or evaluates to the same or
    *         later X.Y.Z (where X,Y,Z are like [0-9]+b?[0-9]*)
    */
-  private boolean isVersionStringLaterThan(String supported, String version)
+  protected boolean isVersionStringLaterThan(String supported,
+          String version)
   {
     if (version == null || version.equalsIgnoreCase("DEVELOPMENT BUILD")
             || version.equalsIgnoreCase("Test")
@@ -4177,7 +4419,7 @@ public class Jalview2XML
       }
     }
     af.setMenusFromViewport(af.viewport);
-    
+
     // TODO: we don't need to do this if the viewport is aready visible.
     /*
      * Add the AlignFrame to the desktop (it may be 'gathered' later), unless it
@@ -4630,20 +4872,24 @@ public class Jalview2XML
     }
   }
 
-  java.util.Hashtable datasetIds = null;
+  /*
+   * TODO use AlignmentI here and in related methods - needs
+   * AlignmentI.getDataset() changed to return AlignmentI instead of Alignment
+   */
+  Hashtable<String, Alignment> datasetIds = null;
 
-  java.util.IdentityHashMap dataset2Ids = null;
+  IdentityHashMap<Alignment, String> dataset2Ids = null;
 
   private Alignment getDatasetFor(String datasetId)
   {
     if (datasetIds == null)
     {
-      datasetIds = new Hashtable();
+      datasetIds = new Hashtable<String, Alignment>();
       return null;
     }
     if (datasetIds.containsKey(datasetId))
     {
-      return (Alignment) datasetIds.get(datasetId);
+      return datasetIds.get(datasetId);
     }
     return null;
   }
@@ -4652,7 +4898,7 @@ public class Jalview2XML
   {
     if (datasetIds == null)
     {
-      datasetIds = new Hashtable();
+      datasetIds = new Hashtable<String, Alignment>();
     }
     datasetIds.put(datasetId, dataset);
   }
@@ -4663,7 +4909,7 @@ public class Jalview2XML
    * @param dataset
    * @return
    */
-  private String getDatasetIdRef(jalview.datamodel.Alignment dataset)
+  private String getDatasetIdRef(Alignment dataset)
   {
     if (dataset.getDataset() != null)
     {
@@ -4675,11 +4921,11 @@ public class Jalview2XML
       // make a new datasetId and record it
       if (dataset2Ids == null)
       {
-        dataset2Ids = new IdentityHashMap();
+        dataset2Ids = new IdentityHashMap<Alignment, String>();
       }
       else
       {
-        datasetId = (String) dataset2Ids.get(dataset);
+        datasetId = dataset2Ids.get(dataset);
       }
       if (datasetId == null)
       {
@@ -4798,8 +5044,7 @@ public class Jalview2XML
           boolean keepSeqRefs)
   {
     initSeqRefs();
-    jalview.schemabinding.version2.JalviewModel jm = saveState(ap, null,
-            null);
+    JalviewModel jm = saveState(ap, null, null, null);
 
     if (!keepSeqRefs)
     {
@@ -5079,7 +5324,17 @@ public class Jalview2XML
         }
       }
     }
-  
+
     return result;
   }
+
+  /**
+   * Returns an incrementing counter (0, 1, 2...)
+   * 
+   * @return
+   */
+  private synchronized int nextCounter()
+  {
+    return counter++;
+  }
 }
index 2aa8675..5699d9e 100644 (file)
@@ -204,7 +204,7 @@ public class PopupMenu extends JPopupMenu
 
   JMenu jMenu1 = new JMenu();
 
-  JMenuItem proteinStructureMenu = new JMenuItem();
+  JMenuItem pdbStructureDialog = new JMenuItem();
 
   JMenu rnaStructureMenu = new JMenu();
 
@@ -322,49 +322,55 @@ public class PopupMenu extends JPopupMenu
         makeReferenceSeq.setText("Mark as representative");
       }
 
-      if (ap.av.getAlignment().isNucleotide() == false)
+      if (!ap.av.getAlignment().isNucleotide())
       {
         remove(rnaStructureMenu);
       }
-
-      if (ap.av.getAlignment().isNucleotide() == true)
+      else
       {
-        AlignmentAnnotation[] aa = ap.av.getAlignment()
+        int origCount = rnaStructureMenu.getItemCount();
+        /*
+         * add menu items to 2D-render any alignment or sequence secondary
+         * structure annotation
+         */
+        AlignmentAnnotation[] aas = ap.av.getAlignment()
                 .getAlignmentAnnotation();
-        for (int i = 0; aa != null && i < aa.length; i++)
+        if (aas != null)
         {
-          if (aa[i].isValidStruc() && aa[i].sequenceRef == null)
+          for (final AlignmentAnnotation aa : aas)
           {
-            final String rnastruc = aa[i].getRNAStruc();
-            final String structureLine = aa[i].label + " (alignment)";
-            menuItem = new JMenuItem();
-            menuItem.setText(MessageManager.formatMessage(
-                    "label.2d_rna_structure_line", new Object[]
-                    { structureLine }));
-            menuItem.addActionListener(new java.awt.event.ActionListener()
+            if (aa.isValidStruc() && aa.sequenceRef == null)
             {
-              @Override
-              public void actionPerformed(ActionEvent e)
+              /*
+               * valid alignment RNA secondary structure annotation
+               */
+              menuItem = new JMenuItem();
+              menuItem.setText(MessageManager.formatMessage(
+                      "label.2d_rna_structure_line", new Object[]
+                      { aa.label }));
+              menuItem.addActionListener(new java.awt.event.ActionListener()
               {
-                new AppVarna(structureLine, seq, seq.getSequenceAsString(),
-                        rnastruc, seq.getName(), ap);
-                System.out.println("end");
-              }
-            });
-            rnaStructureMenu.add(menuItem);
+                @Override
+                public void actionPerformed(ActionEvent e)
+                {
+                  new AppVarna(seq, aa, ap);
+                }
+              });
+              rnaStructureMenu.add(menuItem);
+            }
           }
         }
 
-
         if (seq.getAnnotation() != null)
         {
-          AlignmentAnnotation seqAnno[] = seq.getAnnotation();
-          for (int i = 0; i < seqAnno.length; i++)
+          AlignmentAnnotation seqAnns[] = seq.getAnnotation();
+          for (final AlignmentAnnotation aa : seqAnns)
           {
-            if (seqAnno[i].isValidStruc())
+            if (aa.isValidStruc())
             {
-              final String rnastruc = seqAnno[i].getRNAStruc();
-
+              /*
+               * valid sequence RNA secondary structure annotation
+               */
               // TODO: make rnastrucF a bit more nice
               menuItem = new JMenuItem();
               menuItem.setText(MessageManager.formatMessage(
@@ -376,16 +382,17 @@ public class PopupMenu extends JPopupMenu
                 public void actionPerformed(ActionEvent e)
                 {
                   // TODO: VARNA does'nt print gaps in the sequence
-
-                  new AppVarna(seq.getName() + " structure", seq, seq
-                          .getSequenceAsString(), rnastruc, seq.getName(),
-                          ap);
+                  new AppVarna(seq, aa, ap);
                 }
               });
               rnaStructureMenu.add(menuItem);
             }
           }
         }
+        if (rnaStructureMenu.getItemCount() == origCount)
+        {
+          remove(rnaStructureMenu);
+        }
       }
 
       menuItem = new JMenuItem(
@@ -598,7 +605,7 @@ public class PopupMenu extends JPopupMenu
     if (seq == null)
     {
       sequenceMenu.setVisible(false);
-      proteinStructureMenu.setVisible(false);
+      pdbStructureDialog.setVisible(false);
       rnaStructureMenu.setVisible(false);
     }
 
@@ -1340,9 +1347,9 @@ public class PopupMenu extends JPopupMenu
       }
     });
     jMenu1.setText(MessageManager.getString("label.group"));
-    proteinStructureMenu.setText(MessageManager
-            .getString("label.view_protein_structure"));
-    proteinStructureMenu.addActionListener(new ActionListener()
+    pdbStructureDialog.setText(MessageManager
+            .getString("label.show_pdbstruct_dialog"));
+    pdbStructureDialog.addActionListener(new ActionListener()
     {
       @Override
       public void actionPerformed(ActionEvent actionEvent)
@@ -1403,7 +1410,7 @@ public class PopupMenu extends JPopupMenu
     add(groupMenu);
     add(sequenceMenu);
     add(rnaStructureMenu);
-    add(proteinStructureMenu);
+    add(pdbStructureDialog);
     if (sequence!=null)
     {
       add(hideInsertions);
@@ -2395,7 +2402,7 @@ public class PopupMenu extends JPopupMenu
     // or we simply trust the user wants
     // wysiwig behaviour
 
-    cap.setText(new FormatAdapter().formatSequences(e.getActionCommand(),
+    cap.setText(new FormatAdapter(ap).formatSequences(e.getActionCommand(),
             ap, true));
   }
 
index 5307f26..c7db535 100644 (file)
@@ -1,5 +1,7 @@
 package jalview.gui;
 
+import jalview.util.MessageManager;
+
 import java.awt.BorderLayout;
 import java.awt.Component;
 import java.awt.GridLayout;
@@ -14,8 +16,6 @@ import javax.swing.JPanel;
 import javax.swing.JProgressBar;
 import javax.swing.SwingUtilities;
 
-import jalview.util.MessageManager;
-
 /**
  * A class to manage multiple progress bars embedded in a JPanel.
  */
diff --git a/src/jalview/gui/ScriptWindow.java b/src/jalview/gui/ScriptWindow.java
deleted file mode 100644 (file)
index 972e5ef..0000000
+++ /dev/null
@@ -1,739 +0,0 @@
-/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
- */
-package jalview.gui;
-
-import org.jmol.api.*;
-
-import jalview.jbgui.GStructureViewer;
-
-import java.awt.*;
-import java.awt.event.*;
-
-import javax.swing.*;
-import javax.swing.text.*;
-
-import java.util.Vector;
-
-import org.jmol.i18n.GT;
-import org.jmol.util.Logger;
-import org.jmol.util.CommandHistory;
-
-// TODO: this class is copied in from jmol 11.0.2 - upgrade to 12.0.2 ?
-public final class ScriptWindow extends JPanel implements ActionListener,
-        EnterListener
-{
-
-  private ConsoleTextPane console;
-
-  private JButton closeButton;
-
-  private JButton runButton;
-
-  private JButton haltButton;
-
-  private JButton clearButton;
-
-  private JButton historyButton;
-
-  private JButton stateButton;
-
-  JmolViewer viewer;
-
-  GStructureViewer appJmol;
-
-  public ScriptWindow(AppJmol appJmol)
-  {
-    this.viewer = appJmol.jmb.viewer;
-    this.appJmol = appJmol;
-
-    setLayout(new BorderLayout());
-
-    console = new ConsoleTextPane(this);
-
-    console.setPrompt();
-    add(new JScrollPane(console), BorderLayout.CENTER);
-
-    JPanel buttonPanel = new JPanel();
-    add(buttonPanel, BorderLayout.SOUTH);
-
-    runButton = new JButton(GT._("Run"));
-    haltButton = new JButton(GT._("Halt"));
-    runButton.addActionListener(this);
-    // buttonPanel.add(runButton);
-    haltButton.addActionListener(this);
-    // buttonPanel.add(haltButton);
-    haltButton.setEnabled(false);
-
-    clearButton = new JButton(GT._("Clear"));
-    clearButton.addActionListener(this);
-    buttonPanel.add(clearButton);
-
-    historyButton = new JButton(GT._("History"));
-    historyButton.addActionListener(this);
-    buttonPanel.add(historyButton);
-
-    stateButton = new JButton(GT._("State"));
-    stateButton.addActionListener(this);
-    buttonPanel.add(stateButton);
-
-    closeButton = new JButton(GT._("Close"));
-    closeButton.addActionListener(this);
-    buttonPanel.add(closeButton);
-
-    for (int i = 0; i < buttonPanel.getComponentCount(); i++)
-    {
-      // ((JButton)buttonPanel.getComponent(i))
-      // .setMargin(new Insets(0, 0, 0, 0));
-    }
-
-  }
-
-  public void sendConsoleEcho(String strEcho)
-  {
-    if (strEcho != null && !isError)
-    {
-
-      console.outputEcho(strEcho);
-
-    }
-    setError(false);
-  }
-
-  boolean isError = false;
-
-  void setError(boolean TF)
-  {
-    isError = TF;
-    // if (isError)
-    // console.recallCommand(true);
-  }
-
-  public void sendConsoleMessage(String strStatus)
-  {
-    if (strStatus == null)
-    {
-      console.clearContent();
-      console.outputStatus("");
-    }
-    else if (strStatus.indexOf("ERROR:") >= 0)
-    {
-      console.outputError(strStatus);
-      isError = true;
-    }
-    else if (!isError)
-    {
-      console.outputStatus(strStatus);
-    }
-  }
-
-  public void notifyScriptTermination(String strMsg, int msWalltime)
-  {
-    if (strMsg != null && strMsg.indexOf("ERROR") >= 0)
-    {
-      console.outputError(strMsg);
-    }
-    runButton.setEnabled(true);
-    haltButton.setEnabled(false);
-  }
-
-  public void enterPressed()
-  {
-    runButton.doClick(100);
-    // executeCommand();
-  }
-
-  class ExecuteCommandThread extends Thread
-  {
-
-    String strCommand;
-
-    ExecuteCommandThread(String command)
-    {
-      strCommand = command;
-    }
-
-    public void run()
-    {
-      try
-      {
-        executeCommand(strCommand);
-      } catch (Exception ie)
-      {
-        Logger.debug("execution command interrupted!" + ie);
-      }
-    }
-  }
-
-  ExecuteCommandThread execThread;
-
-  void executeCommandAsThread()
-  {
-    String strCommand = console.getCommandString().trim();
-    if (strCommand.length() > 0)
-    {
-      execThread = new ExecuteCommandThread(strCommand);
-      execThread.start();
-    }
-  }
-
-  void executeCommand(String strCommand)
-  {
-    boolean doWait;
-    setError(false);
-    console.appendNewline();
-    console.setPrompt();
-    if (strCommand.length() > 0)
-    {
-      String strErrorMessage = null;
-      doWait = (strCommand.indexOf("WAIT ") == 0);
-      if (doWait)
-      { // for testing, mainly
-        // demonstrates using the statusManager system.
-        runButton.setEnabled(false);
-        haltButton.setEnabled(true);
-
-        Vector info = (Vector) viewer
-                .scriptWaitStatus(strCommand.substring(5),
-                        "+fileLoaded,+scriptStarted,+scriptStatus,+scriptEcho,+scriptTerminated");
-        runButton.setEnabled(true);
-        haltButton.setEnabled(false);
-        /*
-         * info = [ statusRecortSet0, statusRecortSet1, statusRecortSet2, ...]
-         * statusRecordSet = [ statusRecord0, statusRecord1, statusRecord2, ...]
-         * statusRecord = [int msgPtr, String statusName, int intInfo, String
-         * msg]
-         */
-        for (int i = 0; i < info.size(); i++)
-        {
-          Vector statusRecordSet = (Vector) info.get(i);
-          for (int j = 0; j < statusRecordSet.size(); j++)
-          {
-            Vector statusRecord = (Vector) statusRecordSet.get(j);
-            Logger.info("msg#=" + statusRecord.get(0) + " "
-                    + statusRecord.get(1) + " intInfo="
-                    + statusRecord.get(2) + " stringInfo="
-                    + statusRecord.get(3));
-          }
-        }
-        console.appendNewline();
-      }
-      else
-      {
-        boolean isScriptExecuting = viewer.isScriptExecuting();
-        if (viewer.checkHalt(strCommand, true))
-          strErrorMessage = (isScriptExecuting ? "string execution halted with "
-                  + strCommand
-                  : "no script was executing");
-        else
-          strErrorMessage = "";// viewer.scriptCheck(strCommand);
-        // the problem is that scriptCheck is synchronized, so these might get
-        // backed up.
-        if (strErrorMessage != null && strErrorMessage.length() > 0)
-        {
-          console.outputError(strErrorMessage);
-        }
-        else
-        {
-          // runButton.setEnabled(false);
-          haltButton.setEnabled(true);
-          viewer.script(strCommand);
-        }
-      }
-    }
-    console.grabFocus();
-  }
-
-  public void actionPerformed(ActionEvent e)
-  {
-    Object source = e.getSource();
-    if (source == closeButton)
-    {
-      // appJmol.showConsole(false);
-    }
-    else if (source == runButton)
-    {
-      executeCommandAsThread();
-    }
-    else if (source == clearButton)
-    {
-      console.clearContent();
-    }
-    else if (source == historyButton)
-    {
-      console.clearContent(viewer.getSetHistory(Integer.MAX_VALUE));
-    }
-    else if (source == stateButton)
-    {
-      console.clearContent(viewer.getStateInfo());
-    }
-    else if (source == haltButton)
-    {
-      viewer.haltScriptExecution();
-    }
-    console.grabFocus(); // always grab the focus (e.g., after clear)
-  }
-}
-
-class ConsoleTextPane extends JTextPane
-{
-
-  ConsoleDocument consoleDoc;
-
-  EnterListener enterListener;
-
-  JmolViewer viewer;
-
-  ConsoleTextPane(ScriptWindow scriptWindow)
-  {
-    super(new ConsoleDocument());
-    consoleDoc = (ConsoleDocument) getDocument();
-    consoleDoc.setConsoleTextPane(this);
-    this.enterListener = (EnterListener) scriptWindow;
-    this.viewer = scriptWindow.viewer;
-  }
-
-  public String getCommandString()
-  {
-    String cmd = consoleDoc.getCommandString();
-    return cmd;
-  }
-
-  public void setPrompt()
-  {
-    consoleDoc.setPrompt();
-  }
-
-  public void appendNewline()
-  {
-    consoleDoc.appendNewline();
-  }
-
-  public void outputError(String strError)
-  {
-    consoleDoc.outputError(strError);
-  }
-
-  public void outputErrorForeground(String strError)
-  {
-    consoleDoc.outputErrorForeground(strError);
-  }
-
-  public void outputEcho(String strEcho)
-  {
-    consoleDoc.outputEcho(strEcho);
-  }
-
-  public void outputStatus(String strStatus)
-  {
-    consoleDoc.outputStatus(strStatus);
-  }
-
-  public void enterPressed()
-  {
-    if (enterListener != null)
-      enterListener.enterPressed();
-  }
-
-  public void clearContent()
-  {
-    clearContent(null);
-  }
-
-  public void clearContent(String text)
-  {
-    consoleDoc.clearContent();
-    if (text != null)
-      consoleDoc.outputEcho(text);
-    setPrompt();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see java.awt.Component#processKeyEvent(java.awt.event.KeyEvent)
-   */
-
-  /**
-   * Custom key event processing for command 0 implementation.
-   * 
-   * Captures key up and key down strokes to call command history and redefines
-   * the same events with control down to allow caret vertical shift.
-   * 
-   * @see java.awt.Component#processKeyEvent(java.awt.event.KeyEvent)
-   */
-  protected void processKeyEvent(KeyEvent ke)
-  {
-    // Id Control key is down, captures events does command
-    // history recall and inhibits caret vertical shift.
-    if (ke.getKeyCode() == KeyEvent.VK_UP
-            && ke.getID() == KeyEvent.KEY_PRESSED && !ke.isControlDown())
-    {
-      recallCommand(true);
-    }
-    else if (ke.getKeyCode() == KeyEvent.VK_DOWN
-            && ke.getID() == KeyEvent.KEY_PRESSED && !ke.isControlDown())
-    {
-      recallCommand(false);
-    }
-    // If Control key is down, redefines the event as if it
-    // where a key up or key down stroke without modifiers.
-    // This allows to move the caret up and down
-    // with no command history recall.
-    else if ((ke.getKeyCode() == KeyEvent.VK_DOWN || ke.getKeyCode() == KeyEvent.VK_UP)
-            && ke.getID() == KeyEvent.KEY_PRESSED && ke.isControlDown())
-    {
-      super.processKeyEvent(new KeyEvent((Component) ke.getSource(), ke
-              .getID(), ke.getWhen(), 0, // No modifiers
-              ke.getKeyCode(), ke.getKeyChar(), ke.getKeyLocation()));
-    }
-    // Standard processing for other events.
-    else
-    {
-      super.processKeyEvent(ke);
-      // check command for compiler-identifyable syntax issues
-      // this may have to be taken out if people start complaining
-      // that only some of the commands are being checked
-      // that is -- that the script itself is not being fully checked
-
-      // not perfect -- help here?
-      if (ke.getID() == KeyEvent.KEY_RELEASED
-              && (ke.getKeyCode() > KeyEvent.VK_DOWN)
-              || ke.getKeyCode() == KeyEvent.VK_BACK_SPACE)
-        checkCommand();
-    }
-  }
-
-  /**
-   * Recall command history.
-   * 
-   * @param up
-   *          - history up or down
-   */
-  void recallCommand(boolean up)
-  {
-    String cmd = viewer.getSetHistory(up ? -1 : 1);
-    if (cmd == null)
-    {
-      return;
-    }
-    try
-    {
-      if (cmd.endsWith(CommandHistory.ERROR_FLAG))
-      {
-        cmd = cmd.substring(0, cmd.indexOf(CommandHistory.ERROR_FLAG));
-        consoleDoc.replaceCommand(cmd, true);
-      }
-      else
-      {
-        consoleDoc.replaceCommand(cmd, false);
-      }
-    } catch (BadLocationException e)
-    {
-      e.printStackTrace();
-    }
-  }
-
-  void checkCommand()
-  {
-    String strCommand = consoleDoc.getCommandString();
-    if (strCommand.length() == 0)
-      return;
-    consoleDoc
-            .colorCommand(viewer.scriptCheck(strCommand) == null ? consoleDoc.attUserInput
-                    : consoleDoc.attError);
-  }
-
-}
-
-class ConsoleDocument extends DefaultStyledDocument
-{
-
-  ConsoleTextPane consoleTextPane;
-
-  SimpleAttributeSet attError;
-
-  SimpleAttributeSet attEcho;
-
-  SimpleAttributeSet attPrompt;
-
-  SimpleAttributeSet attUserInput;
-
-  SimpleAttributeSet attStatus;
-
-  ConsoleDocument()
-  {
-    super();
-
-    attError = new SimpleAttributeSet();
-    StyleConstants.setForeground(attError, Color.red);
-
-    attPrompt = new SimpleAttributeSet();
-    StyleConstants.setForeground(attPrompt, Color.magenta);
-
-    attUserInput = new SimpleAttributeSet();
-    StyleConstants.setForeground(attUserInput, Color.black);
-
-    attEcho = new SimpleAttributeSet();
-    StyleConstants.setForeground(attEcho, Color.blue);
-    StyleConstants.setBold(attEcho, true);
-
-    attStatus = new SimpleAttributeSet();
-    StyleConstants.setForeground(attStatus, Color.black);
-    StyleConstants.setItalic(attStatus, true);
-  }
-
-  void setConsoleTextPane(ConsoleTextPane consoleTextPane)
-  {
-    this.consoleTextPane = consoleTextPane;
-  }
-
-  Position positionBeforePrompt; // starts at 0, so first time isn't tracked
-
-  // (at least on Mac OS X)
-
-  Position positionAfterPrompt; // immediately after $, so this will track
-
-  int offsetAfterPrompt; // only still needed for the insertString override and
-
-  // replaceCommand
-
-  /**
-   * Removes all content of the script window, and add a new prompt.
-   */
-  void clearContent()
-  {
-    try
-    {
-      super.remove(0, getLength());
-    } catch (BadLocationException exception)
-    {
-      System.out.println("Could not clear script window content: "
-              + exception.getMessage());
-    }
-  }
-
-  void setPrompt()
-  {
-    try
-    {
-      super.insertString(getLength(), "$ ", attPrompt);
-      setOffsetPositions();
-      consoleTextPane.setCaretPosition(offsetAfterPrompt);
-    } catch (BadLocationException e)
-    {
-      e.printStackTrace();
-    }
-  }
-
-  void setOffsetPositions()
-  {
-    try
-    {
-      offsetAfterPrompt = getLength();
-      positionBeforePrompt = createPosition(offsetAfterPrompt - 2);
-      // after prompt should be immediately after $ otherwise tracks the end
-      // of the line (and no command will be found) at least on Mac OS X it did.
-      positionAfterPrompt = createPosition(offsetAfterPrompt - 1);
-    } catch (BadLocationException e)
-    {
-      e.printStackTrace();
-    }
-  }
-
-  void setNoPrompt()
-  {
-    try
-    {
-      offsetAfterPrompt = getLength();
-      positionAfterPrompt = positionBeforePrompt = createPosition(offsetAfterPrompt);
-      consoleTextPane.setCaretPosition(offsetAfterPrompt);
-    } catch (BadLocationException e)
-    {
-      e.printStackTrace();
-    }
-  }
-
-  // it looks like the positionBeforePrompt does not track when it started out
-  // as 0
-  // and a insertString at location 0 occurs. It may be better to track the
-  // position after the prompt in stead
-  void outputBeforePrompt(String str, SimpleAttributeSet attribute)
-  {
-    try
-    {
-      int pt = consoleTextPane.getCaretPosition();
-      Position caretPosition = createPosition(pt);
-      pt = positionBeforePrompt.getOffset();
-      super.insertString(pt, str + "\n", attribute);
-      setOffsetPositions();
-      pt = caretPosition.getOffset();
-      consoleTextPane.setCaretPosition(pt);
-    } catch (BadLocationException e)
-    {
-      e.printStackTrace();
-    }
-  }
-
-  void outputError(String strError)
-  {
-    outputBeforePrompt(strError, attError);
-  }
-
-  void outputErrorForeground(String strError)
-  {
-    try
-    {
-      super.insertString(getLength(), strError + "\n", attError);
-      consoleTextPane.setCaretPosition(getLength());
-    } catch (BadLocationException e)
-    {
-      e.printStackTrace();
-
-    }
-  }
-
-  void outputEcho(String strEcho)
-  {
-    outputBeforePrompt(strEcho, attEcho);
-  }
-
-  void outputStatus(String strStatus)
-  {
-    outputBeforePrompt(strStatus, attStatus);
-  }
-
-  void appendNewline()
-  {
-    try
-    {
-      super.insertString(getLength(), "\n", attUserInput);
-      consoleTextPane.setCaretPosition(getLength());
-    } catch (BadLocationException e)
-    {
-      e.printStackTrace();
-    }
-  }
-
-  // override the insertString to make sure everything typed ends up at the end
-  // or in the 'command line' using the proper font, and the newline is
-  // processed.
-  public void insertString(int offs, String str, AttributeSet a)
-          throws BadLocationException
-  {
-    int ichNewline = str.indexOf('\n');
-    if (ichNewline > 0)
-      str = str.substring(0, ichNewline);
-    if (ichNewline != 0)
-    {
-      if (offs < offsetAfterPrompt)
-      {
-        offs = getLength();
-      }
-      super.insertString(offs, str, a == attError ? a : attUserInput);
-      consoleTextPane.setCaretPosition(offs + str.length());
-    }
-    if (ichNewline >= 0)
-    {
-      consoleTextPane.enterPressed();
-    }
-  }
-
-  String getCommandString()
-  {
-    String strCommand = "";
-    try
-    {
-      int cmdStart = positionAfterPrompt.getOffset();
-      strCommand = getText(cmdStart, getLength() - cmdStart);
-      while (strCommand.length() > 0 && strCommand.charAt(0) == ' ')
-        strCommand = strCommand.substring(1);
-    } catch (BadLocationException e)
-    {
-      e.printStackTrace();
-    }
-    return strCommand;
-  }
-
-  public void remove(int offs, int len) throws BadLocationException
-  {
-    if (offs < offsetAfterPrompt)
-    {
-      len -= offsetAfterPrompt - offs;
-      if (len <= 0)
-        return;
-      offs = offsetAfterPrompt;
-    }
-    super.remove(offs, len);
-    // consoleTextPane.setCaretPosition(offs);
-  }
-
-  public void replace(int offs, int length, String str, AttributeSet attrs)
-          throws BadLocationException
-  {
-    if (offs < offsetAfterPrompt)
-    {
-      if (offs + length < offsetAfterPrompt)
-      {
-        offs = getLength();
-        length = 0;
-      }
-      else
-      {
-        length -= offsetAfterPrompt - offs;
-        offs = offsetAfterPrompt;
-      }
-    }
-    super.replace(offs, length, str, attrs);
-    // consoleTextPane.setCaretPosition(offs + str.length());
-  }
-
-  /**
-   * Replaces current command on script.
-   * 
-   * @param newCommand
-   *          new command value
-   * @param isError
-   *          true to set error color ends with #??
-   * 
-   * @throws BadLocationException
-   */
-  void replaceCommand(String newCommand, boolean isError)
-          throws BadLocationException
-  {
-    if (positionAfterPrompt == positionBeforePrompt)
-      return;
-    replace(offsetAfterPrompt, getLength() - offsetAfterPrompt, newCommand,
-            isError ? attError : attUserInput);
-  }
-
-  void colorCommand(SimpleAttributeSet att)
-  {
-    if (positionAfterPrompt == positionBeforePrompt)
-      return;
-    setCharacterAttributes(offsetAfterPrompt, getLength()
-            - offsetAfterPrompt, att, true);
-  }
-}
-
-interface EnterListener
-{
-  public void enterPressed();
-}
index 70acb7b..21286ad 100755 (executable)
@@ -323,11 +323,17 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
     {
       boolean srep = av.isDisplayReferenceSeq();
       boolean getboxColour = false;
+      boolean isarep = av.getAlignment().getSeqrep() == seq;
+      boolean isgrep = currentSequenceGroup != null ? currentSequenceGroup
+              .getSeqrep() == seq : false;
+      char sr_c;
       for (int i = start; i <= end; i++)
       {
+
         graphics.setColor(av.getTextColour());
         getboxColour = false;
         s = seq.getCharAt(i);
+
         if (!renderGaps && jalview.util.Comparison.isGap(s))
         {
           continue;
@@ -364,11 +370,12 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
           {
             graphics.setColor(currentSequenceGroup.textColour);
           }
-          if (currentSequenceGroup.getShowNonconserved()) // todo optimize
+          if (!isarep && !isgrep
+                  && currentSequenceGroup.getShowNonconserved()) // todo
+                                                                 // optimize
           {
             // todo - use sequence group consensus
-            s = getDisplayChar(srep, i, s,
-                    '.');
+            s = getDisplayChar(srep, i, s, '.', currentSequenceGroup);
 
           }
 
@@ -408,10 +415,9 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
               graphics.setColor(av.getTextColour2());
             }
           }
-          if (av.getShowUnconserved())
+          if (!isarep && av.getShowUnconserved())
           {
-            s = getDisplayChar(srep, i, s,
-                    '.');
+            s = getDisplayChar(srep, i, s, '.', currentSequenceGroup);
 
           }
 
@@ -438,12 +444,20 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
    * @return
    */
   private char getDisplayChar(final boolean usesrep, int position,
-          char sequenceChar, char conservedChar)
+          char sequenceChar, char conservedChar, SequenceGroup currentGroup)
   {
     // TODO - use currentSequenceGroup rather than alignment
     // currentSequenceGroup.getConsensus()
-    char conschar = (usesrep) ? av.getAlignment().getSeqrep().getCharAt(position) : av.getAlignmentConsensusAnnotation().annotations[position].displayCharacter
-            .charAt(0);
+    char conschar = (usesrep) ? (currentGroup == null ? av.getAlignment()
+            .getSeqrep().getCharAt(position)
+            : (currentGroup.getSeqrep() != null ? currentGroup.getSeqrep()
+                    .getCharAt(position) : av.getAlignment().getSeqrep()
+                    .getCharAt(position)))
+            : (currentGroup != null && currentGroup.getConsensus() != null) ? currentGroup
+                    .getConsensus().annotations[position].displayCharacter
+                    .charAt(0)
+                    : av.getAlignmentConsensusAnnotation().annotations[position].displayCharacter
+                            .charAt(0);
     if (conschar != '-'
             && (sequenceChar == conschar || sequenceChar + CHAR_TO_UPPER == conschar))
     {
index 88cb46e..7702792 100755 (executable)
@@ -241,7 +241,7 @@ public class AnnotationFile
                     && row.annotations[j].displayCharacter.length() > 0 && !row.annotations[j].displayCharacter
                     .equals(" "));
             hasGlyphs |= (row.annotations[j].secondaryStructure != 0 && row.annotations[j].secondaryStructure != ' ');
-            hasValues |= (row.annotations[j].value != Float.NaN); // NaNs can't
+            hasValues |= (!Float.isNaN(row.annotations[j].value)); // NaNs can't
             // be
             // rendered..
             hasText |= (row.annotations[j].description != null && row.annotations[j].description
@@ -331,13 +331,13 @@ public class AnnotationFile
             }
             if (hasValues)
             {
-              if (row.annotations[j].value != Float.NaN)
+              if (!Float.isNaN(row.annotations[j].value))
               {
                 text.append(comma + row.annotations[j].value);
               }
               else
               {
-                System.err.println("Skipping NaN - not valid value.");
+                // System.err.println("Skipping NaN - not valid value.");
                 text.append(comma + 0f);// row.annotations[j].value);
               }
               comma = ",";
index d3d4d6e..02de02e 100755 (executable)
@@ -205,6 +205,10 @@ public class AppletFormatAdapter
   public static final boolean isValidFormat(String format,
           boolean forwriting)
   {
+    if (format == null)
+    {
+      return false;
+    }
     boolean valid = false;
     String[] format_list = (forwriting) ? WRITEABLE_FORMATS
             : READABLE_FORMATS;
@@ -483,7 +487,7 @@ public class AppletFormatAdapter
   private AlignmentI buildAlignmentFrom(AlignFile alignFile2)
   {
     // Standard boilerplate for creating alignment from parser
-    alignFile.configureForView(viewpanel);
+    // alignFile.configureForView(viewpanel);
 
     AlignmentI al = new Alignment(alignFile.getSeqsAsArray());
 
@@ -519,7 +523,7 @@ public class AppletFormatAdapter
         aselview.addAnnotation(aa);
       }
     }
-
+    viewpanel = ap;
     return formatSequences(format, aselview, jvsuffix);
   }
 
@@ -597,11 +601,10 @@ public class AppletFormatAdapter
       {
         throw new Exception(MessageManager.getString("error.implementation_error_unknown_file_format_string"));
       }
+
       afile.setNewlineString(newline);
       afile.addJVSuffix(jvsuffix);
-
       afile.setExportSettings(exportSettings);
-
       afile.configureForView(viewpanel);
 
       // check whether we were given a specific alignment to export, rather than
index 74fb147..73be79f 100644 (file)
@@ -1,6 +1,7 @@
 package jalview.io;
 
 import jalview.api.AlignmentViewPanel;
+import jalview.datamodel.AlignmentExportData;
 import jalview.exceptions.NoFileSelectedException;
 import jalview.json.binding.v1.BioJSReleasePojo;
 import jalview.json.binding.v1.BioJSRepositoryPojo;
@@ -51,7 +52,20 @@ public class BioJsHTMLOutput
     try
     {
       String outputFile = getOutputFile();
-      String jalviewAlignmentJson = JSONFile.getJSONData(ap);
+      // String jalviewAlignmentJson = JSONFile.getJSONData(ap);
+      AlignmentExportData exportData = jalview.gui.AlignFrame
+              .getAlignmentForExport(
+              JSONFile.FILE_DESC, ap.getAlignViewport());
+      if (exportData.getSettings().isCancelled())
+      {
+        return;
+      }
+      String jalviewAlignmentJson = new FormatAdapter(ap,
+              exportData.getSettings()).formatSequences(JSONFile.FILE_DESC,
+              exportData.getAlignment(), exportData.getOmitHidden(),
+              exportData.getStartEndPostions(), ap.getAlignViewport()
+                      .getColumnSelection());
+
       String bioJSTemplateString = getBioJsTemplateAsString();
       String generatedBioJsWithJalviewAlignmentAsJson = bioJSTemplateString
               .replaceAll(
@@ -82,7 +96,6 @@ public class BioJsHTMLOutput
             { "HTML files" }, "HTML files");
     jvFileChooser.setFileView(new JalviewFileView());
 
-    // TODO uncomment when supported by MassageManager
     jvFileChooser.setDialogTitle(MessageManager
             .getString("label.save_as_biojs_html"));
     jvFileChooser.setDialogTitle("save as BioJs HTML");
@@ -187,10 +200,13 @@ public class BioJsHTMLOutput
         try
         {
           String gitRepoPkgJson = getURLContentAsString(BJS_TEMPLATE_GIT_REPO);
-          BioJSRepositoryPojo release = new BioJSRepositoryPojo(
-                  gitRepoPkgJson);
-          syncUpdates(BJS_TEMPLATES_LOCAL_DIRECTORY, release);
-          refreshBioJSVersionsInfo(BJS_TEMPLATES_LOCAL_DIRECTORY);
+          if (gitRepoPkgJson != null)
+          {
+            BioJSRepositoryPojo release = new BioJSRepositoryPojo(
+                    gitRepoPkgJson);
+            syncUpdates(BJS_TEMPLATES_LOCAL_DIRECTORY, release);
+            refreshBioJSVersionsInfo(BJS_TEMPLATES_LOCAL_DIRECTORY);
+          }
         } catch (URISyntaxException e)
         {
           e.printStackTrace();
index 57f6384..fbe871b 100755 (executable)
@@ -1384,7 +1384,7 @@ public class FeaturesFile extends AlignFile
             out.append(next[j].end);
             out.append("\t");
             out.append(next[j].type);
-            if (next[j].score != Float.NaN)
+            if (!Float.isNaN(next[j].score))
             {
               out.append("\t");
               out.append(next[j].score);
index 7387fa2..73c10df 100755 (executable)
@@ -21,6 +21,8 @@
 package jalview.io;
 
 import jalview.api.ComplexAlignFile;
+import jalview.api.FeaturesDisplayedI;
+import jalview.bin.Jalview;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.ColumnSelection;
 import jalview.datamodel.PDBEntry;
@@ -256,6 +258,22 @@ public class FileLoader implements Runnable
         {
           format = new IdentifyFile().Identify(file, protocol);
         }
+
+      }
+
+      if (format == null || format.equalsIgnoreCase("EMPTY DATA FILE"))
+      {
+        Desktop.instance.stopLoading();
+        System.err.println("The input file \"" + file
+                + "\" has null or unidentifiable data content!");
+        if (!Jalview.isHeadlessMode())
+        {
+          JOptionPane.showMessageDialog(null, "The input file \"" + file
+                  + "\" has null or unidentifiable data content!",
+                  "Empty data file",
+                  JOptionPane.ERROR_MESSAGE);
+        }
+        return;
       }
       // TODO: cache any stream datasources as a temporary file (eg. PDBs
       // retrieved via URL)
@@ -299,7 +317,8 @@ public class FileLoader implements Runnable
               // open a new source and read from it
               FormatAdapter fa = new FormatAdapter();
               al = fa.readFile(file, protocol, format);
-              source = fa.getAlignFile(); // keep reference for later if necessary.
+              source = fa.getAlignFile(); // keep reference for later if
+                                          // necessary.
             }
           } catch (java.io.IOException ex)
           {
@@ -355,11 +374,14 @@ public class FileLoader implements Runnable
                       .isShowSeqFeatures();
               ColourSchemeI cs = ((ComplexAlignFile) source)
                       .getColourScheme();
+              FeaturesDisplayedI fd = ((ComplexAlignFile) source)
+                      .getDisplayedFeatures();
               alignFrame = new AlignFrame(al, hiddenSeqs, colSel,
                       AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT);
 
               alignFrame.getViewport().setShowSequenceFeatures(
                       showSeqFeatures);
+              alignFrame.getViewport().setFeaturesDisplayed(fd);
               alignFrame.changeColour(cs);
             }
             else
@@ -367,34 +389,34 @@ public class FileLoader implements Runnable
               alignFrame = new AlignFrame(al, AlignFrame.DEFAULT_WIDTH,
                       AlignFrame.DEFAULT_HEIGHT);
             }
-          }
-          // add metadata and update ui
-          if (!protocol.equals(AppletFormatAdapter.PASTE))
-          {
-            alignFrame.setFileName(file, format);
-          }
+            // add metadata and update ui
+            if (!protocol.equals(AppletFormatAdapter.PASTE))
+            {
+              alignFrame.setFileName(file, format);
+            }
 
-          alignFrame.statusBar.setText(MessageManager.formatMessage(
-                  "label.successfully_loaded_file", new String[]
-                  { title }));
+            alignFrame.statusBar.setText(MessageManager.formatMessage(
+                    "label.successfully_loaded_file", new String[]
+                    { title }));
 
-          if (raiseGUI)
-          {
-            // add the window to the GUI
-            // note - this actually should happen regardless of raiseGUI
-            // status in Jalview 3
-            // TODO: define 'virtual desktop' for benefit of headless scripts
-            // that perform queries to find the 'current working alignment'
-            Desktop.addInternalFrame(alignFrame, title,
-                    AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT);
-          }
+            if (raiseGUI)
+            {
+              // add the window to the GUI
+              // note - this actually should happen regardless of raiseGUI
+              // status in Jalview 3
+              // TODO: define 'virtual desktop' for benefit of headless scripts
+              // that perform queries to find the 'current working alignment'
+              Desktop.addInternalFrame(alignFrame, title,
+                      AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT);
+            }
 
-          try
-          {
-            alignFrame.setMaximum(jalview.bin.Cache.getDefault(
-                    "SHOW_FULLSCREEN", false));
-          } catch (java.beans.PropertyVetoException ex)
-          {
+            try
+            {
+              alignFrame.setMaximum(jalview.bin.Cache.getDefault(
+                      "SHOW_FULLSCREEN", false));
+            } catch (java.beans.PropertyVetoException ex)
+            {
+            }
           }
         }
         else
@@ -461,12 +483,12 @@ public class FileLoader implements Runnable
         {
           public void run()
           {
-            javax.swing.JOptionPane
-                    .showInternalMessageDialog(
-                            Desktop.desktop,
-                            MessageManager.formatMessage("warn.out_of_memory_loading_file", new String[]{file}),
-                            MessageManager.getString("label.out_of_memory"),
-                            javax.swing.JOptionPane.WARNING_MESSAGE);
+            javax.swing.JOptionPane.showInternalMessageDialog(
+                    Desktop.desktop, MessageManager.formatMessage(
+                            "warn.out_of_memory_loading_file", new String[]
+                            { file }), MessageManager
+                            .getString("label.out_of_memory"),
+                    javax.swing.JOptionPane.WARNING_MESSAGE);
           }
         });
       }
index e795925..8a563fa 100755 (executable)
@@ -29,7 +29,6 @@ import jalview.datamodel.ColumnSelection;
 import jalview.datamodel.Sequence;
 import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
-import jalview.gui.AlignmentPanel;
 
 /**
  * Additional formatting methods used by the application in a number of places.
@@ -51,7 +50,7 @@ public class FormatAdapter extends AppletFormatAdapter
     init();
   }
 
-  public FormatAdapter(AlignmentPanel alignPanel,
+  public FormatAdapter(AlignmentViewPanel alignPanel,
           AlignExportSettingI settings)
   {
     super(alignPanel, settings);
index a4e9bf4..0f5cd55 100644 (file)
 
 package jalview.io;
 
+import jalview.api.ComplexAlignFile;
+import jalview.api.FeaturesDisplayedI;
+import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.SequenceI;
+import jalview.schemes.ColourSchemeI;
+
 import java.io.IOException;
 import java.io.StringReader;
 
@@ -28,11 +34,6 @@ import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
 import org.jsoup.nodes.Element;
 
-import jalview.api.ComplexAlignFile;
-import jalview.datamodel.ColumnSelection;
-import jalview.datamodel.SequenceI;
-import jalview.schemes.ColourSchemeI;
-
 public class HtmlFile extends AlignFile implements ComplexAlignFile
 {
   public static final String FILE_EXT = "html";
@@ -47,6 +48,8 @@ public class HtmlFile extends AlignFile implements ComplexAlignFile
 
   private SequenceI[] hiddenSequences;
 
+  private FeaturesDisplayedI displayedFeatures;
+
   public HtmlFile()
   {
     super();
@@ -92,6 +95,7 @@ public class HtmlFile extends AlignFile implements ComplexAlignFile
       this.colourScheme = jsonFile.getColourScheme();
       this.hiddenSequences = jsonFile.getHiddenSequences();
       this.columnSelection = jsonFile.getColumnSelection();
+      this.displayedFeatures = jsonFile.getDisplayedFeatures();
     } catch (Exception e)
     {
       errormessage = "Failed to extract data from HTML document.";
@@ -147,4 +151,10 @@ public class HtmlFile extends AlignFile implements ComplexAlignFile
     this.hiddenSequences = hiddenSequences;
   }
 
+  @Override
+  public FeaturesDisplayedI getDisplayedFeatures()
+  {
+    return displayedFeatures;
+  }
+
 }
index 7e02118..781eace 100644 (file)
@@ -1,6 +1,7 @@
 package jalview.io;
 
 import jalview.api.FeatureRenderer;
+import jalview.datamodel.AlignmentExportData;
 import jalview.datamodel.SequenceI;
 import jalview.gui.AlignViewport;
 import jalview.gui.AlignmentPanel;
@@ -93,13 +94,26 @@ public class HtmlSvgOutput
       }
       printUnwrapped(aDimension.getWidth(), aDimension.getHeight(), 0, g1,
               g2);
-      FileOutputStream out = new FileOutputStream(file);
 
       String titleSvgData = g1.getSVGDocument();
       String alignSvgData = g2.getSVGDocument();
-      String jsonData = JSONFile.getJSONData(ap);
+
+      AlignmentExportData exportData = ap.alignFrame.getAlignmentForExport(
+              JSONFile.FILE_DESC, av);
+      if (exportData.getSettings().isCancelled())
+      {
+        return;
+      }
+      String jsonData = new FormatAdapter(ap, exportData.getSettings())
+              .formatSequences(JSONFile.FILE_DESC, exportData
+                      .getAlignment(), exportData.getOmitHidden(),
+                      exportData.getStartEndPostions(), ap
+                              .getAlignViewport().getColumnSelection());
+
+      // String jsonData = JSONFile.getJSONData(ap);
       String htmlData = getHtml(titleSvgData, alignSvgData, jsonData);
 
+      FileOutputStream out = new FileOutputStream(file);
       out.write(htmlData.getBytes());
       out.flush();
       out.close();
index 27f08ae..dae8f82 100755 (executable)
@@ -98,7 +98,7 @@ public class IdentifyFile
       }
       while ((data = source.nextLine()) != null)
       {
-        length += data.length();
+        length += data.trim().length();
         if (!lineswereskipped)
         {
           for (int i = 0; !isBinary && i < data.length(); i++)
@@ -142,19 +142,35 @@ public class IdentifyFile
           reply = "STH";
           break;
         }
-        // if (data.matches("<(\"[^\"]*\"|'[^']*'|[^'\">])*>"))
-        if (data.matches("<(?i)html(\"[^\"]*\"|'[^']*'|[^'\">])*>"))
-        {
-          reply = HtmlFile.FILE_DESC;
-          break;
-        }
 
-        if (data.matches("<(?i)rnaml (\"[^\"]*\"|'[^']*'|[^'\">])*>"))
+        if ((data.indexOf("<") > -1)) // possible Markup Language data i.e HTML,
+                                      // RNAML, XML
         {
-          reply = "RNAML";
-          break;
+          boolean identified = false;
+          do
+          {
+            if (data.matches("<(?i)html(\"[^\"]*\"|'[^']*'|[^'\">])*>"))
+            {
+              reply = HtmlFile.FILE_DESC;
+              identified = true;
+              break;
+            }
+
+            if (data.matches("<(?i)rnaml (\"[^\"]*\"|'[^']*'|[^'\">])*>"))
+            {
+              reply = "RNAML";
+              identified = true;
+              break;
+            }
+          } while ((data = source.nextLine()) != null);
+
+          if (identified)
+          {
+            break;
+          }
         }
 
+
          if (data.indexOf("{\"") > -1)
          {
          reply = JSONFile.FILE_DESC;
index ce70ea5..b079a3c 100644 (file)
 
 package jalview.io;
 
+import jalview.api.AlignExportSettingI;
+import jalview.api.AlignViewportI;
 import jalview.api.AlignmentViewPanel;
 import jalview.api.ComplexAlignFile;
 import jalview.api.FeatureRenderer;
 import jalview.api.FeaturesDisplayedI;
 import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.AlignmentI;
 import jalview.datamodel.Annotation;
 import jalview.datamodel.ColumnSelection;
 import jalview.datamodel.HiddenSequences;
@@ -42,6 +45,7 @@ import jalview.json.binding.v1.SequenceGrpPojo;
 import jalview.json.binding.v1.SequencePojo;
 import jalview.schemes.ColourSchemeI;
 import jalview.schemes.ColourSchemeProperty;
+import jalview.viewmodel.seqfeatures.FeaturesDisplayed;
 
 import java.awt.Color;
 import java.io.IOException;
@@ -88,6 +92,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile
 
   private ArrayList<SequenceI> hiddenSequences;
 
+
   public JSONFile()
   {
     super();
@@ -116,6 +121,45 @@ public class JSONFile extends AlignFile implements ComplexAlignFile
     try
     {
       AlignmentPojo jsonAlignmentPojo = new AlignmentPojo();
+      AlignExportSettingI exportSettings = getExportSettings();
+
+      // if no export settings were supplied use the following with all values
+      // defaulting to true
+      if (exportSettings == null)
+      {
+        exportSettings = new AlignExportSettingI()
+        {
+          @Override
+          public boolean isExportHiddenSequences()
+          {
+            return true;
+          }
+
+          @Override
+          public boolean isExportHiddenColumns()
+          {
+            return true;
+          }
+
+          @Override
+          public boolean isExportGroups()
+          {
+            return true;
+          }
+
+          @Override
+          public boolean isExportFeatures()
+          {
+            return true;
+          }
+
+          @Override
+          public boolean isExportAnnotations()
+          {
+            return true;
+          }
+        };
+      }
 
       int count = 0;
       for (SequenceI seq : seqs)
@@ -144,14 +188,14 @@ public class JSONFile extends AlignFile implements ComplexAlignFile
       if (hiddenSections != null)
       {
         if (hiddenSections[0] != null
-                && getExportSettings()
+                && exportSettings
                         .isExportHiddenColumns())
         {
           jsonAlignmentPojo.getAppSettings().put("hiddenCols",
                   String.valueOf(hiddenSections[0]));
         }
         if (hiddenSections[1] != null
-                && getExportSettings()
+                && exportSettings
                         .isExportHiddenSequences())
         {
           jsonAlignmentPojo.getAppSettings().put("hiddenSeqs",
@@ -159,19 +203,19 @@ public class JSONFile extends AlignFile implements ComplexAlignFile
         }
       }
 
-      if (getExportSettings().isExportAnnotations())
+      if (exportSettings.isExportAnnotations())
       {
         jsonAlignmentPojo
                 .setAlignAnnotation(annotationToJsonPojo(annotations));
       }
 
-      if (getExportSettings().isExportFeatures())
+      if (exportSettings.isExportFeatures())
       {
         jsonAlignmentPojo
                 .setSeqFeatures(sequenceFeatureToJsonPojo(seqs, fr));
       }
 
-      if (getExportSettings().isExportGroups()
+      if (exportSettings.isExportGroups()
               && seqGroups != null
               && seqGroups.size() > 0)
       {
@@ -257,10 +301,10 @@ public class JSONFile extends AlignFile implements ComplexAlignFile
     return hiddenSections;
   }
 
-  public static List<SequenceFeaturesPojo> sequenceFeatureToJsonPojo(
+  public List<SequenceFeaturesPojo> sequenceFeatureToJsonPojo(
           List<SequenceI> seqs, FeatureRenderer fr)
   {
-    FeaturesDisplayedI displayedFeatures = (fr == null) ? null : fr
+    displayedFeatures = (fr == null) ? null : fr
             .getFeaturesDisplayed();
     List<SequenceFeaturesPojo> sequenceFeaturesPojo = new ArrayList<SequenceFeaturesPojo>();
     for (SequenceI seq : seqs)
@@ -283,6 +327,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile
         {
           SequenceFeaturesPojo jsonFeature = new SequenceFeaturesPojo(
                   String.valueOf(seq.hashCode()));
+
           String featureColour = (fr == null) ? null : jalview.util.Format
                   .getHexString(fr
                   .findFeatureColour(Color.white, seq,
@@ -425,8 +470,9 @@ public class JSONFile extends AlignFile implements ComplexAlignFile
             }
           }
         }
-        ColourSchemeI scheme = getJalviewColorScheme(colourScheme);
-        SequenceGroup seqGrp = new SequenceGroup(grpSeqs, grpName, scheme,
+        ColourSchemeI grpColourScheme = getJalviewColorScheme(colourScheme);
+        SequenceGroup seqGrp = new SequenceGroup(grpSeqs, grpName,
+                grpColourScheme,
                 displayBoxes, displayText, colourText, startRes, endRes);
         seqGrp.setShowNonconserved(showNonconserved);
         seqGrp.setDescription(description);
@@ -509,6 +555,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile
   {
     if (jsonSeqFeatures != null)
     {
+      displayedFeatures = new FeaturesDisplayed();
       for (Iterator<JSONObject> seqFeatureItr = jsonSeqFeatures.iterator(); seqFeatureItr
               .hasNext();)
       {
@@ -540,6 +587,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile
         sequenceFeature.setBegin(seq.findPosition(begin.intValue()));
         sequenceFeature.setEnd(seq.findPosition(end.intValue()) - 1);
         seq.addSequenceFeature(sequenceFeature);
+        displayedFeatures.setVisible(type);
       }
     }
   }
@@ -580,6 +628,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile
     this.colourScheme = colourScheme;
   }
 
+  @Override
   public FeaturesDisplayedI getDisplayedFeatures()
   {
     return displayedFeatures;
@@ -590,50 +639,34 @@ public class JSONFile extends AlignFile implements ComplexAlignFile
     this.displayedFeatures = displayedFeatures;
   }
 
-  @Override
+
   public void configureForView(AlignmentViewPanel avpanel)
   {
     super.configureForView(avpanel);
-    if (isExporting())
-    {
-      setViewport(avpanel.getAlignViewport());
-      seqGroups = avpanel.getAlignment().getGroups();
-      setDisplayedFeatures(getViewport().getFeaturesDisplayed());
-      fr = avpanel.cloneFeatureRenderer();
+    AlignViewportI viewport = avpanel.getAlignViewport();
+    AlignmentI alignment = viewport.getAlignment();
+    AlignmentAnnotation[] annots = alignment.getAlignmentAnnotation();
 
-      for (SequenceI seq : getViewport().getAlignment().getSequences())
-      {
-        seqs.add(seq);
-      }
+    seqGroups = alignment.getGroups();
+    fr = avpanel.cloneFeatureRenderer();
 
-      // Add non auto calculated annotation to AlignFile
-      for (AlignmentAnnotation annot : getViewport().getAlignment()
-              .getAlignmentAnnotation())
+    // Add non auto calculated annotation to AlignFile
+    for (AlignmentAnnotation annot : annots)
+    {
+      if (annot != null && !annot.autoCalculated)
       {
-        if (annot != null && !annot.autoCalculated)
+        if (!annot.visible)
         {
-          if (annot.label.equals("PDB.CATempFactor"))
-          {
-            continue;
-          }
-          annotations.add(annot);
+          continue;
         }
+        annotations.add(annot);
       }
-
-      globalColorScheme = ColourSchemeProperty.getColourName(getViewport()
-              .getGlobalColourScheme());
-      setDisplayedFeatures(getViewport().getFeaturesDisplayed());
-      showSeqFeatures = getViewport().isShowSequenceFeatures();
     }
-  }
+    globalColorScheme = ColourSchemeProperty.getColourName(viewport
+            .getGlobalColourScheme());
+    setDisplayedFeatures(viewport.getFeaturesDisplayed());
+    showSeqFeatures = viewport.isShowSequenceFeatures();
 
-
-  public static String getJSONData(AlignmentViewPanel av)
-  {
-    JSONFile jsonFile = new JSONFile();
-    jsonFile.configureForView(av);
-    String jsonString = jsonFile.print();
-    return jsonString;
   }
 
   public boolean isShowSeqFeatures()
index 7c96d45..6d8ce5f 100644 (file)
@@ -152,7 +152,7 @@ public class SequenceAnnotationReport
               }
             }
             // check score should be shown
-            if (feature.getScore() != Float.NaN)
+            if (!Float.isNaN(feature.getScore()))
             {
               float[][] rng = (minmax == null) ? null : ((float[][]) minmax
                       .get(feature.getType()));
index 3d598d2..ffc9998 100644 (file)
  */
 package jalview.io.vamsas;
 
+import jalview.bin.Cache;
+import jalview.datamodel.SequenceFeature;
+import jalview.datamodel.SequenceI;
+import jalview.io.VamsasAppDatastore;
+import jalview.util.UrlLink;
+
 import java.util.Enumeration;
 import java.util.Vector;
 
@@ -31,11 +37,6 @@ import uk.ac.vamsas.objects.core.RangeAnnotation;
 import uk.ac.vamsas.objects.core.Score;
 import uk.ac.vamsas.objects.core.Seg;
 import uk.ac.vamsas.objects.utils.Properties;
-import jalview.bin.Cache;
-import jalview.datamodel.SequenceFeature;
-import jalview.datamodel.SequenceI;
-import jalview.io.VamsasAppDatastore;
-import jalview.util.UrlLink;
 
 /**
  * @author JimP
@@ -207,7 +208,7 @@ public class Sequencefeature extends Rangetype
     {
       for (int i = 0, iSize = feature.links.size(); i < iSize; i++)
       {
-        String link = (String) feature.links.elementAt(i);
+        String link = feature.links.elementAt(i);
         UrlLink ulink = new UrlLink(link);
         if (ulink.isValid())
         {
@@ -220,7 +221,7 @@ public class Sequencefeature extends Rangetype
       }
     }
     dsa.setGroup(feature.getFeatureGroup());
-    if (feature.getScore() != Float.NaN)
+    if (!Float.isNaN(feature.getScore()))
     {
       Score fscore = new Score();
       dsa.setScore(new Score[]
index 2583b6b..15498c6 100644 (file)
@@ -44,9 +44,8 @@ public abstract class GAlignExportSettings extends JPanel
 
   JButton btnCancel = new JButton("Cancel");
 
-  private boolean hasHiddenSeq, hasHiddenCols, isComplexAlignFile;
-
-  boolean isComplexFormat = false;
+  private boolean hasHiddenSeq, hasHiddenCols, isComplexAlignFile,
+          showDialog;
 
   public GAlignExportSettings(boolean hasHiddenSeq, boolean hasHiddenCols,
           String alignFileFormat)
@@ -64,7 +63,10 @@ public abstract class GAlignExportSettings extends JPanel
         break;
       }
     }
-
+    if (this.hasHiddenCols || this.hasHiddenSeq || this.isComplexAlignFile)
+    {
+      this.showDialog = true;
+    }
     init();
   }
 
@@ -113,7 +115,7 @@ public abstract class GAlignExportSettings extends JPanel
       optionsPanel.add(hiddenRegionConfPanel);
     }
 
-    if (isComplexAlignFile)
+    if (this.isComplexAlignFile)
     {
       optionsPanel.add(complexExportPanel);
     }
@@ -124,8 +126,6 @@ public abstract class GAlignExportSettings extends JPanel
     add(actionPanel, BorderLayout.SOUTH);
 
   }
-
-
   
   private void checkAllAction()
   {
@@ -140,6 +140,16 @@ public abstract class GAlignExportSettings extends JPanel
             && chkExportGrps.isEnabled() && isSelected);
   }
 
+  public boolean isShowDialog()
+  {
+    return showDialog;
+  }
+
+  public void setShowDialog(boolean showDialog)
+  {
+    this.showDialog = showDialog;
+  }
+
   public abstract void ok_actionPerformed(ActionEvent e);
 
   public abstract void cancel_actionPerformed(ActionEvent e);
index befa3b1..c6a042b 100755 (executable)
  */
 package jalview.jbgui;
 
+import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder;
+import jalview.api.SplitContainerI;
+import jalview.bin.Cache;
+import jalview.gui.JvSwingUtils;
+import jalview.gui.Preferences;
+import jalview.schemes.ColourSchemeProperty;
+import jalview.util.MessageManager;
+
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.GridLayout;
@@ -52,14 +60,6 @@ import javax.swing.event.ChangeEvent;
 import javax.swing.event.MenuEvent;
 import javax.swing.event.MenuListener;
 
-import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder;
-import jalview.api.SplitContainerI;
-import jalview.bin.Cache;
-import jalview.gui.JvSwingUtils;
-import jalview.gui.Preferences;
-import jalview.schemes.ColourSchemeProperty;
-import jalview.util.MessageManager;
-
 public class GAlignFrame extends JInternalFrame
 {
   protected JMenuBar alignFrameMenuBar = new JMenuBar();
@@ -262,7 +262,7 @@ public class GAlignFrame extends JInternalFrame
       System.err.println(e.toString());
     }
 
-    if (!new jalview.util.Platform().isAMac())
+    if (!jalview.util.Platform.isAMac())
     {
       closeMenuItem.setMnemonic('C');
       outputTextboxMenu.setMnemonic('T');
index 96e27e6..4ec649a 100644 (file)
@@ -51,15 +51,15 @@ public class PDBDocFieldPreferences extends JScrollPane
     {
     case SEARCH_SUMMARY:
       columnNames = new String[]
-      { "PDB Feild", "Show in search summary" };
+      { "PDB Field", "Show in search summary" };
       break;
     case STRUCTURE_CHOOSER:
       columnNames = new String[]
-      { "PDB Feild", "Show in structure summary" };
+      { "PDB Field", "Show in structure summary" };
       break;
     case PREFERENCES:
       columnNames = new String[]
-      { "PDB Feild", "Show in search summary", "Show in structure summary" };
+      { "PDB Field", "Show in search summary", "Show in structure summary" };
       break;
     default:
       break;
index 4028a9d..1e6ef7e 100644 (file)
@@ -3,6 +3,7 @@ package jalview.json.binding.v1;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
+import java.util.Objects;
 
 import org.json.simple.JSONArray;
 import org.json.simple.JSONObject;
@@ -36,6 +37,8 @@ public class BioJSRepositoryPojo
   @SuppressWarnings("unchecked")
   private void parse(String jsonString) throws ParseException
   {
+    Objects.requireNonNull(jsonString,
+            "Supplied jsonString must not be null");
     JSONParser jsonParser = new JSONParser();
     JSONObject JsonObj = (JSONObject) jsonParser.parse(jsonString);
     this.description = (String) JsonObj.get("description");
index 2ba7aff..61194ce 100644 (file)
@@ -47,6 +47,12 @@ import com.stevesoft.pat.Regex;
 
 public class AnnotationRenderer
 {
+  private static final int UPPER_TO_LOWER = 'a' - 'A'; // 32
+
+  private static final int CHAR_A = 'A'; // 65
+
+  private static final int CHAR_Z = 'Z'; // 90
+
   /**
    * flag indicating if timing and redraw parameter info should be output
    */
@@ -132,7 +138,7 @@ public class AnnotationRenderer
 
   private FontMetrics fm;
 
-  private final boolean MAC = new jalview.util.Platform().isAMac();
+  private final boolean MAC = jalview.util.Platform.isAMac();
 
   boolean av_renderHistogram = true, av_renderProfile = true,
           av_normaliseProfile = false;
@@ -715,14 +721,14 @@ public class AnnotationRenderer
 
               }
             }
-            if (ss >= 65)
+            if (isRNA && (ss >= CHAR_A) && (ss <= CHAR_Z))
             {
               // distinguish between forward/backward base-pairing
-              if (displayChar.indexOf(ss + 32) > -1)
+              int ssLowerCase = ss + UPPER_TO_LOWER;
+              // TODO would .equals() be safer here? or charAt(0)?
+              if (displayChar.indexOf(ssLowerCase) > -1)
               {
-
-                ss = (char) (ss + 32);
-
+                ss = (char) ssLowerCase;
               }
             }
 
index 7eda2f7..0f2a49c 100644 (file)
@@ -349,7 +349,7 @@ public class FeatureRenderer extends
         else if (showFeature(sequenceFeature))
         {
           if (av_isShowSeqFeatureHeight
-                  && sequenceFeature.score != Float.NaN)
+                  && !Float.isNaN(sequenceFeature.score))
           {
             renderScoreFeature(g, seq,
                     seq.findIndex(sequenceFeature.begin) - 1,
index 65150f6..e01bbd4 100644 (file)
@@ -1,4 +1,4 @@
-#Wed Jun 10 11:15:53 BST 2015
+#Fri Jun 26 14:22:47 BST 2015
 jalview.schemabinding.version2.ThresholdLine=jalview.schemabinding.version2.descriptors.ThresholdLineDescriptor
 jalview.schemabinding.version2.SequenceSetProperties=jalview.schemabinding.version2.descriptors.SequenceSetPropertiesDescriptor
 jalview.schemabinding.version2.StructureState=jalview.schemabinding.version2.descriptors.StructureStateDescriptor
@@ -10,8 +10,10 @@ jalview.schemabinding.version2.OtherData=jalview.schemabinding.version2.descript
 jalview.schemabinding.version2.Setting=jalview.schemabinding.version2.descriptors.SettingDescriptor
 jalview.schemabinding.version2.AlcodonFrame=jalview.schemabinding.version2.descriptors.AlcodonFrameDescriptor
 jalview.schemabinding.version2.AnnotationElement=jalview.schemabinding.version2.descriptors.AnnotationElementDescriptor
+jalview.schemabinding.version2.SecondaryStructure=jalview.schemabinding.version2.descriptors.SecondaryStructureDescriptor
 jalview.schemabinding.version2.SequenceSet=jalview.schemabinding.version2.descriptors.SequenceSetDescriptor
 jalview.schemabinding.version2.Viewport=jalview.schemabinding.version2.descriptors.ViewportDescriptor
+jalview.schemabinding.version2.RnaViewer=jalview.schemabinding.version2.descriptors.RnaViewerDescriptor
 jalview.schemabinding.version2.MapListType=jalview.schemabinding.version2.descriptors.MapListTypeDescriptor
 jalview.schemabinding.version2.Property=jalview.schemabinding.version2.descriptors.PropertyDescriptor
 jalview.schemabinding.version2.UserColourScheme=jalview.schemabinding.version2.descriptors.UserColourSchemeDescriptor
index 9fc3384..cae3ec2 100644 (file)
@@ -29,13 +29,16 @@ implements java.io.Serializable
     //--------------------------/
 
     /**
-     * handle for the calculation which uses this parameter set
+     * handle for the calculation which uses
+     *  this parameter set
+     *  
      */
     private java.lang.String _calcId;
 
     /**
-     * should the calculation be performed immediately after
-     * loading in order to refresh results
+     * should the calculation be performed
+     *  immediately after loading in order to refresh results
+     *  
      */
     private boolean _needsUpdate = false;
 
@@ -45,7 +48,9 @@ implements java.io.Serializable
     private boolean _has_needsUpdate;
 
     /**
-     * should the calculation be automatically performed on edits
+     * should the calculation be automatically
+     *  performed on edits
+     *  
      */
     private boolean _autoUpdate;
 
@@ -85,7 +90,9 @@ implements java.io.Serializable
     /**
      * Returns the value of field 'autoUpdate'. The field
      * 'autoUpdate' has the following description: should the
-     * calculation be automatically performed on edits
+     * calculation be automatically
+     *  performed on edits
+     *  
      * 
      * @return the value of field 'AutoUpdate'.
      */
@@ -97,7 +104,9 @@ implements java.io.Serializable
     /**
      * Returns the value of field 'calcId'. The field 'calcId' has
      * the following description: handle for the calculation which
-     * uses this parameter set
+     * uses
+     *  this parameter set
+     *  
      * 
      * @return the value of field 'CalcId'.
      */
@@ -109,8 +118,9 @@ implements java.io.Serializable
     /**
      * Returns the value of field 'needsUpdate'. The field
      * 'needsUpdate' has the following description: should the
-     * calculation be performed immediately after loading in order
-     * to refresh results
+     * calculation be performed
+     *  immediately after loading in order to refresh results
+     *  
      * 
      * @return the value of field 'NeedsUpdate'.
      */
@@ -142,7 +152,9 @@ implements java.io.Serializable
     /**
      * Returns the value of field 'autoUpdate'. The field
      * 'autoUpdate' has the following description: should the
-     * calculation be automatically performed on edits
+     * calculation be automatically
+     *  performed on edits
+     *  
      * 
      * @return the value of field 'AutoUpdate'.
      */
@@ -154,8 +166,9 @@ implements java.io.Serializable
     /**
      * Returns the value of field 'needsUpdate'. The field
      * 'needsUpdate' has the following description: should the
-     * calculation be performed immediately after loading in order
-     * to refresh results
+     * calculation be performed
+     *  immediately after loading in order to refresh results
+     *  
      * 
      * @return the value of field 'NeedsUpdate'.
      */
@@ -214,7 +227,9 @@ implements java.io.Serializable
     /**
      * Sets the value of field 'autoUpdate'. The field 'autoUpdate'
      * has the following description: should the calculation be
-     * automatically performed on edits
+     * automatically
+     *  performed on edits
+     *  
      * 
      * @param autoUpdate the value of field 'autoUpdate'.
      */
@@ -227,7 +242,8 @@ implements java.io.Serializable
     /**
      * Sets the value of field 'calcId'. The field 'calcId' has the
      * following description: handle for the calculation which uses
-     * this parameter set
+     *  this parameter set
+     *  
      * 
      * @param calcId the value of field 'calcId'.
      */
@@ -239,8 +255,9 @@ implements java.io.Serializable
     /**
      * Sets the value of field 'needsUpdate'. The field
      * 'needsUpdate' has the following description: should the
-     * calculation be performed immediately after loading in order
-     * to refresh results
+     * calculation be performed
+     *  immediately after loading in order to refresh results
+     *  
      * 
      * @param needsUpdate the value of field 'needsUpdate'.
      */
index 86d789e..602473f 100644 (file)
@@ -198,7 +198,8 @@ public class JGroup implements java.io.Serializable {
 
     /**
      * Optional sequence group ID (only
-     *  needs to be unique for this
+     *  needs to be
+     *  unique for this
      *  alignment)
      *  
      */
@@ -452,7 +453,8 @@ public class JGroup implements java.io.Serializable {
     /**
      * Returns the value of field 'id'. The field 'id' has the
      * following description: Optional sequence group ID (only
-     *  needs to be unique for this
+     *  needs to be
+     *  unique for this
      *  alignment)
      *  
      * 
@@ -1027,7 +1029,8 @@ public class JGroup implements java.io.Serializable {
     /**
      * Sets the value of field 'id'. The field 'id' has the
      * following description: Optional sequence group ID (only
-     *  needs to be unique for this
+     *  needs to be
+     *  unique for this
      *  alignment)
      *  
      * 
index d5eda07..193b005 100644 (file)
@@ -86,6 +86,17 @@ public class JSeq implements java.io.Serializable {
      */
     private java.util.Vector _hiddenSequencesList;
 
+    /**
+     * Reference to a viewer showing RNA structure
+     *  for this sequence. Schema supports one viewer showing
+     * multiple
+     *  annotations for multiple sequences, though currently only
+     * one
+     *  annotation for one sequence (gapped or trimmed) is used
+     *  
+     */
+    private java.util.Vector _rnaViewerList;
+
 
       //----------------/
      //- Constructors -/
@@ -96,6 +107,7 @@ public class JSeq implements java.io.Serializable {
         this._featuresList = new java.util.Vector();
         this._pdbidsList = new java.util.Vector();
         this._hiddenSequencesList = new java.util.Vector();
+        this._rnaViewerList = new java.util.Vector();
     }
 
 
@@ -188,6 +200,34 @@ public class JSeq implements java.io.Serializable {
     }
 
     /**
+     * 
+     * 
+     * @param vRnaViewer
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addRnaViewer(
+            final jalview.schemabinding.version2.RnaViewer vRnaViewer)
+    throws java.lang.IndexOutOfBoundsException {
+        this._rnaViewerList.addElement(vRnaViewer);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vRnaViewer
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addRnaViewer(
+            final int index,
+            final jalview.schemabinding.version2.RnaViewer vRnaViewer)
+    throws java.lang.IndexOutOfBoundsException {
+        this._rnaViewerList.add(index, vRnaViewer);
+    }
+
+    /**
      */
     public void deleteColour(
     ) {
@@ -248,6 +288,17 @@ public class JSeq implements java.io.Serializable {
     }
 
     /**
+     * Method enumerateRnaViewer.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.RnaViewer elements
+     */
+    public java.util.Enumeration enumerateRnaViewer(
+    ) {
+        return this._rnaViewerList.elements();
+    }
+
+    /**
      * Returns the value of field 'colour'.
      * 
      * @return the value of field 'Colour'.
@@ -424,6 +475,51 @@ public class JSeq implements java.io.Serializable {
     }
 
     /**
+     * Method getRnaViewer.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.RnaViewer at the given index
+     */
+    public jalview.schemabinding.version2.RnaViewer getRnaViewer(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._rnaViewerList.size()) {
+            throw new IndexOutOfBoundsException("getRnaViewer: Index value '" + index + "' not in range [0.." + (this._rnaViewerList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.RnaViewer) _rnaViewerList.get(index);
+    }
+
+    /**
+     * Method getRnaViewer.Returns the contents of the collection
+     * in an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.RnaViewer[] getRnaViewer(
+    ) {
+        jalview.schemabinding.version2.RnaViewer[] array = new jalview.schemabinding.version2.RnaViewer[0];
+        return (jalview.schemabinding.version2.RnaViewer[]) this._rnaViewerList.toArray(array);
+    }
+
+    /**
+     * Method getRnaViewerCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getRnaViewerCount(
+    ) {
+        return this._rnaViewerList.size();
+    }
+
+    /**
      * Returns the value of field 'start'.
      * 
      * @return the value of field 'Start'.
@@ -552,6 +648,13 @@ public class JSeq implements java.io.Serializable {
     }
 
     /**
+     */
+    public void removeAllRnaViewer(
+    ) {
+        this._rnaViewerList.clear();
+    }
+
+    /**
      * Method removeFeatures.
      * 
      * @param vFeatures
@@ -624,6 +727,30 @@ public class JSeq implements java.io.Serializable {
     }
 
     /**
+     * Method removeRnaViewer.
+     * 
+     * @param vRnaViewer
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeRnaViewer(
+            final jalview.schemabinding.version2.RnaViewer vRnaViewer) {
+        boolean removed = _rnaViewerList.remove(vRnaViewer);
+        return removed;
+    }
+
+    /**
+     * Method removeRnaViewerAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.RnaViewer removeRnaViewerAt(
+            final int index) {
+        java.lang.Object obj = this._rnaViewerList.remove(index);
+        return (jalview.schemabinding.version2.RnaViewer) obj;
+    }
+
+    /**
      * Sets the value of field 'colour'.
      * 
      * @param colour the value of field 'colour'.
@@ -772,6 +899,41 @@ public class JSeq implements java.io.Serializable {
     }
 
     /**
+     * 
+     * 
+     * @param index
+     * @param vRnaViewer
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setRnaViewer(
+            final int index,
+            final jalview.schemabinding.version2.RnaViewer vRnaViewer)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._rnaViewerList.size()) {
+            throw new IndexOutOfBoundsException("setRnaViewer: Index value '" + index + "' not in range [0.." + (this._rnaViewerList.size() - 1) + "]");
+        }
+        
+        this._rnaViewerList.set(index, vRnaViewer);
+    }
+
+    /**
+     * 
+     * 
+     * @param vRnaViewerArray
+     */
+    public void setRnaViewer(
+            final jalview.schemabinding.version2.RnaViewer[] vRnaViewerArray) {
+        //-- copy array
+        _rnaViewerList.clear();
+        
+        for (int i = 0; i < vRnaViewerArray.length; i++) {
+                this._rnaViewerList.add(vRnaViewerArray[i]);
+        }
+    }
+
+    /**
      * Sets the value of field 'start'.
      * 
      * @param start the value of field 'start'.
diff --git a/src/jalview/schemabinding/version2/RnaViewer.java b/src/jalview/schemabinding/version2/RnaViewer.java
new file mode 100644 (file)
index 0000000..96c4195
--- /dev/null
@@ -0,0 +1,643 @@
+/*
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
+ */
+
+package jalview.schemabinding.version2;
+
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
+
+import org.exolab.castor.xml.Marshaller;
+import org.exolab.castor.xml.Unmarshaller;
+
+/**
+ * Reference to a viewer showing RNA structure
+ *  for this sequence. Schema supports one viewer showing multiple
+ *  annotations for multiple sequences, though currently only one
+ *  annotation for one sequence (gapped or trimmed) is used
+ *  
+ * 
+ * @version $Revision$ $Date$
+ */
+public class RnaViewer implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _title.
+     */
+    private java.lang.String _title;
+
+    /**
+     * An id unique to the RNA viewer panel
+     *  
+     */
+    private java.lang.String _viewId;
+
+    /**
+     * horizontal position of split pane divider
+     *  
+     */
+    private int _dividerLocation;
+
+    /**
+     * keeps track of state for field: _dividerLocation
+     */
+    private boolean _has_dividerLocation;
+
+    /**
+     * Index of the selected structure in the
+     *  viewer panel
+     *  
+     */
+    private int _selectedRna;
+
+    /**
+     * keeps track of state for field: _selectedRna
+     */
+    private boolean _has_selectedRna;
+
+    /**
+     * Field _width.
+     */
+    private int _width;
+
+    /**
+     * keeps track of state for field: _width
+     */
+    private boolean _has_width;
+
+    /**
+     * Field _height.
+     */
+    private int _height;
+
+    /**
+     * keeps track of state for field: _height
+     */
+    private boolean _has_height;
+
+    /**
+     * Field _xpos.
+     */
+    private int _xpos;
+
+    /**
+     * keeps track of state for field: _xpos
+     */
+    private boolean _has_xpos;
+
+    /**
+     * Field _ypos.
+     */
+    private int _ypos;
+
+    /**
+     * keeps track of state for field: _ypos
+     */
+    private boolean _has_ypos;
+
+    /**
+     * Field _secondaryStructureList.
+     */
+    private java.util.Vector _secondaryStructureList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public RnaViewer() {
+        super();
+        this._secondaryStructureList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vSecondaryStructure
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSecondaryStructure(
+            final jalview.schemabinding.version2.SecondaryStructure vSecondaryStructure)
+    throws java.lang.IndexOutOfBoundsException {
+        this._secondaryStructureList.addElement(vSecondaryStructure);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSecondaryStructure
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSecondaryStructure(
+            final int index,
+            final jalview.schemabinding.version2.SecondaryStructure vSecondaryStructure)
+    throws java.lang.IndexOutOfBoundsException {
+        this._secondaryStructureList.add(index, vSecondaryStructure);
+    }
+
+    /**
+     */
+    public void deleteDividerLocation(
+    ) {
+        this._has_dividerLocation= false;
+    }
+
+    /**
+     */
+    public void deleteHeight(
+    ) {
+        this._has_height= false;
+    }
+
+    /**
+     */
+    public void deleteSelectedRna(
+    ) {
+        this._has_selectedRna= false;
+    }
+
+    /**
+     */
+    public void deleteWidth(
+    ) {
+        this._has_width= false;
+    }
+
+    /**
+     */
+    public void deleteXpos(
+    ) {
+        this._has_xpos= false;
+    }
+
+    /**
+     */
+    public void deleteYpos(
+    ) {
+        this._has_ypos= false;
+    }
+
+    /**
+     * Method enumerateSecondaryStructure.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.SecondaryStructure elements
+     */
+    public java.util.Enumeration enumerateSecondaryStructure(
+    ) {
+        return this._secondaryStructureList.elements();
+    }
+
+    /**
+     * Returns the value of field 'dividerLocation'. The field
+     * 'dividerLocation' has the following description: horizontal
+     * position of split pane divider
+     *  
+     * 
+     * @return the value of field 'DividerLocation'.
+     */
+    public int getDividerLocation(
+    ) {
+        return this._dividerLocation;
+    }
+
+    /**
+     * Returns the value of field 'height'.
+     * 
+     * @return the value of field 'Height'.
+     */
+    public int getHeight(
+    ) {
+        return this._height;
+    }
+
+    /**
+     * Method getSecondaryStructure.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.SecondaryStructure at the
+     * given index
+     */
+    public jalview.schemabinding.version2.SecondaryStructure getSecondaryStructure(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._secondaryStructureList.size()) {
+            throw new IndexOutOfBoundsException("getSecondaryStructure: Index value '" + index + "' not in range [0.." + (this._secondaryStructureList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.SecondaryStructure) _secondaryStructureList.get(index);
+    }
+
+    /**
+     * Method getSecondaryStructure.Returns the contents of the
+     * collection in an Array.  <p>Note:  Just in case the
+     * collection contents are changing in another thread, we pass
+     * a 0-length Array of the correct type into the API call. 
+     * This way we <i>know</i> that the Array returned is of
+     * exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.SecondaryStructure[] getSecondaryStructure(
+    ) {
+        jalview.schemabinding.version2.SecondaryStructure[] array = new jalview.schemabinding.version2.SecondaryStructure[0];
+        return (jalview.schemabinding.version2.SecondaryStructure[]) this._secondaryStructureList.toArray(array);
+    }
+
+    /**
+     * Method getSecondaryStructureCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getSecondaryStructureCount(
+    ) {
+        return this._secondaryStructureList.size();
+    }
+
+    /**
+     * Returns the value of field 'selectedRna'. The field
+     * 'selectedRna' has the following description: Index of the
+     * selected structure in the
+     *  viewer panel
+     *  
+     * 
+     * @return the value of field 'SelectedRna'.
+     */
+    public int getSelectedRna(
+    ) {
+        return this._selectedRna;
+    }
+
+    /**
+     * Returns the value of field 'title'.
+     * 
+     * @return the value of field 'Title'.
+     */
+    public java.lang.String getTitle(
+    ) {
+        return this._title;
+    }
+
+    /**
+     * Returns the value of field 'viewId'. The field 'viewId' has
+     * the following description: An id unique to the RNA viewer
+     * panel
+     *  
+     * 
+     * @return the value of field 'ViewId'.
+     */
+    public java.lang.String getViewId(
+    ) {
+        return this._viewId;
+    }
+
+    /**
+     * Returns the value of field 'width'.
+     * 
+     * @return the value of field 'Width'.
+     */
+    public int getWidth(
+    ) {
+        return this._width;
+    }
+
+    /**
+     * Returns the value of field 'xpos'.
+     * 
+     * @return the value of field 'Xpos'.
+     */
+    public int getXpos(
+    ) {
+        return this._xpos;
+    }
+
+    /**
+     * Returns the value of field 'ypos'.
+     * 
+     * @return the value of field 'Ypos'.
+     */
+    public int getYpos(
+    ) {
+        return this._ypos;
+    }
+
+    /**
+     * Method hasDividerLocation.
+     * 
+     * @return true if at least one DividerLocation has been added
+     */
+    public boolean hasDividerLocation(
+    ) {
+        return this._has_dividerLocation;
+    }
+
+    /**
+     * Method hasHeight.
+     * 
+     * @return true if at least one Height has been added
+     */
+    public boolean hasHeight(
+    ) {
+        return this._has_height;
+    }
+
+    /**
+     * Method hasSelectedRna.
+     * 
+     * @return true if at least one SelectedRna has been added
+     */
+    public boolean hasSelectedRna(
+    ) {
+        return this._has_selectedRna;
+    }
+
+    /**
+     * Method hasWidth.
+     * 
+     * @return true if at least one Width has been added
+     */
+    public boolean hasWidth(
+    ) {
+        return this._has_width;
+    }
+
+    /**
+     * Method hasXpos.
+     * 
+     * @return true if at least one Xpos has been added
+     */
+    public boolean hasXpos(
+    ) {
+        return this._has_xpos;
+    }
+
+    /**
+     * Method hasYpos.
+     * 
+     * @return true if at least one Ypos has been added
+     */
+    public boolean hasYpos(
+    ) {
+        return this._has_ypos;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllSecondaryStructure(
+    ) {
+        this._secondaryStructureList.clear();
+    }
+
+    /**
+     * Method removeSecondaryStructure.
+     * 
+     * @param vSecondaryStructure
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeSecondaryStructure(
+            final jalview.schemabinding.version2.SecondaryStructure vSecondaryStructure) {
+        boolean removed = _secondaryStructureList.remove(vSecondaryStructure);
+        return removed;
+    }
+
+    /**
+     * Method removeSecondaryStructureAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.SecondaryStructure removeSecondaryStructureAt(
+            final int index) {
+        java.lang.Object obj = this._secondaryStructureList.remove(index);
+        return (jalview.schemabinding.version2.SecondaryStructure) obj;
+    }
+
+    /**
+     * Sets the value of field 'dividerLocation'. The field
+     * 'dividerLocation' has the following description: horizontal
+     * position of split pane divider
+     *  
+     * 
+     * @param dividerLocation the value of field 'dividerLocation'.
+     */
+    public void setDividerLocation(
+            final int dividerLocation) {
+        this._dividerLocation = dividerLocation;
+        this._has_dividerLocation = true;
+    }
+
+    /**
+     * Sets the value of field 'height'.
+     * 
+     * @param height the value of field 'height'.
+     */
+    public void setHeight(
+            final int height) {
+        this._height = height;
+        this._has_height = true;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSecondaryStructure
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setSecondaryStructure(
+            final int index,
+            final jalview.schemabinding.version2.SecondaryStructure vSecondaryStructure)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._secondaryStructureList.size()) {
+            throw new IndexOutOfBoundsException("setSecondaryStructure: Index value '" + index + "' not in range [0.." + (this._secondaryStructureList.size() - 1) + "]");
+        }
+        
+        this._secondaryStructureList.set(index, vSecondaryStructure);
+    }
+
+    /**
+     * 
+     * 
+     * @param vSecondaryStructureArray
+     */
+    public void setSecondaryStructure(
+            final jalview.schemabinding.version2.SecondaryStructure[] vSecondaryStructureArray) {
+        //-- copy array
+        _secondaryStructureList.clear();
+        
+        for (int i = 0; i < vSecondaryStructureArray.length; i++) {
+                this._secondaryStructureList.add(vSecondaryStructureArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'selectedRna'. The field
+     * 'selectedRna' has the following description: Index of the
+     * selected structure in the
+     *  viewer panel
+     *  
+     * 
+     * @param selectedRna the value of field 'selectedRna'.
+     */
+    public void setSelectedRna(
+            final int selectedRna) {
+        this._selectedRna = selectedRna;
+        this._has_selectedRna = true;
+    }
+
+    /**
+     * Sets the value of field 'title'.
+     * 
+     * @param title the value of field 'title'.
+     */
+    public void setTitle(
+            final java.lang.String title) {
+        this._title = title;
+    }
+
+    /**
+     * Sets the value of field 'viewId'. The field 'viewId' has the
+     * following description: An id unique to the RNA viewer panel
+     *  
+     * 
+     * @param viewId the value of field 'viewId'.
+     */
+    public void setViewId(
+            final java.lang.String viewId) {
+        this._viewId = viewId;
+    }
+
+    /**
+     * Sets the value of field 'width'.
+     * 
+     * @param width the value of field 'width'.
+     */
+    public void setWidth(
+            final int width) {
+        this._width = width;
+        this._has_width = true;
+    }
+
+    /**
+     * Sets the value of field 'xpos'.
+     * 
+     * @param xpos the value of field 'xpos'.
+     */
+    public void setXpos(
+            final int xpos) {
+        this._xpos = xpos;
+        this._has_xpos = true;
+    }
+
+    /**
+     * Sets the value of field 'ypos'.
+     * 
+     * @param ypos the value of field 'ypos'.
+     */
+    public void setYpos(
+            final int ypos) {
+        this._ypos = ypos;
+        this._has_ypos = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.RnaViewer
+     */
+    public static jalview.schemabinding.version2.RnaViewer unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.RnaViewer) Unmarshaller.unmarshal(jalview.schemabinding.version2.RnaViewer.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
+
+}
diff --git a/src/jalview/schemabinding/version2/SecondaryStructure.java b/src/jalview/schemabinding/version2/SecondaryStructure.java
new file mode 100644 (file)
index 0000000..d2f97fb
--- /dev/null
@@ -0,0 +1,290 @@
+/*
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
+ */
+
+package jalview.schemabinding.version2;
+
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
+
+import org.exolab.castor.xml.Marshaller;
+import org.exolab.castor.xml.Unmarshaller;
+
+/**
+ * Class SecondaryStructure.
+ * 
+ * @version $Revision$ $Date$
+ */
+public class SecondaryStructure implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _title.
+     */
+    private java.lang.String _title;
+
+    /**
+     * id attribute of Annotation in
+     *  vamsasModel for
+     *  the secondary structure annotation shown
+     *  in the viewer
+     *  
+     */
+    private java.lang.String _annotationId;
+
+    /**
+     * if true the RNA structure is shown with gaps, if false
+     * without
+     *  
+     */
+    private boolean _gapped;
+
+    /**
+     * keeps track of state for field: _gapped
+     */
+    private boolean _has_gapped;
+
+    /**
+     * name of the project jar entry that holds
+     *  the VARNA viewer state for the structure
+     *  
+     */
+    private java.lang.String _viewerState;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public SecondaryStructure() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deleteGapped(
+    ) {
+        this._has_gapped= false;
+    }
+
+    /**
+     * Returns the value of field 'annotationId'. The field
+     * 'annotationId' has the following description: id attribute
+     * of Annotation in
+     *  vamsasModel for
+     *  the secondary structure annotation shown
+     *  in the viewer
+     *  
+     * 
+     * @return the value of field 'AnnotationId'.
+     */
+    public java.lang.String getAnnotationId(
+    ) {
+        return this._annotationId;
+    }
+
+    /**
+     * Returns the value of field 'gapped'. The field 'gapped' has
+     * the following description: if true the RNA structure is
+     * shown with gaps, if false without
+     *  
+     * 
+     * @return the value of field 'Gapped'.
+     */
+    public boolean getGapped(
+    ) {
+        return this._gapped;
+    }
+
+    /**
+     * Returns the value of field 'title'.
+     * 
+     * @return the value of field 'Title'.
+     */
+    public java.lang.String getTitle(
+    ) {
+        return this._title;
+    }
+
+    /**
+     * Returns the value of field 'viewerState'. The field
+     * 'viewerState' has the following description: name of the
+     * project jar entry that holds
+     *  the VARNA viewer state for the structure
+     *  
+     * 
+     * @return the value of field 'ViewerState'.
+     */
+    public java.lang.String getViewerState(
+    ) {
+        return this._viewerState;
+    }
+
+    /**
+     * Method hasGapped.
+     * 
+     * @return true if at least one Gapped has been added
+     */
+    public boolean hasGapped(
+    ) {
+        return this._has_gapped;
+    }
+
+    /**
+     * Returns the value of field 'gapped'. The field 'gapped' has
+     * the following description: if true the RNA structure is
+     * shown with gaps, if false without
+     *  
+     * 
+     * @return the value of field 'Gapped'.
+     */
+    public boolean isGapped(
+    ) {
+        return this._gapped;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'annotationId'. The field
+     * 'annotationId' has the following description: id attribute
+     * of Annotation in
+     *  vamsasModel for
+     *  the secondary structure annotation shown
+     *  in the viewer
+     *  
+     * 
+     * @param annotationId the value of field 'annotationId'.
+     */
+    public void setAnnotationId(
+            final java.lang.String annotationId) {
+        this._annotationId = annotationId;
+    }
+
+    /**
+     * Sets the value of field 'gapped'. The field 'gapped' has the
+     * following description: if true the RNA structure is shown
+     * with gaps, if false without
+     *  
+     * 
+     * @param gapped the value of field 'gapped'.
+     */
+    public void setGapped(
+            final boolean gapped) {
+        this._gapped = gapped;
+        this._has_gapped = true;
+    }
+
+    /**
+     * Sets the value of field 'title'.
+     * 
+     * @param title the value of field 'title'.
+     */
+    public void setTitle(
+            final java.lang.String title) {
+        this._title = title;
+    }
+
+    /**
+     * Sets the value of field 'viewerState'. The field
+     * 'viewerState' has the following description: name of the
+     * project jar entry that holds
+     *  the VARNA viewer state for the structure
+     *  
+     * 
+     * @param viewerState the value of field 'viewerState'.
+     */
+    public void setViewerState(
+            final java.lang.String viewerState) {
+        this._viewerState = viewerState;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.SecondaryStructure
+     */
+    public static jalview.schemabinding.version2.SecondaryStructure unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.SecondaryStructure) Unmarshaller.unmarshal(jalview.schemabinding.version2.SecondaryStructure.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
+
+}
index 5408c63..2c19f1f 100644 (file)
@@ -63,7 +63,8 @@ public class Setting implements java.io.Serializable {
 
     /**
      * Optional minimum colour
-     *  for graduated feature
+     *  for graduated
+     *  feature
      *  colour
      *  
      */
@@ -286,7 +287,8 @@ public class Setting implements java.io.Serializable {
      * Returns the value of field 'mincolour'. The field
      * 'mincolour' has the following description: Optional minimum
      * colour
-     *  for graduated feature
+     *  for graduated
+     *  feature
      *  colour
      *  
      * 
@@ -591,7 +593,8 @@ public class Setting implements java.io.Serializable {
     /**
      * Sets the value of field 'mincolour'. The field 'mincolour'
      * has the following description: Optional minimum colour
-     *  for graduated feature
+     *  for graduated
+     *  feature
      *  colour
      *  
      * 
index 82773a3..fe7c95d 100644 (file)
@@ -199,8 +199,17 @@ public class StructureState implements java.io.Serializable {
     private boolean _has_colourByJmol;
 
     /**
-     * An identifier for the viewer type, currently either
-     *  JMOL or CHIMERA
+     * An
+     *  identifier
+     *  for
+     *  the
+     *  viewer
+     *  type,
+     *  currently
+     *  either
+     *  JMOL
+     *  or
+     *  CHIMERA
      *  
      */
     private java.lang.String _type;
@@ -441,9 +450,17 @@ public class StructureState implements java.io.Serializable {
 
     /**
      * Returns the value of field 'type'. The field 'type' has the
-     * following description: An identifier for the viewer type,
-     * currently either
-     *  JMOL or CHIMERA
+     * following description: An
+     *  identifier
+     *  for
+     *  the
+     *  viewer
+     *  type,
+     *  currently
+     *  either
+     *  JMOL
+     *  or
+     *  CHIMERA
      *  
      * 
      * @return the value of field 'Type'.
@@ -929,9 +946,17 @@ public class StructureState implements java.io.Serializable {
 
     /**
      * Sets the value of field 'type'. The field 'type' has the
-     * following description: An identifier for the viewer type,
-     * currently either
-     *  JMOL or CHIMERA
+     * following description: An
+     *  identifier
+     *  for
+     *  the
+     *  viewer
+     *  type,
+     *  currently
+     *  either
+     *  JMOL
+     *  or
+     *  CHIMERA
      *  
      * 
      * @param type the value of field 'type'.
index 7fd6238..b147498 100644 (file)
@@ -113,7 +113,8 @@ public class Tree implements java.io.Serializable {
 
     /**
      * Tree ID added for binding tree
-     *  visualization settings to vamsas
+     *  visualization
+     *  settings to vamsas
      *  document trees in jalview 2.4.1
      *  
      */
@@ -330,7 +331,8 @@ public class Tree implements java.io.Serializable {
     /**
      * Returns the value of field 'id'. The field 'id' has the
      * following description: Tree ID added for binding tree
-     *  visualization settings to vamsas
+     *  visualization
+     *  settings to vamsas
      *  document trees in jalview 2.4.1
      *  
      * 
@@ -716,7 +718,8 @@ public class Tree implements java.io.Serializable {
     /**
      * Sets the value of field 'id'. The field 'id' has the
      * following description: Tree ID added for binding tree
-     *  visualization settings to vamsas
+     *  visualization
+     *  settings to vamsas
      *  document trees in jalview 2.4.1
      *  
      * 
index 7dcb3ee..136a3b3 100644 (file)
@@ -383,15 +383,16 @@ public class Viewport implements java.io.Serializable {
 
     /**
      * unique id used by jalview to
-     *  synchronize between stored and
+     *  synchronize
+     *  between stored and
      *  instantiated views
      *  
      */
     private java.lang.String _id;
 
     /**
-     * The viewport id of this viewport's (cdna/protein) coding
-     * complement, if any
+     * The viewport id of this viewport's
+     *  (cdna/protein) coding complement, if any
      *  
      */
     private java.lang.String _complementId;
@@ -882,8 +883,8 @@ public class Viewport implements java.io.Serializable {
     /**
      * Returns the value of field 'complementId'. The field
      * 'complementId' has the following description: The viewport
-     * id of this viewport's (cdna/protein) coding complement, if
-     * any
+     * id of this viewport's
+     *  (cdna/protein) coding complement, if any
      *  
      * 
      * @return the value of field 'ComplementId'.
@@ -1033,7 +1034,8 @@ public class Viewport implements java.io.Serializable {
     /**
      * Returns the value of field 'id'. The field 'id' has the
      * following description: unique id used by jalview to
-     *  synchronize between stored and
+     *  synchronize
+     *  between stored and
      *  instantiated views
      *  
      * 
@@ -2151,8 +2153,8 @@ public class Viewport implements java.io.Serializable {
     /**
      * Sets the value of field 'complementId'. The field
      * 'complementId' has the following description: The viewport
-     * id of this viewport's (cdna/protein) coding complement, if
-     * any
+     * id of this viewport's
+     *  (cdna/protein) coding complement, if any
      *  
      * 
      * @param complementId the value of field 'complementId'.
@@ -2299,7 +2301,8 @@ public class Viewport implements java.io.Serializable {
     /**
      * Sets the value of field 'id'. The field 'id' has the
      * following description: unique id used by jalview to
-     *  synchronize between stored and
+     *  synchronize
+     *  between stored and
      *  instantiated views
      *  
      * 
index ab0eaaf..44c8caf 100644 (file)
@@ -408,6 +408,48 @@ public class JSeqDescriptor extends org.exolab.castor.xml.util.XMLClassDescripto
             typeValidator.setMaxInclusive(2147483647);
         }
         desc.setValidator(fieldValidator);
+        //-- _rnaViewerList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.RnaViewer.class, "_rnaViewerList", "rnaViewer", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JSeq target = (JSeq) object;
+                return target.getRnaViewer();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JSeq target = (JSeq) object;
+                    target.addRnaViewer( (jalview.schemabinding.version2.RnaViewer) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    JSeq target = (JSeq) object;
+                    target.removeAllRnaViewer();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.RnaViewer();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _rnaViewerList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
+        }
+        desc.setValidator(fieldValidator);
     }
 
 
diff --git a/src/jalview/schemabinding/version2/descriptors/RnaViewerDescriptor.java b/src/jalview/schemabinding/version2/descriptors/RnaViewerDescriptor.java
new file mode 100644 (file)
index 0000000..fd824a1
--- /dev/null
@@ -0,0 +1,535 @@
+/*
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
+ */
+
+package jalview.schemabinding.version2.descriptors;
+
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
+
+import jalview.schemabinding.version2.RnaViewer;
+
+/**
+ * Class RnaViewerDescriptor.
+ * 
+ * @version $Revision$ $Date$
+ */
+public class RnaViewerDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public RnaViewerDescriptor() {
+        super();
+        _nsURI = "www.jalview.org";
+        _xmlName = "rnaViewer";
+        _elementDefinition = true;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _title
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_title", "title", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                RnaViewer target = (RnaViewer) object;
+                return target.getTitle();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    RnaViewer target = (RnaViewer) object;
+                    target.setTitle( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _title
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
+        }
+        desc.setValidator(fieldValidator);
+        //-- _viewId
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_viewId", "viewId", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                RnaViewer target = (RnaViewer) object;
+                return target.getViewId();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    RnaViewer target = (RnaViewer) object;
+                    target.setViewId( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _viewId
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
+        }
+        desc.setValidator(fieldValidator);
+        //-- _dividerLocation
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_dividerLocation", "dividerLocation", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                RnaViewer target = (RnaViewer) object;
+                if (!target.hasDividerLocation()) { return null; }
+                return new java.lang.Integer(target.getDividerLocation());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    RnaViewer target = (RnaViewer) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteDividerLocation();
+                        return;
+                    }
+                    target.setDividerLocation( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _dividerLocation
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
+        }
+        desc.setValidator(fieldValidator);
+        //-- _selectedRna
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_selectedRna", "selectedRna", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                RnaViewer target = (RnaViewer) object;
+                if (!target.hasSelectedRna()) { return null; }
+                return new java.lang.Integer(target.getSelectedRna());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    RnaViewer target = (RnaViewer) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteSelectedRna();
+                        return;
+                    }
+                    target.setSelectedRna( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _selectedRna
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
+        }
+        desc.setValidator(fieldValidator);
+        //-- _width
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_width", "width", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                RnaViewer target = (RnaViewer) object;
+                if (!target.hasWidth()) { return null; }
+                return new java.lang.Integer(target.getWidth());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    RnaViewer target = (RnaViewer) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteWidth();
+                        return;
+                    }
+                    target.setWidth( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _width
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
+        }
+        desc.setValidator(fieldValidator);
+        //-- _height
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_height", "height", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                RnaViewer target = (RnaViewer) object;
+                if (!target.hasHeight()) { return null; }
+                return new java.lang.Integer(target.getHeight());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    RnaViewer target = (RnaViewer) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteHeight();
+                        return;
+                    }
+                    target.setHeight( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _height
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
+        }
+        desc.setValidator(fieldValidator);
+        //-- _xpos
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_xpos", "xpos", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                RnaViewer target = (RnaViewer) object;
+                if (!target.hasXpos()) { return null; }
+                return new java.lang.Integer(target.getXpos());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    RnaViewer target = (RnaViewer) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteXpos();
+                        return;
+                    }
+                    target.setXpos( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _xpos
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
+        }
+        desc.setValidator(fieldValidator);
+        //-- _ypos
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_ypos", "ypos", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                RnaViewer target = (RnaViewer) object;
+                if (!target.hasYpos()) { return null; }
+                return new java.lang.Integer(target.getYpos());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    RnaViewer target = (RnaViewer) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteYpos();
+                        return;
+                    }
+                    target.setYpos( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _ypos
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
+        }
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+        //-- _secondaryStructureList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.SecondaryStructure.class, "_secondaryStructureList", "secondaryStructure", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                RnaViewer target = (RnaViewer) object;
+                return target.getSecondaryStructure();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    RnaViewer target = (RnaViewer) object;
+                    target.addSecondaryStructure( (jalview.schemabinding.version2.SecondaryStructure) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    RnaViewer target = (RnaViewer) object;
+                    target.removeAllSecondaryStructure();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.SecondaryStructure();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setRequired(true);
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _secondaryStructureList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+        }
+        desc.setValidator(fieldValidator);
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
+    }
+
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
+
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.RnaViewer.class;
+    }
+
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
+
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
+
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
+
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
+
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
+
+}
diff --git a/src/jalview/schemabinding/version2/descriptors/SecondaryStructureDescriptor.java b/src/jalview/schemabinding/version2/descriptors/SecondaryStructureDescriptor.java
new file mode 100644 (file)
index 0000000..bc7e4ac
--- /dev/null
@@ -0,0 +1,311 @@
+/*
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
+ */
+
+package jalview.schemabinding.version2.descriptors;
+
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
+
+import jalview.schemabinding.version2.SecondaryStructure;
+
+/**
+ * Class SecondaryStructureDescriptor.
+ * 
+ * @version $Revision$ $Date$
+ */
+public class SecondaryStructureDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public SecondaryStructureDescriptor() {
+        super();
+        _nsURI = "www.jalview.org";
+        _xmlName = "secondaryStructure";
+        _elementDefinition = true;
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _title
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_title", "title", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                SecondaryStructure target = (SecondaryStructure) object;
+                return target.getTitle();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    SecondaryStructure target = (SecondaryStructure) object;
+                    target.setTitle( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _title
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
+        }
+        desc.setValidator(fieldValidator);
+        //-- _annotationId
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_annotationId", "annotationId", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                SecondaryStructure target = (SecondaryStructure) object;
+                return target.getAnnotationId();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    SecondaryStructure target = (SecondaryStructure) object;
+                    target.setAnnotationId( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _annotationId
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
+        }
+        desc.setValidator(fieldValidator);
+        //-- _gapped
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_gapped", "gapped", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                SecondaryStructure target = (SecondaryStructure) object;
+                if (!target.hasGapped()) { return null; }
+                return (target.getGapped() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    SecondaryStructure target = (SecondaryStructure) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteGapped();
+                        return;
+                    }
+                    target.setGapped( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _gapped
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
+        }
+        desc.setValidator(fieldValidator);
+        //-- _viewerState
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_viewerState", "viewerState", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                SecondaryStructure target = (SecondaryStructure) object;
+                return target.getViewerState();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    SecondaryStructure target = (SecondaryStructure) object;
+                    target.setViewerState( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _viewerState
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
+        }
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
+    }
+
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
+
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.SecondaryStructure.class;
+    }
+
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
+
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
+
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
+
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
+
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
+
+}
index 4f1cb58..8a55f79 100644 (file)
@@ -145,7 +145,7 @@ public class GraduatedColor
   public boolean isColored(SequenceFeature feature)
   {
     float val = feature.getScore();
-    if (val == Float.NaN)
+    if (Float.isNaN(val))
     {
       return true;
     }
@@ -153,7 +153,7 @@ public class GraduatedColor
     {
       return true;
     }
-    if (this.thrsh == Float.NaN)
+    if (Float.isNaN(this.thrsh))
     {
       return true;
     }
@@ -211,7 +211,7 @@ public class GraduatedColor
       return getMaxColor();
     }
     float scr = feature.getScore();
-    if (scr == Float.NaN)
+    if (Float.isNaN(scr))
     {
       return getMinColor();
     }
index 5d5d880..a7384f8 100644 (file)
  */
 package jalview.structure;
 
-import jalview.datamodel.*;
+import jalview.datamodel.SequenceI;
 
 public interface SecondaryStructureListener
 {
   // TODO - redefine to allow RNA mouseovers to be passed back correctly to
   // listeners
-  public void mouseOverSequence(SequenceI sequence, int index);
+  /**
+   * act on a mouseover event
+   * 
+   * @param sequence
+   * @param index
+   *          the aligned sequence position (base 0)
+   * @param position
+   *          the dataset sequence position (base 1)
+   */
+  public void mouseOverSequence(SequenceI sequence, int index, int position);
 }
index 0253a7e..ac14b52 100644 (file)
@@ -739,7 +739,7 @@ public class StructureSelectionManager
         else if (listener instanceof SecondaryStructureListener)
         {
           ((SecondaryStructureListener) listener).mouseOverSequence(seq,
-                  indexpos);
+                  indexpos, index);
         }
       }
     }
index 100ecf5..8abe965 100755 (executable)
@@ -20,6 +20,7 @@
  */
 package jalview.util;
 
+import jalview.bin.Jalview;
 import jalview.gui.EPSOptions;
 import jalview.gui.SVGOptions;
 import jalview.io.JalviewFileChooser;
@@ -259,6 +260,10 @@ public class ImageMaker
 
   static JalviewFileChooser getPNGChooser()
   {
+    if (Jalview.isHeadlessMode())
+  {
+      return null;
+    }
     return new jalview.io.JalviewFileChooser(
             jalview.bin.Cache.getProperty("LAST_DIRECTORY"), new String[]
             { "png" }, new String[]
@@ -267,6 +272,10 @@ public class ImageMaker
 
   static JalviewFileChooser getEPSChooser()
   {
+    if (Jalview.isHeadlessMode())
+    {
+      return null;
+    }
     return new jalview.io.JalviewFileChooser(
             jalview.bin.Cache.getProperty("LAST_DIRECTORY"), new String[]
             { "eps" }, new String[]
@@ -275,6 +284,10 @@ public class ImageMaker
 
   static JalviewFileChooser getSVGChooser()
   {
+    if (Jalview.isHeadlessMode())
+  {
+      return null;
+    }
     return new jalview.io.JalviewFileChooser(
             jalview.bin.Cache.getProperty("LAST_DIRECTORY"), new String[]
             { "svg" }, new String[]
index 333aff4..b812feb 100644 (file)
@@ -32,13 +32,13 @@ public class Platform
    * 
    * @return true if we do things in a special way.
    */
-  public boolean isAMac()
+  public static boolean isAMac()
   {
     return java.lang.System.getProperty("os.name").indexOf("Mac") > -1;
 
   }
 
-  public boolean isHeadless()
+  public static boolean isHeadless()
   {
     String hdls = java.lang.System.getProperty("java.awt.headless");
 
index 1325ce5..c55d467 100644 (file)
@@ -66,7 +66,7 @@ public class StringUtils
    */
   public static final char[] deleteChars(char[] in, int from, int to)
   {
-    if (from >= in.length)
+    if (from >= in.length || from < 0)
     {
       return in;
     }
index 5617bcf..899e8a7 100644 (file)
@@ -2501,14 +2501,14 @@ public abstract class AlignmentViewport implements AlignViewportI,
    */
   protected int findComplementScrollTarget(SearchResults sr)
   {
-    final AlignViewportI codingComplement = getCodingComplement();
-    if (codingComplement == null || !codingComplement.isFollowHighlight())
+    final AlignViewportI complement = getCodingComplement();
+    if (complement == null || !complement.isFollowHighlight())
     {
       return 0;
     }
     boolean iAmProtein = !getAlignment().isNucleotide();
     AlignmentI proteinAlignment = iAmProtein ? getAlignment()
-            : codingComplement.getAlignment();
+            : complement.getAlignment();
     if (proteinAlignment == null)
     {
       return 0;
@@ -2546,7 +2546,7 @@ public abstract class AlignmentViewport implements AlignViewportI,
               .findMappingsForSequence(sequence, mappings);
       if (!seqMappings.isEmpty())
       {
-        break;
+          break;
       }
     }
   
index 674f3d1..19c6ca8 100644 (file)
@@ -369,7 +369,7 @@ public abstract class FeatureRendererModel implements
         {
           allfeatures.add(features[index].getType());
         }
-        if (features[index].score != Float.NaN)
+        if (!Float.isNaN(features[index].score))
         {
           int nonpos = features[index].getBegin() >= 1 ? 0 : 1;
           float[][] mm = (float[][]) minmax.get(features[index].getType());
diff --git a/src/jalview/ws/EnfinEnvision2OneWay.java b/src/jalview/ws/EnfinEnvision2OneWay.java
deleted file mode 100644 (file)
index 239a626..0000000
+++ /dev/null
@@ -1,703 +0,0 @@
-/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview 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.
- *  
- * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
- */
-package jalview.ws;
-
-import jalview.bin.Cache;
-import jalview.datamodel.DBRefEntry;
-import jalview.datamodel.SequenceGroup;
-import jalview.datamodel.SequenceI;
-import jalview.gui.AlignFrame;
-import jalview.gui.Desktop;
-import jalview.gui.JvSwingUtils;
-import jalview.util.GroupUrlLink;
-import jalview.util.MessageManager;
-import jalview.util.GroupUrlLink.UrlStringTooLongException;
-
-import java.awt.Component;
-import java.awt.Cursor;
-import java.awt.event.ActionEvent;
-import java.io.UnsupportedEncodingException;
-import java.net.URL;
-import java.net.URLEncoder;
-import java.util.Hashtable;
-import java.util.Map;
-import java.util.Vector;
-import java.util.regex.Pattern;
-
-import javax.swing.JMenu;
-import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
-import javax.swing.event.MenuEvent;
-import javax.swing.event.MenuListener;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-import com.lowagie.text.html.HtmlEncoder;
-
-/**
- * Lightweight runnable to discover dynamic 'one way' group URL services
- * 
- * as of Jalview 2.8.1 this class is mothballed and will be dropped in v3.
- * 
- * @author JimP
- * @deprecated
- * 
- */
-public class EnfinEnvision2OneWay extends DefaultHandler implements
-        Runnable, WSMenuEntryProviderI
-{
-  private static EnfinEnvision2OneWay groupURLLinksGatherer = null;
-
-  public static EnfinEnvision2OneWay getInstance()
-  {
-    if (groupURLLinksGatherer == null)
-    {
-      groupURLLinksGatherer = new EnfinEnvision2OneWay();
-    }
-    return groupURLLinksGatherer;
-  }
-
-  private void waitForCompletion()
-  {
-    if (groupURLLinksGatherer.isRunning())
-    {
-      // wait around and show a visual delay indicator
-      Cursor oldCursor = Desktop.instance.getCursor();
-      Desktop.instance.setCursor(new Cursor(Cursor.WAIT_CURSOR));
-      while (groupURLLinksGatherer.isRunning())
-      {
-        try
-        {
-          Thread.sleep(100);
-        } catch (InterruptedException e)
-        {
-        }
-        ;
-      }
-      Desktop.instance.setCursor(oldCursor);
-    }
-  }
-
-  public Vector getEnvisionServiceGroupURLS()
-  {
-    waitForCompletion();
-    return groupURLLinks;
-  }
-
-  /**
-   * indicate if
-   */
-  private static String BACKGROUND = "BACKGROUNDPARAM";
-
-  /**
-   * contains null strings or one of the above constants - indicate if this URL
-   * is a special case.
-   */
-  private Vector additionalPar = new Vector();
-
-  /**
-   * the enfin service URL
-   */
-  private String enfinService = null;
-
-  private String description = null;
-
-  private String wfname;
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.xml.sax.helpers.DefaultHandler#endElement(java.lang.String,
-   * java.lang.String, java.lang.String)
-   */
-  public void endElement(String uri, String localName, String qName)
-          throws SAXException
-  {
-
-    // System.err.println("End element: : '"+uri+" "+localName+" "+qName);
-    if (qName.equalsIgnoreCase("workflow") && description != null
-            && description.length() > 0)
-    {
-      // groupURLLinks.addElement("UNIPROT|EnVision2|http://www.ebi.ac.uk/enfin-srv/envision2/pages/linkin.jsf?tool=Jalview&workflow=Default&datasetName=JalviewIDs$DATASETID$&input=$SEQUENCEIDS$&inputType=0|,");
-      // groupURLLinks.addElement("Seqs|EnVision2|http://www.ebi.ac.uk/enfin-srv/envision2/pages/linkin.jsf?tool=Jalview&workflow=Default&datasetName=JalviewSeqs$DATASETID$&input=$SEQUENCES=/([A-Za-z]+)+/=$&inputType=1|,");
-      System.err.println("Adding entry for " + wfname + " " + description);
-      if (wfname.toLowerCase().indexOf("funcnet") == -1)
-      {
-        description = Pattern.compile("\\s+", Pattern.MULTILINE)
-                .matcher(description).replaceAll(" ");
-        groupURLdescr.addElement(description);
-        groupURLdescr.addElement(description);
-        String urlstub = wfname;
-        if (wfname.indexOf(" ") > -1)
-        {
-          // make the name safe!
-          try
-          {
-            urlstub = URLEncoder.encode(wfname, "utf-8");
-          } catch (UnsupportedEncodingException e)
-          {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-          }
-        }
-        groupURLLinks
-                .addElement(wfname
-                        + "|"
-                        + "http://www.ebi.ac.uk/enfin-srv/envision2/pages/linkin.jsf?tool=Jalview&workflow="
-                        + urlstub
-                        + "&datasetName=JalviewSeqs$DATASETID$&input=$SEQUENCEIDS$&inputType=0|,"); // #"+description+"#");
-        groupURLLinks
-                .addElement(wfname
-                        + "|"
-                        + "http://www.ebi.ac.uk/enfin-srv/envision2/pages/linkin.jsf?tool=Jalview&workflow="
-                        + urlstub
-                        + "&datasetName=JalviewSeqs$DATASETID$&input=$SEQUENCES=/([A-Za-z]+)+/=$&inputType=1|,"); // #"+description+"#");
-      }
-    }
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.xml.sax.helpers.DefaultHandler#characters(char[], int, int)
-   */
-  public void characters(char[] ch, int start, int length)
-          throws SAXException
-  {
-    if (description != null)
-    {
-      for (int i = start; i < start + length; i++)
-      {
-        description += ch[i];
-      }
-    }
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.xml.sax.helpers.DefaultHandler#startElement(java.lang.String,
-   * java.lang.String, java.lang.String, org.xml.sax.Attributes)
-   */
-  public void startElement(String uri, String localName, String qName,
-          Attributes attributes) throws SAXException
-  {
-    if (qName.equalsIgnoreCase("workflow"))
-    {
-      description = null;
-      wfname = attributes.getValue("name");
-    }
-    if (qName.equalsIgnoreCase("description"))
-    {
-      description = "";
-    }
-
-    // System.err.println("Start element: : '"+uri+" "+localName+" "+qName+" attributes"+attributes);
-    // super.startElement(uri,localName,qname,attributes);
-  }
-
-  private boolean started = false;
-
-  private boolean running = false;
-
-  private Vector groupURLLinks = null;
-
-  private Vector groupURLdescr = null;
-
-  private static String[] allowedDb = new String[]
-  { "UNIPROT", "EMBL", "PDB" };
-
-  public EnfinEnvision2OneWay()
-  {
-    groupURLLinks = new Vector();
-    groupURLdescr = new Vector();
-
-    enfinService = Cache.getDefault("ENVISION2_WORKFLOWSERVICE",
-            "http://www.ebi.ac.uk/enfin-srv/envision2/pages/workflows.xml");
-    new Thread(this).start();
-  }
-
-  public void run()
-  {
-    started = true;
-    running = true;
-    try
-    {
-      SAXParserFactory spf = SAXParserFactory.newInstance();
-      SAXParser sp = spf.newSAXParser();
-      sp.parse(new URL(enfinService).openStream(), this);
-    } catch (Exception e)
-    {
-      Cache.log.warn("Exception when discovering One Way services: ", e);
-    } catch (Error e)
-    {
-      Cache.log.warn("Error when discovering One Way services: ", e);
-    }
-    running = false;
-    Cache.log.debug("Finished running.");
-  }
-
-  /**
-   * have we finished running yet ?
-   * 
-   * @return false if we have been run.
-   */
-  public boolean isRunning()
-  {
-
-    // TODO Auto-generated method stub
-    return !started || running;
-  }
-
-  public static void main(String[] args)
-  {
-    Cache.initLogger();
-    EnfinEnvision2OneWay ow = new EnfinEnvision2OneWay();
-    while (ow.isRunning())
-    {
-      try
-      {
-        Thread.sleep(50);
-      } catch (Exception e)
-      {
-      }
-      ;
-
-    }
-    for (int i = 0; i < ow.groupURLLinks.size(); i++)
-    {
-      System.err.println("Description" + ow.groupURLdescr.elementAt(i)
-              + "Service URL: " + ow.groupURLLinks.elementAt(i));
-    }
-  }
-
-  // / Copied from jalview.gui.PopupMenu
-  /**
-   * add a late bound URL service item to the given menu
-   * 
-   * @param linkMenu
-   * @param label
-   *          - menu label string
-   * @param urlgenerator
-   *          GroupURLLink used to generate URL
-   * @param urlstub
-   *          Object array returned from the makeUrlStubs function.
-   */
-  private void addshowLink(JMenu linkMenu, String label, String descr,
-          String dbname, final GroupUrlLink urlgenerator,
-          final Object[] urlstub)
-  {
-    Component[] jmi = linkMenu.getMenuComponents();
-    for (int i = 0; i < jmi.length; i++)
-    {
-      if (jmi[i] instanceof JMenuItem
-              && ((JMenuItem) jmi[i]).getText().equalsIgnoreCase(label))
-      {
-        // don't add this - its a repeat of an existing URL.
-        return;
-      }
-    }
-    try
-    {
-      descr = HtmlEncoder.encode(descr);
-    } catch (Exception e)
-    {
-    }
-    ;
-
-    boolean seqsorids = (urlgenerator.getGroupURLType() & urlgenerator.SEQUENCEIDS) == 0;
-    int i = urlgenerator.getNumberInvolved(urlstub);
-    JMenuItem item = new JMenuItem(label);
-    //
-    if (dbname == null || dbname.trim().length() == 0)
-    {
-      dbname = "";
-    }
-    item.setToolTipText(JvSwingUtils.wrapTooltip(true, MessageManager.formatMessage("label.submit_sequence", new String[]{Integer.valueOf(i).toString(), dbname, (seqsorids ? "sequence" : "sequence id"), (i > 1 ? "s" : "")})));
-    item.addActionListener(new java.awt.event.ActionListener()
-    {
-      public void actionPerformed(ActionEvent e)
-      {
-        new Thread(new Runnable()
-        {
-
-          public void run()
-          {
-            try
-            {
-              showLink(urlgenerator.constructFrom(urlstub));
-            } catch (UrlStringTooLongException ex)
-            {
-              Cache.log.warn("Not showing link: URL is too long!", ex);
-            }
-          }
-
-        }).start();
-      }
-    });
-
-    linkMenu.add(item);
-  }
-
-  /**
-   * open the given link in a new browser window
-   * 
-   * @param url
-   */
-  public void showLink(String url)
-  {
-    try
-    {
-      jalview.util.BrowserLauncher.openURL(url);
-    } catch (Exception ex)
-    {
-      JOptionPane
-              .showInternalMessageDialog(
-                      Desktop.desktop,
-                      MessageManager.getString("label.web_browser_not_found_unix"),
-                      MessageManager.getString("label.web_browser_not_found"), JOptionPane.WARNING_MESSAGE);
-
-      ex.printStackTrace();
-    }
-  }
-
-  /**
-   * called by a web service menu instance when it is opened.
-   * 
-   * @param enfinServiceMenu
-   * @param alignFrame
-   */
-  private void buildGroupLinkMenu(JMenu enfinServiceMenu,
-          AlignFrame alignFrame)
-  {
-    if (running || !started)
-    {
-      return;
-    }
-    SequenceI[] seqs = alignFrame.getViewport().getSelectionAsNewSequence();
-    SequenceGroup sg = alignFrame.getViewport().getSelectionGroup();
-    if (sg == null)
-    {
-      // consider visible regions here/
-    }
-    enfinServiceMenu.removeAll();
-    JMenu entries = buildGroupURLMenu(seqs, sg);
-    if (entries != null)
-    {
-      for (int i = 0, iSize = entries.getMenuComponentCount(); i < iSize; i++)
-      {
-        // transfer - menu component is removed from entries automatically
-        enfinServiceMenu.add(entries.getMenuComponent(0));
-      }
-      // entries.removeAll();
-      enfinServiceMenu.setEnabled(true);
-    }
-    else
-    {
-      enfinServiceMenu.setEnabled(false);
-    }
-  }
-
-  /**
-   * construct a dynamic enfin services menu given a sequence selection
-   * 
-   * @param seqs
-   * @param sg
-   * @param groupLinks
-   * @return
-   */
-  private JMenu buildGroupURLMenu(SequenceI[] seqs, SequenceGroup sg)
-  {
-    if (groupURLdescr == null || groupURLLinks == null)
-      return null;
-    // TODO: usability: thread off the generation of group url content so root
-    // menu appears asap
-    // sequence only URLs
-    // ID/regex match URLs
-    JMenu groupLinksMenu = new JMenu(MessageManager.getString("action.group_link"));
-    String[][] idandseqs = GroupUrlLink.formStrings(seqs);
-    Hashtable commonDbrefs = new Hashtable();
-    for (int sq = 0; sq < seqs.length; sq++)
-    {
-
-      int start, end;
-      if (sg != null)
-      {
-        start = seqs[sq].findPosition(sg.getStartRes());
-        end = seqs[sq].findPosition(sg.getEndRes());
-      }
-      else
-      {
-        // get total width of alignment.
-        start = seqs[sq].getStart();
-        end = seqs[sq].findPosition(seqs[sq].getLength());
-      }
-      // we skip sequences which do not have any non-gaps in the region of
-      // interest
-      if (start > end)
-      {
-        continue;
-      }
-      // just collect ids from dataset sequence
-      // TODO: check if IDs collected from selecton group intersects with the
-      // current selection, too
-      SequenceI sqi = seqs[sq];
-      while (sqi.getDatasetSequence() != null)
-      {
-        sqi = sqi.getDatasetSequence();
-      }
-      DBRefEntry[] dbr = sqi.getDBRef();
-      if (dbr != null && dbr.length > 0)
-      {
-        for (int d = 0; d < dbr.length; d++)
-        {
-          String src = dbr[d].getSource(); // jalview.util.DBRefUtils.getCanonicalName(dbr[d].getSource()).toUpperCase();
-          Object[] sarray = (Object[]) commonDbrefs.get(src);
-          if (sarray == null)
-          {
-            sarray = new Object[2];
-            sarray[0] = new int[]
-            { 0 };
-            sarray[1] = new String[seqs.length];
-
-            commonDbrefs.put(src, sarray);
-          }
-
-          if (((String[]) sarray[1])[sq] == null)
-          {
-            if (!dbr[d].hasMap()
-                    || (dbr[d].getMap().locateMappedRange(start, end) != null))
-            {
-              ((String[]) sarray[1])[sq] = dbr[d].getAccessionId();
-              ((int[]) sarray[0])[0]++;
-            }
-          }
-        }
-      }
-    }
-    // now create group links for all distinct ID/sequence sets.
-    Hashtable<String, JMenu[]> gurlMenus = new Hashtable<String, JMenu[]>();
-    /**
-     * last number of sequences where URL generation failed
-     */
-    int[] nsqtype = new int[]
-    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-    for (int i = 0; i < groupURLLinks.size(); i++)
-    {
-      String link = (String) groupURLLinks.elementAt(i);
-      String descr = (String) groupURLdescr.elementAt(i);
-
-      // boolean specialCase =
-      // additionalPar.elementAt(i).toString().equals(BACKGROUND);
-      GroupUrlLink urlLink = null;
-      try
-      {
-        urlLink = new GroupUrlLink(link);
-      } catch (Exception foo)
-      {
-        jalview.bin.Cache.log.error("Exception for GroupURLLink '" + link
-                + "'", foo);
-        continue;
-      }
-      ;
-      if (!urlLink.isValid())
-      {
-        jalview.bin.Cache.log.error(urlLink.getInvalidMessage());
-        continue;
-      }
-      final String label = urlLink.getLabel();
-      // create/recover the sub menus that might be populated for this link.
-      JMenu[] wflinkMenus = gurlMenus.get(label);
-      if (wflinkMenus == null)
-      {
-        // three types of url that might be
-        // created.
-        wflinkMenus = new JMenu[]
-        { null, new JMenu(MessageManager.getString("action.ids")), new JMenu(MessageManager.getString("action.sequences")),
-            new JMenu(MessageManager.getString("action.ids_sequences")) };
-        gurlMenus.put(label, wflinkMenus);
-      }
-
-      boolean usingNames = false;
-      // Now see which parts of the group apply for this URL
-      String ltarget;
-      String[] seqstr, ids; // input to makeUrl
-      for (int t = 0; t < allowedDb.length; t++)
-      {
-        ltarget = allowedDb[t]; // jalview.util.DBRefUtils.getCanonicalName(urlLink.getTarget());
-        Object[] idset = (Object[]) commonDbrefs.get(ltarget.toUpperCase());
-        if (idset != null)
-        {
-          int numinput = ((int[]) idset[0])[0];
-          String[] allids = ((String[]) idset[1]);
-          seqstr = new String[numinput];
-          ids = new String[numinput];
-          if (nsqtype[urlLink.getGroupURLType()] > 0
-                  && numinput >= nsqtype[urlLink.getGroupURLType()])
-          {
-            continue;
-          }
-          for (int sq = 0, idcount = 0; sq < seqs.length; sq++)
-          {
-            if (allids[sq] != null)
-            {
-              ids[idcount] = allids[sq];
-              seqstr[idcount++] = idandseqs[1][sq];
-            }
-          }
-          try
-          {
-            createAndAddLinks(wflinkMenus, false, urlLink, ltarget, null,
-                    descr, ids, seqstr);
-          } catch (UrlStringTooLongException ex)
-          {
-            nsqtype[urlLink.getGroupURLType()] = numinput;
-          }
-        }
-      }
-      // also do names only.
-      seqstr = idandseqs[1];
-      ids = idandseqs[0];
-      if (nsqtype[urlLink.getGroupURLType()] > 0
-              && idandseqs[0].length >= nsqtype[urlLink.getGroupURLType()])
-      {
-        continue;
-      }
-
-      try
-      {
-        createAndAddLinks(wflinkMenus, true, urlLink, "Any", null, descr,
-                ids, seqstr);
-      } catch (UrlStringTooLongException ex)
-      {
-        nsqtype[urlLink.getGroupURLType()] = idandseqs[0].length;
-      }
-    }
-    boolean anyadded = false; // indicates if there are any group links to give
-    // to user
-    for (Map.Entry<String, JMenu[]> menues : gurlMenus.entrySet())
-    {
-      JMenu grouplinkset = new JMenu(menues.getKey());
-      JMenu[] wflinkMenus = menues.getValue();
-      for (int m = 0; m < wflinkMenus.length; m++)
-      {
-        if (wflinkMenus[m] != null
-                && wflinkMenus[m].getMenuComponentCount() > 0)
-        {
-          anyadded = true;
-          grouplinkset.add(wflinkMenus[m]);
-        }
-      }
-      groupLinksMenu.add(grouplinkset);
-    }
-    if (anyadded)
-    {
-      return groupLinksMenu;
-    }
-    return null;
-  }
-
-  private boolean createAndAddLinks(JMenu[] linkMenus, boolean usingNames,
-          GroupUrlLink urlLink, String label, String ltarget, String descr,
-          String[] ids, String[] seqstr) throws UrlStringTooLongException
-  {
-    Object[] urlset = urlLink.makeUrlStubs(ids, seqstr, "FromJalview"
-            + System.currentTimeMillis(), false);
-
-    if (urlset != null)
-    {
-      int type = urlLink.getGroupURLType() & 3;
-      // System.out.println(urlLink.getGroupURLType()
-      // +" "+((String[])urlset[3])[0]);
-      // first two bits ofurlLink type bitfield are sequenceids and sequences
-      // TODO: FUTURE: ensure the groupURL menu structure can be generalised
-      addshowLink(
-              linkMenus[type],
-              label
-                      + " "
-                      + (ltarget == null ? (((type & 1) == 1 ? "ID"
-                              : "Sequence") + (urlLink
-                              .getNumberInvolved(urlset) > 1 ? "s" : ""))
-                              : (usingNames ? (((type & 1) == 1) ? "(Names)"
-                                      : "")
-                                      : ("(" + ltarget + ")"))), descr,
-              usingNames ? null : label, urlLink, urlset);
-      return true;
-    }
-    return false;
-  }
-
-  // / end of stuff copied from popupmenu
-  public void attachWSMenuEntry(final JMenu wsmenu,
-          final AlignFrame alignFrame)
-  {
-    final JMenu enfinServiceMenu = new JMenu("Envision 2");
-    wsmenu.add(enfinServiceMenu);
-    enfinServiceMenu.setEnabled(false);
-    wsmenu.addMenuListener(new MenuListener()
-    {
-      // this listener remembers when the menu was first selected, and
-      // doesn't rebuild the session list until it has been cleared and
-      // reselected again.
-      boolean refresh = true;
-
-      public void menuCanceled(MenuEvent e)
-      {
-        refresh = true;
-      }
-
-      public void menuDeselected(MenuEvent e)
-      {
-        refresh = true;
-      }
-
-      public void menuSelected(MenuEvent e)
-      {
-        if (refresh && !isRunning())
-        {
-          new Thread(new Runnable()
-          {
-            public void run()
-            {
-              try
-              {
-                buildGroupLinkMenu(enfinServiceMenu, alignFrame);
-              } catch (OutOfMemoryError ex)
-              {
-                Cache.log
-                        .error("Out of memory when calculating the Envision2 links.",
-                                ex);
-                enfinServiceMenu.setEnabled(false);
-              }
-            }
-          }).start();
-          refresh = false;
-        }
-      }
-    });
-
-  }
-
-}
index 67ab3f2..09c10ef 100644 (file)
@@ -269,27 +269,27 @@ public class PDBRestClient
    * table. The PDB Id serves as a unique identifier for a given row in the
    * summary table
    * 
-   * @param wantedFeilds
+   * @param wantedFields
    *          the available table columns in no particular order
    * @return the pdb id field column index
    */
   public static int getPDBIdColumIndex(
-          Collection<PDBDocField> wantedFeilds, boolean hasRefSeq)
+          Collection<PDBDocField> wantedFields, boolean hasRefSeq)
   {
 
     // If a reference sequence is attached then start counting from 1 else
     // start from zero
-    int pdbFeildIndexCounter = hasRefSeq ? 1 : 0;
+    int pdbFieldIndexCounter = hasRefSeq ? 1 : 0;
 
-    for (PDBDocField feild : wantedFeilds)
+    for (PDBDocField field : wantedFields)
     {
-      if (feild.equals(PDBDocField.PDB_ID))
+      if (field.equals(PDBDocField.PDB_ID))
       {
         break; // Once PDB Id index is determined exit iteration
       }
-      ++pdbFeildIndexCounter;
+      ++pdbFieldIndexCounter;
     }
-    return pdbFeildIndexCounter;
+    return pdbFieldIndexCounter;
   }
 
   /**
index e2e7534..3f6afbc 100644 (file)
  */
 package jalview.ws.dbsources.das.datamodel;
 
+import jalview.bin.Cache;
+import jalview.ws.dbsources.das.api.DasSourceRegistryI;
+import jalview.ws.dbsources.das.api.jalviewSourceI;
+
 import java.net.HttpURLConnection;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -39,10 +43,6 @@ import org.biodas.jdas.schema.sources.SOURCE;
 import org.biodas.jdas.schema.sources.SOURCES;
 import org.biodas.jdas.schema.sources.VERSION;
 
-import jalview.bin.Cache;
-import jalview.ws.dbsources.das.api.DasSourceRegistryI;
-import jalview.ws.dbsources.das.api.jalviewSourceI;
-
 /**
  *
  */
@@ -56,7 +56,8 @@ public class DasSourceRegistry implements DasSourceRegistryI,
 
   private Hashtable<String, jalviewSourceI> localSources = null;
 
-  public static String DEFAULT_REGISTRY = "http://www.dasregistry.org/das/";
+  // public static String DEFAULT_REGISTRY = "http://www.dasregistry.org/das/";
+  public static String DEFAULT_REGISTRY = "http://www.ebi.ac.uk/das-srv/registry/das/";
 
   /**
    * true if thread is running and we are talking to DAS registry service
index dfb13a6..91be2e6 100644 (file)
@@ -265,7 +265,7 @@ public class AADisorderClient extends JabawsCalcWorker implements
                           + rn.from, base + rn.to, methodName);
                 }
                 dseq.addSequenceFeature(sf);
-                if (last != val && last != Float.NaN)
+                if (last != val && !Float.isNaN(last))
                 {
                   fc.put(sf.getType(), sf);
                 }
index be18b51..baa1d9d 100644 (file)
@@ -27,7 +27,6 @@ import java.util.Hashtable;
 import java.util.List;
 import java.util.StringTokenizer;
 
-import org.jmol.util.ArrayUtil;
 import compbio.metadata.Argument;
 import compbio.metadata.Option;
 import compbio.metadata.Parameter;
index d0d0a6e..d2c1b38 100644 (file)
@@ -959,6 +959,7 @@ class MsaWSThread extends AWS2Thread implements WSClientI
     }
     else
     {
+      // TODO 2.9.x feature
       System.out.println("MERGE WITH OLD FRAME");
       // TODO: modify alignment in original frame, replacing old for new
       // alignment using the commands.EditCommand model to ensure the update can
@@ -987,17 +988,22 @@ class MsaWSThread extends AWS2Thread implements WSClientI
       addSortByMenuItems(af, alorders);
     }
 
+    // TODO: refactor retrieve and show as new splitFrame as Desktop method
+
     /*
      * If alignment was requested from one half of a SplitFrame, show in a
      * SplitFrame with the other pane similarly aligned.
      */
     AlignFrame requestedBy = getRequestingAlignFrame();
-    if (requestedBy != null && requestedBy.getSplitViewContainer() != null)
+    if (requestedBy != null && requestedBy.getSplitViewContainer() != null
+               && requestedBy.getSplitViewContainer().getComplement(requestedBy)!=null)
     {
       AlignmentI complement = requestedBy.getSplitViewContainer()
               .getComplement(requestedBy);
       String complementTitle = requestedBy.getSplitViewContainer()
               .getComplementTitle(requestedBy);
+      // becomes null if the alignment window was closed before the alignment
+      // job finished.
       AlignmentI copyComplement = new Alignment(complement);
       copyComplement.alignAs(al);
       if (copyComplement.getHeight() > 0)
index 186ac03..2e6551c 100644 (file)
@@ -12,7 +12,7 @@ public class AtomTest
    * Test the constructor that parses a PDB file format ATOM line. Fields are in
    * fixed column positions
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testStringConstructor()
   {
     Atom a = new Atom(
@@ -35,7 +35,7 @@ public class AtomTest
    * Test the case where occupancy and temp factor are blank - should default to
    * 1
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testStringConstructor_blankOccupancyTempFactor()
   {
     Atom a = new Atom(
@@ -47,7 +47,7 @@ public class AtomTest
   /**
    * Parsing non-numeric data as Atom throws an exception
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testStringConstructor_malformed()
   {
     try
index 6f701e2..4bdfff7 100644 (file)
@@ -7,7 +7,7 @@ import org.testng.annotations.Test;
 public class BondTest
 {
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testTranslate()
   {
     Atom a1 = new Atom(1f, 2f, 3f);
index 0df7851..b84ca28 100644 (file)
@@ -16,21 +16,29 @@ import jalview.schemes.TaylorColourScheme;
 import java.awt.Color;
 import java.util.Vector;
 
+import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
 public class PDBChainTest
 {
-  PDBChain c = new PDBChain("1GAQ", "A");
+  PDBChain c;
 
-  Atom a1 = new Atom(1f, 2f, 3f);
+  final Atom a1 = new Atom(1f, 2f, 3f);
 
-  Atom a2 = new Atom(5f, 6f, 4f);
+  final Atom a2 = new Atom(5f, 6f, 4f);
 
-  Atom a3 = new Atom(2f, 5f, 6f);
+  final Atom a3 = new Atom(2f, 5f, 6f);
 
-  Atom a4 = new Atom(2f, 1f, 7f);
+  final Atom a4 = new Atom(2f, 1f, 7f);
 
-  @Test
+  @BeforeMethod(alwaysRun = true)
+  public void setUp()
+  {
+    System.out.println("setup");
+    c = new PDBChain("1GAQ", "A");
+  }
+
+  @Test(groups ={ "Functional" })
   public void testGetNewlineString()
   {
     assertEquals(System.lineSeparator(), c.getNewlineString());
@@ -38,7 +46,7 @@ public class PDBChainTest
     assertEquals("gaga", c.getNewlineString());
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testPrint()
   {
     c.offset = 7;
@@ -66,7 +74,7 @@ public class PDBChainTest
    * Test the method that constructs a Bond between two atoms and adds it to the
    * chain's list of bonds
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testMakeBond()
   {
     /*
@@ -101,7 +109,7 @@ public class PDBChainTest
     assertEquals(3f, b2.end[2], 0.0001f);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSetChainColours_colour()
   {
     c.makeBond(a1, a2);
@@ -118,7 +126,7 @@ public class PDBChainTest
    * Test setting bond start/end colours based on a colour scheme i.e. colour by
    * residue
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSetChainColours_colourScheme()
   {
     Color alaColour = new Color(204, 255, 0);
@@ -146,7 +154,7 @@ public class PDBChainTest
     assertEquals(Color.gray, b.endCol);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetChargeColour()
   {
     assertEquals(Color.red, PDBChain.getChargeColour("ASP"));
@@ -161,7 +169,7 @@ public class PDBChainTest
   /**
    * Test the method that sets bond start/end colours by residue charge property
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSetChargeColours()
   {
     a1.resName = "ASP"; // red
@@ -190,7 +198,7 @@ public class PDBChainTest
   /**
    * Test the method that converts the raw list of atoms to a list of residues
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testMakeResidueList_noAnnotation()
   {
     Vector<Atom> atoms = new Vector<Atom>();
@@ -248,7 +256,7 @@ public class PDBChainTest
    * Test the method that converts the raw list of atoms to a list of residues,
    * including parsing of tempFactor to an alignment annotation
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testMakeResidueList_withTempFactor()
   {
     Vector<Atom> atoms = new Vector<Atom>();
@@ -299,7 +307,7 @@ public class PDBChainTest
    * Test the method that constructs bonds between successive residues' CA or P
    * atoms
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testMakeCaBondList()
   {
     c.isNa = true;
@@ -330,7 +338,7 @@ public class PDBChainTest
     assertTrue(c.isNa);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testMakeCaBondList_nucleotide()
   {
     c.isNa = false;
@@ -362,7 +370,7 @@ public class PDBChainTest
   /**
    * Test the method that updates atoms with their alignment positions
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testMakeExactMapping()
   {
     Vector<Atom> atoms = new Vector<Atom>();
index a4fd286..1dfeba9 100644 (file)
@@ -15,12 +15,13 @@ import jalview.datamodel.SequenceI;
 import jalview.io.AppletFormatAdapter;
 
 import java.io.IOException;
+import java.util.List;
 
 import org.testng.annotations.Test;
 
 public class PDBfileTest
 {
-  @Test
+  @Test(groups ={ "Functional" })
   public void testIsRna()
   {
     SequenceI seq = new Sequence("Seq1", "CGAU");
@@ -42,7 +43,7 @@ public class PDBfileTest
    * 
    * @throws IOException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testParse() throws IOException
   {
     /*
@@ -96,6 +97,21 @@ public class PDBfileTest
     assertTrue(chainD.sequence.getSequenceAsString().startsWith("ATYNVK"));
     assertTrue(chainD.sequence.getSequenceAsString().endsWith("KEEELT"));
     assertEquals("3W5V|D", chainD.sequence.getName());
+
+    /*
+     * verify PDB-related data in parsed sequences
+     */
+    List<SequenceI> seqs = pf.getSeqs();
+    assertEquals(4, seqs.size());
+    assertEquals("3W5V|A", seqs.get(0).getName());
+    assertEquals("3W5V|B", seqs.get(1).getName());
+    assertEquals("3W5V|C", seqs.get(2).getName());
+    assertEquals("3W5V|D", seqs.get(3).getName());
+    assertEquals(1, seqs.get(0).getPDBId().size());
+    PDBEntry pdbe = seqs.get(0).getPDBId().get(0);
+    assertEquals("A", pdbe.getChainCode());
+    assertEquals("3W5V", pdbe.getId());
+    assertEquals(PDBEntry.Type.PDB.toString(), pdbe.getType());
   }
 
   /**
@@ -104,7 +120,7 @@ public class PDBfileTest
    * 
    * @throws IOException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testParse_withAnnotations_noSS() throws IOException
   {
     PDBfile pf = new PDBfile(true, false, false, "examples/3W5V.pdb",
@@ -162,7 +178,7 @@ public class PDBfileTest
    * 
    * @throws IOException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testParse_withJmol_noAnnotations() throws IOException
   {
     PDBfile pf = new PDBfile(false, true, false, "examples/3W5V.pdb",
@@ -191,7 +207,7 @@ public class PDBfileTest
    * 
    * @throws IOException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testParse_withJmolAddAlignmentAnnotations()
           throws IOException
   {
@@ -248,7 +264,8 @@ public class PDBfileTest
    * @throws IOException
    */
 
-  @Test(enabled = false)
+  @Test(groups =
+  { "Functional" }, enabled = false)
   public void testParse_withAnnotate3D() throws IOException
   {
     // TODO requires a mock for Annotate3D processing
@@ -265,7 +282,7 @@ public class PDBfileTest
   private AlignmentAnnotation[] getAlignmentAnnotations(PDBfile pf)
   {
     AlignmentI al = new Alignment(pf.getSeqsAsArray());
-    pf.addAnnotations((Alignment) al);
+    pf.addAnnotations(al);
     return al.getAlignmentAnnotation();
   }
   }
index b5ca0ed..bb7f796 100644 (file)
@@ -10,7 +10,7 @@ import org.testng.annotations.Test;
 public class ResidueTest
 {
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testFindAtom()
   {
     Atom a1 = new Atom(1f, 2f, 3f);
index ea07aa2..d91119d 100644 (file)
@@ -5,6 +5,7 @@ import static org.testng.AssertJUnit.assertEquals;
 import java.io.IOException;
 import java.io.StringWriter;
 
+import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
 
 /**
@@ -25,6 +26,9 @@ public class RegexWriterTest
    *          an input string
    * @throws Exception
    */
+
+  @Test(groups =
+  { "Functional" }, dataProvider = "testWriteParam")
   void test(String re, String inp) throws IOException
   {
     StringWriter sw = new StringWriter();
@@ -47,27 +51,50 @@ public class RegexWriterTest
     }
   }
 
-  @Test
-  public void testWrite() throws IOException
+  // @Test(groups ={ "Functional" })
+  // public void testWrite() throws IOException
+  // {
+  // for (int n = 1; n <= 1; n++)
+  // {
+  // test("s/x/y/", "-----x123456789");
+  // test("s/x/y/", "x123456789");
+  // test("s/x/y/", "-----x");
+  // test("s/x.*?x/y/", ".xx..x..x...x...x....x....x");
+  // test("s/x.*x/[$&]/", "--x........x--xx");
+  // test("s/x.*x/[$&]/", "--x........x------");
+  // test("s/.$/a/m", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbbbbbbbbbbbb");
+  // test("s/.$/a/", "123");
+  // test("s/.$/a/", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbb");
+  // test("s/^./a/", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbb");
+  // test("s/$/a/", "bbb");
+  // test("s/^/a/", "bbb");
+  // test("s/^/a/", "");
+  // test("s{.*}{N}", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
+  // test("s/.{0,7}/y/", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
+  // test("s/x/$&/", "xxx");
+  // }
+  // }
+
+  @DataProvider(name = "testWriteParam")
+  public Object[][] regexTestParams()
   {
-    for (int n = 1; n <= 1; n++)
+    return new Object[][]
     {
-      test("s/x/y/", "-----x123456789");
-      test("s/x/y/", "x123456789");
-      test("s/x/y/", "-----x");
-      test("s/x.*?x/y/", ".xx..x..x...x...x....x....x");
-      test("s/x.*x/[$&]/", "--x........x--xx");
-      test("s/x.*x/[$&]/", "--x........x------");
-      test("s/.$/a/m", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbbbbbbbbbbbb");
-      test("s/.$/a/", "123");
-      test("s/.$/a/", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbb");
-      test("s/^./a/", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbb");
-      test("s/$/a/", "bbb");
-      test("s/^/a/", "bbb");
-      test("s/^/a/", "");
-      test("s{.*}{N}", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
-      test("s/.{0,7}/y/", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
-      test("s/x/$&/", "xxx");
-    }
+    { "s/x/y/", "-----x123456789" },
+    { "s/x/y/", "x123456789" },
+    { "s/x/y/", "-----x" },
+    { "s/x.*?x/y/", ".xx..x..x...x...x....x....x" },
+    { "s/x.*x/[$&]/", "--x........x--xx" },
+    { "s/x.*x/[$&]/", "--x........x------" },
+    { "s/.$/a/m", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbbbbbbbbbbbb" },
+    { "s/.$/a/", "123" },
+    { "s/.$/a/", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbb" },
+    { "s/^./a/", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbb" },
+    { "s/$/a/", "bbb" },
+    { "s/^/a/", "bbb" },
+    { "s/^/a/", "" },
+    { "s{.*}{N}", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" },
+    { "s/.{0,7}/y/", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" },
+    { "s/x/$&/", "xxx" } };
   }
 }
index eb496bb..77d592a 100644 (file)
@@ -22,7 +22,7 @@ public class AAFrequencyTest
 
   private static final String P = AAFrequency.PROFILE;
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testCalculate_noProfile()
   {
     SequenceI seq1 = new Sequence("Seq1", "CAGT");
@@ -65,7 +65,7 @@ public class AAFrequencyTest
     assertEquals("T", col.get(R));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testCalculate_withProfile()
   {
     SequenceI seq1 = new Sequence("Seq1", "CAGT");
@@ -100,7 +100,7 @@ public class AAFrequencyTest
     assertEquals(4, profile[1][1]);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testCalculate_withProfileTiming()
   {
     SequenceI seq1 = new Sequence("Seq1", "CAGT");
@@ -122,7 +122,7 @@ public class AAFrequencyTest
     System.out.println(System.currentTimeMillis() - start);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetPercentageFormat()
   {
     assertNull(AAFrequency.getPercentageFormat(0));
diff --git a/test/jalview/analysis/AlignSeqTest.java b/test/jalview/analysis/AlignSeqTest.java
new file mode 100644 (file)
index 0000000..34ae612
--- /dev/null
@@ -0,0 +1,23 @@
+package jalview.analysis;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import org.testng.annotations.Test;
+
+public class AlignSeqTest
+{
+  @Test(groups ={ "Functional" })
+  public void testExtractGaps()
+  {
+    assertNull(AlignSeq.extractGaps(null, null));
+    assertNull(AlignSeq.extractGaps(null, "ACG"));
+    assertNull(AlignSeq.extractGaps("-. ", null));
+
+    assertEquals(" AC-G.T", AlignSeq.extractGaps("", " AC-G.T"));
+    assertEquals("AC-G.T", AlignSeq.extractGaps(" ", " AC-G.T"));
+    assertEquals("ACG.T", AlignSeq.extractGaps(" -", " AC-G.T"));
+    assertEquals("ACGT", AlignSeq.extractGaps(" -.", " AC-G.T ."));
+    assertEquals(" ACG.T", AlignSeq.extractGaps("-", " AC-G.T"));
+  }
+}
index 606a840..b68842a 100644 (file)
@@ -45,7 +45,7 @@ public class AlignmentAnnotationUtilsTest
   /**
    * Test method that converts a (possibly null) array to a list.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAsList()
   {
     // null array
@@ -118,7 +118,7 @@ public class AlignmentAnnotationUtilsTest
    * 
    * @throws IOException
    */
-  @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
   public void setUp() throws IOException
   {
     alignment = new jalview.io.FormatAdapter().readFile(TEST_DATA,
@@ -143,7 +143,7 @@ public class AlignmentAnnotationUtilsTest
   /**
    * Test a mixture of show/hidden annotations in/outside selection group.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetShownHiddenTypes_forSelectionGroup()
   {
     Map<String, List<List<String>>> shownTypes = new HashMap<String, List<List<String>>>();
@@ -222,7 +222,7 @@ public class AlignmentAnnotationUtilsTest
    * Test case where there are 'grouped' annotations, visible and hidden, within
    * and without the selection group.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetShownHiddenTypes_withGraphGroups()
   {
     final int GROUP_3 = 3;
@@ -348,7 +348,7 @@ public class AlignmentAnnotationUtilsTest
   /**
    * Test method that determines visible graph groups.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetVisibleGraphGroups()
   {
     AlignmentAnnotation[] anns = alignment.getAlignmentAnnotation();
@@ -395,7 +395,7 @@ public class AlignmentAnnotationUtilsTest
    * Test for case where no sequence is selected. Shouldn't normally arise but
    * check it handles it gracefully.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetShownHiddenTypes_noSequenceSelected()
   {
     Map<String, List<List<String>>> shownTypes = new HashMap<String, List<List<String>>>();
index d44a6bc..61b2487 100644 (file)
@@ -96,7 +96,7 @@ public class AlignmentUtilsTests
   public static Sequence ts = new Sequence("short",
           "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklm");
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testExpandContext()
   {
     AlignmentI al = new Alignment(new Sequence[] {});
@@ -150,7 +150,7 @@ public class AlignmentUtilsTests
   /**
    * Test that annotations are correctly adjusted by expandContext
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testExpandContext_annotation()
   {
     AlignmentI al = new Alignment(new Sequence[]
@@ -240,7 +240,7 @@ public class AlignmentUtilsTests
    * 
    * @throws IOException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetSequencesByName() throws IOException
   {
     final String data = ">Seq1Name\nKQYL\n" + ">Seq2Name\nRFPW\n"
@@ -278,7 +278,7 @@ public class AlignmentUtilsTests
    * 
    * @throws IOException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testMapProteinToCdna_noXrefs() throws IOException
   {
     List<SequenceI> protseqs = new ArrayList<SequenceI>();
@@ -341,7 +341,7 @@ public class AlignmentUtilsTests
   /**
    * Test for the alignSequenceAs method that takes two sequences and a mapping.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAlignSequenceAs_withMapping_noIntrons()
   {
     MapList map = new MapList(new int[]
@@ -387,7 +387,7 @@ public class AlignmentUtilsTests
   /**
    * Test for the alignSequenceAs method that takes two sequences and a mapping.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAlignSequenceAs_withMapping_withIntrons()
   {
     /*
@@ -437,7 +437,7 @@ public class AlignmentUtilsTests
   /**
    * Test for the case where not all of the protein sequence is mapped to cDNA.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAlignSequenceAs_withMapping_withUnmappedProtein()
   {
     
@@ -487,7 +487,7 @@ public class AlignmentUtilsTests
   /**
    * Test for the alignSequenceAs method where we preserve gaps in introns only.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAlignSequenceAs_keepIntronGapsOnly()
   {
 
@@ -506,7 +506,7 @@ public class AlignmentUtilsTests
    * Test for the method that generates an aligned translated sequence from one
    * mapping.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetAlignedTranslation_dnaLikeProtein()
   {
     // dna alignment will be replaced
@@ -530,7 +530,7 @@ public class AlignmentUtilsTests
   /**
    * Test the method that realigns protein to match mapped codon alignment.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAlignProteinAsDna()
   {
     // seq1 codons are [1,2,3] [4,5,6] [7,8,9] [10,11,12]
@@ -574,7 +574,7 @@ public class AlignmentUtilsTests
    * Test the method that tests whether a CDNA sequence translates to a protein
    * sequence
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testTranslatesAs()
   {
     assertTrue(AlignmentUtils.translatesAs("tttcccaaaggg".toCharArray(), 0,
@@ -613,7 +613,7 @@ public class AlignmentUtilsTests
    * 
    * @throws IOException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testMapProteinToCdna_withStartAndStopCodons()
           throws IOException
   {
@@ -706,7 +706,7 @@ public class AlignmentUtilsTests
    * 
    * @throws IOException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testMapProteinToCdna_withXrefs() throws IOException
   {
     List<SequenceI> protseqs = new ArrayList<SequenceI>();
@@ -782,7 +782,7 @@ public class AlignmentUtilsTests
    * 
    * @throws IOException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testMapProteinToCdna_prioritiseXrefs() throws IOException
   {
     List<SequenceI> protseqs = new ArrayList<SequenceI>();
@@ -832,7 +832,7 @@ public class AlignmentUtilsTests
    * Test the method that shows or hides sequence annotations by type(s) and
    * selection group.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testShowOrHideSequenceAnnotations()
   {
     SequenceI seq1 = new Sequence("Seq1", "AAA");
@@ -940,7 +940,7 @@ public class AlignmentUtilsTests
   /**
    * Tests for the method that checks if one sequence cross-references another
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testHasCrossRef()
   {
     assertFalse(AlignmentUtils.hasCrossRef(null, null));
@@ -969,7 +969,7 @@ public class AlignmentUtilsTests
    * Tests for the method that checks if either sequence cross-references the
    * other
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testHaveCrossRef()
   {
     assertFalse(AlignmentUtils.hasCrossRef(null, null));
@@ -999,7 +999,7 @@ public class AlignmentUtilsTests
   /**
    * Test the method that extracts the exon-only part of a dna alignment.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testMakeExonAlignment()
   {
     SequenceI dna1 = new Sequence("dna1", "aaaGGGcccTTTaaa");
@@ -1094,7 +1094,7 @@ public class AlignmentUtilsTests
    * already has a protein product (Uniprot translation) which in turn has an
    * x-ref to the EMBLCDS record.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testMakeExonSequences()
   {
     SequenceI dna1 = new Sequence("dna1", "aaaGGGcccTTTaaa");
@@ -1136,7 +1136,7 @@ public class AlignmentUtilsTests
    * its product mappings, for the case where there are multiple exon mappings
    * to different protein products.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testMakeExonAlignment_multipleProteins()
   {
     SequenceI dna1 = new Sequence("dna1", "aaaGGGcccTTTaaa");
index 8c3489b..1731302 100644 (file)
@@ -30,7 +30,7 @@ public class AnnotationSorterTest
   /*
    * Set up 6 sequences and 7 annotations.
    */
-  @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
   public void setUp()
   {
     al = buildAlignment(NUM_SEQS);
@@ -84,7 +84,7 @@ public class AnnotationSorterTest
    * sequence ref</li>
    * </ul>
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSortBySequenceAndType_autocalcLast()
   {
     // @formatter:off
@@ -111,7 +111,7 @@ public class AnnotationSorterTest
   /**
    * Variant with autocalculated annotations sorting to front
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSortBySequenceAndType_autocalcFirst()
   {
     // @formatter:off
@@ -147,7 +147,7 @@ public class AnnotationSorterTest
    * sequence ref</li>
    * </ul>
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSortByTypeAndSequence_autocalcLast()
   {
     // @formatter:off
@@ -174,7 +174,7 @@ public class AnnotationSorterTest
   /**
    * Variant of test with autocalculated annotations sorted to front
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSortByTypeAndSequence_autocalcFirst()
   {
     // @formatter:off
@@ -202,7 +202,7 @@ public class AnnotationSorterTest
    * Variant of test with autocalculated annotations sorted to front but
    * otherwise no change.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testNoSort_autocalcFirst()
   {
     // @formatter:off
@@ -226,7 +226,7 @@ public class AnnotationSorterTest
     assertEquals("Structure", anns[6].label);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSort_timingPresorted()
   {
     testTiming_presorted(50, 100);
@@ -242,23 +242,23 @@ public class AnnotationSorterTest
    */
   private void testTiming_presorted(final int numSeqs, final int numAnns)
   {
-    al = buildAlignment(numSeqs);
-    anns = buildAnnotations(numAnns);
+    Alignment alignment = buildAlignment(numSeqs);
+    AlignmentAnnotation[] annotations = buildAnnotations(numAnns);
 
     /*
      * Set the annotations presorted by label
      */
     Random r = new Random();
-    final SequenceI[] sequences = al.getSequencesArray();
-    for (int i = 0; i < anns.length; i++)
+    final SequenceI[] sequences = alignment.getSequencesArray();
+    for (int i = 0; i < annotations.length; i++)
     {
       SequenceI randomSequenceRef = sequences[r.nextInt(sequences.length)];
-      anns[i].sequenceRef = randomSequenceRef;
-      anns[i].label = "label" + i;
+      annotations[i].sequenceRef = randomSequenceRef;
+      annotations[i].label = "label" + i;
     }
     long startTime = System.currentTimeMillis();
-    AnnotationSorter testee = new AnnotationSorter(al, false);
-    testee.sort(anns, SequenceAnnotationOrder.LABEL_AND_SEQUENCE);
+    AnnotationSorter testee = new AnnotationSorter(alignment, false);
+    testee.sort(annotations, SequenceAnnotationOrder.LABEL_AND_SEQUENCE);
     long endTime = System.currentTimeMillis();
     final long elapsed = endTime - startTime;
     System.out.println("Timing test for presorted " + numSeqs
@@ -269,7 +269,7 @@ public class AnnotationSorterTest
   /**
    * Timing tests for sorting randomly sorted annotations for various sizes.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSort_timingUnsorted()
   {
     testTiming_unsorted(50, 100);
@@ -286,23 +286,23 @@ public class AnnotationSorterTest
    */
   private void testTiming_unsorted(final int numSeqs, final int numAnns)
   {
-    al = buildAlignment(numSeqs);
-    anns = buildAnnotations(numAnns);
+    Alignment alignment = buildAlignment(numSeqs);
+    AlignmentAnnotation[] annotations = buildAnnotations(numAnns);
 
     /*
      * Set the annotations in random order with respect to the sequences
      */
     Random r = new Random();
-    final SequenceI[] sequences = al.getSequencesArray();
-    for (int i = 0; i < anns.length; i++)
+    final SequenceI[] sequences = alignment.getSequencesArray();
+    for (int i = 0; i < annotations.length; i++)
     {
       SequenceI randomSequenceRef = sequences[r.nextInt(sequences.length)];
-      anns[i].sequenceRef = randomSequenceRef;
-      anns[i].label = "label" + i;
+      annotations[i].sequenceRef = randomSequenceRef;
+      annotations[i].label = "label" + i;
     }
     long startTime = System.currentTimeMillis();
-    AnnotationSorter testee = new AnnotationSorter(al, false);
-    testee.sort(anns, SequenceAnnotationOrder.SEQUENCE_AND_LABEL);
+    AnnotationSorter testee = new AnnotationSorter(alignment, false);
+    testee.sort(annotations, SequenceAnnotationOrder.SEQUENCE_AND_LABEL);
     long endTime = System.currentTimeMillis();
     final long elapsed = endTime - startTime;
     System.out.println("Timing test for unsorted " + numSeqs
@@ -313,7 +313,7 @@ public class AnnotationSorterTest
   /**
    * Timing test for sorting annotations with a limited range of types (labels).
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSort_timingSemisorted()
   {
     testTiming_semiSorted(50, 100);
@@ -336,8 +336,8 @@ public class AnnotationSorterTest
    */
   private void testTiming_semiSorted(final int numSeqs, final int numAnns)
   {
-    al = buildAlignment(numSeqs);
-    anns = buildAnnotations(numAnns);
+    Alignment alignment = buildAlignment(numSeqs);
+    AlignmentAnnotation[] annotations = buildAnnotations(numAnns);
 
     String[] labels = new String[]
     { "label1", "label2", "label3", "label4", "label5", "label6" };
@@ -346,16 +346,16 @@ public class AnnotationSorterTest
      * Set the annotations in sequence order with randomly assigned labels.
      */
     Random r = new Random();
-    final SequenceI[] sequences = al.getSequencesArray();
-    for (int i = 0; i < anns.length; i++)
+    final SequenceI[] sequences = alignment.getSequencesArray();
+    for (int i = 0; i < annotations.length; i++)
     {
       SequenceI sequenceRef = sequences[i % sequences.length];
-      anns[i].sequenceRef = sequenceRef;
-      anns[i].label = labels[r.nextInt(labels.length)];
+      annotations[i].sequenceRef = sequenceRef;
+      annotations[i].label = labels[r.nextInt(labels.length)];
     }
     long startTime = System.currentTimeMillis();
-    AnnotationSorter testee = new AnnotationSorter(al, false);
-    testee.sort(anns, SequenceAnnotationOrder.LABEL_AND_SEQUENCE);
+    AnnotationSorter testee = new AnnotationSorter(alignment, false);
+    testee.sort(annotations, SequenceAnnotationOrder.LABEL_AND_SEQUENCE);
     long endTime = System.currentTimeMillis();
     long elapsed = endTime - startTime;
     System.out.println("Sort by label for semisorted " + numSeqs
@@ -364,7 +364,7 @@ public class AnnotationSorterTest
 
     // now resort by sequence
     startTime = System.currentTimeMillis();
-    testee.sort(anns, SequenceAnnotationOrder.SEQUENCE_AND_LABEL);
+    testee.sort(annotations, SequenceAnnotationOrder.SEQUENCE_AND_LABEL);
     endTime = System.currentTimeMillis();
     elapsed = endTime - startTime;
     System.out.println("Resort by sequence for semisorted " + numSeqs
@@ -373,7 +373,7 @@ public class AnnotationSorterTest
 
     // now resort by label
     startTime = System.currentTimeMillis();
-    testee.sort(anns, SequenceAnnotationOrder.LABEL_AND_SEQUENCE);
+    testee.sort(annotations, SequenceAnnotationOrder.LABEL_AND_SEQUENCE);
     endTime = System.currentTimeMillis();
     elapsed = endTime - startTime;
     System.out.println("Resort by label for semisorted " + numSeqs
index e787ac3..429c9ed 100644 (file)
@@ -10,7 +10,7 @@ import org.testng.annotations.Test;
 public class CodingUtilsTest
 {
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testDecodeCodon()
   {
     assertTrue(Arrays.equals(new char[]
@@ -31,7 +31,7 @@ public class CodingUtilsTest
     { 'T', 'T', 'T' }, CodingUtils.decodeCodon(63)));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testDecodeNucleotide()
   {
     assertEquals('A', CodingUtils.decodeNucleotide(0));
@@ -41,7 +41,7 @@ public class CodingUtilsTest
     assertEquals('0', CodingUtils.decodeNucleotide(4));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testEncodeCodon()
   {
     assertTrue(CodingUtils.encodeCodon('Z') < 0);
index 095fc05..bd737fa 100644 (file)
@@ -9,7 +9,7 @@ import org.testng.annotations.Test;
 
 public class CrossRefTest
 {
-  @Test
+  @Test(groups ={ "Functional" })
   public void testFindXDbRefs()
   {
     DBRefEntry ref1 = new DBRefEntry("UNIPROT", "1", "A123");
index 6371315..55908dd 100644 (file)
@@ -94,7 +94,7 @@ public class DnaTest
    * 
    * @throws IOException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testTranslateCdna_withUntranslatableCodons()
           throws IOException
   {
@@ -116,7 +116,7 @@ public class DnaTest
    * 
    * @throws IOException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testTranslateCdna_withUntranslatableCodonsAndHiddenColumns()
           throws IOException
   {
@@ -152,7 +152,7 @@ public class DnaTest
    * 
    * @throws IOException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testTranslateCdna_simple() throws IOException
   {
     AlignmentI alf = new FormatAdapter().readFile(fasta,
@@ -173,7 +173,7 @@ public class DnaTest
    * 
    * @throws IOException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testTranslateCdna_hiddenColumns() throws IOException
   {
     AlignmentI alf = new FormatAdapter().readFile(fasta,
@@ -193,7 +193,7 @@ public class DnaTest
   /**
    * Use this test to help debug into any cases of interest.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testCompareCodonPos_oneOnly()
   {
     assertFollows("-AA--A", "G--GG"); // 2 shifted seq2, 3 shifted seq1
@@ -202,7 +202,7 @@ public class DnaTest
   /**
    * Tests for method that compares 'alignment' of two codon position triplets.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testCompareCodonPos()
   {
     /*
@@ -259,7 +259,7 @@ public class DnaTest
    * reorders the cDNA and retranslates, and verifies that the translations are
    * the same (apart from ordering).
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testTranslateCdna_sequenceOrderIndependent()
   {
     /*
@@ -313,7 +313,7 @@ public class DnaTest
    * Test that all the cases in testCompareCodonPos have a 'symmetric'
    * comparison (without checking the actual comparison result).
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testCompareCodonPos_isSymmetric()
   {
     assertSymmetric("AAA", "GGG");
@@ -436,7 +436,7 @@ public class DnaTest
   /**
    * Weirdly, maybe worth a test to prove the helper method of this test class.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testConvertCodon()
   {
     assertEquals("[0, 1, 2]", convertCodon("AAA").toString());
index df04243..4698d0d 100644 (file)
@@ -37,7 +37,7 @@ public class GroupingTest
   int[] positions = new int[]
   { 1, 7, 9 };
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testMakeGroupsWithBoth()
   {
     ArrayList<String> str = new ArrayList<String>();
index 90faedc..1325671 100644 (file)
@@ -23,7 +23,7 @@ public class ParsePropertiesTest
   /**
    * Construct an alignment with 4 sequences with varying description format
    */
-  @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
   public void setUp()
   {
     SequenceI[] seqs = new SequenceI[]
@@ -46,7 +46,7 @@ public class ParsePropertiesTest
    * more 'number characters' (0-9+.), i.e. greedily matches any trailing
    * numeric part of the string
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetScoresFromDescription()
   {
     String regex = ".*([-0-9.+]+)";
@@ -82,7 +82,7 @@ public class ParsePropertiesTest
    * character, followed by at least one 'number character', then any trailing
    * characters.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetScoresFromDescription_twoScores()
   {
     String regex = ".*([-0-9.+]+).+([-0-9.+]+).*";
@@ -144,7 +144,7 @@ public class ParsePropertiesTest
    * 
    * @see AlignFrame.extractScores_actionPerformed
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetScoresFromDescription_wordBoundaries()
   {
     String regex = "\\W*([-+eE0-9.]+)";
diff --git a/test/jalview/analysis/RnaTest.java b/test/jalview/analysis/RnaTest.java
new file mode 100644 (file)
index 0000000..3676e0b
--- /dev/null
@@ -0,0 +1,58 @@
+package jalview.analysis;
+
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.fail;
+
+import jalview.analysis.SecStrConsensus.SimpleBP;
+
+import java.util.Vector;
+
+import org.testng.annotations.Test;
+public class RnaTest
+{
+  @Test(groups ={ "Functional" })
+  public void testGetSimpleBPs() throws WUSSParseException
+  {
+    String rna = "([{})]"; // JAL-1081 example
+    Vector<SimpleBP> bps = Rna.GetSimpleBPs(rna);
+    assertEquals(3, bps.size());
+
+    /*
+     * the base pairs are added in the order in which the matching base is found
+     */
+    assertEquals(2, bps.get(0).bp5); // {
+    assertEquals(3, bps.get(0).bp3); // }
+    assertEquals(0, bps.get(1).bp5); // (
+    assertEquals(4, bps.get(1).bp3); // )
+    assertEquals(1, bps.get(2).bp5); // [
+    assertEquals(5, bps.get(2).bp3); // ]
+  }
+
+  @Test(groups ={ "Functional" })
+  public void testGetSimpleBPs_unmatchedOpener()
+  {
+    String rna = "(([{})]";
+    try
+    {
+      Rna.GetSimpleBPs(rna);
+      fail("expected exception");
+    } catch (WUSSParseException e)
+    {
+      // expected
+    }
+  }
+
+  @Test(groups ={ "Functional" })
+  public void testGetSimpleBPs_unmatchedCloser()
+  {
+    String rna = "([{})]]";
+    try
+    {
+      Rna.GetSimpleBPs(rna);
+      fail("expected exception");
+    } catch (WUSSParseException e)
+    {
+      // expected
+    }
+  }
+}
index 81bcf86..3c84189 100644 (file)
@@ -46,7 +46,7 @@ public class TestAlignSeq
   /**
    * @throws java.lang.Exception
    */
-  @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
   public void setUp() throws Exception
   {
     s1 = new Sequence("Seq1", "ASDFAQQQRRRSSS");
@@ -59,7 +59,7 @@ public class TestAlignSeq
 
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   /**
    * simple test that mapping from alignment corresponds identical positions.
    */
@@ -86,7 +86,7 @@ public class TestAlignSeq
     }
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testExtractGaps()
   {
     assertNull(AlignSeq.extractGaps(null, null));
@@ -96,7 +96,7 @@ public class TestAlignSeq
     assertEquals("ABCD", AlignSeq.extractGaps(" .-", ". -A-B.C D."));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testPrintAlignment()
   {
     AlignSeq as = AlignSeq.doGlobalNWAlignment(s1, s3, AlignSeq.PEP);
index 5ab0bb0..221b230 100644 (file)
@@ -23,7 +23,7 @@ public class FeatureScoreModelTest
   int[] sf3 = new int[]
   { -1, -1, -1, -1, -1, -1, 76, 77 };
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testFeatureScoreModel() throws Exception
   {
     AlignFrame alf = new FileLoader(false).LoadFileWaitTillLoaded(alntestFile,
index d9d3bb3..09650ea 100644 (file)
@@ -24,25 +24,18 @@ import java.io.BufferedReader;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStreamReader;
+import java.util.ArrayList;
 
 import org.testng.Assert;
-import org.testng.AssertJUnit;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
+import org.testng.FileAssert;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
 
 public class CommandLineOperations
 {
 
-  @BeforeClass
-  public static void setUpBeforeClass() throws Exception
-  {
-  }
-
-  @AfterClass
-  public static void tearDownAfterClass() throws Exception
-  {
-  }
+  private ArrayList<String> successfulCMDs = new ArrayList<String>();
 
   /***
    * from
@@ -55,7 +48,8 @@ public class CommandLineOperations
   private static class Worker extends Thread
   {
     private final Process process;
-
+    private BufferedReader outputReader;
+    private BufferedReader errorReader;
     private Integer exit;
 
     private Worker(Process process)
@@ -73,99 +67,223 @@ public class CommandLineOperations
         return;
       }
     }
+
+    public BufferedReader getOutputReader()
+    {
+      return outputReader;
+    }
+
+    public void setOutputReader(BufferedReader outputReader)
+    {
+      this.outputReader = outputReader;
+    }
+
+    public BufferedReader getErrorReader()
+    {
+      return errorReader;
+    }
+
+    public void setErrorReader(BufferedReader errorReader)
+    {
+      this.errorReader = errorReader;
+    }
   }
 
   private Worker jalviewDesktopRunner(boolean withAwt, String cmd,
-          int timeout) throws InterruptedException, IOException
+          int timeout)
   {
     String _cmd = "java "
             + (withAwt ? "-Djava.awt.headless=true" : "")
             + " -Djava.ext.dirs=./lib -classpath ./classes jalview.bin.Jalview ";
-    System.out.println("###############Jalview CMD: " + _cmd + cmd);
-    Process ls2_proc = Runtime.getRuntime().exec(_cmd + cmd);
-    BufferedReader outputReader = new BufferedReader(new InputStreamReader(
-            ls2_proc.getInputStream()));
-
-    BufferedReader errorReader = new BufferedReader(new InputStreamReader(
-            ls2_proc.getErrorStream()));
-    Worker worker = new Worker(ls2_proc);
-    worker.start();
-    worker.join(timeout);
-    System.out.println("Output:  ");
+    System.out.println("CMD [" + cmd + "]");
+    Process ls2_proc = null;
+    Worker worker = null;
+    try
+    {
+      ls2_proc = Runtime.getRuntime().exec(_cmd + cmd);
+    } catch (IOException e1)
+    {
+      e1.printStackTrace();
+    }
+    if (ls2_proc != null)
+    {
+      BufferedReader outputReader = new BufferedReader(
+              new InputStreamReader(ls2_proc.getInputStream()));
+      BufferedReader errorReader = new BufferedReader(
+              new InputStreamReader(ls2_proc.getErrorStream()));
+      worker = new Worker(ls2_proc);
+      worker.start();
+      try
+      {
+        worker.join(timeout);
+      } catch (InterruptedException e)
+      {
+        // e.printStackTrace();
+      }
+      worker.setOutputReader(outputReader);
+      worker.setErrorReader(errorReader);
+    }
+    return worker;
+  }
+
+  @BeforeTest(alwaysRun = true)
+  public void initialize()
+  {
+    new CommandLineOperations();
+  }
+
+  @BeforeTest(alwaysRun = true)
+  public void setUpForHeadlessCommandLineInputOperations()
+          throws IOException
+  {
+    String cmds = "nodisplay -open examples/uniref50.fa -sortbytree -props FILE -colour zappo "
+            + "-jabaws http://www.compbio.dundee.ac.uk/jabaws -nosortbytree -dasserver nickname=www.test.com "
+            + "-features examples/testdata/plantfdx.features -annotations examples/testdata/plantfdx.annotations -tree examples/testdata/uniref50_test_tree";
+    Worker worker = jalviewDesktopRunner(true, cmds, 9000);
     String ln = null;
-    while ((ln = outputReader.readLine()) != null)
+    while ((ln = worker.getOutputReader().readLine()) != null)
     {
       System.out.println(ln);
+      successfulCMDs.add(ln);
     }
+  }
 
-    System.out.println("Error:  ");
-    while ((ln = errorReader.readLine()) != null)
+  @BeforeTest(alwaysRun = true)
+  public void setUpForCommandLineInputOperations() throws IOException
+  {
+    String cmds = "-open examples/uniref50.fa -noquestionnaire -nousagestats";
+    Worker worker = jalviewDesktopRunner(false, cmds, 9000);
+    String ln = null;
+    int count = 0;
+    while ((ln = worker.getErrorReader().readLine()) != null)
     {
       System.out.println(ln);
+      successfulCMDs.add(ln);
+      if (++count > 5)
+      {
+        break;
+      }
     }
-    return worker;
+    if (worker != null && worker.exit == null)
+    {
+      worker.interrupt();
+      Thread.currentThread().interrupt();
+      worker.process.destroy();
+    }
+  }
+
+  @Test(groups =
+  { "Functional" }, dataProvider = "allInputOpearationsData")
+  public void testAllInputOperations(String expectedString,
+          String failureMsg)
+  {
+    Assert.assertTrue(successfulCMDs.contains(expectedString), failureMsg);
   }
 
-  @Test
-  public void testHeadlessModeEPS() throws Exception
+  @Test(groups =
+  { "Functional" }, dataProvider = "headlessModeOutputOperationsData")
+  public void testHeadlessModeOutputOperations(String harg, String type,
+          String fileName, boolean withAWT, int expectedMinFileSize,
+          int timeout)
   {
-    String[] headlessArgs = new String[]
-    { "nodisplay", "headless", "nogui" };
-    for (String _harg : headlessArgs)
+    String cmd = harg + type + " " + fileName;
+    // System.out.println(">>>>>>>>>>>>>>>> Command : " + cmd);
+    File file = new File(fileName);
+    Worker worker = jalviewDesktopRunner(withAWT, cmd, timeout);
+
+    FileAssert.assertFile(file, "Didn't create an output" + type
+            + " file.[" + harg + "]");
+    FileAssert.assertMinLength(new File(fileName), expectedMinFileSize);
+    if (worker != null && worker.exit == null)
     {
-      boolean _switch = false, withAwt = false;
-      do
-      {
-        if (_switch)
+      worker.interrupt();
+      Thread.currentThread().interrupt();
+      worker.process.destroy();
+      Assert.fail("Jalview did not exit after "
+              + type
+              + " generation (try running test again to verify - timeout at 9000ms). ["
+              + harg + "]");
+    }
+    new File(fileName).delete();
+  }
+
+
+  @DataProvider(name = "allInputOpearationsData")
+  public Object[][] getHeadlessModeInputParams()
+  {
+    return new Object[][]
+    {
+        // headless mode input operations
+        { "CMD [-color zappo] executed successfully!",
+            "Failed command : -color zappo" },
+        { "CMD [-props FILE] executed successfully!",
+            "Failed command : -props File" },
+        { "CMD [-sortbytree] executed successfully!",
+            "Failed command : -sortbytree" },
         {
-          withAwt = true;
-        }
-        _switch = true;
-        String jalview_input = "examples/uniref50.fa";
-        String jalview_output = "test_uniref50_out.eps";
-        String cmd = "" + _harg + " -open " + jalview_input + " -eps "
-                + jalview_output;
-        String harg = _harg
-                + (withAwt ? "-Djava.awt.headless=true"
-                        : " NO AWT.HEADLESS");
-        System.out.println("Testing with Headless argument: '" + harg
-                + "'\n");
-        Worker worker = jalviewDesktopRunner(withAwt, cmd, 9000);
-        AssertJUnit.assertTrue("Didn't create an output EPS file.[" + harg
-                + "]", new File("test_uniref50_out.eps").exists());
-        AssertJUnit.assertTrue(
-                "Didn't create an EPS file with any content[" + harg + "]",
-                new File("test_uniref50_out.eps").length() > 4096);
-        if (worker.exit == null)
+            "CMD [-jabaws http://www.compbio.dundee.ac.uk/jabaws] executed successfully!",
+            "Failed command : -jabaws http://www.compbio.dundee.ac.uk/jabaws" },
+        { "CMD [-open examples/uniref50.fa] executed successfully!",
+            "Failed command : -open examples/uniref50.fa" },
+        { "CMD [-nosortbytree] executed successfully!",
+            "Failed command : -nosortbytree" },
+        { "CMD [-dasserver nickname=www.test.com] executed successfully!",
+            "Failed command : -dasserver nickname=www.test.com" },
         {
-          worker.interrupt();
-          Thread.currentThread().interrupt();
-          worker.process.destroy();
-          Assert.fail("Jalview did not exit after EPS generation (try running test again to verify - timeout at 9000ms). ["
-                  + harg + "]");
-        }
-      } while (!withAwt);
-    }
+            "CMD [-features examples/testdata/plantfdx.features]  executed successfully!",
+            "Failed command : -features examples/testdata/plantfdx.features" },
+        {
+            "CMD [-annotations examples/testdata/plantfdx.annotations] executed successfully!",
+            "Failed command : -annotations examples/testdata/plantfdx.annotations" },
+        {
+            "CMD [-tree examples/testdata/uniref50_test_tree] executed successfully!",
+            "Failed command : -tree examples/testdata/uniref50_test_tree" },
+        // non headless mode input operations
+        { "CMD [-nousagestats] executed successfully!",
+            "Failed command : -nousagestats" },
+        { "CMD [-noquestionnaire] executed successfully!",
+            "Failed command : -noquestionnaire nickname=www.test.com" }
+    };
+
+  }
+   
+  @DataProvider(name = "headlessModeOutputOperationsData")
+  public static Object[][] getHeadlessModeOutputParams()
+  {
+    return new Object[][]
+    {
+        { "nodisplay -open examples/uniref50.fa", " -eps",
+            "test_uniref50_out.eps", true, 4096, 4000 },
+        { "nodisplay -open examples/uniref50.fa", " -eps",
+            "test_uniref50_out.eps", false, 4096, 4000 },
+        { "nogui -open examples/uniref50.fa", " -eps",
+            "test_uniref50_out.eps", true, 4096, 4000 },
+        { "nogui -open examples/uniref50.fa", " -eps",
+            "test_uniref50_out.eps", false, 4096, 4000 },
+        { "headless -open examples/uniref50.fa", " -eps",
+            "test_uniref50_out.eps", true, 4096, 4000 },
+        { "headless -open examples/uniref50.fa", " -svg",
+            "test_uniref50_out.svg", false, 4096, 3000 },
+        { "headless -open examples/uniref50.fa", " -png",
+            "test_uniref50_out.png", true, 4096, 3000 },
+        { "headless -open examples/uniref50.fa", " -html",
+            "test_uniref50_out.html", true, 4096, 3000 },
+        { "headless -open examples/uniref50.fa", " -fasta",
+            "test_uniref50_out.mfa", true, 2096, 3000 },
+        { "headless -open examples/uniref50.fa", " -clustal",
+            "test_uniref50_out.aln", true, 2096, 3000 },
+        { "headless -open examples/uniref50.fa", " -msf",
+            "test_uniref50_out.msf", true, 2096, 3000 },
+        { "headless -open examples/uniref50.fa", " -pileup",
+            "test_uniref50_out.aln", true, 2096, 3000 },
+        { "headless -open examples/uniref50.fa", " -pir",
+            "test_uniref50_out.pir", true, 2096, 3000 },
+        { "headless -open examples/uniref50.fa", " -pfam",
+            "test_uniref50_out.pfam", true, 2096, 3000 },
+        { "headless -open examples/uniref50.fa", " -blc",
+            "test_uniref50_out.blc", true, 2096, 3000 },
+        { "headless -open examples/uniref50.fa", " -jalview",
+            "test_uniref50_out.jvp", true, 2096, 3000 },
+    };
   }
-  // @Test
-  // public void testJalview2XMLDataset() throws Exception
-  // {
-  // String jalview_input = "examples/uniref50.fa";
-  // String jalview_output = "test_uniref50_out.eps";
-  // String cmd = ""+" -open "+ jalview_input + " -eps " + jalview_output;
-  // //String harg = _harg+(withAwt ?
-  // "-Djava.awt.headless=true":" NO AWT.HEADLESS");
-  // System.out.println("Testing with Headless argument: '"+harg+"'\n");
-  // Worker worker = jalviewDesktopRunner(withAwt, cmd, 9000);
-  // assertTrue("Didn't create an output EPS file.["+harg+"]", new
-  // File("test_uniref50_out.eps").exists());
-  // assertTrue("Didn't create an EPS file with any content["+harg+"]", new
-  // File("test_uniref50_out.eps").length()>4096);
-  // if (worker.exit == null){
-  // worker.interrupt();
-  // Thread.currentThread().interrupt();
-  // worker.process.destroy();
-  // fail("Jalview did not exit after EPS generation (try running test again to verify - timeout at 9000ms). ["+harg+"]");
-  // }
-  // }
 }
index 6c570d5..6fa7c22 100644 (file)
@@ -30,8 +30,8 @@ public class EditCommandTest
 
   private Alignment al;
 
-  @BeforeMethod
-  public void setUp()
+ @BeforeMethod(alwaysRun = true)
+   public void setUp()
   {
     testee = new EditCommand();
     seqs = new SequenceI[4];
@@ -50,7 +50,7 @@ public class EditCommandTest
   /**
    * Test inserting gap characters
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAppendEdit_insertGap()
   {
     // set a non-standard gap character to prove it is actually used
@@ -67,7 +67,7 @@ public class EditCommandTest
    * Test deleting characters from sequences. Note the deleteGap() action does
    * not check that only gap characters are being removed.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAppendEdit_deleteGap()
   {
     testee.appendEdit(Action.DELETE_GAP, seqs, 4, 3, al, true);
@@ -81,7 +81,7 @@ public class EditCommandTest
    * Test a cut action. The command should store the cut characters to support
    * undo.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testCut()
   {
     Edit ec = testee.new Edit(Action.CUT, seqs, 4, 3, al);
@@ -102,7 +102,8 @@ public class EditCommandTest
   /**
    * Test a Paste action, where this adds sequences to an alignment.
    */
-  @Test(enabled = false)
+  @Test(groups =
+  { "Functional" }, enabled = false)
   // TODO fix so it works
   public void testPaste_addToAlignment()
   {
@@ -122,7 +123,7 @@ public class EditCommandTest
   /**
    * Test insertGap followed by undo command
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testUndo_insertGap()
   {
     // Edit ec = testee.new Edit(Action.INSERT_GAP, seqs, 4, 3, '?');
@@ -140,7 +141,7 @@ public class EditCommandTest
   /**
    * Test deleteGap followed by undo command
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testUndo_deleteGap()
   {
     testee.appendEdit(Action.DELETE_GAP, seqs, 4, 3, al, true);
@@ -158,7 +159,7 @@ public class EditCommandTest
   /**
    * Test several commands followed by an undo command
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testUndo_multipleCommands()
   {
     // delete positions 3/4/5 (counting from 1)
@@ -187,7 +188,7 @@ public class EditCommandTest
    * Unit test for JAL-1594 bug: click and drag sequence right to insert gaps -
    * undo did not remove them all.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testUndo_multipleInsertGaps()
   {
     testee.appendEdit(Action.INSERT_GAP, seqs, 4, 1, al, true);
@@ -205,7 +206,7 @@ public class EditCommandTest
   /**
    * Test cut followed by undo command
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testUndo_cut()
   {
     testee.appendEdit(Action.CUT, seqs, 4, 3, al, true);
@@ -222,7 +223,7 @@ public class EditCommandTest
   /**
    * Test the replace command (used to manually edit a sequence)
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testReplace()
   {
     // seem to need a dataset sequence on the edited sequence here
@@ -239,7 +240,7 @@ public class EditCommandTest
    * Test that the addEdit command correctly merges insert gap commands when
    * possible.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAddEdit_multipleInsertGap()
   {
     /*
@@ -289,7 +290,7 @@ public class EditCommandTest
    * Test that the addEdit command correctly merges delete gap commands when
    * possible.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAddEdit_multipleDeleteGap()
   {
     /*
@@ -346,7 +347,7 @@ public class EditCommandTest
    * case when they appear contiguous but are acting on different sequences.
    * They should not be merged.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAddEdit_removeAllGaps()
   {
     seqs[0].setSequence("a???bcdefghjk");
@@ -367,7 +368,7 @@ public class EditCommandTest
    * Test that the addEdit command correctly merges insert gap commands acting
    * on a multi-sequence selection.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAddEdit_groupInsertGaps()
   {
     /*
@@ -403,7 +404,7 @@ public class EditCommandTest
    * <li>last: --A--B-CDEF</li>
    * </ul>
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testPriorState_multipleInserts()
   {
     EditCommand command = new EditCommand();
@@ -431,7 +432,7 @@ public class EditCommandTest
    * <li>End: ABC</li>
    * </ul>
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testPriorState_removeAllGaps()
   {
     EditCommand command = new EditCommand();
@@ -452,7 +453,7 @@ public class EditCommandTest
   /**
    * Test for 'undoing' a single delete edit.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testPriorState_singleDelete()
   {
     EditCommand command = new EditCommand();
@@ -471,7 +472,7 @@ public class EditCommandTest
   /**
    * Test 'undoing' a single gap insertion edit command.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testPriorState_singleInsert()
   {
     EditCommand command = new EditCommand();
@@ -491,7 +492,7 @@ public class EditCommandTest
    * Test that mimics 'remove all gaps' action. This generates delete gap edits
    * for contiguous gaps in each sequence separately.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testPriorState_removeGapsMultipleSeqs()
   {
     EditCommand command = new EditCommand();
@@ -555,7 +556,7 @@ public class EditCommandTest
    * series Delete Gap edits that each act on all sequences that share a gapped
    * column region.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testPriorState_removeGappedCols()
   {
     EditCommand command = new EditCommand();
index 63f6772..35d92d3 100644 (file)
@@ -15,7 +15,7 @@ public class AlignedCodonFrameTest
   /**
    * Test the method that locates the first aligned sequence that has a mapping.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testFindAlignedSequence()
   {
     AlignmentI cdna = new Alignment(new SequenceI[]
@@ -63,7 +63,7 @@ public class AlignedCodonFrameTest
   /**
    * Test the method that locates the mapped codon for a protein position.
    */
-    @Test
+    @Test(groups ={ "Functional" })
   public void testGetMappedRegion()
   {
     // introns lower case, exons upper case
@@ -111,7 +111,7 @@ public class AlignedCodonFrameTest
     assertNull(acf.getMappedRegion(seq1, aseq2, 1));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetMappedCodon()
   {
     final Sequence seq1 = new Sequence("Seq1", "c-G-TA-gC-gT-T");
index 65fe4bf..d9c7e12 100644 (file)
@@ -21,7 +21,7 @@ public class AlignedCodonIteratorTest
   /**
    * Test normal case for iterating over aligned codons.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testNext()
   {
     SequenceI from = new Sequence("Seq1", "-CgC-C-cCtAG-AtG-Gc");
@@ -49,7 +49,7 @@ public class AlignedCodonIteratorTest
   /**
    * Test weird case where the mapping skips over a peptide.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testNext_unmappedPeptide()
   {
     SequenceI from = new Sequence("Seq1", "-CgC-C-cCtAG-AtG-Gc");
@@ -77,7 +77,7 @@ public class AlignedCodonIteratorTest
   /**
    * Test for exception thrown for an incomplete codon.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testNext_incompleteCodon()
   {
     SequenceI from = new Sequence("Seq1", "-CgC-C-cCgTt");
@@ -106,7 +106,7 @@ public class AlignedCodonIteratorTest
   /**
    * Test normal case for iterating over aligned codons.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAnother()
   {
     SequenceI from = new Sequence("Seq1", "TGCCATTACCAG-");
index afa6169..a6802b1 100644 (file)
@@ -9,7 +9,7 @@ import org.testng.annotations.Test;
 public class AlignedCodonTest
 {
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testEquals()
   {
     AlignedCodon ac = new AlignedCodon(1, 3, 4);
@@ -20,7 +20,7 @@ public class AlignedCodonTest
     assertTrue(ac.equals(ac));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testToString() {
     AlignedCodon ac = new AlignedCodon(1, 3, 4);
     assertEquals("[1, 3, 4]", ac.toString());
index 4c9eabe..d32105d 100644 (file)
@@ -10,7 +10,7 @@ import org.testng.annotations.Test;
 
 public class AlignmentAnnotationTests
 {
-  @Test
+  @Test(groups ={ "Functional" })
   public void testCopyConstructor()
   {
     SequenceI sq = new Sequence("Foo", "ARAARARARAWEAWEAWRAWEAWE");
@@ -74,7 +74,7 @@ public class AlignmentAnnotationTests
    * different dataset frames (annotation transferred by mapping between
    * sequences)
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testLiftOver()
   {
     SequenceI sqFrom = new Sequence("fromLong", "QQQCDEWGH");
@@ -157,7 +157,7 @@ public class AlignmentAnnotationTests
     }
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAdjustForAlignment()
   {
     SequenceI seq = new Sequence("TestSeq", "ABCDEFG");
index 036f2cf..2eaae94 100644 (file)
@@ -79,7 +79,7 @@ public class AlignmentTest
    * Read in Stockholm format test data including secondary structure
    * annotations.
    */
-  @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
   public void setUp() throws IOException
   {
     al = loadAlignment(TEST_DATA, "STH");
@@ -94,7 +94,7 @@ public class AlignmentTest
   /**
    * Test method that returns annotations that match on calcId.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testFindAnnotation_byCalcId()
   {
     Iterable<AlignmentAnnotation> anns = al
@@ -106,7 +106,7 @@ public class AlignmentTest
     assertFalse(iter.hasNext());
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testDeleteAllAnnotations_includingAutocalculated()
   {
     AlignmentAnnotation aa = new AlignmentAnnotation("Consensus",
@@ -120,7 +120,7 @@ public class AlignmentTest
     assertEquals("Not all deleted", 0, al.getAlignmentAnnotation().length);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testDeleteAllAnnotations_excludingAutocalculated()
   {
     AlignmentAnnotation aa = new AlignmentAnnotation("Consensus",
@@ -144,7 +144,7 @@ public class AlignmentTest
    * 
    * @throws IOException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAlignAs_dnaAsDna() throws IOException
   {
     // aligned cDNA:
@@ -176,7 +176,7 @@ public class AlignmentTest
    * 
    * @throws IOException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAlignAs_proteinAsCdna() throws IOException
   {
     // see also AlignmentUtilsTests
@@ -200,7 +200,7 @@ public class AlignmentTest
    * 
    * @throws IOException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAlignAs_cdnaAsProtein() throws IOException
   {
     /*
@@ -232,7 +232,7 @@ public class AlignmentTest
    * 
    * @throws IOException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAlignAs_dnaAsProtein_withIntrons() throws IOException
   {
     /*
index 2ffebe0..38e9c93 100644 (file)
@@ -9,7 +9,7 @@ import org.testng.annotations.Test;
 public class ColumnSelectionTest
 {
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAddElement()
   {
     ColumnSelection cs = new ColumnSelection();
@@ -25,7 +25,7 @@ public class ColumnSelectionTest
    * Test the remove method - in particular to verify that remove(int i) removes
    * the element whose value is i, _NOT_ the i'th element.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testRemoveElement()
   {
     ColumnSelection cs = new ColumnSelection();
@@ -50,7 +50,7 @@ public class ColumnSelectionTest
    * Test the method that finds the visible column position of an alignment
    * column, allowing for hidden columns.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testFindColumnPosition()
   {
     ColumnSelection cs = new ColumnSelection();
index b5549f0..f00cb38 100644 (file)
@@ -13,7 +13,7 @@ public class DBRefEntryTest
   /**
    * Tests for the method that compares equality of reference (but not mapping)
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testEqualRef()
   {
     DBRefEntry ref1 = new DBRefEntry("UNIPROT", "1", "V71633");
index 378d708..cb528aa 100644 (file)
@@ -17,7 +17,7 @@ public class MappingTest
    * trite test of the intersectVisContigs method for a simple DNA -> Protein
    * exon map and a range of visContigs
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testIntersectVisContigs()
   {
     MapList fk = new MapList(new int[]
index 093702f..2e6f3f9 100644 (file)
@@ -9,7 +9,7 @@ import org.testng.annotations.Test;
 public class PDBEntryTest
 {
 
-  @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
   public void setUp() throws Exception
   {
   }
@@ -19,7 +19,7 @@ public class PDBEntryTest
   {
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void test()
   {
     try
index 7f099c8..b576569 100644 (file)
@@ -7,7 +7,7 @@ import org.testng.annotations.Test;
 public class SearchResultsTest
 {
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testToString()
   {
     SequenceI seq = new Sequence("", "abcdefghijklm");
index b8748b6..3b50ce1 100644 (file)
@@ -15,7 +15,7 @@ public class SeqCigarTest
    * 
    * TODO: split into separate tests
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSomething() throws Exception
   {
     String o_seq = "asdfktryasdtqwrtsaslldddptyipqqwaslchvhttt";
index 2fc1934..4629a47 100644 (file)
@@ -1,15 +1,17 @@
 package jalview.datamodel;
 
+import static org.testng.AssertJUnit.assertFalse;
+import static org.testng.AssertJUnit.assertTrue;
+
+import org.testng.annotations.Test;
 
-import org.junit.Assert;
-import org.junit.Test;
 
 public class SequenceDummyTest
 {
   /**
    * test for become method
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testBecome()
   {
     SequenceI seq = new Sequence("OrigSeq", "ASEQUENCE");
@@ -19,9 +21,9 @@ public class SequenceDummyTest
     SequenceDummy dummySeq = new SequenceDummy("OrigSeq");
     dummySeq.addSequenceFeature(ofeat);
     dummySeq.become(seq);
-    Assert.assertFalse("Dummy sequence did not become a full sequence",
+    assertFalse("Dummy sequence did not become a full sequence",
             dummySeq.isDummy());
-    Assert.assertTrue("Sequence was not updated from template", seq
+    assertTrue("Sequence was not updated from template", seq
             .getSequenceAsString().equals(dummySeq.getSequenceAsString()));
     boolean found = false;
     for (SequenceFeature sf : dummySeq.getSequenceFeatures())
@@ -32,7 +34,7 @@ public class SequenceDummyTest
         break;
       }
     }
-    Assert.assertTrue("Didn't retain original sequence feature", found);
+    assertTrue("Didn't retain original sequence feature", found);
 
     // todo - should test all aspect of copy constructor
   }
index b216b13..4d08b15 100644 (file)
@@ -15,12 +15,12 @@ public class SequenceTest
 {
   SequenceI seq;
 
-  @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
   public void setUp()
   {
     seq = new Sequence("FER1", "AKPNGVL");
   }
-  @Test
+  @Test(groups ={ "Functional" })
   public void testInsertGapsAndGapmaps()
   {
     SequenceI aseq = seq.deriveSequence();
@@ -35,7 +35,7 @@ public class SequenceTest
     assertEquals("Gap interval 2 end wrong", 8, gapInt.get(1)[1]);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetAnnotation()
   {
     // initial state returns null not an empty array
@@ -51,7 +51,7 @@ public class SequenceTest
     assertNull(seq.getAnnotation());
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetAnnotation_forLabel()
   {
     AlignmentAnnotation ann1 = addAnnotation("label1", "desc1", "calcId1", 1f);
@@ -74,7 +74,7 @@ public class SequenceTest
     return annotation;
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetAlignmentAnnotations_forCalcIdAndLabel()
   {
     AlignmentAnnotation ann1 = addAnnotation("label1", "desc1", "calcId1",
@@ -107,7 +107,7 @@ public class SequenceTest
    * setting the sequenceRef on the annotation. Adding the same annotation twice
    * should be ignored.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAddAlignmentAnnotation()
   {
     assertNull(seq.getAnnotation());
@@ -137,7 +137,7 @@ public class SequenceTest
 
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetStartGetEnd()
   {
     SequenceI seq = new Sequence("test", "ABCDEF");
@@ -157,7 +157,7 @@ public class SequenceTest
    * Tests for the method that returns an alignment column position (base 1) for
    * a given sequence position (base 1).
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testFindIndex()
   {
     SequenceI seq = new Sequence("test", "ABCDEF");
@@ -185,7 +185,7 @@ public class SequenceTest
    * Tests for the method that returns a dataset sequence position (base 1) for
    * an aligned column position (base 0).
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testFindPosition()
   {
     SequenceI seq = new Sequence("test", "ABCDEF");
@@ -220,7 +220,7 @@ public class SequenceTest
     assertEquals(7, seq.findPosition(11));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testDeleteChars()
   {
     SequenceI seq = new Sequence("test", "ABCDEF");
@@ -238,7 +238,7 @@ public class SequenceTest
     assertEquals(6, seq.getEnd());
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testInsertCharAt()
   {
     // non-static methods:
@@ -255,7 +255,7 @@ public class SequenceTest
    * Test the method that returns an array of aligned sequence positions where
    * the array index is the data sequence position (both base 0).
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGapMap()
   {
     SequenceI seq = new Sequence("test", "-A--B-CD-E--F-");
@@ -267,7 +267,7 @@ public class SequenceTest
    * Test the method that gets sequence features, either from the sequence or
    * its dataset.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetSequenceFeatures()
   {
     SequenceI seq = new Sequence("test", "GATCAT");
@@ -316,7 +316,7 @@ public class SequenceTest
    * entries are the residue positions at the sequence position (or to the right
    * if a gap)
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testFindPositionMap()
   {
     /*
@@ -334,7 +334,7 @@ public class SequenceTest
   /**
    * Test for getSubsequence
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetSubsequence()
   {
     SequenceI seq = new Sequence("TestSeq", "ABCDEFG");
@@ -354,7 +354,7 @@ public class SequenceTest
   /**
    * Test for deriveSequence applied to a sequence with a dataset
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testDeriveSequence_existingDataset()
   {
     SequenceI seq = new Sequence("Seq1", "CD");
@@ -369,7 +369,7 @@ public class SequenceTest
   /**
    * Test for deriveSequence applied to an ungapped sequence with no dataset
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testDeriveSequence_noDatasetUngapped()
   {
     SequenceI seq = new Sequence("Seq1", "ABCDEF");
@@ -384,7 +384,7 @@ public class SequenceTest
   /**
    * Test for deriveSequence applied to a gapped sequence with no dataset
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testDeriveSequence_noDatasetGapped()
   {
     SequenceI seq = new Sequence("Seq1", "AB-C.D EF");
index 2d9b713..81aae0b 100644 (file)
@@ -31,7 +31,7 @@ public class EmblFileTest
               + "</locationElement></location></feature>"
           + "<sequence type=\"mRNA\" version=\"2\">GTGACG</sequence></entry></EMBL_Services>";
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetEmblFile()
   {
     Vector<EmblEntry> entries = EmblFile.getEmblFile(
index 0627217..fd465cf 100644 (file)
@@ -50,7 +50,7 @@ public class PDBFileWithJmolTest
   // "./examples/DNMT1_MOUSE.pdb"
   // };
 
-  @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
   public void setUp()
   {
     Cache.applicationProperties.setProperty("STRUCT_FROM_PDB",
@@ -59,7 +59,7 @@ public class PDBFileWithJmolTest
             Boolean.TRUE.toString());
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAlignmentLoader() throws Exception
   {
     for (String f : testFile)
@@ -71,7 +71,7 @@ public class PDBFileWithJmolTest
     }
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testFileParser() throws Exception
   {
     for (String pdbStr : testFile)
index d8582af..126c221 100644 (file)
@@ -43,7 +43,8 @@ import compbio.util.FileUtil;
 public class TestAnnotate3D
 {
 
-  @Test(enabled = false)
+  @Test(groups =
+  { "Functional" }, enabled = false)
   public void test1GIDbyId() throws Exception
   {
     // use same ID as standard tests given at
@@ -53,7 +54,8 @@ public class TestAnnotate3D
     testRNAMLcontent(ids, null);
   }
 
-  @Test(enabled = false)
+  @Test(groups =
+  { "Functional" }, enabled = false)
   public void testIdVsContent2GIS() throws Exception
   {
     Iterator<Reader> ids = Annotate3D.getRNAMLForPDBId("2GIS");
@@ -97,7 +99,8 @@ public class TestAnnotate3D
    * 
    * @throws Exception
    */
-  @Test(enabled = false)
+  @Test(groups =
+  { "Functional" }, enabled = false)
   public void testPDBfileVsRNAML() throws Exception
   {
     PDBfile pdbf = new PDBfile(true, false, true, "examples/2GIS.pdb",
@@ -111,7 +114,8 @@ public class TestAnnotate3D
     testRNAMLcontent(readers, pdbf);
   }
 
-  @Test(enabled = false)
+  @Test(groups =
+  { "Functional" }, enabled = false)
   private void testRNAMLcontent(Iterator<Reader> readers, PDBfile pdbf)
           throws Exception
   {
index e8b6b19..a3e13e8 100644 (file)
@@ -13,7 +13,7 @@ import org.testng.annotations.Test;
 
 public class ChimeraCommandsTest
 {
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAddColourRange()
   {
     Map<Color, Map<Integer, Map<String, List<int[]>>>> map = new LinkedHashMap<Color, Map<Integer, Map<String, List<int[]>>>>();
@@ -67,7 +67,7 @@ public class ChimeraCommandsTest
       { 5, 9 }, posList.get(0)));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testBuildColourCommands()
   {
 
index d40a43d..e7f95a0 100644 (file)
@@ -11,7 +11,7 @@ import ext.edu.ucsf.rbvi.strucviz2.StructureManager;
 public class ChimeraConnect
 {
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testLaunchAndExit()
   {
     final StructureManager structureManager = new StructureManager(true);
index 59a0fdb..0c5d7fa 100644 (file)
@@ -19,7 +19,7 @@ public class JalviewChimeraView
   /**
    * @throws java.lang.Exception
    */
-  @BeforeClass
+  @BeforeClass(alwaysRun = true)
   public static void setUpBeforeClass() throws Exception
   {
     jalview.bin.Jalview.main(new String[]
@@ -42,7 +42,7 @@ public class JalviewChimeraView
 
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSingleSeqViewJMol()
   {
     String inFile = "examples/1gaq.txt";
@@ -86,7 +86,7 @@ public class JalviewChimeraView
     }
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSingleSeqViewChimera()
   {
     String inFile = "examples/1gaq.txt";
index a6e7ea0..4c55386 100644 (file)
@@ -19,7 +19,7 @@ public class AlignViewportTest
   AlignmentI al;
   AlignViewport testee;
 
-  @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
   public void setUp()
   {
     SequenceI seq1 = new Sequence("Seq1", "ABC");
@@ -32,7 +32,7 @@ public class AlignViewportTest
     testee = new AlignViewport(al);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testCollateForPdb()
   {
     /*
index 3f56985..ae56fb4 100644 (file)
@@ -52,7 +52,7 @@ public class AnnotationChooserTest
 
   AlignFrame af;
 
-  @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
   public void setUp() throws IOException
   {
     // pin down annotation sort order for test
@@ -107,7 +107,7 @@ public class AnnotationChooserTest
   /**
    * Test creation of panel with OK and Cancel buttons
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testBuildActionButtonsPanel()
   {
     testee = new AnnotationChooser(parentPanel);
@@ -136,7 +136,7 @@ public class AnnotationChooserTest
    * Test 'Apply to' has 3 radio buttons enabled, 'Selected Sequences' selected,
    * when there is a current selection group.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testBuildApplyToOptionsPanel_withSelectionGroup()
   {
     selectSequences(0, 2, 3);
@@ -183,7 +183,7 @@ public class AnnotationChooserTest
    * Test 'Apply to' has 1 radio button enabled, 'All Sequences' selected, when
    * there is no current selection group.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testBuildApplyToOptionsPanel_noSelectionGroup()
   {
     testee = new AnnotationChooser(parentPanel);
@@ -224,7 +224,7 @@ public class AnnotationChooserTest
   /**
    * Test Show and Hide radio buttons created, with Hide initially selected.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testBuildShowHidePanel()
   {
     testee = new AnnotationChooser(parentPanel);
@@ -262,7 +262,7 @@ public class AnnotationChooserTest
   /**
    * Test construction of panel containing two sub-panels
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testBuildShowHideOptionsPanel()
   {
     testee = new AnnotationChooser(parentPanel);
@@ -279,7 +279,7 @@ public class AnnotationChooserTest
    * Test that annotation types are (uniquely) identified.
    * 
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetAnnotationTypes()
   {
     selectSequences(1);
@@ -311,7 +311,7 @@ public class AnnotationChooserTest
    * We expect all annotations of that type to be set hidden. Other annotations
    * should be left visible.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSelectType_hideForAll()
   {
     selectSequences(1, 2);
@@ -347,7 +347,7 @@ public class AnnotationChooserTest
    * We expect the annotations of that type, linked to the sequence group, to be
    * set hidden. Other annotations should be left visible.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSelectType_hideForSelected()
   {
     selectSequences(1, 2);
@@ -384,7 +384,7 @@ public class AnnotationChooserTest
    * We expect all annotations of that type to be set visible. Other annotations
    * should be left unchanged.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testDeselectType_hideForAll()
   {
     selectSequences(1, 2);
@@ -426,7 +426,7 @@ public class AnnotationChooserTest
    * We expect the annotations of that type, linked to the sequence group, to be
    * set visible. Other annotations should be left unchanged.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testDeselectType_hideForSelected()
   {
     selectSequences(1, 2);
@@ -461,7 +461,7 @@ public class AnnotationChooserTest
    * We expect all annotations of that type to be set visible. Other annotations
    * should be left unchanged
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSelectType_showForAll()
   {
     selectSequences(1, 2);
@@ -500,7 +500,7 @@ public class AnnotationChooserTest
    * We expect all annotations of that type, linked to the sequence group, to be
    * set visible. Other annotations should be left unchanged
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSelectType_showForSelected()
   {
     // sequences 1 and 2 have annotations IUPred and Jmol
@@ -542,7 +542,7 @@ public class AnnotationChooserTest
    * We expect all annotations of that type to be set hidden. Other annotations
    * should be left unchanged.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testDeselectType_showForAll()
   {
     selectSequences(1, 2);
@@ -583,7 +583,7 @@ public class AnnotationChooserTest
    * We expect the annotations of that type, linked to the sequence group, to be
    * set hidden. Other annotations should be left unchanged.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testDeselectType_showForSelected()
   {
     selectSequences(1, 2);
@@ -677,7 +677,7 @@ public class AnnotationChooserTest
    * Test cases include sequences in the selection group, and others not in the
    * group.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testIsInActionScope_selectedScope()
   {
     // sequences 1 and 2 have annotations 4 and 3 respectively
@@ -703,7 +703,7 @@ public class AnnotationChooserTest
    * Test cases include sequences in the selection group, and others not in the
    * group.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testIsInActionScope_unselectedScope()
   {
     // sequences 1 and 2 have annotations 4 and 3 respectively
@@ -727,7 +727,7 @@ public class AnnotationChooserTest
   /**
    * Test that the reset method restores previous visibility flags.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testResetOriginalState()
   {
     testee = new AnnotationChooser(parentPanel);
diff --git a/test/jalview/gui/AppVarnaTest.java b/test/jalview/gui/AppVarnaTest.java
new file mode 100644 (file)
index 0000000..94a3300
--- /dev/null
@@ -0,0 +1,24 @@
+package jalview.gui;
+
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertNull;
+import static org.testng.AssertJUnit.assertSame;
+
+import org.testng.annotations.Test;
+
+public class AppVarnaTest
+{
+  @Test
+  public void testReplaceOddGaps()
+  {
+    String struct = "{(<]}>)";
+    String replaced = AppVarna.replaceOddGaps(struct);
+    assertEquals(struct, replaced);
+    assertSame(struct, replaced);
+    assertEquals("..{.([.<.].}.>)",
+            AppVarna.replaceOddGaps("..{ ([*<-]?} >)"));
+    assertEquals("....", AppVarna.replaceOddGaps("cgta"));
+    assertEquals("", AppVarna.replaceOddGaps(""));
+    assertNull(AppVarna.replaceOddGaps(null));
+  }
+}
index 646016c..8da11b8 100644 (file)
@@ -15,7 +15,7 @@ public class FontChooserTest
    * available, plain) fonts and point sizes that would be rejected by Jalview's
    * FontChooser as having an I-width of less than 1.0.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void dumpInvalidFonts()
   {
     String[] fonts = java.awt.GraphicsEnvironment
index f280797..bb538a5 100644 (file)
@@ -14,7 +14,7 @@ import org.testng.annotations.Test;
 
 public class HelpTest
 {
-  @Test
+  @Test(groups ={ "Functional" })
   public void checkHelpTargets() throws HelpSetException
   {
     ClassLoader cl = Desktop.class.getClassLoader();
index 4a17622..e90e3d9 100644 (file)
@@ -42,7 +42,7 @@ import org.testng.annotations.Test;
 public class JAL1353bugdemo
 {
 
-  @BeforeClass
+  @BeforeClass(alwaysRun = true)
   public static void setUpBeforeClass() throws Exception
   {
   }
@@ -54,7 +54,8 @@ public class JAL1353bugdemo
 
   volatile boolean finish = false;
 
-  @Test(enabled = false)
+  @Test(groups =
+  { "Functional" }, enabled = false)
   public void test()
   {
     Cache.initLogger();
index 1a16053..8a6f63b 100644 (file)
@@ -9,7 +9,7 @@ import org.testng.annotations.Test;
 public class JvSwingUtilsTest
 {
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetScrollBarProportion()
   {
     /*
@@ -24,7 +24,7 @@ public class JvSwingUtilsTest
     assertEquals(0.25f, JvSwingUtils.getScrollBarProportion(sb), 0.001f);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetScrollValueForProportion()
   {
     /*
index 3a1c554..7697bda 100644 (file)
@@ -13,7 +13,7 @@ import org.testng.annotations.Test;
 public class PDBSearchPanelTest
 {
 
-  @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
   public void setUp() throws Exception
   {
   }
@@ -23,7 +23,7 @@ public class PDBSearchPanelTest
   {
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void populateCmbSearchTargetOptionsTest()
   {
     PDBSearchPanel searchPanel = new PDBSearchPanel(null);
@@ -31,7 +31,7 @@ public class PDBSearchPanelTest
     searchPanel.populateCmbSearchTargetOptions();
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testDecodeSearchTerm()
   {
     String expectedString = "1xyz OR text:2xyz OR text:3xyz";
@@ -46,7 +46,7 @@ public class PDBSearchPanelTest
     assertEquals(expectedString, outcome);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testgetPDBIdwithSpecifiedChain()
   {
 
@@ -68,7 +68,8 @@ public class PDBSearchPanelTest
     assertEquals(expectedString, outcome);
   }
 
-  @Test
+  @Test(groups =
+  { "Network", "External" }, timeOut = 5000)
   public void txt_search_ActionPerformedTest()
   {
     PDBSearchPanel searchPanel = new PDBSearchPanel(null);
index adbf385..1705e90 100644 (file)
@@ -22,7 +22,7 @@ import org.testng.annotations.Test;
 public class PaintRefresherTest
 {
   // TODO would prefer PaintRefresher to be a single rather than static
-  @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
   public void setUp()
   {
     PaintRefresher.components.clear();
@@ -34,7 +34,7 @@ public class PaintRefresherTest
     PaintRefresher.components.clear();
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testRegister()
   {
     JPanel jp = new JPanel();
@@ -60,7 +60,7 @@ public class PaintRefresherTest
     assertTrue(registered.get("44").contains(jp4));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testRemoveComponent()
   {
     Map<String, List<Component>> registered = PaintRefresher.components;
@@ -92,7 +92,7 @@ public class PaintRefresherTest
     assertTrue(registered.get("22").contains(jp2));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetAssociatedPanels()
   {
     SequenceI [] seqs = new SequenceI[]{new Sequence("", "ABC")};
index ba1b275..46397d3 100644 (file)
@@ -41,7 +41,7 @@ public class PopupMenuTest
 
   PopupMenu testee = null;
 
-  @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
   public void setUp() throws IOException
   {
     alignment = new FormatAdapter().readFile(TEST_DATA,
@@ -60,7 +60,7 @@ public class PopupMenuTest
     }
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testConfigureReferenceAnnotationsMenu_noSequenceSelected()
   {
     JMenuItem menu = new JMenuItem();
@@ -78,7 +78,7 @@ public class PopupMenuTest
    * are no reference annotations to add to the alignment. The menu item should
    * be disabled.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testConfigureReferenceAnnotationsMenu_noReferenceAnnotations()
   {
     JMenuItem menu = new JMenuItem();
@@ -99,7 +99,7 @@ public class PopupMenuTest
    * reference annotations are already on the alignment. The menu item should be
    * disabled.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testConfigureReferenceAnnotationsMenu_alreadyAdded()
   {
     JMenuItem menu = new JMenuItem();
@@ -119,7 +119,7 @@ public class PopupMenuTest
    * The menu item should be enabled, and acquire a tooltip which lists the
    * annotation sources (calcIds) and type (labels).
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testConfigureReferenceAnnotationsMenu()
   {
     JMenuItem menu = new JMenuItem();
@@ -140,7 +140,7 @@ public class PopupMenuTest
    * on the alignment. The menu item should be enabled, and acquire a tooltip
    * which lists the annotation sources (calcIds) and type (labels).
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testConfigureReferenceAnnotationsMenu_notOnAlignment()
   {
     JMenuItem menu = new JMenuItem();
@@ -219,7 +219,7 @@ public class PopupMenuTest
    * The menu item should be enabled, and acquire a tooltip which lists the
    * annotation sources (calcIds) and type (labels).
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testConfigureReferenceAnnotationsMenu_twoViews()
   {
   }
@@ -228,7 +228,7 @@ public class PopupMenuTest
    * Test for building menu options including 'show' and 'hide' annotation
    * types.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testBuildAnnotationTypesMenus()
   {
     JMenu showMenu = new JMenu();
@@ -310,7 +310,7 @@ public class PopupMenuTest
   /**
    * Test for building menu options with only 'hide' annotation types enabled.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testBuildAnnotationTypesMenus_showDisabled()
   {
     JMenu showMenu = new JMenu();
@@ -369,7 +369,7 @@ public class PopupMenuTest
   /**
    * Test for building menu options with only 'show' annotation types enabled.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testBuildAnnotationTypesMenus_hideDisabled()
   {
     JMenu showMenu = new JMenu();
index 281ed2d..e50148c 100644 (file)
@@ -20,7 +20,7 @@ public class ProgressBarTest
 
   private JLabel statusBar;
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testConstructor_prematureInstantiation()
   {
     try
@@ -33,7 +33,7 @@ public class ProgressBarTest
     }
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testConstructor_wrongLayout()
   {
     statusPanel = new JPanel();
@@ -48,7 +48,7 @@ public class ProgressBarTest
     }
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSetProgressBar()
   {
     statusPanel = new JPanel();
index 64d15b8..0f3d4f6 100644 (file)
@@ -15,7 +15,7 @@ import org.testng.annotations.Test;
 public class SequenceRendererTest
 {
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetResidueBoxColour_zappo()
   {
     SequenceI seq = new Sequence("name", "MATVLGSPRAPAFF"); // FER1_MAIZE...
index 44b51f2..71d062c 100644 (file)
@@ -18,7 +18,7 @@ public class StructureChooserTest
 {
   Sequence seq;
 
-  @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
   public void setUp() throws Exception
   {
     seq = new Sequence("PDB|4kqy|4KQY|A", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", 1,
@@ -48,7 +48,7 @@ public class StructureChooserTest
 
 
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void buildQueryTest()
   {
     String query = StructureChooser.buildQuery(seq);
@@ -58,7 +58,7 @@ public class StructureChooserTest
             query);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void populateFilterComboBoxTest()
   {
     SequenceI[] selectedSeqs = new SequenceI[]
@@ -77,7 +77,7 @@ public class StructureChooserTest
                                  // should be populated
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void fetchStructuresInfoTest()
   {
     SequenceI[] selectedSeqs = new SequenceI[]
index 1c6a489..31bfd9d 100644 (file)
@@ -32,7 +32,7 @@ public class AnnotatedPDBFileInputTest
 
   String pdbId;
 
-  @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
   public void setup() throws Exception
   {
     Cache.applicationProperties.setProperty("STRUCT_FROM_PDB",
@@ -47,7 +47,7 @@ public class AnnotatedPDBFileInputTest
             .get(0).getId();
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void checkNoDuplicates()
   {
     // not strictly a requirement, but strange things may happen if multiple
@@ -67,7 +67,7 @@ public class AnnotatedPDBFileInputTest
     }
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void checkPDBannotationSource()
   {
 
@@ -85,7 +85,7 @@ public class AnnotatedPDBFileInputTest
   /**
    * Check sequence features have been added
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void checkPDBSequenceFeatures()
   {
     StructureSelectionManager ssm = StructureSelectionManager
@@ -124,7 +124,7 @@ public class AnnotatedPDBFileInputTest
     assertEquals("TYR:314 1gaqC", sf[295].getDescription());
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void checkAnnotationWiring()
   {
     assertTrue(al.getAlignmentAnnotation() != null);
@@ -156,7 +156,7 @@ public class AnnotatedPDBFileInputTest
   /**
    * @throws java.lang.Exception
    */
-  @BeforeClass
+  @BeforeClass(alwaysRun = true)
   public static void setUpBeforeClass() throws Exception
   {
     jalview.bin.Jalview.main(new String[]
@@ -173,7 +173,7 @@ public class AnnotatedPDBFileInputTest
 
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testJalviewProjectRelocationAnnotation() throws Exception
   {
 
index d36a82b..a63923a 100644 (file)
@@ -52,7 +52,7 @@ public class AnnotationFileIOTest
       { "Test hiding/showing of insertions on sequence_ref",
           "examples/uniref50.fa", "examples/testdata/uniref50_seqref.jva" } };
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void exampleAnnotationFileIO() throws Exception
   {
     for (String[] testPair : TestFiles)
@@ -100,7 +100,7 @@ public class AnnotationFileIOTest
    *          f
    */
 
-  // @Test
+  // @Test(groups ={ "Functional" })
   public static void testAnnotationFileIO(String testname, File f,
           File annotFile)
   {
index 8440b6d..27c8a0e 100644 (file)
@@ -19,7 +19,7 @@ import org.testng.annotations.Test;
 public class BioJsHTMLOutputTest
 {
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void getJalviewAlignmentAsJsonString()
   {
     String bjsTemplate = null;
@@ -44,7 +44,8 @@ public class BioJsHTMLOutputTest
     Assert.assertNotNull(bjsTemplate);
   }
 
-  @Test(expectedExceptions = NullPointerException.class)
+  @Test(groups =
+  { "Functional" }, expectedExceptions = NullPointerException.class)
   public void expectedNullPointerException()
   {
     try
@@ -57,7 +58,7 @@ public class BioJsHTMLOutputTest
     }
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void getBioJsMSAVersions()
   {
     TreeMap<String, File> versions = null;
@@ -89,7 +90,8 @@ public class BioJsHTMLOutputTest
 
   }
 
-  @Test
+  @Test(groups =
+  { "Network" })
   public void testBioJsUpdate()
   {
     String url = BioJsHTMLOutput.BJS_TEMPLATE_GIT_REPO;
index 6b7de77..2404ea9 100644 (file)
@@ -38,7 +38,7 @@ public class FileIOTester
   /**
    * @throws java.lang.Exception
    */
-  @BeforeClass
+  @BeforeClass(alwaysRun = true)
   public static void setUpBeforeClass() throws Exception
   {
   }
@@ -73,7 +73,7 @@ public class FileIOTester
             + "' identified as '" + type + "'", type.equalsIgnoreCase(fmt));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testStarsInFasta1() throws IOException
   {
     String uri;
@@ -82,7 +82,7 @@ public class FileIOTester
     assertValidFormat("FASTA", uri, fp);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testStarsInFasta2() throws IOException
   {
     String uri;
@@ -91,7 +91,7 @@ public class FileIOTester
     assertValidFormat("FASTA", uri, fp);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGzipIo() throws IOException
   {
     String uri;
@@ -100,7 +100,7 @@ public class FileIOTester
     assertValidFormat("FASTA", uri, fp);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGziplocalFileIO() throws IOException
   {
     String filepath;
@@ -109,7 +109,7 @@ public class FileIOTester
     assertValidFormat("FASTA", filepath, fp);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testNonGzipURLIO() throws IOException
   {
     String uri;
@@ -118,7 +118,7 @@ public class FileIOTester
     assertValidFormat("FASTA", uri, fp);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testNonGziplocalFileIO() throws IOException
   {
     String filepath;
index 8df44df..c8cf638 100644 (file)
@@ -1,5 +1,11 @@
 package jalview.io;
 
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertFalse;
+import static org.testng.AssertJUnit.assertNotNull;
+import static org.testng.AssertJUnit.assertNull;
+import static org.testng.AssertJUnit.assertTrue;
+
 import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.SequenceDummy;
@@ -8,8 +14,7 @@ import jalview.gui.AlignFrame;
 
 import java.io.IOException;
 
-import org.junit.Assert;
-import org.junit.Test;
+import org.testng.annotations.Test;
 
 public class Gff3tests
 {
@@ -18,7 +23,7 @@ public class Gff3tests
           exonerateOutput = "examples/testdata/exonerateoutput.gff",
           simpleGff3file = "examples/testdata/simpleGff3.gff";
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testExonerateImport()
   {
     // exonerate does not tag sequences after features, so we have a more
@@ -29,26 +34,26 @@ public class Gff3tests
     AlignFrame af = loader.LoadFileWaitTillLoaded(exonerateSeqs,
             FormatAdapter.FILE);
 
-    Assert.assertEquals("Unexpected number of DNA protein associations", 0,
+    assertEquals("Unexpected number of DNA protein associations", 0,
             af.getViewport().getAlignment().getCodonFrames().size());
 
     af.loadJalviewDataFile(exonerateOutput, FormatAdapter.FILE, null, null);
 
-    Assert.assertNotEquals("Expected at least one DNA protein association",
-            0, af.getViewport().getAlignment().getDataset()
-                    .getCodonFrames().size());
+    assertTrue("Expected at least one DNA protein association", af
+            .getViewport().getAlignment().getDataset().getCodonFrames()
+            .size() > 0);
 
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void simpleGff3FileIdentify()
   {
-    Assert.assertEquals("Didn't recognise file correctly.",
+    assertEquals("Didn't recognise file correctly.",
             IdentifyFile.GFF3File,
             new IdentifyFile().Identify(simpleGff3file, FormatAdapter.FILE));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void simpleGff3FileClass() throws IOException
   {
     AlignmentI dataset = new Alignment(new SequenceI[]
@@ -57,22 +62,22 @@ public class Gff3tests
             FormatAdapter.FILE);
 
     boolean parseResult = ffile.parse(dataset, null, null, false, false);
-    Assert.assertTrue("return result should be true", parseResult);
+    assertTrue("return result should be true", parseResult);
     checkDatasetfromSimpleGff3(dataset);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void simpleGff3FileLoader() throws IOException
   {
     AlignFrame af = new FileLoader(false).LoadFileWaitTillLoaded(
             simpleGff3file, FormatAdapter.FILE);
-    Assert.assertTrue(
+    assertTrue(
             "Didn't read the alignment into an alignframe from Gff3 File",
             af != null);
     checkDatasetfromSimpleGff3(af.getViewport().getAlignment().getDataset());
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void simpleGff3RelaxedIdMatching() throws IOException
   {
     AlignmentI dataset = new Alignment(new SequenceI[]
@@ -81,12 +86,12 @@ public class Gff3tests
             FormatAdapter.FILE);
 
     boolean parseResult = ffile.parse(dataset, null, null, false, true);
-    Assert.assertTrue("return result (relaxedID matching) should be true",
+    assertTrue("return result (relaxedID matching) should be true",
             parseResult);
     checkDatasetfromSimpleGff3(dataset);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void readGff3File() throws IOException
   {
     Gff3File gff3reader = new Gff3File(simpleGff3file, FormatAdapter.FILE);
@@ -98,47 +103,50 @@ public class Gff3tests
 
   private void checkDatasetfromSimpleGff3(AlignmentI dataset)
   {
-    Assert.assertEquals("no sequences extracted from GFF3 file", 2,
+    assertEquals("no sequences extracted from GFF3 file", 2,
             dataset.getHeight());
 
     SequenceI seq1 = dataset.findName("seq1"), seq2 = dataset
             .findName("seq2");
-    Assert.assertNotNull(seq1);
-    Assert.assertNotNull(seq2);
-    Assert.assertFalse(
+    assertNotNull(seq1);
+    assertNotNull(seq2);
+    assertFalse(
             "Failed to replace dummy seq1 with real sequence",
             seq1 instanceof SequenceDummy
                     && ((SequenceDummy) seq1).isDummy());
-    Assert.assertFalse(
+    assertFalse(
             "Failed to replace dummy seq2 with real sequence",
             seq2 instanceof SequenceDummy
                     && ((SequenceDummy) seq2).isDummy());
     String placeholderseq = new SequenceDummy("foo").getSequenceAsString();
-    Assert.assertFalse("dummy replacement buggy for seq1",
+    assertFalse("dummy replacement buggy for seq1",
             placeholderseq.equals(seq1.getSequenceAsString()));
-    Assert.assertNotEquals("dummy replacement buggy for seq2",
+    assertFalse("dummy replacement buggy for seq2",
             placeholderseq.equals(seq2.getSequenceAsString()));
-    Assert.assertNotNull("No features added to seq1",
+    assertNotNull("No features added to seq1",
             seq1.getSequenceFeatures());// != null);
-    Assert.assertEquals("Wrong number of features", 3,
+    assertEquals("Wrong number of features", 3,
             seq1.getSequenceFeatures().length);
-    Assert.assertNull(seq2.getSequenceFeatures());
-    Assert.assertEquals("Wrong number of features", 0, seq2
+    assertNull(seq2.getSequenceFeatures());
+    assertEquals(
+            "Wrong number of features",
+            0,
+            seq2
             .getSequenceFeatures() == null ? 0
             : seq2.getSequenceFeatures().length);
-    Assert.assertTrue(
+    assertTrue(
             "Expected at least one CDNA/Protein mapping for seq1",
             dataset.getCodonFrame(seq1) != null
                     && dataset.getCodonFrame(seq1).size() > 0);
 
   }
-  // @Test
+  // @Test(groups ={ "Functional" })
   // public final void testPrintGFFFormatSequenceIArrayMapOfStringObject()
   // {
   // fail("Not yet implemented");
   // }
   //
-  // @Test
+  // @Test(groups ={ "Functional" })
   // public final void testAlignFileBooleanStringString()
   // {
   // fail("Not yet implemented");
index eca3984..10d1057 100644 (file)
@@ -7,7 +7,8 @@ import org.testng.annotations.Test;
 public class HtmlFileTest
 {
 
-  @Test(enabled = false)
+  @Test(groups =
+  { "Functional" }, enabled = false)
   public void test()
   {
     fail("Not yet implemented");
diff --git a/test/jalview/io/IdentifyFileTest.java b/test/jalview/io/IdentifyFileTest.java
new file mode 100644 (file)
index 0000000..1c34e1f
--- /dev/null
@@ -0,0 +1,45 @@
+package jalview.io;
+
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+public class IdentifyFileTest {
+
+  @Test(groups =
+  { "Functional" }, dataProvider = "identifyFiles")
+  public void Identify(String data, String expectedFileType)
+  {
+    String protocol = AppletFormatAdapter.FILE;
+    IdentifyFile ider = new IdentifyFile();
+    String actualFiletype = ider.Identify(data, protocol);
+    Assert.assertEquals(actualFiletype, expectedFileType,
+            "File identification Failed!");
+  }
+
+  @DataProvider(name = "identifyFiles")
+  public Object[][] IdentifyFileDP()
+  {
+    return new Object[][]
+    {
+    { "examples/example.json", "JSON" },
+    { "examples/plantfdx.fa", "FASTA" },
+    { "examples/dna_interleaved.phy", "PHYLIP" },
+    { "examples/2GIS.pdb", "PDB" },
+    { "examples/rf00031_folded.stk", "STH" },
+    { "examples/testdata/test.rnaml", "RNAML" },
+    { "examples/testdata/test.aln", "CLUSTAL" },
+    { "examples/testdata/test.pfam", "PFAM" },
+    { "examples/testdata/test.msf", "MSF" },
+    { "examples/testdata/test.pir", "PIR" },
+    { "examples/testdata/test.html", "HTML" },
+    { "examples/testdata/test.pileup", "PileUp" },
+    { "examples/testdata/test.blc", "BLC" },
+    { "examples/testdata/simplegff3.gff", "GFF v2 or v3" },
+    { "examples/testdata/test.jvp", "Jalview" },
+    // { "examples/testdata/test.amsa", "AMSA" },
+    // { "examples/test.jnet", "JnetFile" },
+    };
+  }
+
+}
index 2e28e3a..b6a3e4a 100644 (file)
@@ -3,25 +3,30 @@ package jalview.io;
 
 import static org.testng.AssertJUnit.assertNotNull;
 
+import jalview.api.AlignExportSettingI;
+import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.Annotation;
+import jalview.datamodel.ColumnSelection;
 import jalview.datamodel.Sequence;
 import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
 import jalview.gui.AlignFrame;
-import jalview.gui.AlignmentPanel;
 import jalview.schemes.ColourSchemeI;
-import jalview.viewmodel.seqfeatures.FeaturesDisplayed;
+import jalview.schemes.ZappoColourScheme;
 
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 
+import org.testng.Assert;
 import org.testng.AssertJUnit;
-import org.testng.annotations.AfterMethod;
+import org.testng.annotations.AfterTest;
 import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.BeforeTest;
 import org.testng.annotations.Test;
 
 public class JSONFileTest
@@ -33,17 +38,31 @@ public class JSONFileTest
 
   private int TEST_ANOT_HEIGHT = 0;
 
-  private AlignFrame af;
+  private int TEST_CS_HEIGHT = 0;
 
-  AlignmentI alignment;
+  private String TEST_JSON_FILE = "examples/example.json";
 
-  AlignmentPanel alignPanel;
+  private Alignment alignment;
 
-  HashMap<String, SequenceI> testSeqs = new HashMap<String, SequenceI>();
-  HashMap<String, AlignmentAnnotation> testAnnots = new HashMap<String, AlignmentAnnotation>();
-  HashMap<String, SequenceGroup> testGrps = new HashMap<String, SequenceGroup>();
+  private HashMap<String, SequenceI> expectedSeqs = new HashMap<String, SequenceI>();
 
-  @BeforeMethod
+  private HashMap<String, AlignmentAnnotation> expectedAnnots = new HashMap<String, AlignmentAnnotation>();
+
+  private HashMap<String, SequenceGroup> expectedGrps = new HashMap<String, SequenceGroup>();
+
+  private ColumnSelection expectedColSel = new ColumnSelection();
+
+  private SequenceI[] expectedHiddenSeqs = new SequenceI[1];
+
+  private AlignmentI testAlignment;
+
+  private int passedCount;
+
+  private JSONFile testJsonFile;
+
+  private JSONFile jf;
+
+  @BeforeTest(alwaysRun = true)
   public void setup() throws Exception
   {
     // create and add sequences
@@ -59,6 +78,10 @@ public class JSONFileTest
     seqs[4] = new Sequence("Q7XA98_TRIPR",
             "ALYGTAVSTSFMRRQPVPMSV-ATTTTTKAFPSGF", 6, 39);
 
+    SequenceI hiddenSeq = new Sequence("FER_TOCH",
+            "FILGTMISKSFLFRKPAVTSL-KAISNVGE--ALF", 3, 34);
+    expectedHiddenSeqs[0] = hiddenSeq;
+
     // create and add sequence features
     SequenceFeature seqFeature2 = new SequenceFeature("feature_x",
             "desciption", "status", 6, 15, "Jalview");
@@ -70,17 +93,11 @@ public class JSONFileTest
     seqs[3].addSequenceFeature(seqFeature3);
     seqs[4].addSequenceFeature(seqFeature4);
 
-    // add created features to features displayed
-    FeaturesDisplayed fDis = new FeaturesDisplayed();
-    fDis.setVisible("feature_x");
-    // jsonFile.setDisplayedFeatures(fDis);
-    // jsonFile.setShowSeqFeatures(true);
 
     for (Sequence seq : seqs)
     {
       seq.setDatasetSequence(seq);
-      testSeqs.put(seq.getName(), seq);
-      // jsonFile.seqs.add(seq);
+      expectedSeqs.put(seq.getName(), seq);
     }
 
     // create and add sequence groups
@@ -94,8 +111,8 @@ public class JSONFileTest
             scheme, true, true, false, 21, 29);
     seqGrp.setShowNonconserved(false);
     seqGrp.setDescription(null);
-    // jsonFile.seqGroups.add(seqGrp);
-    testGrps.put(seqGrp.getName(), seqGrp);
+
+    expectedGrps.put(seqGrp.getName(), seqGrp);
 
     // create and add annotation
     Annotation[] annot = new Annotation[35];
@@ -137,51 +154,166 @@ public class JSONFileTest
 
     AlignmentAnnotation alignAnnot = new AlignmentAnnotation(
             "Secondary Structure", "New description", annot);
-    // jsonFile.annotations.add(alignAnnot);
-    testAnnots.put(alignAnnot.label, alignAnnot);
+    expectedAnnots.put(alignAnnot.label, alignAnnot);
 
-    // Alignment al = new Alignment(seqs);
-    TEST_SEQ_HEIGHT = testSeqs.size();
-    TEST_GRP_HEIGHT = testGrps.size();
-    TEST_ANOT_HEIGHT = testAnnots.size();
-  }
+    expectedColSel.hideColumns(32, 33);
+    expectedColSel.hideColumns(34, 34);
 
-  @AfterMethod
-  public void tearDown() throws Exception
-  {
-  }
+    TEST_SEQ_HEIGHT = expectedSeqs.size();
+    TEST_GRP_HEIGHT = expectedGrps.size();
+    TEST_ANOT_HEIGHT = expectedAnnots.size();
+    TEST_CS_HEIGHT = expectedColSel.getHiddenColumns().size();
 
-  @Test
-  public void testParse()
-  {
-    String jsonFile = "examples/example.json";
-    AppletFormatAdapter rf = new AppletFormatAdapter();
-    AlignmentI al = null;
+    AlignExportSettingI exportSettings = new AlignExportSettingI()
+    {
+      @Override
+      public boolean isExportHiddenSequences()
+      {
+        return true;
+      }
+
+      @Override
+      public boolean isExportHiddenColumns()
+      {
+        return true;
+      }
+
+      @Override
+      public boolean isExportGroups()
+      {
+        return true;
+      }
+
+      @Override
+      public boolean isExportFeatures()
+      {
+        return true;
+      }
+
+      @Override
+      public boolean isExportAnnotations()
+      {
+        return true;
+      }
+    };
+
+    AppletFormatAdapter formatAdapter = new AppletFormatAdapter();
     try
     {
-      al = rf.readFile(jsonFile, AppletFormatAdapter.FILE,
-              JSONFile.FILE_DESC);
+      alignment = (Alignment) formatAdapter.readFile(TEST_JSON_FILE,
+              AppletFormatAdapter.FILE, JSONFile.FILE_DESC);
+      jf = (JSONFile) formatAdapter.getAlignFile();
+
+      AlignFrame af = new AlignFrame(alignment, jf.getHiddenSequences(),
+              jf.getColumnSelection(), AlignFrame.DEFAULT_WIDTH,
+              AlignFrame.DEFAULT_HEIGHT);
+      af.getViewport().setShowSequenceFeatures(jf.isShowSeqFeatures());
+      af.changeColour(jf.getColourScheme());
+      af.getViewport().setFeaturesDisplayed(jf.getDisplayedFeatures());
+
+
+      formatAdapter = new AppletFormatAdapter(af.alignPanel, exportSettings);
+      String jsonOutput = formatAdapter.formatSequences(JSONFile.FILE_DESC,
+              af.alignPanel.getAlignment(), false);
+
+      formatAdapter = new AppletFormatAdapter();
+      testAlignment = formatAdapter.readFile(jsonOutput,
+              AppletFormatAdapter.PASTE, JSONFile.FILE_DESC);
+      testJsonFile = (JSONFile) formatAdapter.getAlignFile();
+      // System.out.println(jsonOutput);
     } catch (IOException e)
     {
       e.printStackTrace();
     }
-    assertNotNull("Couldn't read supplied alignment data.", al);
 
-    int passedCount = 0;
-    for (SequenceI seq : al.getSequences())
+  }
+
+ @BeforeMethod(alwaysRun = true)
+  public void methodSetup()
+  {
+    passedCount = 0;
+  }
+
+  @AfterTest
+  public void tearDown() throws Exception
+  {
+    testJsonFile = null;
+    alignment = null;
+    expectedSeqs = null;
+    expectedAnnots = null;
+    expectedGrps = null;
+    testAlignment = null;
+    jf = null;
+  }
+
+  @Test(groups ={ "Functional" })
+  public void roundTripTest()
+  {
+    assertNotNull("JSON roundtrip test failed!", testJsonFile);
+  }
+
+  @Test(groups ={ "Functional" })
+  public void testSeqParsed()
+  {
+    assertNotNull("Couldn't read supplied alignment data.", testAlignment);
+    Assert.assertNotNull(testAlignment.getSequences());
+    for (SequenceI seq : testAlignment.getSequences())
     {
-      SequenceI expectedSeq = testSeqs.get(seq.getName());
-      AssertJUnit.assertTrue("Failed Sequence Test  for >>> " + seq.getName(),
+      SequenceI expectedSeq = expectedSeqs.get(seq.getName());
+      AssertJUnit.assertTrue(
+              "Failed Sequence Test  for >>> " + seq.getName(),
               isSeqMatched(expectedSeq, seq));
       passedCount++;
     }
     AssertJUnit.assertEquals("Some Sequences did not pass the test",
             TEST_SEQ_HEIGHT, passedCount);
+  }
+  
+  @Test(groups ={ "Functional" })
+  public void hiddenColsTest()
+  {
+    ColumnSelection cs = testJsonFile.getColumnSelection();
+    Assert.assertNotNull(cs);
+    Assert.assertNotNull(cs.getHiddenColumns());
+    List<int[]> hiddenCols = cs.getHiddenColumns();
+    Assert.assertEquals(hiddenCols.size(), TEST_CS_HEIGHT);
+    Assert.assertEquals(hiddenCols, expectedColSel.getHiddenColumns(),
+            "Mismatched hidden columns!");
+  }
 
-    passedCount = 0;
-    for (SequenceGroup seqGrp : al.getGroups())
+  @Test(groups ={ "Functional" })
+  public void hiddenSeqsTest()
+  {
+    Assert.assertNotNull(testJsonFile.getHiddenSequences(),
+            "Hidden sequence Expected but found Null");
+    Assert.assertEquals(jf.getHiddenSequences().length, 1,
+            "Hidden sequece");
+  }
+
+  @Test(groups ={ "Functional" })
+  public void colorSchemeTest()
+  {
+    Assert.assertNotNull(testJsonFile.getColourScheme(),
+            "Colourscheme is null, parsing failed!");
+    Assert.assertTrue(
+            testJsonFile.getColourScheme() instanceof ZappoColourScheme,
+            "Zappo colour scheme expected!");
+  }
+
+  @Test(groups ={ "Functional" })
+  public void isShowSeqFeaturesSet()
+  {
+    Assert.assertTrue(testJsonFile.isShowSeqFeatures(),
+            "Sequence feature isDisplayed setting expected to be true");
+  }
+
+  @Test(groups ={ "Functional" })
+  public void testGrpParsed()
+  {
+    Assert.assertNotNull(testAlignment.getGroups());
+    for (SequenceGroup seqGrp : testAlignment.getGroups())
     {
-      SequenceGroup expectedGrp = testGrps.get(seqGrp.getName());
+      SequenceGroup expectedGrp = expectedGrps.get(seqGrp.getName());
       AssertJUnit.assertTrue(
               "Failed SequenceGroup Test for >>> " + seqGrp.getName(),
               isGroupMatched(expectedGrp, seqGrp));
@@ -189,21 +321,21 @@ public class JSONFileTest
     }
     AssertJUnit.assertEquals("Some SequenceGroups did not pass the test",
             TEST_GRP_HEIGHT, passedCount);
+  }
 
-    passedCount = 0;
-    for (AlignmentAnnotation annot : al.getAlignmentAnnotation())
+  @Test(groups ={ "Functional" })
+  public void testAnnotationParsed()
+  {
+    Assert.assertNotNull(testAlignment.getAlignmentAnnotation());
+    for (AlignmentAnnotation annot : testAlignment.getAlignmentAnnotation())
     {
-      AlignmentAnnotation expectedAnnot = testAnnots.get(annot.label);
+      AlignmentAnnotation expectedAnnot = expectedAnnots.get(annot.label);
       AssertJUnit.assertTrue("Failed AlignmentAnnotation Test for >>> "
               + annot.label, isAnnotationMatched(expectedAnnot, annot));
       passedCount++;
     }
     AssertJUnit.assertEquals("Some Sequences did not pass the test",
             TEST_ANOT_HEIGHT, passedCount);
-
-    // af = new AlignFrame(al, 700, 500);
-    // AlignViewport viewport = af.getViewport();
-    // alignPanel = new AlignmentPanel(af, viewport);
   }
 
   public boolean isAnnotationMatched(AlignmentAnnotation eAnnot,
index 7d24727..2afcdc2 100644 (file)
@@ -47,7 +47,7 @@ public class Jalview2xmlTests
   /**
    * @throws java.lang.Exception
    */
-  @BeforeClass
+  @BeforeClass(alwaysRun = true)
   public static void setUpBeforeClass() throws Exception
   {
     jalview.bin.Jalview.main(new String[]
@@ -83,7 +83,7 @@ public class Jalview2xmlTests
     return numdsann;
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testRNAStructureRecovery() throws Exception
   {
     String inFile = "examples/RF00031_folded.stk";
@@ -118,7 +118,7 @@ public class Jalview2xmlTests
             af.getViewport().getGlobalColourScheme() instanceof jalview.schemes.RNAHelicesColour);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testTCoffeeScores() throws Exception
   {
     String inFile = "examples/uniref50.fa", inAnnot = "examples/uniref50.score_ascii";
@@ -154,7 +154,7 @@ public class Jalview2xmlTests
             .println("T-Coffee score shading successfully recovered from project.");
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testColourByAnnotScores() throws Exception
   {
     String inFile = "examples/uniref50.fa", inAnnot = "examples/testdata/uniref50_iupred.jva";
@@ -240,7 +240,7 @@ public class Jalview2xmlTests
             .println("Per sequence (Group) colourscheme successfully applied and recovered.");
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void gatherViewsHere() throws Exception
   {
     int origCount = Desktop.getAlignFrames() == null ? 0 : Desktop
@@ -253,7 +253,7 @@ public class Jalview2xmlTests
 
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void viewRefPdbAnnotation() throws Exception
   {
     Cache.applicationProperties.setProperty("STRUCT_FROM_PDB",
@@ -315,7 +315,7 @@ public class Jalview2xmlTests
     
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testCopyViewSettings() throws Exception
   {
     AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
index a016134..261ffc6 100644 (file)
@@ -84,12 +84,12 @@ public class NewickFileTests
   /**
    * @throws java.lang.Exception
    */
-  @BeforeClass
+  @BeforeClass(alwaysRun = true)
   public static void setUpBeforeClass() throws Exception
   {
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testTreeIO() throws Exception
   {
     String stage = "Init", treename = " '" + name + "' :";
index d335731..9c95486 100644 (file)
@@ -79,7 +79,7 @@ public class PhylipFileTests
    * 
    * @throws Exception
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSequentialDataExtraction() throws Exception
   {
     testDataExtraction(sequentialFile);
@@ -91,7 +91,7 @@ public class PhylipFileTests
    * 
    * @throws Exception
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testInterleavedDataExtraction() throws Exception
   {
     testDataExtraction(interleavedFile);
@@ -124,7 +124,7 @@ public class PhylipFileTests
    * 
    * @throws Exception
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSequentialIO() throws Exception
   {
     testIO(sequentialFile);
@@ -136,7 +136,7 @@ public class PhylipFileTests
    * 
    * @throws Exception
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testInterleavedIO() throws Exception
   {
     testIO(interleavedFile);
index d684512..fc54ef1 100644 (file)
@@ -29,7 +29,7 @@ import org.testng.annotations.Test;
 public class RNAMLfileTest
 {
 
-  @BeforeClass
+  @BeforeClass(alwaysRun = true)
   public static void setUpBeforeClass() throws Exception
   {
   }
@@ -39,7 +39,7 @@ public class RNAMLfileTest
   {
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testRnamlToStockholmIO()
   {
     StockholmFileTest.testFileIOwithFormat(new File(
index 45de531..2537002 100644 (file)
@@ -43,13 +43,13 @@ public class StockholmFileTest
   static String PfamFile = "examples/PF00111_seed.stk",
           RfamFile = "examples/RF00031_folded.stk";
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void pfamFileIO() throws Exception
   {
     testFileIOwithFormat(new File(PfamFile), "STH", -1, 0);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void pfamFileDataExtraction() throws Exception
   {
     AppletFormatAdapter af = new AppletFormatAdapter();
@@ -68,7 +68,7 @@ public class StockholmFileTest
             numpdb > 0);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void rfamFileIO() throws Exception
   {
     testFileIOwithFormat(new File(RfamFile), "STH", 2, 1);
index b7da5e4..7911188 100644 (file)
@@ -40,7 +40,7 @@ public class TCoffeeScoreFileTest
   final static File ALIGN_FILE = new File(
           "test/jalview/io/tcoffee.fasta_aln");
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testReadHeader() throws IOException
   {
 
@@ -65,7 +65,7 @@ public class TCoffeeScoreFileTest
     AssertJUnit.assertEquals(90, header.getScoreFor("cons"));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testWrongFile()
   {
     try
@@ -80,7 +80,7 @@ public class TCoffeeScoreFileTest
     }
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testHeightAndWidth() throws IOException
   {
     TCoffeeScoreFile result = new TCoffeeScoreFile(SCORE_FILE.getPath(),
@@ -90,7 +90,7 @@ public class TCoffeeScoreFileTest
     AssertJUnit.assertEquals(83, result.getWidth());
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testReadBlock() throws IOException
   {
 
@@ -129,7 +129,7 @@ public class TCoffeeScoreFileTest
             block.getConsensus());
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testParse() throws IOException
   {
 
@@ -165,7 +165,7 @@ public class TCoffeeScoreFileTest
             parser.getScoresFor("cons"));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetAsList() throws IOException
   {
 
@@ -203,7 +203,7 @@ public class TCoffeeScoreFileTest
 
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetAsArray() throws IOException
   {
 
@@ -234,7 +234,7 @@ public class TCoffeeScoreFileTest
 
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testHeightAndWidthWithResidueNumbers() throws Exception
   {
     String file = "test/jalview/io/tcoffee.score_ascii_with_residue_numbers";
index 75877ee..3d20190 100644 (file)
@@ -29,13 +29,13 @@ import org.testng.annotations.Test;
 public class DnaCodonTests
 {
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAmbiguityCodeGeneration()
   {
     assertTrue(ResidueProperties.ambiguityCodes.size() > 0);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAmbiguityCodon()
   {
     for (String ac : ResidueProperties.ambiguityCodes.keySet())
@@ -45,7 +45,7 @@ public class DnaCodonTests
     }
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void regenerateCodonTable()
   {
     for (Map.Entry<String, String> codon : ResidueProperties.codonHash2
@@ -56,7 +56,7 @@ public class DnaCodonTests
     }
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void checkOldCodonagainstNewCodonTable()
   {
     // note - this test will be removed once the old codon table (including
index d7e0e0b..eb2ad45 100644 (file)
@@ -14,7 +14,7 @@ public class ResiduePropertiesTest
   /**
    * Test 'standard' codon translations (no ambiguity codes)
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testCodonTranslate()
   {
     // standard translation table order column 1/2/3/4
@@ -88,7 +88,7 @@ public class ResiduePropertiesTest
    * Test a sample of codon translations involving ambiguity codes. Should
    * return a protein value where the ambiguity does not affect the translation.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testCodonTranslate_ambiguityCodes()
   {
     // Y is C or T
@@ -175,7 +175,7 @@ public class ResiduePropertiesTest
     assertNull(ResidueProperties.codonTranslate("WSK"));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetResidues_nucleotide()
   {
     /*
@@ -194,7 +194,7 @@ public class ResiduePropertiesTest
     assertEquals("[A, C, G, I, N, R, T, U, X, Y]", residues.toString());
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetResidues_peptide()
   {
     /*
index 0b15b60..f00ac8d 100644 (file)
@@ -28,7 +28,7 @@ import org.testng.annotations.Test;
 
 public class ScoreMatrixPrinter
 {
-  @Test
+  @Test(groups ={ "Functional" })
   public void printAllMatrices()
   {
     for (Map.Entry<String, ScoreModelI> sm : ResidueProperties.scoreMatrices
@@ -39,7 +39,7 @@ public class ScoreMatrixPrinter
     }
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void printHTMLMatrices()
   {
     for (Map.Entry<String, ScoreModelI> _sm : ResidueProperties.scoreMatrices
index db0ea49..c057980 100644 (file)
@@ -27,7 +27,8 @@ public class Mapping
    * 115 in PDB Res Numbering secondary structure numbers in jmol seem to be in
    * msd numbering, not pdb res numbering.
    */
-  @Test(enabled = false)
+  @Test(groups =
+  { "Functional" }, enabled = false)
   public void pdbEntryPositionMap() throws Exception
   {
     Assert.fail("This test intentionally left to fail");
@@ -109,7 +110,8 @@ public class Mapping
     }
   }
 
-  @Test(enabled = false)
+  @Test(groups =
+  { "Functional" }, enabled = false)
   public void testPDBentryMapping() throws Exception
   {
     Assert.fail("This test intentionally left to fail");
@@ -210,7 +212,7 @@ public class Mapping
    * transform
    * 
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void mapFer1From3W5V() throws Exception
   {
     AlignFrame seqf = new FileLoader(false)
@@ -233,7 +235,7 @@ public class Mapping
    * compare reference annotation for imported pdb sequence to identical
    * seuqence with transferred annotation from mapped pdb file
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void compareTransferredToRefPDBAnnot() throws Exception
   {
     AlignFrame ref = new FileLoader(false)
index 589adde..e3612a5 100644 (file)
@@ -15,13 +15,13 @@ public class StructureSelectionManagerTest
 {
   private StructureSelectionManager ssm;
 
-  @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
   public void setUp()
   {
     ssm = new StructureSelectionManager();
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAddMapping()
   {
     AlignedCodonFrame acf1 = new AlignedCodonFrame();
@@ -59,7 +59,7 @@ public class StructureSelectionManagerTest
     assertEquals(1, ssm.seqMappingRefCounts.get(acf2).intValue());
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testAddMappings()
   {
     AlignedCodonFrame acf1 = new AlignedCodonFrame();
@@ -89,7 +89,7 @@ public class StructureSelectionManagerTest
     assertEquals(1, ssm.seqMappingRefCounts.get(acf3).intValue());
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testRemoveMapping()
   {
     AlignedCodonFrame acf1 = new AlignedCodonFrame();
@@ -127,7 +127,7 @@ public class StructureSelectionManagerTest
     assertEquals(0, ssm.seqMappingRefCounts.size());
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testRemoveMappings()
   {
     AlignedCodonFrame acf1 = new AlignedCodonFrame();
index 7871e77..3354e38 100644 (file)
@@ -57,7 +57,7 @@ public class AAStructureBindingModelTest
   /**
    * Set up test conditions with three aligned sequences,
    */
-  @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
   public void setUp()
   {
     SequenceI seq1 = new Sequence("1YCS", "-VPSQK");
@@ -119,7 +119,7 @@ public class AAStructureBindingModelTest
    * Verify that the method determines that columns 2, 5 and 6 of the aligment
    * are alignable in structure
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testFindSuperposableResidues()
   {
     SuperposeData[] structs = new SuperposeData[al.getHeight()];
@@ -150,7 +150,7 @@ public class AAStructureBindingModelTest
     assertTrue(matched[5]);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testFindSuperposableResidues_hiddenColumn()
   {
     SuperposeData[] structs = new SuperposeData[al.getHeight()];
index ad6e6d0..6d8dded 100644 (file)
@@ -16,7 +16,7 @@ public class ColorUtilsTest
 
   Color darkColour = new Color(11, 30, 50); // dark blue
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testDarkerThan()
   {
     assertEquals("Wrong darker shade", new Color(32, 69, 37),
@@ -28,7 +28,7 @@ public class ColorUtilsTest
     assertNull(ColorUtils.darkerThan(null));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testBrighterThan()
   {
     assertEquals("Wrong brighter shade", new Color(255, 255, 255), // white
@@ -43,7 +43,7 @@ public class ColorUtilsTest
   /**
    * @see http://www.rtapo.com/notes/named_colors.html
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testToTkCode()
   {
     assertEquals("#fffafa", ColorUtils.toTkCode(new Color(255, 250, 250))); // snow
index 837cbe6..d8efa69 100644 (file)
@@ -12,7 +12,7 @@ import org.testng.annotations.Test;
 public class ComparisonTest
 {
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testIsGap()
   {
     assertTrue(Comparison.isGap('-'));
@@ -28,7 +28,7 @@ public class ComparisonTest
    * Test for isNucleotide is that sequences in a dataset are more than 85%
    * AGCTU. Test is not case-sensitive and ignores gaps.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testIsNucleotide() {
     SequenceI seq = new Sequence("eightypercent", "agctuAGCPV");
     assertFalse(Comparison.isNucleotide(new SequenceI[]
@@ -94,7 +94,7 @@ public class ComparisonTest
   /**
    * Test percentage identity calculation for two sequences.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testPID_matchGaps()
   {
     String seq1 = "ABCDEF";
index 036ad91..b06132b 100644 (file)
@@ -22,7 +22,7 @@ public class DBRefUtilsTest
    * Test the method that selects DBRefEntry items whose source is in a supplied
    * list
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSelectRefs()
   {
     assertNull(DBRefUtils.selectRefs(null, null));
@@ -66,7 +66,7 @@ public class DBRefUtilsTest
    * Test the method that converts (currently three) database names to a
    * canonical name (not case-sensitive)
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetCanonicalName()
   {
     assertNull(DBRefUtils.getCanonicalName(null));
@@ -83,7 +83,7 @@ public class DBRefUtilsTest
             DBRefUtils.getCanonicalName("UNIPROTKB/SWISS-CHEESE"));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testIsDasCoordinateSystem()
   {
     assertFalse(DBRefUtils.isDasCoordinateSystem(null, null));
@@ -118,7 +118,7 @@ public class DBRefUtilsTest
   /**
    * Test 'parsing' a DBRef - non PDB case
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testParseToDbRef()
   {
     SequenceI seq = new Sequence("Seq1", "ABCD");
@@ -135,7 +135,7 @@ public class DBRefUtilsTest
   /**
    * Test 'parsing' a DBRef - Stockholm PDB format
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testParseToDbRef_PDB()
   {
     SequenceI seq = new Sequence("Seq1", "ABCD");
@@ -160,7 +160,7 @@ public class DBRefUtilsTest
    * Test the method that searches for matches references - case when we are
    * matching a reference with no mappings
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSearchRefs_noMapping()
   {
     DBRefEntry target = new DBRefEntry("EMBL", "2", "A1234");
@@ -189,7 +189,7 @@ public class DBRefUtilsTest
    * Test the method that searches for matches references - case when we are
    * matching a reference with a mapping
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSearchRefs_withMapping()
   {
     DBRefEntry target = new DBRefEntry("EMBL", "2", "A1234");
index 5579efb..6e7e19e 100644 (file)
@@ -14,7 +14,7 @@ import org.testng.annotations.Test;
 public class MapListTest
 {
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSomething()
   {
     MapList ml = new MapList(new int[]
@@ -219,7 +219,7 @@ public class MapListTest
    * Tests for method that locates ranges in the 'from' map for given range in
    * the 'to' map.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testLocateInFrom_noIntrons()
   {
     /*
@@ -251,7 +251,7 @@ public class MapListTest
    * Tests for method that locates ranges in the 'from' map for given range in
    * the 'to' map.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testLocateInFrom_withIntrons()
   {
     /*
@@ -274,7 +274,7 @@ public class MapListTest
    * Tests for method that locates ranges in the 'to' map for given range in the
    * 'from' map.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testLocateInTo_noIntrons()
   {
     /*
@@ -314,7 +314,7 @@ public class MapListTest
    * Tests for method that locates ranges in the 'to' map for given range in the
    * 'from' map.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testLocateInTo_withIntrons()
   {
     /*
@@ -357,7 +357,7 @@ public class MapListTest
   /**
    * Test equals method.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testEquals()
   {
     int[] codons = new int[]
@@ -406,7 +406,7 @@ public class MapListTest
   /**
    * Test for the method that flattens a list of ranges into a single array.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetRanges()
   {
     List<int[]> ranges = new ArrayList<int[]>();
@@ -420,7 +420,7 @@ public class MapListTest
   /**
    * Check state after construction
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testConstructor()
   {
     int[] codons =
@@ -478,7 +478,7 @@ public class MapListTest
   /**
    * Test the method that creates an inverse mapping
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetInverse()
   {
     int[] codons =
@@ -498,7 +498,7 @@ public class MapListTest
             prettyPrint(ml2.getFromRanges()));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testToString()
   {
     MapList ml = new MapList(new int[]
index 9985fb3..2c0045b 100644 (file)
@@ -36,7 +36,7 @@ public class MappingUtilsTest
   /**
    * Simple test of mapping with no intron involved.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testBuildSearchResults()
   {
     final Sequence seq1 = new Sequence("Seq1", "C-G-TA-GC");
@@ -89,7 +89,7 @@ public class MappingUtilsTest
   /**
    * Simple test of mapping with introns involved.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testBuildSearchResults_withIntron()
   {
     final Sequence seq1 = new Sequence("Seq1", "C-G-TAGA-GCAGCTT");
@@ -166,7 +166,7 @@ public class MappingUtilsTest
    * 
    * @throws IOException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testMapSequenceGroup_sequences() throws IOException
   {
     /*
@@ -259,7 +259,7 @@ public class MappingUtilsTest
    * 
    * @throws IOException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testMapColumnSelection_proteinToDna() throws IOException
   {
     setupMappedAlignments();
@@ -357,7 +357,7 @@ public class MappingUtilsTest
    * 
    * @throws IOException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testMapColumnSelection_dnaToProtein() throws IOException
   {
     setupMappedAlignments();
@@ -384,7 +384,7 @@ public class MappingUtilsTest
     assertEquals("[0, 1, 3]", cs.getSelected().toString());
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testMapColumnSelection_null() throws IOException
   {
     setupMappedAlignments();
@@ -397,7 +397,7 @@ public class MappingUtilsTest
    * Tests for the method that converts a series of [start, end] ranges to
    * single positions
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testFlattenRanges()
   {
     assertEquals("[1, 2, 3, 4]",
@@ -423,7 +423,7 @@ public class MappingUtilsTest
    * 
    * @throws IOException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testMapSequenceGroup_columns() throws IOException
   {
     /*
@@ -506,7 +506,7 @@ public class MappingUtilsTest
    * 
    * @throws IOException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testMapSequenceGroup_region() throws IOException
   {
     /*
@@ -600,7 +600,7 @@ public class MappingUtilsTest
     assertEquals(4, mappedGroup.getEndRes());
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testFindMappingsForSequence()
   {
     SequenceI seq1 = new Sequence("Seq1", "ABC");
index 7d10758..ea55779 100644 (file)
@@ -23,14 +23,14 @@ public class QuickSortTest
   private final Object[] sortedThings = new Object[]
   { c4, c2, c1, c3 };
 
-  @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
   public void setUp()
   {
     things = new Object[]
     { c1, c2, c3, c4 };
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSort_byIntValues()
   {
     int[] values = new int[]
@@ -41,7 +41,7 @@ public class QuickSortTest
     assertTrue(Arrays.equals(sortedThings, things));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSort_byFloatValues()
   {
     float[] values = new float[]
@@ -52,7 +52,7 @@ public class QuickSortTest
     assertTrue(Arrays.equals(sortedThings, things));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSort_byDoubleValues()
   {
     double[] values = new double[]
@@ -66,7 +66,7 @@ public class QuickSortTest
   /**
    * Sort by String is descending order, case-sensitive
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSort_byStringValues()
   {
     String[] values = new String[]
@@ -81,7 +81,8 @@ public class QuickSortTest
   /**
    * Test whether sort is stable i.e. equal values retain their mutual ordering.
    */
-  @Test(enabled = false)
+  @Test(groups =
+  { "Functional" }, enabled = false)
   public void testSort_withDuplicates()
   {
     int[] values = new int[]
@@ -99,7 +100,7 @@ public class QuickSortTest
    * Test that exercises sort with a mostly zero-valued sortby array. May be of
    * interest to check the sort algorithm is efficient.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSort_MostlyZeroValues()
   {
     char[] residues = new char[64];
index ea9b2e4..eae2811 100644 (file)
@@ -11,7 +11,7 @@ import org.testng.annotations.Test;
 public class ShiftListTest
 {
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testParseMap()
   {
     assertNull(ShiftList.parseMap(null));
index 7442530..e8de3bd 100644 (file)
@@ -11,7 +11,7 @@ import org.testng.annotations.Test;
 public class StringUtilsTest
 {
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testInsertCharAt()
   {
     char[] c1 = "ABC".toCharArray();
@@ -31,7 +31,7 @@ public class StringUtilsTest
             StringUtils.insertCharAt(c1, 7, 2, 'w')));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testDeleteChars()
   {
     char[] c1 = "ABC".toCharArray();
@@ -56,7 +56,7 @@ public class StringUtilsTest
     assertTrue(Arrays.equals(c1, StringUtils.deleteChars(c1, 3, 4)));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetLastToken()
   {
     assertNull(StringUtils.getLastToken(null, null));
@@ -69,7 +69,7 @@ public class StringUtilsTest
             "file://localhost:8080/data/examples/file1.dat", "/"));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testSeparatorListToArray()
   {
     String[] result = StringUtils.separatorListToArray(
@@ -90,7 +90,7 @@ public class StringUtilsTest
             .separatorListToArray("abc='|'d|ef|g", "|")));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testArrayToSeparatorList()
   {
     assertEquals("*", StringUtils.arrayToSeparatorList(null, "*"));
index 64b15a6..9e259a9 100644 (file)
@@ -30,7 +30,7 @@ public class ViewStyleTest
    * @throws IllegalAccessException
    * @throws IllegalArgumentException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testCopyConstructor() throws IllegalArgumentException,
           IllegalAccessException
   {
@@ -165,7 +165,7 @@ public class ViewStyleTest
    * @throws IllegalAccessException
    * @throws IllegalArgumentException
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testEquals() throws IllegalArgumentException,
           IllegalAccessException
   {
index ef03fd0..2963ef2 100644 (file)
@@ -37,7 +37,7 @@ public class PDBSequenceFetcherTest
 
   SequenceFetcher sf;
 
-  @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
   public void setUp() throws Exception
   {
     // ensure 'add annotation from structure' is selected
@@ -49,7 +49,8 @@ public class PDBSequenceFetcherTest
     sf = new SequenceFetcher(false);
   }
 
-  @Test(enabled = false)
+  @Test(groups =
+  { "Network" }, enabled = true)
   public void testRnaSeqRetrieve() throws Exception
   {
     List<DbSourceProxy> sps = sf.getSourceProxy("PDB");
index 3b3ef86..9ae5b26 100644 (file)
@@ -34,7 +34,7 @@ import com.sun.jersey.api.client.config.DefaultClientConfig;
 public class PDBRestClientTest
 {
 
-  @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
   public void setUp() throws Exception
   {
   }
@@ -44,7 +44,8 @@ public class PDBRestClientTest
   {
   }
 
-  @Test
+  @Test(groups =
+  { "External", "Network" })
   public void executeRequestTest()
   {
     List<PDBDocField> wantedFields = new ArrayList<PDBDocField>();
@@ -76,7 +77,7 @@ public class PDBRestClientTest
     assertTrue(response.getSearchSummary().size() > 99);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void getPDBDocFieldsAsCommaDelimitedStringTest()
   {
     List<PDBDocField> wantedFields = new ArrayList<PDBDocField>();
@@ -93,7 +94,8 @@ public class PDBRestClientTest
     assertEquals("", expectedResult, actualResult);
   }
 
-  @Test
+  @Test(groups =
+  { "External, Network" })
   public void parsePDBJsonExceptionStringTest()
   {
     List<PDBDocField> wantedFields = new ArrayList<PDBDocField>();
@@ -131,7 +133,8 @@ public class PDBRestClientTest
     assertEquals(expectedErrorMsg, parsedErrorResponse);
   }
 
-  @Test(expectedExceptions = Exception.class)
+  @Test(groups =
+  { "External", "Network" }, expectedExceptions = Exception.class)
   public void testForExpectedRuntimeException() throws Exception
   {
     List<PDBDocField> wantedFields = new ArrayList<PDBDocField>();
@@ -144,7 +147,8 @@ public class PDBRestClientTest
     new PDBRestClient().executeRequest(request);
   }
 
-  @Test
+  @Test(groups =
+  { "External" })
   public void parsePDBJsonResponseTest()
   {
     List<PDBDocField> wantedFields = new ArrayList<PDBDocField>();
@@ -173,7 +177,7 @@ public class PDBRestClientTest
     assertTrue(response.getSearchSummary().size() == 14);
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void getPDBIdColumIndexTest()
   {
     List<PDBDocField> wantedFields = new ArrayList<PDBDocField>();
@@ -186,7 +190,8 @@ public class PDBRestClientTest
     assertEquals(4, PDBRestClient.getPDBIdColumIndex(wantedFields, false));
   }
 
-  @Test
+  @Test(groups =
+  { "External" })
   public void externalServiceIntegrationTest()
   {
     ClientConfig clientConfig = new DefaultClientConfig();
index 9fba1cb..c89324b 100644 (file)
@@ -35,7 +35,7 @@ public class UniprotTest
   /**
    * Test the method that unmarshals XML to a Uniprot model
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetUniprotEntries()
   {
     Uniprot u = new Uniprot();
@@ -108,7 +108,7 @@ public class UniprotTest
   /**
    * Test the method that formats the sequence name in Fasta style
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testConstructSequenceFastaHeader()
   {
     Uniprot u = new Uniprot();
index a3ae56d..41ead2f 100644 (file)
@@ -62,7 +62,7 @@ public class Jws2ParamView
 
   public static Jws2Discoverer disc = null;
 
-  @BeforeClass
+  @BeforeClass(alwaysRun = true)
   public static void setUpBeforeClass() throws Exception
   {
     Cache.initLogger();
@@ -74,7 +74,8 @@ public class Jws2ParamView
    * rather than hang
    */
 
-  @Test(enabled = false)
+  @Test(groups =
+  { "Interactive" }, enabled = true)
   public void testJws2Gui()
   {
     Iterator<String> presetEnum = presetTests.iterator();
index 470c39b..35110a4 100644 (file)
@@ -52,7 +52,7 @@ public class DisorderAnnotExportImport
 
   public static jalview.gui.AlignFrame af = null;
 
-  @BeforeClass
+  @BeforeClass(alwaysRun = true)
   public static void setUpBeforeClass() throws Exception
   {
 
@@ -86,7 +86,7 @@ public class DisorderAnnotExportImport
   /**
    * test for patches to JAL-1294
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testDisorderAnnotExport()
   {
     disorderClient = new AADisorderClient(iupreds.get(0), af, null, null);
index ec901da..08bb405 100644 (file)
@@ -34,7 +34,7 @@ import org.testng.annotations.Test;
 public class JalviewJabawsTestUtils
 {
 
-  @BeforeClass
+  @BeforeClass(alwaysRun = true)
   public static void setUpBeforeClass() throws Exception
   {
   }
@@ -51,7 +51,8 @@ public class JalviewJabawsTestUtils
   { "http://localhost:8080/jabaws",
       "http://www.compbio.dundee.ac.uk/jabaws" };
 
-  @Test(enabled = false)
+  @Test(groups =
+  { "Functional" }, enabled = false)
   public void testAnnotExport()
   {
     fail("Not yet implemented");
index 49a3064..e458876 100644 (file)
@@ -62,7 +62,7 @@ public class JpredJabaStructExportImport
 
   public static jalview.gui.AlignFrame af = null;
 
-  @BeforeClass
+  @BeforeClass(alwaysRun = true)
   public static void setUpBeforeClass() throws Exception
   {
 
@@ -71,7 +71,6 @@ public class JpredJabaStructExportImport
 
     for (Jws2Instance svc : disc.getServices())
     {
-
       if (svc.getServiceTypeURI().toLowerCase().contains("jpred"))
       {
         jpredws = svc;
@@ -79,18 +78,10 @@ public class JpredJabaStructExportImport
     }
 
     System.out.println("State of jpredws: " + jpredws);
-
-    if (jpredws == null)
-    {
-      Assert.fail("jpredws is null");
-    }
-
+    Assert.assertNotNull(jpredws, "jpredws is null!");
     jalview.io.FileLoader fl = new jalview.io.FileLoader(false);
-
     af = fl.LoadFileWaitTillLoaded(testseqs, jalview.io.FormatAdapter.FILE);
-
     assertNotNull("Couldn't load test data ('" + testseqs + "')", af);
-
   }
 
   @AfterClass
@@ -103,7 +94,7 @@ public class JpredJabaStructExportImport
     }
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testJPredStructOneSeqOnly()
   {
     af.selectAllSequenceMenuItem_actionPerformed(null);
@@ -155,7 +146,7 @@ public class JpredJabaStructExportImport
 
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testJPredStructExport()
   {
 
@@ -226,7 +217,7 @@ public class JpredJabaStructExportImport
             + "\nCouldn't complete Annotation file roundtrip input/output/input test.");
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testJpredwsSettingsRecovery()
   {
     Assert.fail("not implemnented");
index 0a50e47..61f8203 100644 (file)
@@ -23,7 +23,8 @@ public class MinJabawsClientTests
         * @throws Exception
         */
        @SuppressWarnings("rawtypes")
-       @Test
+  @Test(groups =
+  { "Network" })
        public void msaTest() throws Exception {
                String url;
                RegistryWS registry = Jws2Client
index 5d9773a..87a4ec6 100644 (file)
@@ -61,7 +61,7 @@ public class RNAStructExportImport
 
   public static jalview.gui.AlignFrame af = null;
 
-  @BeforeClass
+  @BeforeClass(alwaysRun = true)
   public static void setUpBeforeClass() throws Exception
   {
 
@@ -118,7 +118,7 @@ public class RNAStructExportImport
     }
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testRNAAliFoldValidStructure()
   {
 
@@ -152,7 +152,7 @@ public class RNAStructExportImport
     }
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testRNAStructExport()
   {
 
@@ -223,7 +223,7 @@ public class RNAStructExportImport
             + "\nCouldn't complete Annotation file roundtrip input/output/input test.");
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testRnaalifoldSettingsRecovery()
   {
     List<compbio.metadata.Argument> opts = new ArrayList<compbio.metadata.Argument>();
index 3403446..523ccb3 100644 (file)
@@ -51,7 +51,7 @@ public class ParameterUtilsTest
 
   private static Jws2Discoverer disc = null;
 
-  @BeforeClass
+  @BeforeClass(alwaysRun = true)
   public static void setUpBeforeClass() throws Exception
   {
     serviceTests.add("AAConWS".toLowerCase());
@@ -59,7 +59,7 @@ public class ParameterUtilsTest
     disc = JalviewJabawsTestUtils.getJabawsDiscoverer();
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testWriteParameterSet() throws WrongParameterException
   {
     for (Jws2Instance service : disc.getServices())
@@ -119,7 +119,7 @@ public class ParameterUtilsTest
             || serviceTests.contains(service.serviceType.toLowerCase());
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testCopyOption()
   {
     for (Jws2Instance service : disc.getServices())
@@ -143,7 +143,7 @@ public class ParameterUtilsTest
 
   /**
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testCopyParameter()
   {
     for (Jws2Instance service : disc.getServices())
index 70071a5..0c96c48 100644 (file)
@@ -13,7 +13,7 @@ public class RestClientTest
   /**
    * Refactored 'as is' from main method
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testGetRestClient()
   {
     /*
index 99135d9..1f807b3 100644 (file)
@@ -36,7 +36,7 @@ import org.testng.annotations.Test;
 public class ShmmrRSBSService
 {
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testShmmrService()
   {
 
@@ -46,7 +46,7 @@ public class ShmmrRSBSService
                     RestClient.makeShmmrRestClient().service));
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testShmmrServiceDataprep() throws Exception
   {
     RestClient _rc = RestClient.makeShmmrRestClient();
index c830f23..148cb9e 100644 (file)
@@ -6,7 +6,7 @@ import org.testng.annotations.Test;
 public class DasSequenceFetcher
 {
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testDasRegistryContact()
   {
     jalview.bin.Cache.getDasSourceRegistry().refreshSources();
index d6bd4b0..d9b1d90 100644 (file)
@@ -48,7 +48,7 @@ public class DbRefFetcherTest
   /**
    * @throws java.lang.Exception
    */
-  @BeforeClass
+  @BeforeClass(alwaysRun = true)
   public static void setUpBeforeClass() throws Exception
   {
     jalview.bin.Cache.initLogger();
@@ -62,7 +62,7 @@ public class DbRefFetcherTest
   {
   }
 
-  @Test
+  @Test(groups ={ "Functional" })
   public void testStandardProtDbs()
   {
     String[] defdb = DBRefSource.PROTEINDBS;
@@ -99,7 +99,8 @@ public class DbRefFetcherTest
             uniprot != null && i < 2);
   }
 
-  @Test
+  @Test(groups =
+  { "External" })
   public void testEmblUniprotProductRecovery() throws Exception
   {
     String retrievalId = "CAA23748"; // "V00488";
@@ -108,7 +109,8 @@ public class DbRefFetcherTest
     verifyProteinNucleotideXref(retrievalId, embl);
   }
 
-  @Test
+  @Test(groups =
+  { "External" })
   public void testEmblCDSUniprotProductRecovery() throws Exception
   {
     String retrievalId = "AAH29712";
index 64f42cd..14b372f 100755 (executable)
@@ -1216,7 +1216,7 @@ and any path to a file to save to the file]]></string>
                                                                <string><![CDATA[664]]></string>
                                                        </property>
                                                        <property name="sourceName">
-                                                               <string><![CDATA[Jmol-12.2.4.jar]]></string>
+                                                               <string><![CDATA[Jmol-14.2.14_2015.06.11.jar]]></string>
                                                        </property>
                                                        <property name="overrideUnixPermissions">
                                                                <boolean>false</boolean>
@@ -1234,7 +1234,7 @@ and any path to a file to save to the file]]></string>
                                                                <boolean>true</boolean>
                                                        </property>
                                                        <property name="destinationName">
-                                                               <string><![CDATA[Jmol-12.2.4.jar]]></string>
+                                                               <string><![CDATA[Jmol-14.2.14_2015.06.11.jar]]></string>
                                                        </property>
                                                        <property name="fileSize">
                                                                <long>4938027</long>
@@ -1840,7 +1840,7 @@ and any path to a file to save to the file]]></string>
                                                                <string><![CDATA[664]]></string>
                                                        </property>
                                                        <property name="sourceName">
-                                                               <string><![CDATA[VARNAv3-91.jar]]></string>
+                                                               <string><![CDATA[VARNAv3-93.jar]]></string>
                                                        </property>
                                                        <property name="overrideUnixPermissions">
                                                                <boolean>false</boolean>
@@ -1858,7 +1858,7 @@ and any path to a file to save to the file]]></string>
                                                                <boolean>true</boolean>
                                                        </property>
                                                        <property name="destinationName">
-                                                               <string><![CDATA[VARNAv3-91.jar]]></string>
+                                                               <string><![CDATA[VARNAv3-93.jar]]></string>
                                                        </property>
                                                        <property name="fileSize">
                                                                <long>663408</long>
diff --git a/utils/JettyExamplesDir.java b/utils/JettyExamplesDir.java
new file mode 100644 (file)
index 0000000..58f7694
--- /dev/null
@@ -0,0 +1,73 @@
+//
+//========================================================================
+//Copyright (c) 1995-2015 Mort Bay Consulting Pty. Ltd.
+//------------------------------------------------------------------------
+//All rights reserved. This program and the accompanying materials
+//are made available under the terms of the Eclipse Public License v1.0
+//and Apache License v2.0 which accompanies this distribution.
+//
+//  The Eclipse Public License is available at
+//  http://www.eclipse.org/legal/epl-v10.html
+//
+//  The Apache License v2.0 is available at
+//  http://www.opensource.org/licenses/apache2.0.php
+//
+//You may elect to redistribute this code under either of these licenses.
+//========================================================================
+//
+
+
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.DefaultHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.server.handler.ResourceHandler;
+
+public class JettyExamplesDir
+{
+
+  /**
+   * Simple Jetty FileServer. This is a simple example of Jetty configured as a
+   * FileServer.
+   */
+
+  public static void main(String[] args) throws Exception
+  {
+    // Create a basic Jetty server object that will listen on port 8080. Note
+    // that if you set this to port 0
+    // then a randomly available port will be assigned that you can either look
+    // in the logs for the port,
+    // or programmatically obtain it for use in test cases.
+    Server server = new Server(8080);
+
+    // Create the ResourceHandler. It is the object that will actually handle
+    // the request for a given file. It is
+    // a Jetty Handler object so it is suitable for chaining with other handlers
+    // as you will see in other examples.
+    ResourceHandler resource_handler = new ResourceHandler();
+    // Configure the ResourceHandler. Setting the resource base indicates where
+    // the files should be served out of.
+    // In this example it is the current directory but it can be configured to
+    // anything that the jvm has access to.
+    resource_handler.setDirectoriesListed(true);
+    resource_handler.setWelcomeFiles(new String[]
+    { "applets.html" });
+    resource_handler.setResourceBase(".");
+
+    // Add the ResourceHandler to the server.
+    // GzipHandler gzip = new GzipHandler();
+    // server.setHandler(gzip);
+    HandlerList handlers = new HandlerList();
+    handlers.setHandlers(new Handler[]
+    { resource_handler, new DefaultHandler() });
+    server.setHandler(handlers);
+
+    // Start things up! By using the server.join() the server thread will join
+    // with the current thread.
+    // See
+    // "http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Thread.html#join()"
+    // for more details.
+    server.start();
+    server.join();
+}
+}
\ No newline at end of file