/* @preserve Brauhaus.js Beer Calculator Copyright 2014 Daniel G. Taylor https://github.com/homebrewing/brauhausjs */ var Brauhaus,tanh,__hasProp={}.hasOwnProperty,__indexOf=[].indexOf||function(t){for(var e=0,i=this.length;i>e;e++)if(e in this&&this[e]===t)return e;return-1},__extends=function(t,e){function i(){this.constructor=t}for(var r in e)__hasProp.call(e,r)&&(t[r]=e[r]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t};tanh=function(t){return(Math.exp(t)-Math.exp(-t))/(Math.exp(t)+Math.exp(-t))},Brauhaus="undefined"!=typeof exports&&null!==exports&&exports||(this.Brauhaus={}),Brauhaus.ROOM_TEMP=23,Brauhaus.BURNER_ENERGY=9e3,Brauhaus.MASH_HEAT_LOSS=5,Brauhaus.COLOR_NAMES=[[2,"pale straw"],[3,"straw"],[4,"yellow"],[6,"gold"],[9,"amber"],[14,"deep amber"],[17,"copper"],[18,"deep copper"],[22,"brown"],[30,"dark brown"],[35,"very dark brown"],[40,"black"]],Brauhaus.RELATIVE_SUGAR_DENSITY={cornSugar:1,dme:1.62,honey:.71,sugar:.88},Brauhaus.parseDuration=function(t){var e,i,r,a,s,o,n,h,u,p,l,c;if(i=0,!isNaN(t))return t;for(u=t.match(/(\d+)\s*w/i),e=t.match(/(\d+)\s*d/i),s=t.match(/(\d+)\s*h/i),o=t.match(/(\d+)\s*m/i),n=t.match(/(\d+)\s*s/i),a=[[u,10080],[e,1440],[s,60],[o,1],[n,1/60]],p=0,l=a.length;l>p;p++)c=a[p],h=c[0],r=c[1],h&&(i+=parseInt(h[1])*r);return i},Brauhaus.displayDuration=function(t,e){var i,r,a,s,o,n,h,u,p,l;for(a=[],o=[["month",43200],["week",10080],["day",1440],["hour",60],["minute",1]],r=0,h=0,u=o.length;u>h&&(p=o[h],n=p[0],s=p[1],i=1===s||null!=e&&r===e-1?Math.round(t/s):Math.floor(t/s),t%=s,(i>0||r>0)&&r++,!(null!=e&&r>e));h++)i>0&&a.push(""+i+" "+n+(null!=(l=1!==i?"s":void 0)?l:""));return a.length||(a=["start"]),a.join(" ")},Brauhaus.kgToLb=function(t){return 2.20462*t},Brauhaus.lbToKg=function(t){return t/2.20462},Brauhaus.kgToLbOz=function(t){var e;return e=Brauhaus.kgToLb(t),{lb:Math.floor(e),oz:16*(e-Math.floor(e))}},Brauhaus.lbOzToKg=function(t,e){return Brauhaus.lbToKg(t+e/16)},Brauhaus.litersToGallons=function(t){return.264172*t},Brauhaus.gallonsToLiters=function(t){return t/.264172},Brauhaus.litersPerKgToQuartsPerLb=function(t){return.479305709*t},Brauhaus.quartsPerLbToLitersPerKg=function(t){return t/.479305709},Brauhaus.cToF=function(t){return 1.8*t+32},Brauhaus.fToC=function(t){return(t-32)/1.8},Brauhaus.yieldToPpg=function(t){return.46214*t},Brauhaus.ppgToYield=function(t){return 2.16385*t},Brauhaus.srmToEbc=function(t){return 1.97*t},Brauhaus.ebcToSrm=function(t){return.508*t},Brauhaus.srmToLovibond=function(t){return(t+.76)/1.3546},Brauhaus.lovibondToSrm=function(t){return 1.3546*t-.76},Brauhaus.srmToRgb=function(t){var e,i,r;return r=Math.round(Math.min(255,Math.max(0,255*Math.pow(.975,t)))),i=Math.round(Math.min(255,Math.max(0,245*Math.pow(.88,t)))),e=Math.round(Math.min(255,Math.max(0,220*Math.pow(.7,t)))),[r,i,e]},Brauhaus.srmToCss=function(t){var e,i,r,a;return a=Brauhaus.srmToRgb(t),r=a[0],i=a[1],e=a[2],"rgb("+r+", "+i+", "+e+")"},Brauhaus.srmToName=function(t){var e,i,r,a,s;for(e=Brauhaus.COLOR_NAMES[0][1],s=Brauhaus.COLOR_NAMES,r=0,a=s.length;a>r;r++)i=s[r],i[0]<=t&&(e=i[1]);return e},Brauhaus.timeToHeat=function(t,e){var i,r;return null==e&&(e=80),i=4.19*t*e,r=i/Brauhaus.BURNER_ENERGY*60},Brauhaus.OptionConstructor=function(){function t(t){var e,i,r;"string"==typeof t&&(t=JSON.parse(t)),i=Object.keys(this._paramMap);for(r in t)if(__hasProp.call(t,r))if(__indexOf.call(i,r)>=0){if(null===t[r])continue;this[r]=t[r]instanceof Array?function(){var i,a,s,o;for(s=t[r],o=[],i=0,a=s.length;a>i;i++)e=s[i],o.push(e instanceof this._paramMap[r]?e:new this._paramMap[r](e));return o}.call(this):t[r]instanceof this._paramMap[r]?t[r]:new this._paramMap[r](t[r])}else this[r]=t[r]}return t.prototype._paramMap={},t}(),Brauhaus.Ingredient=function(t){function e(t){this.name="New "+this.constructor.name,e.__super__.constructor.call(this,t)}return __extends(e,t),e.prototype.nameRegex=function(t){var e,i,r,a;if(i=!1,"string"==typeof t)i=t.exec(this.name);else for(r=0,a=t.length;a>r;r++)if(e=t[r],Array.isArray(e)&&2===e.length){if(e[0].exec(this.name)){i=e[1];break}}else{if("string"!=typeof e)throw new Error("Invalid regex input!");i=e.exec(this.name)}return i},e}(Brauhaus.OptionConstructor),Brauhaus.Fermentable=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return __extends(e,t),e.STEEP=/biscuit|black|cara|chocolate|crystal|munich|roast|special ?b|toast|victory|vienna/i,e.BOIL=/candi|candy|dme|dry|extract|honey|lme|liquid|sugar|syrup|turbinado/i,e.prototype.weight=1,e.prototype["yield"]=75,e.prototype.color=2,e.prototype.late=!1,e.prototype.toJSON=function(){var t;return t={name:this.name,weight:this.weight,"yield":this["yield"],color:this.color,late:this.late}},e.prototype.type=function(){return this.nameRegex([[Brauhaus.Fermentable.BOIL,"extract"],[/.*/,"grain"]])},e.prototype.addition=function(){return this.nameRegex([[/mash/i,"mash"],[/steep/i,"steep"],[/boil/i,"boil"],[Brauhaus.Fermentable.BOIL,"boil"],[Brauhaus.Fermentable.STEEP,"steep"],[/.*/,"mash"]])},e.prototype.weightLb=function(){return Brauhaus.kgToLb(this.weight)},e.prototype.weightLbOz=function(){return Brauhaus.kgToLbOz(this.weight)},e.prototype.ppg=function(){return Brauhaus.yieldToPpg(this["yield"])},e.prototype.plato=function(t){return null==t&&(t=1),259-259/(1+this.gu(t)/1e3)},e.prototype.gu=function(t){return null==t&&(t=1),this.ppg()*this.weightLb()/Brauhaus.litersToGallons(t)},e.prototype.colorRgb=function(){return Brauhaus.srmToRgb(this.color)},e.prototype.colorCss=function(){return Brauhaus.srmToCss(this.color)},e.prototype.colorName=function(){return Brauhaus.srmToName(this.color)},e.prototype.price=function(){var t;return t=this.nameRegex([[/dry|dme/i,8.8],[/liquid|lme/i,6.6],[/.*/i,4.4]]),this.weight*t},e}(Brauhaus.Ingredient),Brauhaus.Spice=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return __extends(e,t),e.DRY_SPICE=/primary|secondary|dry/i,e.prototype.weight=.025,e.prototype.aa=0,e.prototype.use="boil",e.prototype.time=60,e.prototype.form="pellet",e.prototype.toJSON=function(){var t;return t={name:this.name,weight:this.weight,aa:this.aa,use:this.use,time:this.time,form:this.form}},e.prototype.dry=function(){return Brauhaus.Spice.DRY_SPICE.exec(this.use)||!1},e.prototype.utilizationFactor=function(){return"pellet"===this.form?1.15:1},e.prototype.bitterness=function(t,e,i){var r,a,s;if("tinseth"===t)a=1.65*Math.pow(125e-6,e-1)*((1-Math.pow(Math.E,-.04*this.time))/4.15)*(this.aa/100*this.weight*1e6/i)*this.utilizationFactor();else{if("rager"!==t)throw new Error("Unknown IBU method '"+t+"'!");s=18.11+13.86*tanh((this.time-31.32)/18.27),r=Math.max(0,(e-1.05)/.2),a=100*this.weight*s*this.utilizationFactor()*this.aa/(i*(1+r))}return a},e.prototype.weightLb=function(){return Brauhaus.kgToLb(this.weight)},e.prototype.weightLbOz=function(){return Brauhaus.kgToLbOz(this.weight)},e.prototype.price=function(){var t;return t=this.nameRegex([[/.*/i,17.64]]),this.weight*t},e}(Brauhaus.Ingredient),Brauhaus.Yeast=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return __extends(e,t),e.prototype.type="ale",e.prototype.form="liquid",e.prototype.attenuation=75,e.prototype.toJSON=function(){var t;return t={name:this.name,type:this.type,form:this.form,attenuation:this.attenuation}},e.prototype.price=function(){return this.nameRegex([[/wyeast|white labs|wlp/i,7],[/.*/i,3.5]])},e}(Brauhaus.Ingredient),Brauhaus.MashStep=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return __extends(e,t),e.types=["Infusion","Temperature","Decoction"],e.prototype.name="Saccharification",e.prototype.type="Infusion",e.prototype.waterRatio=3,e.prototype.temp=68,e.prototype.endTemp=null,e.prototype.time=60,e.prototype.rampTime=null,e.prototype.toJSON=function(){var t;return t={name:this.name,type:this.type,waterRatio:this.waterRatio,temp:this.temp,endTemp:this.endTemp,time:this.time,rampTime:this.rampTime}},e.prototype.description=function(t,e){var i,r,a,s,o,n;switch(null==t&&(t=!0),r="",t?(i="l",a="l per kg",s=""+this.temp+"C",n=this.waterRatio):(i="qt",a="qt per lb",s=""+this.tempF()+"F",n=this.waterRatioQtPerLb()),null!=e?(t||(e=Brauhaus.kgToLb(e)),o=""+(n*e).toFixed(1)+i):o=""+n.toFixed(1)+a+" of grain",this.type){case"Infusion":r="Infuse "+o+" for "+this.time+" minutes at "+s;break;case"Temperature":r="Stop heating and hold for "+this.time+" minutes at "+s;break;case"Decoction":r="Add "+o+" boiled water to reach "+s+" and hold for "+this.time+" minutes";break;default:r="Unknown mash step type '"+this.type+"'!"}return r},e.prototype.waterRatioQtPerLb=function(){return Brauhaus.litersPerKgToQuartsPerLb(this.waterRatio)},e.prototype.tempF=function(){return Brauhaus.cToF(this.temp)},e.prototype.endTempF=function(){return Brauhaus.cToF(this.endTemp)},e}(Brauhaus.OptionConstructor),Brauhaus.Mash=function(t){function e(t){this.steps=[],e.__super__.constructor.call(this,t)}return __extends(e,t),e.prototype._paramMap={steps:Brauhaus.MashStep},e.prototype.name="",e.prototype.grainTemp=Brauhaus.ROOM_TEMP,e.prototype.spargeTemp=76,e.prototype.ph=null,e.prototype.notes="",e.prototype.steps=null,e.prototype.toJSON=function(){var t;return t={name:this.name,grainTemp:this.grainTemp,spargeTemp:this.spargeTemp,ph:this.ph,notes:this.notes,steps:this.steps}},e.prototype.grainTempF=function(){return Brauhaus.cToF(this.grainTemp)},e.prototype.spargeTempF=function(){return Brauhaus.cToF(this.spargeTemp)},e.prototype.addStep=function(t){return this.steps.push(new Brauhaus.MashStep(t))},e}(Brauhaus.OptionConstructor),Brauhaus.Recipe=function(t){function e(t){this.fermentables=[],this.spices=[],this.yeast=[],e.__super__.constructor.call(this,t)}return __extends(e,t),e.prototype.name="New Recipe",e.prototype.description="Recipe description",e.prototype.author="Anonymous Brewer",e.prototype.boilSize=10,e.prototype.batchSize=20,e.prototype.servingSize=.355,e.prototype.steepEfficiency=50,e.prototype.steepTime=20,e.prototype.mashEfficiency=75,e.prototype.style=null,e.prototype.ibuMethod="tinseth",e.prototype.fermentables=null,e.prototype.spices=null,e.prototype.yeast=null,e.prototype.mash=null,e.prototype.og=0,e.prototype.fg=0,e.prototype.color=0,e.prototype.ibu=0,e.prototype.abv=0,e.prototype.price=0,e.prototype.buToGu=0,e.prototype.bv=0,e.prototype.ogPlato=0,e.prototype.fgPlato=0,e.prototype.abw=0,e.prototype.realExtract=0,e.prototype.calories=0,e.prototype.bottlingTemp=0,e.prototype.bottlingPressure=0,e.prototype.primingCornSugar=0,e.prototype.primingSugar=0,e.prototype.primingHoney=0,e.prototype.primingDme=0,e.prototype.primaryDays=14,e.prototype.primaryTemp=20,e.prototype.secondaryDays=0,e.prototype.secondaryTemp=0,e.prototype.tertiaryDays=0,e.prototype.tertiaryTemp=0,e.prototype.agingDays=14,e.prototype.agingTemp=20,e.prototype.brewDayDuration=null,e.prototype.boilStartTime=null,e.prototype.boilEndTime=null,e.prototype.timelineMap=null,e.prototype._paramMap={fermentables:Brauhaus.Fermentable,spices:Brauhaus.Spice,yeast:Brauhaus.Yeast,mash:Brauhaus.Mash},e.prototype.toJSON=function(){var t;return t={name:this.name,description:this.description,author:this.author,boilSize:this.boilSize,batchSize:this.batchSize,servingSize:this.servingSize,steepEfficiency:this.steepEfficiency,steepTime:this.steepTime,mashEfficiency:this.mashEfficiency,style:this.style,ibuMethod:this.ibuMethod,fermentables:this.fermentables,spices:this.spices,yeast:this.yeast,mash:this.mash,bottlingTemp:this.bottlingTemp,bottlingPressure:this.bottlingPressure,primaryDays:this.primaryDays,primaryTemp:this.primaryTemp,secondaryDays:this.secondaryDays,secondaryTemp:this.secondaryTemp,tertiaryDays:this.tertiaryDays,tertiaryTemp:this.tertiaryTemp,agingDays:this.agingDays,agingTemp:this.agingTemp}},e.prototype.batchSizeGallons=function(){return Brauhaus.litersToGallons(this.batchSize)},e.prototype.boilSizeGallons=function(){return Brauhaus.litersToGallons(this.boilSize)},e.prototype.add=function(t,e){switch(t){case"fermentable":return this.fermentables.push(new Brauhaus.Fermentable(e));case"spice":case"hop":return this.spices.push(new Brauhaus.Spice(e));case"yeast":return this.yeast.push(new Brauhaus.Yeast(e))}},e.prototype.grainWeight=function(){var t,e,i,r,a;for(e=0,a=this.fermentables,i=0,r=a.length;r>i;i++)t=a[i],"grain"===t.type()&&(e+=t.weight);return e},e.prototype.bottleCount=function(){return Math.floor(this.batchSize/this.servingSize)},e.prototype.colorName=function(){return Brauhaus.srmToName(this.color)},e.prototype.scale=function(t,e){var i,r,a,s,o,n,h,u,p,l,c,m,y,f;for(a=1,n=1,y=this.fermentables,p=0,c=y.length;c>p;p++)o=y[p],s=function(){switch(o.addition()){case"steep":return this.steepEfficiency/100;case"mash":return this.mashEfficiency/100;default:return 1}}.call(this),o.late||(a+=o.gu(this.boilSize)*s/1e3),o.weight*=t/this.batchSize,o.late||(n+=o.gu(e)*s/1e3);for(f=this.spices,l=0,m=f.length;m>l;l++)if(h=f[l],h.aa&&h.time)switch(r=h.bitterness(this.ibuMethod,a,this.batchSize),this.ibuMethod){case"tinseth":h.weight=r*t/(1.65*Math.pow(125e-6,n-1)*((1-Math.pow(2.718,-.04*h.time))/4.15)*(h.aa/100)*1e6*h.utilizationFactor());break;case"rager":u=18.11+13.86*tanh((h.time-31.32)/18.27),i=Math.max(0,(n-1.05)/.2),h.weight=r/(100*u*h.utilizationFactor()*h.aa/(t*(1+i)))}else h.weight*=t/this.batchSize;return this.batchSize=t,this.boilSize=e},e.prototype.grade=function(){var t,e,i,r,a,s,o,n,h;for(e=0,""!==(s=this.name.toLowerCase())&&"new recipe"!==s&&"untitled"!==s&&(e+=1),""!==(o=this.description.toLowerCase())&&"recipe description"!==o&&(e+=1),""!==(n=this.author.toLowerCase())&&"anonymous brewer"!==n&&(e+=1),this.style&&(e+=.5),h=[this.fermentables,this.spices,this.yeast],r=0,a=h.length;a>r;r++)i=h[r],i.length&&(e+=1,t=function(t){var e;return""===(e=t.name.toLowerCase())||"new fermentable"===e||"new spice"===e||"new yeast"===e},i.filter(t).length||(e+=.5));return e},e.prototype.calculate=function(){var t,e,i,r,a,s,o,n,h,u,p,l,c,m,y,f,g,b,d,T,B,w,M,_,S;for(this.og=1,this.fg=0,this.ibu=0,this.price=0,i=1,n=0,t=0,this.timelineMap={fermentables:{mash:[],steep:[],boil:[],boilEnd:[]},times:{},drySpice:{},yeast:[]},M=this.fermentables,g=0,T=M.length;T>g;g++)switch(a=M[g],r=function(){switch(a.addition()){case"steep":return this.steepEfficiency/100;case"mash":return this.mashEfficiency/100;default:return 1}}.call(this),n+=a.color*a.weightLb()/this.batchSizeGallons(),o=a.gu(this.batchSize)*r,s=o/1e3,this.og+=s,a.late||(i+=a.gu(this.boilSize)*r/1e3),this.price+=a.price(),a.addition()){case"boil":a.late?this.timelineMap.fermentables.boilEnd.push([a,o]):this.timelineMap.fermentables.boil.push([a,o]);break;case"steep":this.timelineMap.fermentables.steep.push([a,o]);break;case"mash":this.timelineMap.fermentables.mash.push([a,o])}for(this.color=1.4922*Math.pow(n,.6859),_=this.yeast,b=0,B=_.length;B>b;b++)m=_[b],m.attenuation>t&&(t=m.attenuation),this.price+=m.price(),this.timelineMap.yeast.push(m);for(0===t&&(t=75),this.fg=this.og-(this.og-1)*t/100,this.abv=1.05*(this.og-this.fg)/this.fg/.79*100,this.ogPlato=-463.37+668.72*this.og-205.35*this.og*this.og,this.fgPlato=-463.37+668.72*this.fg-205.35*this.fg*this.fg,this.realExtract=.1808*this.ogPlato+.8192*this.fgPlato,this.abw=.79*this.abv/this.fg,this.calories=Math.max(0,(6.9*this.abw+4*(this.realExtract-.1))*this.fg*this.servingSize*10),c=this.bottlingPressure||2.5,p=Brauhaus.cToF(this.bottlingTemp||Brauhaus.ROOM_TEMP),this.primingCornSugar=.075975*(c-3.0378+.050062*p-26555e-8*p*p),this.primingSugar=.90995*this.primingCornSugar,this.primingHoney=1.22496*this.primingCornSugar,this.primingDme=1.33249*this.primingCornSugar,S=this.spices,d=0,w=S.length;w>d;d++)u=S[d],e=0,l=u.time,u.aa&&"boil"===u.use.toLowerCase()&&(this.ibu+=u.bitterness(this.ibuMethod,i,this.batchSize)),this.price+=u.price(),u.dry()?(null==(y=this.timelineMap.drySpice)[l]&&(y[l]=[]),this.timelineMap.drySpice[l].push([u,e])):(null==(f=this.timelineMap.times)[l]&&(f[l]=[]),this.timelineMap.times[l].push([u,e]));return this.buToGu=this.ibu/(this.og-1)/1e3,h=1e3*(.82*(this.fg-1)+.18*(this.og-1)),this.bv=.8*this.ibu/h},e.prototype.timeline=function(t){var e,i,r,a,s,o,n,h,u,p,l,c,m,y,f,g,b,d,T,B,w,M,_,S,v,x,E,z,F,O,D,R,L,P,C,k,I,N,A,G,H,Y,U,q;if(null==t&&(t=!0),R=[],r="water",P=0,n=Brauhaus.ROOM_TEMP,f=0,u=function(e){var i,r,a,s,o,n,h,u,p;for(a=[],u=e||[],n=0,h=u.length;h>n;n++)p=u[n],i=p[0],r=p[1],t?o=""+i.weight.toFixed(1)+"kg":(s=i.weightLbOz(),o=""+parseInt(s.lb)+"lb "+parseInt(s.oz)+"oz"),a.push(""+o+" of "+i.name+" ("+r.toFixed(1)+" GU)");return a},T=function(e){var i,r,a,s,o,n,h,u,p;for(a=[],u=e||[],n=0,h=u.length;h>n;n++)p=u[n],s=p[0],r=p[1],o=t?""+parseInt(1e3*s.weight)+"g":""+(16*s.weightLb()).toFixed(2)+"oz",i="",r&&(i=" ("+r.toFixed(1)+" IBU)"),a.push(""+o+" of "+s.name+i);return a},this.timelineMap.fermentables.mash.length){for(r="wort",g=this.mash,null==g&&(g=new Brauhaus.Mash),m=u(this.timelineMap.fermentables.mash),R.push([P,"Begin "+g.name+" mash. Add "+m.join(", ")+"."]),v=(null!=(U=this.mash)?U.steps:void 0)||[new Brauhaus.MashStep({name:"Saccharification",type:"Infusion",time:60,rampTime:Brauhaus.timeToHeat(this.grainWeight(),68-n),temp:68,waterRatio:2.75})],A=0,H=v.length;H>A;A++)S=v[A],z=S.waterRatio*this.grainWeight()-f,S.temp!==n&&z>0?(x=.4184*(S.temp-n)*this.grainWeight()/z+S.temp,D=Brauhaus.timeToHeat(z,x-n),t?(F=""+z.toFixed(1)+"l",E=""+Math.round(x)+"°C"):(F=""+(4*Brauhaus.litersToGallons(z)).toFixed(1)+"qts",E=""+Math.round(Brauhaus.cToF(x))+"°F"),R.push([P,"Heat "+F+" to "+E+" (about "+Math.round(D)+" minutes)"]),f+=z,P+=D):S.temp!==n&&(D=Brauhaus.timeToHeat(f,S.temp-n),l=t?""+Math.round(S.temp)+"°C":""+Math.round(Brauhaus.cToF(S.temp))+"°F",R.push([P,"Heat the mash to "+l+" (about "+Math.round(D)+" minutes)"]),P+=D),R.push([P,""+S.name+": "+S.description(t,this.grainWeight())+"."]),P+=S.time,n=S.temp-S.time*Brauhaus.MASH_HEAT_LOSS/60;R.push([P,"Remove grains from mash. This is now your wort."]),P+=5}for(this.timelineMap.fermentables.steep.length&&(r="wort",_=function(){var t,e,i,r,a;for(i=this.timelineMap.fermentables.steep,a=[],t=0,e=i.length;e>t;t++)r=i[t],h=r[0],p=r[1],a.push(h.weight);return a}.call(this).reduce(function(t,e){return t+e}),B=Brauhaus.timeToHeat(2.75*_,68-n),n=68,f+=2.75*_,t?(M=""+(2.75*_).toFixed(1)+"l",w="68°C"):(M=""+Brauhaus.litersToGallons(2.75*_).toFixed(1)+"gal",w=""+Brauhaus.cToF(68).toFixed(1)+"°F"),R.push([P,"Heat "+M+" to "+w+" (about "+Math.round(B)+" minutes)"]),P+=B,m=u(this.timelineMap.fermentables.steep),R.push([P,"Add "+m.join(", ")+" and steep for "+this.steepTime+" minutes."]),P+=20),k=Math.min(1,f/this.boilSize),n=n*k+Brauhaus.ROOM_TEMP*(1-k),s=t?""+this.boilSize.toFixed(1)+"l":""+this.boilSizeGallons().toFixed(1)+"gal",e=this.boilSize-fG;c=++G)O=q[c],m=T(this.timelineMap.times[O]),0===c&&(m=u(this.timelineMap.fermentables.boil).concat(m),b=O),P+=b-O,b=O,5===O&&this.timelineMap.fermentables.boilEnd.length&&(m=u(this.timelineMap.fermentables.boilEnd).concat(m)),R.push([P,"Add "+m.join(", ")]);return P+=b,this.boilEndTime=P,o=t?""+this.primaryTemp+"°C":""+Brauhaus.cToF(this.primaryTemp)+"°F",R.push([P,"Flame out. Begin chilling to "+o+" and aerate the cooled wort (about 20 minutes)."]),P+=20,N=function(){var t,e,i,r;for(i=this.yeast,r=[],t=0,e=i.length;e>t;t++)I=i[t],r.push(I.name);return r}.call(this),!N.length&&this.primaryDays&&(N=["yeast"]),N.length&&R.push([P,"Pitch "+N.join(", ")+" and seal the fermenter. You should see bubbles in the airlock within 24 hours."]),this.brewDayDuration=P,this.primaryDays||this.secondaryDays||this.tertiaryDays?(P+=1440*this.primaryDays,this.secondaryDays?(R.push([P,"Move to secondary fermenter for "+Brauhaus.displayDuration(1440*this.secondaryDays,2)+"."]),P+=1440*this.secondaryDays):this.tertiaryDays&&(R.push([P,"Move to tertiary fermenter for "+Brauhaus.displayDuration(1440*this.tertiaryDays,2)+"."]),P+=1440*this.tertiaryDays),d="Prime and bottle about "+this.bottleCount()+" bottles.",this.agingDays&&(i=t?""+this.agingTemp+"C":""+Brauhaus.cToF(this.agingTemp)+"F",d+=" Age at "+i+" for "+this.agingDays+" days."),R.push([P,d]),P+=1440*this.agingDays,R.push([P,"Relax, don't worry and have a homebrew!"]),R):(R.push([P,"Drink immediately (about "+this.bottleCount()+" bottles)."]),R)},e}(Brauhaus.OptionConstructor);