You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by an...@apache.org on 2015/10/22 21:45:38 UTC

[20/32] android commit: CB-9782 Check in cordova-common dependency

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/at.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/at.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/at.js
new file mode 100644
index 0000000..a994bb7
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/at.js
@@ -0,0 +1,50 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var baseFlatten = require('../internals/baseFlatten'),
+    isString = require('../objects/isString'),
+    support = require('../support');
+
+/**
+ * Creates an array of elements from the specified indexes, or keys, of the
+ * `collection`. Indexes may be specified as individual arguments or as arrays
+ * of indexes.
+ *
+ * @static
+ * @memberOf _
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {...(number|number[]|string|string[])} [index] The indexes of `collection`
+ *   to retrieve, specified as individual indexes or arrays of indexes.
+ * @returns {Array} Returns a new array of elements corresponding to the
+ *  provided indexes.
+ * @example
+ *
+ * _.at(['a', 'b', 'c', 'd', 'e'], [0, 2, 4]);
+ * // => ['a', 'c', 'e']
+ *
+ * _.at(['fred', 'barney', 'pebbles'], 0, 2);
+ * // => ['fred', 'pebbles']
+ */
+function at(collection) {
+  var args = arguments,
+      index = -1,
+      props = baseFlatten(args, true, false, 1),
+      length = (args[2] && args[2][args[1]] === collection) ? 1 : props.length,
+      result = Array(length);
+
+  if (support.unindexedChars && isString(collection)) {
+    collection = collection.split('');
+  }
+  while(++index < length) {
+    result[index] = collection[props[index]];
+  }
+  return result;
+}
+
+module.exports = at;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/contains.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/contains.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/contains.js
new file mode 100644
index 0000000..69e552d
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/contains.js
@@ -0,0 +1,65 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var baseEach = require('../internals/baseEach'),
+    baseIndexOf = require('../internals/baseIndexOf'),
+    isArray = require('../objects/isArray'),
+    isString = require('../objects/isString');
+
+/* Native method shortcuts for methods with the same name as other `lodash` methods */
+var nativeMax = Math.max;
+
+/**
+ * Checks if a given value is present in a collection using strict equality
+ * for comparisons, i.e. `===`. If `fromIndex` is negative, it is used as the
+ * offset from the end of the collection.
+ *
+ * @static
+ * @memberOf _
+ * @alias include
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {*} target The value to check for.
+ * @param {number} [fromIndex=0] The index to search from.
+ * @returns {boolean} Returns `true` if the `target` element is found, else `false`.
+ * @example
+ *
+ * _.contains([1, 2, 3], 1);
+ * // => true
+ *
+ * _.contains([1, 2, 3], 1, 2);
+ * // => false
+ *
+ * _.contains({ 'name': 'fred', 'age': 40 }, 'fred');
+ * // => true
+ *
+ * _.contains('pebbles', 'eb');
+ * // => true
+ */
+function contains(collection, target, fromIndex) {
+  var index = -1,
+      indexOf = baseIndexOf,
+      length = collection ? collection.length : 0,
+      result = false;
+
+  fromIndex = (fromIndex < 0 ? nativeMax(0, length + fromIndex) : fromIndex) || 0;
+  if (isArray(collection)) {
+    result = indexOf(collection, target, fromIndex) > -1;
+  } else if (typeof length == 'number') {
+    result = (isString(collection) ? collection.indexOf(target, fromIndex) : indexOf(collection, target, fromIndex)) > -1;
+  } else {
+    baseEach(collection, function(value) {
+      if (++index >= fromIndex) {
+        return !(result = value === target);
+      }
+    });
+  }
+  return result;
+}
+
+module.exports = contains;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/countBy.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/countBy.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/countBy.js
new file mode 100644
index 0000000..ece9ece
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/countBy.js
@@ -0,0 +1,55 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var createAggregator = require('../internals/createAggregator');
+
+/** Used for native method references */
+var objectProto = Object.prototype;
+
+/** Native method shortcuts */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * Creates an object composed of keys generated from the results of running
+ * each element of `collection` through the callback. The corresponding value
+ * of each key is the number of times the key was returned by the callback.
+ * The callback is bound to `thisArg` and invoked with three arguments;
+ * (value, index|key, collection).
+ *
+ * If a property name is provided for `callback` the created "_.pluck" style
+ * callback will return the property value of the given element.
+ *
+ * If an object is provided for `callback` the created "_.where" style callback
+ * will return `true` for elements that have the properties of the given object,
+ * else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [callback=identity] The function called
+ *  per iteration. If a property name or object is provided it will be used
+ *  to create a "_.pluck" or "_.where" style callback, respectively.
+ * @param {*} [thisArg] The `this` binding of `callback`.
+ * @returns {Object} Returns the composed aggregate object.
+ * @example
+ *
+ * _.countBy([4.3, 6.1, 6.4], function(num) { return Math.floor(num); });
+ * // => { '4': 1, '6': 2 }
+ *
+ * _.countBy([4.3, 6.1, 6.4], function(num) { return this.floor(num); }, Math);
+ * // => { '4': 1, '6': 2 }
+ *
+ * _.countBy(['one', 'two', 'three'], 'length');
+ * // => { '3': 2, '5': 1 }
+ */
+var countBy = createAggregator(function(result, value, key) {
+  (hasOwnProperty.call(result, key) ? result[key]++ : result[key] = 1);
+});
+
+module.exports = countBy;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/every.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/every.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/every.js
new file mode 100644
index 0000000..633489c
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/every.js
@@ -0,0 +1,75 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var baseEach = require('../internals/baseEach'),
+    createCallback = require('../functions/createCallback'),
+    isArray = require('../objects/isArray');
+
+/**
+ * Checks if the given callback returns truey value for **all** elements of
+ * a collection. The callback is bound to `thisArg` and invoked with three
+ * arguments; (value, index|key, collection).
+ *
+ * If a property name is provided for `callback` the created "_.pluck" style
+ * callback will return the property value of the given element.
+ *
+ * If an object is provided for `callback` the created "_.where" style callback
+ * will return `true` for elements that have the properties of the given object,
+ * else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @alias all
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [callback=identity] The function called
+ *  per iteration. If a property name or object is provided it will be used
+ *  to create a "_.pluck" or "_.where" style callback, respectively.
+ * @param {*} [thisArg] The `this` binding of `callback`.
+ * @returns {boolean} Returns `true` if all elements passed the callback check,
+ *  else `false`.
+ * @example
+ *
+ * _.every([true, 1, null, 'yes']);
+ * // => false
+ *
+ * var characters = [
+ *   { 'name': 'barney', 'age': 36 },
+ *   { 'name': 'fred',   'age': 40 }
+ * ];
+ *
+ * // using "_.pluck" callback shorthand
+ * _.every(characters, 'age');
+ * // => true
+ *
+ * // using "_.where" callback shorthand
+ * _.every(characters, { 'age': 36 });
+ * // => false
+ */
+function every(collection, callback, thisArg) {
+  var result = true;
+  callback = createCallback(callback, thisArg, 3);
+
+  if (isArray(collection)) {
+    var index = -1,
+        length = collection.length;
+
+    while (++index < length) {
+      if (!(result = !!callback(collection[index], index, collection))) {
+        break;
+      }
+    }
+  } else {
+    baseEach(collection, function(value, index, collection) {
+      return (result = !!callback(value, index, collection));
+    });
+  }
+  return result;
+}
+
+module.exports = every;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/filter.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/filter.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/filter.js
new file mode 100644
index 0000000..30c351e
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/filter.js
@@ -0,0 +1,77 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var baseEach = require('../internals/baseEach'),
+    createCallback = require('../functions/createCallback'),
+    isArray = require('../objects/isArray');
+
+/**
+ * Iterates over elements of a collection, returning an array of all elements
+ * the callback returns truey for. The callback is bound to `thisArg` and
+ * invoked with three arguments; (value, index|key, collection).
+ *
+ * If a property name is provided for `callback` the created "_.pluck" style
+ * callback will return the property value of the given element.
+ *
+ * If an object is provided for `callback` the created "_.where" style callback
+ * will return `true` for elements that have the properties of the given object,
+ * else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @alias select
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [callback=identity] The function called
+ *  per iteration. If a property name or object is provided it will be used
+ *  to create a "_.pluck" or "_.where" style callback, respectively.
+ * @param {*} [thisArg] The `this` binding of `callback`.
+ * @returns {Array} Returns a new array of elements that passed the callback check.
+ * @example
+ *
+ * var evens = _.filter([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; });
+ * // => [2, 4, 6]
+ *
+ * var characters = [
+ *   { 'name': 'barney', 'age': 36, 'blocked': false },
+ *   { 'name': 'fred',   'age': 40, 'blocked': true }
+ * ];
+ *
+ * // using "_.pluck" callback shorthand
+ * _.filter(characters, 'blocked');
+ * // => [{ 'name': 'fred', 'age': 40, 'blocked': true }]
+ *
+ * // using "_.where" callback shorthand
+ * _.filter(characters, { 'age': 36 });
+ * // => [{ 'name': 'barney', 'age': 36, 'blocked': false }]
+ */
+function filter(collection, callback, thisArg) {
+  var result = [];
+  callback = createCallback(callback, thisArg, 3);
+
+  if (isArray(collection)) {
+    var index = -1,
+        length = collection.length;
+
+    while (++index < length) {
+      var value = collection[index];
+      if (callback(value, index, collection)) {
+        result.push(value);
+      }
+    }
+  } else {
+    baseEach(collection, function(value, index, collection) {
+      if (callback(value, index, collection)) {
+        result.push(value);
+      }
+    });
+  }
+  return result;
+}
+
+module.exports = filter;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/find.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/find.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/find.js
new file mode 100644
index 0000000..59f9853
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/find.js
@@ -0,0 +1,81 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var baseEach = require('../internals/baseEach'),
+    createCallback = require('../functions/createCallback'),
+    isArray = require('../objects/isArray');
+
+/**
+ * Iterates over elements of a collection, returning the first element that
+ * the callback returns truey for. The callback is bound to `thisArg` and
+ * invoked with three arguments; (value, index|key, collection).
+ *
+ * If a property name is provided for `callback` the created "_.pluck" style
+ * callback will return the property value of the given element.
+ *
+ * If an object is provided for `callback` the created "_.where" style callback
+ * will return `true` for elements that have the properties of the given object,
+ * else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @alias detect, findWhere
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [callback=identity] The function called
+ *  per iteration. If a property name or object is provided it will be used
+ *  to create a "_.pluck" or "_.where" style callback, respectively.
+ * @param {*} [thisArg] The `this` binding of `callback`.
+ * @returns {*} Returns the found element, else `undefined`.
+ * @example
+ *
+ * var characters = [
+ *   { 'name': 'barney',  'age': 36, 'blocked': false },
+ *   { 'name': 'fred',    'age': 40, 'blocked': true },
+ *   { 'name': 'pebbles', 'age': 1,  'blocked': false }
+ * ];
+ *
+ * _.find(characters, function(chr) {
+ *   return chr.age < 40;
+ * });
+ * // => { 'name': 'barney', 'age': 36, 'blocked': false }
+ *
+ * // using "_.where" callback shorthand
+ * _.find(characters, { 'age': 1 });
+ * // =>  { 'name': 'pebbles', 'age': 1, 'blocked': false }
+ *
+ * // using "_.pluck" callback shorthand
+ * _.find(characters, 'blocked');
+ * // => { 'name': 'fred', 'age': 40, 'blocked': true }
+ */
+function find(collection, callback, thisArg) {
+  callback = createCallback(callback, thisArg, 3);
+
+  if (isArray(collection)) {
+    var index = -1,
+        length = collection.length;
+
+    while (++index < length) {
+      var value = collection[index];
+      if (callback(value, index, collection)) {
+        return value;
+      }
+    }
+  } else {
+    var result;
+    baseEach(collection, function(value, index, collection) {
+      if (callback(value, index, collection)) {
+        result = value;
+        return false;
+      }
+    });
+    return result;
+  }
+}
+
+module.exports = find;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/findLast.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/findLast.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/findLast.js
new file mode 100644
index 0000000..43d18e8
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/findLast.js
@@ -0,0 +1,44 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var createCallback = require('../functions/createCallback'),
+    forEachRight = require('./forEachRight');
+
+/**
+ * This method is like `_.find` except that it iterates over elements
+ * of a `collection` from right to left.
+ *
+ * @static
+ * @memberOf _
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [callback=identity] The function called
+ *  per iteration. If a property name or object is provided it will be used
+ *  to create a "_.pluck" or "_.where" style callback, respectively.
+ * @param {*} [thisArg] The `this` binding of `callback`.
+ * @returns {*} Returns the found element, else `undefined`.
+ * @example
+ *
+ * _.findLast([1, 2, 3, 4], function(num) {
+ *   return num % 2 == 1;
+ * });
+ * // => 3
+ */
+function findLast(collection, callback, thisArg) {
+  var result;
+  callback = createCallback(callback, thisArg, 3);
+  forEachRight(collection, function(value, index, collection) {
+    if (callback(value, index, collection)) {
+      result = value;
+      return false;
+    }
+  });
+  return result;
+}
+
+module.exports = findLast;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/forEach.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/forEach.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/forEach.js
new file mode 100644
index 0000000..4f89582
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/forEach.js
@@ -0,0 +1,55 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var baseCreateCallback = require('../internals/baseCreateCallback'),
+    baseEach = require('../internals/baseEach'),
+    isArray = require('../objects/isArray');
+
+/**
+ * Iterates over elements of a collection, executing the callback for each
+ * element. The callback is bound to `thisArg` and invoked with three arguments;
+ * (value, index|key, collection). Callbacks may exit iteration early by
+ * explicitly returning `false`.
+ *
+ * Note: As with other "Collections" methods, objects with a `length` property
+ * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`
+ * may be used for object iteration.
+ *
+ * @static
+ * @memberOf _
+ * @alias each
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function} [callback=identity] The function called per iteration.
+ * @param {*} [thisArg] The `this` binding of `callback`.
+ * @returns {Array|Object|string} Returns `collection`.
+ * @example
+ *
+ * _([1, 2, 3]).forEach(function(num) { console.log(num); }).join(',');
+ * // => logs each number and returns '1,2,3'
+ *
+ * _.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); });
+ * // => logs each number and returns the object (property order is not guaranteed across environments)
+ */
+function forEach(collection, callback, thisArg) {
+  if (callback && typeof thisArg == 'undefined' && isArray(collection)) {
+    var index = -1,
+        length = collection.length;
+
+    while (++index < length) {
+      if (callback(collection[index], index, collection) === false) {
+        break;
+      }
+    }
+  } else {
+    baseEach(collection, callback, thisArg);
+  }
+  return collection;
+}
+
+module.exports = forEach;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/forEachRight.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/forEachRight.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/forEachRight.js
new file mode 100644
index 0000000..fc003a1
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/forEachRight.js
@@ -0,0 +1,59 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var baseCreateCallback = require('../internals/baseCreateCallback'),
+    baseEach = require('../internals/baseEach'),
+    isArray = require('../objects/isArray'),
+    isString = require('../objects/isString'),
+    keys = require('../objects/keys'),
+    support = require('../support');
+
+/**
+ * This method is like `_.forEach` except that it iterates over elements
+ * of a `collection` from right to left.
+ *
+ * @static
+ * @memberOf _
+ * @alias eachRight
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function} [callback=identity] The function called per iteration.
+ * @param {*} [thisArg] The `this` binding of `callback`.
+ * @returns {Array|Object|string} Returns `collection`.
+ * @example
+ *
+ * _([1, 2, 3]).forEachRight(function(num) { console.log(num); }).join(',');
+ * // => logs each number from right to left and returns '3,2,1'
+ */
+function forEachRight(collection, callback, thisArg) {
+  var iterable = collection,
+      length = collection ? collection.length : 0;
+
+  callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);
+  if (isArray(collection)) {
+    while (length--) {
+      if (callback(collection[length], length, collection) === false) {
+        break;
+      }
+    }
+  } else {
+    if (typeof length != 'number') {
+      var props = keys(collection);
+      length = props.length;
+    } else if (support.unindexedChars && isString(collection)) {
+      iterable = collection.split('');
+    }
+    baseEach(collection, function(value, key, collection) {
+      key = props ? props[--length] : --length;
+      return callback(iterable[key], key, collection);
+    });
+  }
+  return collection;
+}
+
+module.exports = forEachRight;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/groupBy.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/groupBy.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/groupBy.js
new file mode 100644
index 0000000..90756c4
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/groupBy.js
@@ -0,0 +1,56 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var createAggregator = require('../internals/createAggregator');
+
+/** Used for native method references */
+var objectProto = Object.prototype;
+
+/** Native method shortcuts */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * Creates an object composed of keys generated from the results of running
+ * each element of a collection through the callback. The corresponding value
+ * of each key is an array of the elements responsible for generating the key.
+ * The callback is bound to `thisArg` and invoked with three arguments;
+ * (value, index|key, collection).
+ *
+ * If a property name is provided for `callback` the created "_.pluck" style
+ * callback will return the property value of the given element.
+ *
+ * If an object is provided for `callback` the created "_.where" style callback
+ * will return `true` for elements that have the properties of the given object,
+ * else `false`
+ *
+ * @static
+ * @memberOf _
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [callback=identity] The function called
+ *  per iteration. If a property name or object is provided it will be used
+ *  to create a "_.pluck" or "_.where" style callback, respectively.
+ * @param {*} [thisArg] The `this` binding of `callback`.
+ * @returns {Object} Returns the composed aggregate object.
+ * @example
+ *
+ * _.groupBy([4.2, 6.1, 6.4], function(num) { return Math.floor(num); });
+ * // => { '4': [4.2], '6': [6.1, 6.4] }
+ *
+ * _.groupBy([4.2, 6.1, 6.4], function(num) { return this.floor(num); }, Math);
+ * // => { '4': [4.2], '6': [6.1, 6.4] }
+ *
+ * // using "_.pluck" callback shorthand
+ * _.groupBy(['one', 'two', 'three'], 'length');
+ * // => { '3': ['one', 'two'], '5': ['three'] }
+ */
+var groupBy = createAggregator(function(result, value, key) {
+  (hasOwnProperty.call(result, key) ? result[key] : result[key] = []).push(value);
+});
+
+module.exports = groupBy;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/indexBy.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/indexBy.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/indexBy.js
new file mode 100644
index 0000000..b8c277e
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/indexBy.js
@@ -0,0 +1,54 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var createAggregator = require('../internals/createAggregator');
+
+/**
+ * Creates an object composed of keys generated from the results of running
+ * each element of the collection through the given callback. The corresponding
+ * value of each key is the last element responsible for generating the key.
+ * The callback is bound to `thisArg` and invoked with three arguments;
+ * (value, index|key, collection).
+ *
+ * If a property name is provided for `callback` the created "_.pluck" style
+ * callback will return the property value of the given element.
+ *
+ * If an object is provided for `callback` the created "_.where" style callback
+ * will return `true` for elements that have the properties of the given object,
+ * else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [callback=identity] The function called
+ *  per iteration. If a property name or object is provided it will be used
+ *  to create a "_.pluck" or "_.where" style callback, respectively.
+ * @param {*} [thisArg] The `this` binding of `callback`.
+ * @returns {Object} Returns the composed aggregate object.
+ * @example
+ *
+ * var keys = [
+ *   { 'dir': 'left', 'code': 97 },
+ *   { 'dir': 'right', 'code': 100 }
+ * ];
+ *
+ * _.indexBy(keys, 'dir');
+ * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }
+ *
+ * _.indexBy(keys, function(key) { return String.fromCharCode(key.code); });
+ * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }
+ *
+ * _.indexBy(characters, function(key) { this.fromCharCode(key.code); }, String);
+ * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }
+ */
+var indexBy = createAggregator(function(result, value, key) {
+  result[key] = value;
+});
+
+module.exports = indexBy;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/invoke.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/invoke.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/invoke.js
new file mode 100644
index 0000000..17de1ee
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/invoke.js
@@ -0,0 +1,47 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var forEach = require('./forEach'),
+    slice = require('../internals/slice');
+
+/**
+ * Invokes the method named by `methodName` on each element in the `collection`
+ * returning an array of the results of each invoked method. Additional arguments
+ * will be provided to each invoked method. If `methodName` is a function it
+ * will be invoked for, and `this` bound to, each element in the `collection`.
+ *
+ * @static
+ * @memberOf _
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|string} methodName The name of the method to invoke or
+ *  the function invoked per iteration.
+ * @param {...*} [arg] Arguments to invoke the method with.
+ * @returns {Array} Returns a new array of the results of each invoked method.
+ * @example
+ *
+ * _.invoke([[5, 1, 7], [3, 2, 1]], 'sort');
+ * // => [[1, 5, 7], [1, 2, 3]]
+ *
+ * _.invoke([123, 456], String.prototype.split, '');
+ * // => [['1', '2', '3'], ['4', '5', '6']]
+ */
+function invoke(collection, methodName) {
+  var args = slice(arguments, 2),
+      index = -1,
+      isFunc = typeof methodName == 'function',
+      length = collection ? collection.length : 0,
+      result = Array(typeof length == 'number' ? length : 0);
+
+  forEach(collection, function(value) {
+    result[++index] = (isFunc ? methodName : value[methodName]).apply(value, args);
+  });
+  return result;
+}
+
+module.exports = invoke;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/map.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/map.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/map.js
new file mode 100644
index 0000000..cd371e8
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/map.js
@@ -0,0 +1,70 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var baseEach = require('../internals/baseEach'),
+    createCallback = require('../functions/createCallback'),
+    isArray = require('../objects/isArray');
+
+/**
+ * Creates an array of values by running each element in the collection
+ * through the callback. The callback is bound to `thisArg` and invoked with
+ * three arguments; (value, index|key, collection).
+ *
+ * If a property name is provided for `callback` the created "_.pluck" style
+ * callback will return the property value of the given element.
+ *
+ * If an object is provided for `callback` the created "_.where" style callback
+ * will return `true` for elements that have the properties of the given object,
+ * else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @alias collect
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [callback=identity] The function called
+ *  per iteration. If a property name or object is provided it will be used
+ *  to create a "_.pluck" or "_.where" style callback, respectively.
+ * @param {*} [thisArg] The `this` binding of `callback`.
+ * @returns {Array} Returns a new array of the results of each `callback` execution.
+ * @example
+ *
+ * _.map([1, 2, 3], function(num) { return num * 3; });
+ * // => [3, 6, 9]
+ *
+ * _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; });
+ * // => [3, 6, 9] (property order is not guaranteed across environments)
+ *
+ * var characters = [
+ *   { 'name': 'barney', 'age': 36 },
+ *   { 'name': 'fred',   'age': 40 }
+ * ];
+ *
+ * // using "_.pluck" callback shorthand
+ * _.map(characters, 'name');
+ * // => ['barney', 'fred']
+ */
+function map(collection, callback, thisArg) {
+  var index = -1,
+      length = collection ? collection.length : 0,
+      result = Array(typeof length == 'number' ? length : 0);
+
+  callback = createCallback(callback, thisArg, 3);
+  if (isArray(collection)) {
+    while (++index < length) {
+      result[index] = callback(collection[index], index, collection);
+    }
+  } else {
+    baseEach(collection, function(value, key, collection) {
+      result[++index] = callback(value, key, collection);
+    });
+  }
+  return result;
+}
+
+module.exports = map;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/max.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/max.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/max.js
new file mode 100644
index 0000000..8547613
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/max.js
@@ -0,0 +1,90 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var baseEach = require('../internals/baseEach'),
+    charAtCallback = require('../internals/charAtCallback'),
+    createCallback = require('../functions/createCallback'),
+    isArray = require('../objects/isArray'),
+    isString = require('../objects/isString');
+
+/**
+ * Retrieves the maximum value of a collection. If the collection is empty or
+ * falsey `-Infinity` is returned. If a callback is provided it will be executed
+ * for each value in the collection to generate the criterion by which the value
+ * is ranked. The callback is bound to `thisArg` and invoked with three
+ * arguments; (value, index, collection).
+ *
+ * If a property name is provided for `callback` the created "_.pluck" style
+ * callback will return the property value of the given element.
+ *
+ * If an object is provided for `callback` the created "_.where" style callback
+ * will return `true` for elements that have the properties of the given object,
+ * else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [callback=identity] The function called
+ *  per iteration. If a property name or object is provided it will be used
+ *  to create a "_.pluck" or "_.where" style callback, respectively.
+ * @param {*} [thisArg] The `this` binding of `callback`.
+ * @returns {*} Returns the maximum value.
+ * @example
+ *
+ * _.max([4, 2, 8, 6]);
+ * // => 8
+ *
+ * var characters = [
+ *   { 'name': 'barney', 'age': 36 },
+ *   { 'name': 'fred',   'age': 40 }
+ * ];
+ *
+ * _.max(characters, function(chr) { return chr.age; });
+ * // => { 'name': 'fred', 'age': 40 };
+ *
+ * // using "_.pluck" callback shorthand
+ * _.max(characters, 'age');
+ * // => { 'name': 'fred', 'age': 40 };
+ */
+function max(collection, callback, thisArg) {
+  var computed = -Infinity,
+      result = computed;
+
+  // allows working with functions like `_.map` without using
+  // their `index` argument as a callback
+  if (typeof callback != 'function' && thisArg && thisArg[callback] === collection) {
+    callback = null;
+  }
+  if (callback == null && isArray(collection)) {
+    var index = -1,
+        length = collection.length;
+
+    while (++index < length) {
+      var value = collection[index];
+      if (value > result) {
+        result = value;
+      }
+    }
+  } else {
+    callback = (callback == null && isString(collection))
+      ? charAtCallback
+      : createCallback(callback, thisArg, 3);
+
+    baseEach(collection, function(value, index, collection) {
+      var current = callback(value, index, collection);
+      if (current > computed) {
+        computed = current;
+        result = value;
+      }
+    });
+  }
+  return result;
+}
+
+module.exports = max;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/min.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/min.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/min.js
new file mode 100644
index 0000000..925f32c
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/min.js
@@ -0,0 +1,90 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var baseEach = require('../internals/baseEach'),
+    charAtCallback = require('../internals/charAtCallback'),
+    createCallback = require('../functions/createCallback'),
+    isArray = require('../objects/isArray'),
+    isString = require('../objects/isString');
+
+/**
+ * Retrieves the minimum value of a collection. If the collection is empty or
+ * falsey `Infinity` is returned. If a callback is provided it will be executed
+ * for each value in the collection to generate the criterion by which the value
+ * is ranked. The callback is bound to `thisArg` and invoked with three
+ * arguments; (value, index, collection).
+ *
+ * If a property name is provided for `callback` the created "_.pluck" style
+ * callback will return the property value of the given element.
+ *
+ * If an object is provided for `callback` the created "_.where" style callback
+ * will return `true` for elements that have the properties of the given object,
+ * else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [callback=identity] The function called
+ *  per iteration. If a property name or object is provided it will be used
+ *  to create a "_.pluck" or "_.where" style callback, respectively.
+ * @param {*} [thisArg] The `this` binding of `callback`.
+ * @returns {*} Returns the minimum value.
+ * @example
+ *
+ * _.min([4, 2, 8, 6]);
+ * // => 2
+ *
+ * var characters = [
+ *   { 'name': 'barney', 'age': 36 },
+ *   { 'name': 'fred',   'age': 40 }
+ * ];
+ *
+ * _.min(characters, function(chr) { return chr.age; });
+ * // => { 'name': 'barney', 'age': 36 };
+ *
+ * // using "_.pluck" callback shorthand
+ * _.min(characters, 'age');
+ * // => { 'name': 'barney', 'age': 36 };
+ */
+function min(collection, callback, thisArg) {
+  var computed = Infinity,
+      result = computed;
+
+  // allows working with functions like `_.map` without using
+  // their `index` argument as a callback
+  if (typeof callback != 'function' && thisArg && thisArg[callback] === collection) {
+    callback = null;
+  }
+  if (callback == null && isArray(collection)) {
+    var index = -1,
+        length = collection.length;
+
+    while (++index < length) {
+      var value = collection[index];
+      if (value < result) {
+        result = value;
+      }
+    }
+  } else {
+    callback = (callback == null && isString(collection))
+      ? charAtCallback
+      : createCallback(callback, thisArg, 3);
+
+    baseEach(collection, function(value, index, collection) {
+      var current = callback(value, index, collection);
+      if (current < computed) {
+        computed = current;
+        result = value;
+      }
+    });
+  }
+  return result;
+}
+
+module.exports = min;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/pluck.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/pluck.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/pluck.js
new file mode 100644
index 0000000..8ef0be0
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/pluck.js
@@ -0,0 +1,33 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var map = require('./map');
+
+/**
+ * Retrieves the value of a specified property from all elements in the collection.
+ *
+ * @static
+ * @memberOf _
+ * @type Function
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {string} property The name of the property to pluck.
+ * @returns {Array} Returns a new array of property values.
+ * @example
+ *
+ * var characters = [
+ *   { 'name': 'barney', 'age': 36 },
+ *   { 'name': 'fred',   'age': 40 }
+ * ];
+ *
+ * _.pluck(characters, 'name');
+ * // => ['barney', 'fred']
+ */
+var pluck = map;
+
+module.exports = pluck;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/reduce.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/reduce.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/reduce.js
new file mode 100644
index 0000000..fb7854b
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/reduce.js
@@ -0,0 +1,67 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var baseEach = require('../internals/baseEach'),
+    createCallback = require('../functions/createCallback'),
+    isArray = require('../objects/isArray');
+
+/**
+ * Reduces a collection to a value which is the accumulated result of running
+ * each element in the collection through the callback, where each successive
+ * callback execution consumes the return value of the previous execution. If
+ * `accumulator` is not provided the first element of the collection will be
+ * used as the initial `accumulator` value. The callback is bound to `thisArg`
+ * and invoked with four arguments; (accumulator, value, index|key, collection).
+ *
+ * @static
+ * @memberOf _
+ * @alias foldl, inject
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function} [callback=identity] The function called per iteration.
+ * @param {*} [accumulator] Initial value of the accumulator.
+ * @param {*} [thisArg] The `this` binding of `callback`.
+ * @returns {*} Returns the accumulated value.
+ * @example
+ *
+ * var sum = _.reduce([1, 2, 3], function(sum, num) {
+ *   return sum + num;
+ * });
+ * // => 6
+ *
+ * var mapped = _.reduce({ 'a': 1, 'b': 2, 'c': 3 }, function(result, num, key) {
+ *   result[key] = num * 3;
+ *   return result;
+ * }, {});
+ * // => { 'a': 3, 'b': 6, 'c': 9 }
+ */
+function reduce(collection, callback, accumulator, thisArg) {
+  var noaccum = arguments.length < 3;
+  callback = createCallback(callback, thisArg, 4);
+
+  if (isArray(collection)) {
+    var index = -1,
+        length = collection.length;
+
+    if (noaccum) {
+      accumulator = collection[++index];
+    }
+    while (++index < length) {
+      accumulator = callback(accumulator, collection[index], index, collection);
+    }
+  } else {
+    baseEach(collection, function(value, index, collection) {
+      accumulator = noaccum
+        ? (noaccum = false, value)
+        : callback(accumulator, value, index, collection)
+    });
+  }
+  return accumulator;
+}
+
+module.exports = reduce;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/reduceRight.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/reduceRight.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/reduceRight.js
new file mode 100644
index 0000000..58625ea
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/reduceRight.js
@@ -0,0 +1,42 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var createCallback = require('../functions/createCallback'),
+    forEachRight = require('./forEachRight');
+
+/**
+ * This method is like `_.reduce` except that it iterates over elements
+ * of a `collection` from right to left.
+ *
+ * @static
+ * @memberOf _
+ * @alias foldr
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function} [callback=identity] The function called per iteration.
+ * @param {*} [accumulator] Initial value of the accumulator.
+ * @param {*} [thisArg] The `this` binding of `callback`.
+ * @returns {*} Returns the accumulated value.
+ * @example
+ *
+ * var list = [[0, 1], [2, 3], [4, 5]];
+ * var flat = _.reduceRight(list, function(a, b) { return a.concat(b); }, []);
+ * // => [4, 5, 2, 3, 0, 1]
+ */
+function reduceRight(collection, callback, accumulator, thisArg) {
+  var noaccum = arguments.length < 3;
+  callback = createCallback(callback, thisArg, 4);
+  forEachRight(collection, function(value, index, collection) {
+    accumulator = noaccum
+      ? (noaccum = false, value)
+      : callback(accumulator, value, index, collection);
+  });
+  return accumulator;
+}
+
+module.exports = reduceRight;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/reject.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/reject.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/reject.js
new file mode 100644
index 0000000..f33239b
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/reject.js
@@ -0,0 +1,57 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var createCallback = require('../functions/createCallback'),
+    filter = require('./filter');
+
+/**
+ * The opposite of `_.filter` this method returns the elements of a
+ * collection that the callback does **not** return truey for.
+ *
+ * If a property name is provided for `callback` the created "_.pluck" style
+ * callback will return the property value of the given element.
+ *
+ * If an object is provided for `callback` the created "_.where" style callback
+ * will return `true` for elements that have the properties of the given object,
+ * else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [callback=identity] The function called
+ *  per iteration. If a property name or object is provided it will be used
+ *  to create a "_.pluck" or "_.where" style callback, respectively.
+ * @param {*} [thisArg] The `this` binding of `callback`.
+ * @returns {Array} Returns a new array of elements that failed the callback check.
+ * @example
+ *
+ * var odds = _.reject([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; });
+ * // => [1, 3, 5]
+ *
+ * var characters = [
+ *   { 'name': 'barney', 'age': 36, 'blocked': false },
+ *   { 'name': 'fred',   'age': 40, 'blocked': true }
+ * ];
+ *
+ * // using "_.pluck" callback shorthand
+ * _.reject(characters, 'blocked');
+ * // => [{ 'name': 'barney', 'age': 36, 'blocked': false }]
+ *
+ * // using "_.where" callback shorthand
+ * _.reject(characters, { 'age': 36 });
+ * // => [{ 'name': 'fred', 'age': 40, 'blocked': true }]
+ */
+function reject(collection, callback, thisArg) {
+  callback = createCallback(callback, thisArg, 3);
+  return filter(collection, function(value, index, collection) {
+    return !callback(value, index, collection);
+  });
+}
+
+module.exports = reject;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/sample.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/sample.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/sample.js
new file mode 100644
index 0000000..481c7e4
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/sample.js
@@ -0,0 +1,52 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var baseRandom = require('../internals/baseRandom'),
+    isString = require('../objects/isString'),
+    shuffle = require('./shuffle'),
+    support = require('../support'),
+    values = require('../objects/values');
+
+/* Native method shortcuts for methods with the same name as other `lodash` methods */
+var nativeMax = Math.max,
+    nativeMin = Math.min;
+
+/**
+ * Retrieves a random element or `n` random elements from a collection.
+ *
+ * @static
+ * @memberOf _
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to sample.
+ * @param {number} [n] The number of elements to sample.
+ * @param- {Object} [guard] Allows working with functions like `_.map`
+ *  without using their `index` arguments as `n`.
+ * @returns {Array} Returns the random sample(s) of `collection`.
+ * @example
+ *
+ * _.sample([1, 2, 3, 4]);
+ * // => 2
+ *
+ * _.sample([1, 2, 3, 4], 2);
+ * // => [3, 1]
+ */
+function sample(collection, n, guard) {
+  if (collection && typeof collection.length != 'number') {
+    collection = values(collection);
+  } else if (support.unindexedChars && isString(collection)) {
+    collection = collection.split('');
+  }
+  if (n == null || guard) {
+    return collection ? collection[baseRandom(0, collection.length - 1)] : undefined;
+  }
+  var result = shuffle(collection);
+  result.length = nativeMin(nativeMax(0, n), result.length);
+  return result;
+}
+
+module.exports = sample;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/shuffle.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/shuffle.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/shuffle.js
new file mode 100644
index 0000000..d37777c
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/shuffle.js
@@ -0,0 +1,39 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var baseRandom = require('../internals/baseRandom'),
+    forEach = require('./forEach');
+
+/**
+ * Creates an array of shuffled values, using a version of the Fisher-Yates
+ * shuffle. See http://en.wikipedia.org/wiki/Fisher-Yates_shuffle.
+ *
+ * @static
+ * @memberOf _
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to shuffle.
+ * @returns {Array} Returns a new shuffled collection.
+ * @example
+ *
+ * _.shuffle([1, 2, 3, 4, 5, 6]);
+ * // => [4, 1, 6, 3, 5, 2]
+ */
+function shuffle(collection) {
+  var index = -1,
+      length = collection ? collection.length : 0,
+      result = Array(typeof length == 'number' ? length : 0);
+
+  forEach(collection, function(value) {
+    var rand = baseRandom(0, ++index);
+    result[index] = result[rand];
+    result[rand] = value;
+  });
+  return result;
+}
+
+module.exports = shuffle;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/size.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/size.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/size.js
new file mode 100644
index 0000000..bfc821f
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/size.js
@@ -0,0 +1,36 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var keys = require('../objects/keys');
+
+/**
+ * Gets the size of the `collection` by returning `collection.length` for arrays
+ * and array-like objects or the number of own enumerable properties for objects.
+ *
+ * @static
+ * @memberOf _
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to inspect.
+ * @returns {number} Returns `collection.length` or number of own enumerable properties.
+ * @example
+ *
+ * _.size([1, 2]);
+ * // => 2
+ *
+ * _.size({ 'one': 1, 'two': 2, 'three': 3 });
+ * // => 3
+ *
+ * _.size('pebbles');
+ * // => 7
+ */
+function size(collection) {
+  var length = collection ? collection.length : 0;
+  return typeof length == 'number' ? length : keys(collection).length;
+}
+
+module.exports = size;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/some.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/some.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/some.js
new file mode 100644
index 0000000..c8d7ee5
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/some.js
@@ -0,0 +1,76 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var baseEach = require('../internals/baseEach'),
+    createCallback = require('../functions/createCallback'),
+    isArray = require('../objects/isArray');
+
+/**
+ * Checks if the callback returns a truey value for **any** element of a
+ * collection. The function returns as soon as it finds a passing value and
+ * does not iterate over the entire collection. The callback is bound to
+ * `thisArg` and invoked with three arguments; (value, index|key, collection).
+ *
+ * If a property name is provided for `callback` the created "_.pluck" style
+ * callback will return the property value of the given element.
+ *
+ * If an object is provided for `callback` the created "_.where" style callback
+ * will return `true` for elements that have the properties of the given object,
+ * else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @alias any
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [callback=identity] The function called
+ *  per iteration. If a property name or object is provided it will be used
+ *  to create a "_.pluck" or "_.where" style callback, respectively.
+ * @param {*} [thisArg] The `this` binding of `callback`.
+ * @returns {boolean} Returns `true` if any element passed the callback check,
+ *  else `false`.
+ * @example
+ *
+ * _.some([null, 0, 'yes', false], Boolean);
+ * // => true
+ *
+ * var characters = [
+ *   { 'name': 'barney', 'age': 36, 'blocked': false },
+ *   { 'name': 'fred',   'age': 40, 'blocked': true }
+ * ];
+ *
+ * // using "_.pluck" callback shorthand
+ * _.some(characters, 'blocked');
+ * // => true
+ *
+ * // using "_.where" callback shorthand
+ * _.some(characters, { 'age': 1 });
+ * // => false
+ */
+function some(collection, callback, thisArg) {
+  var result;
+  callback = createCallback(callback, thisArg, 3);
+
+  if (isArray(collection)) {
+    var index = -1,
+        length = collection.length;
+
+    while (++index < length) {
+      if ((result = callback(collection[index], index, collection))) {
+        break;
+      }
+    }
+  } else {
+    baseEach(collection, function(value, index, collection) {
+      return !(result = callback(value, index, collection));
+    });
+  }
+  return !!result;
+}
+
+module.exports = some;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/sortBy.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/sortBy.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/sortBy.js
new file mode 100644
index 0000000..777b152
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/sortBy.js
@@ -0,0 +1,101 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var compareAscending = require('../internals/compareAscending'),
+    createCallback = require('../functions/createCallback'),
+    forEach = require('./forEach'),
+    getArray = require('../internals/getArray'),
+    getObject = require('../internals/getObject'),
+    isArray = require('../objects/isArray'),
+    map = require('./map'),
+    releaseArray = require('../internals/releaseArray'),
+    releaseObject = require('../internals/releaseObject');
+
+/**
+ * Creates an array of elements, sorted in ascending order by the results of
+ * running each element in a collection through the callback. This method
+ * performs a stable sort, that is, it will preserve the original sort order
+ * of equal elements. The callback is bound to `thisArg` and invoked with
+ * three arguments; (value, index|key, collection).
+ *
+ * If a property name is provided for `callback` the created "_.pluck" style
+ * callback will return the property value of the given element.
+ *
+ * If an array of property names is provided for `callback` the collection
+ * will be sorted by each property value.
+ *
+ * If an object is provided for `callback` the created "_.where" style callback
+ * will return `true` for elements that have the properties of the given object,
+ * else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Array|Function|Object|string} [callback=identity] The function called
+ *  per iteration. If a property name or object is provided it will be used
+ *  to create a "_.pluck" or "_.where" style callback, respectively.
+ * @param {*} [thisArg] The `this` binding of `callback`.
+ * @returns {Array} Returns a new array of sorted elements.
+ * @example
+ *
+ * _.sortBy([1, 2, 3], function(num) { return Math.sin(num); });
+ * // => [3, 1, 2]
+ *
+ * _.sortBy([1, 2, 3], function(num) { return this.sin(num); }, Math);
+ * // => [3, 1, 2]
+ *
+ * var characters = [
+ *   { 'name': 'barney',  'age': 36 },
+ *   { 'name': 'fred',    'age': 40 },
+ *   { 'name': 'barney',  'age': 26 },
+ *   { 'name': 'fred',    'age': 30 }
+ * ];
+ *
+ * // using "_.pluck" callback shorthand
+ * _.map(_.sortBy(characters, 'age'), _.values);
+ * // => [['barney', 26], ['fred', 30], ['barney', 36], ['fred', 40]]
+ *
+ * // sorting by multiple properties
+ * _.map(_.sortBy(characters, ['name', 'age']), _.values);
+ * // = > [['barney', 26], ['barney', 36], ['fred', 30], ['fred', 40]]
+ */
+function sortBy(collection, callback, thisArg) {
+  var index = -1,
+      isArr = isArray(callback),
+      length = collection ? collection.length : 0,
+      result = Array(typeof length == 'number' ? length : 0);
+
+  if (!isArr) {
+    callback = createCallback(callback, thisArg, 3);
+  }
+  forEach(collection, function(value, key, collection) {
+    var object = result[++index] = getObject();
+    if (isArr) {
+      object.criteria = map(callback, function(key) { return value[key]; });
+    } else {
+      (object.criteria = getArray())[0] = callback(value, key, collection);
+    }
+    object.index = index;
+    object.value = value;
+  });
+
+  length = result.length;
+  result.sort(compareAscending);
+  while (length--) {
+    var object = result[length];
+    result[length] = object.value;
+    if (!isArr) {
+      releaseArray(object.criteria);
+    }
+    releaseObject(object);
+  }
+  return result;
+}
+
+module.exports = sortBy;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/toArray.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/toArray.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/toArray.js
new file mode 100644
index 0000000..223cf21
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/toArray.js
@@ -0,0 +1,36 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var isString = require('../objects/isString'),
+    slice = require('../internals/slice'),
+    support = require('../support'),
+    values = require('../objects/values');
+
+/**
+ * Converts the `collection` to an array.
+ *
+ * @static
+ * @memberOf _
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to convert.
+ * @returns {Array} Returns the new converted array.
+ * @example
+ *
+ * (function() { return _.toArray(arguments).slice(1); })(1, 2, 3, 4);
+ * // => [2, 3, 4]
+ */
+function toArray(collection) {
+  if (collection && typeof collection.length == 'number') {
+    return (support.unindexedChars && isString(collection))
+      ? collection.split('')
+      : slice(collection);
+  }
+  return values(collection);
+}
+
+module.exports = toArray;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/where.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/where.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/where.js
new file mode 100644
index 0000000..c035b72
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/collections/where.js
@@ -0,0 +1,38 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var filter = require('./filter');
+
+/**
+ * Performs a deep comparison of each element in a `collection` to the given
+ * `properties` object, returning an array of all elements that have equivalent
+ * property values.
+ *
+ * @static
+ * @memberOf _
+ * @type Function
+ * @category Collections
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Object} props The object of property values to filter by.
+ * @returns {Array} Returns a new array of elements that have the given properties.
+ * @example
+ *
+ * var characters = [
+ *   { 'name': 'barney', 'age': 36, 'pets': ['hoppy'] },
+ *   { 'name': 'fred',   'age': 40, 'pets': ['baby puss', 'dino'] }
+ * ];
+ *
+ * _.where(characters, { 'age': 36 });
+ * // => [{ 'name': 'barney', 'age': 36, 'pets': ['hoppy'] }]
+ *
+ * _.where(characters, { 'pets': ['dino'] });
+ * // => [{ 'name': 'fred', 'age': 40, 'pets': ['baby puss', 'dino'] }]
+ */
+var where = filter;
+
+module.exports = where;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/functions.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/functions.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/functions.js
new file mode 100644
index 0000000..084bdd4
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/functions.js
@@ -0,0 +1,27 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+
+module.exports = {
+  'after': require('./functions/after'),
+  'bind': require('./functions/bind'),
+  'bindAll': require('./functions/bindAll'),
+  'bindKey': require('./functions/bindKey'),
+  'compose': require('./functions/compose'),
+  'createCallback': require('./functions/createCallback'),
+  'curry': require('./functions/curry'),
+  'debounce': require('./functions/debounce'),
+  'defer': require('./functions/defer'),
+  'delay': require('./functions/delay'),
+  'memoize': require('./functions/memoize'),
+  'once': require('./functions/once'),
+  'partial': require('./functions/partial'),
+  'partialRight': require('./functions/partialRight'),
+  'throttle': require('./functions/throttle'),
+  'wrap': require('./functions/wrap')
+};

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/functions/after.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/functions/after.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/functions/after.js
new file mode 100644
index 0000000..48ef88e
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/functions/after.js
@@ -0,0 +1,46 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var isFunction = require('../objects/isFunction');
+
+/**
+ * Creates a function that executes `func`, with  the `this` binding and
+ * arguments of the created function, only after being called `n` times.
+ *
+ * @static
+ * @memberOf _
+ * @category Functions
+ * @param {number} n The number of times the function must be called before
+ *  `func` is executed.
+ * @param {Function} func The function to restrict.
+ * @returns {Function} Returns the new restricted function.
+ * @example
+ *
+ * var saves = ['profile', 'settings'];
+ *
+ * var done = _.after(saves.length, function() {
+ *   console.log('Done saving!');
+ * });
+ *
+ * _.forEach(saves, function(type) {
+ *   asyncSave({ 'type': type, 'complete': done });
+ * });
+ * // => logs 'Done saving!', after all saves have completed
+ */
+function after(n, func) {
+  if (!isFunction(func)) {
+    throw new TypeError;
+  }
+  return function() {
+    if (--n < 1) {
+      return func.apply(this, arguments);
+    }
+  };
+}
+
+module.exports = after;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/functions/bind.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/functions/bind.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/functions/bind.js
new file mode 100644
index 0000000..42284b3
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/functions/bind.js
@@ -0,0 +1,41 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var createWrapper = require('../internals/createWrapper'),
+    slice = require('../internals/slice'),
+    support = require('../support');
+
+/**
+ * Creates a function that, when called, invokes `func` with the `this`
+ * binding of `thisArg` and prepends any additional `bind` arguments to those
+ * provided to the bound function.
+ *
+ * @static
+ * @memberOf _
+ * @category Functions
+ * @param {Function} func The function to bind.
+ * @param {*} [thisArg] The `this` binding of `func`.
+ * @param {...*} [arg] Arguments to be partially applied.
+ * @returns {Function} Returns the new bound function.
+ * @example
+ *
+ * var func = function(greeting) {
+ *   return greeting + ' ' + this.name;
+ * };
+ *
+ * func = _.bind(func, { 'name': 'fred' }, 'hi');
+ * func();
+ * // => 'hi fred'
+ */
+function bind(func, thisArg) {
+  return arguments.length > 2
+    ? createWrapper(func, 17, slice(arguments, 2), null, thisArg)
+    : createWrapper(func, 1, null, null, thisArg);
+}
+
+module.exports = bind;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/functions/bindAll.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/functions/bindAll.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/functions/bindAll.js
new file mode 100644
index 0000000..f62d906
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/functions/bindAll.js
@@ -0,0 +1,49 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var baseFlatten = require('../internals/baseFlatten'),
+    createWrapper = require('../internals/createWrapper'),
+    functions = require('../objects/functions');
+
+/**
+ * Binds methods of an object to the object itself, overwriting the existing
+ * method. Method names may be specified as individual arguments or as arrays
+ * of method names. If no method names are provided all the function properties
+ * of `object` will be bound.
+ *
+ * @static
+ * @memberOf _
+ * @category Functions
+ * @param {Object} object The object to bind and assign the bound methods to.
+ * @param {...string} [methodName] The object method names to
+ *  bind, specified as individual method names or arrays of method names.
+ * @returns {Object} Returns `object`.
+ * @example
+ *
+ * var view = {
+ *   'label': 'docs',
+ *   'onClick': function() { console.log('clicked ' + this.label); }
+ * };
+ *
+ * _.bindAll(view);
+ * jQuery('#docs').on('click', view.onClick);
+ * // => logs 'clicked docs', when the button is clicked
+ */
+function bindAll(object) {
+  var funcs = arguments.length > 1 ? baseFlatten(arguments, true, false, 1) : functions(object),
+      index = -1,
+      length = funcs.length;
+
+  while (++index < length) {
+    var key = funcs[index];
+    object[key] = createWrapper(object[key], 1, null, null, object);
+  }
+  return object;
+}
+
+module.exports = bindAll;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/ab72e484/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/functions/bindKey.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/functions/bindKey.js b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/functions/bindKey.js
new file mode 100644
index 0000000..7e07139
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/xmlbuilder/node_modules/lodash-node/compat/functions/bindKey.js
@@ -0,0 +1,52 @@
+/**
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
+ * Build: `lodash modularize exports="node" -o ./compat/`
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <http://lodash.com/license>
+ */
+var createWrapper = require('../internals/createWrapper'),
+    slice = require('../internals/slice');
+
+/**
+ * Creates a function that, when called, invokes the method at `object[key]`
+ * and prepends any additional `bindKey` arguments to those provided to the bound
+ * function. This method differs from `_.bind` by allowing bound functions to
+ * reference methods that will be redefined or don't yet exist.
+ * See http://michaux.ca/articles/lazy-function-definition-pattern.
+ *
+ * @static
+ * @memberOf _
+ * @category Functions
+ * @param {Object} object The object the method belongs to.
+ * @param {string} key The key of the method.
+ * @param {...*} [arg] Arguments to be partially applied.
+ * @returns {Function} Returns the new bound function.
+ * @example
+ *
+ * var object = {
+ *   'name': 'fred',
+ *   'greet': function(greeting) {
+ *     return greeting + ' ' + this.name;
+ *   }
+ * };
+ *
+ * var func = _.bindKey(object, 'greet', 'hi');
+ * func();
+ * // => 'hi fred'
+ *
+ * object.greet = function(greeting) {
+ *   return greeting + 'ya ' + this.name + '!';
+ * };
+ *
+ * func();
+ * // => 'hiya fred!'
+ */
+function bindKey(object, key) {
+  return arguments.length > 2
+    ? createWrapper(key, 19, slice(arguments, 2), null, object)
+    : createWrapper(key, 3, null, null, object);
+}
+
+module.exports = bindKey;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org