Remove overloadWrapper and ensure Arrays methods work with arguments objects as secondary arguments.

Former-commit-id: 0b5f213947496622e79daea74e525e60ca53e8eb
This commit is contained in:
John-David Dalton
2013-07-13 18:22:31 -07:00
parent f1b1fee6e4
commit 8694364aa3
7 changed files with 390 additions and 384 deletions

129
dist/lodash.compat.js vendored
View File

@@ -158,7 +158,7 @@
*/
function basicIndexOf(array, value, fromIndex) {
var index = (fromIndex || 0) - 1,
length = array.length;
length = array ? array.length : 0;
while (++index < length) {
if (array[index] === value) {
@@ -235,7 +235,7 @@
}
/**
* Used by `sortBy` to compare transformed `collection` values, stable sorting
* Used by `sortBy` to compare transformed `collection` elements, stable sorting
* them in ascending order.
*
* @private
@@ -957,24 +957,22 @@
*
* @private
* @param {Array} array The array to flatten.
* @param {Boolean} [isShallow=false] A flag to indicate only flattening a single level.
* @param {Function} [callback] The function called per iteration.
* @param {Boolean} [isShallow=false] A flag to restrict flattening to a single level.
* @param {Boolean} [isArgArrays=false] A flag to restrict flattening to arrays and `arguments` objects.
* @param {Number} [fromIndex=0] The index to start from.
* @returns {Array} Returns a new flattened array.
*/
function basicFlatten(array, isShallow, callback) {
var index = -1,
function basicFlatten(array, isShallow, isArgArrays, fromIndex) {
var index = (fromIndex || 0) - 1,
length = array ? array.length : 0,
result = [];
while (++index < length) {
var value = array[index];
if (callback) {
value = callback(value, index, array);
}
// recursively flatten arrays (susceptible to call stack limits)
if (value && typeof value == 'object' && (isArray(value) || isArguments(value))) {
push.apply(result, isShallow ? value : basicFlatten(value));
} else {
} else if (!isArgArrays) {
result.push(value);
}
}
@@ -1156,7 +1154,7 @@
}
// fallback for browsers without `Object.create`
if (!nativeCreate) {
var createObject = function(prototype) {
createObject = function(prototype) {
if (isObject(prototype)) {
noop.prototype = prototype;
var result = new noop;
@@ -1185,34 +1183,11 @@
* @private
* @returns {Function} Returns the "indexOf" function.
*/
function getIndexOf(array, value, fromIndex) {
function getIndexOf() {
var result = (result = lodash.indexOf) === indexOf ? basicIndexOf : result;
return result;
}
/**
* Creates a function that juggles arguments, allowing argument overloading
* for `_.flatten` and `_.uniq`, before passing them to the given `func`.
*
* @private
* @param {Function} func The function to wrap.
* @returns {Function} Returns the new function.
*/
function overloadWrapper(func) {
return function(array, flag, callback, thisArg) {
// juggle arguments
if (typeof flag != 'boolean' && flag != null) {
thisArg = callback;
callback = !(thisArg && thisArg[flag] === array) ? flag : undefined;
flag = false;
}
if (callback != null) {
callback = lodash.createCallback(callback, thisArg);
}
return func(array, flag, callback, thisArg);
};
}
/**
* A fallback implementation of `isPlainObject` which checks if a given `value`
* is an object created by the `Object` constructor, assuming objects created
@@ -1723,8 +1698,8 @@
var forOwn = createIterator(eachIteratorOptions, forOwnIteratorOptions);
/**
* Creates a sorted array of all enumerable properties, own and inherited,
* of `object` that have function values.
* Creates a sorted array of property names of all enumerable properties,
* own and inherited, of `object` that have function values.
*
* @static
* @memberOf _
@@ -2497,7 +2472,7 @@
if (isFunc) {
callback = lodash.createCallback(callback, thisArg);
} else {
var props = basicFlatten(nativeSlice.call(arguments, 1));
var props = basicFlatten(arguments, true, false, 1);
}
forIn(object, function(value, key, object) {
if (isFunc
@@ -2567,7 +2542,7 @@
var result = {};
if (typeof callback != 'function') {
var index = -1,
props = basicFlatten(nativeSlice.call(arguments, 1)),
props = basicFlatten(arguments, true, false, 1),
length = isObject(object) ? props.length : 0;
while (++index < length) {
@@ -2688,7 +2663,7 @@
*/
function at(collection) {
var index = -1,
props = basicFlatten(nativeSlice.call(arguments, 1)),
props = basicFlatten(arguments, true, false, 1),
length = props.length,
result = Array(length);
@@ -3693,7 +3668,7 @@
* @memberOf _
* @category Arrays
* @param {Array} array The array to compact.
* @returns {Array} Returns a new filtered array.
* @returns {Array} Returns a new array of filtered values.
* @example
*
* _.compact([0, 1, false, 2, '', 3]);
@@ -3714,17 +3689,15 @@
}
/**
* Creates an arrat with all occurrences of the passed values removed using
* using strict equality for comparisons, i.e. `===`. Values to exclude may
* be specified as individual arguments or as arrays.
* Creates an array excluding all values of the passed-in arrays using
* strict equality for comparisons, i.e. `===`.
*
* @static
* @memberOf _
* @category Arrays
* @param {Array} array The array to process.
* @param {Array} [array1, array2, ...] The values to exclude, specified as
* individual values or arrays of values.
* @returns {Array} Returns a new filtered array.
* @param {Array} [array1, array2, ...] The arrays of values to exclude.
* @returns {Array} Returns a new array of filtered values.
* @example
*
* _.difference([1, 2, 3, 4, 5], [5, 2, 10]);
@@ -3734,7 +3707,7 @@
var index = -1,
indexOf = getIndexOf(),
length = array ? array.length : 0,
seen = basicFlatten(nativeSlice.call(arguments, 1)),
seen = basicFlatten(arguments, true, true, 1),
result = [];
var isLarge = length >= largeArraySize && indexOf === basicIndexOf;
@@ -3889,7 +3862,7 @@
* @memberOf _
* @category Arrays
* @param {Array} array The array to flatten.
* @param {Boolean} [isShallow=false] A flag to indicate only flattening a single level.
* @param {Boolean} [isShallow=false] A flag to restrict flattening to a single level.
* @param {Function|Object|String} [callback=identity] The function called per
* iteration. If a property name or object is passed, it will be used to create
* a "_.pluck" or "_.where" style callback, respectively.
@@ -3912,7 +3885,18 @@
* _.flatten(stooges, 'quotes');
* // => ['Oh, a wise guy, eh?', 'Poifect!', 'Spread out!', 'You knucklehead!']
*/
var flatten = overloadWrapper(basicFlatten);
function flatten(array, isShallow, callback, thisArg) {
// juggle arguments
if (typeof isShallow != 'boolean' && isShallow != null) {
thisArg = callback;
callback = !(thisArg && thisArg[isShallow] === array) ? isShallow : undefined;
isShallow = false;
}
if (callback != null) {
array = map(array, callback, thisArg);
}
return basicFlatten(array, isShallow);
}
/**
* Gets the index at which the first occurrence of `value` is found using
@@ -4025,15 +4009,14 @@
}
/**
* Computes the intersection of all the passed-in arrays using strict equality
* for comparisons, i.e. `===`.
* Creates an array of unique values present in all passed-in arrays using
* strict equality for comparisons, i.e. `===`.
*
* @static
* @memberOf _
* @category Arrays
* @param {Array} [array1, array2, ...] Arrays to process.
* @returns {Array} Returns a new array of unique elements that are present
* in **all** of the arrays.
* @param {Array} [array1, array2, ...] The arrays to inspect.
* @returns {Array} Returns an array of composite values.
* @example
*
* _.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]);
@@ -4384,22 +4367,21 @@
}
/**
* Computes the union of the passed-in arrays using strict equality for
* comparisons, i.e. `===`.
* Creates an array of unique values, in order, of the passed-in arrays
* using strict equality for comparisons, i.e. `===`.
*
* @static
* @memberOf _
* @category Arrays
* @param {Array} [array1, array2, ...] Arrays to process.
* @returns {Array} Returns a new array of unique values, in order, that are
* present in one or more of the arrays.
* @param {Array} [array1, array2, ...] The arrays to inspect.
* @returns {Array} Returns an array of composite values.
* @example
*
* _.union([1, 2, 3], [101, 2, 1, 10], [2, 1]);
* // => [1, 2, 3, 101, 10]
*/
function union(array) {
return basicUniq(basicFlatten(compact(arguments), true));
return basicUniq(basicFlatten(arguments, true, true));
}
/**
@@ -4445,18 +4427,29 @@
* _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
* // => [{ 'x': 1 }, { 'x': 2 }]
*/
var uniq = overloadWrapper(basicUniq);
function uniq(array, isSorted, callback, thisArg) {
// juggle arguments
if (typeof isSorted != 'boolean' && isSorted != null) {
thisArg = callback;
callback = !(thisArg && thisArg[isSorted] === array) ? isSorted : undefined;
isSorted = false;
}
if (callback != null) {
callback = lodash.createCallback(callback, thisArg);
}
return basicUniq(array, isSorted, callback);
}
/**
* Creates an array excluding all occurrences of the passed values using
* strict equality for comparisons, i.e. `===`.
* Creates an array excluding all passed values using strict equality for
* comparisons, i.e. `===`.
*
* @static
* @memberOf _
* @category Arrays
* @param {Array} array The array to filter.
* @param {Mixed} [value1, value2, ...] Values to exclude.
* @returns {Array} Returns a new filtered array.
* @param {Mixed} [value1, value2, ...] The values to exclude.
* @returns {Array} Returns a new array of filtered values.
* @example
*
* _.without([1, 2, 1, 0, 3, 1, 4], 0, 1);
@@ -4598,7 +4591,7 @@
* @category Functions
* @param {Object} object The object to bind and assign the bound methods to.
* @param {String} [methodName1, methodName2, ...] The object method names to
* bind, specified as individual values or arrays of values.
* bind, specified as individual method names or arrays of method names.
* @returns {Object} Returns `object`.
* @example
*
@@ -4612,7 +4605,7 @@
* // => alerts 'clicked docs', when the button is clicked
*/
function bindAll(object) {
var funcs = arguments.length > 1 ? basicFlatten(nativeSlice.call(arguments, 1)) : functions(object),
var funcs = arguments.length > 1 ? basicFlatten(arguments, true, false, 1) : functions(object),
index = -1,
length = funcs.length;

View File

@@ -3,48 +3,49 @@
* Lo-Dash 1.3.1 (Custom Build) lodash.com/license | Underscore.js 1.5.1 underscorejs.org/LICENSE
* Build: `lodash -o ./dist/lodash.compat.js`
*/
;!function(n){function t(n,t,r){r=(r||0)-1;for(var e=n.length;++r<e;)if(n[r]===t)return r;return-1}function r(n,r){var e=typeof r;if(n=n.k,"boolean"==e||r==d)return n[r];"number"!=e&&"string"!=e&&(e="object");var u="number"==e?r:O+r;return n=n[e]||(n[e]={}),"object"==e?n[u]&&-1<t(n[u],r)?0:-1:n[u]?0:-1}function e(n){var t=this.k,r=typeof n;if("boolean"==r||n==d)t[n]=y;else{"number"!=r&&"string"!=r&&(r="object");var e="number"==r?n:O+n,t=t[r]||(t[r]={});"object"==r?(t[e]||(t[e]=[])).push(n):t[e]=y}}function u(n){return n.charCodeAt(0)
}function a(n,t){var r=n.m,e=t.m;if(n=n.l,t=t.l,n!==t){if(n>t||typeof n=="undefined")return 1;if(n<t||typeof t=="undefined")return-1}return r<e?-1:1}function o(n){var t=-1,r=n.length,u=n[0],a=n[r-1];if(u&&typeof u=="object"&&a&&typeof a=="object")return b;for(u=c(),u["false"]=u["null"]=u["true"]=u.undefined=b,a=c(),a.b=n,a.k=u,a.push=e;++t<r;)a.push(n[t]);return a}function i(n){return"\\"+nt[n]}function f(){return _.pop()||[]}function c(){return j.pop()||{a:"",b:d,c:"",k:d,l:d,"false":b,d:"",m:0,e:"",leading:b,f:"",maxWait:0,"null":b,number:d,object:d,push:d,g:d,string:d,h:"",trailing:b,"true":b,undefined:b,i:b,j:b,n:d}
}function l(n){return typeof n.toString!="function"&&typeof(n+"")=="string"}function p(){}function s(n){n.length=0,_.length<S&&_.push(n)}function g(n){var t=n.k;t&&g(t),n.b=n.k=n.l=n.object=n.number=n.string=n.n=d,j.length<S&&j.push(n)}function v(n,t,r){t||(t=0),typeof r=="undefined"&&(r=n?n.length:0);var e=-1;r=r-t||0;for(var u=Array(0>r?0:r);++e<r;)u[e]=n[t+e];return u}function h(e){function _(n){return n&&typeof n=="object"&&!Rr(n)&&gr.call(n,"__wrapped__")?n:new j(n)}function j(n){this.__wrapped__=n
}function S(n,t,r){for(var e=-1,u=n?n.length:0,a=[];++e<u;){var o=n[e];r&&(o=r(o,e,n)),o&&typeof o=="object"&&(Rr(o)||pt(o))?vr.apply(a,t?o:S(o)):a.push(o)}return a}function nt(n,e,u){var a=-1,i=it(),c=n?n.length:0,l=[],p=!e&&c>=E&&i===t,v=u||p?f():l;if(p){var h=o(v);h?(i=r,v=h):(p=b,v=u?v:(s(v),l))}for(;++a<c;){var h=n[a],m=u?u(h,a,n):h;(e?!a||v[v.length-1]!==m:0>i(v,m))&&((u||p)&&v.push(m),l.push(h))}return p?(s(v.b),g(v)):u&&s(v),l}function tt(n,t,r,e){function u(){var e=arguments,c=o?this:t;return a||(n=t[i]),r.length&&(e=e.length?(e=Ar.call(e),f?e.concat(r):r.concat(e)):r),this instanceof u?(c=at(n.prototype),e=n.apply(c,e),yt(e)?e:c):n.apply(c,e)
}var a=mt(n),o=!r,i=t;if(o){var f=e;r=t}else if(!a){if(!e)throw new tr;t=n}return u}function et(){var n=c(),t=x.o;n.g=W,n.b=n.c=n.f=n.h="",n.e="r",n.i=y,n.j=!!t;for(var r,e=0;r=arguments[e];e++)for(var u in r)n[u]=r[u];e=n.a,n.d=/^[^,]+/.exec(e)[0],r=Vt,e="return function("+e+"){",u="var m,r="+n.d+",C="+n.e+";if(!r)return C;"+n.h+";",n.b?(u+="var s=r.length;m=-1;if("+n.b+"){",zr.unindexedChars&&(u+="if(q(r)){r=r.split('')}"),u+="while(++m<s){"+n.f+";}}else{"):zr.nonEnumArgs&&(u+="var s=r.length;m=-1;if(s&&n(r)){while(++m<s){m+='';"+n.f+";}}else{"),zr.enumPrototypes&&(u+="var E=typeof r=='function';"),zr.enumErrorProps&&(u+="var D=r===j||r instanceof Error;");
var a=[];if(zr.enumPrototypes&&a.push('!(E&&m=="prototype")'),zr.enumErrorProps&&a.push('!(D&&(m=="message"||m=="name"))'),n.i&&n.j)u+="var A=-1,B=z[typeof r]&&t(r),s=B?B.length:0;while(++A<s){m=B[A];",a.length&&(u+="if("+a.join("&&")+"){"),u+=n.f+";",a.length&&(u+="}"),u+="}";else if(u+="for(m in r){",n.i&&a.push("l.call(r, m)"),a.length&&(u+="if("+a.join("&&")+"){"),u+=n.f+";",a.length&&(u+="}"),u+="}",zr.nonEnumShadows){for(u+="if(r!==y){var h=r.constructor,p=r===(h&&h.prototype),e=r===H?G:r===j?i:J.call(r),v=w[e];",k=0;7>k;k++)u+="m='"+n.g[k]+"';if((!(p&&v[m])&&l.call(r,m))",n.i||(u+="||(!v[m]&&r[m]!==y[m])"),u+="){"+n.f+"}";
u+="}"}return(n.b||zr.nonEnumArgs)&&(u+="}"),u+=n.c+";return C",r=r("i,j,l,indicatorObject,n,o,q,t,u,y,z,w,G,H,J",e+u+"}"),g(n),r(K,er,gr,w,pt,Rr,bt,t,_,ur,Z,Pr,X,ar,dr)}function at(n){return yt(n)?_r(n):{}}function ot(n){return Lr[n]}function it(){var n=(n=_.indexOf)===Ft?t:n;return n}function ft(n){return function(t,r,e,u){return typeof r!="boolean"&&r!=d&&(u=e,e=u&&u[r]===t?m:r,r=b),e!=d&&(e=_.createCallback(e,u)),n(t,r,e,u)}}function ct(n){var t,r;return!n||dr.call(n)!=V||(t=n.constructor,mt(t)&&!(t instanceof t))||!zr.argsClass&&pt(n)||!zr.nodeClass&&l(n)?b:zr.ownLast?(Ur(n,function(n,t,e){return r=gr.call(e,t),b
}),r!==false):(Ur(n,function(n,t){r=t}),r===m||gr.call(n,r))}function lt(n){return Gr[n]}function pt(n){return n&&typeof n=="object"?dr.call(n)==L:b}function st(n,t,r,e,u,a){var o=n;if(typeof t!="boolean"&&t!=d&&(e=r,r=t,t=b),typeof r=="function"){if(r=typeof e=="undefined"?r:_.createCallback(r,e,1),o=r(o),typeof o!="undefined")return o;o=n}if(e=yt(o)){var i=dr.call(o);if(!Y[i]||!zr.nodeClass&&l(o))return o;var c=Rr(o)}if(!e||!t)return e?c?v(o):Kr({},o):o;switch(e=Nr[i],i){case H:case J:return new e(+o);
case U:case X:return new e(o);case Q:return e(o.source,z.exec(o))}i=!u,u||(u=f()),a||(a=f());for(var p=u.length;p--;)if(u[p]==n)return a[p];return o=c?e(o.length):{},c&&(gr.call(n,"index")&&(o.index=n.index),gr.call(n,"input")&&(o.input=n.input)),u.push(n),a.push(o),(c?Wr:Vr)(n,function(n,e){o[e]=st(n,t,r,m,u,a)}),i&&(s(u),s(a)),o}function gt(n){var t=[];return Ur(n,function(n,r){mt(n)&&t.push(r)}),t.sort()}function vt(n){for(var t=-1,r=Tr(n),e=r.length,u={};++t<e;){var a=r[t];u[n[a]]=a}return u}function ht(n,t,r,e,u,a){var o=r===w;
if(typeof r=="function"&&!o){r=_.createCallback(r,e,2);var i=r(n,t);if(typeof i!="undefined")return!!i}if(n===t)return 0!==n||1/n==1/t;var c=typeof n,p=typeof t;if(n===n&&(!n||"function"!=c&&"object"!=c)&&(!t||"function"!=p&&"object"!=p))return b;if(n==d||t==d)return n===t;if(p=dr.call(n),c=dr.call(t),p==L&&(p=V),c==L&&(c=V),p!=c)return b;switch(p){case H:case J:return+n==+t;case U:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case Q:case X:return n==nr(t)}if(c=p==G,!c){if(gr.call(n,"__wrapped__")||gr.call(t,"__wrapped__"))return ht(n.__wrapped__||n,t.__wrapped__||t,r,e,u,a);
if(p!=V||!zr.nodeClass&&(l(n)||l(t)))return b;var p=!zr.argsObject&&pt(n)?Yt:n.constructor,g=!zr.argsObject&&pt(t)?Yt:t.constructor;if(p!=g&&(!mt(p)||!(p instanceof p&&mt(g)&&g instanceof g)))return b}for(g=!u,u||(u=f()),a||(a=f()),p=u.length;p--;)if(u[p]==n)return a[p]==t;var v=0,i=y;if(u.push(n),a.push(t),c){if(p=n.length,v=t.length,i=v==n.length,!i&&!o)return i;for(;v--;)if(c=p,g=t[v],o)for(;c--&&!(i=ht(n[c],g,r,e,u,a)););else if(!(i=ht(n[v],g,r,e,u,a)))break;return i}return Ur(t,function(t,o,f){return gr.call(f,o)?(v++,i=gr.call(n,o)&&ht(n[o],t,r,e,u,a)):void 0
}),i&&!o&&Ur(n,function(n,t,r){return gr.call(r,t)?i=-1<--v:void 0}),g&&(s(u),s(a)),i}function mt(n){return typeof n=="function"}function yt(n){return!(!n||!Z[typeof n])}function dt(n){return typeof n=="number"||dr.call(n)==U}function bt(n){return typeof n=="string"||dr.call(n)==X}function _t(n,t,r){var e=arguments,u=0,a=2;if(!yt(n))return n;if(r===w)var o=e[3],i=e[4],c=e[5];else{var l=y,i=f(),c=f();typeof r!="number"&&(a=e.length),3<a&&"function"==typeof e[a-2]?o=_.createCallback(e[--a-1],e[a--],2):2<a&&"function"==typeof e[a-1]&&(o=e[--a])
}for(;++u<a;)(Rr(e[u])?Ot:Vr)(e[u],function(t,r){var e,u,a=t,f=n[r];if(t&&((u=Rr(t))||Qr(t))){for(a=i.length;a--;)if(e=i[a]==t){f=c[a];break}if(!e){var l;o&&(a=o(f,t),l=typeof a!="undefined")&&(f=a),l||(f=u?Rr(f)?f:[]:Qr(f)?f:{}),i.push(t),c.push(f),l||(f=_t(f,t,w,o,i,c))}}else o&&(a=o(f,t),typeof a=="undefined"&&(a=t)),typeof a!="undefined"&&(f=a);n[r]=f});return l&&(s(i),s(c)),n}function jt(n){for(var t=-1,r=Tr(n),e=r.length,u=Kt(e);++t<e;)u[t]=n[r[t]];return u}function Ct(n,t,r){var e=-1,u=it(),a=n?n.length:0,o=b;
return r=(0>r?xr(0,a+r):r)||0,a&&typeof a=="number"?o=-1<(bt(n)?n.indexOf(t,r):u(n,t,r)):Wr(n,function(n){return++e<r?void 0:!(o=n===t)}),o}function wt(n,t,r){var e=y;if(t=_.createCallback(t,r),Rr(n)){r=-1;for(var u=n.length;++r<u&&(e=!!t(n[r],r,n)););}else Wr(n,function(n,r,u){return e=!!t(n,r,u)});return e}function kt(n,t,r){var e=[];if(t=_.createCallback(t,r),Rr(n)){r=-1;for(var u=n.length;++r<u;){var a=n[r];t(a,r,n)&&e.push(a)}}else Wr(n,function(n,r,u){t(n,r,u)&&e.push(n)});return e}function xt(n,t,r){if(t=_.createCallback(t,r),!Rr(n)){var e;
return Wr(n,function(n,r,u){return t(n,r,u)?(e=n,b):void 0}),e}r=-1;for(var u=n.length;++r<u;){var a=n[r];if(t(a,r,n))return a}}function Ot(n,t,r){if(t&&typeof r=="undefined"&&Rr(n)){r=-1;for(var e=n.length;++r<e&&t(n[r],r,n)!==false;);}else Wr(n,t,r);return n}function Et(n,t,r){var e=-1,u=n?n.length:0,a=Kt(typeof u=="number"?u:0);if(t=_.createCallback(t,r),Rr(n))for(;++e<u;)a[e]=t(n[e],e,n);else Wr(n,function(n,r,u){a[++e]=t(n,r,u)});return a}function St(n,t,r){var e=-1/0,a=e;if(!t&&Rr(n)){r=-1;for(var o=n.length;++r<o;){var i=n[r];
i>a&&(a=i)}}else t=!t&&bt(n)?u:_.createCallback(t,r),Wr(n,function(n,r,u){r=t(n,r,u),r>e&&(e=r,a=n)});return a}function At(n,t,r,e){var u=3>arguments.length;if(t=_.createCallback(t,e,4),Rr(n)){var a=-1,o=n.length;for(u&&(r=n[++a]);++a<o;)r=t(r,n[a],a,n)}else Wr(n,function(n,e,a){r=u?(u=b,n):t(r,n,e,a)});return r}function It(n,t,r,e){var u=n,a=n?n.length:0,o=3>arguments.length;if(typeof a!="number")var i=Tr(n),a=i.length;else zr.unindexedChars&&bt(n)&&(u=n.split(""));return t=_.createCallback(t,e,4),Ot(n,function(n,e,f){e=i?i[--a]:--a,r=o?(o=b,u[e]):t(r,u[e],e,f)
}),r}function Bt(n,t,r){var e;if(t=_.createCallback(t,r),Rr(n)){r=-1;for(var u=n.length;++r<u&&!(e=t(n[r],r,n)););}else Wr(n,function(n,r,u){return!(e=t(n,r,u))});return!!e}function Nt(n){for(var t=-1,r=n?n.length:0,e=[];++t<r;){var u=n[t];u&&e.push(u)}return e}function Pt(n){var e=-1,u=it(),a=n?n.length:0,i=S(Ar.call(arguments,1)),f=[],c=a>=E&&u===t;if(c){var l=o(i);l?(u=r,i=l):c=b}for(;++e<a;)l=n[e],0>u(i,l)&&f.push(l);return c&&g(i),f}function zt(n,t,r){if(n){var e=0,u=n.length;if(typeof t!="number"&&t!=d){var a=-1;
for(t=_.createCallback(t,r);++a<u&&t(n[a],a,n);)e++}else if(e=t,e==d||r)return n[0];return v(n,0,Or(xr(0,e),u))}}function Ft(n,r,e){if(typeof e=="number"){var u=n?n.length:0;e=0>e?xr(0,u+e):e||0}else if(e)return e=Dt(n,r),n[e]===r?e:-1;return n?t(n,r,e):-1}function $t(n,t,r){if(typeof t!="number"&&t!=d){var e=0,u=-1,a=n?n.length:0;for(t=_.createCallback(t,r);++u<a&&t(n[u],u,n);)e++}else e=t==d||r?1:xr(0,t);return v(n,e)}function Dt(n,t,r,e){var u=0,a=n?n.length:u;for(r=r?_.createCallback(r,e,1):Gt,t=r(t);u<a;)e=u+a>>>1,r(n[e])<t?u=e+1:a=e;
return u}function Rt(){for(var n=1<arguments.length?arguments:arguments[0],t=-1,r=n?St(Xr(n,"length")):0,e=Kt(0>r?0:r);++t<r;)e[t]=Xr(n,t);return e}function qt(n,t){for(var r=-1,e=n?n.length:0,u={};++r<e;){var a=n[r];t?u[a]=t[r]:u[a[0]]=a[1]}return u}function Tt(n,t){return zr.fastBind||br&&2<arguments.length?br.call.apply(br,arguments):tt(n,t,Ar.call(arguments,2))}function Wt(n,t,r){function e(){cr(s),cr(g),c=0,s=g=d}function u(){var t=v&&(!h||1<c);e(),t&&(p!==false&&(l=new Ut),i=n.apply(f,o))}function a(){e(),(v||p!==t)&&(l=new Ut,i=n.apply(f,o))
}var o,i,f,c=0,l=0,p=b,s=d,g=d,v=y;if(t=xr(0,t||0),r===y)var h=y,v=b;else yt(r)&&(h=r.leading,p="maxWait"in r&&xr(t,r.maxWait||0),v="trailing"in r?r.trailing:v);return function(){if(o=arguments,f=this,c++,cr(g),p===false)h&&2>c&&(i=n.apply(f,o));else{var r=new Ut;!s&&!h&&(l=r);var e=p-(r-l);0<e?s||(s=yr(a,e)):(cr(s),s=d,l=r,i=n.apply(f,o))}return t!==p&&(g=yr(u,t)),i}}function Lt(n){var t=Ar.call(arguments,1);return yr(function(){n.apply(m,t)},1)}function Gt(n){return n}function Ht(n){Ot(gt(n),function(t){var r=_[t]=n[t];
_.prototype[t]=function(){var n=this.__wrapped__,t=[n];return vr.apply(t,arguments),t=r.apply(_,t),n&&typeof n=="object"&&n===t?this:new j(t)}})}function Jt(){return this.__wrapped__}e=e?ut.defaults(n.Object(),e,ut.pick(n,T)):n;var Kt=e.Array,Mt=e.Boolean,Ut=e.Date,Vt=e.Function,Qt=e.Math,Xt=e.Number,Yt=e.Object,Zt=e.RegExp,nr=e.String,tr=e.TypeError,rr=[],er=e.Error.prototype,ur=Yt.prototype,ar=nr.prototype,or=e._,ir=Zt("^"+nr(ur.valueOf).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),fr=Qt.ceil,cr=e.clearTimeout,lr=Qt.floor,pr=Vt.prototype.toString,sr=ir.test(sr=Yt.getPrototypeOf)&&sr,gr=ur.hasOwnProperty,vr=rr.push,hr=ur.propertyIsEnumerable,mr=e.setImmediate,yr=e.setTimeout,dr=ur.toString,br=ir.test(br=dr.bind)&&br,_r=ir.test(_r=Yt.create)&&_r,jr=ir.test(jr=Kt.isArray)&&jr,Cr=e.isFinite,wr=e.isNaN,kr=ir.test(kr=Yt.keys)&&kr,xr=Qt.max,Or=Qt.min,Er=e.parseInt,Sr=Qt.random,Ar=rr.slice,Ir=ir.test(e.attachEvent),Br=br&&!/\n|true/.test(br+Ir),Nr={};
Nr[G]=Kt,Nr[H]=Mt,Nr[J]=Ut,Nr[M]=Vt,Nr[V]=Yt,Nr[U]=Xt,Nr[Q]=Zt,Nr[X]=nr;var Pr={};Pr[G]=Pr[J]=Pr[U]={constructor:y,toLocaleString:y,toString:y,valueOf:y},Pr[H]=Pr[X]={constructor:y,toString:y,valueOf:y},Pr[K]=Pr[M]=Pr[Q]={constructor:y,toString:y},Pr[V]={constructor:y},function(){for(var n=W.length;n--;){var t,r=W[n];for(t in Pr)gr.call(Pr,t)&&!gr.call(Pr[t],r)&&(Pr[t][r]=b)}}(),j.prototype=_.prototype;var zr=_.support={};!function(){function n(){this.x=1}var t={0:1,length:1},r=[];n.prototype={valueOf:1};
for(var e in new n)r.push(e);for(e in arguments);zr.argsObject=arguments.constructor==Yt&&!(arguments instanceof Kt),zr.argsClass=dr.call(arguments)==L,zr.enumErrorProps=hr.call(er,"message")||hr.call(er,"name"),zr.enumPrototypes=hr.call(n,"prototype"),zr.fastBind=br&&!Br,zr.ownLast="x"!=r[0],zr.nonEnumArgs=0!=e,zr.nonEnumShadows=!/valueOf/.test(r),zr.spliceObjects=(rr.splice.call(t,0,1),!t[0]),zr.unindexedChars="xx"!="x"[0]+Yt("x")[0];try{zr.nodeClass=!(dr.call(document)==V&&!({toString:0}+""))}catch(u){zr.nodeClass=y
}}(1),_.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:F,variable:"",imports:{_:_}};var Fr={a:"x,F,k",h:"var a=arguments,b=0,c=typeof k=='number'?2:a.length;while(++b<c){r=a[b];if(r&&z[typeof r]){",f:"if(typeof C[m]=='undefined')C[m]=r[m]",c:"}}"},$r={a:"f,d,I",h:"d=d&&typeof I=='undefined'?d:u.createCallback(d,I)",b:"typeof s=='number'",f:"if(d(r[m],m,f)===false)return C"},Dr={h:"if(!z[typeof r])return C;"+$r.h,b:b};_r||(at=function(n){if(yt(n)){p.prototype=n;
var t=new p;p.prototype=d}return t||{}}),zr.argsClass||(pt=function(n){return n&&typeof n=="object"?gr.call(n,"callee"):b});var Rr=jr||function(n){return n&&typeof n=="object"?dr.call(n)==G:b},qr=et({a:"x",e:"[]",h:"if(!(z[typeof x]))return C",f:"C.push(m)"}),Tr=x.o=kr?function(n){return yt(n)?zr.enumPrototypes&&typeof n=="function"||zr.nonEnumArgs&&n.length&&pt(n)?qr(n):kr(n):[]}:qr,Wr=et($r),Lr={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Gr=vt(Lr),Hr=Zt("("+Tr(Gr).join("|")+")","g"),Jr=Zt("["+Tr(Lr).join("")+"]","g"),Kr=et(Fr,{h:Fr.h.replace(";",";if(c>3&&typeof a[c-2]=='function'){var d=u.createCallback(a[--c-1],a[c--],2)}else if(c>2&&typeof a[c-1]=='function'){d=a[--c]}"),f:"C[m]=d?d(C[m],r[m]):r[m]"}),Mr=et(Fr),Ur=et($r,Dr,{i:b}),Vr=et($r,Dr);
mt(/x/)&&(mt=function(n){return typeof n=="function"&&dr.call(n)==M});var Qr=sr?function(n){if(!n||dr.call(n)!=V||!zr.argsClass&&pt(n))return b;var t=n.valueOf,r=typeof t=="function"&&(r=sr(t))&&sr(r);return r?n==r||sr(n)==r:ct(n)}:ct,Xr=Et,Yr=ft(S),Zr=ft(nt);Br&&rt&&typeof mr=="function"&&(Lt=Tt(mr,e));var ne=8==Er(A+"08")?Er:function(n,t){return Er(bt(n)?n.replace($,""):n,t||0)};return _.after=function(n,t){return function(){return 1>--n?t.apply(this,arguments):void 0}},_.assign=Kr,_.at=function(n){var t=-1,r=S(Ar.call(arguments,1)),e=r.length,u=Kt(e);
for(zr.unindexedChars&&bt(n)&&(n=n.split(""));++t<e;)u[t]=n[r[t]];return u},_.bind=Tt,_.bindAll=function(n){for(var t=1<arguments.length?S(Ar.call(arguments,1)):gt(n),r=-1,e=t.length;++r<e;){var u=t[r];n[u]=Tt(n[u],n)}return n},_.bindKey=function(n,t){return tt(n,t,Ar.call(arguments,2),w)},_.compact=Nt,_.compose=function(){var n=arguments;return function(){for(var t=arguments,r=n.length;r--;)t=[n[r].apply(this,t)];return t[0]}},_.countBy=function(n,t,r){var e={};return t=_.createCallback(t,r),Ot(n,function(n,r,u){r=nr(t(n,r,u)),gr.call(e,r)?e[r]++:e[r]=1
}),e},_.createCallback=function(n,t,r){if(n==d)return Gt;var e=typeof n;if("function"!=e){if("object"!=e)return function(t){return t[n]};var u=Tr(n);return function(t){for(var r=u.length,e=b;r--&&(e=ht(t[u[r]],n[u[r]],w)););return e}}return typeof t=="undefined"||R&&!R.test(pr.call(n))?n:1===r?function(r){return n.call(t,r)}:2===r?function(r,e){return n.call(t,r,e)}:4===r?function(r,e,u,a){return n.call(t,r,e,u,a)}:function(r,e,u){return n.call(t,r,e,u)}},_.debounce=Wt,_.defaults=Mr,_.defer=Lt,_.delay=function(n,t){var r=Ar.call(arguments,2);
return yr(function(){n.apply(m,r)},t)},_.difference=Pt,_.filter=kt,_.flatten=Yr,_.forEach=Ot,_.forIn=Ur,_.forOwn=Vr,_.functions=gt,_.groupBy=function(n,t,r){var e={};return t=_.createCallback(t,r),Ot(n,function(n,r,u){r=nr(t(n,r,u)),(gr.call(e,r)?e[r]:e[r]=[]).push(n)}),e},_.initial=function(n,t,r){if(!n)return[];var e=0,u=n.length;if(typeof t!="number"&&t!=d){var a=u;for(t=_.createCallback(t,r);a--&&t(n[a],a,n);)e++}else e=t==d||r?1:t||e;return v(n,0,Or(xr(0,u-e),u))},_.intersection=function(n){for(var e=arguments,u=e.length,a=-1,i=f(),c=-1,l=it(),p=n?n.length:0,v=[],h=f();++a<u;){var m=e[a];
i[a]=l===t&&(m?m.length:0)>=E&&o(a?e[a]:h)}n:for(;++c<p;){var y=i[0],m=n[c];if(0>(y?r(y,m):l(h,m))){for(a=u,(y||h).push(m);--a;)if(y=i[a],0>(y?r(y,m):l(e[a],m)))continue n;v.push(m)}}for(;u--;)(y=i[u])&&g(y);return s(i),s(h),v},_.invert=vt,_.invoke=function(n,t){var r=Ar.call(arguments,2),e=-1,u=typeof t=="function",a=n?n.length:0,o=Kt(typeof a=="number"?a:0);return Ot(n,function(n){o[++e]=(u?t:n[t]).apply(n,r)}),o},_.keys=Tr,_.map=Et,_.max=St,_.memoize=function(n,t){function r(){var e=r.cache,u=O+(t?t.apply(this,arguments):arguments[0]);
return gr.call(e,u)?e[u]:e[u]=n.apply(this,arguments)}return r.cache={},r},_.merge=_t,_.min=function(n,t,r){var e=1/0,a=e;if(!t&&Rr(n)){r=-1;for(var o=n.length;++r<o;){var i=n[r];i<a&&(a=i)}}else t=!t&&bt(n)?u:_.createCallback(t,r),Wr(n,function(n,r,u){r=t(n,r,u),r<e&&(e=r,a=n)});return a},_.omit=function(n,t,r){var e=it(),u=typeof t=="function",a={};if(u)t=_.createCallback(t,r);else var o=S(Ar.call(arguments,1));return Ur(n,function(n,r,i){(u?!t(n,r,i):0>e(o,r))&&(a[r]=n)}),a},_.once=function(n){var t,r;
return function(){return t?r:(t=y,r=n.apply(this,arguments),n=d,r)}},_.pairs=function(n){for(var t=-1,r=Tr(n),e=r.length,u=Kt(e);++t<e;){var a=r[t];u[t]=[a,n[a]]}return u},_.partial=function(n){return tt(n,Ar.call(arguments,1))},_.partialRight=function(n){return tt(n,Ar.call(arguments,1),d,w)},_.pick=function(n,t,r){var e={};if(typeof t!="function")for(var u=-1,a=S(Ar.call(arguments,1)),o=yt(n)?a.length:0;++u<o;){var i=a[u];i in n&&(e[i]=n[i])}else t=_.createCallback(t,r),Ur(n,function(n,r,u){t(n,r,u)&&(e[r]=n)
});return e},_.pluck=Xr,_.range=function(n,t,r){n=+n||0,r=+r||1,t==d&&(t=n,n=0);var e=-1;t=xr(0,fr((t-n)/r));for(var u=Kt(t);++e<t;)u[e]=n,n+=r;return u},_.reject=function(n,t,r){return t=_.createCallback(t,r),kt(n,function(n,r,e){return!t(n,r,e)})},_.rest=$t,_.shuffle=function(n){var t=-1,r=n?n.length:0,e=Kt(typeof r=="number"?r:0);return Ot(n,function(n){var r=lr(Sr()*(++t+1));e[t]=e[r],e[r]=n}),e},_.sortBy=function(n,t,r){var e=-1,u=n?n.length:0,o=Kt(typeof u=="number"?u:0);for(t=_.createCallback(t,r),Ot(n,function(n,r,u){var a=o[++e]=c();
a.l=t(n,r,u),a.m=e,a.n=n}),u=o.length,o.sort(a);u--;)n=o[u],o[u]=n.n,g(n);return o},_.tap=function(n,t){return t(n),n},_.throttle=function(n,t,r){var e=y,u=y;return r===false?e=b:yt(r)&&(e="leading"in r?r.leading:e,u="trailing"in r?r.trailing:u),r=c(),r.leading=e,r.maxWait=t,r.trailing=u,n=Wt(n,t,r),g(r),n},_.times=function(n,t,r){n=-1<(n=+n)?n:0;var e=-1,u=Kt(n);for(t=_.createCallback(t,r,1);++e<n;)u[e]=t(e);return u},_.toArray=function(n){return n&&typeof n.length=="number"?zr.unindexedChars&&bt(n)?n.split(""):v(n):jt(n)
},_.transform=function(n,t,r,e){var u=Rr(n);return t=_.createCallback(t,e,4),r==d&&(u?r=[]:(e=n&&n.constructor,r=at(e&&e.prototype))),(u?Wr:Vr)(n,function(n,e,u){return t(r,n,e,u)}),r},_.union=function(){return nt(S(Nt(arguments),y))},_.uniq=Zr,_.values=jt,_.where=kt,_.without=function(n){return Pt(n,Ar.call(arguments,1))},_.wrap=function(n,t){return function(){var r=[n];return vr.apply(r,arguments),t.apply(this,r)}},_.zip=Rt,_.zipObject=qt,_.collect=Et,_.drop=$t,_.each=Ot,_.extend=Kr,_.methods=gt,_.object=qt,_.select=kt,_.tail=$t,_.unique=Zr,_.unzip=Rt,Ht(_),_.chain=_,_.prototype.chain=function(){return this
},_.clone=st,_.cloneDeep=function(n,t,r){return st(n,y,t,r)},_.contains=Ct,_.escape=function(n){return n==d?"":nr(n).replace(Jr,ot)},_.every=wt,_.find=xt,_.findIndex=function(n,t,r){var e=-1,u=n?n.length:0;for(t=_.createCallback(t,r);++e<u;)if(t(n[e],e,n))return e;return-1},_.findKey=function(n,t,r){var e;return t=_.createCallback(t,r),Vr(n,function(n,r,u){return t(n,r,u)?(e=r,b):void 0}),e},_.has=function(n,t){return n?gr.call(n,t):b},_.identity=Gt,_.indexOf=Ft,_.isArguments=pt,_.isArray=Rr,_.isBoolean=function(n){return n===y||n===false||dr.call(n)==H
},_.isDate=function(n){return n?typeof n=="object"&&dr.call(n)==J:b},_.isElement=function(n){return n?1===n.nodeType:b},_.isEmpty=function(n){var t=y;if(!n)return t;var r=dr.call(n),e=n.length;return r==G||r==X||(zr.argsClass?r==L:pt(n))||r==V&&typeof e=="number"&&mt(n.splice)?!e:(Vr(n,function(){return t=b}),t)},_.isEqual=ht,_.isFinite=function(n){return Cr(n)&&!wr(parseFloat(n))},_.isFunction=mt,_.isNaN=function(n){return dt(n)&&n!=+n},_.isNull=function(n){return n===d},_.isNumber=dt,_.isObject=yt,_.isPlainObject=Qr,_.isRegExp=function(n){return n&&Z[typeof n]?dr.call(n)==Q:b
},_.isString=bt,_.isUndefined=function(n){return typeof n=="undefined"},_.lastIndexOf=function(n,t,r){var e=n?n.length:0;for(typeof r=="number"&&(e=(0>r?xr(0,e+r):Or(r,e-1))+1);e--;)if(n[e]===t)return e;return-1},_.mixin=Ht,_.noConflict=function(){return e._=or,this},_.parseInt=ne,_.random=function(n,t){n==d&&t==d&&(t=1),n=+n||0,t==d?(t=n,n=0):t=+t||0;var r=Sr();return n%1||t%1?n+Or(r*(t-n+parseFloat("1e-"+((r+"").length-1))),t):n+lr(r*(t-n+1))},_.reduce=At,_.reduceRight=It,_.result=function(n,t){var r=n?n[t]:m;
return mt(r)?n[t]():r},_.runInContext=h,_.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:Tr(n).length},_.some=Bt,_.sortedIndex=Dt,_.template=function(n,t,r){var e=_.templateSettings;n||(n=""),r=Mr({},r,e);var u,a=Mr({},r.imports,e.imports),e=Tr(a),a=jt(a),o=0,f=r.interpolate||D,c="__p+='",f=Zt((r.escape||D).source+"|"+f.source+"|"+(f===F?P:D).source+"|"+(r.evaluate||D).source+"|$","g");n.replace(f,function(t,r,e,a,f,l){return e||(e=a),c+=n.slice(o,l).replace(q,i),r&&(c+="'+__e("+r+")+'"),f&&(u=y,c+="';"+f+";__p+='"),e&&(c+="'+((__t=("+e+"))==null?'':__t)+'"),o=l+t.length,t
}),c+="';\n",f=r=r.variable,f||(r="obj",c="with("+r+"){"+c+"}"),c=(u?c.replace(I,""):c).replace(B,"$1").replace(N,"$1;"),c="function("+r+"){"+(f?"":r+"||("+r+"={});")+"var __t,__p='',__e=_.escape"+(u?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+c+"return __p}";try{var l=Vt(e,"return "+c).apply(m,a)}catch(p){throw p.source=c,p}return t?l(t):(l.source=c,l)},_.unescape=function(n){return n==d?"":nr(n).replace(Hr,lt)},_.uniqueId=function(n){var t=++C;return nr(n==d?"":n)+t
},_.all=wt,_.any=Bt,_.detect=xt,_.findWhere=xt,_.foldl=At,_.foldr=It,_.include=Ct,_.inject=At,Vr(_,function(n,t){_.prototype[t]||(_.prototype[t]=function(){var t=[this.__wrapped__];return vr.apply(t,arguments),n.apply(_,t)})}),_.first=zt,_.last=function(n,t,r){if(n){var e=0,u=n.length;if(typeof t!="number"&&t!=d){var a=u;for(t=_.createCallback(t,r);a--&&t(n[a],a,n);)e++}else if(e=t,e==d||r)return n[u-1];return v(n,xr(0,u-e))}},_.take=zt,_.head=zt,Vr(_,function(n,t){_.prototype[t]||(_.prototype[t]=function(t,r){var e=n(this.__wrapped__,t,r);
return t==d||r&&typeof t!="function"?e:new j(e)})}),_.VERSION="1.3.1",_.prototype.toString=function(){return nr(this.__wrapped__)},_.prototype.value=Jt,_.prototype.valueOf=Jt,Wr(["join","pop","shift"],function(n){var t=rr[n];_.prototype[n]=function(){return t.apply(this.__wrapped__,arguments)}}),Wr(["push","reverse","sort","unshift"],function(n){var t=rr[n];_.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),Wr(["concat","slice","splice"],function(n){var t=rr[n];_.prototype[n]=function(){return new j(t.apply(this.__wrapped__,arguments))
}}),zr.spliceObjects||Wr(["pop","shift","splice"],function(n){var t=rr[n],r="splice"==n;_.prototype[n]=function(){var n=this.__wrapped__,e=t.apply(n,arguments);return 0===n.length&&delete n[0],r?new j(e):e}}),_}var m,y=!0,d=null,b=!1,_=[],j=[],C=0,w={},x={},O=+new Date+"",E=75,S=40,A=" \t\x0B\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000",I=/\b__p\+='';/g,B=/\b(__p\+=)''\+/g,N=/(__e\(.*?\)|\b__t\))\+'';/g,P=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,z=/\w*$/,F=/<%=([\s\S]+?)%>/g,$=RegExp("^["+A+"]*0+(?=.$)"),D=/($^)/,R=(R=/\bthis\b/)&&R.test(h)&&R,q=/['\n\r\t\u2028\u2029\\]/g,T="Array Boolean Date Error Function Math Number Object RegExp String _ attachEvent clearTimeout isFinite isNaN parseInt setImmediate setTimeout".split(" "),W="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),L="[object Arguments]",G="[object Array]",H="[object Boolean]",J="[object Date]",K="[object Error]",M="[object Function]",U="[object Number]",V="[object Object]",Q="[object RegExp]",X="[object String]",Y={};
;!function(n){function t(n,t,r){r=(r||0)-1;for(var e=n?n.length:0;++r<e;)if(n[r]===t)return r;return-1}function r(n,r){var e=typeof r;if(n=n.k,"boolean"==e||r==d)return n[r];"number"!=e&&"string"!=e&&(e="object");var u="number"==e?r:O+r;return n=n[e]||(n[e]={}),"object"==e?n[u]&&-1<t(n[u],r)?0:-1:n[u]?0:-1}function e(n){var t=this.k,r=typeof n;if("boolean"==r||n==d)t[n]=y;else{"number"!=r&&"string"!=r&&(r="object");var e="number"==r?n:O+n,t=t[r]||(t[r]={});"object"==r?(t[e]||(t[e]=[])).push(n):t[e]=y
}}function u(n){return n.charCodeAt(0)}function o(n,t){var r=n.m,e=t.m;if(n=n.l,t=t.l,n!==t){if(n>t||typeof n=="undefined")return 1;if(n<t||typeof t=="undefined")return-1}return r<e?-1:1}function a(n){var t=-1,r=n.length,u=n[0],o=n[r-1];if(u&&typeof u=="object"&&o&&typeof o=="object")return b;for(u=c(),u["false"]=u["null"]=u["true"]=u.undefined=b,o=c(),o.b=n,o.k=u,o.push=e;++t<r;)o.push(n[t]);return o}function i(n){return"\\"+nt[n]}function f(){return _.pop()||[]}function c(){return j.pop()||{a:"",b:d,c:"",k:d,l:d,"false":b,d:"",m:0,e:"",leading:b,f:"",maxWait:0,"null":b,number:d,object:d,push:d,g:d,string:d,h:"",trailing:b,"true":b,undefined:b,i:b,j:b,n:d}
}function l(n){return typeof n.toString!="function"&&typeof(n+"")=="string"}function p(){}function s(n){n.length=0,_.length<S&&_.push(n)}function g(n){var t=n.k;t&&g(t),n.b=n.k=n.l=n.object=n.number=n.string=n.n=d,j.length<S&&j.push(n)}function v(n,t,r){t||(t=0),typeof r=="undefined"&&(r=n?n.length:0);var e=-1;r=r-t||0;for(var u=Array(0>r?0:r);++e<r;)u[e]=n[t+e];return u}function h(e){function _(n){return n&&typeof n=="object"&&!Dr(n)&&sr.call(n,"__wrapped__")?n:new j(n)}function j(n){this.__wrapped__=n
}function S(n,t,r,e){e=(e||0)-1;for(var u=n?n.length:0,o=[];++e<u;){var a=n[e];a&&typeof a=="object"&&(Dr(a)||lt(a))?gr.apply(o,t?a:S(a)):r||o.push(a)}return o}function nt(n,e,u){var o=-1,i=it(),c=n?n.length:0,l=[],p=!e&&c>=E&&i===t,v=u||p?f():l;if(p){var h=a(v);h?(i=r,v=h):(p=b,v=u?v:(s(v),l))}for(;++o<c;){var h=n[o],m=u?u(h,o,n):h;(e?!o||v[v.length-1]!==m:0>i(v,m))&&((u||p)&&v.push(m),l.push(h))}return p?(s(v.b),g(v)):u&&s(v),l}function tt(n,t,r,e){function u(){var e=arguments,c=a?this:t;return o||(n=t[i]),r.length&&(e=e.length?(e=Sr.call(e),f?e.concat(r):r.concat(e)):r),this instanceof u?(c=ot(n.prototype),e=n.apply(c,e),mt(e)?e:c):n.apply(c,e)
}var o=ht(n),a=!r,i=t;if(a){var f=e;r=t}else if(!o){if(!e)throw new nr;t=n}return u}function et(){var n=c(),t=x.o;n.g=W,n.b=n.c=n.f=n.h="",n.e="r",n.i=y,n.j=!!t;for(var r,e=0;r=arguments[e];e++)for(var u in r)n[u]=r[u];e=n.a,n.d=/^[^,]+/.exec(e)[0],r=Ut,e="return function("+e+"){",u="var m,r="+n.d+",C="+n.e+";if(!r)return C;"+n.h+";",n.b?(u+="var s=r.length;m=-1;if("+n.b+"){",Pr.unindexedChars&&(u+="if(q(r)){r=r.split('')}"),u+="while(++m<s){"+n.f+";}}else{"):Pr.nonEnumArgs&&(u+="var s=r.length;m=-1;if(s&&n(r)){while(++m<s){m+='';"+n.f+";}}else{"),Pr.enumPrototypes&&(u+="var E=typeof r=='function';"),Pr.enumErrorProps&&(u+="var D=r===j||r instanceof Error;");
var o=[];if(Pr.enumPrototypes&&o.push('!(E&&m=="prototype")'),Pr.enumErrorProps&&o.push('!(D&&(m=="message"||m=="name"))'),n.i&&n.j)u+="var A=-1,B=z[typeof r]&&t(r),s=B?B.length:0;while(++A<s){m=B[A];",o.length&&(u+="if("+o.join("&&")+"){"),u+=n.f+";",o.length&&(u+="}"),u+="}";else if(u+="for(m in r){",n.i&&o.push("l.call(r, m)"),o.length&&(u+="if("+o.join("&&")+"){"),u+=n.f+";",o.length&&(u+="}"),u+="}",Pr.nonEnumShadows){for(u+="if(r!==y){var h=r.constructor,p=r===(h&&h.prototype),e=r===H?G:r===j?i:J.call(r),v=w[e];",k=0;7>k;k++)u+="m='"+n.g[k]+"';if((!(p&&v[m])&&l.call(r,m))",n.i||(u+="||(!v[m]&&r[m]!==y[m])"),u+="){"+n.f+"}";
u+="}"}return(n.b||Pr.nonEnumArgs)&&(u+="}"),u+=n.c+";return C",r=r("i,j,l,indicatorObject,n,o,q,t,u,y,z,w,G,H,J",e+u+"}"),g(n),r(K,rr,sr,w,lt,Dr,dt,t,_,er,Z,Nr,X,ur,yr)}function ot(n){return mt(n)?br(n):{}}function at(n){return Wr[n]}function it(){var n=(n=_.indexOf)===Pt?t:n;return n}function ft(n){var t,r;return!n||yr.call(n)!=V||(t=n.constructor,ht(t)&&!(t instanceof t))||!Pr.argsClass&&lt(n)||!Pr.nodeClass&&l(n)?b:Pr.ownLast?(Mr(n,function(n,t,e){return r=sr.call(e,t),b}),r!==false):(Mr(n,function(n,t){r=t
}),r===m||sr.call(n,r))}function ct(n){return Lr[n]}function lt(n){return n&&typeof n=="object"?yr.call(n)==L:b}function pt(n,t,r,e,u,o){var a=n;if(typeof t!="boolean"&&t!=d&&(e=r,r=t,t=b),typeof r=="function"){if(r=typeof e=="undefined"?r:_.createCallback(r,e,1),a=r(a),typeof a!="undefined")return a;a=n}if(e=mt(a)){var i=yr.call(a);if(!Y[i]||!Pr.nodeClass&&l(a))return a;var c=Dr(a)}if(!e||!t)return e?c?v(a):Jr({},a):a;switch(e=Br[i],i){case H:case J:return new e(+a);case U:case X:return new e(a);
case Q:return e(a.source,z.exec(a))}i=!u,u||(u=f()),o||(o=f());for(var p=u.length;p--;)if(u[p]==n)return o[p];return a=c?e(a.length):{},c&&(sr.call(n,"index")&&(a.index=n.index),sr.call(n,"input")&&(a.input=n.input)),u.push(n),o.push(a),(c?Tr:Ur)(n,function(n,e){a[e]=pt(n,t,r,m,u,o)}),i&&(s(u),s(o)),a}function st(n){var t=[];return Mr(n,function(n,r){ht(n)&&t.push(r)}),t.sort()}function gt(n){for(var t=-1,r=qr(n),e=r.length,u={};++t<e;){var o=r[t];u[n[o]]=o}return u}function vt(n,t,r,e,u,o){var a=r===w;
if(typeof r=="function"&&!a){r=_.createCallback(r,e,2);var i=r(n,t);if(typeof i!="undefined")return!!i}if(n===t)return 0!==n||1/n==1/t;var c=typeof n,p=typeof t;if(n===n&&(!n||"function"!=c&&"object"!=c)&&(!t||"function"!=p&&"object"!=p))return b;if(n==d||t==d)return n===t;if(p=yr.call(n),c=yr.call(t),p==L&&(p=V),c==L&&(c=V),p!=c)return b;switch(p){case H:case J:return+n==+t;case U:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case Q:case X:return n==Zt(t)}if(c=p==G,!c){if(sr.call(n,"__wrapped__")||sr.call(t,"__wrapped__"))return vt(n.__wrapped__||n,t.__wrapped__||t,r,e,u,o);
if(p!=V||!Pr.nodeClass&&(l(n)||l(t)))return b;var p=!Pr.argsObject&&lt(n)?Xt:n.constructor,g=!Pr.argsObject&&lt(t)?Xt:t.constructor;if(p!=g&&(!ht(p)||!(p instanceof p&&ht(g)&&g instanceof g)))return b}for(g=!u,u||(u=f()),o||(o=f()),p=u.length;p--;)if(u[p]==n)return o[p]==t;var v=0,i=y;if(u.push(n),o.push(t),c){if(p=n.length,v=t.length,i=v==n.length,!i&&!a)return i;for(;v--;)if(c=p,g=t[v],a)for(;c--&&!(i=vt(n[c],g,r,e,u,o)););else if(!(i=vt(n[v],g,r,e,u,o)))break;return i}return Mr(t,function(t,a,f){return sr.call(f,a)?(v++,i=sr.call(n,a)&&vt(n[a],t,r,e,u,o)):void 0
}),i&&!a&&Mr(n,function(n,t,r){return sr.call(r,t)?i=-1<--v:void 0}),g&&(s(u),s(o)),i}function ht(n){return typeof n=="function"}function mt(n){return!(!n||!Z[typeof n])}function yt(n){return typeof n=="number"||yr.call(n)==U}function dt(n){return typeof n=="string"||yr.call(n)==X}function bt(n,t,r){var e=arguments,u=0,o=2;if(!mt(n))return n;if(r===w)var a=e[3],i=e[4],c=e[5];else{var l=y,i=f(),c=f();typeof r!="number"&&(o=e.length),3<o&&"function"==typeof e[o-2]?a=_.createCallback(e[--o-1],e[o--],2):2<o&&"function"==typeof e[o-1]&&(a=e[--o])
}for(;++u<o;)(Dr(e[u])?xt:Ur)(e[u],function(t,r){var e,u,o=t,f=n[r];if(t&&((u=Dr(t))||Vr(t))){for(o=i.length;o--;)if(e=i[o]==t){f=c[o];break}if(!e){var l;a&&(o=a(f,t),l=typeof o!="undefined")&&(f=o),l||(f=u?Dr(f)?f:[]:Vr(f)?f:{}),i.push(t),c.push(f),l||(f=bt(f,t,w,a,i,c))}}else a&&(o=a(f,t),typeof o=="undefined"&&(o=t)),typeof o!="undefined"&&(f=o);n[r]=f});return l&&(s(i),s(c)),n}function _t(n){for(var t=-1,r=qr(n),e=r.length,u=Jt(e);++t<e;)u[t]=n[r[t]];return u}function jt(n,t,r){var e=-1,u=it(),o=n?n.length:0,a=b;
return r=(0>r?kr(0,o+r):r)||0,o&&typeof o=="number"?a=-1<(dt(n)?n.indexOf(t,r):u(n,t,r)):Tr(n,function(n){return++e<r?void 0:!(a=n===t)}),a}function Ct(n,t,r){var e=y;if(t=_.createCallback(t,r),Dr(n)){r=-1;for(var u=n.length;++r<u&&(e=!!t(n[r],r,n)););}else Tr(n,function(n,r,u){return e=!!t(n,r,u)});return e}function wt(n,t,r){var e=[];if(t=_.createCallback(t,r),Dr(n)){r=-1;for(var u=n.length;++r<u;){var o=n[r];t(o,r,n)&&e.push(o)}}else Tr(n,function(n,r,u){t(n,r,u)&&e.push(n)});return e}function kt(n,t,r){if(t=_.createCallback(t,r),!Dr(n)){var e;
return Tr(n,function(n,r,u){return t(n,r,u)?(e=n,b):void 0}),e}r=-1;for(var u=n.length;++r<u;){var o=n[r];if(t(o,r,n))return o}}function xt(n,t,r){if(t&&typeof r=="undefined"&&Dr(n)){r=-1;for(var e=n.length;++r<e&&t(n[r],r,n)!==false;);}else Tr(n,t,r);return n}function Ot(n,t,r){var e=-1,u=n?n.length:0,o=Jt(typeof u=="number"?u:0);if(t=_.createCallback(t,r),Dr(n))for(;++e<u;)o[e]=t(n[e],e,n);else Tr(n,function(n,r,u){o[++e]=t(n,r,u)});return o}function Et(n,t,r){var e=-1/0,o=e;if(!t&&Dr(n)){r=-1;for(var a=n.length;++r<a;){var i=n[r];
i>o&&(o=i)}}else t=!t&&dt(n)?u:_.createCallback(t,r),Tr(n,function(n,r,u){r=t(n,r,u),r>e&&(e=r,o=n)});return o}function St(n,t,r,e){var u=3>arguments.length;if(t=_.createCallback(t,e,4),Dr(n)){var o=-1,a=n.length;for(u&&(r=n[++o]);++o<a;)r=t(r,n[o],o,n)}else Tr(n,function(n,e,o){r=u?(u=b,n):t(r,n,e,o)});return r}function At(n,t,r,e){var u=n,o=n?n.length:0,a=3>arguments.length;if(typeof o!="number")var i=qr(n),o=i.length;else Pr.unindexedChars&&dt(n)&&(u=n.split(""));return t=_.createCallback(t,e,4),xt(n,function(n,e,f){e=i?i[--o]:--o,r=a?(a=b,u[e]):t(r,u[e],e,f)
}),r}function It(n,t,r){var e;if(t=_.createCallback(t,r),Dr(n)){r=-1;for(var u=n.length;++r<u&&!(e=t(n[r],r,n)););}else Tr(n,function(n,r,u){return!(e=t(n,r,u))});return!!e}function Bt(n){var e=-1,u=it(),o=n?n.length:0,i=S(arguments,y,y,1),f=[],c=o>=E&&u===t;if(c){var l=a(i);l?(u=r,i=l):c=b}for(;++e<o;)l=n[e],0>u(i,l)&&f.push(l);return c&&g(i),f}function Nt(n,t,r){if(n){var e=0,u=n.length;if(typeof t!="number"&&t!=d){var o=-1;for(t=_.createCallback(t,r);++o<u&&t(n[o],o,n);)e++}else if(e=t,e==d||r)return n[0];
return v(n,0,xr(kr(0,e),u))}}function Pt(n,r,e){if(typeof e=="number"){var u=n?n.length:0;e=0>e?kr(0,u+e):e||0}else if(e)return e=Ft(n,r),n[e]===r?e:-1;return n?t(n,r,e):-1}function zt(n,t,r){if(typeof t!="number"&&t!=d){var e=0,u=-1,o=n?n.length:0;for(t=_.createCallback(t,r);++u<o&&t(n[u],u,n);)e++}else e=t==d||r?1:kr(0,t);return v(n,e)}function Ft(n,t,r,e){var u=0,o=n?n.length:u;for(r=r?_.createCallback(r,e,1):Lt,t=r(t);u<o;)e=u+o>>>1,r(n[e])<t?u=e+1:o=e;return u}function $t(n,t,r,e){return typeof t!="boolean"&&t!=d&&(e=r,r=e&&e[t]===n?m:t,t=b),r!=d&&(r=_.createCallback(r,e)),nt(n,t,r)
}function Dt(){for(var n=1<arguments.length?arguments:arguments[0],t=-1,r=n?Et(Qr(n,"length")):0,e=Jt(0>r?0:r);++t<r;)e[t]=Qr(n,t);return e}function Rt(n,t){for(var r=-1,e=n?n.length:0,u={};++r<e;){var o=n[r];t?u[o]=t[r]:u[o[0]]=o[1]}return u}function qt(n,t){return Pr.fastBind||dr&&2<arguments.length?dr.call.apply(dr,arguments):tt(n,t,Sr.call(arguments,2))}function Tt(n,t,r){function e(){fr(s),fr(g),c=0,s=g=d}function u(){var t=v&&(!h||1<c);e(),t&&(p!==false&&(l=new Mt),i=n.apply(f,a))}function o(){e(),(v||p!==t)&&(l=new Mt,i=n.apply(f,a))
}var a,i,f,c=0,l=0,p=b,s=d,g=d,v=y;if(t=kr(0,t||0),r===y)var h=y,v=b;else mt(r)&&(h=r.leading,p="maxWait"in r&&kr(t,r.maxWait||0),v="trailing"in r?r.trailing:v);return function(){if(a=arguments,f=this,c++,fr(g),p===false)h&&2>c&&(i=n.apply(f,a));else{var r=new Mt;!s&&!h&&(l=r);var e=p-(r-l);0<e?s||(s=mr(o,e)):(fr(s),s=d,l=r,i=n.apply(f,a))}return t!==p&&(g=mr(u,t)),i}}function Wt(n){var t=Sr.call(arguments,1);return mr(function(){n.apply(m,t)},1)}function Lt(n){return n}function Gt(n){xt(st(n),function(t){var r=_[t]=n[t];
_.prototype[t]=function(){var n=this.__wrapped__,t=[n];return gr.apply(t,arguments),t=r.apply(_,t),n&&typeof n=="object"&&n===t?this:new j(t)}})}function Ht(){return this.__wrapped__}e=e?ut.defaults(n.Object(),e,ut.pick(n,T)):n;var Jt=e.Array,Kt=e.Boolean,Mt=e.Date,Ut=e.Function,Vt=e.Math,Qt=e.Number,Xt=e.Object,Yt=e.RegExp,Zt=e.String,nr=e.TypeError,tr=[],rr=e.Error.prototype,er=Xt.prototype,ur=Zt.prototype,or=e._,ar=Yt("^"+Zt(er.valueOf).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),ir=Vt.ceil,fr=e.clearTimeout,cr=Vt.floor,lr=Ut.prototype.toString,pr=ar.test(pr=Xt.getPrototypeOf)&&pr,sr=er.hasOwnProperty,gr=tr.push,vr=er.propertyIsEnumerable,hr=e.setImmediate,mr=e.setTimeout,yr=er.toString,dr=ar.test(dr=yr.bind)&&dr,br=ar.test(br=Xt.create)&&br,_r=ar.test(_r=Jt.isArray)&&_r,jr=e.isFinite,Cr=e.isNaN,wr=ar.test(wr=Xt.keys)&&wr,kr=Vt.max,xr=Vt.min,Or=e.parseInt,Er=Vt.random,Sr=tr.slice,Ar=ar.test(e.attachEvent),Ir=dr&&!/\n|true/.test(dr+Ar),Br={};
Br[G]=Jt,Br[H]=Kt,Br[J]=Mt,Br[M]=Ut,Br[V]=Xt,Br[U]=Qt,Br[Q]=Yt,Br[X]=Zt;var Nr={};Nr[G]=Nr[J]=Nr[U]={constructor:y,toLocaleString:y,toString:y,valueOf:y},Nr[H]=Nr[X]={constructor:y,toString:y,valueOf:y},Nr[K]=Nr[M]=Nr[Q]={constructor:y,toString:y},Nr[V]={constructor:y},function(){for(var n=W.length;n--;){var t,r=W[n];for(t in Nr)sr.call(Nr,t)&&!sr.call(Nr[t],r)&&(Nr[t][r]=b)}}(),j.prototype=_.prototype;var Pr=_.support={};!function(){function n(){this.x=1}var t={0:1,length:1},r=[];n.prototype={valueOf:1};
for(var e in new n)r.push(e);for(e in arguments);Pr.argsObject=arguments.constructor==Xt&&!(arguments instanceof Jt),Pr.argsClass=yr.call(arguments)==L,Pr.enumErrorProps=vr.call(rr,"message")||vr.call(rr,"name"),Pr.enumPrototypes=vr.call(n,"prototype"),Pr.fastBind=dr&&!Ir,Pr.ownLast="x"!=r[0],Pr.nonEnumArgs=0!=e,Pr.nonEnumShadows=!/valueOf/.test(r),Pr.spliceObjects=(tr.splice.call(t,0,1),!t[0]),Pr.unindexedChars="xx"!="x"[0]+Xt("x")[0];try{Pr.nodeClass=!(yr.call(document)==V&&!({toString:0}+""))}catch(u){Pr.nodeClass=y
}}(1),_.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:F,variable:"",imports:{_:_}};var zr={a:"x,F,k",h:"var a=arguments,b=0,c=typeof k=='number'?2:a.length;while(++b<c){r=a[b];if(r&&z[typeof r]){",f:"if(typeof C[m]=='undefined')C[m]=r[m]",c:"}}"},Fr={a:"f,d,I",h:"d=d&&typeof I=='undefined'?d:u.createCallback(d,I)",b:"typeof s=='number'",f:"if(d(r[m],m,f)===false)return C"},$r={h:"if(!z[typeof r])return C;"+Fr.h,b:b};br||(ot=function(n){if(mt(n)){p.prototype=n;
var t=new p;p.prototype=d}return t||{}}),Pr.argsClass||(lt=function(n){return n&&typeof n=="object"?sr.call(n,"callee"):b});var Dr=_r||function(n){return n&&typeof n=="object"?yr.call(n)==G:b},Rr=et({a:"x",e:"[]",h:"if(!(z[typeof x]))return C",f:"C.push(m)"}),qr=x.o=wr?function(n){return mt(n)?Pr.enumPrototypes&&typeof n=="function"||Pr.nonEnumArgs&&n.length&&lt(n)?Rr(n):wr(n):[]}:Rr,Tr=et(Fr),Wr={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Lr=gt(Wr),Gr=Yt("("+qr(Lr).join("|")+")","g"),Hr=Yt("["+qr(Wr).join("")+"]","g"),Jr=et(zr,{h:zr.h.replace(";",";if(c>3&&typeof a[c-2]=='function'){var d=u.createCallback(a[--c-1],a[c--],2)}else if(c>2&&typeof a[c-1]=='function'){d=a[--c]}"),f:"C[m]=d?d(C[m],r[m]):r[m]"}),Kr=et(zr),Mr=et(Fr,$r,{i:b}),Ur=et(Fr,$r);
ht(/x/)&&(ht=function(n){return typeof n=="function"&&yr.call(n)==M});var Vr=pr?function(n){if(!n||yr.call(n)!=V||!Pr.argsClass&&lt(n))return b;var t=n.valueOf,r=typeof t=="function"&&(r=pr(t))&&pr(r);return r?n==r||pr(n)==r:ft(n)}:ft,Qr=Ot;Ir&&rt&&typeof hr=="function"&&(Wt=qt(hr,e));var Xr=8==Or(A+"08")?Or:function(n,t){return Or(dt(n)?n.replace($,""):n,t||0)};return _.after=function(n,t){return function(){return 1>--n?t.apply(this,arguments):void 0}},_.assign=Jr,_.at=function(n){var t=-1,r=S(arguments,y,b,1),e=r.length,u=Jt(e);
for(Pr.unindexedChars&&dt(n)&&(n=n.split(""));++t<e;)u[t]=n[r[t]];return u},_.bind=qt,_.bindAll=function(n){for(var t=1<arguments.length?S(arguments,y,b,1):st(n),r=-1,e=t.length;++r<e;){var u=t[r];n[u]=qt(n[u],n)}return n},_.bindKey=function(n,t){return tt(n,t,Sr.call(arguments,2),w)},_.compact=function(n){for(var t=-1,r=n?n.length:0,e=[];++t<r;){var u=n[t];u&&e.push(u)}return e},_.compose=function(){var n=arguments;return function(){for(var t=arguments,r=n.length;r--;)t=[n[r].apply(this,t)];return t[0]
}},_.countBy=function(n,t,r){var e={};return t=_.createCallback(t,r),xt(n,function(n,r,u){r=Zt(t(n,r,u)),sr.call(e,r)?e[r]++:e[r]=1}),e},_.createCallback=function(n,t,r){if(n==d)return Lt;var e=typeof n;if("function"!=e){if("object"!=e)return function(t){return t[n]};var u=qr(n);return function(t){for(var r=u.length,e=b;r--&&(e=vt(t[u[r]],n[u[r]],w)););return e}}return typeof t=="undefined"||R&&!R.test(lr.call(n))?n:1===r?function(r){return n.call(t,r)}:2===r?function(r,e){return n.call(t,r,e)}:4===r?function(r,e,u,o){return n.call(t,r,e,u,o)
}:function(r,e,u){return n.call(t,r,e,u)}},_.debounce=Tt,_.defaults=Kr,_.defer=Wt,_.delay=function(n,t){var r=Sr.call(arguments,2);return mr(function(){n.apply(m,r)},t)},_.difference=Bt,_.filter=wt,_.flatten=function(n,t,r,e){return typeof t!="boolean"&&t!=d&&(e=r,r=e&&e[t]===n?m:t,t=b),r!=d&&(n=Ot(n,r,e)),S(n,t)},_.forEach=xt,_.forIn=Mr,_.forOwn=Ur,_.functions=st,_.groupBy=function(n,t,r){var e={};return t=_.createCallback(t,r),xt(n,function(n,r,u){r=Zt(t(n,r,u)),(sr.call(e,r)?e[r]:e[r]=[]).push(n)
}),e},_.initial=function(n,t,r){if(!n)return[];var e=0,u=n.length;if(typeof t!="number"&&t!=d){var o=u;for(t=_.createCallback(t,r);o--&&t(n[o],o,n);)e++}else e=t==d||r?1:t||e;return v(n,0,xr(kr(0,u-e),u))},_.intersection=function(n){for(var e=arguments,u=e.length,o=-1,i=f(),c=-1,l=it(),p=n?n.length:0,v=[],h=f();++o<u;){var m=e[o];i[o]=l===t&&(m?m.length:0)>=E&&a(o?e[o]:h)}n:for(;++c<p;){var y=i[0],m=n[c];if(0>(y?r(y,m):l(h,m))){for(o=u,(y||h).push(m);--o;)if(y=i[o],0>(y?r(y,m):l(e[o],m)))continue n;
v.push(m)}}for(;u--;)(y=i[u])&&g(y);return s(i),s(h),v},_.invert=gt,_.invoke=function(n,t){var r=Sr.call(arguments,2),e=-1,u=typeof t=="function",o=n?n.length:0,a=Jt(typeof o=="number"?o:0);return xt(n,function(n){a[++e]=(u?t:n[t]).apply(n,r)}),a},_.keys=qr,_.map=Ot,_.max=Et,_.memoize=function(n,t){function r(){var e=r.cache,u=O+(t?t.apply(this,arguments):arguments[0]);return sr.call(e,u)?e[u]:e[u]=n.apply(this,arguments)}return r.cache={},r},_.merge=bt,_.min=function(n,t,r){var e=1/0,o=e;if(!t&&Dr(n)){r=-1;
for(var a=n.length;++r<a;){var i=n[r];i<o&&(o=i)}}else t=!t&&dt(n)?u:_.createCallback(t,r),Tr(n,function(n,r,u){r=t(n,r,u),r<e&&(e=r,o=n)});return o},_.omit=function(n,t,r){var e=it(),u=typeof t=="function",o={};if(u)t=_.createCallback(t,r);else var a=S(arguments,y,b,1);return Mr(n,function(n,r,i){(u?!t(n,r,i):0>e(a,r))&&(o[r]=n)}),o},_.once=function(n){var t,r;return function(){return t?r:(t=y,r=n.apply(this,arguments),n=d,r)}},_.pairs=function(n){for(var t=-1,r=qr(n),e=r.length,u=Jt(e);++t<e;){var o=r[t];
u[t]=[o,n[o]]}return u},_.partial=function(n){return tt(n,Sr.call(arguments,1))},_.partialRight=function(n){return tt(n,Sr.call(arguments,1),d,w)},_.pick=function(n,t,r){var e={};if(typeof t!="function")for(var u=-1,o=S(arguments,y,b,1),a=mt(n)?o.length:0;++u<a;){var i=o[u];i in n&&(e[i]=n[i])}else t=_.createCallback(t,r),Mr(n,function(n,r,u){t(n,r,u)&&(e[r]=n)});return e},_.pluck=Qr,_.range=function(n,t,r){n=+n||0,r=+r||1,t==d&&(t=n,n=0);var e=-1;t=kr(0,ir((t-n)/r));for(var u=Jt(t);++e<t;)u[e]=n,n+=r;
return u},_.reject=function(n,t,r){return t=_.createCallback(t,r),wt(n,function(n,r,e){return!t(n,r,e)})},_.rest=zt,_.shuffle=function(n){var t=-1,r=n?n.length:0,e=Jt(typeof r=="number"?r:0);return xt(n,function(n){var r=cr(Er()*(++t+1));e[t]=e[r],e[r]=n}),e},_.sortBy=function(n,t,r){var e=-1,u=n?n.length:0,a=Jt(typeof u=="number"?u:0);for(t=_.createCallback(t,r),xt(n,function(n,r,u){var o=a[++e]=c();o.l=t(n,r,u),o.m=e,o.n=n}),u=a.length,a.sort(o);u--;)n=a[u],a[u]=n.n,g(n);return a},_.tap=function(n,t){return t(n),n
},_.throttle=function(n,t,r){var e=y,u=y;return r===false?e=b:mt(r)&&(e="leading"in r?r.leading:e,u="trailing"in r?r.trailing:u),r=c(),r.leading=e,r.maxWait=t,r.trailing=u,n=Tt(n,t,r),g(r),n},_.times=function(n,t,r){n=-1<(n=+n)?n:0;var e=-1,u=Jt(n);for(t=_.createCallback(t,r,1);++e<n;)u[e]=t(e);return u},_.toArray=function(n){return n&&typeof n.length=="number"?Pr.unindexedChars&&dt(n)?n.split(""):v(n):_t(n)},_.transform=function(n,t,r,e){var u=Dr(n);return t=_.createCallback(t,e,4),r==d&&(u?r=[]:(e=n&&n.constructor,r=ot(e&&e.prototype))),(u?Tr:Ur)(n,function(n,e,u){return t(r,n,e,u)
}),r},_.union=function(){return nt(S(arguments,y,y))},_.uniq=$t,_.values=_t,_.where=wt,_.without=function(n){return Bt(n,Sr.call(arguments,1))},_.wrap=function(n,t){return function(){var r=[n];return gr.apply(r,arguments),t.apply(this,r)}},_.zip=Dt,_.zipObject=Rt,_.collect=Ot,_.drop=zt,_.each=xt,_.extend=Jr,_.methods=st,_.object=Rt,_.select=wt,_.tail=zt,_.unique=$t,_.unzip=Dt,Gt(_),_.chain=_,_.prototype.chain=function(){return this},_.clone=pt,_.cloneDeep=function(n,t,r){return pt(n,y,t,r)},_.contains=jt,_.escape=function(n){return n==d?"":Zt(n).replace(Hr,at)
},_.every=Ct,_.find=kt,_.findIndex=function(n,t,r){var e=-1,u=n?n.length:0;for(t=_.createCallback(t,r);++e<u;)if(t(n[e],e,n))return e;return-1},_.findKey=function(n,t,r){var e;return t=_.createCallback(t,r),Ur(n,function(n,r,u){return t(n,r,u)?(e=r,b):void 0}),e},_.has=function(n,t){return n?sr.call(n,t):b},_.identity=Lt,_.indexOf=Pt,_.isArguments=lt,_.isArray=Dr,_.isBoolean=function(n){return n===y||n===false||yr.call(n)==H},_.isDate=function(n){return n?typeof n=="object"&&yr.call(n)==J:b},_.isElement=function(n){return n?1===n.nodeType:b
},_.isEmpty=function(n){var t=y;if(!n)return t;var r=yr.call(n),e=n.length;return r==G||r==X||(Pr.argsClass?r==L:lt(n))||r==V&&typeof e=="number"&&ht(n.splice)?!e:(Ur(n,function(){return t=b}),t)},_.isEqual=vt,_.isFinite=function(n){return jr(n)&&!Cr(parseFloat(n))},_.isFunction=ht,_.isNaN=function(n){return yt(n)&&n!=+n},_.isNull=function(n){return n===d},_.isNumber=yt,_.isObject=mt,_.isPlainObject=Vr,_.isRegExp=function(n){return n&&Z[typeof n]?yr.call(n)==Q:b},_.isString=dt,_.isUndefined=function(n){return typeof n=="undefined"
},_.lastIndexOf=function(n,t,r){var e=n?n.length:0;for(typeof r=="number"&&(e=(0>r?kr(0,e+r):xr(r,e-1))+1);e--;)if(n[e]===t)return e;return-1},_.mixin=Gt,_.noConflict=function(){return e._=or,this},_.parseInt=Xr,_.random=function(n,t){n==d&&t==d&&(t=1),n=+n||0,t==d?(t=n,n=0):t=+t||0;var r=Er();return n%1||t%1?n+xr(r*(t-n+parseFloat("1e-"+((r+"").length-1))),t):n+cr(r*(t-n+1))},_.reduce=St,_.reduceRight=At,_.result=function(n,t){var r=n?n[t]:m;return ht(r)?n[t]():r},_.runInContext=h,_.size=function(n){var t=n?n.length:0;
return typeof t=="number"?t:qr(n).length},_.some=It,_.sortedIndex=Ft,_.template=function(n,t,r){var e=_.templateSettings;n||(n=""),r=Kr({},r,e);var u,o=Kr({},r.imports,e.imports),e=qr(o),o=_t(o),a=0,f=r.interpolate||D,c="__p+='",f=Yt((r.escape||D).source+"|"+f.source+"|"+(f===F?P:D).source+"|"+(r.evaluate||D).source+"|$","g");n.replace(f,function(t,r,e,o,f,l){return e||(e=o),c+=n.slice(a,l).replace(q,i),r&&(c+="'+__e("+r+")+'"),f&&(u=y,c+="';"+f+";__p+='"),e&&(c+="'+((__t=("+e+"))==null?'':__t)+'"),a=l+t.length,t
}),c+="';\n",f=r=r.variable,f||(r="obj",c="with("+r+"){"+c+"}"),c=(u?c.replace(I,""):c).replace(B,"$1").replace(N,"$1;"),c="function("+r+"){"+(f?"":r+"||("+r+"={});")+"var __t,__p='',__e=_.escape"+(u?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+c+"return __p}";try{var l=Ut(e,"return "+c).apply(m,o)}catch(p){throw p.source=c,p}return t?l(t):(l.source=c,l)},_.unescape=function(n){return n==d?"":Zt(n).replace(Gr,ct)},_.uniqueId=function(n){var t=++C;return Zt(n==d?"":n)+t
},_.all=Ct,_.any=It,_.detect=kt,_.findWhere=kt,_.foldl=St,_.foldr=At,_.include=jt,_.inject=St,Ur(_,function(n,t){_.prototype[t]||(_.prototype[t]=function(){var t=[this.__wrapped__];return gr.apply(t,arguments),n.apply(_,t)})}),_.first=Nt,_.last=function(n,t,r){if(n){var e=0,u=n.length;if(typeof t!="number"&&t!=d){var o=u;for(t=_.createCallback(t,r);o--&&t(n[o],o,n);)e++}else if(e=t,e==d||r)return n[u-1];return v(n,kr(0,u-e))}},_.take=Nt,_.head=Nt,Ur(_,function(n,t){_.prototype[t]||(_.prototype[t]=function(t,r){var e=n(this.__wrapped__,t,r);
return t==d||r&&typeof t!="function"?e:new j(e)})}),_.VERSION="1.3.1",_.prototype.toString=function(){return Zt(this.__wrapped__)},_.prototype.value=Ht,_.prototype.valueOf=Ht,Tr(["join","pop","shift"],function(n){var t=tr[n];_.prototype[n]=function(){return t.apply(this.__wrapped__,arguments)}}),Tr(["push","reverse","sort","unshift"],function(n){var t=tr[n];_.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),Tr(["concat","slice","splice"],function(n){var t=tr[n];_.prototype[n]=function(){return new j(t.apply(this.__wrapped__,arguments))
}}),Pr.spliceObjects||Tr(["pop","shift","splice"],function(n){var t=tr[n],r="splice"==n;_.prototype[n]=function(){var n=this.__wrapped__,e=t.apply(n,arguments);return 0===n.length&&delete n[0],r?new j(e):e}}),_}var m,y=!0,d=null,b=!1,_=[],j=[],C=0,w={},x={},O=+new Date+"",E=75,S=40,A=" \t\x0B\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000",I=/\b__p\+='';/g,B=/\b(__p\+=)''\+/g,N=/(__e\(.*?\)|\b__t\))\+'';/g,P=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,z=/\w*$/,F=/<%=([\s\S]+?)%>/g,$=RegExp("^["+A+"]*0+(?=.$)"),D=/($^)/,R=(R=/\bthis\b/)&&R.test(h)&&R,q=/['\n\r\t\u2028\u2029\\]/g,T="Array Boolean Date Error Function Math Number Object RegExp String _ attachEvent clearTimeout isFinite isNaN parseInt setImmediate setTimeout".split(" "),W="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),L="[object Arguments]",G="[object Array]",H="[object Boolean]",J="[object Date]",K="[object Error]",M="[object Function]",U="[object Number]",V="[object Object]",Q="[object RegExp]",X="[object String]",Y={};
Y[M]=b,Y[L]=Y[G]=Y[H]=Y[J]=Y[U]=Y[V]=Y[Q]=Y[X]=y;var Z={"boolean":b,"function":y,object:y,number:b,string:b,undefined:b},nt={"\\":"\\","'":"'","\n":"n","\r":"r","\t":"t","\u2028":"u2028","\u2029":"u2029"},tt=Z[typeof exports]&&exports,rt=Z[typeof module]&&module&&module.exports==tt&&module,et=Z[typeof global]&&global;!et||et.global!==et&&et.window!==et||(n=et);var ut=h();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(n._=ut, define(function(){return ut})):tt&&!tt.nodeType?rt?(rt.exports=ut)._=ut:tt._=ut:n._=ut
}(this);

127
dist/lodash.js vendored
View File

@@ -151,7 +151,7 @@
*/
function basicIndexOf(array, value, fromIndex) {
var index = (fromIndex || 0) - 1,
length = array.length;
length = array ? array.length : 0;
while (++index < length) {
if (array[index] === value) {
@@ -228,7 +228,7 @@
}
/**
* Used by `sortBy` to compare transformed `collection` values, stable sorting
* Used by `sortBy` to compare transformed `collection` elements, stable sorting
* them in ascending order.
*
* @private
@@ -662,24 +662,22 @@
*
* @private
* @param {Array} array The array to flatten.
* @param {Boolean} [isShallow=false] A flag to indicate only flattening a single level.
* @param {Function} [callback] The function called per iteration.
* @param {Boolean} [isShallow=false] A flag to restrict flattening to a single level.
* @param {Boolean} [isArgArrays=false] A flag to restrict flattening to arrays and `arguments` objects.
* @param {Number} [fromIndex=0] The index to start from.
* @returns {Array} Returns a new flattened array.
*/
function basicFlatten(array, isShallow, callback) {
var index = -1,
function basicFlatten(array, isShallow, isArgArrays, fromIndex) {
var index = (fromIndex || 0) - 1,
length = array ? array.length : 0,
result = [];
while (++index < length) {
var value = array[index];
if (callback) {
value = callback(value, index, array);
}
// recursively flatten arrays (susceptible to call stack limits)
if (value && typeof value == 'object' && (isArray(value) || isArguments(value))) {
push.apply(result, isShallow ? value : basicFlatten(value));
} else {
} else if (!isArgArrays) {
result.push(value);
}
}
@@ -826,34 +824,11 @@
* @private
* @returns {Function} Returns the "indexOf" function.
*/
function getIndexOf(array, value, fromIndex) {
function getIndexOf() {
var result = (result = lodash.indexOf) === indexOf ? basicIndexOf : result;
return result;
}
/**
* Creates a function that juggles arguments, allowing argument overloading
* for `_.flatten` and `_.uniq`, before passing them to the given `func`.
*
* @private
* @param {Function} func The function to wrap.
* @returns {Function} Returns the new function.
*/
function overloadWrapper(func) {
return function(array, flag, callback, thisArg) {
// juggle arguments
if (typeof flag != 'boolean' && flag != null) {
thisArg = callback;
callback = !(thisArg && thisArg[flag] === array) ? flag : undefined;
flag = false;
}
if (callback != null) {
callback = lodash.createCallback(callback, thisArg);
}
return func(array, flag, callback, thisArg);
};
}
/**
* A fallback implementation of `isPlainObject` which checks if a given `value`
* is an object created by the `Object` constructor, assuming objects created
@@ -1384,8 +1359,8 @@
};
/**
* Creates a sorted array of all enumerable properties, own and inherited,
* of `object` that have function values.
* Creates a sorted array of property names of all enumerable properties,
* own and inherited, of `object` that have function values.
*
* @static
* @memberOf _
@@ -2151,7 +2126,7 @@
if (isFunc) {
callback = lodash.createCallback(callback, thisArg);
} else {
var props = basicFlatten(nativeSlice.call(arguments, 1));
var props = basicFlatten(arguments, true, false, 1);
}
forIn(object, function(value, key, object) {
if (isFunc
@@ -2221,7 +2196,7 @@
var result = {};
if (typeof callback != 'function') {
var index = -1,
props = basicFlatten(nativeSlice.call(arguments, 1)),
props = basicFlatten(arguments, true, false, 1),
length = isObject(object) ? props.length : 0;
while (++index < length) {
@@ -2342,7 +2317,7 @@
*/
function at(collection) {
var index = -1,
props = basicFlatten(nativeSlice.call(arguments, 1)),
props = basicFlatten(arguments, true, false, 1),
length = props.length,
result = Array(length);
@@ -3354,7 +3329,7 @@
* @memberOf _
* @category Arrays
* @param {Array} array The array to compact.
* @returns {Array} Returns a new filtered array.
* @returns {Array} Returns a new array of filtered values.
* @example
*
* _.compact([0, 1, false, 2, '', 3]);
@@ -3375,17 +3350,15 @@
}
/**
* Creates an arrat with all occurrences of the passed values removed using
* using strict equality for comparisons, i.e. `===`. Values to exclude may
* be specified as individual arguments or as arrays.
* Creates an array excluding all values of the passed-in arrays using
* strict equality for comparisons, i.e. `===`.
*
* @static
* @memberOf _
* @category Arrays
* @param {Array} array The array to process.
* @param {Array} [array1, array2, ...] The values to exclude, specified as
* individual values or arrays of values.
* @returns {Array} Returns a new filtered array.
* @param {Array} [array1, array2, ...] The arrays of values to exclude.
* @returns {Array} Returns a new array of filtered values.
* @example
*
* _.difference([1, 2, 3, 4, 5], [5, 2, 10]);
@@ -3395,7 +3368,7 @@
var index = -1,
indexOf = getIndexOf(),
length = array ? array.length : 0,
seen = basicFlatten(nativeSlice.call(arguments, 1)),
seen = basicFlatten(arguments, true, true, 1),
result = [];
var isLarge = length >= largeArraySize && indexOf === basicIndexOf;
@@ -3550,7 +3523,7 @@
* @memberOf _
* @category Arrays
* @param {Array} array The array to flatten.
* @param {Boolean} [isShallow=false] A flag to indicate only flattening a single level.
* @param {Boolean} [isShallow=false] A flag to restrict flattening to a single level.
* @param {Function|Object|String} [callback=identity] The function called per
* iteration. If a property name or object is passed, it will be used to create
* a "_.pluck" or "_.where" style callback, respectively.
@@ -3573,7 +3546,18 @@
* _.flatten(stooges, 'quotes');
* // => ['Oh, a wise guy, eh?', 'Poifect!', 'Spread out!', 'You knucklehead!']
*/
var flatten = overloadWrapper(basicFlatten);
function flatten(array, isShallow, callback, thisArg) {
// juggle arguments
if (typeof isShallow != 'boolean' && isShallow != null) {
thisArg = callback;
callback = !(thisArg && thisArg[isShallow] === array) ? isShallow : undefined;
isShallow = false;
}
if (callback != null) {
array = map(array, callback, thisArg);
}
return basicFlatten(array, isShallow);
}
/**
* Gets the index at which the first occurrence of `value` is found using
@@ -3686,15 +3670,14 @@
}
/**
* Computes the intersection of all the passed-in arrays using strict equality
* for comparisons, i.e. `===`.
* Creates an array of unique values present in all passed-in arrays using
* strict equality for comparisons, i.e. `===`.
*
* @static
* @memberOf _
* @category Arrays
* @param {Array} [array1, array2, ...] Arrays to process.
* @returns {Array} Returns a new array of unique elements that are present
* in **all** of the arrays.
* @param {Array} [array1, array2, ...] The arrays to inspect.
* @returns {Array} Returns an array of composite values.
* @example
*
* _.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]);
@@ -4045,22 +4028,21 @@
}
/**
* Computes the union of the passed-in arrays using strict equality for
* comparisons, i.e. `===`.
* Creates an array of unique values, in order, of the passed-in arrays
* using strict equality for comparisons, i.e. `===`.
*
* @static
* @memberOf _
* @category Arrays
* @param {Array} [array1, array2, ...] Arrays to process.
* @returns {Array} Returns a new array of unique values, in order, that are
* present in one or more of the arrays.
* @param {Array} [array1, array2, ...] The arrays to inspect.
* @returns {Array} Returns an array of composite values.
* @example
*
* _.union([1, 2, 3], [101, 2, 1, 10], [2, 1]);
* // => [1, 2, 3, 101, 10]
*/
function union(array) {
return basicUniq(basicFlatten(compact(arguments), true));
return basicUniq(basicFlatten(arguments, true, true));
}
/**
@@ -4106,18 +4088,29 @@
* _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
* // => [{ 'x': 1 }, { 'x': 2 }]
*/
var uniq = overloadWrapper(basicUniq);
function uniq(array, isSorted, callback, thisArg) {
// juggle arguments
if (typeof isSorted != 'boolean' && isSorted != null) {
thisArg = callback;
callback = !(thisArg && thisArg[isSorted] === array) ? isSorted : undefined;
isSorted = false;
}
if (callback != null) {
callback = lodash.createCallback(callback, thisArg);
}
return basicUniq(array, isSorted, callback);
}
/**
* Creates an array excluding all occurrences of the passed values using
* strict equality for comparisons, i.e. `===`.
* Creates an array excluding all passed values using strict equality for
* comparisons, i.e. `===`.
*
* @static
* @memberOf _
* @category Arrays
* @param {Array} array The array to filter.
* @param {Mixed} [value1, value2, ...] Values to exclude.
* @returns {Array} Returns a new filtered array.
* @param {Mixed} [value1, value2, ...] The values to exclude.
* @returns {Array} Returns a new array of filtered values.
* @example
*
* _.without([1, 2, 1, 0, 3, 1, 4], 0, 1);
@@ -4259,7 +4252,7 @@
* @category Functions
* @param {Object} object The object to bind and assign the bound methods to.
* @param {String} [methodName1, methodName2, ...] The object method names to
* bind, specified as individual values or arrays of values.
* bind, specified as individual method names or arrays of method names.
* @returns {Object} Returns `object`.
* @example
*
@@ -4273,7 +4266,7 @@
* // => alerts 'clicked docs', when the button is clicked
*/
function bindAll(object) {
var funcs = arguments.length > 1 ? basicFlatten(nativeSlice.call(arguments, 1)) : functions(object),
var funcs = arguments.length > 1 ? basicFlatten(arguments, true, false, 1) : functions(object),
index = -1,
length = funcs.length;

82
dist/lodash.min.js vendored
View File

@@ -3,45 +3,45 @@
* Lo-Dash 1.3.1 (Custom Build) lodash.com/license | Underscore.js 1.5.1 underscorejs.org/LICENSE
* Build: `lodash modern -o ./dist/lodash.js`
*/
;!function(n){function t(n,t,e){e=(e||0)-1;for(var r=n.length;++e<r;)if(n[e]===t)return e;return-1}function e(n,e){var r=typeof e;if(n=n.k,"boolean"==r||e==y)return n[e];"number"!=r&&"string"!=r&&(r="object");var u="number"==r?e:w+e;return n=n[r]||(n[r]={}),"object"==r?n[u]&&-1<t(n[u],e)?0:-1:n[u]?0:-1}function r(n){var t=this.k,e=typeof n;if("boolean"==e||n==y)t[n]=h;else{"number"!=e&&"string"!=e&&(e="object");var r="number"==e?n:w+n,t=t[e]||(t[e]={});"object"==e?(t[r]||(t[r]=[])).push(n):t[r]=h}}function u(n){return n.charCodeAt(0)
}function a(n,t){var e=n.m,r=t.m;if(n=n.l,t=t.l,n!==t){if(n>t||typeof n=="undefined")return 1;if(n<t||typeof t=="undefined")return-1}return e<r?-1:1}function o(n){var t=-1,e=n.length,u=n[0],a=n[e-1];if(u&&typeof u=="object"&&a&&typeof a=="object")return b;for(u=c(),u["false"]=u["null"]=u["true"]=u.undefined=b,a=c(),a.b=n,a.k=u,a.push=r;++t<e;)a.push(n[t]);return a}function i(n){return"\\"+L[n]}function f(){return m.pop()||[]}function c(){return d.pop()||{b:y,k:y,l:y,"false":b,m:0,leading:b,maxWait:0,"null":b,number:y,object:y,push:y,string:y,trailing:b,"true":b,undefined:b,n:y}
}function l(n){n.length=0,m.length<x&&m.push(n)}function p(n){var t=n.k;t&&p(t),n.b=n.k=n.l=n.object=n.number=n.string=n.n=y,d.length<x&&d.push(n)}function s(n,t,e){t||(t=0),typeof e=="undefined"&&(e=n?n.length:0);var r=-1;e=e-t||0;for(var u=Array(0>e?0:e);++r<e;)u[r]=n[t+r];return u}function v(r){function m(n){if(!n||he.call(n)!=U)return b;var t=n.valueOf,e=typeof t=="function"&&(e=le(t))&&le(e);return e?n==e||le(n)==e:ft(n)}function d(n,t,e){if(!n||!J[typeof n])return n;t=t&&typeof e=="undefined"?t:nt.createCallback(t,e);
for(var r=-1,u=J[typeof n]&&$e(n),a=u?u.length:0;++r<a&&(e=u[r],!(t(n[e],e,n)===false)););return n}function x(n,t,e){var r;if(!n||!J[typeof n])return n;t=t&&typeof e=="undefined"?t:nt.createCallback(t,e);for(r in n)if(t(n[r],r,n)===false)break;return n}function L(n,t,e){var r,u=n,a=u;if(!u)return a;for(var o=arguments,i=0,f=typeof e=="number"?2:o.length;++i<f;)if((u=o[i])&&J[typeof u])for(var c=-1,l=J[typeof u]&&$e(u),p=l?l.length:0;++c<p;)r=l[c],"undefined"==typeof a[r]&&(a[r]=u[r]);return a}function Q(n,t,e){var r,u=n,a=u;
if(!u)return a;var o=arguments,i=0,f=typeof e=="number"?2:o.length;if(3<f&&"function"==typeof o[f-2])var c=nt.createCallback(o[--f-1],o[f--],2);else 2<f&&"function"==typeof o[f-1]&&(c=o[--f]);for(;++i<f;)if((u=o[i])&&J[typeof u])for(var l=-1,p=J[typeof u]&&$e(u),s=p?p.length:0;++l<s;)r=p[l],a[r]=c?c(a[r],u[r]):u[r];return a}function Y(n){var t,e=[];if(!n||!J[typeof n])return e;for(t in n)pe.call(n,t)&&e.push(t);return e}function nt(n){return n&&typeof n=="object"&&!Ne(n)&&pe.call(n,"__wrapped__")?n:new tt(n)
}function tt(n){this.__wrapped__=n}function et(n,t,e){for(var r=-1,u=n?n.length:0,a=[];++r<u;){var o=n[r];e&&(o=e(o,r,n)),o&&typeof o=="object"&&(Ne(o)||lt(o))?se.apply(a,t?o:et(o)):a.push(o)}return a}function rt(n,r,u){var a=-1,i=ot(),c=n?n.length:0,s=[],v=!r&&c>=C&&i===t,g=u||v?f():s;if(v){var h=o(g);h?(i=e,g=h):(v=b,g=u?g:(l(g),s))}for(;++a<c;){var h=n[a],y=u?u(h,a,n):h;(r?!a||g[g.length-1]!==y:0>i(g,y))&&((u||v)&&g.push(y),s.push(h))}return v?(l(g.b),p(g)):u&&l(g),s}function ut(n,t,e,r){function u(){var r=arguments,c=o?this:t;
return a||(n=t[i]),e.length&&(r=r.length?(r=Oe.call(r),f?r.concat(e):e.concat(r)):e),this instanceof u?(c=yt(n.prototype)?be(n.prototype):{},r=n.apply(c,r),yt(r)?r:c):n.apply(c,r)}var a=ht(n),o=!e,i=t;if(o){var f=r;e=t}else if(!a){if(!r)throw new te;t=n}return u}function at(n){return Be[n]}function ot(){var n=(n=nt.indexOf)===Rt?t:n;return n}function it(n){return function(t,e,r,u){return typeof e!="boolean"&&e!=y&&(u=r,r=u&&u[e]===t?g:e,e=b),r!=y&&(r=nt.createCallback(r,u)),n(t,e,r,u)}}function ft(n){var t,e;
return n&&he.call(n)==U&&(t=n.constructor,!ht(t)||t instanceof t)?(x(n,function(n,t){e=t}),e===g||pe.call(n,e)):b}function ct(n){return Fe[n]}function lt(n){return n&&typeof n=="object"?he.call(n)==q:b}function pt(n,t,e,r,u,a){var o=n;if(typeof t!="boolean"&&t!=y&&(r=e,e=t,t=b),typeof e=="function"){if(e=typeof r=="undefined"?e:nt.createCallback(e,r,1),o=e(o),typeof o!="undefined")return o;o=n}if(r=yt(o)){var i=he.call(o);if(!H[i])return o;var c=Ne(o)}if(!r||!t)return r?c?s(o):Q({},o):o;switch(r=Ae[i],i){case W:case P:return new r(+o);
case M:case G:return new r(o);case V:return r(o.source,N.exec(o))}i=!u,u||(u=f()),a||(a=f());for(var p=u.length;p--;)if(u[p]==n)return a[p];return o=c?r(o.length):{},c&&(pe.call(n,"index")&&(o.index=n.index),pe.call(n,"input")&&(o.input=n.input)),u.push(n),a.push(o),(c?xt:d)(n,function(n,r){o[r]=pt(n,t,e,g,u,a)}),i&&(l(u),l(a)),o}function st(n){var t=[];return x(n,function(n,e){ht(n)&&t.push(e)}),t.sort()}function vt(n){for(var t=-1,e=$e(n),r=e.length,u={};++t<r;){var a=e[t];u[n[a]]=a}return u}function gt(n,t,e,r,u,a){var o=e===k;
if(typeof e=="function"&&!o){e=nt.createCallback(e,r,2);var i=e(n,t);if(typeof i!="undefined")return!!i}if(n===t)return 0!==n||1/n==1/t;var c=typeof n,p=typeof t;if(n===n&&(!n||"function"!=c&&"object"!=c)&&(!t||"function"!=p&&"object"!=p))return b;if(n==y||t==y)return n===t;if(p=he.call(n),c=he.call(t),p==q&&(p=U),c==q&&(c=U),p!=c)return b;switch(p){case W:case P:return+n==+t;case M:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case V:case G:return n==ne(t)}if(c=p==z,!c){if(pe.call(n,"__wrapped__")||pe.call(t,"__wrapped__"))return gt(n.__wrapped__||n,t.__wrapped__||t,e,r,u,a);
if(p!=U)return b;var p=n.constructor,s=t.constructor;if(p!=s&&(!ht(p)||!(p instanceof p&&ht(s)&&s instanceof s)))return b}for(s=!u,u||(u=f()),a||(a=f()),p=u.length;p--;)if(u[p]==n)return a[p]==t;var v=0,i=h;if(u.push(n),a.push(t),c){if(p=n.length,v=t.length,i=v==n.length,!i&&!o)return i;for(;v--;)if(c=p,s=t[v],o)for(;c--&&!(i=gt(n[c],s,e,r,u,a)););else if(!(i=gt(n[v],s,e,r,u,a)))break;return i}return x(t,function(t,o,f){return pe.call(f,o)?(v++,i=pe.call(n,o)&&gt(n[o],t,e,r,u,a)):void 0}),i&&!o&&x(n,function(n,t,e){return pe.call(e,t)?i=-1<--v:void 0
}),s&&(l(u),l(a)),i}function ht(n){return typeof n=="function"}function yt(n){return!(!n||!J[typeof n])}function bt(n){return typeof n=="number"||he.call(n)==M}function mt(n){return typeof n=="string"||he.call(n)==G}function dt(n,t,e){var r=arguments,u=0,a=2;if(!yt(n))return n;if(e===k)var o=r[3],i=r[4],c=r[5];else{var p=h,i=f(),c=f();typeof e!="number"&&(a=r.length),3<a&&"function"==typeof r[a-2]?o=nt.createCallback(r[--a-1],r[a--],2):2<a&&"function"==typeof r[a-1]&&(o=r[--a])}for(;++u<a;)(Ne(r[u])?xt:d)(r[u],function(t,e){var r,u,a=t,f=n[e];
if(t&&((u=Ne(t))||m(t))){for(a=i.length;a--;)if(r=i[a]==t){f=c[a];break}if(!r){var l;o&&(a=o(f,t),l=typeof a!="undefined")&&(f=a),l||(f=u?Ne(f)?f:[]:m(f)?f:{}),i.push(t),c.push(f),l||(f=dt(f,t,k,o,i,c))}}else o&&(a=o(f,t),typeof a=="undefined"&&(a=t)),typeof a!="undefined"&&(f=a);n[e]=f});return p&&(l(i),l(c)),n}function _t(n){for(var t=-1,e=$e(n),r=e.length,u=Gt(r);++t<r;)u[t]=n[e[t]];return u}function kt(n,t,e){var r=-1,u=ot(),a=n?n.length:0,o=b;return e=(0>e?je(0,a+e):e)||0,a&&typeof a=="number"?o=-1<(mt(n)?n.indexOf(t,e):u(n,t,e)):d(n,function(n){return++r<e?void 0:!(o=n===t)
}),o}function jt(n,t,e){var r=h;t=nt.createCallback(t,e),e=-1;var u=n?n.length:0;if(typeof u=="number")for(;++e<u&&(r=!!t(n[e],e,n)););else d(n,function(n,e,u){return r=!!t(n,e,u)});return r}function wt(n,t,e){var r=[];t=nt.createCallback(t,e),e=-1;var u=n?n.length:0;if(typeof u=="number")for(;++e<u;){var a=n[e];t(a,e,n)&&r.push(a)}else d(n,function(n,e,u){t(n,e,u)&&r.push(n)});return r}function Ct(n,t,e){t=nt.createCallback(t,e),e=-1;var r=n?n.length:0;if(typeof r!="number"){var u;return d(n,function(n,e,r){return t(n,e,r)?(u=n,b):void 0
}),u}for(;++e<r;){var a=n[e];if(t(a,e,n))return a}}function xt(n,t,e){var r=-1,u=n?n.length:0;if(t=t&&typeof e=="undefined"?t:nt.createCallback(t,e),typeof u=="number")for(;++r<u&&t(n[r],r,n)!==false;);else d(n,t);return n}function Ot(n,t,e){var r=-1,u=n?n.length:0;if(t=nt.createCallback(t,e),typeof u=="number")for(var a=Gt(u);++r<u;)a[r]=t(n[r],r,n);else a=[],d(n,function(n,e,u){a[++r]=t(n,e,u)});return a}function Et(n,t,e){var r=-1/0,a=r;if(!t&&Ne(n)){e=-1;for(var o=n.length;++e<o;){var i=n[e];i>a&&(a=i)
}}else t=!t&&mt(n)?u:nt.createCallback(t,e),xt(n,function(n,e,u){e=t(n,e,u),e>r&&(r=e,a=n)});return a}function St(n,t){var e=-1,r=n?n.length:0;if(typeof r=="number")for(var u=Gt(r);++e<r;)u[e]=n[e][t];return u||Ot(n,t)}function At(n,t,e,r){if(!n)return e;var u=3>arguments.length;t=nt.createCallback(t,r,4);var a=-1,o=n.length;if(typeof o=="number")for(u&&(e=n[++a]);++a<o;)e=t(e,n[a],a,n);else d(n,function(n,r,a){e=u?(u=b,n):t(e,n,r,a)});return e}function It(n,t,e,r){var u=n?n.length:0,a=3>arguments.length;
if(typeof u!="number")var o=$e(n),u=o.length;return t=nt.createCallback(t,r,4),xt(n,function(r,i,f){i=o?o[--u]:--u,e=a?(a=b,n[i]):t(e,n[i],i,f)}),e}function Nt(n,t,e){var r;t=nt.createCallback(t,e),e=-1;var u=n?n.length:0;if(typeof u=="number")for(;++e<u&&!(r=t(n[e],e,n)););else d(n,function(n,e,u){return!(r=t(n,e,u))});return!!r}function $t(n){for(var t=-1,e=n?n.length:0,r=[];++t<e;){var u=n[t];u&&r.push(u)}return r}function Bt(n){var r=-1,u=ot(),a=n?n.length:0,i=et(Oe.call(arguments,1)),f=[],c=a>=C&&u===t;
if(c){var l=o(i);l?(u=e,i=l):c=b}for(;++r<a;)l=n[r],0>u(i,l)&&f.push(l);return c&&p(i),f}function Ft(n,t,e){if(n){var r=0,u=n.length;if(typeof t!="number"&&t!=y){var a=-1;for(t=nt.createCallback(t,e);++a<u&&t(n[a],a,n);)r++}else if(r=t,r==y||e)return n[0];return s(n,0,we(je(0,r),u))}}function Rt(n,e,r){if(typeof r=="number"){var u=n?n.length:0;r=0>r?je(0,u+r):r||0}else if(r)return r=Dt(n,e),n[r]===e?r:-1;return n?t(n,e,r):-1}function Tt(n,t,e){if(typeof t!="number"&&t!=y){var r=0,u=-1,a=n?n.length:0;
for(t=nt.createCallback(t,e);++u<a&&t(n[u],u,n);)r++}else r=t==y||e?1:je(0,t);return s(n,r)}function Dt(n,t,e,r){var u=0,a=n?n.length:u;for(e=e?nt.createCallback(e,r,1):Mt,t=e(t);u<a;)r=u+a>>>1,e(n[r])<t?u=r+1:a=r;return u}function qt(){for(var n=1<arguments.length?arguments:arguments[0],t=-1,e=n?Et(St(n,"length")):0,r=Gt(0>e?0:e);++t<e;)r[t]=St(n,t);return r}function zt(n,t){for(var e=-1,r=n?n.length:0,u={};++e<r;){var a=n[e];t?u[a]=t[e]:u[a[0]]=a[1]}return u}function Wt(n,t){return Ie.fastBind||ye&&2<arguments.length?ye.call.apply(ye,arguments):ut(n,t,Oe.call(arguments,2))
}function Pt(n,t,e){function r(){ie(s),ie(v),c=0,s=v=y}function u(){var t=g&&(!m||1<c);r(),t&&(p!==false&&(l=new Jt),i=n.apply(f,o))}function a(){r(),(g||p!==t)&&(l=new Jt,i=n.apply(f,o))}var o,i,f,c=0,l=0,p=b,s=y,v=y,g=h;if(t=je(0,t||0),e===h)var m=h,g=b;else yt(e)&&(m=e.leading,p="maxWait"in e&&je(t,e.maxWait||0),g="trailing"in e?e.trailing:g);return function(){if(o=arguments,f=this,c++,ie(v),p===false)m&&2>c&&(i=n.apply(f,o));else{var e=new Jt;!s&&!m&&(l=e);var r=p-(e-l);0<r?s||(s=ge(a,r)):(ie(s),s=y,l=e,i=n.apply(f,o))
}return t!==p&&(v=ge(u,t)),i}}function Kt(n){var t=Oe.call(arguments,1);return ge(function(){n.apply(g,t)},1)}function Mt(n){return n}function Ut(n){xt(st(n),function(t){var e=nt[t]=n[t];nt.prototype[t]=function(){var n=this.__wrapped__,t=[n];return se.apply(t,arguments),t=e.apply(nt,t),n&&typeof n=="object"&&n===t?this:new tt(t)}})}function Vt(){return this.__wrapped__}r=r?Z.defaults(n.Object(),r,Z.pick(n,D)):n;var Gt=r.Array,Ht=r.Boolean,Jt=r.Date,Lt=r.Function,Qt=r.Math,Xt=r.Number,Yt=r.Object,Zt=r.RegExp,ne=r.String,te=r.TypeError,ee=[],re=Yt.prototype,ue=r._,ae=Zt("^"+ne(re.valueOf).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),oe=Qt.ceil,ie=r.clearTimeout,fe=Qt.floor,ce=Lt.prototype.toString,le=ae.test(le=Yt.getPrototypeOf)&&le,pe=re.hasOwnProperty,se=ee.push,ve=r.setImmediate,ge=r.setTimeout,he=re.toString,ye=ae.test(ye=he.bind)&&ye,be=ae.test(be=Yt.create)&&be,me=ae.test(me=Gt.isArray)&&me,de=r.isFinite,_e=r.isNaN,ke=ae.test(ke=Yt.keys)&&ke,je=Qt.max,we=Qt.min,Ce=r.parseInt,xe=Qt.random,Oe=ee.slice,Ee=ae.test(r.attachEvent),Se=ye&&!/\n|true/.test(ye+Ee),Ae={};
Ae[z]=Gt,Ae[W]=Ht,Ae[P]=Jt,Ae[K]=Lt,Ae[U]=Yt,Ae[M]=Xt,Ae[V]=Zt,Ae[G]=ne,tt.prototype=nt.prototype;var Ie=nt.support={};Ie.fastBind=ye&&!Se,nt.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:$,variable:"",imports:{_:nt}};var Ne=me,$e=j.o=ke?function(n){return yt(n)?ke(n):[]}:Y,Be={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Fe=vt(Be),Re=Zt("("+$e(Fe).join("|")+")","g"),Te=Zt("["+$e(Be).join("")+"]","g"),De=it(et),qe=it(rt);Se&&X&&typeof ve=="function"&&(Kt=Wt(ve,r));
var ze=8==Ce(O+"08")?Ce:function(n,t){return Ce(mt(n)?n.replace(B,""):n,t||0)};return nt.after=function(n,t){return function(){return 1>--n?t.apply(this,arguments):void 0}},nt.assign=Q,nt.at=function(n){for(var t=-1,e=et(Oe.call(arguments,1)),r=e.length,u=Gt(r);++t<r;)u[t]=n[e[t]];return u},nt.bind=Wt,nt.bindAll=function(n){for(var t=1<arguments.length?et(Oe.call(arguments,1)):st(n),e=-1,r=t.length;++e<r;){var u=t[e];n[u]=Wt(n[u],n)}return n},nt.bindKey=function(n,t){return ut(n,t,Oe.call(arguments,2),k)
},nt.compact=$t,nt.compose=function(){var n=arguments;return function(){for(var t=arguments,e=n.length;e--;)t=[n[e].apply(this,t)];return t[0]}},nt.countBy=function(n,t,e){var r={};return t=nt.createCallback(t,e),xt(n,function(n,e,u){e=ne(t(n,e,u)),pe.call(r,e)?r[e]++:r[e]=1}),r},nt.createCallback=function(n,t,e){if(n==y)return Mt;var r=typeof n;if("function"!=r){if("object"!=r)return function(t){return t[n]};var u=$e(n);return function(t){for(var e=u.length,r=b;e--&&(r=gt(t[u[e]],n[u[e]],k)););return r
}}return typeof t=="undefined"||R&&!R.test(ce.call(n))?n:1===e?function(e){return n.call(t,e)}:2===e?function(e,r){return n.call(t,e,r)}:4===e?function(e,r,u,a){return n.call(t,e,r,u,a)}:function(e,r,u){return n.call(t,e,r,u)}},nt.debounce=Pt,nt.defaults=L,nt.defer=Kt,nt.delay=function(n,t){var e=Oe.call(arguments,2);return ge(function(){n.apply(g,e)},t)},nt.difference=Bt,nt.filter=wt,nt.flatten=De,nt.forEach=xt,nt.forIn=x,nt.forOwn=d,nt.functions=st,nt.groupBy=function(n,t,e){var r={};return t=nt.createCallback(t,e),xt(n,function(n,e,u){e=ne(t(n,e,u)),(pe.call(r,e)?r[e]:r[e]=[]).push(n)
}),r},nt.initial=function(n,t,e){if(!n)return[];var r=0,u=n.length;if(typeof t!="number"&&t!=y){var a=u;for(t=nt.createCallback(t,e);a--&&t(n[a],a,n);)r++}else r=t==y||e?1:t||r;return s(n,0,we(je(0,u-r),u))},nt.intersection=function(n){for(var r=arguments,u=r.length,a=-1,i=f(),c=-1,s=ot(),v=n?n.length:0,g=[],h=f();++a<u;){var y=r[a];i[a]=s===t&&(y?y.length:0)>=C&&o(a?r[a]:h)}n:for(;++c<v;){var b=i[0],y=n[c];if(0>(b?e(b,y):s(h,y))){for(a=u,(b||h).push(y);--a;)if(b=i[a],0>(b?e(b,y):s(r[a],y)))continue n;
g.push(y)}}for(;u--;)(b=i[u])&&p(b);return l(i),l(h),g},nt.invert=vt,nt.invoke=function(n,t){var e=Oe.call(arguments,2),r=-1,u=typeof t=="function",a=n?n.length:0,o=Gt(typeof a=="number"?a:0);return xt(n,function(n){o[++r]=(u?t:n[t]).apply(n,e)}),o},nt.keys=$e,nt.map=Ot,nt.max=Et,nt.memoize=function(n,t){function e(){var r=e.cache,u=w+(t?t.apply(this,arguments):arguments[0]);return pe.call(r,u)?r[u]:r[u]=n.apply(this,arguments)}return e.cache={},e},nt.merge=dt,nt.min=function(n,t,e){var r=1/0,a=r;
if(!t&&Ne(n)){e=-1;for(var o=n.length;++e<o;){var i=n[e];i<a&&(a=i)}}else t=!t&&mt(n)?u:nt.createCallback(t,e),xt(n,function(n,e,u){e=t(n,e,u),e<r&&(r=e,a=n)});return a},nt.omit=function(n,t,e){var r=ot(),u=typeof t=="function",a={};if(u)t=nt.createCallback(t,e);else var o=et(Oe.call(arguments,1));return x(n,function(n,e,i){(u?!t(n,e,i):0>r(o,e))&&(a[e]=n)}),a},nt.once=function(n){var t,e;return function(){return t?e:(t=h,e=n.apply(this,arguments),n=y,e)}},nt.pairs=function(n){for(var t=-1,e=$e(n),r=e.length,u=Gt(r);++t<r;){var a=e[t];
u[t]=[a,n[a]]}return u},nt.partial=function(n){return ut(n,Oe.call(arguments,1))},nt.partialRight=function(n){return ut(n,Oe.call(arguments,1),y,k)},nt.pick=function(n,t,e){var r={};if(typeof t!="function")for(var u=-1,a=et(Oe.call(arguments,1)),o=yt(n)?a.length:0;++u<o;){var i=a[u];i in n&&(r[i]=n[i])}else t=nt.createCallback(t,e),x(n,function(n,e,u){t(n,e,u)&&(r[e]=n)});return r},nt.pluck=St,nt.range=function(n,t,e){n=+n||0,e=+e||1,t==y&&(t=n,n=0);var r=-1;t=je(0,oe((t-n)/e));for(var u=Gt(t);++r<t;)u[r]=n,n+=e;
return u},nt.reject=function(n,t,e){return t=nt.createCallback(t,e),wt(n,function(n,e,r){return!t(n,e,r)})},nt.rest=Tt,nt.shuffle=function(n){var t=-1,e=n?n.length:0,r=Gt(typeof e=="number"?e:0);return xt(n,function(n){var e=fe(xe()*(++t+1));r[t]=r[e],r[e]=n}),r},nt.sortBy=function(n,t,e){var r=-1,u=n?n.length:0,o=Gt(typeof u=="number"?u:0);for(t=nt.createCallback(t,e),xt(n,function(n,e,u){var a=o[++r]=c();a.l=t(n,e,u),a.m=r,a.n=n}),u=o.length,o.sort(a);u--;)n=o[u],o[u]=n.n,p(n);return o},nt.tap=function(n,t){return t(n),n
},nt.throttle=function(n,t,e){var r=h,u=h;return e===false?r=b:yt(e)&&(r="leading"in e?e.leading:r,u="trailing"in e?e.trailing:u),e=c(),e.leading=r,e.maxWait=t,e.trailing=u,n=Pt(n,t,e),p(e),n},nt.times=function(n,t,e){n=-1<(n=+n)?n:0;var r=-1,u=Gt(n);for(t=nt.createCallback(t,e,1);++r<n;)u[r]=t(r);return u},nt.toArray=function(n){return n&&typeof n.length=="number"?s(n):_t(n)},nt.transform=function(n,t,e,r){var u=Ne(n);return t=nt.createCallback(t,r,4),e==y&&(u?e=[]:(r=n&&n.constructor,e=yt(r&&r.prototype)?be(r&&r.prototype):{})),(u?xt:d)(n,function(n,r,u){return t(e,n,r,u)
}),e},nt.union=function(){return rt(et($t(arguments),h))},nt.uniq=qe,nt.values=_t,nt.where=wt,nt.without=function(n){return Bt(n,Oe.call(arguments,1))},nt.wrap=function(n,t){return function(){var e=[n];return se.apply(e,arguments),t.apply(this,e)}},nt.zip=qt,nt.zipObject=zt,nt.collect=Ot,nt.drop=Tt,nt.each=xt,nt.extend=Q,nt.methods=st,nt.object=zt,nt.select=wt,nt.tail=Tt,nt.unique=qe,nt.unzip=qt,Ut(nt),nt.chain=nt,nt.prototype.chain=function(){return this},nt.clone=pt,nt.cloneDeep=function(n,t,e){return pt(n,h,t,e)
},nt.contains=kt,nt.escape=function(n){return n==y?"":ne(n).replace(Te,at)},nt.every=jt,nt.find=Ct,nt.findIndex=function(n,t,e){var r=-1,u=n?n.length:0;for(t=nt.createCallback(t,e);++r<u;)if(t(n[r],r,n))return r;return-1},nt.findKey=function(n,t,e){var r;return t=nt.createCallback(t,e),d(n,function(n,e,u){return t(n,e,u)?(r=e,b):void 0}),r},nt.has=function(n,t){return n?pe.call(n,t):b},nt.identity=Mt,nt.indexOf=Rt,nt.isArguments=lt,nt.isArray=Ne,nt.isBoolean=function(n){return n===h||n===false||he.call(n)==W
},nt.isDate=function(n){return n?typeof n=="object"&&he.call(n)==P:b},nt.isElement=function(n){return n?1===n.nodeType:b},nt.isEmpty=function(n){var t=h;if(!n)return t;var e=he.call(n),r=n.length;return e==z||e==G||e==q||e==U&&typeof r=="number"&&ht(n.splice)?!r:(d(n,function(){return t=b}),t)},nt.isEqual=gt,nt.isFinite=function(n){return de(n)&&!_e(parseFloat(n))},nt.isFunction=ht,nt.isNaN=function(n){return bt(n)&&n!=+n},nt.isNull=function(n){return n===y},nt.isNumber=bt,nt.isObject=yt,nt.isPlainObject=m,nt.isRegExp=function(n){return n?typeof n=="object"&&he.call(n)==V:b
},nt.isString=mt,nt.isUndefined=function(n){return typeof n=="undefined"},nt.lastIndexOf=function(n,t,e){var r=n?n.length:0;for(typeof e=="number"&&(r=(0>e?je(0,r+e):we(e,r-1))+1);r--;)if(n[r]===t)return r;return-1},nt.mixin=Ut,nt.noConflict=function(){return r._=ue,this},nt.parseInt=ze,nt.random=function(n,t){n==y&&t==y&&(t=1),n=+n||0,t==y?(t=n,n=0):t=+t||0;var e=xe();return n%1||t%1?n+we(e*(t-n+parseFloat("1e-"+((e+"").length-1))),t):n+fe(e*(t-n+1))},nt.reduce=At,nt.reduceRight=It,nt.result=function(n,t){var e=n?n[t]:g;
return ht(e)?n[t]():e},nt.runInContext=v,nt.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:$e(n).length},nt.some=Nt,nt.sortedIndex=Dt,nt.template=function(n,t,e){var r=nt.templateSettings;n||(n=""),e=L({},e,r);var u,a=L({},e.imports,r.imports),r=$e(a),a=_t(a),o=0,f=e.interpolate||F,c="__p+='",f=Zt((e.escape||F).source+"|"+f.source+"|"+(f===$?I:F).source+"|"+(e.evaluate||F).source+"|$","g");n.replace(f,function(t,e,r,a,f,l){return r||(r=a),c+=n.slice(o,l).replace(T,i),e&&(c+="'+__e("+e+")+'"),f&&(u=h,c+="';"+f+";__p+='"),r&&(c+="'+((__t=("+r+"))==null?'':__t)+'"),o=l+t.length,t
}),c+="';\n",f=e=e.variable,f||(e="obj",c="with("+e+"){"+c+"}"),c=(u?c.replace(E,""):c).replace(S,"$1").replace(A,"$1;"),c="function("+e+"){"+(f?"":e+"||("+e+"={});")+"var __t,__p='',__e=_.escape"+(u?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+c+"return __p}";try{var l=Lt(r,"return "+c).apply(g,a)}catch(p){throw p.source=c,p}return t?l(t):(l.source=c,l)},nt.unescape=function(n){return n==y?"":ne(n).replace(Re,ct)},nt.uniqueId=function(n){var t=++_;return ne(n==y?"":n)+t
},nt.all=jt,nt.any=Nt,nt.detect=Ct,nt.findWhere=Ct,nt.foldl=At,nt.foldr=It,nt.include=kt,nt.inject=At,d(nt,function(n,t){nt.prototype[t]||(nt.prototype[t]=function(){var t=[this.__wrapped__];return se.apply(t,arguments),n.apply(nt,t)})}),nt.first=Ft,nt.last=function(n,t,e){if(n){var r=0,u=n.length;if(typeof t!="number"&&t!=y){var a=u;for(t=nt.createCallback(t,e);a--&&t(n[a],a,n);)r++}else if(r=t,r==y||e)return n[u-1];return s(n,je(0,u-r))}},nt.take=Ft,nt.head=Ft,d(nt,function(n,t){nt.prototype[t]||(nt.prototype[t]=function(t,e){var r=n(this.__wrapped__,t,e);
return t==y||e&&typeof t!="function"?r:new tt(r)})}),nt.VERSION="1.3.1",nt.prototype.toString=function(){return ne(this.__wrapped__)},nt.prototype.value=Vt,nt.prototype.valueOf=Vt,xt(["join","pop","shift"],function(n){var t=ee[n];nt.prototype[n]=function(){return t.apply(this.__wrapped__,arguments)}}),xt(["push","reverse","sort","unshift"],function(n){var t=ee[n];nt.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),xt(["concat","slice","splice"],function(n){var t=ee[n];nt.prototype[n]=function(){return new tt(t.apply(this.__wrapped__,arguments))
}}),nt}var g,h=!0,y=null,b=!1,m=[],d=[],_=0,k={},j={},w=+new Date+"",C=75,x=40,O=" \t\x0B\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000",E=/\b__p\+='';/g,S=/\b(__p\+=)''\+/g,A=/(__e\(.*?\)|\b__t\))\+'';/g,I=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,N=/\w*$/,$=/<%=([\s\S]+?)%>/g,B=RegExp("^["+O+"]*0+(?=.$)"),F=/($^)/,R=(R=/\bthis\b/)&&R.test(v)&&R,T=/['\n\r\t\u2028\u2029\\]/g,D="Array Boolean Date Function Math Number Object RegExp String _ attachEvent clearTimeout isFinite isNaN parseInt setImmediate setTimeout".split(" "),q="[object Arguments]",z="[object Array]",W="[object Boolean]",P="[object Date]",K="[object Function]",M="[object Number]",U="[object Object]",V="[object RegExp]",G="[object String]",H={};
H[K]=b,H[q]=H[z]=H[W]=H[P]=H[M]=H[U]=H[V]=H[G]=h;var J={"boolean":b,"function":h,object:h,number:b,string:b,undefined:b},L={"\\":"\\","'":"'","\n":"n","\r":"r","\t":"t","\u2028":"u2028","\u2029":"u2029"},Q=J[typeof exports]&&exports,X=J[typeof module]&&module&&module.exports==Q&&module,Y=J[typeof global]&&global;!Y||Y.global!==Y&&Y.window!==Y||(n=Y);var Z=v();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(n._=Z, define(function(){return Z})):Q&&!Q.nodeType?X?(X.exports=Z)._=Z:Q._=Z:n._=Z
;!function(n){function t(n,t,e){e=(e||0)-1;for(var r=n?n.length:0;++e<r;)if(n[e]===t)return e;return-1}function e(n,e){var r=typeof e;if(n=n.k,"boolean"==r||e==h)return n[e];"number"!=r&&"string"!=r&&(r="object");var u="number"==r?e:w+e;return n=n[r]||(n[r]={}),"object"==r?n[u]&&-1<t(n[u],e)?0:-1:n[u]?0:-1}function r(n){var t=this.k,e=typeof n;if("boolean"==e||n==h)t[n]=y;else{"number"!=e&&"string"!=e&&(e="object");var r="number"==e?n:w+n,t=t[e]||(t[e]={});"object"==e?(t[r]||(t[r]=[])).push(n):t[r]=y
}}function u(n){return n.charCodeAt(0)}function a(n,t){var e=n.m,r=t.m;if(n=n.l,t=t.l,n!==t){if(n>t||typeof n=="undefined")return 1;if(n<t||typeof t=="undefined")return-1}return e<r?-1:1}function o(n){var t=-1,e=n.length,u=n[0],a=n[e-1];if(u&&typeof u=="object"&&a&&typeof a=="object")return b;for(u=c(),u["false"]=u["null"]=u["true"]=u.undefined=b,a=c(),a.b=n,a.k=u,a.push=r;++t<e;)a.push(n[t]);return a}function i(n){return"\\"+L[n]}function f(){return m.pop()||[]}function c(){return d.pop()||{b:h,k:h,l:h,"false":b,m:0,leading:b,maxWait:0,"null":b,number:h,object:h,push:h,string:h,trailing:b,"true":b,undefined:b,n:h}
}function l(n){n.length=0,m.length<x&&m.push(n)}function p(n){var t=n.k;t&&p(t),n.b=n.k=n.l=n.object=n.number=n.string=n.n=h,d.length<x&&d.push(n)}function s(n,t,e){t||(t=0),typeof e=="undefined"&&(e=n?n.length:0);var r=-1;e=e-t||0;for(var u=Array(0>e?0:e);++r<e;)u[r]=n[t+r];return u}function v(r){function m(n){if(!n||ge.call(n)!=U)return b;var t=n.valueOf,e=typeof t=="function"&&(e=ce(t))&&ce(e);return e?n==e||ce(n)==e:it(n)}function d(n,t,e){if(!n||!J[typeof n])return n;t=t&&typeof e=="undefined"?t:nt.createCallback(t,e);
for(var r=-1,u=J[typeof n]&&Ae(n),a=u?u.length:0;++r<a&&(e=u[r],!(t(n[e],e,n)===false)););return n}function x(n,t,e){var r;if(!n||!J[typeof n])return n;t=t&&typeof e=="undefined"?t:nt.createCallback(t,e);for(r in n)if(t(n[r],r,n)===false)break;return n}function L(n,t,e){var r,u=n,a=u;if(!u)return a;for(var o=arguments,i=0,f=typeof e=="number"?2:o.length;++i<f;)if((u=o[i])&&J[typeof u])for(var c=-1,l=J[typeof u]&&Ae(u),p=l?l.length:0;++c<p;)r=l[c],"undefined"==typeof a[r]&&(a[r]=u[r]);return a}function Q(n,t,e){var r,u=n,a=u;
if(!u)return a;var o=arguments,i=0,f=typeof e=="number"?2:o.length;if(3<f&&"function"==typeof o[f-2])var c=nt.createCallback(o[--f-1],o[f--],2);else 2<f&&"function"==typeof o[f-1]&&(c=o[--f]);for(;++i<f;)if((u=o[i])&&J[typeof u])for(var l=-1,p=J[typeof u]&&Ae(u),s=p?p.length:0;++l<s;)r=p[l],a[r]=c?c(a[r],u[r]):u[r];return a}function Y(n){var t,e=[];if(!n||!J[typeof n])return e;for(t in n)le.call(n,t)&&e.push(t);return e}function nt(n){return n&&typeof n=="object"&&!Se(n)&&le.call(n,"__wrapped__")?n:new tt(n)
}function tt(n){this.__wrapped__=n}function et(n,t,e,r){r=(r||0)-1;for(var u=n?n.length:0,a=[];++r<u;){var o=n[r];o&&typeof o=="object"&&(Se(o)||ct(o))?pe.apply(a,t?o:et(o)):e||a.push(o)}return a}function rt(n,r,u){var a=-1,i=ot(),c=n?n.length:0,s=[],v=!r&&c>=C&&i===t,g=u||v?f():s;if(v){var y=o(g);y?(i=e,g=y):(v=b,g=u?g:(l(g),s))}for(;++a<c;){var y=n[a],h=u?u(y,a,n):y;(r?!a||g[g.length-1]!==h:0>i(g,h))&&((u||v)&&g.push(h),s.push(y))}return v?(l(g.b),p(g)):u&&l(g),s}function ut(n,t,e,r){function u(){var r=arguments,c=o?this:t;
return a||(n=t[i]),e.length&&(r=r.length?(r=xe.call(r),f?r.concat(e):e.concat(r)):e),this instanceof u?(c=yt(n.prototype)?he(n.prototype):{},r=n.apply(c,r),yt(r)?r:c):n.apply(c,r)}var a=gt(n),o=!e,i=t;if(o){var f=r;e=t}else if(!a){if(!r)throw new ne;t=n}return u}function at(n){return Ie[n]}function ot(){var n=(n=nt.indexOf)===Bt?t:n;return n}function it(n){var t,e;return n&&ge.call(n)==U&&(t=n.constructor,!gt(t)||t instanceof t)?(x(n,function(n,t){e=t}),e===g||le.call(n,e)):b}function ft(n){return Ne[n]
}function ct(n){return n&&typeof n=="object"?ge.call(n)==q:b}function lt(n,t,e,r,u,a){var o=n;if(typeof t!="boolean"&&t!=h&&(r=e,e=t,t=b),typeof e=="function"){if(e=typeof r=="undefined"?e:nt.createCallback(e,r,1),o=e(o),typeof o!="undefined")return o;o=n}if(r=yt(o)){var i=ge.call(o);if(!H[i])return o;var c=Se(o)}if(!r||!t)return r?c?s(o):Q({},o):o;switch(r=Oe[i],i){case W:case P:return new r(+o);case M:case G:return new r(o);case V:return r(o.source,N.exec(o))}i=!u,u||(u=f()),a||(a=f());for(var p=u.length;p--;)if(u[p]==n)return a[p];
return o=c?r(o.length):{},c&&(le.call(n,"index")&&(o.index=n.index),le.call(n,"input")&&(o.input=n.input)),u.push(n),a.push(o),(c?Ct:d)(n,function(n,r){o[r]=lt(n,t,e,g,u,a)}),i&&(l(u),l(a)),o}function pt(n){var t=[];return x(n,function(n,e){gt(n)&&t.push(e)}),t.sort()}function st(n){for(var t=-1,e=Ae(n),r=e.length,u={};++t<r;){var a=e[t];u[n[a]]=a}return u}function vt(n,t,e,r,u,a){var o=e===k;if(typeof e=="function"&&!o){e=nt.createCallback(e,r,2);var i=e(n,t);if(typeof i!="undefined")return!!i}if(n===t)return 0!==n||1/n==1/t;
var c=typeof n,p=typeof t;if(n===n&&(!n||"function"!=c&&"object"!=c)&&(!t||"function"!=p&&"object"!=p))return b;if(n==h||t==h)return n===t;if(p=ge.call(n),c=ge.call(t),p==q&&(p=U),c==q&&(c=U),p!=c)return b;switch(p){case W:case P:return+n==+t;case M:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case V:case G:return n==Zt(t)}if(c=p==z,!c){if(le.call(n,"__wrapped__")||le.call(t,"__wrapped__"))return vt(n.__wrapped__||n,t.__wrapped__||t,e,r,u,a);if(p!=U)return b;var p=n.constructor,s=t.constructor;if(p!=s&&(!gt(p)||!(p instanceof p&&gt(s)&&s instanceof s)))return b
}for(s=!u,u||(u=f()),a||(a=f()),p=u.length;p--;)if(u[p]==n)return a[p]==t;var v=0,i=y;if(u.push(n),a.push(t),c){if(p=n.length,v=t.length,i=v==n.length,!i&&!o)return i;for(;v--;)if(c=p,s=t[v],o)for(;c--&&!(i=vt(n[c],s,e,r,u,a)););else if(!(i=vt(n[v],s,e,r,u,a)))break;return i}return x(t,function(t,o,f){return le.call(f,o)?(v++,i=le.call(n,o)&&vt(n[o],t,e,r,u,a)):void 0}),i&&!o&&x(n,function(n,t,e){return le.call(e,t)?i=-1<--v:void 0}),s&&(l(u),l(a)),i}function gt(n){return typeof n=="function"}function yt(n){return!(!n||!J[typeof n])
}function ht(n){return typeof n=="number"||ge.call(n)==M}function bt(n){return typeof n=="string"||ge.call(n)==G}function mt(n,t,e){var r=arguments,u=0,a=2;if(!yt(n))return n;if(e===k)var o=r[3],i=r[4],c=r[5];else{var p=y,i=f(),c=f();typeof e!="number"&&(a=r.length),3<a&&"function"==typeof r[a-2]?o=nt.createCallback(r[--a-1],r[a--],2):2<a&&"function"==typeof r[a-1]&&(o=r[--a])}for(;++u<a;)(Se(r[u])?Ct:d)(r[u],function(t,e){var r,u,a=t,f=n[e];if(t&&((u=Se(t))||m(t))){for(a=i.length;a--;)if(r=i[a]==t){f=c[a];
break}if(!r){var l;o&&(a=o(f,t),l=typeof a!="undefined")&&(f=a),l||(f=u?Se(f)?f:[]:m(f)?f:{}),i.push(t),c.push(f),l||(f=mt(f,t,k,o,i,c))}}else o&&(a=o(f,t),typeof a=="undefined"&&(a=t)),typeof a!="undefined"&&(f=a);n[e]=f});return p&&(l(i),l(c)),n}function dt(n){for(var t=-1,e=Ae(n),r=e.length,u=Vt(r);++t<r;)u[t]=n[e[t]];return u}function _t(n,t,e){var r=-1,u=ot(),a=n?n.length:0,o=b;return e=(0>e?ke(0,a+e):e)||0,a&&typeof a=="number"?o=-1<(bt(n)?n.indexOf(t,e):u(n,t,e)):d(n,function(n){return++r<e?void 0:!(o=n===t)
}),o}function kt(n,t,e){var r=y;t=nt.createCallback(t,e),e=-1;var u=n?n.length:0;if(typeof u=="number")for(;++e<u&&(r=!!t(n[e],e,n)););else d(n,function(n,e,u){return r=!!t(n,e,u)});return r}function jt(n,t,e){var r=[];t=nt.createCallback(t,e),e=-1;var u=n?n.length:0;if(typeof u=="number")for(;++e<u;){var a=n[e];t(a,e,n)&&r.push(a)}else d(n,function(n,e,u){t(n,e,u)&&r.push(n)});return r}function wt(n,t,e){t=nt.createCallback(t,e),e=-1;var r=n?n.length:0;if(typeof r!="number"){var u;return d(n,function(n,e,r){return t(n,e,r)?(u=n,b):void 0
}),u}for(;++e<r;){var a=n[e];if(t(a,e,n))return a}}function Ct(n,t,e){var r=-1,u=n?n.length:0;if(t=t&&typeof e=="undefined"?t:nt.createCallback(t,e),typeof u=="number")for(;++r<u&&t(n[r],r,n)!==false;);else d(n,t);return n}function xt(n,t,e){var r=-1,u=n?n.length:0;if(t=nt.createCallback(t,e),typeof u=="number")for(var a=Vt(u);++r<u;)a[r]=t(n[r],r,n);else a=[],d(n,function(n,e,u){a[++r]=t(n,e,u)});return a}function Ot(n,t,e){var r=-1/0,a=r;if(!t&&Se(n)){e=-1;for(var o=n.length;++e<o;){var i=n[e];i>a&&(a=i)
}}else t=!t&&bt(n)?u:nt.createCallback(t,e),Ct(n,function(n,e,u){e=t(n,e,u),e>r&&(r=e,a=n)});return a}function Et(n,t){var e=-1,r=n?n.length:0;if(typeof r=="number")for(var u=Vt(r);++e<r;)u[e]=n[e][t];return u||xt(n,t)}function St(n,t,e,r){if(!n)return e;var u=3>arguments.length;t=nt.createCallback(t,r,4);var a=-1,o=n.length;if(typeof o=="number")for(u&&(e=n[++a]);++a<o;)e=t(e,n[a],a,n);else d(n,function(n,r,a){e=u?(u=b,n):t(e,n,r,a)});return e}function At(n,t,e,r){var u=n?n.length:0,a=3>arguments.length;
if(typeof u!="number")var o=Ae(n),u=o.length;return t=nt.createCallback(t,r,4),Ct(n,function(r,i,f){i=o?o[--u]:--u,e=a?(a=b,n[i]):t(e,n[i],i,f)}),e}function It(n,t,e){var r;t=nt.createCallback(t,e),e=-1;var u=n?n.length:0;if(typeof u=="number")for(;++e<u&&!(r=t(n[e],e,n)););else d(n,function(n,e,u){return!(r=t(n,e,u))});return!!r}function Nt(n){var r=-1,u=ot(),a=n?n.length:0,i=et(arguments,y,y,1),f=[],c=a>=C&&u===t;if(c){var l=o(i);l?(u=e,i=l):c=b}for(;++r<a;)l=n[r],0>u(i,l)&&f.push(l);return c&&p(i),f
}function $t(n,t,e){if(n){var r=0,u=n.length;if(typeof t!="number"&&t!=h){var a=-1;for(t=nt.createCallback(t,e);++a<u&&t(n[a],a,n);)r++}else if(r=t,r==h||e)return n[0];return s(n,0,je(ke(0,r),u))}}function Bt(n,e,r){if(typeof r=="number"){var u=n?n.length:0;r=0>r?ke(0,u+r):r||0}else if(r)return r=Rt(n,e),n[r]===e?r:-1;return n?t(n,e,r):-1}function Ft(n,t,e){if(typeof t!="number"&&t!=h){var r=0,u=-1,a=n?n.length:0;for(t=nt.createCallback(t,e);++u<a&&t(n[u],u,n);)r++}else r=t==h||e?1:ke(0,t);return s(n,r)
}function Rt(n,t,e,r){var u=0,a=n?n.length:u;for(e=e?nt.createCallback(e,r,1):Kt,t=e(t);u<a;)r=u+a>>>1,e(n[r])<t?u=r+1:a=r;return u}function Tt(n,t,e,r){return typeof t!="boolean"&&t!=h&&(r=e,e=r&&r[t]===n?g:t,t=b),e!=h&&(e=nt.createCallback(e,r)),rt(n,t,e)}function Dt(){for(var n=1<arguments.length?arguments:arguments[0],t=-1,e=n?Ot(Et(n,"length")):0,r=Vt(0>e?0:e);++t<e;)r[t]=Et(n,t);return r}function qt(n,t){for(var e=-1,r=n?n.length:0,u={};++e<r;){var a=n[e];t?u[a]=t[e]:u[a[0]]=a[1]}return u}function zt(n,t){return Ee.fastBind||ye&&2<arguments.length?ye.call.apply(ye,arguments):ut(n,t,xe.call(arguments,2))
}function Wt(n,t,e){function r(){oe(s),oe(v),c=0,s=v=h}function u(){var t=g&&(!m||1<c);r(),t&&(p!==false&&(l=new Ht),i=n.apply(f,o))}function a(){r(),(g||p!==t)&&(l=new Ht,i=n.apply(f,o))}var o,i,f,c=0,l=0,p=b,s=h,v=h,g=y;if(t=ke(0,t||0),e===y)var m=y,g=b;else yt(e)&&(m=e.leading,p="maxWait"in e&&ke(t,e.maxWait||0),g="trailing"in e?e.trailing:g);return function(){if(o=arguments,f=this,c++,oe(v),p===false)m&&2>c&&(i=n.apply(f,o));else{var e=new Ht;!s&&!m&&(l=e);var r=p-(e-l);0<r?s||(s=ve(a,r)):(oe(s),s=h,l=e,i=n.apply(f,o))
}return t!==p&&(v=ve(u,t)),i}}function Pt(n){var t=xe.call(arguments,1);return ve(function(){n.apply(g,t)},1)}function Kt(n){return n}function Mt(n){Ct(pt(n),function(t){var e=nt[t]=n[t];nt.prototype[t]=function(){var n=this.__wrapped__,t=[n];return pe.apply(t,arguments),t=e.apply(nt,t),n&&typeof n=="object"&&n===t?this:new tt(t)}})}function Ut(){return this.__wrapped__}r=r?Z.defaults(n.Object(),r,Z.pick(n,D)):n;var Vt=r.Array,Gt=r.Boolean,Ht=r.Date,Jt=r.Function,Lt=r.Math,Qt=r.Number,Xt=r.Object,Yt=r.RegExp,Zt=r.String,ne=r.TypeError,te=[],ee=Xt.prototype,re=r._,ue=Yt("^"+Zt(ee.valueOf).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),ae=Lt.ceil,oe=r.clearTimeout,ie=Lt.floor,fe=Jt.prototype.toString,ce=ue.test(ce=Xt.getPrototypeOf)&&ce,le=ee.hasOwnProperty,pe=te.push,se=r.setImmediate,ve=r.setTimeout,ge=ee.toString,ye=ue.test(ye=ge.bind)&&ye,he=ue.test(he=Xt.create)&&he,be=ue.test(be=Vt.isArray)&&be,me=r.isFinite,de=r.isNaN,_e=ue.test(_e=Xt.keys)&&_e,ke=Lt.max,je=Lt.min,we=r.parseInt,Ce=Lt.random,xe=te.slice,Lt=ue.test(r.attachEvent),Lt=ye&&!/\n|true/.test(ye+Lt),Oe={};
Oe[z]=Vt,Oe[W]=Gt,Oe[P]=Ht,Oe[K]=Jt,Oe[U]=Xt,Oe[M]=Qt,Oe[V]=Yt,Oe[G]=Zt,tt.prototype=nt.prototype;var Ee=nt.support={};Ee.fastBind=ye&&!Lt,nt.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:$,variable:"",imports:{_:nt}};var Se=be,Ae=j.o=_e?function(n){return yt(n)?_e(n):[]}:Y,Ie={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Ne=st(Ie),$e=Yt("("+Ae(Ne).join("|")+")","g"),Be=Yt("["+Ae(Ie).join("")+"]","g");return Lt&&X&&typeof se=="function"&&(Pt=zt(se,r)),Gt=8==we(O+"08")?we:function(n,t){return we(bt(n)?n.replace(B,""):n,t||0)
},nt.after=function(n,t){return function(){return 1>--n?t.apply(this,arguments):void 0}},nt.assign=Q,nt.at=function(n){for(var t=-1,e=et(arguments,y,b,1),r=e.length,u=Vt(r);++t<r;)u[t]=n[e[t]];return u},nt.bind=zt,nt.bindAll=function(n){for(var t=1<arguments.length?et(arguments,y,b,1):pt(n),e=-1,r=t.length;++e<r;){var u=t[e];n[u]=zt(n[u],n)}return n},nt.bindKey=function(n,t){return ut(n,t,xe.call(arguments,2),k)},nt.compact=function(n){for(var t=-1,e=n?n.length:0,r=[];++t<e;){var u=n[t];u&&r.push(u)
}return r},nt.compose=function(){var n=arguments;return function(){for(var t=arguments,e=n.length;e--;)t=[n[e].apply(this,t)];return t[0]}},nt.countBy=function(n,t,e){var r={};return t=nt.createCallback(t,e),Ct(n,function(n,e,u){e=Zt(t(n,e,u)),le.call(r,e)?r[e]++:r[e]=1}),r},nt.createCallback=function(n,t,e){if(n==h)return Kt;var r=typeof n;if("function"!=r){if("object"!=r)return function(t){return t[n]};var u=Ae(n);return function(t){for(var e=u.length,r=b;e--&&(r=vt(t[u[e]],n[u[e]],k)););return r
}}return typeof t=="undefined"||R&&!R.test(fe.call(n))?n:1===e?function(e){return n.call(t,e)}:2===e?function(e,r){return n.call(t,e,r)}:4===e?function(e,r,u,a){return n.call(t,e,r,u,a)}:function(e,r,u){return n.call(t,e,r,u)}},nt.debounce=Wt,nt.defaults=L,nt.defer=Pt,nt.delay=function(n,t){var e=xe.call(arguments,2);return ve(function(){n.apply(g,e)},t)},nt.difference=Nt,nt.filter=jt,nt.flatten=function(n,t,e,r){return typeof t!="boolean"&&t!=h&&(r=e,e=r&&r[t]===n?g:t,t=b),e!=h&&(n=xt(n,e,r)),et(n,t)
},nt.forEach=Ct,nt.forIn=x,nt.forOwn=d,nt.functions=pt,nt.groupBy=function(n,t,e){var r={};return t=nt.createCallback(t,e),Ct(n,function(n,e,u){e=Zt(t(n,e,u)),(le.call(r,e)?r[e]:r[e]=[]).push(n)}),r},nt.initial=function(n,t,e){if(!n)return[];var r=0,u=n.length;if(typeof t!="number"&&t!=h){var a=u;for(t=nt.createCallback(t,e);a--&&t(n[a],a,n);)r++}else r=t==h||e?1:t||r;return s(n,0,je(ke(0,u-r),u))},nt.intersection=function(n){for(var r=arguments,u=r.length,a=-1,i=f(),c=-1,s=ot(),v=n?n.length:0,g=[],y=f();++a<u;){var h=r[a];
i[a]=s===t&&(h?h.length:0)>=C&&o(a?r[a]:y)}n:for(;++c<v;){var b=i[0],h=n[c];if(0>(b?e(b,h):s(y,h))){for(a=u,(b||y).push(h);--a;)if(b=i[a],0>(b?e(b,h):s(r[a],h)))continue n;g.push(h)}}for(;u--;)(b=i[u])&&p(b);return l(i),l(y),g},nt.invert=st,nt.invoke=function(n,t){var e=xe.call(arguments,2),r=-1,u=typeof t=="function",a=n?n.length:0,o=Vt(typeof a=="number"?a:0);return Ct(n,function(n){o[++r]=(u?t:n[t]).apply(n,e)}),o},nt.keys=Ae,nt.map=xt,nt.max=Ot,nt.memoize=function(n,t){function e(){var r=e.cache,u=w+(t?t.apply(this,arguments):arguments[0]);
return le.call(r,u)?r[u]:r[u]=n.apply(this,arguments)}return e.cache={},e},nt.merge=mt,nt.min=function(n,t,e){var r=1/0,a=r;if(!t&&Se(n)){e=-1;for(var o=n.length;++e<o;){var i=n[e];i<a&&(a=i)}}else t=!t&&bt(n)?u:nt.createCallback(t,e),Ct(n,function(n,e,u){e=t(n,e,u),e<r&&(r=e,a=n)});return a},nt.omit=function(n,t,e){var r=ot(),u=typeof t=="function",a={};if(u)t=nt.createCallback(t,e);else var o=et(arguments,y,b,1);return x(n,function(n,e,i){(u?!t(n,e,i):0>r(o,e))&&(a[e]=n)}),a},nt.once=function(n){var t,e;
return function(){return t?e:(t=y,e=n.apply(this,arguments),n=h,e)}},nt.pairs=function(n){for(var t=-1,e=Ae(n),r=e.length,u=Vt(r);++t<r;){var a=e[t];u[t]=[a,n[a]]}return u},nt.partial=function(n){return ut(n,xe.call(arguments,1))},nt.partialRight=function(n){return ut(n,xe.call(arguments,1),h,k)},nt.pick=function(n,t,e){var r={};if(typeof t!="function")for(var u=-1,a=et(arguments,y,b,1),o=yt(n)?a.length:0;++u<o;){var i=a[u];i in n&&(r[i]=n[i])}else t=nt.createCallback(t,e),x(n,function(n,e,u){t(n,e,u)&&(r[e]=n)
});return r},nt.pluck=Et,nt.range=function(n,t,e){n=+n||0,e=+e||1,t==h&&(t=n,n=0);var r=-1;t=ke(0,ae((t-n)/e));for(var u=Vt(t);++r<t;)u[r]=n,n+=e;return u},nt.reject=function(n,t,e){return t=nt.createCallback(t,e),jt(n,function(n,e,r){return!t(n,e,r)})},nt.rest=Ft,nt.shuffle=function(n){var t=-1,e=n?n.length:0,r=Vt(typeof e=="number"?e:0);return Ct(n,function(n){var e=ie(Ce()*(++t+1));r[t]=r[e],r[e]=n}),r},nt.sortBy=function(n,t,e){var r=-1,u=n?n.length:0,o=Vt(typeof u=="number"?u:0);for(t=nt.createCallback(t,e),Ct(n,function(n,e,u){var a=o[++r]=c();
a.l=t(n,e,u),a.m=r,a.n=n}),u=o.length,o.sort(a);u--;)n=o[u],o[u]=n.n,p(n);return o},nt.tap=function(n,t){return t(n),n},nt.throttle=function(n,t,e){var r=y,u=y;return e===false?r=b:yt(e)&&(r="leading"in e?e.leading:r,u="trailing"in e?e.trailing:u),e=c(),e.leading=r,e.maxWait=t,e.trailing=u,n=Wt(n,t,e),p(e),n},nt.times=function(n,t,e){n=-1<(n=+n)?n:0;var r=-1,u=Vt(n);for(t=nt.createCallback(t,e,1);++r<n;)u[r]=t(r);return u},nt.toArray=function(n){return n&&typeof n.length=="number"?s(n):dt(n)},nt.transform=function(n,t,e,r){var u=Se(n);
return t=nt.createCallback(t,r,4),e==h&&(u?e=[]:(r=n&&n.constructor,e=yt(r&&r.prototype)?he(r&&r.prototype):{})),(u?Ct:d)(n,function(n,r,u){return t(e,n,r,u)}),e},nt.union=function(){return rt(et(arguments,y,y))},nt.uniq=Tt,nt.values=dt,nt.where=jt,nt.without=function(n){return Nt(n,xe.call(arguments,1))},nt.wrap=function(n,t){return function(){var e=[n];return pe.apply(e,arguments),t.apply(this,e)}},nt.zip=Dt,nt.zipObject=qt,nt.collect=xt,nt.drop=Ft,nt.each=Ct,nt.extend=Q,nt.methods=pt,nt.object=qt,nt.select=jt,nt.tail=Ft,nt.unique=Tt,nt.unzip=Dt,Mt(nt),nt.chain=nt,nt.prototype.chain=function(){return this
},nt.clone=lt,nt.cloneDeep=function(n,t,e){return lt(n,y,t,e)},nt.contains=_t,nt.escape=function(n){return n==h?"":Zt(n).replace(Be,at)},nt.every=kt,nt.find=wt,nt.findIndex=function(n,t,e){var r=-1,u=n?n.length:0;for(t=nt.createCallback(t,e);++r<u;)if(t(n[r],r,n))return r;return-1},nt.findKey=function(n,t,e){var r;return t=nt.createCallback(t,e),d(n,function(n,e,u){return t(n,e,u)?(r=e,b):void 0}),r},nt.has=function(n,t){return n?le.call(n,t):b},nt.identity=Kt,nt.indexOf=Bt,nt.isArguments=ct,nt.isArray=Se,nt.isBoolean=function(n){return n===y||n===false||ge.call(n)==W
},nt.isDate=function(n){return n?typeof n=="object"&&ge.call(n)==P:b},nt.isElement=function(n){return n?1===n.nodeType:b},nt.isEmpty=function(n){var t=y;if(!n)return t;var e=ge.call(n),r=n.length;return e==z||e==G||e==q||e==U&&typeof r=="number"&&gt(n.splice)?!r:(d(n,function(){return t=b}),t)},nt.isEqual=vt,nt.isFinite=function(n){return me(n)&&!de(parseFloat(n))},nt.isFunction=gt,nt.isNaN=function(n){return ht(n)&&n!=+n},nt.isNull=function(n){return n===h},nt.isNumber=ht,nt.isObject=yt,nt.isPlainObject=m,nt.isRegExp=function(n){return n?typeof n=="object"&&ge.call(n)==V:b
},nt.isString=bt,nt.isUndefined=function(n){return typeof n=="undefined"},nt.lastIndexOf=function(n,t,e){var r=n?n.length:0;for(typeof e=="number"&&(r=(0>e?ke(0,r+e):je(e,r-1))+1);r--;)if(n[r]===t)return r;return-1},nt.mixin=Mt,nt.noConflict=function(){return r._=re,this},nt.parseInt=Gt,nt.random=function(n,t){n==h&&t==h&&(t=1),n=+n||0,t==h?(t=n,n=0):t=+t||0;var e=Ce();return n%1||t%1?n+je(e*(t-n+parseFloat("1e-"+((e+"").length-1))),t):n+ie(e*(t-n+1))},nt.reduce=St,nt.reduceRight=At,nt.result=function(n,t){var e=n?n[t]:g;
return gt(e)?n[t]():e},nt.runInContext=v,nt.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:Ae(n).length},nt.some=It,nt.sortedIndex=Rt,nt.template=function(n,t,e){var r=nt.templateSettings;n||(n=""),e=L({},e,r);var u,a=L({},e.imports,r.imports),r=Ae(a),a=dt(a),o=0,f=e.interpolate||F,c="__p+='",f=Yt((e.escape||F).source+"|"+f.source+"|"+(f===$?I:F).source+"|"+(e.evaluate||F).source+"|$","g");n.replace(f,function(t,e,r,a,f,l){return r||(r=a),c+=n.slice(o,l).replace(T,i),e&&(c+="'+__e("+e+")+'"),f&&(u=y,c+="';"+f+";__p+='"),r&&(c+="'+((__t=("+r+"))==null?'':__t)+'"),o=l+t.length,t
}),c+="';\n",f=e=e.variable,f||(e="obj",c="with("+e+"){"+c+"}"),c=(u?c.replace(E,""):c).replace(S,"$1").replace(A,"$1;"),c="function("+e+"){"+(f?"":e+"||("+e+"={});")+"var __t,__p='',__e=_.escape"+(u?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+c+"return __p}";try{var l=Jt(r,"return "+c).apply(g,a)}catch(p){throw p.source=c,p}return t?l(t):(l.source=c,l)},nt.unescape=function(n){return n==h?"":Zt(n).replace($e,ft)},nt.uniqueId=function(n){var t=++_;return Zt(n==h?"":n)+t
},nt.all=kt,nt.any=It,nt.detect=wt,nt.findWhere=wt,nt.foldl=St,nt.foldr=At,nt.include=_t,nt.inject=St,d(nt,function(n,t){nt.prototype[t]||(nt.prototype[t]=function(){var t=[this.__wrapped__];return pe.apply(t,arguments),n.apply(nt,t)})}),nt.first=$t,nt.last=function(n,t,e){if(n){var r=0,u=n.length;if(typeof t!="number"&&t!=h){var a=u;for(t=nt.createCallback(t,e);a--&&t(n[a],a,n);)r++}else if(r=t,r==h||e)return n[u-1];return s(n,ke(0,u-r))}},nt.take=$t,nt.head=$t,d(nt,function(n,t){nt.prototype[t]||(nt.prototype[t]=function(t,e){var r=n(this.__wrapped__,t,e);
return t==h||e&&typeof t!="function"?r:new tt(r)})}),nt.VERSION="1.3.1",nt.prototype.toString=function(){return Zt(this.__wrapped__)},nt.prototype.value=Ut,nt.prototype.valueOf=Ut,Ct(["join","pop","shift"],function(n){var t=te[n];nt.prototype[n]=function(){return t.apply(this.__wrapped__,arguments)}}),Ct(["push","reverse","sort","unshift"],function(n){var t=te[n];nt.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),Ct(["concat","slice","splice"],function(n){var t=te[n];nt.prototype[n]=function(){return new tt(t.apply(this.__wrapped__,arguments))
}}),nt}var g,y=!0,h=null,b=!1,m=[],d=[],_=0,k={},j={},w=+new Date+"",C=75,x=40,O=" \t\x0B\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000",E=/\b__p\+='';/g,S=/\b(__p\+=)''\+/g,A=/(__e\(.*?\)|\b__t\))\+'';/g,I=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,N=/\w*$/,$=/<%=([\s\S]+?)%>/g,B=RegExp("^["+O+"]*0+(?=.$)"),F=/($^)/,R=(R=/\bthis\b/)&&R.test(v)&&R,T=/['\n\r\t\u2028\u2029\\]/g,D="Array Boolean Date Function Math Number Object RegExp String _ attachEvent clearTimeout isFinite isNaN parseInt setImmediate setTimeout".split(" "),q="[object Arguments]",z="[object Array]",W="[object Boolean]",P="[object Date]",K="[object Function]",M="[object Number]",U="[object Object]",V="[object RegExp]",G="[object String]",H={};
H[K]=b,H[q]=H[z]=H[W]=H[P]=H[M]=H[U]=H[V]=H[G]=y;var J={"boolean":b,"function":y,object:y,number:b,string:b,undefined:b},L={"\\":"\\","'":"'","\n":"n","\r":"r","\t":"t","\u2028":"u2028","\u2029":"u2029"},Q=J[typeof exports]&&exports,X=J[typeof module]&&module&&module.exports==Q&&module,Y=J[typeof global]&&global;!Y||Y.global!==Y&&Y.window!==Y||(n=Y);var Z=v();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(n._=Z, define(function(){return Z})):Q&&!Q.nodeType?X?(X.exports=Z)._=Z:Q._=Z:n._=Z
}(this);

View File

@@ -91,7 +91,7 @@
*/
function basicIndexOf(array, value, fromIndex) {
var index = (fromIndex || 0) - 1,
length = array.length;
length = array ? array.length : 0;
while (++index < length) {
if (array[index] === value) {
@@ -102,7 +102,7 @@
}
/**
* Used by `sortBy` to compare transformed `collection` values, stable sorting
* Used by `sortBy` to compare transformed `collection` elements, stable sorting
* them in ascending order.
*
* @private
@@ -360,6 +360,68 @@
/*--------------------------------------------------------------------------*/
/**
* A basic implementation of `_.flatten` without support for `callback`
* shorthands or `thisArg` binding.
*
* @private
* @param {Array} array The array to flatten.
* @param {Boolean} [isShallow=false] A flag to restrict flattening to a single level.
* @param {Boolean} [isArgArrays=false] A flag to restrict flattening to arrays and `arguments` objects.
* @param {Number} [fromIndex=0] The index to start from.
* @returns {Array} Returns a new flattened array.
*/
function basicFlatten(array, isShallow, isArgArrays, fromIndex) {
var index = (fromIndex || 0) - 1,
length = array ? array.length : 0,
result = [];
while (++index < length) {
var value = array[index];
// recursively flatten arrays (susceptible to call stack limits)
if (value && typeof value == 'object' && (isArray(value) || isArguments(value))) {
push.apply(result, isShallow ? value : basicFlatten(value));
} else if (!isArgArrays) {
result.push(value);
}
}
return result;
}
/**
* A basic implementation of `_.uniq` without support for `callback` shorthands
* or `thisArg` binding.
*
* @private
* @param {Array} array The array to process.
* @param {Boolean} [isSorted=false] A flag to indicate that the `array` is already sorted.
* @param {Function} [callback] The function called per iteration.
* @returns {Array} Returns a duplicate-value-free array.
*/
function basicUniq(array, isSorted, callback) {
var index = -1,
indexOf = getIndexOf(),
length = array ? array.length : 0,
result = [],
seen = callback ? [] : result;
while (++index < length) {
var value = array[index],
computed = callback ? callback(value, index, array) : value;
if (isSorted
? !index || seen[seen.length - 1] !== computed
: indexOf(seen, computed) < 0
) {
if (callback) {
seen.push(computed);
}
result.push(value);
}
}
return result;
}
/**
* Creates a function that, when called, invokes `func` with the `this` binding
* of `thisArg` and prepends any `partialArgs` to the arguments passed to the
@@ -430,7 +492,7 @@
}
// fallback for browsers without `Object.create`
if (!nativeCreate) {
var createObject = function(prototype) {
createObject = function(prototype) {
if (isObject(prototype)) {
noop.prototype = prototype;
var result = new noop;
@@ -459,7 +521,7 @@
* @private
* @returns {Function} Returns the "indexOf" function.
*/
function getIndexOf(array, value, fromIndex) {
function getIndexOf() {
var result = (result = lodash.indexOf) === indexOf ? basicIndexOf : result;
return result;
}
@@ -793,8 +855,8 @@
};
/**
* Creates a sorted array of all enumerable properties, own and inherited,
* of `object` that have function values.
* Creates a sorted array of property names of all enumerable properties,
* own and inherited, of `object` that have function values.
*
* @static
* @memberOf _
@@ -2445,7 +2507,7 @@
* @memberOf _
* @category Arrays
* @param {Array} array The array to compact.
* @returns {Array} Returns a new filtered array.
* @returns {Array} Returns a new array of filtered values.
* @example
*
* _.compact([0, 1, false, 2, '', 3]);
@@ -2466,17 +2528,15 @@
}
/**
* Creates an arrat with all occurrences of the passed values removed using
* using strict equality for comparisons, i.e. `===`. Values to exclude may
* be specified as individual arguments or as arrays.
* Creates an array excluding all values of the passed-in arrays using
* strict equality for comparisons, i.e. `===`.
*
* @static
* @memberOf _
* @category Arrays
* @param {Array} array The array to process.
* @param {Array} [array1, array2, ...] The values to exclude, specified as
* individual values or arrays of values.
* @returns {Array} Returns a new filtered array.
* @param {Array} [array1, array2, ...] The arrays of values to exclude.
* @returns {Array} Returns a new array of filtered values.
* @example
*
* _.difference([1, 2, 3, 4, 5], [5, 2, 10]);
@@ -2594,7 +2654,7 @@
* @memberOf _
* @category Arrays
* @param {Array} array The array to flatten.
* @param {Boolean} [isShallow=false] A flag to indicate only flattening a single level.
* @param {Boolean} [isShallow=false] A flag to restrict flattening to a single level.
* @param {Function|Object|String} [callback=identity] The function called per
* iteration. If a property name or object is passed, it will be used to create
* a "_.pluck" or "_.where" style callback, respectively.
@@ -2618,19 +2678,7 @@
* // => ['Oh, a wise guy, eh?', 'Poifect!', 'Spread out!', 'You knucklehead!']
*/
function flatten(array, isShallow) {
var index = -1,
length = array ? array.length : 0,
result = [];
while (++index < length) {
var value = array[index];
if (value && typeof value == 'object' && (isArray(value) || isArguments(value))) {
push.apply(result, isShallow ? value : flatten(value));
} else {
result.push(value);
}
}
return result;
return basicFlatten(array, isShallow);
}
/**
@@ -2744,15 +2792,14 @@
}
/**
* Computes the intersection of all the passed-in arrays using strict equality
* for comparisons, i.e. `===`.
* Creates an array of unique values present in all passed-in arrays using
* strict equality for comparisons, i.e. `===`.
*
* @static
* @memberOf _
* @category Arrays
* @param {Array} [array1, array2, ...] Arrays to process.
* @returns {Array} Returns a new array of unique elements that are present
* in **all** of the arrays.
* @param {Array} [array1, array2, ...] The arrays to inspect.
* @returns {Array} Returns an array of composite values.
* @example
*
* _.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]);
@@ -3082,22 +3129,21 @@
}
/**
* Computes the union of the passed-in arrays using strict equality for
* comparisons, i.e. `===`.
* Creates an array of unique values, in order, of the passed-in arrays
* using strict equality for comparisons, i.e. `===`.
*
* @static
* @memberOf _
* @category Arrays
* @param {Array} [array1, array2, ...] Arrays to process.
* @returns {Array} Returns a new array of unique values, in order, that are
* present in one or more of the arrays.
* @param {Array} [array1, array2, ...] The arrays to inspect.
* @returns {Array} Returns an array of composite values.
* @example
*
* _.union([1, 2, 3], [101, 2, 1, 10], [2, 1]);
* // => [1, 2, 3, 101, 10]
*/
function union(array) {
return uniq(flatten(compact(arguments), true));
return basicUniq(basicFlatten(arguments, true, true));
}
/**
@@ -3144,48 +3190,28 @@
* // => [{ 'x': 1 }, { 'x': 2 }]
*/
function uniq(array, isSorted, callback, thisArg) {
var index = -1,
indexOf = getIndexOf(),
length = array ? array.length : 0,
result = [],
seen = result;
// juggle arguments
if (typeof isSorted != 'boolean' && isSorted != null) {
thisArg = callback;
callback = isSorted;
callback = !(thisArg && thisArg[isSorted] === array) ? isSorted : undefined;
isSorted = false;
}
if (callback != null) {
seen = [];
callback = createCallback(callback, thisArg);
}
while (++index < length) {
var value = array[index],
computed = callback ? callback(value, index, array) : value;
if (isSorted
? !index || seen[seen.length - 1] !== computed
: indexOf(seen, computed) < 0
) {
if (callback) {
seen.push(computed);
}
result.push(value);
}
}
return result;
return basicUniq(array, isSorted, callback);
}
/**
* Creates an array excluding all occurrences of the passed values using
* strict equality for comparisons, i.e. `===`.
* Creates an array excluding all passed values using strict equality for
* comparisons, i.e. `===`.
*
* @static
* @memberOf _
* @category Arrays
* @param {Array} array The array to filter.
* @param {Mixed} [value1, value2, ...] Values to exclude.
* @returns {Array} Returns a new filtered array.
* @param {Mixed} [value1, value2, ...] The values to exclude.
* @returns {Array} Returns a new array of filtered values.
* @example
*
* _.without([1, 2, 1, 0, 3, 1, 4], 0, 1);
@@ -3326,7 +3352,7 @@
* @category Functions
* @param {Object} object The object to bind and assign the bound methods to.
* @param {String} [methodName1, methodName2, ...] The object method names to
* bind, specified as individual values or arrays of values.
* bind, specified as individual method names or arrays of method names.
* @returns {Object} Returns `object`.
* @example
*
@@ -3340,7 +3366,7 @@
* // => alerts 'clicked docs', when the button is clicked
*/
function bindAll(object) {
var funcs = arguments.length > 1 ? flatten(nativeSlice.call(arguments, 1)) : functions(object),
var funcs = arguments.length > 1 ? basicFlatten(arguments, true, false, 1) : functions(object),
index = -1,
length = funcs.length;

View File

@@ -3,34 +3,34 @@
* Lo-Dash 1.3.1 (Custom Build) lodash.com/license | Underscore.js 1.5.1 underscorejs.org/LICENSE
* Build: `lodash underscore exports="amd,commonjs,global,node" -o ./dist/lodash.underscore.js`
*/
;!function(n){function t(n,t,r){r=(r||0)-1;for(var e=n.length;++r<e;)if(n[r]===t)return r;return-1}function r(n,t){var r=n.m,e=t.m;if(n=n.l,t=t.l,n!==t){if(n>t||typeof n=="undefined")return 1;if(n<t||typeof t=="undefined")return-1}return r<e?-1:1}function e(n){return"\\"+pt[n]}function u(){}function i(n){return n instanceof i?n:new o(n)}function o(n){this.__wrapped__=n}function a(n,t,r,e){function u(){var e=arguments,c=o?this:t;return i||(n=t[a]),r.length&&(e=e.length?(e=Bt.call(e),l?e.concat(r):r.concat(e)):r),this instanceof u?(c=f(n.prototype),e=n.apply(c,e),b(e)?e:c):n.apply(c,e)
}var i=d(n),o=!r,a=t;if(o){var l=e;r=t}else if(!i){if(!e)throw new TypeError;t=n}return u}function f(n){return b(n)?At(n):{}}function l(n){return $t[n]}function c(){var n=(n=i.indexOf)===W?t:n;return n}function p(n){return zt[n]}function s(n){return n&&typeof n=="object"?wt.call(n)==rt:!1}function v(n){if(!n)return n;for(var t=1,r=arguments.length;t<r;t++){var e=arguments[t];if(e)for(var u in e)n[u]=e[u]}return n}function g(n){if(!n)return n;for(var t=1,r=arguments.length;t<r;t++){var e=arguments[t];
if(e)for(var u in e)"undefined"==typeof n[u]&&(n[u]=e[u])}return n}function h(n){var t=[];return Ct(n,function(n,r){d(n)&&t.push(r)}),t.sort()}function y(n){for(var t=-1,r=Mt(n),e=r.length,u={};++t<e;){var i=r[t];u[n[i]]=i}return u}function m(n){if(!n)return!0;if(qt(n)||w(n))return!n.length;for(var t in n)if(bt.call(n,t))return!1;return!0}function _(n,t,r,e){if(n===t)return 0!==n||1/n==1/t;var u=typeof n,o=typeof t;if(n===n&&(!n||"function"!=u&&"object"!=u)&&(!t||"function"!=o&&"object"!=o))return!1;
if(null==n||null==t)return n===t;if(o=wt.call(n),u=wt.call(t),o!=u)return!1;switch(o){case ut:case it:return+n==+t;case ot:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case ft:case lt:return n==t+""}if(u=o==et,!u){if(n instanceof i||t instanceof i)return _(n.__wrapped__||n,t.__wrapped__||t,r,e);if(o!=at)return!1;var o=n.constructor,a=t.constructor;if(o!=a&&(!d(o)||!(o instanceof o&&d(a)&&a instanceof a)))return!1}for(r||(r=[]),e||(e=[]),o=r.length;o--;)if(r[o]==n)return e[o]==t;var f=!0,l=0;if(r.push(n),e.push(t),u){if(l=t.length,f=l==n.length)for(;l--&&(f=_(n[l],t[l],r,e)););return f
}return Ct(t,function(t,u,i){return bt.call(i,u)?(l++,!(f=bt.call(n,u)&&_(n[u],t,r,e))&&Y):void 0}),f&&Ct(n,function(n,t,r){return bt.call(r,t)?!(f=-1<--l)&&Y:void 0}),f}function d(n){return typeof n=="function"}function b(n){return!(!n||!ct[typeof n])}function j(n){return typeof n=="number"||wt.call(n)==ot}function w(n){return typeof n=="string"||wt.call(n)==lt}function x(n){for(var t=-1,r=Mt(n),e=r.length,u=Array(e);++t<e;)u[t]=n[r[t]];return u}function A(n,t){var r=c(),e=n?n.length:0,u=!1;return e&&typeof e=="number"?u=-1<r(n,t):Pt(n,function(n){return(u=n===t)&&Y
}),u}function O(n,t,r){var e=!0;t=H(t,r),r=-1;var u=n?n.length:0;if(typeof u=="number")for(;++r<u&&(e=!!t(n[r],r,n)););else Pt(n,function(n,r,u){return!(e=!!t(n,r,u))&&Y});return e}function E(n,t,r){var e=[];t=H(t,r),r=-1;var u=n?n.length:0;if(typeof u=="number")for(;++r<u;){var i=n[r];t(i,r,n)&&e.push(i)}else Pt(n,function(n,r,u){t(n,r,u)&&e.push(n)});return e}function T(n,t,r){t=H(t,r),r=-1;var e=n?n.length:0;if(typeof e!="number"){var u;return Pt(n,function(n,r,e){return t(n,r,e)?(u=n,Y):void 0
}),u}for(;++r<e;){var i=n[r];if(t(i,r,n))return i}}function S(n,t,r){var e=-1,u=n?n.length:0;if(t=t&&typeof r=="undefined"?t:H(t,r),typeof u=="number")for(;++e<u&&t(n[e],e,n)!==Y;);else Pt(n,t)}function F(n,t,r){var e=-1,u=n?n.length:0;if(t=H(t,r),typeof u=="number")for(var i=Array(u);++e<u;)i[e]=t(n[e],e,n);else i=[],Pt(n,function(n,r,u){i[++e]=t(n,r,u)});return i}function N(n,t,r){var e=-1/0,u=e,i=-1,o=n?n.length:0;if(t||typeof o!="number")t=H(t,r),S(n,function(n,r,i){r=t(n,r,i),r>e&&(e=r,u=n)});
else for(;++i<o;)r=n[i],r>u&&(u=r);return u}function R(n,t){var r=-1,e=n?n.length:0;if(typeof e=="number")for(var u=Array(e);++r<e;)u[r]=n[r][t];return u||F(n,t)}function B(n,t,r,e){if(!n)return r;var u=3>arguments.length;t=H(t,e,4);var i=-1,o=n.length;if(typeof o=="number")for(u&&(r=n[++i]);++i<o;)r=t(r,n[i],i,n);else Pt(n,function(n,e,i){r=u?(u=!1,n):t(r,n,e,i)});return r}function k(n,t,r,e){var u=n?n.length:0,i=3>arguments.length;if(typeof u!="number")var o=Mt(n),u=o.length;return t=H(t,e,4),S(n,function(e,a,f){a=o?o[--u]:--u,r=i?(i=!1,n[a]):t(r,n[a],a,f)
}),r}function D(n,t,r){var e;t=H(t,r),r=-1;var u=n?n.length:0;if(typeof u=="number")for(;++r<u&&!(e=t(n[r],r,n)););else Pt(n,function(n,r,u){return(e=t(n,r,u))&&Y});return!!e}function q(n,t,r){return r&&m(t)?Q:(r?T:E)(n,t)}function M(n){for(var t=-1,r=n?n.length:0,e=[];++t<r;){var u=n[t];u&&e.push(u)}return e}function $(n){for(var t=-1,r=c(),e=n.length,u=I(Bt.call(arguments,1)),i=[];++t<e;){var o=n[t];0>r(u,o)&&i.push(o)}return i}function z(n,t,r){if(n){var e=0,u=n.length;if(typeof t!="number"&&null!=t){var i=-1;
for(t=H(t,r);++i<u&&t(n[i],i,n);)e++}else if(e=t,null==e||r)return n[0];return Bt.call(n,0,Nt(Ft(0,e),u))}}function I(n,t){for(var r=-1,e=n?n.length:0,u=[];++r<e;){var i=n[r];i&&typeof i=="object"&&(qt(i)||s(i))?jt.apply(u,t?i:I(i)):u.push(i)}return u}function W(n,r,e){if(typeof e=="number"){var u=n?n.length:0;e=0>e?Ft(0,u+e):e||0}else if(e)return e=P(n,r),n[e]===r?e:-1;return n?t(n,r,e):-1}function C(n,t,r){if(typeof t!="number"&&null!=t){var e=0,u=-1,i=n?n.length:0;for(t=H(t,r);++u<i&&t(n[u],u,n);)e++
}else e=null==t||r?1:Ft(0,t);return Bt.call(n,e)}function P(n,t,r,e){var u=0,i=n?n.length:u;for(r=r?H(r,e,1):K,t=r(t);u<i;)e=u+i>>>1,r(n[e])<t?u=e+1:i=e;return u}function U(n,t,r,e){var u=-1,i=c(),o=n?n.length:0,a=[],f=a;for(typeof t!="boolean"&&null!=t&&(e=r,r=t,t=!1),null!=r&&(f=[],r=H(r,e));++u<o;){e=n[u];var l=r?r(e,u,n):e;(t?!u||f[f.length-1]!==l:0>i(f,l))&&(r&&f.push(l),a.push(e))}return a}function V(){for(var n=-1,t=N(R(arguments,"length")),r=Array(0>t?0:t);++n<t;)r[n]=R(arguments,n);return r
}function G(n,t){return Dt.fastBind||xt&&2<arguments.length?xt.call.apply(xt,arguments):a(n,t,Bt.call(arguments,2))}function H(n,t,r){if(null==n)return K;var e=typeof n;if("function"!=e){if("object"!=e)return function(t){return t[n]};var u=Mt(n);return function(t){for(var r=u.length,e=!1;r--&&(e=t[u[r]]===n[u[r]]););return e}}return typeof t=="undefined"?n:1===r?function(r){return n.call(t,r)}:2===r?function(r,e){return n.call(t,r,e)}:4===r?function(r,e,u,i){return n.call(t,r,e,u,i)}:function(r,e,u){return n.call(t,r,e,u)
}}function J(n,t,r){function e(){clearTimeout(s),clearTimeout(v),l=0,s=v=null}function u(){var t=g&&(!h||1<l);e(),t&&(false!==p&&(c=new Date),a=n.apply(f,o))}function i(){e(),(g||p!==t)&&(c=new Date,a=n.apply(f,o))}var o,a,f,l=0,c=0,p=!1,s=null,v=null,g=!0;if(t=Ft(0,t||0),true===r)var h=!0,g=!1;else b(r)&&(h=r.leading,p="maxWait"in r&&Ft(t,r.maxWait||0),g="trailing"in r?r.trailing:g);return function(){if(o=arguments,f=this,l++,clearTimeout(v),false===p)h&&2>l&&(a=n.apply(f,o));else{var r=new Date;!s&&!h&&(c=r);
var e=p-(r-c);0<e?s||(s=setTimeout(i,e)):(clearTimeout(s),s=null,c=r,a=n.apply(f,o))}return t!==p&&(v=setTimeout(u,t)),a}}function K(n){return n}function L(n){S(h(n),function(t){var r=i[t]=n[t];i.prototype[t]=function(){var n=[this.__wrapped__];return jt.apply(n,arguments),n=r.apply(i,n),this.__chain__&&(n=new o(n),n.__chain__=!0),n}})}var Q,X=0,Y={},Z=+new Date+"",nt=/($^)/,tt=/['\n\r\t\u2028\u2029\\]/g,rt="[object Arguments]",et="[object Array]",ut="[object Boolean]",it="[object Date]",ot="[object Number]",at="[object Object]",ft="[object RegExp]",lt="[object String]",ct={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},pt={"\\":"\\","'":"'","\n":"n","\r":"r","\t":"t","\u2028":"u2028","\u2029":"u2029"},st=ct[typeof exports]&&exports,vt=ct[typeof module]&&module&&module.exports==st&&module,gt=ct[typeof global]&&global;
!gt||gt.global!==gt&&gt.window!==gt||(n=gt);var ht=[],gt=Object.prototype,yt=n._,mt=RegExp("^"+(gt.valueOf+"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),_t=Math.ceil,dt=Math.floor,bt=gt.hasOwnProperty,jt=ht.push,wt=gt.toString,xt=mt.test(xt=wt.bind)&&xt,At=mt.test(At=Object.create)&&At,Ot=mt.test(Ot=Array.isArray)&&Ot,Et=n.isFinite,Tt=n.isNaN,St=mt.test(St=Object.keys)&&St,Ft=Math.max,Nt=Math.min,Rt=Math.random,Bt=ht.slice,gt=mt.test(n.attachEvent),kt=xt&&!/\n|true/.test(xt+gt);
o.prototype=i.prototype;var Dt={};!function(){var n={0:1,length:1};Dt.fastBind=xt&&!kt,Dt.spliceObjects=(ht.splice.call(n,0,1),!n[0])}(1),i.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:""},At||(f=function(n){if(b(n)){u.prototype=n;var t=new u;u.prototype=null}return t||{}}),s(arguments)||(s=function(n){return n&&typeof n=="object"?bt.call(n,"callee"):!1});var qt=Ot||function(n){return n&&typeof n=="object"?wt.call(n)==et:!1},Ot=function(n){var t,r=[];
if(!n||!ct[typeof n])return r;for(t in n)bt.call(n,t)&&r.push(t);return r},Mt={}.o=St?function(n){return b(n)?St(n):[]}:Ot,$t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"},zt=y($t),It=RegExp("("+Mt(zt).join("|")+")","g"),Wt=RegExp("["+Mt($t).join("")+"]","g"),Ct=function(n,t){var r;if(!n||!ct[typeof n])return n;for(r in n)if(t(n[r],r,n)===Y)break;return n},Pt=function(n,t){var r;if(!n||!ct[typeof n])return n;for(r in n)if(bt.call(n,r)&&t(n[r],r,n)===Y)break;return n};
d(/x/)&&(d=function(n){return typeof n=="function"&&"[object Function]"==wt.call(n)}),i.after=function(n,t){return function(){return 1>--n?t.apply(this,arguments):void 0}},i.bind=G,i.bindAll=function(n){for(var t=1<arguments.length?I(Bt.call(arguments,1)):h(n),r=-1,e=t.length;++r<e;){var u=t[r];n[u]=G(n[u],n)}return n},i.compact=M,i.compose=function(){var n=arguments;return function(){for(var t=arguments,r=n.length;r--;)t=[n[r].apply(this,t)];return t[0]}},i.countBy=function(n,t,r){var e={};return t=H(t,r),S(n,function(n,r,u){r=t(n,r,u)+"",bt.call(e,r)?e[r]++:e[r]=1
}),e},i.debounce=J,i.defaults=g,i.defer=function(n){var t=Bt.call(arguments,1);return setTimeout(function(){n.apply(Q,t)},1)},i.delay=function(n,t){var r=Bt.call(arguments,2);return setTimeout(function(){n.apply(Q,r)},t)},i.difference=$,i.filter=E,i.flatten=I,i.forEach=S,i.functions=h,i.groupBy=function(n,t,r){var e={};return t=H(t,r),S(n,function(n,r,u){r=t(n,r,u)+"",(bt.call(e,r)?e[r]:e[r]=[]).push(n)}),e},i.initial=function(n,t,r){if(!n)return[];var e=0,u=n.length;if(typeof t!="number"&&null!=t){var i=u;
for(t=H(t,r);i--&&t(n[i],i,n);)e++}else e=null==t||r?1:t||e;return Bt.call(n,0,Nt(Ft(0,u-e),u))},i.intersection=function(n){var t=arguments,r=t.length,e=-1,u=c(),i=n?n.length:0,o=[];n:for(;++e<i;){var a=n[e];if(0>u(o,a)){for(var f=r;--f;)if(0>u(t[f],a))continue n;o.push(a)}}return o},i.invert=y,i.invoke=function(n,t){var r=Bt.call(arguments,2),e=-1,u=typeof t=="function",i=n?n.length:0,o=Array(typeof i=="number"?i:0);return S(n,function(n){o[++e]=(u?t:n[t]).apply(n,r)}),o},i.keys=Mt,i.map=F,i.max=N,i.memoize=function(n,t){var r={};
return function(){var e=Z+(t?t.apply(this,arguments):arguments[0]);return bt.call(r,e)?r[e]:r[e]=n.apply(this,arguments)}},i.min=function(n,t,r){var e=1/0,u=e,i=-1,o=n?n.length:0;if(t||typeof o!="number")t=H(t,r),S(n,function(n,r,i){r=t(n,r,i),r<e&&(e=r,u=n)});else for(;++i<o;)r=n[i],r<u&&(u=r);return u},i.omit=function(n){var t=c(),r=I(Bt.call(arguments,1)),e={};return Ct(n,function(n,u){0>t(r,u)&&(e[u]=n)}),e},i.once=function(n){var t,r;return function(){return t?r:(t=!0,r=n.apply(this,arguments),n=null,r)
}},i.pairs=function(n){for(var t=-1,r=Mt(n),e=r.length,u=Array(e);++t<e;){var i=r[t];u[t]=[i,n[i]]}return u},i.partial=function(n){return a(n,Bt.call(arguments,1))},i.pick=function(n){for(var t=-1,r=I(Bt.call(arguments,1)),e=r.length,u={};++t<e;){var i=r[t];i in n&&(u[i]=n[i])}return u},i.pluck=R,i.range=function(n,t,r){n=+n||0,r=+r||1,null==t&&(t=n,n=0);var e=-1;t=Ft(0,_t((t-n)/r));for(var u=Array(t);++e<t;)u[e]=n,n+=r;return u},i.reject=function(n,t,r){return t=H(t,r),E(n,function(n,r,e){return!t(n,r,e)
})},i.rest=C,i.shuffle=function(n){var t=-1,r=n?n.length:0,e=Array(typeof r=="number"?r:0);return S(n,function(n){var r=dt(Rt()*(++t+1));e[t]=e[r],e[r]=n}),e},i.sortBy=function(n,t,e){var u=-1,i=n?n.length:0,o=Array(typeof i=="number"?i:0);for(t=H(t,e),S(n,function(n,r,e){o[++u]={l:t(n,r,e),m:u,n:n}}),i=o.length,o.sort(r);i--;)o[i]=o[i].n;return o},i.tap=function(n,t){return t(n),n},i.throttle=function(n,t,r){var e=!0,u=!0;return false===r?e=!1:b(r)&&(e="leading"in r?r.leading:e,u="trailing"in r?r.trailing:u),r={},r.leading=e,r.maxWait=t,r.trailing=u,J(n,t,r)
},i.times=function(n,t,r){for(var e=-1,u=Array(-1<n?n:0);++e<n;)u[e]=t.call(r,e);return u},i.toArray=function(n){return qt(n)?Bt.call(n):n&&typeof n.length=="number"?F(n):x(n)},i.union=function(){return U(I(M(arguments),!0))},i.uniq=U,i.values=x,i.where=q,i.without=function(n){return $(n,Bt.call(arguments,1))},i.wrap=function(n,t){return function(){var r=[n];return jt.apply(r,arguments),t.apply(this,r)}},i.zip=V,i.collect=F,i.drop=C,i.each=S,i.extend=v,i.methods=h,i.object=function(n,t){for(var r=-1,e=n?n.length:0,u={};++r<e;){var i=n[r];
t?u[i]=t[r]:u[i[0]]=i[1]}return u},i.select=E,i.tail=C,i.unique=U,i.unzip=V,i.chain=function(n){return n=new o(n),n.__chain__=!0,n},i.clone=function(n){return b(n)?qt(n)?Bt.call(n):v({},n):n},i.contains=A,i.escape=function(n){return null==n?"":(n+"").replace(Wt,l)},i.every=O,i.find=T,i.has=function(n,t){return n?bt.call(n,t):!1},i.identity=K,i.indexOf=W,i.isArguments=s,i.isArray=qt,i.isBoolean=function(n){return true===n||false===n||wt.call(n)==ut},i.isDate=function(n){return n?typeof n=="object"&&wt.call(n)==it:!1
},i.isElement=function(n){return n?1===n.nodeType:!1},i.isEmpty=m,i.isEqual=_,i.isFinite=function(n){return Et(n)&&!Tt(parseFloat(n))},i.isFunction=d,i.isNaN=function(n){return j(n)&&n!=+n},i.isNull=function(n){return null===n},i.isNumber=j,i.isObject=b,i.isRegExp=function(n){return n&&ct[typeof n]?wt.call(n)==ft:!1},i.isString=w,i.isUndefined=function(n){return typeof n=="undefined"},i.lastIndexOf=function(n,t,r){var e=n?n.length:0;for(typeof r=="number"&&(e=(0>r?Ft(0,e+r):Nt(r,e-1))+1);e--;)if(n[e]===t)return e;
return-1},i.mixin=L,i.noConflict=function(){return n._=yt,this},i.random=function(n,t){null==n&&null==t&&(t=1),n=+n||0,null==t?(t=n,n=0):t=+t||0;var r=Rt();return n%1||t%1?n+Nt(r*(t-n+parseFloat("1e-"+((r+"").length-1))),t):n+dt(r*(t-n+1))},i.reduce=B,i.reduceRight=k,i.result=function(n,t){var r=n?n[t]:Q;return d(r)?n[t]():r},i.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:Mt(n).length},i.some=D,i.sortedIndex=P,i.template=function(n,t,r){var u=i.templateSettings;n||(n=""),r=g({},r,u);
var o=0,a="__p+='",u=r.variable;n.replace(RegExp((r.escape||nt).source+"|"+(r.interpolate||nt).source+"|"+(r.evaluate||nt).source+"|$","g"),function(t,r,u,i,f){return a+=n.slice(o,f).replace(tt,e),r&&(a+="'+_['escape']("+r+")+'"),i&&(a+="';"+i+";__p+='"),u&&(a+="'+((__t=("+u+"))==null?'':__t)+'"),o=f+t.length,t}),a+="';\n",u||(u="obj",a="with("+u+"||{}){"+a+"}"),a="function("+u+"){var __t,__p='',__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}"+a+"return __p}";try{var f=Function("_","return "+a)(i)
}catch(l){throw l.source=a,l}return t?f(t):(f.source=a,f)},i.unescape=function(n){return null==n?"":(n+"").replace(It,p)},i.uniqueId=function(n){var t=++X+"";return n?n+t:t},i.all=O,i.any=D,i.detect=T,i.findWhere=function(n,t){return q(n,t,!0)},i.foldl=B,i.foldr=k,i.include=A,i.inject=B,i.first=z,i.last=function(n,t,r){if(n){var e=0,u=n.length;if(typeof t!="number"&&null!=t){var i=u;for(t=H(t,r);i--&&t(n[i],i,n);)e++}else if(e=t,null==e||r)return n[u-1];return Bt.call(n,Ft(0,u-e))}},i.take=z,i.head=z,i.VERSION="1.3.1",L(i),i.prototype.chain=function(){return this.__chain__=!0,this
},i.prototype.value=function(){return this.__wrapped__},S("pop push reverse shift sort splice unshift".split(" "),function(n){var t=ht[n];i.prototype[n]=function(){var n=this.__wrapped__;return t.apply(n,arguments),!Dt.spliceObjects&&0===n.length&&delete n[0],this}}),S(["concat","join","slice"],function(n){var t=ht[n];i.prototype[n]=function(){var n=t.apply(this.__wrapped__,arguments);return this.__chain__&&(n=new o(n),n.__chain__=!0),n}}),typeof define=="function"&&typeof define.amd=="object"&&define.amd?(n._=i, define(function(){return i
})):st&&!st.nodeType?vt?(vt.exports=i)._=i:st._=i:n._=i}(this);
;!function(n){function t(n,t,r){r=(r||0)-1;for(var e=n?n.length:0;++r<e;)if(n[r]===t)return r;return-1}function r(n,t){var r=n.m,e=t.m;if(n=n.l,t=t.l,n!==t){if(n>t||typeof n=="undefined")return 1;if(n<t||typeof t=="undefined")return-1}return r<e?-1:1}function e(n){return"\\"+st[n]}function u(){}function i(n){return n instanceof i?n:new o(n)}function o(n){this.__wrapped__=n}function a(n,t,r,e){e=(e||0)-1;for(var u=n?n.length:0,i=[];++e<u;){var o=n[e];o&&typeof o=="object"&&(zt(o)||g(o))?xt.apply(i,t?o:a(o)):r||i.push(o)
}return i}function f(n,t,r){for(var e=-1,u=s(),i=n?n.length:0,o=[],a=r?[]:o;++e<i;){var f=n[e],l=r?r(f,e,n):f;(t?!e||a[a.length-1]!==l:0>u(a,l))&&(r&&a.push(l),o.push(f))}return o}function l(n,t,r,e){function u(){var e=arguments,l=o?this:t;return i||(n=t[a]),r.length&&(e=e.length?(e=Dt.call(e),f?e.concat(r):r.concat(e)):r),this instanceof u?(l=c(n.prototype),e=n.apply(l,e),w(e)?e:l):n.apply(l,e)}var i=j(n),o=!r,a=t;if(o){var f=e;r=t}else if(!i){if(!e)throw new TypeError;t=n}return u}function c(n){return w(n)?Et(n):{}
}function p(n){return Ct[n]}function s(){var n=(n=i.indexOf)===C?t:n;return n}function v(n){return Pt[n]}function g(n){return n&&typeof n=="object"?At.call(n)==et:!1}function h(n){if(!n)return n;for(var t=1,r=arguments.length;t<r;t++){var e=arguments[t];if(e)for(var u in e)n[u]=e[u]}return n}function y(n){if(!n)return n;for(var t=1,r=arguments.length;t<r;t++){var e=arguments[t];if(e)for(var u in e)"undefined"==typeof n[u]&&(n[u]=e[u])}return n}function m(n){var t=[];return Gt(n,function(n,r){j(n)&&t.push(r)
}),t.sort()}function _(n){for(var t=-1,r=Wt(n),e=r.length,u={};++t<e;){var i=r[t];u[n[i]]=i}return u}function d(n){if(!n)return!0;if(zt(n)||A(n))return!n.length;for(var t in n)if(wt.call(n,t))return!1;return!0}function b(n,t,r,e){if(n===t)return 0!==n||1/n==1/t;var u=typeof n,o=typeof t;if(n===n&&(!n||"function"!=u&&"object"!=u)&&(!t||"function"!=o&&"object"!=o))return!1;if(null==n||null==t)return n===t;if(o=At.call(n),u=At.call(t),o!=u)return!1;switch(o){case it:case ot:return+n==+t;case at:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;
case lt:case ct:return n==t+""}if(u=o==ut,!u){if(n instanceof i||t instanceof i)return b(n.__wrapped__||n,t.__wrapped__||t,r,e);if(o!=ft)return!1;var o=n.constructor,a=t.constructor;if(o!=a&&(!j(o)||!(o instanceof o&&j(a)&&a instanceof a)))return!1}for(r||(r=[]),e||(e=[]),o=r.length;o--;)if(r[o]==n)return e[o]==t;var f=!0,l=0;if(r.push(n),e.push(t),u){if(l=t.length,f=l==n.length)for(;l--&&(f=b(n[l],t[l],r,e)););return f}return Gt(t,function(t,u,i){return wt.call(i,u)?(l++,!(f=wt.call(n,u)&&b(n[u],t,r,e))&&Z):void 0
}),f&&Gt(n,function(n,t,r){return wt.call(r,t)?!(f=-1<--l)&&Z:void 0}),f}function j(n){return typeof n=="function"}function w(n){return!(!n||!pt[typeof n])}function x(n){return typeof n=="number"||At.call(n)==at}function A(n){return typeof n=="string"||At.call(n)==ct}function O(n){for(var t=-1,r=Wt(n),e=r.length,u=Array(e);++t<e;)u[t]=n[r[t]];return u}function E(n,t){var r=s(),e=n?n.length:0,u=!1;return e&&typeof e=="number"?u=-1<r(n,t):Ht(n,function(n){return(u=n===t)&&Z}),u}function T(n,t,r){var e=!0;
t=J(t,r),r=-1;var u=n?n.length:0;if(typeof u=="number")for(;++r<u&&(e=!!t(n[r],r,n)););else Ht(n,function(n,r,u){return!(e=!!t(n,r,u))&&Z});return e}function S(n,t,r){var e=[];t=J(t,r),r=-1;var u=n?n.length:0;if(typeof u=="number")for(;++r<u;){var i=n[r];t(i,r,n)&&e.push(i)}else Ht(n,function(n,r,u){t(n,r,u)&&e.push(n)});return e}function F(n,t,r){t=J(t,r),r=-1;var e=n?n.length:0;if(typeof e!="number"){var u;return Ht(n,function(n,r,e){return t(n,r,e)?(u=n,Z):void 0}),u}for(;++r<e;){var i=n[r];if(t(i,r,n))return i
}}function N(n,t,r){var e=-1,u=n?n.length:0;if(t=t&&typeof r=="undefined"?t:J(t,r),typeof u=="number")for(;++e<u&&t(n[e],e,n)!==true;);else Ht(n,t)}function R(n,t,r){var e=-1,u=n?n.length:0;if(t=J(t,r),typeof u=="number")for(var i=Array(u);++e<u;)i[e]=t(n[e],e,n);else i=[],Ht(n,function(n,r,u){i[++e]=t(n,r,u)});return i}function B(n,t,r){var e=-1/0,u=e,i=-1,o=n?n.length:0;if(t||typeof o!="number")t=J(t,r),N(n,function(n,r,i){r=t(n,r,i),r>e&&(e=r,u=n)});else for(;++i<o;)r=n[i],r>u&&(u=r);return u}function k(n,t){var r=-1,e=n?n.length:0;
if(typeof e=="number")for(var u=Array(e);++r<e;)u[r]=n[r][t];return u||R(n,t)}function D(n,t,r,e){if(!n)return r;var u=3>arguments.length;t=J(t,e,4);var i=-1,o=n.length;if(typeof o=="number")for(u&&(r=n[++i]);++i<o;)r=t(r,n[i],i,n);else Ht(n,function(n,e,i){r=u?(u=!1,n):t(r,n,e,i)});return r}function q(n,t,r,e){var u=n?n.length:0,i=3>arguments.length;if(typeof u!="number")var o=Wt(n),u=o.length;return t=J(t,e,4),N(n,function(e,a,f){a=o?o[--u]:--u,r=i?(i=!1,n[a]):t(r,n[a],a,f)}),r}function M(n,t,r){var e;
t=J(t,r),r=-1;var u=n?n.length:0;if(typeof u=="number")for(;++r<u&&!(e=t(n[r],r,n)););else Ht(n,function(n,r,u){return(e=t(n,r,u))&&Z});return!!e}function $(n,t,r){return r&&d(t)?X:(r?F:S)(n,t)}function z(n){for(var t=-1,r=s(),e=n.length,u=W(Dt.call(arguments,1)),i=[];++t<e;){var o=n[t];0>r(u,o)&&i.push(o)}return i}function I(n,t,r){if(n){var e=0,u=n.length;if(typeof t!="number"&&null!=t){var i=-1;for(t=J(t,r);++i<u&&t(n[i],i,n);)e++}else if(e=t,null==e||r)return n[0];return Dt.call(n,0,Bt(Rt(0,e),u))
}}function W(n,t){return a(n,t)}function C(n,r,e){if(typeof e=="number"){var u=n?n.length:0;e=0>e?Rt(0,u+e):e||0}else if(e)return e=U(n,r),n[e]===r?e:-1;return n?t(n,r,e):-1}function P(n,t,r){if(typeof t!="number"&&null!=t){var e=0,u=-1,i=n?n.length:0;for(t=J(t,r);++u<i&&t(n[u],u,n);)e++}else e=null==t||r?1:Rt(0,t);return Dt.call(n,e)}function U(n,t,r,e){var u=0,i=n?n.length:u;for(r=r?J(r,e,1):L,t=r(t);u<i;)e=u+i>>>1,r(n[e])<t?u=e+1:i=e;return u}function V(n,t,r,e){return typeof t!="boolean"&&null!=t&&(e=r,r=e&&e[t]===n?X:t,t=!1),null!=r&&(r=J(r,e)),f(n,t,r)
}function G(){for(var n=-1,t=B(k(arguments,"length")),r=Array(0>t?0:t);++n<t;)r[n]=k(arguments,n);return r}function H(n,t){return $t.fastBind||Ot&&2<arguments.length?Ot.call.apply(Ot,arguments):l(n,t,Dt.call(arguments,2))}function J(n,t,r){if(null==n)return L;var e=typeof n;if("function"!=e){if("object"!=e)return function(t){return t[n]};var u=Wt(n);return function(t){for(var r=u.length,e=!1;r--&&(e=t[u[r]]===n[u[r]]););return e}}return typeof t=="undefined"?n:1===r?function(r){return n.call(t,r)}:2===r?function(r,e){return n.call(t,r,e)
}:4===r?function(r,e,u,i){return n.call(t,r,e,u,i)}:function(r,e,u){return n.call(t,r,e,u)}}function K(n,t,r){function e(){clearTimeout(s),clearTimeout(v),l=0,s=v=null}function u(){var t=g&&(!h||1<l);e(),t&&(false!==p&&(c=new Date),a=n.apply(f,o))}function i(){e(),(g||p!==t)&&(c=new Date,a=n.apply(f,o))}var o,a,f,l=0,c=0,p=!1,s=null,v=null,g=!0;if(t=Rt(0,t||0),true===r)var h=!0,g=!1;else w(r)&&(h=r.leading,p="maxWait"in r&&Rt(t,r.maxWait||0),g="trailing"in r?r.trailing:g);return function(){if(o=arguments,f=this,l++,clearTimeout(v),false===p)h&&2>l&&(a=n.apply(f,o));
else{var r=new Date;!s&&!h&&(c=r);var e=p-(r-c);0<e?s||(s=setTimeout(i,e)):(clearTimeout(s),s=null,c=r,a=n.apply(f,o))}return t!==p&&(v=setTimeout(u,t)),a}}function L(n){return n}function Q(n){N(m(n),function(t){var r=i[t]=n[t];i.prototype[t]=function(){var n=[this.__wrapped__];return xt.apply(n,arguments),n=r.apply(i,n),this.__chain__&&(n=new o(n),n.__chain__=!0),n}})}var X,Y=0,Z={},nt=+new Date+"",tt=/($^)/,rt=/['\n\r\t\u2028\u2029\\]/g,et="[object Arguments]",ut="[object Array]",it="[object Boolean]",ot="[object Date]",at="[object Number]",ft="[object Object]",lt="[object RegExp]",ct="[object String]",pt={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},st={"\\":"\\","'":"'","\n":"n","\r":"r","\t":"t","\u2028":"u2028","\u2029":"u2029"},vt=pt[typeof exports]&&exports,gt=pt[typeof module]&&module&&module.exports==vt&&module,ht=pt[typeof global]&&global;
!ht||ht.global!==ht&&ht.window!==ht||(n=ht);var yt=[],mt=Object.prototype,_t=n._,dt=RegExp("^"+(mt.valueOf+"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),bt=Math.ceil,jt=Math.floor,wt=mt.hasOwnProperty,xt=yt.push,At=mt.toString,Ot=dt.test(Ot=At.bind)&&Ot,Et=dt.test(Et=Object.create)&&Et,Tt=dt.test(Tt=Array.isArray)&&Tt,St=n.isFinite,Ft=n.isNaN,Nt=dt.test(Nt=Object.keys)&&Nt,Rt=Math.max,Bt=Math.min,kt=Math.random,Dt=yt.slice,qt=dt.test(n.attachEvent),Mt=Ot&&!/\n|true/.test(Ot+qt);
o.prototype=i.prototype;var $t={};!function(){var n={0:1,length:1};$t.fastBind=Ot&&!Mt,$t.spliceObjects=(yt.splice.call(n,0,1),!n[0])}(1),i.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:""},Et||(c=function(n){if(w(n)){u.prototype=n;var t=new u;u.prototype=null}return t||{}}),g(arguments)||(g=function(n){return n&&typeof n=="object"?wt.call(n,"callee"):!1});var zt=Tt||function(n){return n&&typeof n=="object"?At.call(n)==ut:!1},It=function(n){var t,r=[];
if(!n||!pt[typeof n])return r;for(t in n)wt.call(n,t)&&r.push(t);return r},Wt={}.o=Nt?function(n){return w(n)?Nt(n):[]}:It,Ct={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"},Pt=_(Ct),Ut=RegExp("("+Wt(Pt).join("|")+")","g"),Vt=RegExp("["+Wt(Ct).join("")+"]","g"),Gt=function(n,t){var r;if(!n||!pt[typeof n])return n;for(r in n)if(t(n[r],r,n)===true)break;return n},Ht=function(n,t){var r;if(!n||!pt[typeof n])return n;for(r in n)if(wt.call(n,r)&&t(n[r],r,n)===true)break;return n
};j(/x/)&&(j=function(n){return typeof n=="function"&&"[object Function]"==At.call(n)}),i.after=function(n,t){return function(){return 1>--n?t.apply(this,arguments):void 0}},i.bind=H,i.bindAll=function(n){for(var t=1<arguments.length?a(arguments,!0,!1,1):m(n),r=-1,e=t.length;++r<e;){var u=t[r];n[u]=H(n[u],n)}return n},i.compact=function(n){for(var t=-1,r=n?n.length:0,e=[];++t<r;){var u=n[t];u&&e.push(u)}return e},i.compose=function(){var n=arguments;return function(){for(var t=arguments,r=n.length;r--;)t=[n[r].apply(this,t)];
return t[0]}},i.countBy=function(n,t,r){var e={};return t=J(t,r),N(n,function(n,r,u){r=t(n,r,u)+"",wt.call(e,r)?e[r]++:e[r]=1}),e},i.debounce=K,i.defaults=y,i.defer=function(n){var t=Dt.call(arguments,1);return setTimeout(function(){n.apply(X,t)},1)},i.delay=function(n,t){var r=Dt.call(arguments,2);return setTimeout(function(){n.apply(X,r)},t)},i.difference=z,i.filter=S,i.flatten=W,i.forEach=N,i.functions=m,i.groupBy=function(n,t,r){var e={};return t=J(t,r),N(n,function(n,r,u){r=t(n,r,u)+"",(wt.call(e,r)?e[r]:e[r]=[]).push(n)
}),e},i.initial=function(n,t,r){if(!n)return[];var e=0,u=n.length;if(typeof t!="number"&&null!=t){var i=u;for(t=J(t,r);i--&&t(n[i],i,n);)e++}else e=null==t||r?1:t||e;return Dt.call(n,0,Bt(Rt(0,u-e),u))},i.intersection=function(n){var t=arguments,r=t.length,e=-1,u=s(),i=n?n.length:0,o=[];n:for(;++e<i;){var a=n[e];if(0>u(o,a)){for(var f=r;--f;)if(0>u(t[f],a))continue n;o.push(a)}}return o},i.invert=_,i.invoke=function(n,t){var r=Dt.call(arguments,2),e=-1,u=typeof t=="function",i=n?n.length:0,o=Array(typeof i=="number"?i:0);
return N(n,function(n){o[++e]=(u?t:n[t]).apply(n,r)}),o},i.keys=Wt,i.map=R,i.max=B,i.memoize=function(n,t){var r={};return function(){var e=nt+(t?t.apply(this,arguments):arguments[0]);return wt.call(r,e)?r[e]:r[e]=n.apply(this,arguments)}},i.min=function(n,t,r){var e=1/0,u=e,i=-1,o=n?n.length:0;if(t||typeof o!="number")t=J(t,r),N(n,function(n,r,i){r=t(n,r,i),r<e&&(e=r,u=n)});else for(;++i<o;)r=n[i],r<u&&(u=r);return u},i.omit=function(n){var t=s(),r=W(Dt.call(arguments,1)),e={};return Gt(n,function(n,u){0>t(r,u)&&(e[u]=n)
}),e},i.once=function(n){var t,r;return function(){return t?r:(t=!0,r=n.apply(this,arguments),n=null,r)}},i.pairs=function(n){for(var t=-1,r=Wt(n),e=r.length,u=Array(e);++t<e;){var i=r[t];u[t]=[i,n[i]]}return u},i.partial=function(n){return l(n,Dt.call(arguments,1))},i.pick=function(n){for(var t=-1,r=W(Dt.call(arguments,1)),e=r.length,u={};++t<e;){var i=r[t];i in n&&(u[i]=n[i])}return u},i.pluck=k,i.range=function(n,t,r){n=+n||0,r=+r||1,null==t&&(t=n,n=0);var e=-1;t=Rt(0,bt((t-n)/r));for(var u=Array(t);++e<t;)u[e]=n,n+=r;
return u},i.reject=function(n,t,r){return t=J(t,r),S(n,function(n,r,e){return!t(n,r,e)})},i.rest=P,i.shuffle=function(n){var t=-1,r=n?n.length:0,e=Array(typeof r=="number"?r:0);return N(n,function(n){var r=jt(kt()*(++t+1));e[t]=e[r],e[r]=n}),e},i.sortBy=function(n,t,e){var u=-1,i=n?n.length:0,o=Array(typeof i=="number"?i:0);for(t=J(t,e),N(n,function(n,r,e){o[++u]={l:t(n,r,e),m:u,n:n}}),i=o.length,o.sort(r);i--;)o[i]=o[i].n;return o},i.tap=function(n,t){return t(n),n},i.throttle=function(n,t,r){var e=!0,u=!0;
return false===r?e=!1:w(r)&&(e="leading"in r?r.leading:e,u="trailing"in r?r.trailing:u),r={},r.leading=e,r.maxWait=t,r.trailing=u,K(n,t,r)},i.times=function(n,t,r){for(var e=-1,u=Array(-1<n?n:0);++e<n;)u[e]=t.call(r,e);return u},i.toArray=function(n){return zt(n)?Dt.call(n):n&&typeof n.length=="number"?R(n):O(n)},i.union=function(){return f(a(arguments,!0,!0))},i.uniq=V,i.values=O,i.where=$,i.without=function(n){return z(n,Dt.call(arguments,1))},i.wrap=function(n,t){return function(){var r=[n];return xt.apply(r,arguments),t.apply(this,r)
}},i.zip=G,i.collect=R,i.drop=P,i.each=N,i.extend=h,i.methods=m,i.object=function(n,t){for(var r=-1,e=n?n.length:0,u={};++r<e;){var i=n[r];t?u[i]=t[r]:u[i[0]]=i[1]}return u},i.select=S,i.tail=P,i.unique=V,i.unzip=G,i.chain=function(n){return n=new o(n),n.__chain__=!0,n},i.clone=function(n){return w(n)?zt(n)?Dt.call(n):h({},n):n},i.contains=E,i.escape=function(n){return null==n?"":(n+"").replace(Vt,p)},i.every=T,i.find=F,i.has=function(n,t){return n?wt.call(n,t):!1},i.identity=L,i.indexOf=C,i.isArguments=g,i.isArray=zt,i.isBoolean=function(n){return true===n||false===n||At.call(n)==it
},i.isDate=function(n){return n?typeof n=="object"&&At.call(n)==ot:!1},i.isElement=function(n){return n?1===n.nodeType:!1},i.isEmpty=d,i.isEqual=b,i.isFinite=function(n){return St(n)&&!Ft(parseFloat(n))},i.isFunction=j,i.isNaN=function(n){return x(n)&&n!=+n},i.isNull=function(n){return null===n},i.isNumber=x,i.isObject=w,i.isRegExp=function(n){return n&&pt[typeof n]?At.call(n)==lt:!1},i.isString=A,i.isUndefined=function(n){return typeof n=="undefined"},i.lastIndexOf=function(n,t,r){var e=n?n.length:0;
for(typeof r=="number"&&(e=(0>r?Rt(0,e+r):Bt(r,e-1))+1);e--;)if(n[e]===t)return e;return-1},i.mixin=Q,i.noConflict=function(){return n._=_t,this},i.random=function(n,t){null==n&&null==t&&(t=1),n=+n||0,null==t?(t=n,n=0):t=+t||0;var r=kt();return n%1||t%1?n+Bt(r*(t-n+parseFloat("1e-"+((r+"").length-1))),t):n+jt(r*(t-n+1))},i.reduce=D,i.reduceRight=q,i.result=function(n,t){var r=n?n[t]:X;return j(r)?n[t]():r},i.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:Wt(n).length},i.some=M,i.sortedIndex=U,i.template=function(n,t,r){var u=i.templateSettings;
n||(n=""),r=y({},r,u);var o=0,a="__p+='",u=r.variable;n.replace(RegExp((r.escape||tt).source+"|"+(r.interpolate||tt).source+"|"+(r.evaluate||tt).source+"|$","g"),function(t,r,u,i,f){return a+=n.slice(o,f).replace(rt,e),r&&(a+="'+_['escape']("+r+")+'"),i&&(a+="';"+i+";__p+='"),u&&(a+="'+((__t=("+u+"))==null?'':__t)+'"),o=f+t.length,t}),a+="';\n",u||(u="obj",a="with("+u+"||{}){"+a+"}"),a="function("+u+"){var __t,__p='',__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}"+a+"return __p}";
try{var f=Function("_","return "+a)(i)}catch(l){throw l.source=a,l}return t?f(t):(f.source=a,f)},i.unescape=function(n){return null==n?"":(n+"").replace(Ut,v)},i.uniqueId=function(n){var t=++Y+"";return n?n+t:t},i.all=T,i.any=M,i.detect=F,i.findWhere=function(n,t){return $(n,t,!0)},i.foldl=D,i.foldr=q,i.include=E,i.inject=D,i.first=I,i.last=function(n,t,r){if(n){var e=0,u=n.length;if(typeof t!="number"&&null!=t){var i=u;for(t=J(t,r);i--&&t(n[i],i,n);)e++}else if(e=t,null==e||r)return n[u-1];return Dt.call(n,Rt(0,u-e))
}},i.take=I,i.head=I,i.VERSION="1.3.1",Q(i),i.prototype.chain=function(){return this.__chain__=!0,this},i.prototype.value=function(){return this.__wrapped__},N("pop push reverse shift sort splice unshift".split(" "),function(n){var t=yt[n];i.prototype[n]=function(){var n=this.__wrapped__;return t.apply(n,arguments),!$t.spliceObjects&&0===n.length&&delete n[0],this}}),N(["concat","join","slice"],function(n){var t=yt[n];i.prototype[n]=function(){var n=t.apply(this.__wrapped__,arguments);return this.__chain__&&(n=new o(n),n.__chain__=!0),n
}}),typeof define=="function"&&typeof define.amd=="object"&&define.amd?(n._=i, define(function(){return i})):vt&&!vt.nodeType?gt?(gt.exports=i)._=i:vt._=i:n._=i}(this);

127
lodash.js
View File

@@ -234,7 +234,7 @@
}
/**
* Used by `sortBy` to compare transformed `collection` values, stable sorting
* Used by `sortBy` to compare transformed `collection` elements, stable sorting
* them in ascending order.
*
* @private
@@ -974,24 +974,22 @@
*
* @private
* @param {Array} array The array to flatten.
* @param {Boolean} [isShallow=false] A flag to indicate only flattening a single level.
* @param {Function} [callback] The function called per iteration.
* @param {Boolean} [isShallow=false] A flag to restrict flattening to a single level.
* @param {Boolean} [isArgArrays=false] A flag to restrict flattening to arrays and `arguments` objects.
* @param {Number} [fromIndex=0] The index to start from.
* @returns {Array} Returns a new flattened array.
*/
function basicFlatten(array, isShallow, callback) {
var index = -1,
function basicFlatten(array, isShallow, isArgArrays, fromIndex) {
var index = (fromIndex || 0) - 1,
length = array ? array.length : 0,
result = [];
while (++index < length) {
var value = array[index];
if (callback) {
value = callback(value, index, array);
}
// recursively flatten arrays (susceptible to call stack limits)
if (value && typeof value == 'object' && (isArray(value) || isArguments(value))) {
push.apply(result, isShallow ? value : basicFlatten(value));
} else {
} else if (!isArgArrays) {
result.push(value);
}
}
@@ -1175,7 +1173,7 @@
}
// fallback for browsers without `Object.create`
if (!nativeCreate) {
var createObject = function(prototype) {
createObject = function(prototype) {
if (isObject(prototype)) {
noop.prototype = prototype;
var result = new noop;
@@ -1204,34 +1202,11 @@
* @private
* @returns {Function} Returns the "indexOf" function.
*/
function getIndexOf(array, value, fromIndex) {
function getIndexOf() {
var result = (result = lodash.indexOf) === indexOf ? basicIndexOf : result;
return result;
}
/**
* Creates a function that juggles arguments, allowing argument overloading
* for `_.flatten` and `_.uniq`, before passing them to the given `func`.
*
* @private
* @param {Function} func The function to wrap.
* @returns {Function} Returns the new function.
*/
function overloadWrapper(func) {
return function(array, flag, callback, thisArg) {
// juggle arguments
if (typeof flag != 'boolean' && flag != null) {
thisArg = callback;
callback = !(thisArg && thisArg[flag] === array) ? flag : undefined;
flag = false;
}
if (callback != null) {
callback = lodash.createCallback(callback, thisArg);
}
return func(array, flag, callback, thisArg);
};
}
/**
* A fallback implementation of `isPlainObject` which checks if a given `value`
* is an object created by the `Object` constructor, assuming objects created
@@ -1742,8 +1717,8 @@
var forOwn = createIterator(eachIteratorOptions, forOwnIteratorOptions);
/**
* Creates a sorted array of all enumerable properties, own and inherited,
* of `object` that have function values.
* Creates a sorted array of property names of all enumerable properties,
* own and inherited, of `object` that have function values.
*
* @static
* @memberOf _
@@ -2516,7 +2491,7 @@
if (isFunc) {
callback = lodash.createCallback(callback, thisArg);
} else {
var props = basicFlatten(nativeSlice.call(arguments, 1));
var props = basicFlatten(arguments, true, false, 1);
}
forIn(object, function(value, key, object) {
if (isFunc
@@ -2586,7 +2561,7 @@
var result = {};
if (typeof callback != 'function') {
var index = -1,
props = basicFlatten(nativeSlice.call(arguments, 1)),
props = basicFlatten(arguments, true, false, 1),
length = isObject(object) ? props.length : 0;
while (++index < length) {
@@ -2707,7 +2682,7 @@
*/
function at(collection) {
var index = -1,
props = basicFlatten(nativeSlice.call(arguments, 1)),
props = basicFlatten(arguments, true, false, 1),
length = props.length,
result = Array(length);
@@ -3712,7 +3687,7 @@
* @memberOf _
* @category Arrays
* @param {Array} array The array to compact.
* @returns {Array} Returns a new filtered array.
* @returns {Array} Returns a new array of filtered values.
* @example
*
* _.compact([0, 1, false, 2, '', 3]);
@@ -3733,17 +3708,15 @@
}
/**
* Creates an arrat with all occurrences of the passed values removed using
* using strict equality for comparisons, i.e. `===`. Values to exclude may
* be specified as individual arguments or as arrays.
* Creates an array excluding all values of the passed-in arrays using
* strict equality for comparisons, i.e. `===`.
*
* @static
* @memberOf _
* @category Arrays
* @param {Array} array The array to process.
* @param {Array} [array1, array2, ...] The values to exclude, specified as
* individual values or arrays of values.
* @returns {Array} Returns a new filtered array.
* @param {Array} [array1, array2, ...] The arrays of values to exclude.
* @returns {Array} Returns a new array of filtered values.
* @example
*
* _.difference([1, 2, 3, 4, 5], [5, 2, 10]);
@@ -3753,7 +3726,7 @@
var index = -1,
indexOf = getIndexOf(),
length = array ? array.length : 0,
seen = basicFlatten(nativeSlice.call(arguments, 1)),
seen = basicFlatten(arguments, true, true, 1),
result = [];
var isLarge = length >= largeArraySize && indexOf === basicIndexOf;
@@ -3908,7 +3881,7 @@
* @memberOf _
* @category Arrays
* @param {Array} array The array to flatten.
* @param {Boolean} [isShallow=false] A flag to indicate only flattening a single level.
* @param {Boolean} [isShallow=false] A flag to restrict flattening to a single level.
* @param {Function|Object|String} [callback=identity] The function called per
* iteration. If a property name or object is passed, it will be used to create
* a "_.pluck" or "_.where" style callback, respectively.
@@ -3931,7 +3904,18 @@
* _.flatten(stooges, 'quotes');
* // => ['Oh, a wise guy, eh?', 'Poifect!', 'Spread out!', 'You knucklehead!']
*/
var flatten = overloadWrapper(basicFlatten);
function flatten(array, isShallow, callback, thisArg) {
// juggle arguments
if (typeof isShallow != 'boolean' && isShallow != null) {
thisArg = callback;
callback = !(thisArg && thisArg[isShallow] === array) ? isShallow : undefined;
isShallow = false;
}
if (callback != null) {
array = map(array, callback, thisArg);
}
return basicFlatten(array, isShallow);
}
/**
* Gets the index at which the first occurrence of `value` is found using
@@ -4044,15 +4028,14 @@
}
/**
* Computes the intersection of all the passed-in arrays using strict equality
* for comparisons, i.e. `===`.
* Creates an array of unique values present in all passed-in arrays using
* strict equality for comparisons, i.e. `===`.
*
* @static
* @memberOf _
* @category Arrays
* @param {Array} [array1, array2, ...] Arrays to process.
* @returns {Array} Returns a new array of unique elements that are present
* in **all** of the arrays.
* @param {Array} [array1, array2, ...] The arrays to inspect.
* @returns {Array} Returns an array of composite values.
* @example
*
* _.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]);
@@ -4403,22 +4386,21 @@
}
/**
* Computes the union of the passed-in arrays using strict equality for
* comparisons, i.e. `===`.
* Creates an array of unique values, in order, of the passed-in arrays
* using strict equality for comparisons, i.e. `===`.
*
* @static
* @memberOf _
* @category Arrays
* @param {Array} [array1, array2, ...] Arrays to process.
* @returns {Array} Returns a new array of unique values, in order, that are
* present in one or more of the arrays.
* @param {Array} [array1, array2, ...] The arrays to inspect.
* @returns {Array} Returns an array of composite values.
* @example
*
* _.union([1, 2, 3], [101, 2, 1, 10], [2, 1]);
* // => [1, 2, 3, 101, 10]
*/
function union(array) {
return basicUniq(basicFlatten(compact(arguments), true));
return basicUniq(basicFlatten(arguments, true, true));
}
/**
@@ -4464,18 +4446,29 @@
* _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
* // => [{ 'x': 1 }, { 'x': 2 }]
*/
var uniq = overloadWrapper(basicUniq);
function uniq(array, isSorted, callback, thisArg) {
// juggle arguments
if (typeof isSorted != 'boolean' && isSorted != null) {
thisArg = callback;
callback = !(thisArg && thisArg[isSorted] === array) ? isSorted : undefined;
isSorted = false;
}
if (callback != null) {
callback = lodash.createCallback(callback, thisArg);
}
return basicUniq(array, isSorted, callback);
}
/**
* Creates an array excluding all occurrences of the passed values using
* strict equality for comparisons, i.e. `===`.
* Creates an array excluding all passed values using strict equality for
* comparisons, i.e. `===`.
*
* @static
* @memberOf _
* @category Arrays
* @param {Array} array The array to filter.
* @param {Mixed} [value1, value2, ...] Values to exclude.
* @returns {Array} Returns a new filtered array.
* @param {Mixed} [value1, value2, ...] The values to exclude.
* @returns {Array} Returns a new array of filtered values.
* @example
*
* _.without([1, 2, 1, 0, 3, 1, 4], 0, 1);
@@ -4617,7 +4610,7 @@
* @category Functions
* @param {Object} object The object to bind and assign the bound methods to.
* @param {String} [methodName1, methodName2, ...] The object method names to
* bind, specified as individual values or arrays of values.
* bind, specified as individual method names or arrays of method names.
* @returns {Object} Returns `object`.
* @example
*
@@ -4631,7 +4624,7 @@
* // => alerts 'clicked docs', when the button is clicked
*/
function bindAll(object) {
var funcs = arguments.length > 1 ? basicFlatten(nativeSlice.call(arguments, 1)) : functions(object),
var funcs = arguments.length > 1 ? basicFlatten(arguments, true, false, 1) : functions(object),
index = -1,
length = funcs.length;