(function(){var y=this,at=y._,o={},r=Array.prototype,g=Object.prototype,vt=Function.prototype,nt=r.push,i=r.slice,s=r.concat,f=g.toString,yt=g.hasOwnProperty,tt=r.forEach,it=r.map,rt=r.reduce,ut=r.reduceRight,ft=r.filter,et=r.every,ot=r.some,h=r.indexOf,st=r.lastIndexOf,pt=Array.isArray,ht=Object.keys,p=vt.bind,n=function(t){if(t instanceof n)return t;if(!(this instanceof n))return new n(t);this._wrapped=t},t,w,b,e,c,k,l,a,u,ct,lt,v;typeof exports!="undefined"?(typeof module!="undefined"&&module.exports&&(exports=module.exports=n),exports._=n):y._=n;n.VERSION="1.6.0";t=n.each=n.forEach=function(t,i,r){var e,u,f;if(t==null)return t;if(tt&&t.forEach===tt)t.forEach(i,r);else if(t.length===+t.length){for(u=0,f=t.length;u<f;u++)if(i.call(r,t[u],u,t)===o)return}else for(e=n.keys(t),u=0,f=e.length;u<f;u++)if(i.call(r,t[e[u]],e[u],t)===o)return;return t};n.map=n.collect=function(n,i,r){var u=[];return n==null?u:it&&n.map===it?n.map(i,r):(t(n,function(n,t,f){u.push(i.call(r,n,t,f))}),u)};w="Reduce of empty array with no initial value";n.reduce=n.foldl=n.inject=function(i,r,u,f){var e=arguments.length>2;if(i==null&&(i=[]),rt&&i.reduce===rt)return f&&(r=n.bind(r,f)),e?i.reduce(r,u):i.reduce(r);if(t(i,function(n,t,i){e?u=r.call(f,u,n,t,i):(u=n,e=!0)}),!e)throw new TypeError(w);return u};n.reduceRight=n.foldr=function(i,r,u,f){var o=arguments.length>2,e,s;if(i==null&&(i=[]),ut&&i.reduceRight===ut)return f&&(r=n.bind(r,f)),o?i.reduceRight(r,u):i.reduceRight(r);if(e=i.length,e!==+e&&(s=n.keys(i),e=s.length),t(i,function(n,t,h){t=s?s[--e]:--e;o?u=r.call(f,u,i[t],t,h):(u=i[t],o=!0)}),!o)throw new TypeError(w);return u};n.find=n.detect=function(n,t,i){var r;return b(n,function(n,u,f){if(t.call(i,n,u,f))return r=n,!0}),r};n.filter=n.select=function(n,i,r){var u=[];return n==null?u:ft&&n.filter===ft?n.filter(i,r):(t(n,function(n,t,f){i.call(r,n,t,f)&&u.push(n)}),u)};n.reject=function(t,i,r){return n.filter(t,function(n,t,u){return!i.call(r,n,t,u)},r)};n.every=n.all=function(i,r,u){r||(r=n.identity);var f=!0;return i==null?f:et&&i.every===et?i.every(r,u):(t(i,function(n,t,i){if(!(f=f&&r.call(u,n,t,i)))return o}),!!f)};b=n.some=n.any=function(i,r,u){r||(r=n.identity);var f=!1;return i==null?f:ot&&i.some===ot?i.some(r,u):(t(i,function(n,t,i){if(f||(f=r.call(u,n,t,i)))return o}),!!f)};n.contains=n.include=function(n,t){return n==null?!1:h&&n.indexOf===h?n.indexOf(t)!=-1:b(n,function(n){return n===t})};n.invoke=function(t,r){var u=i.call(arguments,2),f=n.isFunction(r);return n.map(t,function(n){return(f?r:n[r]).apply(n,u)})};n.pluck=function(t,i){return n.map(t,n.property(i))};n.where=function(t,i){return n.filter(t,n.matches(i))};n.findWhere=function(t,i){return n.find(t,n.matches(i))};n.max=function(i,r,u){if(!r&&n.isArray(i)&&i[0]===+i[0]&&i.length<65535)return Math.max.apply(Math,i);var f=-Infinity,e=-Infinity;return t(i,function(n,t,i){var o=r?r.call(u,n,t,i):n;o>e&&(f=n,e=o)}),f};n.min=function(i,r,u){if(!r&&n.isArray(i)&&i[0]===+i[0]&&i.length<65535)return Math.min.apply(Math,i);var f=Infinity,e=Infinity;return t(i,function(n,t,i){var o=r?r.call(u,n,t,i):n;o<e&&(f=n,e=o)}),f};n.shuffle=function(i){var u,f=0,r=[];return t(i,function(t){u=n.random(f++);r[f-1]=r[u];r[u]=t}),r};n.sample=function(t,i,r){return i==null||r?(t.length!==+t.length&&(t=n.values(t)),t[n.random(t.length-1)]):n.shuffle(t).slice(0,Math.max(0,i))};e=function(t){return t==null?n.identity:n.isFunction(t)?t:n.property(t)};n.sortBy=function(t,i,r){return i=e(i),n.pluck(n.map(t,function(n,t,u){return{value:n,index:t,criteria:i.call(r,n,t,u)}}).sort(function(n,t){var i=n.criteria,r=t.criteria;if(i!==r){if(i>r||i===void 0)return 1;if(i<r||r===void 0)return-1}return n.index-t.index}),"value")};c=function(n){return function(i,r,u){var f={};return r=e(r),t(i,function(t,e){var o=r.call(u,t,e,i);n(f,o,t)}),f}};n.groupBy=c(function(t,i,r){n.has(t,i)?t[i].push(r):t[i]=[r]});n.indexBy=c(function(n,t,i){n[t]=i});n.countBy=c(function(t,i){n.has(t,i)?t[i]++:t[i]=1});n.sortedIndex=function(n,t,i,r){var f;i=e(i);for(var s=i.call(r,t),u=0,o=n.length;u<o;)f=u+o>>>1,i.call(r,n[f])<s?u=f+1:o=f;return u};n.toArray=function(t){return t?n.isArray(t)?i.call(t):t.length===+t.length?n.map(t,n.identity):n.values(t):[]};n.size=function(t){return t==null?0:t.length===+t.length?t.length:n.keys(t).length};n.first=n.head=n.take=function(n,t,r){if(n!=null)return t==null||r?n[0]:t<0?[]:i.call(n,0,t)};n.initial=function(n,t,r){return i.call(n,0,n.length-(t==null||r?1:t))};n.last=function(n,t,r){if(n!=null)return t==null||r?n[n.length-1]:i.call(n,Math.max(n.length-t,0))};n.rest=n.tail=n.drop=function(n,t,r){return i.call(n,t==null||r?1:t)};n.compact=function(t){return n.filter(t,n.identity)};k=function(i,r,u){return r&&n.every(i,n.isArray)?s.apply(u,i):(t(i,function(t){n.isArray(t)||n.isArguments(t)?r?nt.apply(u,t):k(t,r,u):u.push(t)}),u)};n.flatten=function(n,t){return k(n,t,[])};n.without=function(t){return n.difference(t,i.call(arguments,1))};n.partition=function(n,i,r){i=e(i);var u=[],f=[];return t(n,function(n){(i.call(r,n)?u:f).push(n)}),[u,f]};n.uniq=n.unique=function(i,r,u,f){n.isFunction(r)&&(f=u,u=r,r=!1);var s=u?n.map(i,u,f):i,o=[],e=[];return t(s,function(t,u){(r?u&&e[e.length-1]===t:n.contains(e,t))||(e.push(t),o.push(i[u]))}),o};n.union=function(){return n.uniq(n.flatten(arguments,!0))};n.intersection=function(t){var r=i.call(arguments,1);return n.filter(n.uniq(t),function(t){return n.every(r,function(i){return n.contains(i,t)})})};n.difference=function(t){var u=s.apply(r,i.call(arguments,1));return n.filter(t,function(t){return!n.contains(u,t)})};n.zip=function(){for(var i=n.max(n.pluck(arguments,"length").concat(0)),r=new Array(i),t=0;t<i;t++)r[t]=n.pluck(arguments,""+t);return r};n.object=function(n,t){var r,i,u;if(n==null)return{};for(r={},i=0,u=n.length;i<u;i++)t?r[n[i]]=t[i]:r[n[i][0]]=n[i][1];return r};n.indexOf=function(t,i,r){if(t==null)return-1;var u=0,f=t.length;if(r)if(typeof r=="number")u=r<0?Math.max(0,f+r):r;else return u=n.sortedIndex(t,i),t[u]===i?u:-1;if(h&&t.indexOf===h)return t.indexOf(i,r);for(;u<f;u++)if(t[u]===i)return u;return-1};n.lastIndexOf=function(n,t,i){var u,r;if(n==null)return-1;if(u=i!=null,st&&n.lastIndexOf===st)return u?n.lastIndexOf(t,i):n.lastIndexOf(t);for(r=u?i:n.length;r--;)if(n[r]===t)return r;return-1};n.range=function(n,t,i){arguments.length<=1&&(t=n||0,n=0);i=arguments[2]||1;for(var r=Math.max(Math.ceil((t-n)/i),0),u=0,f=new Array(r);u<r;)f[u++]=n,n+=i;return f};l=function(){};n.bind=function(t,r){var u,f;if(p&&t.bind===p)return p.apply(t,i.call(arguments,1));if(!n.isFunction(t))throw new TypeError;return u=i.call(arguments,2),f=function(){var e,n;return(this instanceof f)?(l.prototype=t.prototype,e=new l,l.prototype=null,n=t.apply(e,u.concat(i.call(arguments))),Object(n)===n)?n:e:t.apply(r,u.concat(i.call(arguments)))}};n.partial=function(t){var r=i.call(arguments,1);return function(){for(var f=0,i=r.slice(),u=0,e=i.length;u<e;u++)i[u]===n&&(i[u]=arguments[f++]);while(f<arguments.length)i.push(arguments[f++]);return t.apply(this,i)}};n.bindAll=function(r){var u=i.call(arguments,1);if(u.length===0)throw new Error("bindAll must be passed function names");return t(u,function(t){r[t]=n.bind(r[t],r)}),r};n.memoize=function(t,i){var r={};return i||(i=n.identity),function(){var u=i.apply(this,arguments);return n.has(r,u)?r[u]:r[u]=t.apply(this,arguments)}};n.delay=function(n,t){var r=i.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)};n.defer=function(t){return n.delay.apply(n,[t,1].concat(i.call(arguments,1)))};n.throttle=function(t,i,r){var u,f,s,e=null,o=0,h;return r||(r={}),h=function(){o=r.leading===!1?0:n.now();e=null;s=t.apply(u,f);u=f=null},function(){var c=n.now(),l;return o||r.leading!==!1||(o=c),l=i-(c-o),u=this,f=arguments,l<=0?(clearTimeout(e),e=null,o=c,s=t.apply(u,f),u=f=null):e||r.trailing===!1||(e=setTimeout(h,l)),s}};n.debounce=function(t,i,r){var u,f,e,s,o,h=function(){var c=n.now()-s;c<i?u=setTimeout(h,i-c):(u=null,r||(o=t.apply(e,f),e=f=null))};return function(){e=this;f=arguments;s=n.now();var c=r&&!u;return u||(u=setTimeout(h,i)),c&&(o=t.apply(e,f),e=f=null),o}};n.once=function(n){var i=!1,t;return function(){return i?t:(i=!0,t=n.apply(this,arguments),n=null,t)}};n.wrap=function(t,i){return n.partial(i,t)};n.compose=function(){var n=arguments;return function(){for(var i=arguments,t=n.length-1;t>=0;t--)i=[n[t].apply(this,i)];return i[0]}};n.after=function(n,t){return function(){if(--n<1)return t.apply(this,arguments)}};n.keys=function(t){var i,r;if(!n.isObject(t))return[];if(ht)return ht(t);i=[];for(r in t)n.has(t,r)&&i.push(r);return i};n.values=function(t){for(var r=n.keys(t),u=r.length,f=new Array(u),i=0;i<u;i++)f[i]=t[r[i]];return f};n.pairs=function(t){for(var r=n.keys(t),u=r.length,f=new Array(u),i=0;i<u;i++)f[i]=[r[i],t[r[i]]];return f};n.invert=function(t){for(var u={},r=n.keys(t),i=0,f=r.length;i<f;i++)u[t[r[i]]]=r[i];return u};n.functions=n.methods=function(t){var r=[],i;for(i in t)n.isFunction(t[i])&&r.push(i);return r.sort()};n.extend=function(n){return t(i.call(arguments,1),function(t){if(t)for(var i in t)n[i]=t[i]}),n};n.pick=function(n){var u={},f=s.apply(r,i.call(arguments,1));return t(f,function(t){t in n&&(u[t]=n[t])}),u};n.omit=function(t){var f={},e=s.apply(r,i.call(arguments,1)),u;for(u in t)n.contains(e,u)||(f[u]=t[u]);return f};n.defaults=function(n){return t(i.call(arguments,1),function(t){if(t)for(var i in t)n[i]===void 0&&(n[i]=t[i])}),n};n.clone=function(t){return n.isObject(t)?n.isArray(t)?t.slice():n.extend({},t):t};n.tap=function(n,t){return t(n),n};a=function(t,i,r,u){var l,v,h,c,e,o,s;if(t===i)return t!==0||1/t==1/i;if(t==null||i==null)return t===i;if(t instanceof n&&(t=t._wrapped),i instanceof n&&(i=i._wrapped),l=f.call(t),l!=f.call(i))return!1;switch(l){case"[object String]":return t==String(i);case"[object Number]":return t!=+t?i!=+i:t==0?1/t==1/i:t==+i;case"[object Date]":case"[object Boolean]":return+t==+i;case"[object RegExp]":return t.source==i.source&&t.global==i.global&&t.multiline==i.multiline&&t.ignoreCase==i.ignoreCase}if(typeof t!="object"||typeof i!="object")return!1;for(v=r.length;v--;)if(r[v]==t)return u[v]==i;if(h=t.constructor,c=i.constructor,h!==c&&!(n.isFunction(h)&&h instanceof h&&n.isFunction(c)&&c instanceof c)&&"constructor"in t&&"constructor"in i)return!1;if(r.push(t),u.push(i),e=0,o=!0,l=="[object Array]"){if(e=t.length,o=e==i.length,o)while(e--)if(!(o=a(t[e],i[e],r,u)))break}else{for(s in t)if(n.has(t,s)&&(e++,!(o=n.has(i,s)&&a(t[s],i[s],r,u))))break;if(o){for(s in i)if(n.has(i,s)&&!e--)break;o=!e}}return r.pop(),u.pop(),o};n.isEqual=function(n,t){return a(n,t,[],[])};n.isEmpty=function(t){if(t==null)return!0;if(n.isArray(t)||n.isString(t))return t.length===0;for(var i in t)if(n.has(t,i))return!1;return!0};n.isElement=function(n){return!!(n&&n.nodeType===1)};n.isArray=pt||function(n){return f.call(n)=="[object Array]"};n.isObject=function(n){return n===Object(n)};t(["Arguments","Function","String","Number","Date","RegExp"],function(t){n["is"+t]=function(n){return f.call(n)=="[object "+t+"]"}});n.isArguments(arguments)||(n.isArguments=function(t){return!!(t&&n.has(t,"callee"))});typeof/./!="function"&&(n.isFunction=function(n){return typeof n=="function"});n.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))};n.isNaN=function(t){return n.isNumber(t)&&t!=+t};n.isBoolean=function(n){return n===!0||n===!1||f.call(n)=="[object Boolean]"};n.isNull=function(n){return n===null};n.isUndefined=function(n){return n===void 0};n.has=function(n,t){return yt.call(n,t)};n.noConflict=function(){return y._=at,this};n.identity=function(n){return n};n.constant=function(n){return function(){return n}};n.property=function(n){return function(t){return t[n]}};n.matches=function(n){return function(t){if(t===n)return!0;for(var i in n)if(n[i]!==t[i])return!1;return!0}};n.times=function(n,t,i){for(var u=Array(Math.max(0,n)),r=0;r<n;r++)u[r]=t.call(i,r);return u};n.random=function(n,t){return t==null&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))};n.now=Date.now||function(){return(new Date).getTime()};u={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;"}};u.unescape=n.invert(u.escape);ct={escape:new RegExp("["+n.keys(u.escape).join("")+"]","g"),unescape:new RegExp("("+n.keys(u.unescape).join("|")+")","g")};n.each(["escape","unescape"],function(t){n[t]=function(n){return n==null?"":(""+n).replace(ct[t],function(n){return u[t][n]})}});n.result=function(t,i){if(t==null)return void 0;var r=t[i];return n.isFunction(r)?r.call(t):r};n.mixin=function(i){t(n.functions(i),function(t){var r=n[t]=i[t];n.prototype[t]=function(){var t=[this._wrapped];return nt.apply(t,arguments),v.call(this,r.apply(n,t))}})};lt=0;n.uniqueId=function(n){var t=++lt+"";return n?n+t:t};n.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var d=/(.)^/,wt={"'":"'","\\":"\\","\r":"r","\n":"n","\t":"t","\u2028":"u2028","\u2029":"u2029"},bt=/\\|'|\r|\n|\t|\u2028|\u2029/g;n.template=function(t,i,r){var f,e;r=n.defaults({},r,n.templateSettings);var h=new RegExp([(r.escape||d).source,(r.interpolate||d).source,(r.evaluate||d).source].join("|")+"|$","g"),o=0,u="__p+='";t.replace(h,function(n,i,r,f,e){return u+=t.slice(o,e).replace(bt,function(n){return"\\"+wt[n]}),i&&(u+="'+\n((__t=("+i+"))==null?'':_.escape(__t))+\n'"),r&&(u+="'+\n((__t=("+r+"))==null?'':__t)+\n'"),f&&(u+="';\n"+f+"\n__p+='"),o=e+n.length,n});u+="';\n";r.variable||(u="with(obj||{}){\n"+u+"}\n");u="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+u+"return __p;\n";try{f=new Function(r.variable||"obj","_",u)}catch(s){s.source=u;throw s;}return i?f(i,n):(e=function(t){return f.call(this,t,n)},e.source="function("+(r.variable||"obj")+"){\n"+u+"}",e)};n.chain=function(t){return n(t).chain()};v=function(t){return this._chain?n(t).chain():t};n.mixin(n);t(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var i=r[t];n.prototype[t]=function(){var n=this._wrapped;return i.apply(n,arguments),(t=="shift"||t=="splice")&&n.length===0&&delete n[0],v.call(this,n)}});t(["concat","join","slice"],function(t){var i=r[t];n.prototype[t]=function(){return v.call(this,i.apply(this._wrapped,arguments))}});n.extend(n.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}});typeof define=="function"&&define.amd&&define("underscore",[],function(){return n})}).call(this)