text: /**
   * lodash 3.0.1 (Custom Build) <https://lodash.com/>
   * Build: `lodash modern modularize exports="npm" -o ./`
   * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
   * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
   * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
   * Available under MIT license <https://lodash.com/license>
   */
  
  /**
   * A specialized version of `baseCallback` which only supports `this` binding
   * and specifying the number of arguments to provide to `func`.
   *
   * @private
   * @param {Function} func The function to bind.
   * @param {*} thisArg The `this` binding of `func`.
   * @param {number} [argCount] The number of arguments to provide to `func`.
   * @returns {Function} Returns the callback.
   */
  function bindCallback(func, thisArg, argCount) {
      if (typeof func != 'function') {
          return identity;
      }
      if (thisArg === undefined) {
          return func;
      }
      switch (argCount) {
          case 1:
              return function (value) {
                  return func.call(thisArg, value);
              };
          case 3:
              return function (value, index, collection) {
                  return func.call(thisArg, value, index, collection);
              };
          case 4:
              return function (accumulator, value, index, collection) {
                  return func.call(thisArg, accumulator, value, index, collection);
              };
          case 5:
              return function (value, other, key, object, source) {
                  return func.call(thisArg, value, other, key, object, source);
              };
      }
      return function () {
          return func.apply(thisArg, arguments);
      };
  }
  
  /**
   * This method returns the first argument provided to it.
   *
   * @static
   * @memberOf _
   * @category Utility
   * @param {*} value Any value.
   * @returns {*} Returns `value`.
   * @example
   *
   * var object = { 'user': 'fred' };
   *
   * _.identity(object) === object;
   * // => true
   */
  function identity(value) {
      return value;
  }
  
  module.exports = bindCallback;
  