(function(){var M=this;var I=M._;var b=Array.prototype,G=Object.prototype,s=Function.prototype;var K=b.push,N=b.slice,O=G.toString,w=G.hasOwnProperty;var C=Array.isArray,D=Object.keys,A=s.bind,B=Object.create;var k=function(){};var a=function(Q){if(Q instanceof a){return Q}if(!(this instanceof a)){return new a(Q)}this._wrapped=Q};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){exports=module.exports=a}exports._=a}else{M._=a}a.VERSION="1.8.3";var H=function(S,R,Q){if(R===void 0){return S}switch(Q==null?3:Q){case 1:return function(T){return S.call(R,T)};case 2:return function(U,T){return S.call(R,U,T)};case 3:return function(V,U,T){return S.call(R,V,U,T)};case 4:return function(T,W,V,U){return S.call(R,T,W,V,U)}}return function(){return S.apply(R,arguments)}};var d=function(S,R,Q){if(S==null){return a.identity}if(a.isFunction(S)){return H(S,R,Q)}if(a.isObject(S)){return a.matcher(S)}return a.property(S)};a.iteratee=function(R,Q){return d(R,Q,Infinity)};var f=function(Q,R){return function(Y){var X=arguments.length;if(X<2||Y==null){return Y}for(var T=1;T<X;T++){var Z=arguments[T],V=Q(Z),W=V.length;for(var S=0;S<W;S++){var U=V[S];if(!R||Y[U]===void 0){Y[U]=Z[U]}}}return Y}};var c=function(Q){if(!a.isObject(Q)){return{}}if(B){return B(Q)}k.prototype=Q;var R=new k;k.prototype=null;return R};var J=function(Q){return function(R){return R==null?void 0:R[Q]}};var z=Math.pow(2,53)-1;var t=J("length");var y=function(Q){var R=t(Q);return typeof R=="number"&&R>=0&&R<=z};a.each=a.forEach=function(V,S,Q){S=H(S,Q);var R,U;if(y(V)){for(R=0,U=V.length;R<U;R++){S(V[R],R,V)}}else{var T=a.keys(V);for(R=0,U=T.length;R<U;R++){S(V[T[R]],T[R],V)}}return V};a.map=a.collect=function(W,T,Q){T=d(T,Q);var U=!y(W)&&a.keys(W),V=(U||W).length,X=Array(V);for(var S=0;S<V;S++){var R=U?U[S]:S;X[S]=T(W[R],R,W)}return X};function j(Q){function R(Y,U,X,V,T,W){for(;T>=0&&T<W;T+=Q){var S=V?V[T]:T;X=U(X,Y[S],S,Y)}return X}return function(Y,U,X,S){U=H(U,S,4);var V=!y(Y)&&a.keys(Y),W=(V||Y).length,T=Q>0?0:W-1;if(arguments.length<3){X=Y[V?V[T]:T];T+=Q}return R(Y,U,X,V,T,W)}}a.reduce=a.foldl=a.inject=j(1);a.reduceRight=a.foldr=j(-1);a.find=a.detect=function(S,T,Q){var R;if(y(S)){R=a.findIndex(S,T,Q)}else{R=a.findKey(S,T,Q)}if(R!==void 0&&R!==-1){return S[R]}};a.filter=a.select=function(R,S,Q){var T=[];S=d(S,Q);a.each(R,function(W,U,V){if(S(W,U,V)){T.push(W)}});return T};a.reject=function(R,S,Q){return a.filter(R,a.negate(d(S)),Q)};a.every=a.all=function(V,W,Q){W=d(W,Q);var T=!y(V)&&a.keys(V),U=(T||V).length;for(var S=0;S<U;S++){var R=T?T[S]:S;if(!W(V[R],R,V)){return false}}return true};a.some=a.any=function(V,W,Q){W=d(W,Q);var T=!y(V)&&a.keys(V),U=(T||V).length;for(var S=0;S<U;S++){var R=T?T[S]:S;if(W(V[R],R,V)){return true}}return false};a.contains=a.includes=a.include=function(T,S,Q,R){if(!y(T)){T=a.values(T)}if(typeof Q!="number"||R){Q=0}return a.indexOf(T,S,Q)>=0};a.invoke=function(T,S){var Q=N.call(arguments,2);var R=a.isFunction(S);return a.map(T,function(V){var U=R?S:V[S];return U==null?U:U.apply(V,Q)})};a.pluck=function(R,Q){return a.map(R,a.property(Q))};a.where=function(R,Q){return a.filter(R,a.matcher(Q))};a.findWhere=function(R,Q){return a.find(R,a.matcher(Q))};a.max=function(W,T,R){var X=-Infinity,U=-Infinity,Y,Q;if(T==null&&W!=null){W=y(W)?W:a.values(W);for(var S=0,V=W.length;S<V;S++){Y=W[S];if(Y>X){X=Y}}}else{T=d(T,R);a.each(W,function(ab,Z,aa){Q=T(ab,Z,aa);if(Q>U||Q===-Infinity&&X===-Infinity){X=ab;U=Q}})}return X};a.min=function(W,T,R){var X=Infinity,U=Infinity,Y,Q;if(T==null&&W!=null){W=y(W)?W:a.values(W);for(var S=0,V=W.length;S<V;S++){Y=W[S];if(Y<X){X=Y}}}else{T=d(T,R);a.each(W,function(ab,Z,aa){Q=T(ab,Z,aa);if(Q<U||Q===Infinity&&X===Infinity){X=ab;U=Q}})}return X};a.shuffle=function(S){var U=y(S)?S:a.values(S);var R=U.length;var V=Array(R);for(var Q=0,T;Q<R;Q++){T=a.random(0,Q);if(T!==Q){V[Q]=V[T]}V[T]=U[Q]}return V};a.sample=function(S,R,Q){if(R==null||Q){if(!y(S)){S=a.values(S)}return S[a.random(S.length-1)]}return a.shuffle(S).slice(0,Math.max(0,R))};a.sortBy=function(S,R,Q){R=d(R,Q);return a.pluck(a.map(S,function(V,T,U){return{value:V,index:T,criteria:R(V,T,U)}}).sort(function(V,W){var T=V.criteria;var U=W.criteria;if(T!==U){if(T>U||T===void 0){return 1}if(T<U||U===void 0){return -1}}return V.index-W.index}),"value")};var u=function(Q){return function(T,S,R){var U={};S=d(S,R);a.each(T,function(X,V){var W=S(X,V,T);Q(U,X,W)});return U}};a.groupBy=u(function(R,S,Q){if(a.has(R,Q)){R[Q].push(S)}else{R[Q]=[S]}});a.indexBy=u(function(R,S,Q){R[Q]=S});a.countBy=u(function(R,S,Q){if(a.has(R,Q)){R[Q]++}else{R[Q]=1}});a.toArray=function(Q){if(!Q){return[]}if(a.isArray(Q)){return N.call(Q)}if(y(Q)){return a.map(Q,a.identity)}return a.values(Q)};a.size=function(Q){if(Q==null){return 0}return y(Q)?Q.length:a.keys(Q).length};a.partition=function(S,U,Q){U=d(U,Q);var T=[],R=[];a.each(S,function(X,V,W){(U(X,V,W)?T:R).push(X)});return[T,R]};a.first=a.head=a.take=function(Q,S,R){if(Q==null){return void 0}if(S==null||R){return Q[0]}return a.initial(Q,Q.length-S)};a.initial=function(Q,S,R){return N.call(Q,0,Math.max(0,Q.length-(S==null||R?1:S)))};a.last=function(Q,S,R){if(Q==null){return void 0}if(S==null||R){return Q[Q.length-1]}return a.rest(Q,Math.max(0,Q.length-S))};a.rest=a.tail=a.drop=function(Q,S,R){return N.call(Q,S==null||R?1:S)};a.compact=function(Q){return a.filter(Q,a.identity)};var r=function(S,X,Z,Y){var W=[],R=0;for(var Q=Y||0,V=t(S);Q<V;Q++){var aa=S[Q];if(y(aa)&&(a.isArray(aa)||a.isArguments(aa))){if(!X){aa=r(aa,X,Z)}var T=0,U=aa.length;W.length+=U;while(T<U){W[R++]=aa[T++]}}else{if(!Z){W[R++]=aa}}}return W};a.flatten=function(Q,R){return r(Q,R,false)};a.without=function(Q){return a.difference(Q,N.call(arguments,1))};a.uniq=a.unique=function(Q,U,V,S){if(!a.isBoolean(U)){S=V;V=U;U=false}if(V!=null){V=d(V,S)}var X=[];var Y=[];for(var T=0,W=t(Q);T<W;T++){var Z=Q[T],R=V?V(Z,T,Q):Z;if(U){if(!T||Y!==R){X.push(Z)}Y=R}else{if(V){if(!a.contains(Y,R)){Y.push(R);X.push(Z)}}else{if(!a.contains(X,Z)){X.push(Z)}}}}return X};a.union=function(){return a.uniq(r(arguments,true,true))};a.intersection=function(R){var W=[];var Q=arguments.length;for(var S=0,V=t(R);S<V;S++){var T=R[S];if(a.contains(W,T)){continue}for(var U=1;U<Q;U++){if(!a.contains(arguments[U],T)){break}}if(U===Q){W.push(T)}}return W};a.difference=function(Q){var R=r(arguments,true,true,1);return a.filter(Q,function(S){return !a.contains(R,S)})};a.zip=function(){return a.unzip(arguments)};a.unzip=function(Q){var S=Q&&a.max(Q,t).length||0;var T=Array(S);for(var R=0;R<S;R++){T[R]=a.pluck(Q,R)}return T};a.object=function(S,U){var T={};for(var Q=0,R=t(S);Q<R;Q++){if(U){T[S[Q]]=U[Q]}else{T[S[Q][0]]=S[Q][1]}}return T};function i(Q){return function(R,V,S){V=d(V,S);var U=t(R);var T=Q>0?0:U-1;for(;T>=0&&T<U;T+=Q){if(V(R[T],T,R)){return T}}return -1}}a.findIndex=i(1);a.findLastIndex=i(-1);a.sortedIndex=function(Q,W,T,R){T=d(T,R,1);var X=T(W);var U=0,S=t(Q);while(U<S){var V=Math.floor((U+S)/2);if(T(Q[V])<X){U=V+1}else{S=V}}return U};function h(Q,R,S){return function(T,W,V){var U=0,X=t(T);if(typeof V=="number"){if(Q>0){U=V>=0?V:Math.max(V+X,U)}else{X=V>=0?Math.min(V+1,X):V+X+1}}else{if(S&&V&&X){V=S(T,W);return T[V]===W?V:-1}}if(W!==W){V=R(N.call(T,U,X),a.isNaN);return V>=0?V+U:-1}for(V=Q>0?U:X-1;V>=0&&V<X;V+=Q){if(T[V]===W){return V}}return -1}}a.indexOf=h(1,a.findIndex,a.sortedIndex);a.lastIndexOf=h(-1,a.findLastIndex);a.range=function(T,V,U){if(V==null){V=T||0;T=0}U=U||1;var R=Math.max(Math.ceil((V-T)/U),0);var S=Array(R);for(var Q=0;Q<R;Q++,T+=U){S[Q]=T}return S};var q=function(W,R,T,S,Q){if(!(S instanceof R)){return W.apply(T,Q)}var V=c(W.prototype);var U=W.apply(V,Q);if(a.isObject(U)){return U}return V};a.bind=function(T,S){if(A&&T.bind===A){return A.apply(T,N.call(arguments,1))}if(!a.isFunction(T)){throw new TypeError("Bind must be called on a function")}var Q=N.call(arguments,2);var R=function(){return q(T,R,S,this,Q.concat(N.call(arguments)))};return R};a.partial=function(S){var R=N.call(arguments,1);var Q=function(){var W=0,V=R.length;var T=Array(V);for(var U=0;U<V;U++){T[U]=R[U]===a?arguments[W++]:R[U]}while(W<arguments.length){T.push(arguments[W++])}return q(S,Q,this,this,T)};return Q};a.bindAll=function(T){var Q,S=arguments.length,R;if(S<=1){throw new Error("bindAll must be passed function names")}for(Q=1;Q<S;Q++){R=arguments[Q];T[R]=a.bind(T[R],T)}return T};a.memoize=function(Q,R){var S=function(V){var U=S.cache;var T=""+(R?R.apply(this,arguments):V);if(!a.has(U,T)){U[T]=Q.apply(this,arguments)}return U[T]};S.cache={};return S};a.delay=function(R,S){var Q=N.call(arguments,2);return setTimeout(function(){return R.apply(null,Q)},S)};a.defer=a.partial(a.delay,a,1);a.throttle=function(S,Y,U){var R,Q,W;var X=null;var V=0;if(!U){U={}}var T=function(){V=U.leading===false?0:a.now();X=null;W=S.apply(R,Q);if(!X){R=Q=null}};return function(){var Z=a.now();if(!V&&U.leading===false){V=Z}var aa=Y-(Z-V);R=this;Q=arguments;if(aa<=0||aa>Y){if(X){clearTimeout(X);X=null}V=Z;W=S.apply(R,Q);if(!X){R=Q=null}}else{if(!X&&U.trailing!==false){X=setTimeout(T,aa)}}return W}};a.debounce=function(S,Y,T){var W,Q,R,X,V;var U=function(){var Z=a.now()-X;if(Z<Y&&Z>=0){W=setTimeout(U,Y-Z)}else{W=null;if(!T){V=S.apply(R,Q);if(!W){R=Q=null}}}};return function(){R=this;Q=arguments;X=a.now();var Z=T&&!W;if(!W){W=setTimeout(U,Y)}if(Z){V=S.apply(R,Q);R=Q=null}return V}};a.wrap=function(Q,R){return a.partial(R,Q)};a.negate=function(Q){return function(){return !Q.apply(this,arguments)}};a.compose=function(){var Q=arguments;var R=Q.length-1;return function(){var S=R;var T=Q[R].apply(this,arguments);while(S--){T=Q[S].call(this,T)}return T}};a.after=function(R,Q){return function(){if(--R<1){return Q.apply(this,arguments)}}};a.before=function(S,Q){var R;return function(){if(--S>0){R=Q.apply(this,arguments)}if(S<=1){Q=null}return R}};a.once=a.partial(a.before,2);var v=!{toString:null}.propertyIsEnumerable("toString");var F=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];function e(T,R){var S=F.length;var Q=T.constructor;var V=(a.isFunction(Q)&&Q.prototype)||G;var U="constructor";if(a.has(T,U)&&!a.contains(R,U)){R.push(U)}while(S--){U=F[S];if(U in T&&T[U]!==V[U]&&!a.contains(R,U)){R.push(U)}}}a.keys=function(S){if(!a.isObject(S)){return[]}if(D){return D(S)}var R=[];for(var Q in S){if(a.has(S,Q)){R.push(Q)}}if(v){e(S,R)}return R};a.allKeys=function(S){if(!a.isObject(S)){return[]}var R=[];for(var Q in S){R.push(Q)}if(v){e(S,R)}return R};a.values=function(T){var R=a.keys(T);var S=R.length;var U=Array(S);for(var Q=0;Q<S;Q++){U[Q]=T[R[Q]]}return U};a.mapObject=function(W,T,Q){T=d(T,Q);var U=a.keys(W),V=U.length,X={},R;for(var S=0;S<V;S++){R=U[S];X[R]=T(W[R],R,W)}return X};a.pairs=function(T){var R=a.keys(T);var S=R.length;var U=Array(S);for(var Q=0;Q<S;Q++){U[Q]=[R[Q],T[R[Q]]]}return U};a.invert=function(T){var U={};var R=a.keys(T);for(var Q=0,S=R.length;Q<S;Q++){U[T[R[Q]]]=R[Q]}return U};a.functions=a.methods=function(S){var R=[];for(var Q in S){if(a.isFunction(S[Q])){R.push(Q)}}return R.sort()};a.extend=f(a.allKeys);a.extendOwn=a.assign=f(a.keys);a.findKey=function(V,W,Q){W=d(W,Q);var T=a.keys(V),S;for(var R=0,U=T.length;R<U;R++){S=T[R];if(W(V[S],S,V)){return S}}};a.pick=function(X,Y,Q){var Z={},W=X,S,U;if(W==null){return Z}if(a.isFunction(Y)){U=a.allKeys(W);S=H(Y,Q)}else{U=r(arguments,false,false,1);S=function(ad,ab,ac){return ab in ac};W=Object(W)}for(var R=0,V=U.length;R<V;R++){var T=U[R];var aa=W[T];if(S(aa,T,W)){Z[T]=aa}}return Z};a.omit=function(T,R,Q){if(a.isFunction(R)){R=a.negate(R)}else{var S=a.map(r(arguments,false,false,1),String);R=function(V,U){return !a.contains(S,U)}}return a.pick(T,R,Q)};a.defaults=f(a.allKeys,true);a.create=function(R,Q){var S=c(R);if(Q){a.extendOwn(S,Q)}return S};a.clone=function(Q){if(!a.isObject(Q)){return Q}return a.isArray(Q)?Q.slice():a.extend({},Q)};a.tap=function(R,Q){Q(R);return R};a.isMatch=function(W,Q){var T=a.keys(Q),U=T.length;if(W==null){return !U}var V=Object(W);for(var R=0;R<U;R++){var S=T[R];if(Q[S]!==V[S]||!(S in V)){return false}}return true};var l=function(Q,U,T,W){if(Q===U){return Q!==0||1/Q===1/U}if(Q==null||U==null){return Q===U}if(Q instanceof a){Q=Q._wrapped}if(U instanceof a){U=U._wrapped}var X=O.call(Q);if(X!==O.call(U)){return false}switch(X){case"[object RegExp]":case"[object String]":return""+Q===""+U;case"[object Number]":if(+Q!==+Q){return +U!==+U}return +Q===0?1/+Q===1/U:+Q===+U;case"[object Date]":case"[object Boolean]":return +Q===+U}var S=X==="[object Array]";if(!S){if(typeof Q!="object"||typeof U!="object"){return false}var R=Q.constructor,V=U.constructor;if(R!==V&&!(a.isFunction(R)&&R instanceof R&&a.isFunction(V)&&V instanceof V)&&("constructor" in Q&&"constructor" in U)){return false}}T=T||[];W=W||[];var aa=T.length;while(aa--){if(T[aa]===Q){return W[aa]===U}}T.push(Q);W.push(U);if(S){aa=Q.length;if(aa!==U.length){return false}while(aa--){if(!l(Q[aa],U[aa],T,W)){return false}}}else{var Z=a.keys(Q),Y;aa=Z.length;if(a.keys(U).length!==aa){return false}while(aa--){Y=Z[aa];if(!(a.has(U,Y)&&l(Q[Y],U[Y],T,W))){return false}}}T.pop();W.pop();return true};a.isEqual=function(Q,R){return l(Q,R)};a.isEmpty=function(Q){if(Q==null){return true}if(y(Q)&&(a.isArray(Q)||a.isString(Q)||a.isArguments(Q))){return Q.length===0}return a.keys(Q).length===0};a.isElement=function(Q){return !!(Q&&Q.nodeType===1)};a.isArray=C||function(Q){return O.call(Q)==="[object Array]"};a.isObject=function(Q){var R=typeof Q;return R==="function"||R==="object"&&!!Q};a.each(["Arguments","Function","String","Number","Date","RegExp","Error"],function(Q){a["is"+Q]=function(R){return O.call(R)==="[object "+Q+"]"}});if(!a.isArguments(arguments)){a.isArguments=function(Q){return a.has(Q,"callee")}}if(typeof/./!="function"&&typeof Int8Array!="object"){a.isFunction=function(Q){return typeof Q=="function"||false}}a.isFinite=function(Q){return isFinite(Q)&&!isNaN(parseFloat(Q))};a.isNaN=function(Q){return a.isNumber(Q)&&Q!==+Q};a.isBoolean=function(Q){return Q===true||Q===false||O.call(Q)==="[object Boolean]"};a.isNull=function(Q){return Q===null};a.isUndefined=function(Q){return Q===void 0};a.has=function(R,Q){return R!=null&&w.call(R,Q)};a.noConflict=function(){M._=I;return this};a.identity=function(Q){return Q};a.constant=function(Q){return function(){return Q}};a.noop=function(){};a.property=J;a.propertyOf=function(Q){return Q==null?function(){}:function(R){return Q[R]}};a.matcher=a.matches=function(Q){Q=a.extendOwn({},Q);return function(R){return a.isMatch(R,Q)}};a.times=function(U,T,R){var Q=Array(Math.max(0,U));T=H(T,R,1);for(var S=0;S<U;S++){Q[S]=T(S)}return Q};a.random=function(R,Q){if(Q==null){Q=R;R=0}return R+Math.floor(Math.random()*(Q-R+1))};a.now=Date.now||function(){return new Date().getTime()};var n={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"};var P=a.invert(n);var g=function(R){var Q=function(V){return R[V]};var T="(?:"+a.keys(R).join("|")+")";var U=RegExp(T);var S=RegExp(T,"g");return function(V){V=V==null?"":""+V;return U.test(V)?V.replace(S,Q):V}};a.escape=g(n);a.unescape=g(P);a.result=function(R,S,Q){var T=R==null?void 0:R[S];if(T===void 0){T=Q}return a.isFunction(T)?T.call(R):T};var x=0;a.uniqueId=function(R){var Q=++x+"";return R?R+Q:Q};a.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var E=/(.)^/;var p={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"};var o=/\\|'|\r|\n|\u2028|\u2029/g;var m=function(Q){return"\\"+p[Q]};a.template=function(Z,W,U){if(!W&&U){W=U}W=a.defaults({},W,a.templateSettings);var T=RegExp([(W.escape||E).source,(W.interpolate||E).source,(W.evaluate||E).source].join("|")+"|$","g");var S=0;var X="__p+='";Z.replace(T,function(ad,aa,ac,ab,ae){X+=Z.slice(S,ae).replace(o,m);S=ae+ad.length;if(aa){X+="'+\n((__t=("+aa+"))==null?'':_.escape(__t))+\n'"}else{if(ac){X+="'+\n((__t=("+ac+"))==null?'':__t)+\n'"}else{if(ab){X+="';\n"+ab+"\n__p+='"}}}return ad});X+="';\n";if(!W.variable){X="with(obj||{}){\n"+X+"}\n"}X="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+X+"return __p;\n";try{var V=new Function(W.variable||"obj","_",X)}catch(R){R.source=X;throw R}var Y=function(aa){return V.call(this,aa,a)};var Q=W.variable||"obj";Y.source="function("+Q+"){\n"+X+"}";return Y};a.chain=function(R){var Q=a(R);Q._chain=true;return Q};var L=function(Q,R){return Q._chain?a(R).chain():R};a.mixin=function(Q){a.each(a.functions(Q),function(S){var R=a[S]=Q[S];a.prototype[S]=function(){var T=[this._wrapped];K.apply(T,arguments);return L(this,R.apply(a,T))}})};a.mixin(a);a.each(["pop","push","reverse","shift","sort","splice","unshift"],function(R){var Q=b[R];a.prototype[R]=function(){var S=this._wrapped;Q.apply(S,arguments);if((R==="shift"||R==="splice")&&S.length===0){delete S[0]}return L(this,S)}});a.each(["concat","join","slice"],function(R){var Q=b[R];a.prototype[R]=function(){return L(this,Q.apply(this._wrapped,arguments))}});a.prototype.value=function(){return this._wrapped};a.prototype.valueOf=a.prototype.toJSON=a.prototype.value;a.prototype.toString=function(){return""+this._wrapped};if(typeof define==="function"&&define.amd){define("underscore",[],function(){return a})}}.call(this));