You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2009/07/16 21:14:56 UTC

svn commit: r794787 [4/34] - in /geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src: ./ animation/ cal/ charting/ charting/svg/ charting/vml/ collections/ crypto/ data/ data/core/ data/old/ data/old/format/ data/old/provider/ date/ debug/ ...

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Collections.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Collections.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Collections.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Dictionary.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Dictionary.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Dictionary.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Dictionary.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,101 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.collections.Dictionary");
+dojo.require("dojo.collections.Collections");
+dojo.collections.Dictionary = function (dictionary) {
+	var items = {};
+	this.count = 0;
+	var testObject = {};
+	this.add = function (k, v) {
+		var b = (k in items);
+		items[k] = new dojo.collections.DictionaryEntry(k, v);
+		if (!b) {
+			this.count++;
+		}
+	};
+	this.clear = function () {
+		items = {};
+		this.count = 0;
+	};
+	this.clone = function () {
+		return new dojo.collections.Dictionary(this);
+	};
+	this.contains = this.containsKey = function (k) {
+		if (testObject[k]) {
+			return false;
+		}
+		return (items[k] != null);
+	};
+	this.containsValue = function (v) {
+		var e = this.getIterator();
+		while (e.get()) {
+			if (e.element.value == v) {
+				return true;
+			}
+		}
+		return false;
+	};
+	this.entry = function (k) {
+		return items[k];
+	};
+	this.forEach = function (fn, scope) {
+		var a = [];
+		for (var p in items) {
+			if (!testObject[p]) {
+				a.push(items[p]);
+			}
+		}
+		var s = scope || dj_global;
+		if (Array.forEach) {
+			Array.forEach(a, fn, s);
+		} else {
+			for (var i = 0; i < a.length; i++) {
+				fn.call(s, a[i], i, a);
+			}
+		}
+	};
+	this.getKeyList = function () {
+		return (this.getIterator()).map(function (entry) {
+			return entry.key;
+		});
+	};
+	this.getValueList = function () {
+		return (this.getIterator()).map(function (entry) {
+			return entry.value;
+		});
+	};
+	this.item = function (k) {
+		if (k in items) {
+			return items[k].valueOf();
+		}
+		return undefined;
+	};
+	this.getIterator = function () {
+		return new dojo.collections.DictionaryIterator(items);
+	};
+	this.remove = function (k) {
+		if (k in items && !testObject[k]) {
+			delete items[k];
+			this.count--;
+			return true;
+		}
+		return false;
+	};
+	if (dictionary) {
+		var e = dictionary.getIterator();
+		while (e.get()) {
+			this.add(e.element.key, e.element.value);
+		}
+	}
+};
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Dictionary.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Dictionary.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Dictionary.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Graph.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Graph.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Graph.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Graph.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,151 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.collections.Graph");
+dojo.require("dojo.collections.Collections");
+dojo.experimental("dojo.collections.Graph");
+dojo.collections.Graph = function (nodes) {
+	function node(key, data, neighbors) {
+		this.key = key;
+		this.data = data;
+		this.neighbors = neighbors || new adjacencyList();
+		this.addDirected = function () {
+			if (arguments[0].constructor == edgeToNeighbor) {
+				this.neighbors.add(arguments[0]);
+			} else {
+				var n = arguments[0];
+				var cost = arguments[1] || 0;
+				this.neighbors.add(new edgeToNeighbor(n, cost));
+			}
+		};
+	}
+	function nodeList() {
+		var d = new dojo.collections.Dictionary();
+		function nodelistiterator() {
+			var o = [];
+			var e = d.getIterator();
+			while (e.get()) {
+				o[o.length] = e.element;
+			}
+			var position = 0;
+			this.element = o[position] || null;
+			this.atEnd = function () {
+				return (position >= o.length);
+			};
+			this.get = function () {
+				if (this.atEnd()) {
+					return null;
+				}
+				this.element = o[position++];
+				return this.element;
+			};
+			this.map = function (fn, scope) {
+				var s = scope || dj_global;
+				if (Array.map) {
+					return Array.map(o, fn, s);
+				} else {
+					var arr = [];
+					for (var i = 0; i < o.length; i++) {
+						arr.push(fn.call(s, o[i]));
+					}
+					return arr;
+				}
+			};
+			this.reset = function () {
+				position = 0;
+				this.element = o[position];
+			};
+		}
+		this.add = function (node) {
+			d.add(node.key, node);
+		};
+		this.clear = function () {
+			d.clear();
+		};
+		this.containsKey = function (key) {
+			return d.containsKey(key);
+		};
+		this.getIterator = function () {
+			return new nodelistiterator(this);
+		};
+		this.item = function (key) {
+			return d.item(key);
+		};
+		this.remove = function (node) {
+			d.remove(node.key);
+		};
+	}
+	function edgeToNeighbor(node, cost) {
+		this.neighbor = node;
+		this.cost = cost;
+	}
+	function adjacencyList() {
+		var d = [];
+		this.add = function (o) {
+			d.push(o);
+		};
+		this.item = function (i) {
+			return d[i];
+		};
+		this.getIterator = function () {
+			return new dojo.collections.Iterator([].concat(d));
+		};
+	}
+	this.nodes = nodes || new nodeList();
+	this.count = this.nodes.count;
+	this.clear = function () {
+		this.nodes.clear();
+		this.count = 0;
+	};
+	this.addNode = function () {
+		var n = arguments[0];
+		if (arguments.length > 1) {
+			n = new node(arguments[0], arguments[1]);
+		}
+		if (!this.nodes.containsKey(n.key)) {
+			this.nodes.add(n);
+			this.count++;
+		}
+	};
+	this.addDirectedEdge = function (uKey, vKey, cost) {
+		var uNode, vNode;
+		if (uKey.constructor != node) {
+			uNode = this.nodes.item(uKey);
+			vNode = this.nodes.item(vKey);
+		} else {
+			uNode = uKey;
+			vNode = vKey;
+		}
+		var c = cost || 0;
+		uNode.addDirected(vNode, c);
+	};
+	this.addUndirectedEdge = function (uKey, vKey, cost) {
+		var uNode, vNode;
+		if (uKey.constructor != node) {
+			uNode = this.nodes.item(uKey);
+			vNode = this.nodes.item(vKey);
+		} else {
+			uNode = uKey;
+			vNode = vKey;
+		}
+		var c = cost || 0;
+		uNode.addDirected(vNode, c);
+		vNode.addDirected(uNode, c);
+	};
+	this.contains = function (n) {
+		return this.nodes.containsKey(n.key);
+	};
+	this.containsKey = function (k) {
+		return this.nodes.containsKey(k);
+	};
+};
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Graph.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Graph.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Graph.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Queue.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Queue.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Queue.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Queue.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,67 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.collections.Queue");
+dojo.require("dojo.collections.Collections");
+dojo.collections.Queue = function (arr) {
+	var q = [];
+	if (arr) {
+		q = q.concat(arr);
+	}
+	this.count = q.length;
+	this.clear = function () {
+		q = [];
+		this.count = q.length;
+	};
+	this.clone = function () {
+		return new dojo.collections.Queue(q);
+	};
+	this.contains = function (o) {
+		for (var i = 0; i < q.length; i++) {
+			if (q[i] == o) {
+				return true;
+			}
+		}
+		return false;
+	};
+	this.copyTo = function (arr, i) {
+		arr.splice(i, 0, q);
+	};
+	this.dequeue = function () {
+		var r = q.shift();
+		this.count = q.length;
+		return r;
+	};
+	this.enqueue = function (o) {
+		this.count = q.push(o);
+	};
+	this.forEach = function (fn, scope) {
+		var s = scope || dj_global;
+		if (Array.forEach) {
+			Array.forEach(q, fn, s);
+		} else {
+			for (var i = 0; i < q.length; i++) {
+				fn.call(s, q[i], i, q);
+			}
+		}
+	};
+	this.getIterator = function () {
+		return new dojo.collections.Iterator(q);
+	};
+	this.peek = function () {
+		return q[0];
+	};
+	this.toArray = function () {
+		return [].concat(q);
+	};
+};
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Queue.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Queue.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Queue.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Set.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Set.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Set.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Set.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,114 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.collections.Set");
+dojo.require("dojo.collections.Collections");
+dojo.require("dojo.collections.ArrayList");
+dojo.collections.Set = new function () {
+	this.union = function (setA, setB) {
+		if (setA.constructor == Array) {
+			var setA = new dojo.collections.ArrayList(setA);
+		}
+		if (setB.constructor == Array) {
+			var setB = new dojo.collections.ArrayList(setB);
+		}
+		if (!setA.toArray || !setB.toArray) {
+			dojo.raise("Set operations can only be performed on array-based collections.");
+		}
+		var result = new dojo.collections.ArrayList(setA.toArray());
+		var e = setB.getIterator();
+		while (!e.atEnd()) {
+			var item = e.get();
+			if (!result.contains(item)) {
+				result.add(item);
+			}
+		}
+		return result;
+	};
+	this.intersection = function (setA, setB) {
+		if (setA.constructor == Array) {
+			var setA = new dojo.collections.ArrayList(setA);
+		}
+		if (setB.constructor == Array) {
+			var setB = new dojo.collections.ArrayList(setB);
+		}
+		if (!setA.toArray || !setB.toArray) {
+			dojo.raise("Set operations can only be performed on array-based collections.");
+		}
+		var result = new dojo.collections.ArrayList();
+		var e = setB.getIterator();
+		while (!e.atEnd()) {
+			var item = e.get();
+			if (setA.contains(item)) {
+				result.add(item);
+			}
+		}
+		return result;
+	};
+	this.difference = function (setA, setB) {
+		if (setA.constructor == Array) {
+			var setA = new dojo.collections.ArrayList(setA);
+		}
+		if (setB.constructor == Array) {
+			var setB = new dojo.collections.ArrayList(setB);
+		}
+		if (!setA.toArray || !setB.toArray) {
+			dojo.raise("Set operations can only be performed on array-based collections.");
+		}
+		var result = new dojo.collections.ArrayList();
+		var e = setA.getIterator();
+		while (!e.atEnd()) {
+			var item = e.get();
+			if (!setB.contains(item)) {
+				result.add(item);
+			}
+		}
+		return result;
+	};
+	this.isSubSet = function (setA, setB) {
+		if (setA.constructor == Array) {
+			var setA = new dojo.collections.ArrayList(setA);
+		}
+		if (setB.constructor == Array) {
+			var setB = new dojo.collections.ArrayList(setB);
+		}
+		if (!setA.toArray || !setB.toArray) {
+			dojo.raise("Set operations can only be performed on array-based collections.");
+		}
+		var e = setA.getIterator();
+		while (!e.atEnd()) {
+			if (!setB.contains(e.get())) {
+				return false;
+			}
+		}
+		return true;
+	};
+	this.isSuperSet = function (setA, setB) {
+		if (setA.constructor == Array) {
+			var setA = new dojo.collections.ArrayList(setA);
+		}
+		if (setB.constructor == Array) {
+			var setB = new dojo.collections.ArrayList(setB);
+		}
+		if (!setA.toArray || !setB.toArray) {
+			dojo.raise("Set operations can only be performed on array-based collections.");
+		}
+		var e = setB.getIterator();
+		while (!e.atEnd()) {
+			if (!setA.contains(e.get())) {
+				return false;
+			}
+		}
+		return true;
+	};
+}();
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Set.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Set.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Set.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/SkipList.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/SkipList.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/SkipList.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/SkipList.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,169 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.collections.SkipList");
+dojo.require("dojo.collections.Collections");
+dojo.require("dojo.experimental");
+dojo.experimental("dojo.collections.SkipList");
+dojo.collections.SkipList = function () {
+	function node(height, val) {
+		this.value = val;
+		this.height = height;
+		this.nodes = new nodeList(height);
+		this.compare = function (val) {
+			if (this.value > val) {
+				return 1;
+			}
+			if (this.value < val) {
+				return -1;
+			}
+			return 0;
+		};
+		this.incrementHeight = function () {
+			this.nodes.incrementHeight();
+			this.height++;
+		};
+		this.decrementHeight = function () {
+			this.nodes.decrementHeight();
+			this.height--;
+		};
+	}
+	function nodeList(height) {
+		var arr = [];
+		this.height = height;
+		for (var i = 0; i < height; i++) {
+			arr[i] = null;
+		}
+		this.item = function (i) {
+			return arr[i];
+		};
+		this.incrementHeight = function () {
+			this.height++;
+			arr[this.height] = null;
+		};
+		this.decrementHeight = function () {
+			arr.splice(arr.length - 1, 1);
+			this.height--;
+		};
+	}
+	function iterator(list) {
+		this.element = list.head;
+		this.atEnd = function () {
+			return (this.element == null);
+		};
+		this.get = function () {
+			if (this.atEnd()) {
+				return null;
+			}
+			this.element = this.element.nodes[0];
+			return this.element;
+		};
+		this.reset = function () {
+			this.element = list.head;
+		};
+	}
+	function chooseRandomHeight(max) {
+		var level = 1;
+		while (Math.random() < PROB && level < max) {
+			level++;
+		}
+		return level;
+	}
+	var PROB = 0.5;
+	var comparisons = 0;
+	this.head = new node(1);
+	this.count = 0;
+	this.add = function (val) {
+		var updates = [];
+		var current = this.head;
+		for (var i = this.head.height; i >= 0; i--) {
+			if (!(current.nodes[i] != null && current.nodes[i].compare(val) < 0)) {
+				comparisons++;
+			}
+			while (current.nodes[i] != null && current.nodes[i].compare(val) < 0) {
+				current = current.nodes[i];
+				comparisons++;
+			}
+			updates[i] = current;
+		}
+		if (current.nodes[0] != null && current.nodes[0].compare(val) == 0) {
+			return;
+		}
+		var n = new node(val, chooseRandomHeight(this.head.height + 1));
+		this.count++;
+		if (n.height > this.head.height) {
+			this.head.incrementHeight();
+			this.head.nodes[this.head.height - 1] = n;
+		}
+		for (i = 0; i < n.height; i++) {
+			if (i < updates.length) {
+				n.nodes[i] = updates[i].nodes[i];
+				updates[i].nodes[i] = n;
+			}
+		}
+	};
+	this.contains = function (val) {
+		var current = this.head;
+		var i;
+		for (i = this.head.height - 1; i >= 0; i--) {
+			while (current.item(i) != null) {
+				comparisons++;
+				var result = current.nodes[i].compare(val);
+				if (result == 0) {
+					return true;
+				} else {
+					if (result < 0) {
+						current = current.nodes[i];
+					} else {
+						break;
+					}
+				}
+			}
+		}
+		return false;
+	};
+	this.getIterator = function () {
+		return new iterator(this);
+	};
+	this.remove = function (val) {
+		var updates = [];
+		var current = this.head;
+		for (var i = this.head.height - 1; i >= 0; i--) {
+			if (!(current.nodes[i] != null && current.nodes[i].compare(val) < 0)) {
+				comparisons++;
+			}
+			while (current.nodes[i] != null && current.nodes[i].compare(val) < 0) {
+				current = current.nodes[i];
+				comparisons++;
+			}
+			updates[i] = current;
+		}
+		current = current.nodes[0];
+		if (current != null && current.compare(val) == 0) {
+			this.count--;
+			for (var i = 0; i < this.head.height; i++) {
+				if (updates[i].nodes[i] != current) {
+					break;
+				} else {
+					updates[i].nodes[i] = current.nodes[i];
+				}
+			}
+			if (this.head.nodes[this.head.height - 1] == null) {
+				this.head.decrementHeight();
+			}
+		}
+	};
+	this.resetComparisons = function () {
+		comparisons = 0;
+	};
+};
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/SkipList.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/SkipList.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/SkipList.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/SortedList.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/SortedList.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/SortedList.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/SortedList.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,171 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.collections.SortedList");
+dojo.require("dojo.collections.Collections");
+dojo.collections.SortedList = function (dictionary) {
+	var _this = this;
+	var items = {};
+	var q = [];
+	var sorter = function (a, b) {
+		if (a.key > b.key) {
+			return 1;
+		}
+		if (a.key < b.key) {
+			return -1;
+		}
+		return 0;
+	};
+	var build = function () {
+		q = [];
+		var e = _this.getIterator();
+		while (!e.atEnd()) {
+			q.push(e.get());
+		}
+		q.sort(sorter);
+	};
+	var testObject = {};
+	this.count = q.length;
+	this.add = function (k, v) {
+		if (!items[k]) {
+			items[k] = new dojo.collections.DictionaryEntry(k, v);
+			this.count = q.push(items[k]);
+			q.sort(sorter);
+		}
+	};
+	this.clear = function () {
+		items = {};
+		q = [];
+		this.count = q.length;
+	};
+	this.clone = function () {
+		return new dojo.collections.SortedList(this);
+	};
+	this.contains = this.containsKey = function (k) {
+		if (testObject[k]) {
+			return false;
+		}
+		return (items[k] != null);
+	};
+	this.containsValue = function (o) {
+		var e = this.getIterator();
+		while (!e.atEnd()) {
+			var item = e.get();
+			if (item.value == o) {
+				return true;
+			}
+		}
+		return false;
+	};
+	this.copyTo = function (arr, i) {
+		var e = this.getIterator();
+		var idx = i;
+		while (!e.atEnd()) {
+			arr.splice(idx, 0, e.get());
+			idx++;
+		}
+	};
+	this.entry = function (k) {
+		return items[k];
+	};
+	this.forEach = function (fn, scope) {
+		var s = scope || dj_global;
+		if (Array.forEach) {
+			Array.forEach(q, fn, s);
+		} else {
+			for (var i = 0; i < q.length; i++) {
+				fn.call(s, q[i], i, q);
+			}
+		}
+	};
+	this.getByIndex = function (i) {
+		return q[i].valueOf();
+	};
+	this.getIterator = function () {
+		return new dojo.collections.DictionaryIterator(items);
+	};
+	this.getKey = function (i) {
+		return q[i].key;
+	};
+	this.getKeyList = function () {
+		var arr = [];
+		var e = this.getIterator();
+		while (!e.atEnd()) {
+			arr.push(e.get().key);
+		}
+		return arr;
+	};
+	this.getValueList = function () {
+		var arr = [];
+		var e = this.getIterator();
+		while (!e.atEnd()) {
+			arr.push(e.get().value);
+		}
+		return arr;
+	};
+	this.indexOfKey = function (k) {
+		for (var i = 0; i < q.length; i++) {
+			if (q[i].key == k) {
+				return i;
+			}
+		}
+		return -1;
+	};
+	this.indexOfValue = function (o) {
+		for (var i = 0; i < q.length; i++) {
+			if (q[i].value == o) {
+				return i;
+			}
+		}
+		return -1;
+	};
+	this.item = function (k) {
+		if (k in items && !testObject[k]) {
+			return items[k].valueOf();
+		}
+		return undefined;
+	};
+	this.remove = function (k) {
+		delete items[k];
+		build();
+		this.count = q.length;
+	};
+	this.removeAt = function (i) {
+		delete items[q[i].key];
+		build();
+		this.count = q.length;
+	};
+	this.replace = function (k, v) {
+		if (!items[k]) {
+			this.add(k, v);
+			return false;
+		} else {
+			items[k] = new dojo.collections.DictionaryEntry(k, v);
+			q.sort(sorter);
+			return true;
+		}
+	};
+	this.setByIndex = function (i, o) {
+		items[q[i].key].value = o;
+		build();
+		this.count = q.length;
+	};
+	if (dictionary) {
+		var e = dictionary.getIterator();
+		while (!e.atEnd()) {
+			var item = e.get();
+			q[q.length] = items[item.key] = new dojo.collections.DictionaryEntry(item.key, item.value);
+		}
+		q.sort(sorter);
+	}
+};
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/SortedList.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/SortedList.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/SortedList.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Stack.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Stack.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Stack.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Stack.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,67 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.collections.Stack");
+dojo.require("dojo.collections.Collections");
+dojo.collections.Stack = function (arr) {
+	var q = [];
+	if (arr) {
+		q = q.concat(arr);
+	}
+	this.count = q.length;
+	this.clear = function () {
+		q = [];
+		this.count = q.length;
+	};
+	this.clone = function () {
+		return new dojo.collections.Stack(q);
+	};
+	this.contains = function (o) {
+		for (var i = 0; i < q.length; i++) {
+			if (q[i] == o) {
+				return true;
+			}
+		}
+		return false;
+	};
+	this.copyTo = function (arr, i) {
+		arr.splice(i, 0, q);
+	};
+	this.forEach = function (fn, scope) {
+		var s = scope || dj_global;
+		if (Array.forEach) {
+			Array.forEach(q, fn, s);
+		} else {
+			for (var i = 0; i < q.length; i++) {
+				fn.call(s, q[i], i, q);
+			}
+		}
+	};
+	this.getIterator = function () {
+		return new dojo.collections.Iterator(q);
+	};
+	this.peek = function () {
+		return q[(q.length - 1)];
+	};
+	this.pop = function () {
+		var r = q.pop();
+		this.count = q.length;
+		return r;
+	};
+	this.push = function (o) {
+		this.count = q.push(o);
+	};
+	this.toArray = function () {
+		return [].concat(q);
+	};
+};
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Stack.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Stack.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Stack.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Store.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Store.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Store.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Store.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,293 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.collections.Store");
+dojo.require("dojo.lang.common");
+dojo.collections.Store = function (jsonArray) {
+	var data = [];
+	var items = {};
+	this.keyField = "Id";
+	this.get = function () {
+		return data;
+	};
+	this.getByKey = function (key) {
+		return items[key];
+	};
+	this.getByIndex = function (idx) {
+		return data[idx];
+	};
+	this.getIndexOf = function (key) {
+		for (var i = 0; i < data.length; i++) {
+			if (data[i].key == key) {
+				return i;
+			}
+		}
+		return -1;
+	};
+	this.getData = function () {
+		var arr = [];
+		for (var i = 0; i < data.length; i++) {
+			arr.push(data[i].src);
+		}
+		return arr;
+	};
+	this.getDataByKey = function (key) {
+		if (items[key] != null) {
+			return items[key].src;
+		}
+		return null;
+	};
+	this.getIndexOfData = function (obj) {
+		for (var i = 0; i < data.length; i++) {
+			if (data[i].src == obj) {
+				return i;
+			}
+		}
+		return -1;
+	};
+	this.getDataByIndex = function (idx) {
+		if (data[idx]) {
+			return data[idx].src;
+		}
+		return null;
+	};
+	this.update = function (obj, fieldPath, val, bDontFire) {
+		var parts = fieldPath.split("."), i = 0, o = obj, field;
+		if (parts.length > 1) {
+			field = parts.pop();
+			do {
+				if (parts[i].indexOf("()") > -1) {
+					var temp = parts[i++].split("()")[0];
+					if (!o[temp]) {
+						dojo.raise("dojo.collections.Store.getField(obj, '" + field + "'): '" + temp + "' is not a property of the passed object.");
+					} else {
+						o = o[temp]();
+					}
+				} else {
+					o = o[parts[i++]];
+				}
+			} while (i < parts.length && o != null);
+		} else {
+			field = parts[0];
+		}
+		obj[field] = val;
+		if (!bDontFire) {
+			this.onUpdateField(obj, fieldPath, val);
+		}
+	};
+	this.forEach = function (fn) {
+		if (Array.forEach) {
+			Array.forEach(data, fn, this);
+		} else {
+			for (var i = 0; i < data.length; i++) {
+				fn.call(this, data[i]);
+			}
+		}
+	};
+	this.forEachData = function (fn) {
+		if (Array.forEach) {
+			Array.forEach(this.getData(), fn, this);
+		} else {
+			var a = this.getData();
+			for (var i = 0; i < a.length; i++) {
+				fn.call(this, a[i]);
+			}
+		}
+	};
+	this.setData = function (arr, bDontFire) {
+		data = [];
+		for (var i = 0; i < arr.length; i++) {
+			var o = {key:arr[i][this.keyField], src:arr[i]};
+			data.push(o);
+			items[o.key] = o;
+		}
+		if (!bDontFire) {
+			this.onSetData();
+		}
+	};
+	this.clearData = function (bDontFire) {
+		data = [];
+		items = {};
+		if (!bDontFire) {
+			this.onClearData();
+		}
+	};
+	this.addData = function (obj, key, bDontFire) {
+		var k = key || obj[this.keyField];
+		if (items[k] != null) {
+			var o = items[k];
+			o.src = obj;
+		} else {
+			var o = {key:k, src:obj};
+			data.push(o);
+			items[o.key] = o;
+		}
+		if (!bDontFire) {
+			this.onAddData(o);
+		}
+	};
+	this.addDataRange = function (arr, bDontFire) {
+		var objects = [];
+		for (var i = 0; i < arr.length; i++) {
+			var k = arr[i][this.keyField];
+			if (items[k] != null) {
+				var o = items[k];
+				o.src = arr[i];
+			} else {
+				var o = {key:k, src:arr[i]};
+				data.push(o);
+				items[k] = o;
+			}
+			objects.push(o);
+		}
+		if (!bDontFire) {
+			this.onAddDataRange(objects);
+		}
+	};
+	this.addDataByIndex = function (obj, idx, key, bDontFire) {
+		var k = key || obj[this.keyField];
+		if (items[k] != null) {
+			var i = this.getIndexOf(k);
+			var o = data.splice(i, 1);
+			o.src = obj;
+		} else {
+			var o = {key:k, src:obj};
+			items[k] = o;
+		}
+		data.splice(idx, 0, o);
+		if (!bDontFire) {
+			this.onAddData(o);
+		}
+	};
+	this.addDataRangeByIndex = function (arr, idx, bDontFire) {
+		var objects = [];
+		for (var i = 0; i < arr.length; i++) {
+			var k = arr[i][this.keyField];
+			if (items[k] != null) {
+				var j = this.getIndexOf(k);
+				var o = data.splice(j, 1);
+				o.src = arr[i];
+			} else {
+				var o = {key:k, src:arr[i]};
+				items[k] = o;
+			}
+			objects.push(o);
+		}
+		data.splice(idx, 0, objects);
+		if (!bDontFire) {
+			this.onAddDataRange(objects);
+		}
+	};
+	this.removeData = function (obj, bDontFire) {
+		var idx = -1;
+		var o = null;
+		for (var i = 0; i < data.length; i++) {
+			if (data[i].src == obj) {
+				idx = i;
+				o = data[i];
+				break;
+			}
+		}
+		if (!bDontFire) {
+			this.onRemoveData(o);
+		}
+		if (idx > -1) {
+			data.splice(idx, 1);
+			delete items[o.key];
+		}
+	};
+	this.removeDataRange = function (idx, range, bDontFire) {
+		var ret = data.splice(idx, range);
+		for (var i = 0; i < ret.length; i++) {
+			delete items[ret[i].key];
+		}
+		if (!bDontFire) {
+			this.onRemoveDataRange(ret);
+		}
+		return ret;
+	};
+	this.removeDataByKey = function (key, bDontFire) {
+		this.removeData(this.getDataByKey(key), bDontFire);
+	};
+	this.removeDataByIndex = function (idx, bDontFire) {
+		this.removeData(this.getDataByIndex(idx), bDontFire);
+	};
+	if (jsonArray && jsonArray.length && jsonArray[0]) {
+		this.setData(jsonArray, true);
+	}
+};
+dojo.extend(dojo.collections.Store, {getField:function (obj, field) {
+	var parts = field.split("."), i = 0, o = obj;
+	do {
+		if (parts[i].indexOf("()") > -1) {
+			var temp = parts[i++].split("()")[0];
+			if (!o[temp]) {
+				dojo.raise("dojo.collections.Store.getField(obj, '" + field + "'): '" + temp + "' is not a property of the passed object.");
+			} else {
+				o = o[temp]();
+			}
+		} else {
+			o = o[parts[i++]];
+		}
+	} while (i < parts.length && o != null);
+	if (i < parts.length) {
+		dojo.raise("dojo.collections.Store.getField(obj, '" + field + "'): '" + field + "' is not a property of the passed object.");
+	}
+	return o;
+}, getFromHtml:function (meta, body, fnMod) {
+	var rows = body.rows;
+	var ctor = function (row) {
+		var obj = {};
+		for (var i = 0; i < meta.length; i++) {
+			var o = obj;
+			var data = row.cells[i].innerHTML;
+			var p = meta[i].getField();
+			if (p.indexOf(".") > -1) {
+				p = p.split(".");
+				while (p.length > 1) {
+					var pr = p.shift();
+					o[pr] = {};
+					o = o[pr];
+				}
+				p = p[0];
+			}
+			var type = meta[i].getType();
+			if (type == String) {
+				o[p] = data;
+			} else {
+				if (data) {
+					o[p] = new type(data);
+				} else {
+					o[p] = new type();
+				}
+			}
+		}
+		return obj;
+	};
+	var arr = [];
+	for (var i = 0; i < rows.length; i++) {
+		var o = ctor(rows[i]);
+		if (fnMod) {
+			fnMod(o, rows[i]);
+		}
+		arr.push(o);
+	}
+	return arr;
+}, onSetData:function () {
+}, onClearData:function () {
+}, onAddData:function (obj) {
+}, onAddDataRange:function (arr) {
+}, onRemoveData:function (obj) {
+}, onRemoveDataRange:function (arr) {
+}, onUpdateField:function (obj, field, val) {
+}});
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Store.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Store.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/Store.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/__package__.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/__package__.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/__package__.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/__package__.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,15 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.kwCompoundRequire({common:["dojo.collections.Collections", "dojo.collections.SortedList", "dojo.collections.Dictionary", "dojo.collections.Queue", "dojo.collections.ArrayList", "dojo.collections.Stack", "dojo.collections.Set"]});
+dojo.provide("dojo.collections.*");
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/__package__.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/__package__.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/collections/__package__.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,16 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.crypto");
+dojo.crypto.cipherModes = {ECB:0, CBC:1, PCBC:2, CFB:3, OFB:4, CTR:5};
+dojo.crypto.outputTypes = {Base64:0, Hex:1, String:2, Raw:3};
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/Blowfish.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/Blowfish.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/Blowfish.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/Blowfish.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,384 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.require("dojo.crypto");
+dojo.provide("dojo.crypto.Blowfish");
+dojo.crypto.Blowfish = new function () {
+	var POW2 = Math.pow(2, 2);
+	var POW3 = Math.pow(2, 3);
+	var POW4 = Math.pow(2, 4);
+	var POW8 = Math.pow(2, 8);
+	var POW16 = Math.pow(2, 16);
+	var POW24 = Math.pow(2, 24);
+	var iv = null;
+	var boxes = {p:[608135816, 2242054355, 320440878, 57701188, 2752067618, 698298832, 137296536, 3964562569, 1160258022, 953160567, 3193202383, 887688300, 3232508343, 3380367581, 1065670069, 3041331479, 2450970073, 2306472731], s0:[3509652390, 2564797868, 805139163, 3491422135, 3101798381, 1780907670, 3128725573, 4046225305, 614570311, 3012652279, 134345442, 2240740374, 1667834072, 1901547113, 2757295779, 4103290238, 227898511, 1921955416, 1904987480, 2182433518, 2069144605, 3260701109, 2620446009, 720527379, 3318853667, 677414384, 3393288472, 3101374703, 2390351024, 1614419982, 1822297739, 2954791486, 3608508353, 3174124327, 2024746970, 1432378464, 3864339955, 2857741204, 1464375394, 1676153920, 1439316330, 715854006, 3033291828, 289532110, 2706671279, 2087905683, 3018724369, 1668267050, 732546397, 1947742710, 3462151702, 2609353502, 2950085171, 1814351708, 2050118529, 680887927, 999245976, 1800124847, 3300911131, 1713906067, 1641548236, 4213287313, 1216130144, 1575780402, 40
 18429277, 3917837745, 3693486850, 3949271944, 596196993, 3549867205, 258830323, 2213823033, 772490370, 2760122372, 1774776394, 2652871518, 566650946, 4142492826, 1728879713, 2882767088, 1783734482, 3629395816, 2517608232, 2874225571, 1861159788, 326777828, 3124490320, 2130389656, 2716951837, 967770486, 1724537150, 2185432712, 2364442137, 1164943284, 2105845187, 998989502, 3765401048, 2244026483, 1075463327, 1455516326, 1322494562, 910128902, 469688178, 1117454909, 936433444, 3490320968, 3675253459, 1240580251, 122909385, 2157517691, 634681816, 4142456567, 3825094682, 3061402683, 2540495037, 79693498, 3249098678, 1084186820, 1583128258, 426386531, 1761308591, 1047286709, 322548459, 995290223, 1845252383, 2603652396, 3431023940, 2942221577, 3202600964, 3727903485, 1712269319, 422464435, 3234572375, 1170764815, 3523960633, 3117677531, 1434042557, 442511882, 3600875718, 1076654713, 1738483198, 4213154764, 2393238008, 3677496056, 1014306527, 4251020053, 793779912, 2902807211, 842
 905082, 4246964064, 1395751752, 1040244610, 2656851899, 3396308128, 445077038, 3742853595, 3577915638, 679411651, 2892444358, 2354009459, 1767581616, 3150600392, 3791627101, 3102740896, 284835224, 4246832056, 1258075500, 768725851, 2589189241, 3069724005, 3532540348, 1274779536, 3789419226, 2764799539, 1660621633, 3471099624, 4011903706, 913787905, 3497959166, 737222580, 2514213453, 2928710040, 3937242737, 1804850592, 3499020752, 2949064160, 2386320175, 2390070455, 2415321851, 4061277028, 2290661394, 2416832540, 1336762016, 1754252060, 3520065937, 3014181293, 791618072, 3188594551, 3933548030, 2332172193, 3852520463, 3043980520, 413987798, 3465142937, 3030929376, 4245938359, 2093235073, 3534596313, 375366246, 2157278981, 2479649556, 555357303, 3870105701, 2008414854, 3344188149, 4221384143, 3956125452, 2067696032, 3594591187, 2921233993, 2428461, 544322398, 577241275, 1471733935, 610547355, 4027169054, 1432588573, 1507829418, 2025931657, 3646575487, 545086370, 48609733, 2200
 306550, 1653985193, 298326376, 1316178497, 3007786442, 2064951626, 458293330, 2589141269, 3591329599, 3164325604, 727753846, 2179363840, 146436021, 1461446943, 4069977195, 705550613, 3059967265, 3887724982, 4281599278, 3313849956, 1404054877, 2845806497, 146425753, 1854211946], s1:[1266315497, 3048417604, 3681880366, 3289982499, 2909710000, 1235738493, 2632868024, 2414719590, 3970600049, 1771706367, 1449415276, 3266420449, 422970021, 1963543593, 2690192192, 3826793022, 1062508698, 1531092325, 1804592342, 2583117782, 2714934279, 4024971509, 1294809318, 4028980673, 1289560198, 2221992742, 1669523910, 35572830, 157838143, 1052438473, 1016535060, 1802137761, 1753167236, 1386275462, 3080475397, 2857371447, 1040679964, 2145300060, 2390574316, 1461121720, 2956646967, 4031777805, 4028374788, 33600511, 2920084762, 1018524850, 629373528, 3691585981, 3515945977, 2091462646, 2486323059, 586499841, 988145025, 935516892, 3367335476, 2599673255, 2839830854, 265290510, 3972581182, 275913888
 1, 3795373465, 1005194799, 847297441, 406762289, 1314163512, 1332590856, 1866599683, 4127851711, 750260880, 613907577, 1450815602, 3165620655, 3734664991, 3650291728, 3012275730, 3704569646, 1427272223, 778793252, 1343938022, 2676280711, 2052605720, 1946737175, 3164576444, 3914038668, 3967478842, 3682934266, 1661551462, 3294938066, 4011595847, 840292616, 3712170807, 616741398, 312560963, 711312465, 1351876610, 322626781, 1910503582, 271666773, 2175563734, 1594956187, 70604529, 3617834859, 1007753275, 1495573769, 4069517037, 2549218298, 2663038764, 504708206, 2263041392, 3941167025, 2249088522, 1514023603, 1998579484, 1312622330, 694541497, 2582060303, 2151582166, 1382467621, 776784248, 2618340202, 3323268794, 2497899128, 2784771155, 503983604, 4076293799, 907881277, 423175695, 432175456, 1378068232, 4145222326, 3954048622, 3938656102, 3820766613, 2793130115, 2977904593, 26017576, 3274890735, 3194772133, 1700274565, 1756076034, 4006520079, 3677328699, 720338349, 1533947780, 3
 54530856, 688349552, 3973924725, 1637815568, 332179504, 3949051286, 53804574, 2852348879, 3044236432, 1282449977, 3583942155, 3416972820, 4006381244, 1617046695, 2628476075, 3002303598, 1686838959, 431878346, 2686675385, 1700445008, 1080580658, 1009431731, 832498133, 3223435511, 2605976345, 2271191193, 2516031870, 1648197032, 4164389018, 2548247927, 300782431, 375919233, 238389289, 3353747414, 2531188641, 2019080857, 1475708069, 455242339, 2609103871, 448939670, 3451063019, 1395535956, 2413381860, 1841049896, 1491858159, 885456874, 4264095073, 4001119347, 1565136089, 3898914787, 1108368660, 540939232, 1173283510, 2745871338, 3681308437, 4207628240, 3343053890, 4016749493, 1699691293, 1103962373, 3625875870, 2256883143, 3830138730, 1031889488, 3479347698, 1535977030, 4236805024, 3251091107, 2132092099, 1774941330, 1199868427, 1452454533, 157007616, 2904115357, 342012276, 595725824, 1480756522, 206960106, 497939518, 591360097, 863170706, 2375253569, 3596610801, 1814182875, 209
 4937945, 3421402208, 1082520231, 3463918190, 2785509508, 435703966, 3908032597, 1641649973, 2842273706, 3305899714, 1510255612, 2148256476, 2655287854, 3276092548, 4258621189, 236887753, 3681803219, 274041037, 1734335097, 3815195456, 3317970021, 1899903192, 1026095262, 4050517792, 356393447, 2410691914, 3873677099, 3682840055], s2:[3913112168, 2491498743, 4132185628, 2489919796, 1091903735, 1979897079, 3170134830, 3567386728, 3557303409, 857797738, 1136121015, 1342202287, 507115054, 2535736646, 337727348, 3213592640, 1301675037, 2528481711, 1895095763, 1721773893, 3216771564, 62756741, 2142006736, 835421444, 2531993523, 1442658625, 3659876326, 2882144922, 676362277, 1392781812, 170690266, 3921047035, 1759253602, 3611846912, 1745797284, 664899054, 1329594018, 3901205900, 3045908486, 2062866102, 2865634940, 3543621612, 3464012697, 1080764994, 553557557, 3656615353, 3996768171, 991055499, 499776247, 1265440854, 648242737, 3940784050, 980351604, 3713745714, 1749149687, 339687039
 5, 4211799374, 3640570775, 1161844396, 3125318951, 1431517754, 545492359, 4268468663, 3499529547, 1437099964, 2702547544, 3433638243, 2581715763, 2787789398, 1060185593, 1593081372, 2418618748, 4260947970, 69676912, 2159744348, 86519011, 2512459080, 3838209314, 1220612927, 3339683548, 133810670, 1090789135, 1078426020, 1569222167, 845107691, 3583754449, 4072456591, 1091646820, 628848692, 1613405280, 3757631651, 526609435, 236106946, 48312990, 2942717905, 3402727701, 1797494240, 859738849, 992217954, 4005476642, 2243076622, 3870952857, 3732016268, 765654824, 3490871365, 2511836413, 1685915746, 3888969200, 1414112111, 2273134842, 3281911079, 4080962846, 172450625, 2569994100, 980381355, 4109958455, 2819808352, 2716589560, 2568741196, 3681446669, 3329971472, 1835478071, 660984891, 3704678404, 4045999559, 3422617507, 3040415634, 1762651403, 1719377915, 3470491036, 2693910283, 3642056355, 3138596744, 1364962596, 2073328063, 1983633131, 926494387, 3423689081, 2150032023, 409666794
 9, 1749200295, 3328846651, 309677260, 2016342300, 1779581495, 3079819751, 111262694, 1274766160, 443224088, 298511866, 1025883608, 3806446537, 1145181785, 168956806, 3641502830, 3584813610, 1689216846, 3666258015, 3200248200, 1692713982, 2646376535, 4042768518, 1618508792, 1610833997, 3523052358, 4130873264, 2001055236, 3610705100, 2202168115, 4028541809, 2961195399, 1006657119, 2006996926, 3186142756, 1430667929, 3210227297, 1314452623, 4074634658, 4101304120, 2273951170, 1399257539, 3367210612, 3027628629, 1190975929, 2062231137, 2333990788, 2221543033, 2438960610, 1181637006, 548689776, 2362791313, 3372408396, 3104550113, 3145860560, 296247880, 1970579870, 3078560182, 3769228297, 1714227617, 3291629107, 3898220290, 166772364, 1251581989, 493813264, 448347421, 195405023, 2709975567, 677966185, 3703036547, 1463355134, 2715995803, 1338867538, 1343315457, 2802222074, 2684532164, 233230375, 2599980071, 2000651841, 3277868038, 1638401717, 4028070440, 3237316320, 6314154, 819756
 386, 300326615, 590932579, 1405279636, 3267499572, 3150704214, 2428286686, 3959192993, 3461946742, 1862657033, 1266418056, 963775037, 2089974820, 2263052895, 1917689273, 448879540, 3550394620, 3981727096, 150775221, 3627908307, 1303187396, 508620638, 2975983352, 2726630617, 1817252668, 1876281319, 1457606340, 908771278, 3720792119, 3617206836, 2455994898, 1729034894, 1080033504], s3:[976866871, 3556439503, 2881648439, 1522871579, 1555064734, 1336096578, 3548522304, 2579274686, 3574697629, 3205460757, 3593280638, 3338716283, 3079412587, 564236357, 2993598910, 1781952180, 1464380207, 3163844217, 3332601554, 1699332808, 1393555694, 1183702653, 3581086237, 1288719814, 691649499, 2847557200, 2895455976, 3193889540, 2717570544, 1781354906, 1676643554, 2592534050, 3230253752, 1126444790, 2770207658, 2633158820, 2210423226, 2615765581, 2414155088, 3127139286, 673620729, 2805611233, 1269405062, 4015350505, 3341807571, 4149409754, 1057255273, 2012875353, 2162469141, 2276492801, 260111
 7357, 993977747, 3918593370, 2654263191, 753973209, 36408145, 2530585658, 25011837, 3520020182, 2088578344, 530523599, 2918365339, 1524020338, 1518925132, 3760827505, 3759777254, 1202760957, 3985898139, 3906192525, 674977740, 4174734889, 2031300136, 2019492241, 3983892565, 4153806404, 3822280332, 352677332, 2297720250, 60907813, 90501309, 3286998549, 1016092578, 2535922412, 2839152426, 457141659, 509813237, 4120667899, 652014361, 1966332200, 2975202805, 55981186, 2327461051, 676427537, 3255491064, 2882294119, 3433927263, 1307055953, 942726286, 933058658, 2468411793, 3933900994, 4215176142, 1361170020, 2001714738, 2830558078, 3274259782, 1222529897, 1679025792, 2729314320, 3714953764, 1770335741, 151462246, 3013232138, 1682292957, 1483529935, 471910574, 1539241949, 458788160, 3436315007, 1807016891, 3718408830, 978976581, 1043663428, 3165965781, 1927990952, 4200891579, 2372276910, 3208408903, 3533431907, 1412390302, 2931980059, 4132332400, 1947078029, 3881505623, 4168226417, 
 2941484381, 1077988104, 1320477388, 886195818, 18198404, 3786409000, 2509781533, 112762804, 3463356488, 1866414978, 891333506, 18488651, 661792760, 1628790961, 3885187036, 3141171499, 876946877, 2693282273, 1372485963, 791857591, 2686433993, 3759982718, 3167212022, 3472953795, 2716379847, 445679433, 3561995674, 3504004811, 3574258232, 54117162, 3331405415, 2381918588, 3769707343, 4154350007, 1140177722, 4074052095, 668550556, 3214352940, 367459370, 261225585, 2610173221, 4209349473, 3468074219, 3265815641, 314222801, 3066103646, 3808782860, 282218597, 3406013506, 3773591054, 379116347, 1285071038, 846784868, 2669647154, 3771962079, 3550491691, 2305946142, 453669953, 1268987020, 3317592352, 3279303384, 3744833421, 2610507566, 3859509063, 266596637, 3847019092, 517658769, 3462560207, 3443424879, 370717030, 4247526661, 2224018117, 4143653529, 4112773975, 2788324899, 2477274417, 1456262402, 2901442914, 1517677493, 1846949527, 2295493580, 3734397586, 2176403920, 1280348187, 19088
 23572, 3871786941, 846861322, 1172426758, 3287448474, 3383383037, 1655181056, 3139813346, 901632758, 1897031941, 2986607138, 3066810236, 3447102507, 1393639104, 373351379, 950779232, 625454576, 3124240540, 4148612726, 2007998917, 544563296, 2244738638, 2330496472, 2058025392, 1291430526, 424198748, 50039436, 29584100, 3605783033, 2429876329, 2791104160, 1057563949, 3255363231, 3075367218, 3463963227, 1469046755, 985887462]};
+	function add(x, y) {
+		var sum = (x + y) & 4294967295;
+		if (sum < 0) {
+			sum = -sum;
+			return (65536 * ((sum >> 16) ^ 65535)) + (((sum & 65535) ^ 65535) + 1);
+		}
+		return sum;
+	}
+	function split(x) {
+		var r = x & 4294967295;
+		if (r < 0) {
+			r = -r;
+			return [((r & 65535) ^ 65535) + 1, (r >> 16) ^ 65535];
+		}
+		return [r & 65535, (r >> 16)];
+	}
+	function xor(x, y) {
+		var xs = split(x);
+		var ys = split(y);
+		return (65536 * (xs[1] ^ ys[1])) + (xs[0] ^ ys[0]);
+	}
+	function $(v, box) {
+		var d = v & 255;
+		v >>= 8;
+		var c = v & 255;
+		v >>= 8;
+		var b = v & 255;
+		v >>= 8;
+		var a = v & 255;
+		var r = add(box.s0[a], box.s1[b]);
+		r = xor(r, box.s2[c]);
+		return add(r, box.s3[d]);
+	}
+	function eb(o, box) {
+		var l = o.left;
+		var r = o.right;
+		l = xor(l, box.p[0]);
+		r = xor(r, xor($(l, box), box.p[1]));
+		l = xor(l, xor($(r, box), box.p[2]));
+		r = xor(r, xor($(l, box), box.p[3]));
+		l = xor(l, xor($(r, box), box.p[4]));
+		r = xor(r, xor($(l, box), box.p[5]));
+		l = xor(l, xor($(r, box), box.p[6]));
+		r = xor(r, xor($(l, box), box.p[7]));
+		l = xor(l, xor($(r, box), box.p[8]));
+		r = xor(r, xor($(l, box), box.p[9]));
+		l = xor(l, xor($(r, box), box.p[10]));
+		r = xor(r, xor($(l, box), box.p[11]));
+		l = xor(l, xor($(r, box), box.p[12]));
+		r = xor(r, xor($(l, box), box.p[13]));
+		l = xor(l, xor($(r, box), box.p[14]));
+		r = xor(r, xor($(l, box), box.p[15]));
+		l = xor(l, xor($(r, box), box.p[16]));
+		o.right = l;
+		o.left = xor(r, box.p[17]);
+	}
+	function db(o, box) {
+		var l = o.left;
+		var r = o.right;
+		l = xor(l, box.p[17]);
+		r = xor(r, xor($(l, box), box.p[16]));
+		l = xor(l, xor($(r, box), box.p[15]));
+		r = xor(r, xor($(l, box), box.p[14]));
+		l = xor(l, xor($(r, box), box.p[13]));
+		r = xor(r, xor($(l, box), box.p[12]));
+		l = xor(l, xor($(r, box), box.p[11]));
+		r = xor(r, xor($(l, box), box.p[10]));
+		l = xor(l, xor($(r, box), box.p[9]));
+		r = xor(r, xor($(l, box), box.p[8]));
+		l = xor(l, xor($(r, box), box.p[7]));
+		r = xor(r, xor($(l, box), box.p[6]));
+		l = xor(l, xor($(r, box), box.p[5]));
+		r = xor(r, xor($(l, box), box.p[4]));
+		l = xor(l, xor($(r, box), box.p[3]));
+		r = xor(r, xor($(l, box), box.p[2]));
+		l = xor(l, xor($(r, box), box.p[1]));
+		o.right = l;
+		o.left = xor(r, box.p[0]);
+	}
+	function init(key) {
+		var k = key;
+		if (typeof (k) == "string") {
+			var a = [];
+			for (var i = 0; i < k.length; i++) {
+				a.push(k.charCodeAt(i) & 255);
+			}
+			k = a;
+		}
+		var box = {p:[], s0:[], s1:[], s2:[], s3:[]};
+		for (var i = 0; i < boxes.p.length; i++) {
+			box.p.push(boxes.p[i]);
+		}
+		for (var i = 0; i < boxes.s0.length; i++) {
+			box.s0.push(boxes.s0[i]);
+		}
+		for (var i = 0; i < boxes.s1.length; i++) {
+			box.s1.push(boxes.s1[i]);
+		}
+		for (var i = 0; i < boxes.s2.length; i++) {
+			box.s2.push(boxes.s2[i]);
+		}
+		for (var i = 0; i < boxes.s3.length; i++) {
+			box.s3.push(boxes.s3[i]);
+		}
+		var pos = 0;
+		var data = 0;
+		for (var i = 0; i < box.p.length; i++) {
+			for (var j = 0; j < 4; j++) {
+				data = (data * POW8) | k[pos];
+				if (++pos == k.length) {
+					pos = 0;
+				}
+			}
+			box.p[i] = xor(box.p[i], data);
+		}
+		var res = {left:0, right:0};
+		for (var i = 0; i < box.p.length; ) {
+			eb(res, box);
+			box.p[i++] = res.left;
+			box.p[i++] = res.right;
+		}
+		for (var i = 0; i < 4; i++) {
+			for (var j = 0; j < box["s" + i].length; ) {
+				eb(res, box);
+				box["s" + i][j++] = res.left;
+				box["s" + i][j++] = res.right;
+			}
+		}
+		return box;
+	}
+	function toBase64(ba) {
+		var p = "=";
+		var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+		var s = [];
+		var l = ba.length;
+		var rm = l % 3;
+		var x = l - rm;
+		for (var i = 0; i < x; ) {
+			var t = ba[i++] << 16 | ba[i++] << 8 | ba[i++];
+			s.push(tab.charAt((t >>> 18) & 63));
+			s.push(tab.charAt((t >>> 12) & 63));
+			s.push(tab.charAt((t >>> 6) & 63));
+			s.push(tab.charAt(t & 63));
+		}
+		switch (rm) {
+		  case 2:
+			var t = ba[i++] << 16 | ba[i++] << 8;
+			s.push(tab.charAt((t >>> 18) & 63));
+			s.push(tab.charAt((t >>> 12) & 63));
+			s.push(tab.charAt((t >>> 6) & 63));
+			s.push(p);
+			break;
+		  case 1:
+			var t = ba[i++] << 16;
+			s.push(tab.charAt((t >>> 18) & 63));
+			s.push(tab.charAt((t >>> 12) & 63));
+			s.push(p);
+			s.push(p);
+			break;
+		}
+		return s.join("");
+	}
+	function fromBase64(str) {
+		var s = str.split("");
+		var p = "=";
+		var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+		var out = [];
+		var l = s.length;
+		while (s[--l] == p) {
+		}
+		for (var i = 0; i < l; ) {
+			var t = tab.indexOf(s[i++]) << 18 | tab.indexOf(s[i++]) << 12 | tab.indexOf(s[i++]) << 6 | tab.indexOf(s[i++]);
+			out.push((t >>> 16) & 255);
+			out.push((t >>> 8) & 255);
+			out.push(t & 255);
+		}
+		return out;
+	}
+	this.getIV = function (outputType) {
+		var out = outputType || dojo.crypto.outputTypes.Base64;
+		switch (out) {
+		  case dojo.crypto.outputTypes.Hex:
+			var s = [];
+			for (var i = 0; i < iv.length; i++) {
+				s.push((iv[i]).toString(16));
+			}
+			return s.join("");
+		  case dojo.crypto.outputTypes.String:
+			return iv.join("");
+		  case dojo.crypto.outputTypes.Raw:
+			return iv;
+		  default:
+			return toBase64(iv);
+		}
+	};
+	this.setIV = function (data, inputType) {
+		var ip = inputType || dojo.crypto.outputTypes.Base64;
+		var ba = null;
+		switch (ip) {
+		  case dojo.crypto.outputTypes.String:
+			ba = [];
+			for (var i = 0; i < data.length; i++) {
+				ba.push(data.charCodeAt(i));
+			}
+			break;
+		  case dojo.crypto.outputTypes.Hex:
+			ba = [];
+			var i = 0;
+			while (i + 1 < data.length) {
+				ba.push(parseInt(data.substr(i, 2), 16));
+				i += 2;
+			}
+			break;
+		  case dojo.crypto.outputTypes.Raw:
+			ba = data;
+			break;
+		  default:
+			ba = fromBase64(data);
+			break;
+		}
+		iv = {};
+		iv.left = ba[0] * POW24 | ba[1] * POW16 | ba[2] * POW8 | ba[3];
+		iv.right = ba[4] * POW24 | ba[5] * POW16 | ba[6] * POW8 | ba[7];
+	};
+	this.encrypt = function (plaintext, key, ao) {
+		var out = dojo.crypto.outputTypes.Base64;
+		var mode = dojo.crypto.cipherModes.EBC;
+		if (ao) {
+			if (ao.outputType) {
+				out = ao.outputType;
+			}
+			if (ao.cipherMode) {
+				mode = ao.cipherMode;
+			}
+		}
+		var bx = init(key);
+		var padding = 8 - (plaintext.length & 7);
+		for (var i = 0; i < padding; i++) {
+			plaintext += String.fromCharCode(padding);
+		}
+		var cipher = [];
+		var count = plaintext.length >> 3;
+		var pos = 0;
+		var o = {};
+		var isCBC = (mode == dojo.crypto.cipherModes.CBC);
+		var vector = {left:iv.left || null, right:iv.right || null};
+		for (var i = 0; i < count; i++) {
+			o.left = plaintext.charCodeAt(pos) * POW24 | plaintext.charCodeAt(pos + 1) * POW16 | plaintext.charCodeAt(pos + 2) * POW8 | plaintext.charCodeAt(pos + 3);
+			o.right = plaintext.charCodeAt(pos + 4) * POW24 | plaintext.charCodeAt(pos + 5) * POW16 | plaintext.charCodeAt(pos + 6) * POW8 | plaintext.charCodeAt(pos + 7);
+			if (isCBC) {
+				o.left = xor(o.left, vector.left);
+				o.right = xor(o.right, vector.right);
+			}
+			eb(o, bx);
+			if (isCBC) {
+				vector.left = o.left;
+				vector.right = o.right;
+				dojo.crypto.outputTypes.Hex;
+			}
+			cipher.push((o.left >> 24) & 255);
+			cipher.push((o.left >> 16) & 255);
+			cipher.push((o.left >> 8) & 255);
+			cipher.push(o.left & 255);
+			cipher.push((o.right >> 24) & 255);
+			cipher.push((o.right >> 16) & 255);
+			cipher.push((o.right >> 8) & 255);
+			cipher.push(o.right & 255);
+			pos += 8;
+		}
+		switch (out) {
+		  case dojo.crypto.outputTypes.Hex:
+			var s = [];
+			for (var i = 0; i < cipher.length; i++) {
+				s.push((cipher[i]).toString(16));
+			}
+			return s.join("");
+		  case dojo.crypto.outputTypes.String:
+			return cipher.join("");
+		  case dojo.crypto.outputTypes.Raw:
+			return cipher;
+		  default:
+			return toBase64(cipher);
+		}
+	};
+	this.decrypt = function (ciphertext, key, ao) {
+		var ip = dojo.crypto.outputTypes.Base64;
+		var mode = dojo.crypto.cipherModes.EBC;
+		if (ao) {
+			if (ao.outputType) {
+				ip = ao.outputType;
+			}
+			if (ao.cipherMode) {
+				mode = ao.cipherMode;
+			}
+		}
+		var bx = init(key);
+		var pt = [];
+		var c = null;
+		switch (ip) {
+		  case dojo.crypto.outputTypes.Hex:
+			c = [];
+			var i = 0;
+			while (i + 1 < ciphertext.length) {
+				c.push(parseInt(ciphertext.substr(i, 2), 16));
+				i += 2;
+			}
+			break;
+		  case dojo.crypto.outputTypes.String:
+			c = [];
+			for (var i = 0; i < ciphertext.length; i++) {
+				c.push(ciphertext.charCodeAt(i));
+			}
+			break;
+		  case dojo.crypto.outputTypes.Raw:
+			c = ciphertext;
+			break;
+		  default:
+			c = fromBase64(ciphertext);
+			break;
+		}
+		var count = c.length >> 3;
+		var pos = 0;
+		var o = {};
+		var isCBC = (mode == dojo.crypto.cipherModes.CBC);
+		var vector = {left:iv.left || null, right:iv.right || null};
+		for (var i = 0; i < count; i++) {
+			o.left = c[pos] * POW24 | c[pos + 1] * POW16 | c[pos + 2] * POW8 | c[pos + 3];
+			o.right = c[pos + 4] * POW24 | c[pos + 5] * POW16 | c[pos + 6] * POW8 | c[pos + 7];
+			if (isCBC) {
+				var left = o.left;
+				var right = o.right;
+			}
+			db(o, bx);
+			if (isCBC) {
+				o.left = xor(o.left, vector.left);
+				o.right = xor(o.right, vector.right);
+				vector.left = left;
+				vector.right = right;
+			}
+			pt.push((o.left >> 24) & 255);
+			pt.push((o.left >> 16) & 255);
+			pt.push((o.left >> 8) & 255);
+			pt.push(o.left & 255);
+			pt.push((o.right >> 24) & 255);
+			pt.push((o.right >> 16) & 255);
+			pt.push((o.right >> 8) & 255);
+			pt.push(o.right & 255);
+			pos += 8;
+		}
+		if (pt[pt.length - 1] == pt[pt.length - 2] || pt[pt.length - 1] == 1) {
+			var n = pt[pt.length - 1];
+			pt.splice(pt.length - n, n);
+		}
+		for (var i = 0; i < pt.length; i++) {
+			pt[i] = String.fromCharCode(pt[i]);
+		}
+		return pt.join("");
+	};
+	this.setIV("0000000000000000", dojo.crypto.outputTypes.Hex);
+}();
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/Blowfish.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/Blowfish.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/Blowfish.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/LICENSE
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/LICENSE?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/LICENSE (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/LICENSE Thu Jul 16 19:14:41 2009
@@ -0,0 +1,11 @@
+License Disclaimer:
+
+All contents of this directory are Copyright (c) the Dojo Foundation, with the
+following exceptions:
+-------------------------------------------------------------------------------
+
+MD5.js, SHA1.js:
+	* Copyright 1998-2005, Paul Johnstone
+	  Distributed under the terms of the BSD License
+
+

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/MD5.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/MD5.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/MD5.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/MD5.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,198 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.require("dojo.crypto");
+dojo.provide("dojo.crypto.MD5");
+dojo.crypto.MD5 = new function () {
+	var chrsz = 8;
+	var mask = (1 << chrsz) - 1;
+	function toWord(s) {
+		var wa = [];
+		for (var i = 0; i < s.length * chrsz; i += chrsz) {
+			wa[i >> 5] |= (s.charCodeAt(i / chrsz) & mask) << (i % 32);
+		}
+		return wa;
+	}
+	function toString(wa) {
+		var s = [];
+		for (var i = 0; i < wa.length * 32; i += chrsz) {
+			s.push(String.fromCharCode((wa[i >> 5] >>> (i % 32)) & mask));
+		}
+		return s.join("");
+	}
+	function toHex(wa) {
+		var h = "0123456789abcdef";
+		var s = [];
+		for (var i = 0; i < wa.length * 4; i++) {
+			s.push(h.charAt((wa[i >> 2] >> ((i % 4) * 8 + 4)) & 15) + h.charAt((wa[i >> 2] >> ((i % 4) * 8)) & 15));
+		}
+		return s.join("");
+	}
+	function toBase64(wa) {
+		var p = "=";
+		var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+		var s = [];
+		for (var i = 0; i < wa.length * 4; i += 3) {
+			var t = (((wa[i >> 2] >> 8 * (i % 4)) & 255) << 16) | (((wa[i + 1 >> 2] >> 8 * ((i + 1) % 4)) & 255) << 8) | ((wa[i + 2 >> 2] >> 8 * ((i + 2) % 4)) & 255);
+			for (var j = 0; j < 4; j++) {
+				if (i * 8 + j * 6 > wa.length * 32) {
+					s.push(p);
+				} else {
+					s.push(tab.charAt((t >> 6 * (3 - j)) & 63));
+				}
+			}
+		}
+		return s.join("");
+	}
+	function add(x, y) {
+		var l = (x & 65535) + (y & 65535);
+		var m = (x >> 16) + (y >> 16) + (l >> 16);
+		return (m << 16) | (l & 65535);
+	}
+	function R(n, c) {
+		return (n << c) | (n >>> (32 - c));
+	}
+	function C(q, a, b, x, s, t) {
+		return add(R(add(add(a, q), add(x, t)), s), b);
+	}
+	function FF(a, b, c, d, x, s, t) {
+		return C((b & c) | ((~b) & d), a, b, x, s, t);
+	}
+	function GG(a, b, c, d, x, s, t) {
+		return C((b & d) | (c & (~d)), a, b, x, s, t);
+	}
+	function HH(a, b, c, d, x, s, t) {
+		return C(b ^ c ^ d, a, b, x, s, t);
+	}
+	function II(a, b, c, d, x, s, t) {
+		return C(c ^ (b | (~d)), a, b, x, s, t);
+	}
+	function core(x, len) {
+		x[len >> 5] |= 128 << ((len) % 32);
+		x[(((len + 64) >>> 9) << 4) + 14] = len;
+		var a = 1732584193;
+		var b = -271733879;
+		var c = -1732584194;
+		var d = 271733878;
+		for (var i = 0; i < x.length; i += 16) {
+			var olda = a;
+			var oldb = b;
+			var oldc = c;
+			var oldd = d;
+			a = FF(a, b, c, d, x[i + 0], 7, -680876936);
+			d = FF(d, a, b, c, x[i + 1], 12, -389564586);
+			c = FF(c, d, a, b, x[i + 2], 17, 606105819);
+			b = FF(b, c, d, a, x[i + 3], 22, -1044525330);
+			a = FF(a, b, c, d, x[i + 4], 7, -176418897);
+			d = FF(d, a, b, c, x[i + 5], 12, 1200080426);
+			c = FF(c, d, a, b, x[i + 6], 17, -1473231341);
+			b = FF(b, c, d, a, x[i + 7], 22, -45705983);
+			a = FF(a, b, c, d, x[i + 8], 7, 1770035416);
+			d = FF(d, a, b, c, x[i + 9], 12, -1958414417);
+			c = FF(c, d, a, b, x[i + 10], 17, -42063);
+			b = FF(b, c, d, a, x[i + 11], 22, -1990404162);
+			a = FF(a, b, c, d, x[i + 12], 7, 1804603682);
+			d = FF(d, a, b, c, x[i + 13], 12, -40341101);
+			c = FF(c, d, a, b, x[i + 14], 17, -1502002290);
+			b = FF(b, c, d, a, x[i + 15], 22, 1236535329);
+			a = GG(a, b, c, d, x[i + 1], 5, -165796510);
+			d = GG(d, a, b, c, x[i + 6], 9, -1069501632);
+			c = GG(c, d, a, b, x[i + 11], 14, 643717713);
+			b = GG(b, c, d, a, x[i + 0], 20, -373897302);
+			a = GG(a, b, c, d, x[i + 5], 5, -701558691);
+			d = GG(d, a, b, c, x[i + 10], 9, 38016083);
+			c = GG(c, d, a, b, x[i + 15], 14, -660478335);
+			b = GG(b, c, d, a, x[i + 4], 20, -405537848);
+			a = GG(a, b, c, d, x[i + 9], 5, 568446438);
+			d = GG(d, a, b, c, x[i + 14], 9, -1019803690);
+			c = GG(c, d, a, b, x[i + 3], 14, -187363961);
+			b = GG(b, c, d, a, x[i + 8], 20, 1163531501);
+			a = GG(a, b, c, d, x[i + 13], 5, -1444681467);
+			d = GG(d, a, b, c, x[i + 2], 9, -51403784);
+			c = GG(c, d, a, b, x[i + 7], 14, 1735328473);
+			b = GG(b, c, d, a, x[i + 12], 20, -1926607734);
+			a = HH(a, b, c, d, x[i + 5], 4, -378558);
+			d = HH(d, a, b, c, x[i + 8], 11, -2022574463);
+			c = HH(c, d, a, b, x[i + 11], 16, 1839030562);
+			b = HH(b, c, d, a, x[i + 14], 23, -35309556);
+			a = HH(a, b, c, d, x[i + 1], 4, -1530992060);
+			d = HH(d, a, b, c, x[i + 4], 11, 1272893353);
+			c = HH(c, d, a, b, x[i + 7], 16, -155497632);
+			b = HH(b, c, d, a, x[i + 10], 23, -1094730640);
+			a = HH(a, b, c, d, x[i + 13], 4, 681279174);
+			d = HH(d, a, b, c, x[i + 0], 11, -358537222);
+			c = HH(c, d, a, b, x[i + 3], 16, -722521979);
+			b = HH(b, c, d, a, x[i + 6], 23, 76029189);
+			a = HH(a, b, c, d, x[i + 9], 4, -640364487);
+			d = HH(d, a, b, c, x[i + 12], 11, -421815835);
+			c = HH(c, d, a, b, x[i + 15], 16, 530742520);
+			b = HH(b, c, d, a, x[i + 2], 23, -995338651);
+			a = II(a, b, c, d, x[i + 0], 6, -198630844);
+			d = II(d, a, b, c, x[i + 7], 10, 1126891415);
+			c = II(c, d, a, b, x[i + 14], 15, -1416354905);
+			b = II(b, c, d, a, x[i + 5], 21, -57434055);
+			a = II(a, b, c, d, x[i + 12], 6, 1700485571);
+			d = II(d, a, b, c, x[i + 3], 10, -1894986606);
+			c = II(c, d, a, b, x[i + 10], 15, -1051523);
+			b = II(b, c, d, a, x[i + 1], 21, -2054922799);
+			a = II(a, b, c, d, x[i + 8], 6, 1873313359);
+			d = II(d, a, b, c, x[i + 15], 10, -30611744);
+			c = II(c, d, a, b, x[i + 6], 15, -1560198380);
+			b = II(b, c, d, a, x[i + 13], 21, 1309151649);
+			a = II(a, b, c, d, x[i + 4], 6, -145523070);
+			d = II(d, a, b, c, x[i + 11], 10, -1120210379);
+			c = II(c, d, a, b, x[i + 2], 15, 718787259);
+			b = II(b, c, d, a, x[i + 9], 21, -343485551);
+			a = add(a, olda);
+			b = add(b, oldb);
+			c = add(c, oldc);
+			d = add(d, oldd);
+		}
+		return [a, b, c, d];
+	}
+	function hmac(data, key) {
+		var wa = toWord(key);
+		if (wa.length > 16) {
+			wa = core(wa, key.length * chrsz);
+		}
+		var l = [], r = [];
+		for (var i = 0; i < 16; i++) {
+			l[i] = wa[i] ^ 909522486;
+			r[i] = wa[i] ^ 1549556828;
+		}
+		var h = core(l.concat(toWord(data)), 512 + data.length * chrsz);
+		return core(r.concat(h), 640);
+	}
+	this.compute = function (data, outputType) {
+		var out = outputType || dojo.crypto.outputTypes.Base64;
+		switch (out) {
+		  case dojo.crypto.outputTypes.Hex:
+			return toHex(core(toWord(data), data.length * chrsz));
+		  case dojo.crypto.outputTypes.String:
+			return toString(core(toWord(data), data.length * chrsz));
+		  default:
+			return toBase64(core(toWord(data), data.length * chrsz));
+		}
+	};
+	this.getHMAC = function (data, key, outputType) {
+		var out = outputType || dojo.crypto.outputTypes.Base64;
+		switch (out) {
+		  case dojo.crypto.outputTypes.Hex:
+			return toHex(hmac(data, key));
+		  case dojo.crypto.outputTypes.String:
+			return toString(hmac(data, key));
+		  default:
+			return toBase64(hmac(data, key));
+		}
+	};
+}();
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/MD5.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/MD5.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/MD5.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/Rijndael.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/Rijndael.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/Rijndael.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/Rijndael.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,23 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.crypto.Rijndael");
+dojo.require("dojo.crypto");
+dojo.require("dojo.experimental");
+dojo.experimental("dojo.crypto.Rijndael");
+dojo.crypto.Rijndael = new function () {
+	this.encrypt = function (plaintext, key) {
+	};
+	this.decrypt = function (ciphertext, key) {
+	};
+}();
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/Rijndael.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/Rijndael.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/Rijndael.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/SHA1.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/SHA1.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/SHA1.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/SHA1.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,171 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.require("dojo.crypto");
+dojo.provide("dojo.crypto.SHA1");
+dojo.require("dojo.experimental");
+dojo.experimental("dojo.crypto.SHA1");
+dojo.crypto.SHA1 = new function () {
+	var chrsz = 8;
+	var mask = (1 << chrsz) - 1;
+	function toWord(s) {
+		var wa = [];
+		for (var i = 0; i < s.length * chrsz; i += chrsz) {
+			wa[i >> 5] |= (s.charCodeAt(i / chrsz) & mask) << (i % 32);
+		}
+		return wa;
+	}
+	function toString(wa) {
+		var s = [];
+		for (var i = 0; i < wa.length * 32; i += chrsz) {
+			s.push(String.fromCharCode((wa[i >> 5] >>> (i % 32)) & mask));
+		}
+		return s.join("");
+	}
+	function toHex(wa) {
+		var h = "0123456789abcdef";
+		var s = [];
+		for (var i = 0; i < wa.length * 4; i++) {
+			s.push(h.charAt((wa[i >> 2] >> ((i % 4) * 8 + 4)) & 15) + h.charAt((wa[i >> 2] >> ((i % 4) * 8)) & 15));
+		}
+		return s.join("");
+	}
+	function toBase64(wa) {
+		var p = "=";
+		var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+		var s = [];
+		for (var i = 0; i < wa.length * 4; i += 3) {
+			var t = (((wa[i >> 2] >> 8 * (i % 4)) & 255) << 16) | (((wa[i + 1 >> 2] >> 8 * ((i + 1) % 4)) & 255) << 8) | ((wa[i + 2 >> 2] >> 8 * ((i + 2) % 4)) & 255);
+			for (var j = 0; j < 4; j++) {
+				if (i * 8 + j * 6 > wa.length * 32) {
+					s.push(p);
+				} else {
+					s.push(tab.charAt((t >> 6 * (3 - j)) & 63));
+				}
+			}
+		}
+		return s.join("");
+	}
+	function add(x, y) {
+		var l = (x & 65535) + (y & 65535);
+		var m = (x >> 16) + (y >> 16) + (l >> 16);
+		return (m << 16) | (l & 65535);
+	}
+	function r(x, n) {
+		return (x << n) | (x >>> (32 - n));
+	}
+	function f(u, v, w) {
+		return ((u & v) | (~u & w));
+	}
+	function g(u, v, w) {
+		return ((u & v) | (u & w) | (v & w));
+	}
+	function h(u, v, w) {
+		return (u ^ v ^ w);
+	}
+	function fn(i, u, v, w) {
+		if (i < 20) {
+			return f(u, v, w);
+		}
+		if (i < 40) {
+			return h(u, v, w);
+		}
+		if (i < 60) {
+			return g(u, v, w);
+		}
+		return h(u, v, w);
+	}
+	function cnst(i) {
+		if (i < 20) {
+			return 1518500249;
+		}
+		if (i < 40) {
+			return 1859775393;
+		}
+		if (i < 60) {
+			return -1894007588;
+		}
+		return -899497514;
+	}
+	function core(x, len) {
+		x[len >> 5] |= 128 << (24 - len % 32);
+		x[((len + 64 >> 9) << 4) + 15] = len;
+		var w = [];
+		var a = 1732584193;
+		var b = -271733879;
+		var c = -1732584194;
+		var d = 271733878;
+		var e = -1009589776;
+		for (var i = 0; i < x.length; i += 16) {
+			var olda = a;
+			var oldb = b;
+			var oldc = c;
+			var oldd = d;
+			var olde = e;
+			for (var j = 0; j < 80; j++) {
+				if (j < 16) {
+					w[j] = x[i + j];
+				} else {
+					w[j] = r(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);
+				}
+				var t = add(add(r(a, 5), fn(j, b, c, d)), add(add(e, w[j]), cnst(j)));
+				e = d;
+				d = c;
+				c = r(b, 30);
+				b = a;
+				a = t;
+			}
+			a = add(a, olda);
+			b = add(b, oldb);
+			c = add(c, oldc);
+			d = add(d, oldd);
+			e = add(e, olde);
+		}
+		return [a, b, c, d, e];
+	}
+	function hmac(data, key) {
+		var wa = toWord(key);
+		if (wa.length > 16) {
+			wa = core(wa, key.length * chrsz);
+		}
+		var l = [], r = [];
+		for (var i = 0; i < 16; i++) {
+			l[i] = wa[i] ^ 909522486;
+			r[i] = wa[i] ^ 1549556828;
+		}
+		var h = core(l.concat(toWord(data)), 512 + data.length * chrsz);
+		return core(r.concat(h), 640);
+	}
+	this.compute = function (data, outputType) {
+		var out = outputType || dojo.crypto.outputTypes.Base64;
+		switch (out) {
+		  case dojo.crypto.outputTypes.Hex:
+			return toHex(core(toWord(data), data.length * chrsz));
+		  case dojo.crypto.outputTypes.String:
+			return toString(core(toWord(data), data.length * chrsz));
+		  default:
+			return toBase64(core(toWord(data), data.length * chrsz));
+		}
+	};
+	this.getHMAC = function (data, key, outputType) {
+		var out = outputType || dojo.crypto.outputTypes.Base64;
+		switch (out) {
+		  case dojo.crypto.outputTypes.Hex:
+			return toHex(hmac(data, key));
+		  case dojo.crypto.outputTypes.String:
+			return toString(hmac(data, key));
+		  default:
+			return toBase64(hmac(data, key));
+		}
+	};
+}();
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/SHA1.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/SHA1.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/SHA1.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/SHA256.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/SHA256.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/SHA256.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/SHA256.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,21 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.crypto.SHA256");
+dojo.require("dojo.crypto");
+dojo.require("dojo.experimental");
+dojo.experimental("dojo.crypto.SHA256");
+dojo.crypto.SHA256 = new function () {
+	this.compute = function (s) {
+	};
+}();
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/SHA256.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/SHA256.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/SHA256.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/__package__.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/__package__.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/__package__.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/__package__.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,15 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.kwCompoundRequire({common:["dojo.crypto", "dojo.crypto.MD5"]});
+dojo.provide("dojo.crypto.*");
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/__package__.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/__package__.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/crypto/__package__.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/data.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/data.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/data.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/data.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,15 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.data");
+dojo.data = {};
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/data.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/data.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/data.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/data/CsvStore.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/data/CsvStore.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/data/CsvStore.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/data/CsvStore.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,115 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.data.CsvStore");
+dojo.require("dojo.data.core.RemoteStore");
+dojo.require("dojo.lang.assert");
+dojo.declare("dojo.data.CsvStore", dojo.data.core.RemoteStore, {_setupQueryRequest:function (result, requestKw) {
+	var serverQueryUrl = this._serverQueryUrl ? this._serverQueryUrl : "";
+	var queryUrl = result.query ? result.query : "";
+	requestKw.url = serverQueryUrl + queryUrl;
+	requestKw.method = "get";
+}, _resultToQueryData:function (serverResponseData) {
+	var csvFileContentString = serverResponseData;
+	var arrayOfArrays = this._getArrayOfArraysFromCsvFileContents(csvFileContentString);
+	var arrayOfObjects = this._getArrayOfObjectsFromArrayOfArrays(arrayOfArrays);
+	var remoteStoreData = this._getRemoteStoreDataFromArrayOfObjects(arrayOfObjects);
+	return remoteStoreData;
+}, _setupSaveRequest:function (saveKeywordArgs, requestKw) {
+}, _getArrayOfArraysFromCsvFileContents:function (csvFileContents) {
+	dojo.lang.assertType(csvFileContents, String);
+	var lineEndingCharacters = new RegExp("\r\n|\n|\r");
+	var leadingWhiteSpaceCharacters = new RegExp("^\\s+", "g");
+	var trailingWhiteSpaceCharacters = new RegExp("\\s+$", "g");
+	var doubleQuotes = new RegExp("\"\"", "g");
+	var arrayOfOutputRecords = [];
+	var arrayOfInputLines = csvFileContents.split(lineEndingCharacters);
+	for (var i in arrayOfInputLines) {
+		var singleLine = arrayOfInputLines[i];
+		if (singleLine.length > 0) {
+			var listOfFields = singleLine.split(",");
+			var j = 0;
+			while (j < listOfFields.length) {
+				var space_field_space = listOfFields[j];
+				var field_space = space_field_space.replace(leadingWhiteSpaceCharacters, "");
+				var field = field_space.replace(trailingWhiteSpaceCharacters, "");
+				var firstChar = field.charAt(0);
+				var lastChar = field.charAt(field.length - 1);
+				var secondToLastChar = field.charAt(field.length - 2);
+				var thirdToLastChar = field.charAt(field.length - 3);
+				if ((firstChar == "\"") && ((lastChar != "\"") || ((lastChar == "\"") && (secondToLastChar == "\"") && (thirdToLastChar != "\"")))) {
+					if (j + 1 === listOfFields.length) {
+						return null;
+					}
+					var nextField = listOfFields[j + 1];
+					listOfFields[j] = field_space + "," + nextField;
+					listOfFields.splice(j + 1, 1);
+				} else {
+					if ((firstChar == "\"") && (lastChar == "\"")) {
+						field = field.slice(1, (field.length - 1));
+						field = field.replace(doubleQuotes, "\"");
+					}
+					listOfFields[j] = field;
+					j += 1;
+				}
+			}
+			arrayOfOutputRecords.push(listOfFields);
+		}
+	}
+	return arrayOfOutputRecords;
+}, _getArrayOfObjectsFromArrayOfArrays:function (arrayOfArrays) {
+	dojo.lang.assertType(arrayOfArrays, Array);
+	var arrayOfItems = [];
+	if (arrayOfArrays.length > 1) {
+		var arrayOfKeys = arrayOfArrays[0];
+		for (var i = 1; i < arrayOfArrays.length; ++i) {
+			var row = arrayOfArrays[i];
+			var item = {};
+			for (var j in row) {
+				var value = row[j];
+				var key = arrayOfKeys[j];
+				item[key] = value;
+			}
+			arrayOfItems.push(item);
+		}
+	}
+	return arrayOfItems;
+}, _getRemoteStoreDataFromArrayOfObjects:function (arrayOfObjects) {
+	dojo.lang.assertType(arrayOfObjects, Array);
+	var output = {};
+	for (var i = 0; i < arrayOfObjects.length; ++i) {
+		var object = arrayOfObjects[i];
+		for (var key in object) {
+			var value = object[key];
+			object[key] = [value];
+		}
+		output[i] = object;
+	}
+	return output;
+}, newItem:function (attributes, keywordArgs) {
+	dojo.unimplemented("dojo.data.CsvStore.newItem");
+}, deleteItem:function (item) {
+	dojo.unimplemented("dojo.data.CsvStore.deleteItem");
+}, setValues:function (item, attribute, values) {
+	dojo.unimplemented("dojo.data.CsvStore.setValues");
+}, set:function (item, attribute, value) {
+	dojo.unimplemented("dojo.data.CsvStore.set");
+}, unsetAttribute:function (item, attribute) {
+	dojo.unimplemented("dojo.data.CsvStore.unsetAttribute");
+}, save:function (keywordArgs) {
+	dojo.unimplemented("dojo.data.CsvStore.save");
+}, revert:function () {
+	dojo.unimplemented("dojo.data.CsvStore.revert");
+}, isDirty:function (item) {
+	dojo.unimplemented("dojo.data.CsvStore.isDirty");
+}});
+