aboutsummaryrefslogtreecommitdiff
path: root/node_modules/xml2js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/xml2js')
-rw-r--r--node_modules/xml2js/.npmignore6
-rw-r--r--node_modules/xml2js/.travis.yml5
-rw-r--r--node_modules/xml2js/83.coffee6
-rw-r--r--node_modules/xml2js/CONTRIBUTING.md19
-rw-r--r--node_modules/xml2js/LICENSE19
-rw-r--r--node_modules/xml2js/README.md343
-rw-r--r--node_modules/xml2js/canon.xml482
-rw-r--r--node_modules/xml2js/incompat.coffee5
-rw-r--r--node_modules/xml2js/incompat2.js7
-rw-r--r--node_modules/xml2js/lib/bom.js15
-rw-r--r--node_modules/xml2js/lib/processors.js19
-rw-r--r--node_modules/xml2js/lib/xml2js.js436
-rw-r--r--node_modules/xml2js/package.json63
-rw-r--r--node_modules/xml2js/text.coffee11
-rw-r--r--node_modules/xml2js/text.xml485
-rw-r--r--node_modules/xml2js/x.js24
16 files changed, 1945 insertions, 0 deletions
diff --git a/node_modules/xml2js/.npmignore b/node_modules/xml2js/.npmignore
new file mode 100644
index 000000000..ef7b9b905
--- /dev/null
+++ b/node_modules/xml2js/.npmignore
@@ -0,0 +1,6 @@
+*.swp
+.idea
+node_modules
+src
+test
+Cakefile \ No newline at end of file
diff --git a/node_modules/xml2js/.travis.yml b/node_modules/xml2js/.travis.yml
new file mode 100644
index 000000000..755a6b73d
--- /dev/null
+++ b/node_modules/xml2js/.travis.yml
@@ -0,0 +1,5 @@
+language: node_js
+
+node_js:
+ - "0.8"
+ - "0.10"
diff --git a/node_modules/xml2js/83.coffee b/node_modules/xml2js/83.coffee
new file mode 100644
index 000000000..3443540fe
--- /dev/null
+++ b/node_modules/xml2js/83.coffee
@@ -0,0 +1,6 @@
+xml2js = require 'xml2js'
+util = require 'util'
+
+body = '<sample><chartest desc="Test for CHARs">Character data here!</chartest></sample>'
+xml2js.parseString body, (err, result) ->
+ console.log util.inspect result, false, null
diff --git a/node_modules/xml2js/CONTRIBUTING.md b/node_modules/xml2js/CONTRIBUTING.md
new file mode 100644
index 000000000..2209adf57
--- /dev/null
+++ b/node_modules/xml2js/CONTRIBUTING.md
@@ -0,0 +1,19 @@
+# How to contribute
+
+We're always happy about useful new pull requests. Keep in mind that the better
+your pull request is, the easier it can be added to `xml2js`. As such please
+make sure your patch is ok:
+
+ * `xml2js` is written in CoffeeScript. Please don't send patches to
+ the JavaScript source, as it get's overwritten by the CoffeeScript
+ compiler. The reason we have the JS code in the repository is for easier
+ use with eg. `git submodule`
+ * Make sure that the unit tests still all pass. Failing unit tests mean that
+ someone *will* run into a bug, if we accept your pull request.
+ * Please, add a unit test with your pull request, to show what was broken and
+ is now fixed or what was impossible and now works due to your new code.
+ * If you add a new feature, please add some documentation that it exists.
+
+If you like, you can add yourself in the `package.json` as contributor if you
+deem your contribution significant enough. Otherwise, we will decide and maybe
+add you.
diff --git a/node_modules/xml2js/LICENSE b/node_modules/xml2js/LICENSE
new file mode 100644
index 000000000..e3b4222a6
--- /dev/null
+++ b/node_modules/xml2js/LICENSE
@@ -0,0 +1,19 @@
+Copyright 2010, 2011, 2012, 2013. All rights reserved.
+
+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.
diff --git a/node_modules/xml2js/README.md b/node_modules/xml2js/README.md
new file mode 100644
index 000000000..4e01478e9
--- /dev/null
+++ b/node_modules/xml2js/README.md
@@ -0,0 +1,343 @@
+node-xml2js
+===========
+
+Ever had the urge to parse XML? And wanted to access the data in some sane,
+easy way? Don't want to compile a C parser, for whatever reason? Then xml2js is
+what you're looking for!
+
+Description
+===========
+
+Simple XML to JavaScript object converter. It supports bi-directional conversion.
+Uses [sax-js](https://github.com/isaacs/sax-js/) and
+[xmlbuilder-js](https://github.com/oozcitak/xmlbuilder-js/).
+
+Note: If you're looking for a full DOM parser, you probably want
+[JSDom](https://github.com/tmpvar/jsdom).
+
+Installation
+============
+
+Simplest way to install `xml2js` is to use [npm](http://npmjs.org), just `npm
+install xml2js` which will download xml2js and all dependencies.
+
+Usage
+=====
+
+No extensive tutorials required because you are a smart developer! The task of
+parsing XML should be an easy one, so let's make it so! Here's some examples.
+
+Shoot-and-forget usage
+----------------------
+
+You want to parse XML as simple and easy as possible? It's dangerous to go
+alone, take this:
+
+```javascript
+var parseString = require('xml2js').parseString;
+var xml = "<root>Hello xml2js!</root>"
+parseString(xml, function (err, result) {
+ console.dir(result);
+});
+```
+
+Can't get easier than this, right? This works starting with `xml2js` 0.2.3.
+With CoffeeScript it looks like this:
+
+```coffeescript
+{parseString} = require 'xml2js'
+xml = "<root>Hello xml2js!</root>"
+parseString xml, (err, result) ->
+ console.dir result
+```
+
+If you need some special options, fear not, `xml2js` supports a number of
+options (see below), you can specify these as second argument:
+
+```javascript
+parseString(xml, {trim: true}, function (err, result) {
+});
+```
+
+Simple as pie usage
+-------------------
+
+That's right, if you have been using xml-simple or a home-grown
+wrapper, this was added in 0.1.11 just for you:
+
+```javascript
+var fs = require('fs'),
+ xml2js = require('xml2js');
+
+var parser = new xml2js.Parser();
+fs.readFile(__dirname + '/foo.xml', function(err, data) {
+ parser.parseString(data, function (err, result) {
+ console.dir(result);
+ console.log('Done');
+ });
+});
+```
+
+Look ma, no event listeners!
+
+You can also use `xml2js` from
+[CoffeeScript](http://jashkenas.github.com/coffee-script/), further reducing
+the clutter:
+
+```coffeescript
+fs = require 'fs',
+xml2js = require 'xml2js'
+
+parser = new xml2js.Parser()
+fs.readFile __dirname + '/foo.xml', (err, data) ->
+ parser.parseString data, (err, result) ->
+ console.dir result
+ console.log 'Done.'
+```
+
+But what happens if you forget the `new` keyword to create a new `Parser`? In
+the middle of a nightly coding session, it might get lost, after all. Worry
+not, we got you covered! Starting with 0.2.8 you can also leave it out, in
+which case `xml2js` will helpfully add it for you, no bad surprises and
+inexplicable bugs!
+
+"Traditional" usage
+-------------------
+
+Alternatively you can still use the traditional `addListener` variant that was
+supported since forever:
+
+```javascript
+var fs = require('fs'),
+ xml2js = require('xml2js');
+
+var parser = new xml2js.Parser();
+parser.addListener('end', function(result) {
+ console.dir(result);
+ console.log('Done.');
+});
+fs.readFile(__dirname + '/foo.xml', function(err, data) {
+ parser.parseString(data);
+});
+```
+
+If you want to parse multiple files, you have multiple possibilites:
+
+ * You can create one `xml2js.Parser` per file. That's the recommended one
+ and is promised to always *just work*.
+ * You can call `reset()` on your parser object.
+ * You can hope everything goes well anyway. This behaviour is not
+ guaranteed work always, if ever. Use option #1 if possible. Thanks!
+
+So you wanna some JSON?
+-----------------------
+
+Just wrap the `result` object in a call to `JSON.stringify` like this
+`JSON.stringify(result)`. You get a string containing the JSON representation
+of the parsed object that you can feed to JSON-hungry consumers.
+
+Displaying results
+------------------
+
+You might wonder why, using `console.dir` or `console.log` the output at some
+level is only `[Object]`. Don't worry, this is not because xml2js got lazy.
+That's because Node uses `util.inspect` to convert the object into strings and
+that function stops after `depth=2` which is a bit low for most XML.
+
+To display the whole deal, you can use `console.log(util.inspect(result, false,
+null))`, which displays the whole result.
+
+So much for that, but what if you use
+[eyes](https://github.com/cloudhead/eyes.js) for nice colored output and it
+truncates the output with `…`? Don't fear, there's also a solution for that,
+you just need to increase the `maxLength` limit by creating a custom inspector
+`var inspect = require('eyes').inspector({maxLength: false})` and then you can
+easily `inspect(result)`.
+
+XML builder usage
+-----------------
+
+Since 0.4.0, objects can be also be used to build XML:
+
+```javascript
+var fs = require('fs'),
+ xml2js = require('xml2js');
+
+var obj = {name: "Super", Surname: "Man", age: 23};
+
+var builder = new xml2js.Builder();
+var xml = builder.buildObject(obj);
+```
+
+At the moment, a one to one bi-directional conversion is guaranteed only for
+default configuration, except for `attrkey`, `charkey` and `explicitArray` options
+you can redefine to your taste. Writing CDATA is not currently supported.
+
+Processing attribute and tag names
+----------------------------------
+
+Since 0.4.1 you can optionally provide the parser with attribute and tag name processors:
+
+```javascript
+
+function nameToUpperCase(name){
+ return name.toUpperCase();
+}
+
+//transform all attribute and tag names to uppercase
+parseString(xml, {tagNameProcessors: [nameToUpperCase], attrNameProcessors: [nameToUpperCase]}, function (err, result) {
+});
+```
+
+The `tagNameProcessors` and `attrNameProcessors` options both accept an `Array` of functions with the following signature:
+```javascript
+function (name){
+ //do something with `name`
+ return name
+}
+```
+
+Some processors are provided out-of-the-box and can be found in `lib/processors.js`:
+
+- `normalize`: transforms the name to lowercase.
+(Automatically used when `options.normalize` is set to `true`)
+
+- `firstCharLowerCase`: transforms the first character to lower case.
+E.g. 'MyTagName' becomes 'myTagName'
+
+- `stripPrefix`: strips the xml namespace prefix. E.g `<foo:Bar/>` will become 'Bar'.
+(N.B.: the `xmlns` prefix is NOT stripped.)
+
+Options
+=======
+
+Apart from the default settings, there are a number of options that can be
+specified for the parser. Options are specified by ``new Parser({optionName:
+value})``. Possible options are:
+
+ * `attrkey` (default: `$`): Prefix that is used to access the attributes.
+ Version 0.1 default was `@`.
+ * `charkey` (default: `_`): Prefix that is used to access the character
+ content. Version 0.1 default was `#`.
+ * `explicitCharkey` (default: `false`)
+ * `trim` (default: `false`): Trim the whitespace at the beginning and end of
+ text nodes.
+ * `normalizeTags` (default: `false`): Normalize all tag names to lowercase.
+ * `normalize` (default: `false`): Trim whitespaces inside text nodes.
+ * `explicitRoot` (default: `true`): Set this if you want to get the root
+ node in the resulting object.
+ * `emptyTag` (default: `undefined`): what will the value of empty nodes be.
+ Default is `{}`.
+ * `explicitArray` (default: `true`): Always put child nodes in an array if
+ true; otherwise an array is created only if there is more than one.
+ * `ignoreAttrs` (default: `false`): Ignore all XML attributes and only create
+ text nodes.
+ * `mergeAttrs` (default: `false`): Merge attributes and child elements as
+ properties of the parent, instead of keying attributes off a child
+ attribute object. This option is ignored if `ignoreAttrs` is `false`.
+ * `validator` (default `null`): You can specify a callable that validates
+ the resulting structure somehow, however you want. See unit tests
+ for an example.
+ * `xmlns` (default `false`): Give each element a field usually called '$ns'
+ (the first character is the same as attrkey) that contains its local name
+ and namespace URI.
+ * `explicitChildren` (default `false`): Put child elements to separate
+ property. Doesn't work with `mergeAttrs = true`. If element has no children
+ then "children" won't be created. Added in 0.2.5.
+ * `childkey` (default `$$`): Prefix that is used to access child elements if
+ `explicitChildren` is set to `true`. Added in 0.2.5.
+ * `charsAsChildren` (default `false`): Determines whether chars should be
+ considered children if `explicitChildren` is on. Added in 0.2.5.
+ * `async` (default `false`): Should the callbacks be async? This *might* be
+ an incompatible change if your code depends on sync execution of callbacks.
+ xml2js 0.3 might change this default, so the recommendation is to not
+ depend on sync execution anyway. Added in 0.2.6.
+ * `strict` (default `true`): Set sax-js to strict or non-strict parsing mode.
+ Defaults to `true` which is *highly* recommended, since parsing HTML which
+ is not well-formed XML might yield just about anything. Added in 0.2.7.
+ * `attrNameProcessors` (default: `null`): Allows the addition of attribute name processing functions.
+ Accepts an `Array` of functions with following signature:
+ ```javascript
+ function (name){
+ //do something with `name`
+ return name
+ }
+ ```
+ Added in 0.4.1
+ * `tagNameProcessors` (default: `null`):Allows the addition of tag name processing functions.
+ Accepts an `Array` of functions with following signature:
+ ```javascript
+ function (name){
+ //do something with `name`
+ return name
+ }
+ ```
+ Added in 0.4.1
+
+Options for the `Builder` class
+-------------------------------
+
+ * `rootName` (default `root`): root element name to be used in case
+ `explicitRoot` is `false` or to override the root element name.
+ * `renderOpts` (default `{ 'pretty': true, 'indent': ' ', 'newline': '\n' }`):
+ Rendering options for xmlbuilder-js.
+ * pretty: prettify generated XML
+ * indent: whitespace for indentation (only when pretty)
+ * newline: newline char (only when pretty)
+ * `xmldec` (default `{ 'version': '1.0', 'encoding': 'UTF-8', 'standalone': true }`:
+ XML declaration attributes.
+ * `xmldec.version` A version number string, e.g. 1.0
+ * `xmldec.encoding` Encoding declaration, e.g. UTF-8
+ * `xmldec.standalone` standalone document declaration: true or false
+ * `doctype` (default `null`): optional DTD. Eg. `{'ext': 'hello.dtd'}`
+ * `headless` (default: `false`): omit the XML header. Added in 0.4.3.
+
+`renderOpts`, `xmldec`,`doctype` and `headless` pass through to
+[xmlbuilder-js](https://github.com/oozcitak/xmlbuilder-js).
+
+Updating to new version
+=======================
+
+Version 0.2 changed the default parsing settings, but version 0.1.14 introduced
+the default settings for version 0.2, so these settings can be tried before the
+migration.
+
+```javascript
+var xml2js = require('xml2js');
+var parser = new xml2js.Parser(xml2js.defaults["0.2"]);
+```
+
+To get the 0.1 defaults in version 0.2 you can just use
+`xml2js.defaults["0.1"]` in the same place. This provides you with enough time
+to migrate to the saner way of parsing in xml2js 0.2. We try to make the
+migration as simple and gentle as possible, but some breakage cannot be
+avoided.
+
+So, what exactly did change and why? In 0.2 we changed some defaults to parse
+the XML in a more universal and sane way. So we disabled `normalize` and `trim`
+so xml2js does not cut out any text content. You can reenable this at will of
+course. A more important change is that we return the root tag in the resulting
+JavaScript structure via the `explicitRoot` setting, so you need to access the
+first element. This is useful for anybody who wants to know what the root node
+is and preserves more information. The last major change was to enable
+`explicitArray`, so everytime it is possible that one might embed more than one
+sub-tag into a tag, xml2js >= 0.2 returns an array even if the array just
+includes one element. This is useful when dealing with APIs that return
+variable amounts of subtags.
+
+Running tests, development
+==========================
+
+[![Build Status](https://secure.travis-ci.org/Leonidas-from-XIV/node-xml2js.png?branch=master)](https://travis-ci.org/Leonidas-from-XIV/node-xml2js)
+[![Dependency Status](https://david-dm.org/Leonidas-from-XIV/node-xml2js.png)](https://david-dm.org/Leonidas-from-XIV/node-xml2js)
+
+The development requirements are handled by npm, you just need to install them.
+We also have a number of unit tests, they can be run using `npm test` directly
+from the project root. This runs zap to discover all the tests and execute
+them.
+
+If you like to contribute, keep in mind that xml2js is written in CoffeeScript,
+so don't develop on the JavaScript files that are checked into the repository
+for convenience reasons. Also, please write some unit test to check your
+behaviour and if it is some user-facing thing, add some documentation to this
+README, so people will know it exists. Thanks in advance!
diff --git a/node_modules/xml2js/canon.xml b/node_modules/xml2js/canon.xml
new file mode 100644
index 000000000..f24ddd130
--- /dev/null
+++ b/node_modules/xml2js/canon.xml
@@ -0,0 +1,482 @@
+<GBSet>
+<GBSeq>
+ <GBSeq_locus>AF485783</GBSeq_locus>
+ <GBSeq_length>14758</GBSeq_length>
+ <GBSeq_strandedness>double</GBSeq_strandedness>
+ <GBSeq_moltype>DNA</GBSeq_moltype>
+ <GBSeq_topology>circular</GBSeq_topology>
+ <GBSeq_division>SYN</GBSeq_division>
+ <GBSeq_update-date>15-MAY-2003</GBSeq_update-date>
+ <GBSeq_create-date>21-MAR-2002</GBSeq_create-date>
+ <GBSeq_definition>Binary vector pBI121, complete sequence</GBSeq_definition>
+ <GBSeq_primary-accession>AF485783</GBSeq_primary-accession>
+ <GBSeq_accession-version>AF485783.1</GBSeq_accession-version>
+ <GBSeq_other-seqids>
+ <GBSeqid>gb|AF485783.1|</GBSeqid>
+ <GBSeqid>gi|19569229</GBSeqid>
+ </GBSeq_other-seqids>
+ <GBSeq_source>Binary vector pBI121</GBSeq_source>
+ <GBSeq_organism>Binary vector pBI121</GBSeq_organism>
+ <GBSeq_taxonomy>other sequences; artificial sequences; vectors</GBSeq_taxonomy>
+ <GBSeq_references>
+ <GBReference>
+ <GBReference_reference>1</GBReference_reference>
+ <GBReference_position>1..14758</GBReference_position>
+ <GBReference_authors>
+ <GBAuthor>Chen,P.Y.</GBAuthor>
+ <GBAuthor>Wang,C.K.</GBAuthor>
+ <GBAuthor>Soong,S.C.</GBAuthor>
+ <GBAuthor>To,K.Y.</GBAuthor>
+ </GBReference_authors>
+ <GBReference_title>Complete sequence of the binary vector pBI121 and its application in cloning T-DNA insertion from transgenic plants</GBReference_title>
+ <GBReference_journal>Mol. Breed. 11, 287-293 (2003)</GBReference_journal>
+ </GBReference>
+ <GBReference>
+ <GBReference_reference>2</GBReference_reference>
+ <GBReference_position>1..14758</GBReference_position>
+ <GBReference_authors>
+ <GBAuthor>To,K.Y.</GBAuthor>
+ </GBReference_authors>
+ <GBReference_title>Direct Submission</GBReference_title>
+ <GBReference_journal>Submitted (20-FEB-2002) Institute of BioAgricultural Sciences, Academia Sinica, Taipei 11529, Taiwan</GBReference_journal>
+ </GBReference>
+ </GBSeq_references>
+ <GBSeq_feature-table>
+ <GBFeature>
+ <GBFeature_key>source</GBFeature_key>
+ <GBFeature_location>1..14758</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>1</GBInterval_from>
+ <GBInterval_to>14758</GBInterval_to>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>organism</GBQualifier_name>
+ <GBQualifier_value>Binary vector pBI121</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>mol_type</GBQualifier_name>
+ <GBQualifier_value>genomic DNA</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>db_xref</GBQualifier_name>
+ <GBQualifier_value>taxon:189807</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>constructed using pB221 from Clontech Laboratories and Bin19 described in GenBank Accession Number U09365</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>misc_feature</GBFeature_key>
+ <GBFeature_location>complement(13..796)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>796</GBInterval_from>
+ <GBInterval_to>13</GBInterval_to>
+ <GBInterval_iscomp value="true"></GBInterval_iscomp>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>similar to traF in GenBank Accession Number X54459</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>rep_origin</GBFeature_key>
+ <GBFeature_location>complement(790..1168)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>1168</GBInterval_from>
+ <GBInterval_to>790</GBInterval_to>
+ <GBInterval_iscomp value="true"></GBInterval_iscomp>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>ColE1 ori; similar to sequence in GenBank Accession Number V00268</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>misc_feature</GBFeature_key>
+ <GBFeature_location>complement(1161..2344)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>2344</GBInterval_from>
+ <GBInterval_to>1161</GBInterval_to>
+ <GBInterval_iscomp value="true"></GBInterval_iscomp>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>similar to tetA in GenBank Accession Number X75761</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>misc_feature</GBFeature_key>
+ <GBFeature_location>complement(2454..2478)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>2478</GBInterval_from>
+ <GBInterval_to>2454</GBInterval_to>
+ <GBInterval_iscomp value="true"></GBInterval_iscomp>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>T-DNA right border</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>promoter</GBFeature_key>
+ <GBFeature_location>2519..2825</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>2519</GBInterval_from>
+ <GBInterval_to>2825</GBInterval_to>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>NOS</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>gene</GBFeature_key>
+ <GBFeature_location>2838..3632</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>2838</GBInterval_from>
+ <GBInterval_to>3632</GBInterval_to>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>gene</GBQualifier_name>
+ <GBQualifier_value>nptII</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>CDS</GBFeature_key>
+ <GBFeature_location>2838..3632</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>2838</GBInterval_from>
+ <GBInterval_to>3632</GBInterval_to>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>gene</GBQualifier_name>
+ <GBQualifier_value>nptII</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>codon_start</GBQualifier_name>
+ <GBQualifier_value>1</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>transl_table</GBQualifier_name>
+ <GBQualifier_value>1</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>product</GBQualifier_name>
+ <GBQualifier_value>neomycin phosphotransferase II</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>protein_id</GBQualifier_name>
+ <GBQualifier_value>AAL92039.1</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>db_xref</GBQualifier_name>
+ <GBQualifier_value>GI:19569230</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>translation</GBQualifier_name>
+ <GBQualifier_value>MIEQDGLHAGSPAAWVERLFGYDWAQQTIGCSDAAVFRLSAQGRPVLFVKTDLSGALNELQDEAARLSWLATTGVPCAAVLDVVTEAGRDWLLLGEVPGQDLLSSHLAPAEKVSIMADAMRRLHTLDPATCPFDHQAKHRIERARTRMEAGLVDQDDLDEEHQGLAPAELFARLKARMPDGDDLVVTHGDACLPNIMVENGRFSGFIDCGRLGVADRYQDIALATRDIAEELGGEWADRFLVLYGIAAPDSQRIAFYRLLDEFF</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>terminator</GBFeature_key>
+ <GBFeature_location>4022..4277</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>4022</GBInterval_from>
+ <GBInterval_to>4277</GBInterval_to>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>NOS</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>promoter</GBFeature_key>
+ <GBFeature_location>4974..5808</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>4974</GBInterval_from>
+ <GBInterval_to>5808</GBInterval_to>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>CaMV 35S</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>gene</GBFeature_key>
+ <GBFeature_location>5845..7656</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>5845</GBInterval_from>
+ <GBInterval_to>7656</GBInterval_to>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>gene</GBQualifier_name>
+ <GBQualifier_value>gusA</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>CDS</GBFeature_key>
+ <GBFeature_location>5845..7656</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>5845</GBInterval_from>
+ <GBInterval_to>7656</GBInterval_to>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>gene</GBQualifier_name>
+ <GBQualifier_value>gusA</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>GUS</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>codon_start</GBQualifier_name>
+ <GBQualifier_value>1</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>transl_table</GBQualifier_name>
+ <GBQualifier_value>1</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>product</GBQualifier_name>
+ <GBQualifier_value>beta-glucuronidase</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>protein_id</GBQualifier_name>
+ <GBQualifier_value>AAL92040.1</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>db_xref</GBQualifier_name>
+ <GBQualifier_value>GI:19569231</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>translation</GBQualifier_name>
+ <GBQualifier_value>MLRPVETPTREIKKLDGLWAFSLDRENCGIDQRWWESALQESRAIAVPGSFNDQFADADIRNYAGNVWYQREVFIPKGWAGQRIVLRFDAVTHYGKVWVNNQEVMEHQGGYTPFEADVTPYVIAGKSVRITVCVNNELNWQTIPPGMVITDENGKKKQSYFHDFFNYAGIHRSVMLYTTPNTWVDDITVVTHVAQDCNHASVDWQVVANGDVSVELRDADQQVVATGQGTSGTLQVVNPHLWQPGEGYLYELCVTAKSQTECDIYPLRVGIRSVAVKGEQFLINHKPFYFTGFGRHEDADLRGKGFDNVLMVHDHALMDWIGANSYRTSHYPYAEEMLDWADEHGIVVIDETAAVGFNLSLGIGFEAGNKPKELYSEEAVNGETQQAHLQAIKELIARDKNHPSVVMWSIANEPDTRPQGAREYFAPLAEATRKLDPTRPITCVNVMFCDAHTDTISDLFDVLCLNRYYGWYVQSGDLETAEKVLEKELLAWQEKLHQPIIITEYGVDTLAGLHSMYTDMWSEEYQCAWLDMYHRVFDRVSAVVGEQVWNFADFATSQGILRVGGNKKGIFTRDRKPKSAAFLLQKRWTGMNFGEKPQQGGKQ</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>terminator</GBFeature_key>
+ <GBFeature_location>7727..7979</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>7727</GBInterval_from>
+ <GBInterval_to>7979</GBInterval_to>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>NOS</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>misc_feature</GBFeature_key>
+ <GBFeature_location>complement(8621..8646)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>8646</GBInterval_from>
+ <GBInterval_to>8621</GBInterval_to>
+ <GBInterval_iscomp value="true"></GBInterval_iscomp>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>T-DNA left border</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>misc_feature</GBFeature_key>
+ <GBFeature_location>complement(9156..10198)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>10198</GBInterval_from>
+ <GBInterval_to>9156</GBInterval_to>
+ <GBInterval_iscomp value="true"></GBInterval_iscomp>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>similar to tetA in GenBank Accession Number L13842</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>misc_feature</GBFeature_key>
+ <GBFeature_location>complement(10199..11680)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>11680</GBInterval_from>
+ <GBInterval_to>10199</GBInterval_to>
+ <GBInterval_iscomp value="true"></GBInterval_iscomp>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>similar to trfA in GenBank Accession Number X00713</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>misc_feature</GBFeature_key>
+ <GBFeature_location>complement(11681..12673)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>12673</GBInterval_from>
+ <GBInterval_to>11681</GBInterval_to>
+ <GBInterval_iscomp value="true"></GBInterval_iscomp>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>similar to NPTIII gene in GenBank Accession Number V01547</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>misc_feature</GBFeature_key>
+ <GBFeature_location>complement(12674..13443)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>13443</GBInterval_from>
+ <GBInterval_to>12674</GBInterval_to>
+ <GBInterval_iscomp value="true"></GBInterval_iscomp>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>similar to transposable element IS1 in GenBank Accession Number X58999</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>misc_feature</GBFeature_key>
+ <GBFeature_location>complement(13444..13794)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>13794</GBInterval_from>
+ <GBInterval_to>13444</GBInterval_to>
+ <GBInterval_iscomp value="true"></GBInterval_iscomp>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>similarity to NPT III gene in GenBank Accession Number V01547</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>misc_feature</GBFeature_key>
+ <GBFeature_location>complement(13795..14066)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>14066</GBInterval_from>
+ <GBInterval_to>13795</GBInterval_to>
+ <GBInterval_iscomp value="true"></GBInterval_iscomp>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>similar to kilA in GenBank Accession Number M62846</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>rep_origin</GBFeature_key>
+ <GBFeature_location>complement(14141..14758)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>14758</GBInterval_from>
+ <GBInterval_to>14141</GBInterval_to>
+ <GBInterval_iscomp value="true"></GBInterval_iscomp>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>ori V; similar to sequence in GenBank Accession Number M20134</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ </GBSeq_feature-table>
+ <GBSeq_sequence>tgagcgtcgcaaaggcgctcggtcttgccttgctcgtcggtgatgtacttcaccagctccgcgaagtcgctcttcttgatggagcgcatggggacgtgcttggcaatcacgcgcaccccccggccgttttagcggctaaaaaagtcatggctctgccctcgggcggaccacgcccatcatgaccttgccaagctcgtcctgcttctcttcgatcttcgccagcagggcgaggatcgtggcatcaccgaaccgcgccgtgcgcgggtcgtcggtgagccagagtttcagcaggccgcccaggcggcccaggtcgccattgatgcgggccagctcgcggacgtgctcatagtccacgacgcccgtgattttgtagccctggccgacggccagcaggtaggccgacaggctcatgccggccgccgccgccttttcctcaatcgctcttcgttcgtctggaaggcagtacaccttgataggtgggctgcccttcctggttggcttggtttcatcagccatccgcttgccctcatctgttacgccggcggtagccggccagcctcgcagagcaggattcccgttgagcaccgccaggtgcgaataagggacagtgaagaaggaacacccgctcgcgggtgggcctacttcacctatcctgcccggctgacgccgttggatacaccaaggaaagtctacacgaaccctttggcaaaatcctgtatatcgtgcgaaaaaggatggatataccgaaaaaatcgctataatgaccccgaagcagggttatgcagcggaaaagcgccacgcttcccgaagggagaaaggcggacaggtatccggtaagcggcagggtcggaacaggagagcgcacgagggagcttccagggggaaacgcctggtatctttatagtcctgtcgggtttcgccacctctgacttgagcgtcgatttttgtgatgctcgtcaggggggcggagcctatggaaaaacgccagcaacgcggcctttttacggttcctggccttttgctggccttttgctcacatgttctttcctgcgttatcccctgattctgtggataaccgtattaccgcctttgagtgagctgataccgctcgccgcagccgaacgaccgagcgcagcgagtcagtgagcgaggaagcggaagagcgccagaaggccgccagagaggccgagcgcggccgtgaggcttggacgctagggcagggcatgaaaaagcccgtagcgggctgctacgggcgtctgacgcggtggaaagggggaggggatgttgtctacatggctctgctgtagtgagtgggttgcgctccggcagcggtcctgatcaatcgtcaccctttctcggtccttcaacgttcctgacaacgagcctccttttcgccaatccatcgacaatcaccgcgagtccctgctcgaacgctgcgtccggaccggcttcgtcgaaggcgtctatcgcggcccgcaacagcggcgagagcggagcctgttcaacggtgccgccgcgctcgccggcatcgctgtcgccggcctgctcctcaagcacggccccaacagtgaagtagctgattgtcatcagcgcattgacggcgtccccggccgaaaaacccgcctcgcagaggaagcgaagctgcgcgtcggccgtttccatctgcggtgcgcccggtcgcgtgccggcatggatgcgcgcgccatcgcggtaggcgagcagcgcctgcctgaagctgcgggcattcccgatcagaaatgagcgccagtcgtcgtcggctctcggcaccgaatgcgtatgattctccgccagcatggcttcggccagtgcgtcgagcagcgcccgcttgttcctgaagtgccagtaaagcgccggctgctgaacccccaaccgttccgccagtttgcgtgtcgtcagaccgtctacgccgacctcgttcaacaggtccagggcggcacggatcactgtattcggctgcaactttgtcatgcttgacactttatcactgataaacataatatgtccaccaacttatcagtgataaagaatccgcgcgttcaatcggaccagcggaggctggtccggaggccagacgtgaaacccaacatacccctgatcgtaattctgagcactgtcgcgctcgacgctgtcggcatcggcctgattatgccggtgctgccgggcctcctgcgcgatctggttcactcgaacgacgtcaccgcccactatggcattctgctggcgctgtatgcgttggtgcaatttgcctgcgcacctgtgctgggcgcgctgtcggatcgtttcgggcggcggccaatcttgctcgtctcgctggccggcgccagatctggggaaccctgtggttggcatgcacatacaaatggacgaacggataaaccttttcacgcccttttaaatatccgattattctaataaacgctcttttctcttaggtttacccgccaatatatcctgtcaaacactgatagtttaaactgaaggcgggaaacgacaatctgatcatgagcggagaattaagggagtcacgttatgacccccgccgatgacgcgggacaagccgttttacgtttggaactgacagaaccgcaacgttgaaggagccactcagccgcgggtttctggagtttaatgagctaagcacatacgtcagaaaccattattgcgcgttcaaaagtcgcctaaggtcactatcagctagcaaatatttcttgtcaaaaatgctccactgacgttccataaattcccctcggtatccaattagagtctcatattcactctcaatccaaataatctgcaccggatctggatcgtttcgcatgattgaacaagatggattgcacgcaggttctccggccgcttgggtggagaggctattcggctatgactgggcacaacagacaatcggctgctctgatgccgccgtgttccggctgtcagcgcaggggcgcccggttctttttgtcaagaccgacctgtccggtgccctgaatgaactgcaggacgaggcagcgcggctatcgtggctggccacgacgggcgttccttgcgcagctgtgctcgacgttgtcactgaagcgggaagggactggctgctattgggcgaagtgccggggcaggatctcctgtcatctcaccttgctcctgccgagaaagtatccatcatggctgatgcaatgcggcggctgcatacgcttgatccggctacctgcccattcgaccaccaagcgaaacatcgcatcgagcgagcacgtactcggatggaagccggtcttgtcgatcaggatgatctggacgaagagcatcaggggctcgcgccagccgaactgttcgccaggctcaaggcgcgcatgcccgacggcgatgatctcgtcgtgacccatggcgatgcctgcttgccgaatatcatggtggaaaatggccgcttttctggattcatcgactgtggccggctgggtgtggcggaccgctatcaggacatagcgttggctacccgtgatattgctgaagagcttggcggcgaatgggctgaccgcttcctcgtgctttacggtatcgccgctcccgattcgcagcgcatcgccttctatcgccttcttgacgagttcttctgagcgggactctggggttcgaaatgaccgaccaagcgacgcccaacctgccatcacgagatttcgattccaccgccgccttctatgaaaggttgggcttcggaatcgttttccgggacgccggctggatgatcctccagcgcggggatctcatgctggagttcttcgcccacgggatctctgcggaacaggcggtcgaaggtgccgatatcattacgacagcaacggccgacaagcacaacgccacgatcctgagcgacaatatgatcgggcccggcgtccacatcaacggcgtcggcggcgactgcccaggcaagaccgagatgcaccgcgatatcttgctgcgttcggatattttcgtggagttcccgccacagacccggatgatccccgatcgttcaaacatttggcaataaagtttcttaagattgaatcctgttgccggtcttgcgatgattatcatataatttctgttgaattacgttaagcatgtaataattaacatgtaatgcatgacgttatttatgagatgggtttttatgattagagtcccgcaattatacatttaatacgcgatagaaaacaaaatatagcgcgcaaactaggataaattatcgcgcgcggtgtcatctatgttactagatcgggcctcctgtcaatgctggcggcggctctggtggtggttctggtggcggctctgagggtggtggctctgagggtggcggttctgagggtggcggctctgagggaggcggttccggtggtggctctggttccggtgattttgattatgaaaagatggcaaacgctaataagggggctatgaccgaaaatgccgatgaaaacgcgctacagtctgacgctaaaggcaaacttgattctgtcgctactgattacggtgctgctatcgatggtttcattggtgacgtttccggccttgctaatggtaatggtgctactggtgattttgctggctctaattcccaaatggctcaagtcggtgacggtgataattcacctttaatgaataatttccgtcaatatttaccttccctccctcaatcggttgaatgtcgcccttttgtctttggcccaatacgcaaaccgcctctccccgcgcgttggccgattcattaatgcagctggcacgacaggtttcccgactggaaagcgggcagtgagcgcaacgcaattaatgtgagttagctcactcattaggcaccccaggctttacactttatgcttccggctcgtatgttgtgtggaattgtgagcggataacaatttcacacaggaaacagctatgaccatgattacgccaagcttgcatgcctgcaggtccccagattagccttttcaatttcagaaagaatgctaacccacagatggttagagaggcttacgcagcaggtctcatcaagacgatctacccgagcaataatctccaggaaatcaaataccttcccaagaaggttaaagatgcagtcaaaagattcaggactaactgcatcaagaacacagagaaagatatatttctcaagatcagaagtactattccagtatggacgattcaaggcttgcttcacaaaccaaggcaagtaatagagattggagtctctaaaaaggtagttcccactgaatcaaaggccatggagtcaaagattcaaatagaggacctaacagaactcgccgtaaagactggcgaacagttcatacagagtctcttacgactcaatgacaagaagaaaatcttcgtcaacatggtggagcacgacacacttgtctactccaaaaatatcaaagatacagtctcagaagaccaaagggcaattgagacttttcaacaaagggtaatatccggaaacctcctcggattccattgcccagctatctgtcactttattgtgaagatagtggaaaaggaaggtggctcctacaaatgccatcattgcgataaaggaaaggccatcgttgaagatgcctctgccgacagtggtcccaaagatggacccccacccacgaggagcatcgtggaaaaagaagacgttccaaccacgtcttcaaagcaagtggattgatgtgatatctccactgacgtaagggatgacgcacaatcccactatccttcgcaagacccttcctctatataaggaagttcatttcatttggagagaacacgggggactctagaggatccccgggtggtcagtcccttatgttacgtcctgtagaaaccccaacccgtgaaatcaaaaaactcgacggcctgtgggcattcagtctggatcgcgaaaactgtggaattgatcagcgttggtgggaaagcgcgttacaagaaagccgggcaattgctgtgccaggcagttttaacgatcagttcgccgatgcagatattcgtaattatgcgggcaacgtctggtatcagcgcgaagtctttataccgaaaggttgggcaggccagcgtatcgtgctgcgtttcgatgcggtcactcattacggcaaagtgtgggtcaataatcaggaagtgatggagcatcagggcggctatacgccatttgaagccgatgtcacgccgtatgttattgccgggaaaagtgtacgtatcaccgtttgtgtgaacaacgaactgaactggcagactatcccgccgggaatggtgattaccgacgaaaacggcaagaaaaagcagtcttacttccatgatttctttaactatgccggaatccatcgcagcgtaatgctctacaccacgccgaacacctgggtggacgatatcaccgtggtgacgcatgtcgcgcaagactgtaaccacgcgtctgttgactggcaggtggtggccaatggtgatgtcagcgttgaactgcgtgatgcggatcaacaggtggttgcaactggacaaggcactagcgggactttgcaagtggtgaatccgcacctctggcaaccgggtgaaggttatctctatgaactgtgcgtcacagccaaaagccagacagagtgtgatatctacccgcttcgcgtcggcatccggtcagtggcagtgaagggcgaacagttcctgattaaccacaaaccgttctactttactggctttggtcgtcatgaagatgcggacttgcgtggcaaaggattcgataacgtgctgatggtgcacgaccacgcattaatggactggattggggccaactcctaccgtacctcgcattacccttacgctgaagagatgctcgactgggcagatgaacatggcatcgtggtgattgatgaaactgctgctgtcggctttaacctctctttaggcattggtttcgaagcgggcaacaagccgaaagaactgtacagcgaagaggcagtcaacggggaaactcagcaagcgcacttacaggcgattaaagagctgatagcgcgtgacaaaaaccacccaagcgtggtgatgtggagtattgccaacgaaccggatacccgtccgcaaggtgcacgggaatatttcgcgccactggcggaagcaacgcgtaaactcgacccgacgcgtccgatcacctgcgtcaatgtaatgttctgcgacgctcacaccgataccatcagcgatctctttgatgtgctgtgcctgaaccgttattacggatggtatgtccaaagcggcgatttggaaacggcagagaaggtactggaaaaagaacttctggcctggcaggagaaactgcatcagccgattatcatcaccgaatacggcgtggatacgttagccgggctgcactcaatgtacaccgacatgtggagtgaagagtatcagtgtgcatggctggatatgtatcaccgcgtctttgatcgcgtcagcgccgtcgtcggtgaacaggtatggaatttcgccgattttgcgacctcgcaaggcatattgcgcgttggcggtaacaagaaagggatcttcactcgcgaccgcaaaccgaagtcggcggcttttctgctgcaaaaacgctggactggcatgaacttcggtgaaaaaccgcagcagggaggcaaacaatgaatcaacaactctcctggcgcaccatcgtcggctacagcctcgggaattgctaccgagctcgaatttccccgatcgttcaaacatttggcaataaagtttcttaagattgaatcctgttgccggtcttgcgatgattatcatataatttctgttgaattacgttaagcatgtaataattaacatgtaatgcatgacgttatttatgagatgggtttttatgattagagtcccgcaattatacatttaatacgcgatagaaaacaaaatatagcgcgcaaactaggataaattatcgcgcgcggtgtcatctatgttactagatcgggaattcactggccgtcgttttacaacgtcgtgactgggaaaaccctggcgttacccaacttaatcgccttgcagcacatccccctttcgccagctggcgtaatagcgaagaggcccgcaccgatcgcccttcccaacagttgcgcagcctgaatggcgcccgctcctttcgctttcttcccttcctttctcgccacgttcgccggctttccccgtcaagctctaaatcgggggctccctttagggttccgatttagtgctttacggcacctcgaccccaaaaaacttgatttgggtgatggttcacgtagtgggccatcgccctgatagacggtttttcgccctttgacgttggagtccacgttctttaatagtggactcttgttccaaactggaacaacactcaaccctatctcgggctattcttttgatttataagggattttgccgatttcggaaccaccatcaaacaggattttcgcctgctggggcaaaccagcgtggaccgcttgctgcaactctctcagggccaggcggtgaagggcaatcagctgttgcccgtctcactggtgaaaagaaaaaccaccccagtacattaaaaacgtccgcaatgtgttattaagttgtctaagcgtcaatttgtttacaccacaatatatcctgccaccagccagccaacagctccccgaccggcagctcggcacaaaatcaccactcgatacaggcagcccatcagtccgggacggcgtcagcgggagagccgttgtaaggcggcagactttgctcatgttaccgatgctattcggaagaacggcaactaagctgccgggtttgaaacacggatgatctcgcggagggtagcatgttgattgtaacgatgacagagcgttgctgcctgtgatcaaatatcatctccctcgcagagatccgaattatcagccttcttattcatttctcgcttaaccgtgacaggctgtcgatcttgagaactatgccgacataataggaaatcgctggataaagccgctgaggaagctgagtggcgctatttctttagaagtgaacgttgacgatatcaactcccctatccattgctcaccgaatggtacaggtcggggacccgaagttccgactgtcggcctgatgcatccccggctgatcgaccccagatctggggctgagaaagcccagtaaggaaacaactgtaggttcgagtcgcgagatcccccggaaccaaaggaagtaggttaaacccgctccgatcaggccgagccacgccaggccgagaacattggttcctgtaggcatcgggattggcggatcaaacactaaagctactggaacgagcagaagtcctccggccgccagttgccaggcggtaaaggtgagcagaggcacgggaggttgccacttgcgggtcagcacggttccgaacgccatggaaaccgcccccgccaggcccgctgcgacgccgacaggatctagcgctgcgtttggtgtcaacaccaacagcgccacgcccgcagttccgcaaatagcccccaggaccgccatcaatcgtatcgggctacctagcagagcggcagagatgaacacgaccatcagcggctgcacagcgcctaccgtcgccgcgaccccgcccggcaggcggtagaccgaaataaacaacaagctccagaatagcgaaatattaagtgcgccgaggatgaagatgcgcatccaccagattcccgttggaatctgtcggacgatcatcacgagcaataaacccgccggcaacgcccgcagcagcataccggcgacccctcggcctcgctgttcgggctccacgaaaacgccggacagatgcgccttgtgagcgtccttggggccgtcctcctgtttgaagaccgacagcccaatgatctcgccgtcgatgtaggcgccgaatgccacggcatctcgcaaccgttcagcgaacgcctccatgggctttttctcctcgtgctcgtaaacggacccgaacatctctggagctttcttcagggccgacaatcggatctcgcggaaatcctgcacgtcggccgctccaagccgtcgaatctgagccttaatcacaattgtcaattttaatcctctgtttatcggcagttcgtagagcgcgccgtgcgtcccgagcgatactgagcgaagcaagtgcgtcgagcagtgcccgcttgttcctgaaatgccagtaaagcgctggctgctgaacccccagccggaactgaccccacaaggccctagcgtttgcaatgcaccaggtcatcattgacccaggcgtgttccaccaggccgctgcctcgcaactcttcgcaggcttcgccgacctgctcgcgccacttcttcacgcgggtggaatccgatccgcacatgaggcggaaggtttccagcttgagcgggtacggctcccggtgcgagctgaaatagtcgaacatccgtcgggccgtcggcgacagcttgcggtacttctcccatatgaatttcgtgtagtggtcgccagcaaacagcacgacgatttcctcgtcgatcaggacctggcaacgggacgttttcttgccacggtccaggacgcggaagcggtgcagcagcgacaccgattccaggtgcccaacgcggtcggacgtgaagcccatcgccgtcgcctgtaggcgcgacaggcattcctcggccttcgtgtaataccggccattgatcgaccagcccaggtcctggcaaagctcgtagaacgtgaaggtgatcggctcgccgataggggtgcgcttcgcgtactccaacacctgctgccacaccagttcgtcatcgtcggcccgcagctcgacgccggtgtaggtgatcttcacgtccttgttgacgtggaaaatgaccttgttttgcagcgcctcgcgcgggattttcttgttgcgcgtggtgaacagggcagagcgggccgtgtcgtttggcatcgctcgcatcgtgtccggccacggcgcaatatcgaacaaggaaagctgcatttccttgatctgctgcttcgtgtgtttcagcaacgcggcctgcttggcctcgctgacctgttttgccaggtcctcgccggcggtttttcgcttcttggtcgtcatagttcctcgcgtgtcgatggtcatcgacttcgccaaacctgccgcctcctgttcgagacgacgcgaacgctccacggcggccgatggcgcgggcagggcagggggagccagttgcacgctgtcgcgctcgatcttggccgtagcttgctggaccatcgagccgacggactggaaggtttcgcggggcgcacgcatgacggtgcggcttgcgatggtttcggcatcctcggcggaaaaccccgcgtcgatcagttcttgcctgtatgccttccggtcaaacgtccgattcattcaccctccttgcgggattgccccgactcacgccggggcaatgtgcccttattcctgatttgacccgcctggtgccttggtgtccagataatccaccttatcggcaatgaagtcggtcccgtagaccgtctggccgtccttctcgtacttggtattccgaatcttgccctgcacgaataccagcgaccccttgcccaaatacttgccgtgggcctcggcctgagagccaaaacacttgatgcggaagaagtcggtgcgctcctgcttgtcgccggcatcgttgcgccacatctaggtactaaaacaattcatccagtaaaatataatattttattttctcccaatcaggcttgatccccagtaagtcaaaaaatagctcgacatactgttcttccccgatatcctccctgatcgaccggacgcagaaggcaatgtcataccacttgtccgccctgccgcttctcccaagatcaataaagccacttactttgccatctttcacaaagatgttgctgtctcccaggtcgccgtgggaaaagacaagttcctcttcgggcttttccgtctttaaaaaatcatacagctcgcgcggatctttaaatggagtgtcttcttcccagttttcgcaatccacatcggccagatcgttattcagtaagtaatccaattcggctaagcggctgtctaagctattcgtatagggacaatccgatatgtcgatggagtgaaagagcctgatgcactccgcatacagctcgataatcttttcagggctttgttcatcttcatactcttccgagcaaaggacgccatcggcctcactcatgagcagattgctccagccatcatgccgttcaaagtgcaggacctttggaacaggcagctttccttccagccatagcatcatgtccttttcccgttccacatcataggtggtccctttataccggctgtccgtcatttttaaatataggttttcattttctcccaccagcttatataccttagcaggagacattccttccgtatcttttacgcagcggtatttttcgatcagttttttcaattccggtgatattctcattttagccatttattatttccttcctcttttctacagtatttaaagataccccaagaagctaattataacaagacgaactccaattcactgttccttgcattctaaaaccttaaataccagaaaacagctttttcaaagttgttttcaaagttggcgtataacatagtatcgacggagccgattttgaaaccacaattatgggtgatgctgccaacttactgatttagtgtatgatggtgtttttgaggtgctccagtggcttctgtgtctatcagctgtccctcctgttcagctactgacggggtggtgcgtaacggcaaaagcaccgccggacatcagcgctatctctgctctcactgccgtaaaacatggcaactgcagttcacttacaccgcttctcaacccggtacgcaccagaaaatcattgatatggccatgaatggcgttggatgccgggcaacagcccgcattatgggcgttggcctcaacacgattttacgtcacttaaaaaactcaggccgcagtcggtaacctcgcgcatacagccgggcagtgacgtcatcgtctgcgcggaaatggacgaacagtggggctatgtcggggctaaatcgcgccagcgctggctgttttacgcgtatgacagtctccggaagacggttgttgcgcacgtattcggtgaacgcactatggcgacgctggggcgtcttatgagcctgctgtcaccctttgacgtggtgatatggatgacggatggctggccgctgtatgaatcccgcctgaagggaaagctgcacgtaatcagcaagcgatatacgcagcgaattgagcggcataacctgaatctgaggcagcacctggcacggctgggacggaagtcgctgtcgttctcaaaatcggtggagctgcatgacaaagtcatcgggcattatctgaacataaaacactatcaataagttggagtcattacccaattatgatagaatttacaagctataaggttattgtcctgggtttcaagcattagtccatgcaagtttttatgctttgcccattctatagatatattgataagcgcgctgcctatgccttgccccctgaaatccttacatacggcgatatcttctatataaaagatatattatcttatcagtattgtcaatatattcaaggcaatctgcctcctcatcctcttcatcctcttcgtcttggtagctttttaaatatggcgcttcatagagtaattctgtaaaggtccaattctcgttttcatacctcggtataatcttacctatcacctcaaatggttcgctgggtttatcgcacccccgaacacgagcacggcacccgcgaccactatgccaagaatgcccaaggtaaaaattgccggccccgccatgaagtccgtgaatgccccgacggccgaagtgaagggcaggccgccacccaggccgccgccctcactgcccggcacctggtcgctgaatgtcgatgccagcacctgcggcacgtcaatgcttccgggcgtcgcgctcgggctgatcgcccatcccgttactgccccgatcccggcaatggcaaggactgccagcgctgccatttttggggtgaggccgttcgcggccgaggggcgcagcccctggggggatgggaggcccgcgttagcgggccgggagggttcgagaagggggggcaccccccttcggcgtgcgcggtcacgcgcacagggcgcagccctggttaaaaacaaggtttataaatattggtttaaaagcaggttaaaagacaggttagcggtggccgaaaaacgggcggaaacccttgcaaatgctggattttctgcctgtggacagcccctcaaatgtcaataggtgcgcccctcatctgtcagcactctgcccctcaagtgtcaaggatcgcgcccctcatctgtcagtagtcgcgcccctcaagtgtcaataccgcagggcacttatccccaggcttgtccacatcatctgtgggaaactcgcgtaaaatcaggcgttttcgccgatttgcgaggctggccagctccacgtcgccggccgaaatcgagcctgcccctcatctgtcaacgccgcgccgggtgagtcggcccctcaagtgtcaacgtccgcccctcatctgtcagtgagggccaagttttccgcgaggtatccacaacgccggcggccgcggtgtctcgcacacggcttcgacggcgtttctggcgcgtttgcagggccatagacggccgccagcccagcggcgagggcaaccagcccgg</GBSeq_sequence>
+</GBSeq>
+
+</GBSet> \ No newline at end of file
diff --git a/node_modules/xml2js/incompat.coffee b/node_modules/xml2js/incompat.coffee
new file mode 100644
index 000000000..553396567
--- /dev/null
+++ b/node_modules/xml2js/incompat.coffee
@@ -0,0 +1,5 @@
+{parseString} = require './lib/xml2js'
+xml = '<outline htmlUrl="futurity.org" text="Futurity.org" title="Futurity.org" type="rss" xmlUrl="http://www.futurity.org/feed/"/>'
+parseString xml, (err, result) ->
+ console.dir result
+
diff --git a/node_modules/xml2js/incompat2.js b/node_modules/xml2js/incompat2.js
new file mode 100644
index 000000000..31cfbc82c
--- /dev/null
+++ b/node_modules/xml2js/incompat2.js
@@ -0,0 +1,7 @@
+var xml2js = require('xml2js');
+var parser = new xml2js.Parser({
+ mergeAttrs: true
+});
+parser.parseString('<outline xmlUrl="http://www.futurity.org/feed/"/>', function (err, result) {
+ console.dir(result);
+});
diff --git a/node_modules/xml2js/lib/bom.js b/node_modules/xml2js/lib/bom.js
new file mode 100644
index 000000000..d7f226edc
--- /dev/null
+++ b/node_modules/xml2js/lib/bom.js
@@ -0,0 +1,15 @@
+// Generated by CoffeeScript 1.7.1
+(function() {
+ var xml2js;
+
+ xml2js = require('../lib/xml2js');
+
+ exports.stripBOM = function(str) {
+ if (str[0] === '\uFEFF') {
+ return str.substring(1);
+ } else {
+ return str;
+ }
+ };
+
+}).call(this);
diff --git a/node_modules/xml2js/lib/processors.js b/node_modules/xml2js/lib/processors.js
new file mode 100644
index 000000000..aeadaef35
--- /dev/null
+++ b/node_modules/xml2js/lib/processors.js
@@ -0,0 +1,19 @@
+// Generated by CoffeeScript 1.7.1
+(function() {
+ var prefixMatch;
+
+ prefixMatch = new RegExp(/(?!xmlns)^.*:/);
+
+ exports.normalize = function(str) {
+ return str.toLowerCase();
+ };
+
+ exports.firstCharLowerCase = function(str) {
+ return str.charAt(0).toLowerCase() + str.slice(1);
+ };
+
+ exports.stripPrefix = function(str) {
+ return str.replace(prefixMatch, '');
+ };
+
+}).call(this);
diff --git a/node_modules/xml2js/lib/xml2js.js b/node_modules/xml2js/lib/xml2js.js
new file mode 100644
index 000000000..7c1cad319
--- /dev/null
+++ b/node_modules/xml2js/lib/xml2js.js
@@ -0,0 +1,436 @@
+// Generated by CoffeeScript 1.7.1
+(function() {
+ var bom, builder, events, isEmpty, processName, processors, sax,
+ __hasProp = {}.hasOwnProperty,
+ __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
+
+ sax = require('sax');
+
+ events = require('events');
+
+ builder = require('xmlbuilder');
+
+ bom = require('./bom');
+
+ processors = require('./processors');
+
+ isEmpty = function(thing) {
+ return typeof thing === "object" && (thing != null) && Object.keys(thing).length === 0;
+ };
+
+ processName = function(processors, processedName) {
+ var process, _i, _len;
+ for (_i = 0, _len = processors.length; _i < _len; _i++) {
+ process = processors[_i];
+ processedName = process(processedName);
+ }
+ return processedName;
+ };
+
+ exports.processors = processors;
+
+ exports.defaults = {
+ "0.1": {
+ explicitCharkey: false,
+ trim: true,
+ normalize: true,
+ normalizeTags: false,
+ attrkey: "@",
+ charkey: "#",
+ explicitArray: false,
+ ignoreAttrs: false,
+ mergeAttrs: false,
+ explicitRoot: false,
+ validator: null,
+ xmlns: false,
+ explicitChildren: false,
+ childkey: '@@',
+ charsAsChildren: false,
+ async: false,
+ strict: true,
+ attrNameProcessors: null,
+ tagNameProcessors: null
+ },
+ "0.2": {
+ explicitCharkey: false,
+ trim: false,
+ normalize: false,
+ normalizeTags: false,
+ attrkey: "$",
+ charkey: "_",
+ explicitArray: true,
+ ignoreAttrs: false,
+ mergeAttrs: false,
+ explicitRoot: true,
+ validator: null,
+ xmlns: false,
+ explicitChildren: false,
+ childkey: '$$',
+ charsAsChildren: false,
+ async: false,
+ strict: true,
+ attrNameProcessors: null,
+ tagNameProcessors: null,
+ rootName: 'root',
+ xmldec: {
+ 'version': '1.0',
+ 'encoding': 'UTF-8',
+ 'standalone': true
+ },
+ doctype: null,
+ renderOpts: {
+ 'pretty': true,
+ 'indent': ' ',
+ 'newline': '\n'
+ },
+ headless: false
+ }
+ };
+
+ exports.ValidationError = (function(_super) {
+ __extends(ValidationError, _super);
+
+ function ValidationError(message) {
+ this.message = message;
+ }
+
+ return ValidationError;
+
+ })(Error);
+
+ exports.Builder = (function() {
+ function Builder(opts) {
+ var key, value, _ref;
+ this.options = {};
+ _ref = exports.defaults["0.2"];
+ for (key in _ref) {
+ if (!__hasProp.call(_ref, key)) continue;
+ value = _ref[key];
+ this.options[key] = value;
+ }
+ for (key in opts) {
+ if (!__hasProp.call(opts, key)) continue;
+ value = opts[key];
+ this.options[key] = value;
+ }
+ }
+
+ Builder.prototype.buildObject = function(rootObj) {
+ var attrkey, charkey, render, rootElement, rootName;
+ attrkey = this.options.attrkey;
+ charkey = this.options.charkey;
+ if ((Object.keys(rootObj).length === 1) && (this.options.rootName === exports.defaults['0.2'].rootName)) {
+ rootName = Object.keys(rootObj)[0];
+ rootObj = rootObj[rootName];
+ } else {
+ rootName = this.options.rootName;
+ }
+ render = function(element, obj) {
+ var attr, child, entry, index, key, value, _ref, _ref1;
+ if (typeof obj !== 'object') {
+ element.txt(obj);
+ } else {
+ for (key in obj) {
+ if (!__hasProp.call(obj, key)) continue;
+ child = obj[key];
+ if (key === attrkey) {
+ if (typeof child === "object") {
+ for (attr in child) {
+ value = child[attr];
+ element = element.att(attr, value);
+ }
+ }
+ } else if (key === charkey) {
+ element = element.txt(child);
+ } else if (typeof child === 'object' && ((child != null ? child.constructor : void 0) != null) && ((child != null ? (_ref = child.constructor) != null ? _ref.name : void 0 : void 0) != null) && (child != null ? (_ref1 = child.constructor) != null ? _ref1.name : void 0 : void 0) === 'Array') {
+ for (index in child) {
+ if (!__hasProp.call(child, index)) continue;
+ entry = child[index];
+ if (typeof entry === 'string') {
+ element = element.ele(key, entry).up();
+ } else {
+ element = arguments.callee(element.ele(key), entry).up();
+ }
+ }
+ } else if (typeof child === "object") {
+ element = arguments.callee(element.ele(key), child).up();
+ } else {
+ element = element.ele(key, child.toString()).up();
+ }
+ }
+ }
+ return element;
+ };
+ rootElement = builder.create(rootName, this.options.xmldec, this.options.doctype, {
+ headless: this.options.headless
+ });
+ return render(rootElement, rootObj).end(this.options.renderOpts);
+ };
+
+ return Builder;
+
+ })();
+
+ exports.Parser = (function(_super) {
+ __extends(Parser, _super);
+
+ function Parser(opts) {
+ this.parseString = __bind(this.parseString, this);
+ this.reset = __bind(this.reset, this);
+ this.assignOrPush = __bind(this.assignOrPush, this);
+ var key, value, _ref;
+ if (!(this instanceof exports.Parser)) {
+ return new exports.Parser(opts);
+ }
+ this.options = {};
+ _ref = exports.defaults["0.2"];
+ for (key in _ref) {
+ if (!__hasProp.call(_ref, key)) continue;
+ value = _ref[key];
+ this.options[key] = value;
+ }
+ for (key in opts) {
+ if (!__hasProp.call(opts, key)) continue;
+ value = opts[key];
+ this.options[key] = value;
+ }
+ if (this.options.xmlns) {
+ this.options.xmlnskey = this.options.attrkey + "ns";
+ }
+ if (this.options.normalizeTags) {
+ if (!this.options.tagNameProcessors) {
+ this.options.tagNameProcessors = [];
+ }
+ this.options.tagNameProcessors.unshift(processors.normalize);
+ }
+ this.reset();
+ }
+
+ Parser.prototype.assignOrPush = function(obj, key, newValue) {
+ if (!(key in obj)) {
+ if (!this.options.explicitArray) {
+ return obj[key] = newValue;
+ } else {
+ return obj[key] = [newValue];
+ }
+ } else {
+ if (!(obj[key] instanceof Array)) {
+ obj[key] = [obj[key]];
+ }
+ return obj[key].push(newValue);
+ }
+ };
+
+ Parser.prototype.reset = function() {
+ var attrkey, charkey, ontext, stack;
+ this.removeAllListeners();
+ this.saxParser = sax.parser(this.options.strict, {
+ trim: false,
+ normalize: false,
+ xmlns: this.options.xmlns
+ });
+ this.saxParser.errThrown = false;
+ this.saxParser.onerror = (function(_this) {
+ return function(error) {
+ _this.saxParser.resume();
+ if (!_this.saxParser.errThrown) {
+ _this.saxParser.errThrown = true;
+ return _this.emit("error", error);
+ }
+ };
+ })(this);
+ this.saxParser.ended = false;
+ this.EXPLICIT_CHARKEY = this.options.explicitCharkey;
+ this.resultObject = null;
+ stack = [];
+ attrkey = this.options.attrkey;
+ charkey = this.options.charkey;
+ this.saxParser.onopentag = (function(_this) {
+ return function(node) {
+ var key, newValue, obj, processedKey, _ref;
+ obj = {};
+ obj[charkey] = "";
+ if (!_this.options.ignoreAttrs) {
+ _ref = node.attributes;
+ for (key in _ref) {
+ if (!__hasProp.call(_ref, key)) continue;
+ if (!(attrkey in obj) && !_this.options.mergeAttrs) {
+ obj[attrkey] = {};
+ }
+ newValue = node.attributes[key];
+ processedKey = _this.options.attrNameProcessors ? processName(_this.options.attrNameProcessors, key) : key;
+ if (_this.options.mergeAttrs) {
+ _this.assignOrPush(obj, processedKey, newValue);
+ } else {
+ obj[attrkey][processedKey] = newValue;
+ }
+ }
+ }
+ obj["#name"] = _this.options.tagNameProcessors ? processName(_this.options.tagNameProcessors, node.name) : node.name;
+ if (_this.options.xmlns) {
+ obj[_this.options.xmlnskey] = {
+ uri: node.uri,
+ local: node.local
+ };
+ }
+ return stack.push(obj);
+ };
+ })(this);
+ this.saxParser.onclosetag = (function(_this) {
+ return function() {
+ var cdata, emptyStr, err, node, nodeName, obj, old, s, xpath;
+ obj = stack.pop();
+ nodeName = obj["#name"];
+ delete obj["#name"];
+ cdata = obj.cdata;
+ delete obj.cdata;
+ s = stack[stack.length - 1];
+ if (obj[charkey].match(/^\s*$/) && !cdata) {
+ emptyStr = obj[charkey];
+ delete obj[charkey];
+ } else {
+ if (_this.options.trim) {
+ obj[charkey] = obj[charkey].trim();
+ }
+ if (_this.options.normalize) {
+ obj[charkey] = obj[charkey].replace(/\s{2,}/g, " ").trim();
+ }
+ if (Object.keys(obj).length === 1 && charkey in obj && !_this.EXPLICIT_CHARKEY) {
+ obj = obj[charkey];
+ }
+ }
+ if (isEmpty(obj)) {
+ obj = _this.options.emptyTag !== void 0 ? _this.options.emptyTag : emptyStr;
+ }
+ if (_this.options.validator != null) {
+ xpath = "/" + ((function() {
+ var _i, _len, _results;
+ _results = [];
+ for (_i = 0, _len = stack.length; _i < _len; _i++) {
+ node = stack[_i];
+ _results.push(node["#name"]);
+ }
+ return _results;
+ })()).concat(nodeName).join("/");
+ try {
+ obj = _this.options.validator(xpath, s && s[nodeName], obj);
+ } catch (_error) {
+ err = _error;
+ _this.emit("error", err);
+ }
+ }
+ if (_this.options.explicitChildren && !_this.options.mergeAttrs && typeof obj === 'object') {
+ node = {};
+ if (_this.options.attrkey in obj) {
+ node[_this.options.attrkey] = obj[_this.options.attrkey];
+ delete obj[_this.options.attrkey];
+ }
+ if (!_this.options.charsAsChildren && _this.options.charkey in obj) {
+ node[_this.options.charkey] = obj[_this.options.charkey];
+ delete obj[_this.options.charkey];
+ }
+ if (Object.getOwnPropertyNames(obj).length > 0) {
+ node[_this.options.childkey] = obj;
+ }
+ obj = node;
+ }
+ if (stack.length > 0) {
+ return _this.assignOrPush(s, nodeName, obj);
+ } else {
+ if (_this.options.explicitRoot) {
+ old = obj;
+ obj = {};
+ obj[nodeName] = old;
+ }
+ _this.resultObject = obj;
+ _this.saxParser.ended = true;
+ return _this.emit("end", _this.resultObject);
+ }
+ };
+ })(this);
+ ontext = (function(_this) {
+ return function(text) {
+ var s;
+ s = stack[stack.length - 1];
+ if (s) {
+ s[charkey] += text;
+ return s;
+ }
+ };
+ })(this);
+ this.saxParser.ontext = ontext;
+ return this.saxParser.oncdata = (function(_this) {
+ return function(text) {
+ var s;
+ s = ontext(text);
+ if (s) {
+ return s.cdata = true;
+ }
+ };
+ })(this);
+ };
+
+ Parser.prototype.parseString = function(str, cb) {
+ var err;
+ if ((cb != null) && typeof cb === "function") {
+ this.on("end", function(result) {
+ this.reset();
+ if (this.options.async) {
+ return process.nextTick(function() {
+ return cb(null, result);
+ });
+ } else {
+ return cb(null, result);
+ }
+ });
+ this.on("error", function(err) {
+ this.reset();
+ if (this.options.async) {
+ return process.nextTick(function() {
+ return cb(err);
+ });
+ } else {
+ return cb(err);
+ }
+ });
+ }
+ if (str.toString().trim() === '') {
+ this.emit("end", null);
+ return true;
+ }
+ try {
+ return this.saxParser.write(bom.stripBOM(str.toString())).close();
+ } catch (_error) {
+ err = _error;
+ if (!(this.saxParser.errThrown || this.saxParser.ended)) {
+ this.emit('error', err);
+ return this.saxParser.errThrown = true;
+ }
+ }
+ };
+
+ return Parser;
+
+ })(events.EventEmitter);
+
+ exports.parseString = function(str, a, b) {
+ var cb, options, parser;
+ if (b != null) {
+ if (typeof b === 'function') {
+ cb = b;
+ }
+ if (typeof a === 'object') {
+ options = a;
+ }
+ } else {
+ if (typeof a === 'function') {
+ cb = a;
+ }
+ options = {};
+ }
+ parser = new exports.Parser(options);
+ return parser.parseString(str, cb);
+ };
+
+}).call(this);
diff --git a/node_modules/xml2js/package.json b/node_modules/xml2js/package.json
new file mode 100644
index 000000000..f0a14d7cf
--- /dev/null
+++ b/node_modules/xml2js/package.json
@@ -0,0 +1,63 @@
+{
+ "name" : "xml2js",
+ "description" : "Simple XML to JavaScript object converter.",
+ "keywords" : ["xml", "json"],
+ "homepage" : "https://github.com/Leonidas-from-XIV/node-xml2js",
+ "version" : "0.4.4",
+ "author" : "Marek Kubica <marek@xivilization.net> (http://xivilization.net)",
+ "contributors" : [
+ "maqr <maqr.lollerskates@gmail.com> (https://github.com/maqr)",
+ "Ben Weaver (http://benweaver.com/)",
+ "Jae Kwon (https://github.com/jaekwon)",
+ "Jim Robert",
+ "Ștefan Rusu (http://www.saltwaterc.eu/)",
+ "Carter Cole <carter.cole@cartercole.com> (http://cartercole.com/)",
+ "Kurt Raschke <kurt@kurtraschke.com> (http://www.kurtraschke.com/)",
+ "Contra <contra@australia.edu> (https://github.com/Contra)",
+ "Marcelo Diniz <marudiniz@gmail.com> (https://github.com/mdiniz)",
+ "Michael Hart (https://github.com/mhart)",
+ "Zachary Scott <zachary@zacharyscott.net> (http://zacharyscott.net/)",
+ "Raoul Millais (https://github.com/raoulmillais)",
+ "Salsita Software (http://www.salsitasoft.com/)",
+ "Mike Schilling <mike@emotive.com> (http://www.emotive.com/)",
+ "Jackson Tian <shyvo1987@gmail.com> (http://weibo.com/shyvo)",
+ "Mikhail Zyatin <mikhail.zyatin@gmail.com> (https://github.com/Sitin)",
+ "Chris Tavares <ctavares@microsoft.com> (https://github.com/christav)",
+ "Frank Xu <yyfrankyy@gmail.com> (http://f2e.us/)",
+ "Guido D'Albore <guido@bitstorm.it> (http://www.bitstorm.it/)",
+ "Jack Senechal (http://jacksenechal.com/)",
+ "Matthias Hölzl <tc@xantira.com> (https://github.com/hoelzl)",
+ "Camille Reynders <info@creynders.be> (http://www.creynders.be/)",
+ "Taylor Gautier (https://github.com/tsgautier)",
+ "Todd Bryan (https://github.com/toddrbryan)",
+ "Leore Avidar <leore.avidar@gmail.com> (http://leoreavidar.com/)",
+ "Dave Aitken <dave.aitken@gmail.com> (http://www.actionshrimp.com/)"
+ ],
+ "main" : "./lib/xml2js",
+ "directories" : {
+ "lib": "./lib"
+ },
+ "scripts" : {
+ "test": "zap"
+ },
+ "repository" : {
+ "type" : "git",
+ "url" : "https://github.com/Leonidas-from-XIV/node-xml2js.git"
+ },
+ "dependencies" : {
+ "sax" : "0.6.x",
+ "xmlbuilder" : ">=1.0.0"
+ },
+ "devDependencies" : {
+ "coffee-script" : ">=1.7.1",
+ "zap" : ">=0.2.6",
+ "docco" : ">=0.6.2",
+ "diff" : ">=1.0.8"
+ },
+ "licenses": [
+ {
+ "type": "MIT",
+ "url": "https://raw.github.com/Leonidas-from-XIV/node-xml2js/master/LICENSE"
+ }
+ ]
+}
diff --git a/node_modules/xml2js/text.coffee b/node_modules/xml2js/text.coffee
new file mode 100644
index 000000000..c5d8c66d9
--- /dev/null
+++ b/node_modules/xml2js/text.coffee
@@ -0,0 +1,11 @@
+fs = require 'fs'
+xml2js = require 'xml2js'
+
+parser = new xml2js.Parser
+
+fs.readFile 'canon.xml', (err, data) ->
+ console.log err
+ parser.parseString (err, result) ->
+ console.log err
+ console.dir result
+
diff --git a/node_modules/xml2js/text.xml b/node_modules/xml2js/text.xml
new file mode 100644
index 000000000..bd3b482a4
--- /dev/null
+++ b/node_modules/xml2js/text.xml
@@ -0,0 +1,485 @@
+<?xml version="1.0"?>
+ <!DOCTYPE GBSet PUBLIC "-//NCBI//NCBI GBSeq/EN" "http://www.ncbi.nlm.nih.gov/dtd/NCBI_GBSeq.dtd">
+ <GBSet>
+<GBSeq>
+ <GBSeq_locus>AF485783</GBSeq_locus>
+ <GBSeq_length>14758</GBSeq_length>
+ <GBSeq_strandedness>double</GBSeq_strandedness>
+ <GBSeq_moltype>DNA</GBSeq_moltype>
+ <GBSeq_topology>circular</GBSeq_topology>
+ <GBSeq_division>SYN</GBSeq_division>
+ <GBSeq_update-date>15-MAY-2003</GBSeq_update-date>
+ <GBSeq_create-date>21-MAR-2002</GBSeq_create-date>
+ <GBSeq_definition>Binary vector pBI121, complete sequence</GBSeq_definition>
+ <GBSeq_primary-accession>AF485783</GBSeq_primary-accession>
+ <GBSeq_accession-version>AF485783.1</GBSeq_accession-version>
+ <GBSeq_other-seqids>
+ <GBSeqid>gb|AF485783.1|</GBSeqid>
+ <GBSeqid>gi|19569229</GBSeqid>
+ </GBSeq_other-seqids>
+ <GBSeq_source>Binary vector pBI121</GBSeq_source>
+ <GBSeq_organism>Binary vector pBI121</GBSeq_organism>
+ <GBSeq_taxonomy>other sequences; artificial sequences; vectors</GBSeq_taxonomy>
+ <GBSeq_references>
+ <GBReference>
+ <GBReference_reference>1</GBReference_reference>
+ <GBReference_position>1..14758</GBReference_position>
+ <GBReference_authors>
+ <GBAuthor>Chen,P.Y.</GBAuthor>
+ <GBAuthor>Wang,C.K.</GBAuthor>
+ <GBAuthor>Soong,S.C.</GBAuthor>
+ <GBAuthor>To,K.Y.</GBAuthor>
+ </GBReference_authors>
+ <GBReference_title>Complete sequence of the binary vector pBI121 and its application in cloning T-DNA insertion from transgenic plants</GBReference_title>
+ <GBReference_journal>Mol. Breed. 11, 287-293 (2003)</GBReference_journal>
+ </GBReference>
+ <GBReference>
+ <GBReference_reference>2</GBReference_reference>
+ <GBReference_position>1..14758</GBReference_position>
+ <GBReference_authors>
+ <GBAuthor>To,K.Y.</GBAuthor>
+ </GBReference_authors>
+ <GBReference_title>Direct Submission</GBReference_title>
+ <GBReference_journal>Submitted (20-FEB-2002) Institute of BioAgricultural Sciences, Academia Sinica, Taipei 11529, Taiwan</GBReference_journal>
+ </GBReference>
+ </GBSeq_references>
+ <GBSeq_feature-table>
+ <GBFeature>
+ <GBFeature_key>source</GBFeature_key>
+ <GBFeature_location>1..14758</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>1</GBInterval_from>
+ <GBInterval_to>14758</GBInterval_to>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>organism</GBQualifier_name>
+ <GBQualifier_value>Binary vector pBI121</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>mol_type</GBQualifier_name>
+ <GBQualifier_value>genomic DNA</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>db_xref</GBQualifier_name>
+ <GBQualifier_value>taxon:189807</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>constructed using pB221 from Clontech Laboratories and Bin19 described in GenBank Accession Number U09365</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>misc_feature</GBFeature_key>
+ <GBFeature_location>complement(13..796)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>796</GBInterval_from>
+ <GBInterval_to>13</GBInterval_to>
+ <GBInterval_iscomp value="true"/>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>similar to traF in GenBank Accession Number X54459</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>rep_origin</GBFeature_key>
+ <GBFeature_location>complement(790..1168)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>1168</GBInterval_from>
+ <GBInterval_to>790</GBInterval_to>
+ <GBInterval_iscomp value="true"/>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>ColE1 ori; similar to sequence in GenBank Accession Number V00268</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>misc_feature</GBFeature_key>
+ <GBFeature_location>complement(1161..2344)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>2344</GBInterval_from>
+ <GBInterval_to>1161</GBInterval_to>
+ <GBInterval_iscomp value="true"/>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>similar to tetA in GenBank Accession Number X75761</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>misc_feature</GBFeature_key>
+ <GBFeature_location>complement(2454..2478)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>2478</GBInterval_from>
+ <GBInterval_to>2454</GBInterval_to>
+ <GBInterval_iscomp value="true"/>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>T-DNA right border</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>promoter</GBFeature_key>
+ <GBFeature_location>2519..2825</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>2519</GBInterval_from>
+ <GBInterval_to>2825</GBInterval_to>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>NOS</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>gene</GBFeature_key>
+ <GBFeature_location>2838..3632</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>2838</GBInterval_from>
+ <GBInterval_to>3632</GBInterval_to>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>gene</GBQualifier_name>
+ <GBQualifier_value>nptII</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>CDS</GBFeature_key>
+ <GBFeature_location>2838..3632</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>2838</GBInterval_from>
+ <GBInterval_to>3632</GBInterval_to>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>gene</GBQualifier_name>
+ <GBQualifier_value>nptII</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>codon_start</GBQualifier_name>
+ <GBQualifier_value>1</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>transl_table</GBQualifier_name>
+ <GBQualifier_value>1</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>product</GBQualifier_name>
+ <GBQualifier_value>neomycin phosphotransferase II</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>protein_id</GBQualifier_name>
+ <GBQualifier_value>AAL92039.1</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>db_xref</GBQualifier_name>
+ <GBQualifier_value>GI:19569230</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>translation</GBQualifier_name>
+ <GBQualifier_value>MIEQDGLHAGSPAAWVERLFGYDWAQQTIGCSDAAVFRLSAQGRPVLFVKTDLSGALNELQDEAARLSWLATTGVPCAAVLDVVTEAGRDWLLLGEVPGQDLLSSHLAPAEKVSIMADAMRRLHTLDPATCPFDHQAKHRIERARTRMEAGLVDQDDLDEEHQGLAPAELFARLKARMPDGDDLVVTHGDACLPNIMVENGRFSGFIDCGRLGVADRYQDIALATRDIAEELGGEWADRFLVLYGIAAPDSQRIAFYRLLDEFF</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>terminator</GBFeature_key>
+ <GBFeature_location>4022..4277</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>4022</GBInterval_from>
+ <GBInterval_to>4277</GBInterval_to>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>NOS</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>promoter</GBFeature_key>
+ <GBFeature_location>4974..5808</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>4974</GBInterval_from>
+ <GBInterval_to>5808</GBInterval_to>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>CaMV 35S</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>gene</GBFeature_key>
+ <GBFeature_location>5845..7656</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>5845</GBInterval_from>
+ <GBInterval_to>7656</GBInterval_to>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>gene</GBQualifier_name>
+ <GBQualifier_value>gusA</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>CDS</GBFeature_key>
+ <GBFeature_location>5845..7656</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>5845</GBInterval_from>
+ <GBInterval_to>7656</GBInterval_to>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>gene</GBQualifier_name>
+ <GBQualifier_value>gusA</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>GUS</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>codon_start</GBQualifier_name>
+ <GBQualifier_value>1</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>transl_table</GBQualifier_name>
+ <GBQualifier_value>1</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>product</GBQualifier_name>
+ <GBQualifier_value>beta-glucuronidase</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>protein_id</GBQualifier_name>
+ <GBQualifier_value>AAL92040.1</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>db_xref</GBQualifier_name>
+ <GBQualifier_value>GI:19569231</GBQualifier_value>
+ </GBQualifier>
+ <GBQualifier>
+ <GBQualifier_name>translation</GBQualifier_name>
+ <GBQualifier_value>MLRPVETPTREIKKLDGLWAFSLDRENCGIDQRWWESALQESRAIAVPGSFNDQFADADIRNYAGNVWYQREVFIPKGWAGQRIVLRFDAVTHYGKVWVNNQEVMEHQGGYTPFEADVTPYVIAGKSVRITVCVNNELNWQTIPPGMVITDENGKKKQSYFHDFFNYAGIHRSVMLYTTPNTWVDDITVVTHVAQDCNHASVDWQVVANGDVSVELRDADQQVVATGQGTSGTLQVVNPHLWQPGEGYLYELCVTAKSQTECDIYPLRVGIRSVAVKGEQFLINHKPFYFTGFGRHEDADLRGKGFDNVLMVHDHALMDWIGANSYRTSHYPYAEEMLDWADEHGIVVIDETAAVGFNLSLGIGFEAGNKPKELYSEEAVNGETQQAHLQAIKELIARDKNHPSVVMWSIANEPDTRPQGAREYFAPLAEATRKLDPTRPITCVNVMFCDAHTDTISDLFDVLCLNRYYGWYVQSGDLETAEKVLEKELLAWQEKLHQPIIITEYGVDTLAGLHSMYTDMWSEEYQCAWLDMYHRVFDRVSAVVGEQVWNFADFATSQGILRVGGNKKGIFTRDRKPKSAAFLLQKRWTGMNFGEKPQQGGKQ</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>terminator</GBFeature_key>
+ <GBFeature_location>7727..7979</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>7727</GBInterval_from>
+ <GBInterval_to>7979</GBInterval_to>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>NOS</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>misc_feature</GBFeature_key>
+ <GBFeature_location>complement(8621..8646)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>8646</GBInterval_from>
+ <GBInterval_to>8621</GBInterval_to>
+ <GBInterval_iscomp value="true"/>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>T-DNA left border</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>misc_feature</GBFeature_key>
+ <GBFeature_location>complement(9156..10198)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>10198</GBInterval_from>
+ <GBInterval_to>9156</GBInterval_to>
+ <GBInterval_iscomp value="true"/>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>similar to tetA in GenBank Accession Number L13842</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>misc_feature</GBFeature_key>
+ <GBFeature_location>complement(10199..11680)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>11680</GBInterval_from>
+ <GBInterval_to>10199</GBInterval_to>
+ <GBInterval_iscomp value="true"/>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>similar to trfA in GenBank Accession Number X00713</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>misc_feature</GBFeature_key>
+ <GBFeature_location>complement(11681..12673)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>12673</GBInterval_from>
+ <GBInterval_to>11681</GBInterval_to>
+ <GBInterval_iscomp value="true"/>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>similar to NPTIII gene in GenBank Accession Number V01547</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>misc_feature</GBFeature_key>
+ <GBFeature_location>complement(12674..13443)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>13443</GBInterval_from>
+ <GBInterval_to>12674</GBInterval_to>
+ <GBInterval_iscomp value="true"/>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>similar to transposable element IS1 in GenBank Accession Number X58999</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>misc_feature</GBFeature_key>
+ <GBFeature_location>complement(13444..13794)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>13794</GBInterval_from>
+ <GBInterval_to>13444</GBInterval_to>
+ <GBInterval_iscomp value="true"/>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>similarity to NPT III gene in GenBank Accession Number V01547</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>misc_feature</GBFeature_key>
+ <GBFeature_location>complement(13795..14066)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>14066</GBInterval_from>
+ <GBInterval_to>13795</GBInterval_to>
+ <GBInterval_iscomp value="true"/>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>similar to kilA in GenBank Accession Number M62846</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ <GBFeature>
+ <GBFeature_key>rep_origin</GBFeature_key>
+ <GBFeature_location>complement(14141..14758)</GBFeature_location>
+ <GBFeature_intervals>
+ <GBInterval>
+ <GBInterval_from>14758</GBInterval_from>
+ <GBInterval_to>14141</GBInterval_to>
+ <GBInterval_iscomp value="true"/>
+ <GBInterval_accession>AF485783.1</GBInterval_accession>
+ </GBInterval>
+ </GBFeature_intervals>
+ <GBFeature_quals>
+ <GBQualifier>
+ <GBQualifier_name>note</GBQualifier_name>
+ <GBQualifier_value>ori V; similar to sequence in GenBank Accession Number M20134</GBQualifier_value>
+ </GBQualifier>
+ </GBFeature_quals>
+ </GBFeature>
+ </GBSeq_feature-table>
+ <GBSeq_sequence>tgagcgtcgcaaaggcgctcggtcttgccttgctcgtcggtgatgtacttcaccagctccgcgaagtcgctcttcttgatggagcgcatggggacgtgcttggcaatcacgcgcaccccccggccgttttagcggctaaaaaagtcatggctctgccctcgggcggaccacgcccatcatgaccttgccaagctcgtcctgcttctcttcgatcttcgccagcagggcgaggatcgtggcatcaccgaaccgcgccgtgcgcgggtcgtcggtgagccagagtttcagcaggccgcccaggcggcccaggtcgccattgatgcgggccagctcgcggacgtgctcatagtccacgacgcccgtgattttgtagccctggccgacggccagcaggtaggccgacaggctcatgccggccgccgccgccttttcctcaatcgctcttcgttcgtctggaaggcagtacaccttgataggtgggctgcccttcctggttggcttggtttcatcagccatccgcttgccctcatctgttacgccggcggtagccggccagcctcgcagagcaggattcccgttgagcaccgccaggtgcgaataagggacagtgaagaaggaacacccgctcgcgggtgggcctacttcacctatcctgcccggctgacgccgttggatacaccaaggaaagtctacacgaaccctttggcaaaatcctgtatatcgtgcgaaaaaggatggatataccgaaaaaatcgctataatgaccccgaagcagggttatgcagcggaaaagcgccacgcttcccgaagggagaaaggcggacaggtatccggtaagcggcagggtcggaacaggagagcgcacgagggagcttccagggggaaacgcctggtatctttatagtcctgtcgggtttcgccacctctgacttgagcgtcgatttttgtgatgctcgtcaggggggcggagcctatggaaaaacgccagcaacgcggcctttttacggttcctggccttttgctggccttttgctcacatgttctttcctgcgttatcccctgattctgtggataaccgtattaccgcctttgagtgagctgataccgctcgccgcagccgaacgaccgagcgcagcgagtcagtgagcgaggaagcggaagagcgccagaaggccgccagagaggccgagcgcggccgtgaggcttggacgctagggcagggcatgaaaaagcccgtagcgggctgctacgggcgtctgacgcggtggaaagggggaggggatgttgtctacatggctctgctgtagtgagtgggttgcgctccggcagcggtcctgatcaatcgtcaccctttctcggtccttcaacgttcctgacaacgagcctccttttcgccaatccatcgacaatcaccgcgagtccctgctcgaacgctgcgtccggaccggcttcgtcgaaggcgtctatcgcggcccgcaacagcggcgagagcggagcctgttcaacggtgccgccgcgctcgccggcatcgctgtcgccggcctgctcctcaagcacggccccaacagtgaagtagctgattgtcatcagcgcattgacggcgtccccggccgaaaaacccgcctcgcagaggaagcgaagctgcgcgtcggccgtttccatctgcggtgcgcccggtcgcgtgccggcatggatgcgcgcgccatcgcggtaggcgagcagcgcctgcctgaagctgcgggcattcccgatcagaaatgagcgccagtcgtcgtcggctctcggcaccgaatgcgtatgattctccgccagcatggcttcggccagtgcgtcgagcagcgcccgcttgttcctgaagtgccagtaaagcgccggctgctgaacccccaaccgttccgccagtttgcgtgtcgtcagaccgtctacgccgacctcgttcaacaggtccagggcggcacggatcactgtattcggctgcaactttgtcatgcttgacactttatcactgataaacataatatgtccaccaacttatcagtgataaagaatccgcgcgttcaatcggaccagcggaggctggtccggaggccagacgtgaaacccaacatacccctgatcgtaattctgagcactgtcgcgctcgacgctgtcggcatcggcctgattatgccggtgctgccgggcctcctgcgcgatctggttcactcgaacgacgtcaccgcccactatggcattctgctggcgctgtatgcgttggtgcaatttgcctgcgcacctgtgctgggcgcgctgtcggatcgtttcgggcggcggccaatcttgctcgtctcgctggccggcgccagatctggggaaccctgtggttggcatgcacatacaaatggacgaacggataaaccttttcacgcccttttaaatatccgattattctaataaacgctcttttctcttaggtttacccgccaatatatcctgtcaaacactgatagtttaaactgaaggcgggaaacgacaatctgatcatgagcggagaattaagggagtcacgttatgacccccgccgatgacgcgggacaagccgttttacgtttggaactgacagaaccgcaacgttgaaggagccactcagccgcgggtttctggagtttaatgagctaagcacatacgtcagaaaccattattgcgcgttcaaaagtcgcctaaggtcactatcagctagcaaatatttcttgtcaaaaatgctccactgacgttccataaattcccctcggtatccaattagagtctcatattcactctcaatccaaataatctgcaccggatctggatcgtttcgcatgattgaacaagatggattgcacgcaggttctccggccgcttgggtggagaggctattcggctatgactgggcacaacagacaatcggctgctctgatgccgccgtgttccggctgtcagcgcaggggcgcccggttctttttgtcaagaccgacctgtccggtgccctgaatgaactgcaggacgaggcagcgcggctatcgtggctggccacgacgggcgttccttgcgcagctgtgctcgacgttgtcactgaagcgggaagggactggctgctattgggcgaagtgccggggcaggatctcctgtcatctcaccttgctcctgccgagaaagtatccatcatggctgatgcaatgcggcggctgcatacgcttgatccggctacctgcccattcgaccaccaagcgaaacatcgcatcgagcgagcacgtactcggatggaagccggtcttgtcgatcaggatgatctggacgaagagcatcaggggctcgcgccagccgaactgttcgccaggctcaaggcgcgcatgcccgacggcgatgatctcgtcgtgacccatggcgatgcctgcttgccgaatatcatggtggaaaatggccgcttttctggattcatcgactgtggccggctgggtgtggcggaccgctatcaggacatagcgttggctacccgtgatattgctgaagagcttggcggcgaatgggctgaccgcttcctcgtgctttacggtatcgccgctcccgattcgcagcgcatcgccttctatcgccttcttgacgagttcttctgagcgggactctggggttcgaaatgaccgaccaagcgacgcccaacctgccatcacgagatttcgattccaccgccgccttctatgaaaggttgggcttcggaatcgttttccgggacgccggctggatgatcctccagcgcggggatctcatgctggagttcttcgcccacgggatctctgcggaacaggcggtcgaaggtgccgatatcattacgacagcaacggccgacaagcacaacgccacgatcctgagcgacaatatgatcgggcccggcgtccacatcaacggcgtcggcggcgactgcccaggcaagaccgagatgcaccgcgatatcttgctgcgttcggatattttcgtggagttcccgccacagacccggatgatccccgatcgttcaaacatttggcaataaagtttcttaagattgaatcctgttgccggtcttgcgatgattatcatataatttctgttgaattacgttaagcatgtaataattaacatgtaatgcatgacgttatttatgagatgggtttttatgattagagtcccgcaattatacatttaatacgcgatagaaaacaaaatatagcgcgcaaactaggataaattatcgcgcgcggtgtcatctatgttactagatcgggcctcctgtcaatgctggcggcggctctggtggtggttctggtggcggctctgagggtggtggctctgagggtggcggttctgagggtggcggctctgagggaggcggttccggtggtggctctggttccggtgattttgattatgaaaagatggcaaacgctaataagggggctatgaccgaaaatgccgatgaaaacgcgctacagtctgacgctaaaggcaaacttgattctgtcgctactgattacggtgctgctatcgatggtttcattggtgacgtttccggccttgctaatggtaatggtgctactggtgattttgctggctctaattcccaaatggctcaagtcggtgacggtgataattcacctttaatgaataatttccgtcaatatttaccttccctccctcaatcggttgaatgtcgcccttttgtctttggcccaatacgcaaaccgcctctccccgcgcgttggccgattcattaatgcagctggcacgacaggtttcccgactggaaagcgggcagtgagcgcaacgcaattaatgtgagttagctcactcattaggcaccccaggctttacactttatgcttccggctcgtatgttgtgtggaattgtgagcggataacaatttcacacaggaaacagctatgaccatgattacgccaagcttgcatgcctgcaggtccccagattagccttttcaatttcagaaagaatgctaacccacagatggttagagaggcttacgcagcaggtctcatcaagacgatctacccgagcaataatctccaggaaatcaaataccttcccaagaaggttaaagatgcagtcaaaagattcaggactaactgcatcaagaacacagagaaagatatatttctcaagatcagaagtactattccagtatggacgattcaaggcttgcttcacaaaccaaggcaagtaatagagattggagtctctaaaaaggtagttcccactgaatcaaaggccatggagtcaaagattcaaatagaggacctaacagaactcgccgtaaagactggcgaacagttcatacagagtctcttacgactcaatgacaagaagaaaatcttcgtcaacatggtggagcacgacacacttgtctactccaaaaatatcaaagatacagtctcagaagaccaaagggcaattgagacttttcaacaaagggtaatatccggaaacctcctcggattccattgcccagctatctgtcactttattgtgaagatagtggaaaaggaaggtggctcctacaaatgccatcattgcgataaaggaaaggccatcgttgaagatgcctctgccgacagtggtcccaaagatggacccccacccacgaggagcatcgtggaaaaagaagacgttccaaccacgtcttcaaagcaagtggattgatgtgatatctccactgacgtaagggatgacgcacaatcccactatccttcgcaagacccttcctctatataaggaagttcatttcatttggagagaacacgggggactctagaggatccccgggtggtcagtcccttatgttacgtcctgtagaaaccccaacccgtgaaatcaaaaaactcgacggcctgtgggcattcagtctggatcgcgaaaactgtggaattgatcagcgttggtgggaaagcgcgttacaagaaagccgggcaattgctgtgccaggcagttttaacgatcagttcgccgatgcagatattcgtaattatgcgggcaacgtctggtatcagcgcgaagtctttataccgaaaggttgggcaggccagcgtatcgtgctgcgtttcgatgcggtcactcattacggcaaagtgtgggtcaataatcaggaagtgatggagcatcagggcggctatacgccatttgaagccgatgtcacgccgtatgttattgccgggaaaagtgtacgtatcaccgtttgtgtgaacaacgaactgaactggcagactatcccgccgggaatggtgattaccgacgaaaacggcaagaaaaagcagtcttacttccatgatttctttaactatgccggaatccatcgcagcgtaatgctctacaccacgccgaacacctgggtggacgatatcaccgtggtgacgcatgtcgcgcaagactgtaaccacgcgtctgttgactggcaggtggtggccaatggtgatgtcagcgttgaactgcgtgatgcggatcaacaggtggttgcaactggacaaggcactagcgggactttgcaagtggtgaatccgcacctctggcaaccgggtgaaggttatctctatgaactgtgcgtcacagccaaaagccagacagagtgtgatatctacccgcttcgcgtcggcatccggtcagtggcagtgaagggcgaacagttcctgattaaccacaaaccgttctactttactggctttggtcgtcatgaagatgcggacttgcgtggcaaaggattcgataacgtgctgatggtgcacgaccacgcattaatggactggattggggccaactcctaccgtacctcgcattacccttacgctgaagagatgctcgactgggcagatgaacatggcatcgtggtgattgatgaaactgctgctgtcggctttaacctctctttaggcattggtttcgaagcgggcaacaagccgaaagaactgtacagcgaagaggcagtcaacggggaaactcagcaagcgcacttacaggcgattaaagagctgatagcgcgtgacaaaaaccacccaagcgtggtgatgtggagtattgccaacgaaccggatacccgtccgcaaggtgcacgggaatatttcgcgccactggcggaagcaacgcgtaaactcgacccgacgcgtccgatcacctgcgtcaatgtaatgttctgcgacgctcacaccgataccatcagcgatctctttgatgtgctgtgcctgaaccgttattacggatggtatgtccaaagcggcgatttggaaacggcagagaaggtactggaaaaagaacttctggcctggcaggagaaactgcatcagccgattatcatcaccgaatacggcgtggatacgttagccgggctgcactcaatgtacaccgacatgtggagtgaagagtatcagtgtgcatggctggatatgtatcaccgcgtctttgatcgcgtcagcgccgtcgtcggtgaacaggtatggaatttcgccgattttgcgacctcgcaaggcatattgcgcgttggcggtaacaagaaagggatcttcactcgcgaccgcaaaccgaagtcggcggcttttctgctgcaaaaacgctggactggcatgaacttcggtgaaaaaccgcagcagggaggcaaacaatgaatcaacaactctcctggcgcaccatcgtcggctacagcctcgggaattgctaccgagctcgaatttccccgatcgttcaaacatttggcaataaagtttcttaagattgaatcctgttgccggtcttgcgatgattatcatataatttctgttgaattacgttaagcatgtaataattaacatgtaatgcatgacgttatttatgagatgggtttttatgattagagtcccgcaattatacatttaatacgcgatagaaaacaaaatatagcgcgcaaactaggataaattatcgcgcgcggtgtcatctatgttactagatcgggaattcactggccgtcgttttacaacgtcgtgactgggaaaaccctggcgttacccaacttaatcgccttgcagcacatccccctttcgccagctggcgtaatagcgaagaggcccgcaccgatcgcccttcccaacagttgcgcagcctgaatggcgcccgctcctttcgctttcttcccttcctttctcgccacgttcgccggctttccccgtcaagctctaaatcgggggctccctttagggttccgatttagtgctttacggcacctcgaccccaaaaaacttgatttgggtgatggttcacgtagtgggccatcgccctgatagacggtttttcgccctttgacgttggagtccacgttctttaatagtggactcttgttccaaactggaacaacactcaaccctatctcgggctattcttttgatttataagggattttgccgatttcggaaccaccatcaaacaggattttcgcctgctggggcaaaccagcgtggaccgcttgctgcaactctctcagggccaggcggtgaagggcaatcagctgttgcccgtctcactggtgaaaagaaaaaccaccccagtacattaaaaacgtccgcaatgtgttattaagttgtctaagcgtcaatttgtttacaccacaatatatcctgccaccagccagccaacagctccccgaccggcagctcggcacaaaatcaccactcgatacaggcagcccatcagtccgggacggcgtcagcgggagagccgttgtaaggcggcagactttgctcatgttaccgatgctattcggaagaacggcaactaagctgccgggtttgaaacacggatgatctcgcggagggtagcatgttgattgtaacgatgacagagcgttgctgcctgtgatcaaatatcatctccctcgcagagatccgaattatcagccttcttattcatttctcgcttaaccgtgacaggctgtcgatcttgagaactatgccgacataataggaaatcgctggataaagccgctgaggaagctgagtggcgctatttctttagaagtgaacgttgacgatatcaactcccctatccattgctcaccgaatggtacaggtcggggacccgaagttccgactgtcggcctgatgcatccccggctgatcgaccccagatctggggctgagaaagcccagtaaggaaacaactgtaggttcgagtcgcgagatcccccggaaccaaaggaagtaggttaaacccgctccgatcaggccgagccacgccaggccgagaacattggttcctgtaggcatcgggattggcggatcaaacactaaagctactggaacgagcagaagtcctccggccgccagttgccaggcggtaaaggtgagcagaggcacgggaggttgccacttgcgggtcagcacggttccgaacgccatggaaaccgcccccgccaggcccgctgcgacgccgacaggatctagcgctgcgtttggtgtcaacaccaacagcgccacgcccgcagttccgcaaatagcccccaggaccgccatcaatcgtatcgggctacctagcagagcggcagagatgaacacgaccatcagcggctgcacagcgcctaccgtcgccgcgaccccgcccggcaggcggtagaccgaaataaacaacaagctccagaatagcgaaatattaagtgcgccgaggatgaagatgcgcatccaccagattcccgttggaatctgtcggacgatcatcacgagcaataaacccgccggcaacgcccgcagcagcataccggcgacccctcggcctcgctgttcgggctccacgaaaacgccggacagatgcgccttgtgagcgtccttggggccgtcctcctgtttgaagaccgacagcccaatgatctcgccgtcgatgtaggcgccgaatgccacggcatctcgcaaccgttcagcgaacgcctccatgggctttttctcctcgtgctcgtaaacggacccgaacatctctggagctttcttcagggccgacaatcggatctcgcggaaatcctgcacgtcggccgctccaagccgtcgaatctgagccttaatcacaattgtcaattttaatcctctgtttatcggcagttcgtagagcgcgccgtgcgtcccgagcgatactgagcgaagcaagtgcgtcgagcagtgcccgcttgttcctgaaatgccagtaaagcgctggctgctgaacccccagccggaactgaccccacaaggccctagcgtttgcaatgcaccaggtcatcattgacccaggcgtgttccaccaggccgctgcctcgcaactcttcgcaggcttcgccgacctgctcgcgccacttcttcacgcgggtggaatccgatccgcacatgaggcggaaggtttccagcttgagcgggtacggctcccggtgcgagctgaaatagtcgaacatccgtcgggccgtcggcgacagcttgcggtacttctcccatatgaatttcgtgtagtggtcgccagcaaacagcacgacgatttcctcgtcgatcaggacctggcaacgggacgttttcttgccacggtccaggacgcggaagcggtgcagcagcgacaccgattccaggtgcccaacgcggtcggacgtgaagcccatcgccgtcgcctgtaggcgcgacaggcattcctcggccttcgtgtaataccggccattgatcgaccagcccaggtcctggcaaagctcgtagaacgtgaaggtgatcggctcgccgataggggtgcgcttcgcgtactccaacacctgctgccacaccagttcgtcatcgtcggcccgcagctcgacgccggtgtaggtgatcttcacgtccttgttgacgtggaaaatgaccttgttttgcagcgcctcgcgcgggattttcttgttgcgcgtggtgaacagggcagagcgggccgtgtcgtttggcatcgctcgcatcgtgtccggccacggcgcaatatcgaacaaggaaagctgcatttccttgatctgctgcttcgtgtgtttcagcaacgcggcctgcttggcctcgctgacctgttttgccaggtcctcgccggcggtttttcgcttcttggtcgtcatagttcctcgcgtgtcgatggtcatcgacttcgccaaacctgccgcctcctgttcgagacgacgcgaacgctccacggcggccgatggcgcgggcagggcagggggagccagttgcacgctgtcgcgctcgatcttggccgtagcttgctggaccatcgagccgacggactggaaggtttcgcggggcgcacgcatgacggtgcggcttgcgatggtttcggcatcctcggcggaaaaccccgcgtcgatcagttcttgcctgtatgccttccggtcaaacgtccgattcattcaccctccttgcgggattgccccgactcacgccggggcaatgtgcccttattcctgatttgacccgcctggtgccttggtgtccagataatccaccttatcggcaatgaagtcggtcccgtagaccgtctggccgtccttctcgtacttggtattccgaatcttgccctgcacgaataccagcgaccccttgcccaaatacttgccgtgggcctcggcctgagagccaaaacacttgatgcggaagaagtcggtgcgctcctgcttgtcgccggcatcgttgcgccacatctaggtactaaaacaattcatccagtaaaatataatattttattttctcccaatcaggcttgatccccagtaagtcaaaaaatagctcgacatactgttcttccccgatatcctccctgatcgaccggacgcagaaggcaatgtcataccacttgtccgccctgccgcttctcccaagatcaataaagccacttactttgccatctttcacaaagatgttgctgtctcccaggtcgccgtgggaaaagacaagttcctcttcgggcttttccgtctttaaaaaatcatacagctcgcgcggatctttaaatggagtgtcttcttcccagttttcgcaatccacatcggccagatcgttattcagtaagtaatccaattcggctaagcggctgtctaagctattcgtatagggacaatccgatatgtcgatggagtgaaagagcctgatgcactccgcatacagctcgataatcttttcagggctttgttcatcttcatactcttccgagcaaaggacgccatcggcctcactcatgagcagattgctccagccatcatgccgttcaaagtgcaggacctttggaacaggcagctttccttccagccatagcatcatgtccttttcccgttccacatcataggtggtccctttataccggctgtccgtcatttttaaatataggttttcattttctcccaccagcttatataccttagcaggagacattccttccgtatcttttacgcagcggtatttttcgatcagttttttcaattccggtgatattctcattttagccatttattatttccttcctcttttctacagtatttaaagataccccaagaagctaattataacaagacgaactccaattcactgttccttgcattctaaaaccttaaataccagaaaacagctttttcaaagttgttttcaaagttggcgtataacatagtatcgacggagccgattttgaaaccacaattatgggtgatgctgccaacttactgatttagtgtatgatggtgtttttgaggtgctccagtggcttctgtgtctatcagctgtccctcctgttcagctactgacggggtggtgcgtaacggcaaaagcaccgccggacatcagcgctatctctgctctcactgccgtaaaacatggcaactgcagttcacttacaccgcttctcaacccggtacgcaccagaaaatcattgatatggccatgaatggcgttggatgccgggcaacagcccgcattatgggcgttggcctcaacacgattttacgtcacttaaaaaactcaggccgcagtcggtaacctcgcgcatacagccgggcagtgacgtcatcgtctgcgcggaaatggacgaacagtggggctatgtcggggctaaatcgcgccagcgctggctgttttacgcgtatgacagtctccggaagacggttgttgcgcacgtattcggtgaacgcactatggcgacgctggggcgtcttatgagcctgctgtcaccctttgacgtggtgatatggatgacggatggctggccgctgtatgaatcccgcctgaagggaaagctgcacgtaatcagcaagcgatatacgcagcgaattgagcggcataacctgaatctgaggcagcacctggcacggctgggacggaagtcgctgtcgttctcaaaatcggtggagctgcatgacaaagtcatcgggcattatctgaacataaaacactatcaataagttggagtcattacccaattatgatagaatttacaagctataaggttattgtcctgggtttcaagcattagtccatgcaagtttttatgctttgcccattctatagatatattgataagcgcgctgcctatgccttgccccctgaaatccttacatacggcgatatcttctatataaaagatatattatcttatcagtattgtcaatatattcaaggcaatctgcctcctcatcctcttcatcctcttcgtcttggtagctttttaaatatggcgcttcatagagtaattctgtaaaggtccaattctcgttttcatacctcggtataatcttacctatcacctcaaatggttcgctgggtttatcgcacccccgaacacgagcacggcacccgcgaccactatgccaagaatgcccaaggtaaaaattgccggccccgccatgaagtccgtgaatgccccgacggccgaagtgaagggcaggccgccacccaggccgccgccctcactgcccggcacctggtcgctgaatgtcgatgccagcacctgcggcacgtcaatgcttccgggcgtcgcgctcgggctgatcgcccatcccgttactgccccgatcccggcaatggcaaggactgccagcgctgccatttttggggtgaggccgttcgcggccgaggggcgcagcccctggggggatgggaggcccgcgttagcgggccgggagggttcgagaagggggggcaccccccttcggcgtgcgcggtcacgcgcacagggcgcagccctggttaaaaacaaggtttataaatattggtttaaaagcaggttaaaagacaggttagcggtggccgaaaaacgggcggaaacccttgcaaatgctggattttctgcctgtggacagcccctcaaatgtcaataggtgcgcccctcatctgtcagcactctgcccctcaagtgtcaaggatcgcgcccctcatctgtcagtagtcgcgcccctcaagtgtcaataccgcagggcacttatccccaggcttgtccacatcatctgtgggaaactcgcgtaaaatcaggcgttttcgccgatttgcgaggctggccagctccacgtcgccggccgaaatcgagcctgcccctcatctgtcaacgccgcgccgggtgagtcggcccctcaagtgtcaacgtccgcccctcatctgtcagtgagggccaagttttccgcgaggtatccacaacgccggcggccgcggtgtctcgcacacggcttcgacggcgtttctggcgcgtttgcagggccatagacggccgccagcccagcggcgagggcaaccagcccgg</GBSeq_sequence>
+</GBSeq>
+
+</GBSet>
+
diff --git a/node_modules/xml2js/x.js b/node_modules/xml2js/x.js
new file mode 100644
index 000000000..b51ce5704
--- /dev/null
+++ b/node_modules/xml2js/x.js
@@ -0,0 +1,24 @@
+var util = require('util');
+var xml2js = require('xml2js');
+
+var myxml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?> \
+<Items> \
+ <Item> \
+ <id>1</id> \
+ <color>green</color> \
+ </Item> \
+ <Item> \
+ <id>2</id> \
+ <color>red</color> \
+ </Item> \
+ <Item> \
+ <id>3</id> \
+ <color>yellow</color> \
+ </Item> \
+</Items>"
+
+xml2js.parseString(myxml, function (e, r) {
+ console.log(util.inspect(r, false, null));
+ console.log(new xml2js.Builder().buildObject(r));
+});
+