@jeremyckahn/farmhand 1.19.2 → 1.19.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -295,7 +295,7 @@ should equal
295
295
  `),`
296
296
  `).concat(Xt.join(`
297
297
  `))}throw Ft}};function Ot(){for(var kt=arguments.length,It=new Array(kt),Pt=0;Pt<kt;Pt++)It[Pt]=arguments[Pt];Ct.apply(void 0,[Ot,It.length].concat(It))}return pt.strict=ct(Ot,pt,{equal:pt.strictEqual,deepEqual:pt.deepStrictEqual,notEqual:pt.notStrictEqual,notDeepEqual:pt.notDeepStrictEqual}),pt.strict.strict=pt.strict,assert$1.exports}function ZStream(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var zstream=ZStream,deflate$1={},common={};(function(o){var a=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";function s(_e,et){return Object.prototype.hasOwnProperty.call(_e,et)}o.assign=function(_e){for(var et=Array.prototype.slice.call(arguments,1);et.length;){var tt=et.shift();if(tt){if(typeof tt!="object")throw new TypeError(tt+"must be non-object");for(var rt in tt)s(tt,rt)&&(_e[rt]=tt[rt])}}return _e},o.shrinkBuf=function(_e,et){return _e.length===et?_e:_e.subarray?_e.subarray(0,et):(_e.length=et,_e)};var $={arraySet:function(_e,et,tt,rt,nt){if(et.subarray&&_e.subarray){_e.set(et.subarray(tt,tt+rt),nt);return}for(var it=0;it<rt;it++)_e[nt+it]=et[tt+it]},flattenChunks:function(_e){var et,tt,rt,nt,it,ot;for(rt=0,et=0,tt=_e.length;et<tt;et++)rt+=_e[et].length;for(ot=new Uint8Array(rt),nt=0,et=0,tt=_e.length;et<tt;et++)it=_e[et],ot.set(it,nt),nt+=it.length;return ot}},j={arraySet:function(_e,et,tt,rt,nt){for(var it=0;it<rt;it++)_e[nt+it]=et[tt+it]},flattenChunks:function(_e){return[].concat.apply([],_e)}};o.setTyped=function(_e){_e?(o.Buf8=Uint8Array,o.Buf16=Uint16Array,o.Buf32=Int32Array,o.assign(o,$)):(o.Buf8=Array,o.Buf16=Array,o.Buf32=Array,o.assign(o,j))},o.setTyped(a)})(common);var trees$1={},utils$3=common,Z_FIXED$1=4,Z_BINARY=0,Z_TEXT=1,Z_UNKNOWN$1=2;function zero$1(o){for(var a=o.length;--a>=0;)o[a]=0}var STORED_BLOCK=0,STATIC_TREES=1,DYN_TREES=2,MIN_MATCH$1=3,MAX_MATCH$1=258,LENGTH_CODES$1=29,LITERALS$1=256,L_CODES$1=LITERALS$1+1+LENGTH_CODES$1,D_CODES$1=30,BL_CODES$1=19,HEAP_SIZE$1=2*L_CODES$1+1,MAX_BITS$1=15,Buf_size=16,MAX_BL_BITS=7,END_BLOCK=256,REP_3_6=16,REPZ_3_10=17,REPZ_11_138=18,extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],DIST_CODE_LEN=512,static_ltree=new Array((L_CODES$1+2)*2);zero$1(static_ltree);var static_dtree=new Array(D_CODES$1*2);zero$1(static_dtree);var _dist_code=new Array(DIST_CODE_LEN);zero$1(_dist_code);var _length_code=new Array(MAX_MATCH$1-MIN_MATCH$1+1);zero$1(_length_code);var base_length=new Array(LENGTH_CODES$1);zero$1(base_length);var base_dist=new Array(D_CODES$1);zero$1(base_dist);function StaticTreeDesc(o,a,s,$,j){this.static_tree=o,this.extra_bits=a,this.extra_base=s,this.elems=$,this.max_length=j,this.has_stree=o&&o.length}var static_l_desc,static_d_desc,static_bl_desc;function TreeDesc(o,a){this.dyn_tree=o,this.max_code=0,this.stat_desc=a}function d_code(o){return o<256?_dist_code[o]:_dist_code[256+(o>>>7)]}function put_short(o,a){o.pending_buf[o.pending++]=a&255,o.pending_buf[o.pending++]=a>>>8&255}function send_bits(o,a,s){o.bi_valid>Buf_size-s?(o.bi_buf|=a<<o.bi_valid&65535,put_short(o,o.bi_buf),o.bi_buf=a>>Buf_size-o.bi_valid,o.bi_valid+=s-Buf_size):(o.bi_buf|=a<<o.bi_valid&65535,o.bi_valid+=s)}function send_code(o,a,s){send_bits(o,s[a*2],s[a*2+1])}function bi_reverse(o,a){var s=0;do s|=o&1,o>>>=1,s<<=1;while(--a>0);return s>>>1}function bi_flush(o){o.bi_valid===16?(put_short(o,o.bi_buf),o.bi_buf=0,o.bi_valid=0):o.bi_valid>=8&&(o.pending_buf[o.pending++]=o.bi_buf&255,o.bi_buf>>=8,o.bi_valid-=8)}function gen_bitlen(o,a){var s=a.dyn_tree,$=a.max_code,j=a.stat_desc.static_tree,_e=a.stat_desc.has_stree,et=a.stat_desc.extra_bits,tt=a.stat_desc.extra_base,rt=a.stat_desc.max_length,nt,it,ot,at,st,ut,ct=0;for(at=0;at<=MAX_BITS$1;at++)o.bl_count[at]=0;for(s[o.heap[o.heap_max]*2+1]=0,nt=o.heap_max+1;nt<HEAP_SIZE$1;nt++)it=o.heap[nt],at=s[s[it*2+1]*2+1]+1,at>rt&&(at=rt,ct++),s[it*2+1]=at,!(it>$)&&(o.bl_count[at]++,st=0,it>=tt&&(st=et[it-tt]),ut=s[it*2],o.opt_len+=ut*(at+st),_e&&(o.static_len+=ut*(j[it*2+1]+st)));if(ct!==0){do{for(at=rt-1;o.bl_count[at]===0;)at--;o.bl_count[at]--,o.bl_count[at+1]+=2,o.bl_count[rt]--,ct-=2}while(ct>0);for(at=rt;at!==0;at--)for(it=o.bl_count[at];it!==0;)ot=o.heap[--nt],!(ot>$)&&(s[ot*2+1]!==at&&(o.opt_len+=(at-s[ot*2+1])*s[ot*2],s[ot*2+1]=at),it--)}}function gen_codes(o,a,s){var $=new Array(MAX_BITS$1+1),j=0,_e,et;for(_e=1;_e<=MAX_BITS$1;_e++)$[_e]=j=j+s[_e-1]<<1;for(et=0;et<=a;et++){var tt=o[et*2+1];tt!==0&&(o[et*2]=bi_reverse($[tt]++,tt))}}function tr_static_init(){var o,a,s,$,j,_e=new Array(MAX_BITS$1+1);for(s=0,$=0;$<LENGTH_CODES$1-1;$++)for(base_length[$]=s,o=0;o<1<<extra_lbits[$];o++)_length_code[s++]=$;for(_length_code[s-1]=$,j=0,$=0;$<16;$++)for(base_dist[$]=j,o=0;o<1<<extra_dbits[$];o++)_dist_code[j++]=$;for(j>>=7;$<D_CODES$1;$++)for(base_dist[$]=j<<7,o=0;o<1<<extra_dbits[$]-7;o++)_dist_code[256+j++]=$;for(a=0;a<=MAX_BITS$1;a++)_e[a]=0;for(o=0;o<=143;)static_ltree[o*2+1]=8,o++,_e[8]++;for(;o<=255;)static_ltree[o*2+1]=9,o++,_e[9]++;for(;o<=279;)static_ltree[o*2+1]=7,o++,_e[7]++;for(;o<=287;)static_ltree[o*2+1]=8,o++,_e[8]++;for(gen_codes(static_ltree,L_CODES$1+1,_e),o=0;o<D_CODES$1;o++)static_dtree[o*2+1]=5,static_dtree[o*2]=bi_reverse(o,5);static_l_desc=new StaticTreeDesc(static_ltree,extra_lbits,LITERALS$1+1,L_CODES$1,MAX_BITS$1),static_d_desc=new StaticTreeDesc(static_dtree,extra_dbits,0,D_CODES$1,MAX_BITS$1),static_bl_desc=new StaticTreeDesc(new Array(0),extra_blbits,0,BL_CODES$1,MAX_BL_BITS)}function init_block(o){var a;for(a=0;a<L_CODES$1;a++)o.dyn_ltree[a*2]=0;for(a=0;a<D_CODES$1;a++)o.dyn_dtree[a*2]=0;for(a=0;a<BL_CODES$1;a++)o.bl_tree[a*2]=0;o.dyn_ltree[END_BLOCK*2]=1,o.opt_len=o.static_len=0,o.last_lit=o.matches=0}function bi_windup(o){o.bi_valid>8?put_short(o,o.bi_buf):o.bi_valid>0&&(o.pending_buf[o.pending++]=o.bi_buf),o.bi_buf=0,o.bi_valid=0}function copy_block(o,a,s,$){bi_windup(o),put_short(o,s),put_short(o,~s),utils$3.arraySet(o.pending_buf,o.window,a,s,o.pending),o.pending+=s}function smaller(o,a,s,$){var j=a*2,_e=s*2;return o[j]<o[_e]||o[j]===o[_e]&&$[a]<=$[s]}function pqdownheap(o,a,s){for(var $=o.heap[s],j=s<<1;j<=o.heap_len&&(j<o.heap_len&&smaller(a,o.heap[j+1],o.heap[j],o.depth)&&j++,!smaller(a,$,o.heap[j],o.depth));)o.heap[s]=o.heap[j],s=j,j<<=1;o.heap[s]=$}function compress_block(o,a,s){var $,j,_e=0,et,tt;if(o.last_lit!==0)do $=o.pending_buf[o.d_buf+_e*2]<<8|o.pending_buf[o.d_buf+_e*2+1],j=o.pending_buf[o.l_buf+_e],_e++,$===0?send_code(o,j,a):(et=_length_code[j],send_code(o,et+LITERALS$1+1,a),tt=extra_lbits[et],tt!==0&&(j-=base_length[et],send_bits(o,j,tt)),$--,et=d_code($),send_code(o,et,s),tt=extra_dbits[et],tt!==0&&($-=base_dist[et],send_bits(o,$,tt)));while(_e<o.last_lit);send_code(o,END_BLOCK,a)}function build_tree(o,a){var s=a.dyn_tree,$=a.stat_desc.static_tree,j=a.stat_desc.has_stree,_e=a.stat_desc.elems,et,tt,rt=-1,nt;for(o.heap_len=0,o.heap_max=HEAP_SIZE$1,et=0;et<_e;et++)s[et*2]!==0?(o.heap[++o.heap_len]=rt=et,o.depth[et]=0):s[et*2+1]=0;for(;o.heap_len<2;)nt=o.heap[++o.heap_len]=rt<2?++rt:0,s[nt*2]=1,o.depth[nt]=0,o.opt_len--,j&&(o.static_len-=$[nt*2+1]);for(a.max_code=rt,et=o.heap_len>>1;et>=1;et--)pqdownheap(o,s,et);nt=_e;do et=o.heap[1],o.heap[1]=o.heap[o.heap_len--],pqdownheap(o,s,1),tt=o.heap[1],o.heap[--o.heap_max]=et,o.heap[--o.heap_max]=tt,s[nt*2]=s[et*2]+s[tt*2],o.depth[nt]=(o.depth[et]>=o.depth[tt]?o.depth[et]:o.depth[tt])+1,s[et*2+1]=s[tt*2+1]=nt,o.heap[1]=nt++,pqdownheap(o,s,1);while(o.heap_len>=2);o.heap[--o.heap_max]=o.heap[1],gen_bitlen(o,a),gen_codes(s,rt,o.bl_count)}function scan_tree(o,a,s){var $,j=-1,_e,et=a[0*2+1],tt=0,rt=7,nt=4;for(et===0&&(rt=138,nt=3),a[(s+1)*2+1]=65535,$=0;$<=s;$++)_e=et,et=a[($+1)*2+1],!(++tt<rt&&_e===et)&&(tt<nt?o.bl_tree[_e*2]+=tt:_e!==0?(_e!==j&&o.bl_tree[_e*2]++,o.bl_tree[REP_3_6*2]++):tt<=10?o.bl_tree[REPZ_3_10*2]++:o.bl_tree[REPZ_11_138*2]++,tt=0,j=_e,et===0?(rt=138,nt=3):_e===et?(rt=6,nt=3):(rt=7,nt=4))}function send_tree(o,a,s){var $,j=-1,_e,et=a[0*2+1],tt=0,rt=7,nt=4;for(et===0&&(rt=138,nt=3),$=0;$<=s;$++)if(_e=et,et=a[($+1)*2+1],!(++tt<rt&&_e===et)){if(tt<nt)do send_code(o,_e,o.bl_tree);while(--tt!==0);else _e!==0?(_e!==j&&(send_code(o,_e,o.bl_tree),tt--),send_code(o,REP_3_6,o.bl_tree),send_bits(o,tt-3,2)):tt<=10?(send_code(o,REPZ_3_10,o.bl_tree),send_bits(o,tt-3,3)):(send_code(o,REPZ_11_138,o.bl_tree),send_bits(o,tt-11,7));tt=0,j=_e,et===0?(rt=138,nt=3):_e===et?(rt=6,nt=3):(rt=7,nt=4)}}function build_bl_tree(o){var a;for(scan_tree(o,o.dyn_ltree,o.l_desc.max_code),scan_tree(o,o.dyn_dtree,o.d_desc.max_code),build_tree(o,o.bl_desc),a=BL_CODES$1-1;a>=3&&o.bl_tree[bl_order[a]*2+1]===0;a--);return o.opt_len+=3*(a+1)+5+5+4,a}function send_all_trees(o,a,s,$){var j;for(send_bits(o,a-257,5),send_bits(o,s-1,5),send_bits(o,$-4,4),j=0;j<$;j++)send_bits(o,o.bl_tree[bl_order[j]*2+1],3);send_tree(o,o.dyn_ltree,a-1),send_tree(o,o.dyn_dtree,s-1)}function detect_data_type(o){var a=4093624447,s;for(s=0;s<=31;s++,a>>>=1)if(a&1&&o.dyn_ltree[s*2]!==0)return Z_BINARY;if(o.dyn_ltree[9*2]!==0||o.dyn_ltree[10*2]!==0||o.dyn_ltree[13*2]!==0)return Z_TEXT;for(s=32;s<LITERALS$1;s++)if(o.dyn_ltree[s*2]!==0)return Z_TEXT;return Z_BINARY}var static_init_done=!1;function _tr_init(o){static_init_done||(tr_static_init(),static_init_done=!0),o.l_desc=new TreeDesc(o.dyn_ltree,static_l_desc),o.d_desc=new TreeDesc(o.dyn_dtree,static_d_desc),o.bl_desc=new TreeDesc(o.bl_tree,static_bl_desc),o.bi_buf=0,o.bi_valid=0,init_block(o)}function _tr_stored_block(o,a,s,$){send_bits(o,(STORED_BLOCK<<1)+($?1:0),3),copy_block(o,a,s)}function _tr_align(o){send_bits(o,STATIC_TREES<<1,3),send_code(o,END_BLOCK,static_ltree),bi_flush(o)}function _tr_flush_block(o,a,s,$){var j,_e,et=0;o.level>0?(o.strm.data_type===Z_UNKNOWN$1&&(o.strm.data_type=detect_data_type(o)),build_tree(o,o.l_desc),build_tree(o,o.d_desc),et=build_bl_tree(o),j=o.opt_len+3+7>>>3,_e=o.static_len+3+7>>>3,_e<=j&&(j=_e)):j=_e=s+5,s+4<=j&&a!==-1?_tr_stored_block(o,a,s,$):o.strategy===Z_FIXED$1||_e===j?(send_bits(o,(STATIC_TREES<<1)+($?1:0),3),compress_block(o,static_ltree,static_dtree)):(send_bits(o,(DYN_TREES<<1)+($?1:0),3),send_all_trees(o,o.l_desc.max_code+1,o.d_desc.max_code+1,et+1),compress_block(o,o.dyn_ltree,o.dyn_dtree)),init_block(o),$&&bi_windup(o)}function _tr_tally(o,a,s){return o.pending_buf[o.d_buf+o.last_lit*2]=a>>>8&255,o.pending_buf[o.d_buf+o.last_lit*2+1]=a&255,o.pending_buf[o.l_buf+o.last_lit]=s&255,o.last_lit++,a===0?o.dyn_ltree[s*2]++:(o.matches++,a--,o.dyn_ltree[(_length_code[s]+LITERALS$1+1)*2]++,o.dyn_dtree[d_code(a)*2]++),o.last_lit===o.lit_bufsize-1}trees$1._tr_init=_tr_init;trees$1._tr_stored_block=_tr_stored_block;trees$1._tr_flush_block=_tr_flush_block;trees$1._tr_tally=_tr_tally;trees$1._tr_align=_tr_align;function adler32$2(o,a,s,$){for(var j=o&65535|0,_e=o>>>16&65535|0,et=0;s!==0;){et=s>2e3?2e3:s,s-=et;do j=j+a[$++]|0,_e=_e+j|0;while(--et);j%=65521,_e%=65521}return j|_e<<16|0}var adler32_1=adler32$2;function makeTable(){for(var o,a=[],s=0;s<256;s++){o=s;for(var $=0;$<8;$++)o=o&1?3988292384^o>>>1:o>>>1;a[s]=o}return a}var crcTable$1=makeTable();function crc32$2(o,a,s,$){var j=crcTable$1,_e=$+s;o^=-1;for(var et=$;et<_e;et++)o=o>>>8^j[(o^a[et])&255];return o^-1}var crc32_1=crc32$2,messages$1={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},utils$2=common,trees=trees$1,adler32$1=adler32_1,crc32$1=crc32_1,msg=messages$1,Z_NO_FLUSH=0,Z_PARTIAL_FLUSH=1,Z_FULL_FLUSH=3,Z_FINISH$1=4,Z_BLOCK$1=5,Z_OK$1=0,Z_STREAM_END$1=1,Z_STREAM_ERROR$1=-2,Z_DATA_ERROR$1=-3,Z_BUF_ERROR$1=-5,Z_DEFAULT_COMPRESSION=-1,Z_FILTERED=1,Z_HUFFMAN_ONLY=2,Z_RLE=3,Z_FIXED=4,Z_DEFAULT_STRATEGY=0,Z_UNKNOWN=2,Z_DEFLATED$1=8,MAX_MEM_LEVEL=9,MAX_WBITS$1=15,DEF_MEM_LEVEL=8,LENGTH_CODES=29,LITERALS=256,L_CODES=LITERALS+1+LENGTH_CODES,D_CODES=30,BL_CODES=19,HEAP_SIZE=2*L_CODES+1,MAX_BITS=15,MIN_MATCH=3,MAX_MATCH=258,MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1,PRESET_DICT=32,INIT_STATE=42,EXTRA_STATE=69,NAME_STATE=73,COMMENT_STATE=91,HCRC_STATE=103,BUSY_STATE=113,FINISH_STATE=666,BS_NEED_MORE=1,BS_BLOCK_DONE=2,BS_FINISH_STARTED=3,BS_FINISH_DONE=4,OS_CODE=3;function err(o,a){return o.msg=msg[a],a}function rank(o){return(o<<1)-(o>4?9:0)}function zero(o){for(var a=o.length;--a>=0;)o[a]=0}function flush_pending(o){var a=o.state,s=a.pending;s>o.avail_out&&(s=o.avail_out),s!==0&&(utils$2.arraySet(o.output,a.pending_buf,a.pending_out,s,o.next_out),o.next_out+=s,a.pending_out+=s,o.total_out+=s,o.avail_out-=s,a.pending-=s,a.pending===0&&(a.pending_out=0))}function flush_block_only(o,a){trees._tr_flush_block(o,o.block_start>=0?o.block_start:-1,o.strstart-o.block_start,a),o.block_start=o.strstart,flush_pending(o.strm)}function put_byte(o,a){o.pending_buf[o.pending++]=a}function putShortMSB(o,a){o.pending_buf[o.pending++]=a>>>8&255,o.pending_buf[o.pending++]=a&255}function read_buf(o,a,s,$){var j=o.avail_in;return j>$&&(j=$),j===0?0:(o.avail_in-=j,utils$2.arraySet(a,o.input,o.next_in,j,s),o.state.wrap===1?o.adler=adler32$1(o.adler,a,j,s):o.state.wrap===2&&(o.adler=crc32$1(o.adler,a,j,s)),o.next_in+=j,o.total_in+=j,j)}function longest_match(o,a){var s=o.max_chain_length,$=o.strstart,j,_e,et=o.prev_length,tt=o.nice_match,rt=o.strstart>o.w_size-MIN_LOOKAHEAD?o.strstart-(o.w_size-MIN_LOOKAHEAD):0,nt=o.window,it=o.w_mask,ot=o.prev,at=o.strstart+MAX_MATCH,st=nt[$+et-1],ut=nt[$+et];o.prev_length>=o.good_match&&(s>>=2),tt>o.lookahead&&(tt=o.lookahead);do if(j=a,!(nt[j+et]!==ut||nt[j+et-1]!==st||nt[j]!==nt[$]||nt[++j]!==nt[$+1])){$+=2,j++;do;while(nt[++$]===nt[++j]&&nt[++$]===nt[++j]&&nt[++$]===nt[++j]&&nt[++$]===nt[++j]&&nt[++$]===nt[++j]&&nt[++$]===nt[++j]&&nt[++$]===nt[++j]&&nt[++$]===nt[++j]&&$<at);if(_e=MAX_MATCH-(at-$),$=at-MAX_MATCH,_e>et){if(o.match_start=a,et=_e,_e>=tt)break;st=nt[$+et-1],ut=nt[$+et]}}while((a=ot[a&it])>rt&&--s!==0);return et<=o.lookahead?et:o.lookahead}function fill_window(o){var a=o.w_size,s,$,j,_e,et;do{if(_e=o.window_size-o.lookahead-o.strstart,o.strstart>=a+(a-MIN_LOOKAHEAD)){utils$2.arraySet(o.window,o.window,a,a,0),o.match_start-=a,o.strstart-=a,o.block_start-=a,$=o.hash_size,s=$;do j=o.head[--s],o.head[s]=j>=a?j-a:0;while(--$);$=a,s=$;do j=o.prev[--s],o.prev[s]=j>=a?j-a:0;while(--$);_e+=a}if(o.strm.avail_in===0)break;if($=read_buf(o.strm,o.window,o.strstart+o.lookahead,_e),o.lookahead+=$,o.lookahead+o.insert>=MIN_MATCH)for(et=o.strstart-o.insert,o.ins_h=o.window[et],o.ins_h=(o.ins_h<<o.hash_shift^o.window[et+1])&o.hash_mask;o.insert&&(o.ins_h=(o.ins_h<<o.hash_shift^o.window[et+MIN_MATCH-1])&o.hash_mask,o.prev[et&o.w_mask]=o.head[o.ins_h],o.head[o.ins_h]=et,et++,o.insert--,!(o.lookahead+o.insert<MIN_MATCH)););}while(o.lookahead<MIN_LOOKAHEAD&&o.strm.avail_in!==0)}function deflate_stored(o,a){var s=65535;for(s>o.pending_buf_size-5&&(s=o.pending_buf_size-5);;){if(o.lookahead<=1){if(fill_window(o),o.lookahead===0&&a===Z_NO_FLUSH)return BS_NEED_MORE;if(o.lookahead===0)break}o.strstart+=o.lookahead,o.lookahead=0;var $=o.block_start+s;if((o.strstart===0||o.strstart>=$)&&(o.lookahead=o.strstart-$,o.strstart=$,flush_block_only(o,!1),o.strm.avail_out===0)||o.strstart-o.block_start>=o.w_size-MIN_LOOKAHEAD&&(flush_block_only(o,!1),o.strm.avail_out===0))return BS_NEED_MORE}return o.insert=0,a===Z_FINISH$1?(flush_block_only(o,!0),o.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):(o.strstart>o.block_start&&(flush_block_only(o,!1),o.strm.avail_out===0),BS_NEED_MORE)}function deflate_fast(o,a){for(var s,$;;){if(o.lookahead<MIN_LOOKAHEAD){if(fill_window(o),o.lookahead<MIN_LOOKAHEAD&&a===Z_NO_FLUSH)return BS_NEED_MORE;if(o.lookahead===0)break}if(s=0,o.lookahead>=MIN_MATCH&&(o.ins_h=(o.ins_h<<o.hash_shift^o.window[o.strstart+MIN_MATCH-1])&o.hash_mask,s=o.prev[o.strstart&o.w_mask]=o.head[o.ins_h],o.head[o.ins_h]=o.strstart),s!==0&&o.strstart-s<=o.w_size-MIN_LOOKAHEAD&&(o.match_length=longest_match(o,s)),o.match_length>=MIN_MATCH)if($=trees._tr_tally(o,o.strstart-o.match_start,o.match_length-MIN_MATCH),o.lookahead-=o.match_length,o.match_length<=o.max_lazy_match&&o.lookahead>=MIN_MATCH){o.match_length--;do o.strstart++,o.ins_h=(o.ins_h<<o.hash_shift^o.window[o.strstart+MIN_MATCH-1])&o.hash_mask,s=o.prev[o.strstart&o.w_mask]=o.head[o.ins_h],o.head[o.ins_h]=o.strstart;while(--o.match_length!==0);o.strstart++}else o.strstart+=o.match_length,o.match_length=0,o.ins_h=o.window[o.strstart],o.ins_h=(o.ins_h<<o.hash_shift^o.window[o.strstart+1])&o.hash_mask;else $=trees._tr_tally(o,0,o.window[o.strstart]),o.lookahead--,o.strstart++;if($&&(flush_block_only(o,!1),o.strm.avail_out===0))return BS_NEED_MORE}return o.insert=o.strstart<MIN_MATCH-1?o.strstart:MIN_MATCH-1,a===Z_FINISH$1?(flush_block_only(o,!0),o.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):o.last_lit&&(flush_block_only(o,!1),o.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE}function deflate_slow(o,a){for(var s,$,j;;){if(o.lookahead<MIN_LOOKAHEAD){if(fill_window(o),o.lookahead<MIN_LOOKAHEAD&&a===Z_NO_FLUSH)return BS_NEED_MORE;if(o.lookahead===0)break}if(s=0,o.lookahead>=MIN_MATCH&&(o.ins_h=(o.ins_h<<o.hash_shift^o.window[o.strstart+MIN_MATCH-1])&o.hash_mask,s=o.prev[o.strstart&o.w_mask]=o.head[o.ins_h],o.head[o.ins_h]=o.strstart),o.prev_length=o.match_length,o.prev_match=o.match_start,o.match_length=MIN_MATCH-1,s!==0&&o.prev_length<o.max_lazy_match&&o.strstart-s<=o.w_size-MIN_LOOKAHEAD&&(o.match_length=longest_match(o,s),o.match_length<=5&&(o.strategy===Z_FILTERED||o.match_length===MIN_MATCH&&o.strstart-o.match_start>4096)&&(o.match_length=MIN_MATCH-1)),o.prev_length>=MIN_MATCH&&o.match_length<=o.prev_length){j=o.strstart+o.lookahead-MIN_MATCH,$=trees._tr_tally(o,o.strstart-1-o.prev_match,o.prev_length-MIN_MATCH),o.lookahead-=o.prev_length-1,o.prev_length-=2;do++o.strstart<=j&&(o.ins_h=(o.ins_h<<o.hash_shift^o.window[o.strstart+MIN_MATCH-1])&o.hash_mask,s=o.prev[o.strstart&o.w_mask]=o.head[o.ins_h],o.head[o.ins_h]=o.strstart);while(--o.prev_length!==0);if(o.match_available=0,o.match_length=MIN_MATCH-1,o.strstart++,$&&(flush_block_only(o,!1),o.strm.avail_out===0))return BS_NEED_MORE}else if(o.match_available){if($=trees._tr_tally(o,0,o.window[o.strstart-1]),$&&flush_block_only(o,!1),o.strstart++,o.lookahead--,o.strm.avail_out===0)return BS_NEED_MORE}else o.match_available=1,o.strstart++,o.lookahead--}return o.match_available&&($=trees._tr_tally(o,0,o.window[o.strstart-1]),o.match_available=0),o.insert=o.strstart<MIN_MATCH-1?o.strstart:MIN_MATCH-1,a===Z_FINISH$1?(flush_block_only(o,!0),o.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):o.last_lit&&(flush_block_only(o,!1),o.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE}function deflate_rle(o,a){for(var s,$,j,_e,et=o.window;;){if(o.lookahead<=MAX_MATCH){if(fill_window(o),o.lookahead<=MAX_MATCH&&a===Z_NO_FLUSH)return BS_NEED_MORE;if(o.lookahead===0)break}if(o.match_length=0,o.lookahead>=MIN_MATCH&&o.strstart>0&&(j=o.strstart-1,$=et[j],$===et[++j]&&$===et[++j]&&$===et[++j])){_e=o.strstart+MAX_MATCH;do;while($===et[++j]&&$===et[++j]&&$===et[++j]&&$===et[++j]&&$===et[++j]&&$===et[++j]&&$===et[++j]&&$===et[++j]&&j<_e);o.match_length=MAX_MATCH-(_e-j),o.match_length>o.lookahead&&(o.match_length=o.lookahead)}if(o.match_length>=MIN_MATCH?(s=trees._tr_tally(o,1,o.match_length-MIN_MATCH),o.lookahead-=o.match_length,o.strstart+=o.match_length,o.match_length=0):(s=trees._tr_tally(o,0,o.window[o.strstart]),o.lookahead--,o.strstart++),s&&(flush_block_only(o,!1),o.strm.avail_out===0))return BS_NEED_MORE}return o.insert=0,a===Z_FINISH$1?(flush_block_only(o,!0),o.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):o.last_lit&&(flush_block_only(o,!1),o.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE}function deflate_huff(o,a){for(var s;;){if(o.lookahead===0&&(fill_window(o),o.lookahead===0)){if(a===Z_NO_FLUSH)return BS_NEED_MORE;break}if(o.match_length=0,s=trees._tr_tally(o,0,o.window[o.strstart]),o.lookahead--,o.strstart++,s&&(flush_block_only(o,!1),o.strm.avail_out===0))return BS_NEED_MORE}return o.insert=0,a===Z_FINISH$1?(flush_block_only(o,!0),o.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):o.last_lit&&(flush_block_only(o,!1),o.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE}function Config(o,a,s,$,j){this.good_length=o,this.max_lazy=a,this.nice_length=s,this.max_chain=$,this.func=j}var configuration_table;configuration_table=[new Config(0,0,0,0,deflate_stored),new Config(4,4,8,4,deflate_fast),new Config(4,5,16,8,deflate_fast),new Config(4,6,32,32,deflate_fast),new Config(4,4,16,16,deflate_slow),new Config(8,16,32,32,deflate_slow),new Config(8,16,128,128,deflate_slow),new Config(8,32,128,256,deflate_slow),new Config(32,128,258,1024,deflate_slow),new Config(32,258,258,4096,deflate_slow)];function lm_init(o){o.window_size=2*o.w_size,zero(o.head),o.max_lazy_match=configuration_table[o.level].max_lazy,o.good_match=configuration_table[o.level].good_length,o.nice_match=configuration_table[o.level].nice_length,o.max_chain_length=configuration_table[o.level].max_chain,o.strstart=0,o.block_start=0,o.lookahead=0,o.insert=0,o.match_length=o.prev_length=MIN_MATCH-1,o.match_available=0,o.ins_h=0}function DeflateState(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Z_DEFLATED$1,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new utils$2.Buf16(HEAP_SIZE*2),this.dyn_dtree=new utils$2.Buf16((2*D_CODES+1)*2),this.bl_tree=new utils$2.Buf16((2*BL_CODES+1)*2),zero(this.dyn_ltree),zero(this.dyn_dtree),zero(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new utils$2.Buf16(MAX_BITS+1),this.heap=new utils$2.Buf16(2*L_CODES+1),zero(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new utils$2.Buf16(2*L_CODES+1),zero(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function deflateResetKeep(o){var a;return!o||!o.state?err(o,Z_STREAM_ERROR$1):(o.total_in=o.total_out=0,o.data_type=Z_UNKNOWN,a=o.state,a.pending=0,a.pending_out=0,a.wrap<0&&(a.wrap=-a.wrap),a.status=a.wrap?INIT_STATE:BUSY_STATE,o.adler=a.wrap===2?0:1,a.last_flush=Z_NO_FLUSH,trees._tr_init(a),Z_OK$1)}function deflateReset(o){var a=deflateResetKeep(o);return a===Z_OK$1&&lm_init(o.state),a}function deflateSetHeader(o,a){return!o||!o.state||o.state.wrap!==2?Z_STREAM_ERROR$1:(o.state.gzhead=a,Z_OK$1)}function deflateInit2(o,a,s,$,j,_e){if(!o)return Z_STREAM_ERROR$1;var et=1;if(a===Z_DEFAULT_COMPRESSION&&(a=6),$<0?(et=0,$=-$):$>15&&(et=2,$-=16),j<1||j>MAX_MEM_LEVEL||s!==Z_DEFLATED$1||$<8||$>15||a<0||a>9||_e<0||_e>Z_FIXED)return err(o,Z_STREAM_ERROR$1);$===8&&($=9);var tt=new DeflateState;return o.state=tt,tt.strm=o,tt.wrap=et,tt.gzhead=null,tt.w_bits=$,tt.w_size=1<<tt.w_bits,tt.w_mask=tt.w_size-1,tt.hash_bits=j+7,tt.hash_size=1<<tt.hash_bits,tt.hash_mask=tt.hash_size-1,tt.hash_shift=~~((tt.hash_bits+MIN_MATCH-1)/MIN_MATCH),tt.window=new utils$2.Buf8(tt.w_size*2),tt.head=new utils$2.Buf16(tt.hash_size),tt.prev=new utils$2.Buf16(tt.w_size),tt.lit_bufsize=1<<j+6,tt.pending_buf_size=tt.lit_bufsize*4,tt.pending_buf=new utils$2.Buf8(tt.pending_buf_size),tt.d_buf=1*tt.lit_bufsize,tt.l_buf=3*tt.lit_bufsize,tt.level=a,tt.strategy=_e,tt.method=s,deflateReset(o)}function deflateInit(o,a){return deflateInit2(o,a,Z_DEFLATED$1,MAX_WBITS$1,DEF_MEM_LEVEL,Z_DEFAULT_STRATEGY)}function deflate(o,a){var s,$,j,_e;if(!o||!o.state||a>Z_BLOCK$1||a<0)return o?err(o,Z_STREAM_ERROR$1):Z_STREAM_ERROR$1;if($=o.state,!o.output||!o.input&&o.avail_in!==0||$.status===FINISH_STATE&&a!==Z_FINISH$1)return err(o,o.avail_out===0?Z_BUF_ERROR$1:Z_STREAM_ERROR$1);if($.strm=o,s=$.last_flush,$.last_flush=a,$.status===INIT_STATE)if($.wrap===2)o.adler=0,put_byte($,31),put_byte($,139),put_byte($,8),$.gzhead?(put_byte($,($.gzhead.text?1:0)+($.gzhead.hcrc?2:0)+($.gzhead.extra?4:0)+($.gzhead.name?8:0)+($.gzhead.comment?16:0)),put_byte($,$.gzhead.time&255),put_byte($,$.gzhead.time>>8&255),put_byte($,$.gzhead.time>>16&255),put_byte($,$.gzhead.time>>24&255),put_byte($,$.level===9?2:$.strategy>=Z_HUFFMAN_ONLY||$.level<2?4:0),put_byte($,$.gzhead.os&255),$.gzhead.extra&&$.gzhead.extra.length&&(put_byte($,$.gzhead.extra.length&255),put_byte($,$.gzhead.extra.length>>8&255)),$.gzhead.hcrc&&(o.adler=crc32$1(o.adler,$.pending_buf,$.pending,0)),$.gzindex=0,$.status=EXTRA_STATE):(put_byte($,0),put_byte($,0),put_byte($,0),put_byte($,0),put_byte($,0),put_byte($,$.level===9?2:$.strategy>=Z_HUFFMAN_ONLY||$.level<2?4:0),put_byte($,OS_CODE),$.status=BUSY_STATE);else{var et=Z_DEFLATED$1+($.w_bits-8<<4)<<8,tt=-1;$.strategy>=Z_HUFFMAN_ONLY||$.level<2?tt=0:$.level<6?tt=1:$.level===6?tt=2:tt=3,et|=tt<<6,$.strstart!==0&&(et|=PRESET_DICT),et+=31-et%31,$.status=BUSY_STATE,putShortMSB($,et),$.strstart!==0&&(putShortMSB($,o.adler>>>16),putShortMSB($,o.adler&65535)),o.adler=1}if($.status===EXTRA_STATE)if($.gzhead.extra){for(j=$.pending;$.gzindex<($.gzhead.extra.length&65535)&&!($.pending===$.pending_buf_size&&($.gzhead.hcrc&&$.pending>j&&(o.adler=crc32$1(o.adler,$.pending_buf,$.pending-j,j)),flush_pending(o),j=$.pending,$.pending===$.pending_buf_size));)put_byte($,$.gzhead.extra[$.gzindex]&255),$.gzindex++;$.gzhead.hcrc&&$.pending>j&&(o.adler=crc32$1(o.adler,$.pending_buf,$.pending-j,j)),$.gzindex===$.gzhead.extra.length&&($.gzindex=0,$.status=NAME_STATE)}else $.status=NAME_STATE;if($.status===NAME_STATE)if($.gzhead.name){j=$.pending;do{if($.pending===$.pending_buf_size&&($.gzhead.hcrc&&$.pending>j&&(o.adler=crc32$1(o.adler,$.pending_buf,$.pending-j,j)),flush_pending(o),j=$.pending,$.pending===$.pending_buf_size)){_e=1;break}$.gzindex<$.gzhead.name.length?_e=$.gzhead.name.charCodeAt($.gzindex++)&255:_e=0,put_byte($,_e)}while(_e!==0);$.gzhead.hcrc&&$.pending>j&&(o.adler=crc32$1(o.adler,$.pending_buf,$.pending-j,j)),_e===0&&($.gzindex=0,$.status=COMMENT_STATE)}else $.status=COMMENT_STATE;if($.status===COMMENT_STATE)if($.gzhead.comment){j=$.pending;do{if($.pending===$.pending_buf_size&&($.gzhead.hcrc&&$.pending>j&&(o.adler=crc32$1(o.adler,$.pending_buf,$.pending-j,j)),flush_pending(o),j=$.pending,$.pending===$.pending_buf_size)){_e=1;break}$.gzindex<$.gzhead.comment.length?_e=$.gzhead.comment.charCodeAt($.gzindex++)&255:_e=0,put_byte($,_e)}while(_e!==0);$.gzhead.hcrc&&$.pending>j&&(o.adler=crc32$1(o.adler,$.pending_buf,$.pending-j,j)),_e===0&&($.status=HCRC_STATE)}else $.status=HCRC_STATE;if($.status===HCRC_STATE&&($.gzhead.hcrc?($.pending+2>$.pending_buf_size&&flush_pending(o),$.pending+2<=$.pending_buf_size&&(put_byte($,o.adler&255),put_byte($,o.adler>>8&255),o.adler=0,$.status=BUSY_STATE)):$.status=BUSY_STATE),$.pending!==0){if(flush_pending(o),o.avail_out===0)return $.last_flush=-1,Z_OK$1}else if(o.avail_in===0&&rank(a)<=rank(s)&&a!==Z_FINISH$1)return err(o,Z_BUF_ERROR$1);if($.status===FINISH_STATE&&o.avail_in!==0)return err(o,Z_BUF_ERROR$1);if(o.avail_in!==0||$.lookahead!==0||a!==Z_NO_FLUSH&&$.status!==FINISH_STATE){var rt=$.strategy===Z_HUFFMAN_ONLY?deflate_huff($,a):$.strategy===Z_RLE?deflate_rle($,a):configuration_table[$.level].func($,a);if((rt===BS_FINISH_STARTED||rt===BS_FINISH_DONE)&&($.status=FINISH_STATE),rt===BS_NEED_MORE||rt===BS_FINISH_STARTED)return o.avail_out===0&&($.last_flush=-1),Z_OK$1;if(rt===BS_BLOCK_DONE&&(a===Z_PARTIAL_FLUSH?trees._tr_align($):a!==Z_BLOCK$1&&(trees._tr_stored_block($,0,0,!1),a===Z_FULL_FLUSH&&(zero($.head),$.lookahead===0&&($.strstart=0,$.block_start=0,$.insert=0))),flush_pending(o),o.avail_out===0))return $.last_flush=-1,Z_OK$1}return a!==Z_FINISH$1?Z_OK$1:$.wrap<=0?Z_STREAM_END$1:($.wrap===2?(put_byte($,o.adler&255),put_byte($,o.adler>>8&255),put_byte($,o.adler>>16&255),put_byte($,o.adler>>24&255),put_byte($,o.total_in&255),put_byte($,o.total_in>>8&255),put_byte($,o.total_in>>16&255),put_byte($,o.total_in>>24&255)):(putShortMSB($,o.adler>>>16),putShortMSB($,o.adler&65535)),flush_pending(o),$.wrap>0&&($.wrap=-$.wrap),$.pending!==0?Z_OK$1:Z_STREAM_END$1)}function deflateEnd(o){var a;return!o||!o.state?Z_STREAM_ERROR$1:(a=o.state.status,a!==INIT_STATE&&a!==EXTRA_STATE&&a!==NAME_STATE&&a!==COMMENT_STATE&&a!==HCRC_STATE&&a!==BUSY_STATE&&a!==FINISH_STATE?err(o,Z_STREAM_ERROR$1):(o.state=null,a===BUSY_STATE?err(o,Z_DATA_ERROR$1):Z_OK$1))}function deflateSetDictionary(o,a){var s=a.length,$,j,_e,et,tt,rt,nt,it;if(!o||!o.state||($=o.state,et=$.wrap,et===2||et===1&&$.status!==INIT_STATE||$.lookahead))return Z_STREAM_ERROR$1;for(et===1&&(o.adler=adler32$1(o.adler,a,s,0)),$.wrap=0,s>=$.w_size&&(et===0&&(zero($.head),$.strstart=0,$.block_start=0,$.insert=0),it=new utils$2.Buf8($.w_size),utils$2.arraySet(it,a,s-$.w_size,$.w_size,0),a=it,s=$.w_size),tt=o.avail_in,rt=o.next_in,nt=o.input,o.avail_in=s,o.next_in=0,o.input=a,fill_window($);$.lookahead>=MIN_MATCH;){j=$.strstart,_e=$.lookahead-(MIN_MATCH-1);do $.ins_h=($.ins_h<<$.hash_shift^$.window[j+MIN_MATCH-1])&$.hash_mask,$.prev[j&$.w_mask]=$.head[$.ins_h],$.head[$.ins_h]=j,j++;while(--_e);$.strstart=j,$.lookahead=MIN_MATCH-1,fill_window($)}return $.strstart+=$.lookahead,$.block_start=$.strstart,$.insert=$.lookahead,$.lookahead=0,$.match_length=$.prev_length=MIN_MATCH-1,$.match_available=0,o.next_in=rt,o.input=nt,o.avail_in=tt,$.wrap=et,Z_OK$1}deflate$1.deflateInit=deflateInit;deflate$1.deflateInit2=deflateInit2;deflate$1.deflateReset=deflateReset;deflate$1.deflateResetKeep=deflateResetKeep;deflate$1.deflateSetHeader=deflateSetHeader;deflate$1.deflate=deflate;deflate$1.deflateEnd=deflateEnd;deflate$1.deflateSetDictionary=deflateSetDictionary;deflate$1.deflateInfo="pako deflate (from Nodeca project)";var inflate$1={},BAD$1=30,TYPE$1=12,inffast=function o(a,s){var $,j,_e,et,tt,rt,nt,it,ot,at,st,ut,ct,ft,dt,mt,vt,yt,pt,ht,At,St,Ct,Mt,Dt;$=a.state,j=a.next_in,Mt=a.input,_e=j+(a.avail_in-5),et=a.next_out,Dt=a.output,tt=et-(s-a.avail_out),rt=et+(a.avail_out-257),nt=$.dmax,it=$.wsize,ot=$.whave,at=$.wnext,st=$.window,ut=$.hold,ct=$.bits,ft=$.lencode,dt=$.distcode,mt=(1<<$.lenbits)-1,vt=(1<<$.distbits)-1;e:do{ct<15&&(ut+=Mt[j++]<<ct,ct+=8,ut+=Mt[j++]<<ct,ct+=8),yt=ft[ut&mt];t:for(;;){if(pt=yt>>>24,ut>>>=pt,ct-=pt,pt=yt>>>16&255,pt===0)Dt[et++]=yt&65535;else if(pt&16){ht=yt&65535,pt&=15,pt&&(ct<pt&&(ut+=Mt[j++]<<ct,ct+=8),ht+=ut&(1<<pt)-1,ut>>>=pt,ct-=pt),ct<15&&(ut+=Mt[j++]<<ct,ct+=8,ut+=Mt[j++]<<ct,ct+=8),yt=dt[ut&vt];r:for(;;){if(pt=yt>>>24,ut>>>=pt,ct-=pt,pt=yt>>>16&255,pt&16){if(At=yt&65535,pt&=15,ct<pt&&(ut+=Mt[j++]<<ct,ct+=8,ct<pt&&(ut+=Mt[j++]<<ct,ct+=8)),At+=ut&(1<<pt)-1,At>nt){a.msg="invalid distance too far back",$.mode=BAD$1;break e}if(ut>>>=pt,ct-=pt,pt=et-tt,At>pt){if(pt=At-pt,pt>ot&&$.sane){a.msg="invalid distance too far back",$.mode=BAD$1;break e}if(St=0,Ct=st,at===0){if(St+=it-pt,pt<ht){ht-=pt;do Dt[et++]=st[St++];while(--pt);St=et-At,Ct=Dt}}else if(at<pt){if(St+=it+at-pt,pt-=at,pt<ht){ht-=pt;do Dt[et++]=st[St++];while(--pt);if(St=0,at<ht){pt=at,ht-=pt;do Dt[et++]=st[St++];while(--pt);St=et-At,Ct=Dt}}}else if(St+=at-pt,pt<ht){ht-=pt;do Dt[et++]=st[St++];while(--pt);St=et-At,Ct=Dt}for(;ht>2;)Dt[et++]=Ct[St++],Dt[et++]=Ct[St++],Dt[et++]=Ct[St++],ht-=3;ht&&(Dt[et++]=Ct[St++],ht>1&&(Dt[et++]=Ct[St++]))}else{St=et-At;do Dt[et++]=Dt[St++],Dt[et++]=Dt[St++],Dt[et++]=Dt[St++],ht-=3;while(ht>2);ht&&(Dt[et++]=Dt[St++],ht>1&&(Dt[et++]=Dt[St++]))}}else if(pt&64){a.msg="invalid distance code",$.mode=BAD$1;break e}else{yt=dt[(yt&65535)+(ut&(1<<pt)-1)];continue r}break}}else if(pt&64)if(pt&32){$.mode=TYPE$1;break e}else{a.msg="invalid literal/length code",$.mode=BAD$1;break e}else{yt=ft[(yt&65535)+(ut&(1<<pt)-1)];continue t}break}}while(j<_e&&et<rt);ht=ct>>3,j-=ht,ct-=ht<<3,ut&=(1<<ct)-1,a.next_in=j,a.next_out=et,a.avail_in=j<_e?5+(_e-j):5-(j-_e),a.avail_out=et<rt?257+(rt-et):257-(et-rt),$.hold=ut,$.bits=ct},utils$1=common,MAXBITS=15,ENOUGH_LENS$1=852,ENOUGH_DISTS$1=592,CODES$1=0,LENS$1=1,DISTS$1=2,lbase=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],lext=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],dbase=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],dext=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64],inftrees=function o(a,s,$,j,_e,et,tt,rt){var nt=rt.bits,it=0,ot=0,at=0,st=0,ut=0,ct=0,ft=0,dt=0,mt=0,vt=0,yt,pt,ht,At,St,Ct=null,Mt=0,Dt,Et=new utils$1.Buf16(MAXBITS+1),wt=new utils$1.Buf16(MAXBITS+1),jt=null,Bt=0,Ht,Gt,Tt;for(it=0;it<=MAXBITS;it++)Et[it]=0;for(ot=0;ot<j;ot++)Et[s[$+ot]]++;for(ut=nt,st=MAXBITS;st>=1&&Et[st]===0;st--);if(ut>st&&(ut=st),st===0)return _e[et++]=1<<24|64<<16|0,_e[et++]=1<<24|64<<16|0,rt.bits=1,0;for(at=1;at<st&&Et[at]===0;at++);for(ut<at&&(ut=at),dt=1,it=1;it<=MAXBITS;it++)if(dt<<=1,dt-=Et[it],dt<0)return-1;if(dt>0&&(a===CODES$1||st!==1))return-1;for(wt[1]=0,it=1;it<MAXBITS;it++)wt[it+1]=wt[it]+Et[it];for(ot=0;ot<j;ot++)s[$+ot]!==0&&(tt[wt[s[$+ot]]++]=ot);if(a===CODES$1?(Ct=jt=tt,Dt=19):a===LENS$1?(Ct=lbase,Mt-=257,jt=lext,Bt-=257,Dt=256):(Ct=dbase,jt=dext,Dt=-1),vt=0,ot=0,it=at,St=et,ct=ut,ft=0,ht=-1,mt=1<<ut,At=mt-1,a===LENS$1&&mt>ENOUGH_LENS$1||a===DISTS$1&&mt>ENOUGH_DISTS$1)return 1;for(;;){Ht=it-ft,tt[ot]<Dt?(Gt=0,Tt=tt[ot]):tt[ot]>Dt?(Gt=jt[Bt+tt[ot]],Tt=Ct[Mt+tt[ot]]):(Gt=96,Tt=0),yt=1<<it-ft,pt=1<<ct,at=pt;do pt-=yt,_e[St+(vt>>ft)+pt]=Ht<<24|Gt<<16|Tt|0;while(pt!==0);for(yt=1<<it-1;vt&yt;)yt>>=1;if(yt!==0?(vt&=yt-1,vt+=yt):vt=0,ot++,--Et[it]===0){if(it===st)break;it=s[$+tt[ot]]}if(it>ut&&(vt&At)!==ht){for(ft===0&&(ft=ut),St+=at,ct=it-ft,dt=1<<ct;ct+ft<st&&(dt-=Et[ct+ft],!(dt<=0));)ct++,dt<<=1;if(mt+=1<<ct,a===LENS$1&&mt>ENOUGH_LENS$1||a===DISTS$1&&mt>ENOUGH_DISTS$1)return 1;ht=vt&At,_e[ht]=ut<<24|ct<<16|St-et|0}}return vt!==0&&(_e[St+vt]=it-ft<<24|64<<16|0),rt.bits=ut,0},utils=common,adler32=adler32_1,crc32=crc32_1,inflate_fast=inffast,inflate_table=inftrees,CODES=0,LENS=1,DISTS=2,Z_FINISH=4,Z_BLOCK=5,Z_TREES=6,Z_OK=0,Z_STREAM_END=1,Z_NEED_DICT=2,Z_STREAM_ERROR=-2,Z_DATA_ERROR=-3,Z_MEM_ERROR=-4,Z_BUF_ERROR=-5,Z_DEFLATED=8,HEAD=1,FLAGS=2,TIME=3,OS=4,EXLEN=5,EXTRA=6,NAME=7,COMMENT=8,HCRC=9,DICTID=10,DICT=11,TYPE=12,TYPEDO=13,STORED=14,COPY_=15,COPY$1=16,TABLE=17,LENLENS=18,CODELENS=19,LEN_=20,LEN=21,LENEXT=22,DIST=23,DISTEXT=24,MATCH=25,LIT=26,CHECK=27,LENGTH=28,DONE=29,BAD=30,MEM=31,SYNC=32,ENOUGH_LENS=852,ENOUGH_DISTS=592,MAX_WBITS=15,DEF_WBITS=MAX_WBITS;function zswap32(o){return(o>>>24&255)+(o>>>8&65280)+((o&65280)<<8)+((o&255)<<24)}function InflateState(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new utils.Buf16(320),this.work=new utils.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function inflateResetKeep(o){var a;return!o||!o.state?Z_STREAM_ERROR:(a=o.state,o.total_in=o.total_out=a.total=0,o.msg="",a.wrap&&(o.adler=a.wrap&1),a.mode=HEAD,a.last=0,a.havedict=0,a.dmax=32768,a.head=null,a.hold=0,a.bits=0,a.lencode=a.lendyn=new utils.Buf32(ENOUGH_LENS),a.distcode=a.distdyn=new utils.Buf32(ENOUGH_DISTS),a.sane=1,a.back=-1,Z_OK)}function inflateReset(o){var a;return!o||!o.state?Z_STREAM_ERROR:(a=o.state,a.wsize=0,a.whave=0,a.wnext=0,inflateResetKeep(o))}function inflateReset2(o,a){var s,$;return!o||!o.state||($=o.state,a<0?(s=0,a=-a):(s=(a>>4)+1,a<48&&(a&=15)),a&&(a<8||a>15))?Z_STREAM_ERROR:($.window!==null&&$.wbits!==a&&($.window=null),$.wrap=s,$.wbits=a,inflateReset(o))}function inflateInit2(o,a){var s,$;return o?($=new InflateState,o.state=$,$.window=null,s=inflateReset2(o,a),s!==Z_OK&&(o.state=null),s):Z_STREAM_ERROR}function inflateInit(o){return inflateInit2(o,DEF_WBITS)}var virgin=!0,lenfix,distfix;function fixedtables(o){if(virgin){var a;for(lenfix=new utils.Buf32(512),distfix=new utils.Buf32(32),a=0;a<144;)o.lens[a++]=8;for(;a<256;)o.lens[a++]=9;for(;a<280;)o.lens[a++]=7;for(;a<288;)o.lens[a++]=8;for(inflate_table(LENS,o.lens,0,288,lenfix,0,o.work,{bits:9}),a=0;a<32;)o.lens[a++]=5;inflate_table(DISTS,o.lens,0,32,distfix,0,o.work,{bits:5}),virgin=!1}o.lencode=lenfix,o.lenbits=9,o.distcode=distfix,o.distbits=5}function updatewindow(o,a,s,$){var j,_e=o.state;return _e.window===null&&(_e.wsize=1<<_e.wbits,_e.wnext=0,_e.whave=0,_e.window=new utils.Buf8(_e.wsize)),$>=_e.wsize?(utils.arraySet(_e.window,a,s-_e.wsize,_e.wsize,0),_e.wnext=0,_e.whave=_e.wsize):(j=_e.wsize-_e.wnext,j>$&&(j=$),utils.arraySet(_e.window,a,s-$,j,_e.wnext),$-=j,$?(utils.arraySet(_e.window,a,s-$,$,0),_e.wnext=$,_e.whave=_e.wsize):(_e.wnext+=j,_e.wnext===_e.wsize&&(_e.wnext=0),_e.whave<_e.wsize&&(_e.whave+=j))),0}function inflate(o,a){var s,$,j,_e,et,tt,rt,nt,it,ot,at,st,ut,ct,ft=0,dt,mt,vt,yt,pt,ht,At,St,Ct=new utils.Buf8(4),Mt,Dt,Et=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!o||!o.state||!o.output||!o.input&&o.avail_in!==0)return Z_STREAM_ERROR;s=o.state,s.mode===TYPE&&(s.mode=TYPEDO),et=o.next_out,j=o.output,rt=o.avail_out,_e=o.next_in,$=o.input,tt=o.avail_in,nt=s.hold,it=s.bits,ot=tt,at=rt,St=Z_OK;e:for(;;)switch(s.mode){case HEAD:if(s.wrap===0){s.mode=TYPEDO;break}for(;it<16;){if(tt===0)break e;tt--,nt+=$[_e++]<<it,it+=8}if(s.wrap&2&&nt===35615){s.check=0,Ct[0]=nt&255,Ct[1]=nt>>>8&255,s.check=crc32(s.check,Ct,2,0),nt=0,it=0,s.mode=FLAGS;break}if(s.flags=0,s.head&&(s.head.done=!1),!(s.wrap&1)||(((nt&255)<<8)+(nt>>8))%31){o.msg="incorrect header check",s.mode=BAD;break}if((nt&15)!==Z_DEFLATED){o.msg="unknown compression method",s.mode=BAD;break}if(nt>>>=4,it-=4,At=(nt&15)+8,s.wbits===0)s.wbits=At;else if(At>s.wbits){o.msg="invalid window size",s.mode=BAD;break}s.dmax=1<<At,o.adler=s.check=1,s.mode=nt&512?DICTID:TYPE,nt=0,it=0;break;case FLAGS:for(;it<16;){if(tt===0)break e;tt--,nt+=$[_e++]<<it,it+=8}if(s.flags=nt,(s.flags&255)!==Z_DEFLATED){o.msg="unknown compression method",s.mode=BAD;break}if(s.flags&57344){o.msg="unknown header flags set",s.mode=BAD;break}s.head&&(s.head.text=nt>>8&1),s.flags&512&&(Ct[0]=nt&255,Ct[1]=nt>>>8&255,s.check=crc32(s.check,Ct,2,0)),nt=0,it=0,s.mode=TIME;case TIME:for(;it<32;){if(tt===0)break e;tt--,nt+=$[_e++]<<it,it+=8}s.head&&(s.head.time=nt),s.flags&512&&(Ct[0]=nt&255,Ct[1]=nt>>>8&255,Ct[2]=nt>>>16&255,Ct[3]=nt>>>24&255,s.check=crc32(s.check,Ct,4,0)),nt=0,it=0,s.mode=OS;case OS:for(;it<16;){if(tt===0)break e;tt--,nt+=$[_e++]<<it,it+=8}s.head&&(s.head.xflags=nt&255,s.head.os=nt>>8),s.flags&512&&(Ct[0]=nt&255,Ct[1]=nt>>>8&255,s.check=crc32(s.check,Ct,2,0)),nt=0,it=0,s.mode=EXLEN;case EXLEN:if(s.flags&1024){for(;it<16;){if(tt===0)break e;tt--,nt+=$[_e++]<<it,it+=8}s.length=nt,s.head&&(s.head.extra_len=nt),s.flags&512&&(Ct[0]=nt&255,Ct[1]=nt>>>8&255,s.check=crc32(s.check,Ct,2,0)),nt=0,it=0}else s.head&&(s.head.extra=null);s.mode=EXTRA;case EXTRA:if(s.flags&1024&&(st=s.length,st>tt&&(st=tt),st&&(s.head&&(At=s.head.extra_len-s.length,s.head.extra||(s.head.extra=new Array(s.head.extra_len)),utils.arraySet(s.head.extra,$,_e,st,At)),s.flags&512&&(s.check=crc32(s.check,$,st,_e)),tt-=st,_e+=st,s.length-=st),s.length))break e;s.length=0,s.mode=NAME;case NAME:if(s.flags&2048){if(tt===0)break e;st=0;do At=$[_e+st++],s.head&&At&&s.length<65536&&(s.head.name+=String.fromCharCode(At));while(At&&st<tt);if(s.flags&512&&(s.check=crc32(s.check,$,st,_e)),tt-=st,_e+=st,At)break e}else s.head&&(s.head.name=null);s.length=0,s.mode=COMMENT;case COMMENT:if(s.flags&4096){if(tt===0)break e;st=0;do At=$[_e+st++],s.head&&At&&s.length<65536&&(s.head.comment+=String.fromCharCode(At));while(At&&st<tt);if(s.flags&512&&(s.check=crc32(s.check,$,st,_e)),tt-=st,_e+=st,At)break e}else s.head&&(s.head.comment=null);s.mode=HCRC;case HCRC:if(s.flags&512){for(;it<16;){if(tt===0)break e;tt--,nt+=$[_e++]<<it,it+=8}if(nt!==(s.check&65535)){o.msg="header crc mismatch",s.mode=BAD;break}nt=0,it=0}s.head&&(s.head.hcrc=s.flags>>9&1,s.head.done=!0),o.adler=s.check=0,s.mode=TYPE;break;case DICTID:for(;it<32;){if(tt===0)break e;tt--,nt+=$[_e++]<<it,it+=8}o.adler=s.check=zswap32(nt),nt=0,it=0,s.mode=DICT;case DICT:if(s.havedict===0)return o.next_out=et,o.avail_out=rt,o.next_in=_e,o.avail_in=tt,s.hold=nt,s.bits=it,Z_NEED_DICT;o.adler=s.check=1,s.mode=TYPE;case TYPE:if(a===Z_BLOCK||a===Z_TREES)break e;case TYPEDO:if(s.last){nt>>>=it&7,it-=it&7,s.mode=CHECK;break}for(;it<3;){if(tt===0)break e;tt--,nt+=$[_e++]<<it,it+=8}switch(s.last=nt&1,nt>>>=1,it-=1,nt&3){case 0:s.mode=STORED;break;case 1:if(fixedtables(s),s.mode=LEN_,a===Z_TREES){nt>>>=2,it-=2;break e}break;case 2:s.mode=TABLE;break;case 3:o.msg="invalid block type",s.mode=BAD}nt>>>=2,it-=2;break;case STORED:for(nt>>>=it&7,it-=it&7;it<32;){if(tt===0)break e;tt--,nt+=$[_e++]<<it,it+=8}if((nt&65535)!==(nt>>>16^65535)){o.msg="invalid stored block lengths",s.mode=BAD;break}if(s.length=nt&65535,nt=0,it=0,s.mode=COPY_,a===Z_TREES)break e;case COPY_:s.mode=COPY$1;case COPY$1:if(st=s.length,st){if(st>tt&&(st=tt),st>rt&&(st=rt),st===0)break e;utils.arraySet(j,$,_e,st,et),tt-=st,_e+=st,rt-=st,et+=st,s.length-=st;break}s.mode=TYPE;break;case TABLE:for(;it<14;){if(tt===0)break e;tt--,nt+=$[_e++]<<it,it+=8}if(s.nlen=(nt&31)+257,nt>>>=5,it-=5,s.ndist=(nt&31)+1,nt>>>=5,it-=5,s.ncode=(nt&15)+4,nt>>>=4,it-=4,s.nlen>286||s.ndist>30){o.msg="too many length or distance symbols",s.mode=BAD;break}s.have=0,s.mode=LENLENS;case LENLENS:for(;s.have<s.ncode;){for(;it<3;){if(tt===0)break e;tt--,nt+=$[_e++]<<it,it+=8}s.lens[Et[s.have++]]=nt&7,nt>>>=3,it-=3}for(;s.have<19;)s.lens[Et[s.have++]]=0;if(s.lencode=s.lendyn,s.lenbits=7,Mt={bits:s.lenbits},St=inflate_table(CODES,s.lens,0,19,s.lencode,0,s.work,Mt),s.lenbits=Mt.bits,St){o.msg="invalid code lengths set",s.mode=BAD;break}s.have=0,s.mode=CODELENS;case CODELENS:for(;s.have<s.nlen+s.ndist;){for(;ft=s.lencode[nt&(1<<s.lenbits)-1],dt=ft>>>24,mt=ft>>>16&255,vt=ft&65535,!(dt<=it);){if(tt===0)break e;tt--,nt+=$[_e++]<<it,it+=8}if(vt<16)nt>>>=dt,it-=dt,s.lens[s.have++]=vt;else{if(vt===16){for(Dt=dt+2;it<Dt;){if(tt===0)break e;tt--,nt+=$[_e++]<<it,it+=8}if(nt>>>=dt,it-=dt,s.have===0){o.msg="invalid bit length repeat",s.mode=BAD;break}At=s.lens[s.have-1],st=3+(nt&3),nt>>>=2,it-=2}else if(vt===17){for(Dt=dt+3;it<Dt;){if(tt===0)break e;tt--,nt+=$[_e++]<<it,it+=8}nt>>>=dt,it-=dt,At=0,st=3+(nt&7),nt>>>=3,it-=3}else{for(Dt=dt+7;it<Dt;){if(tt===0)break e;tt--,nt+=$[_e++]<<it,it+=8}nt>>>=dt,it-=dt,At=0,st=11+(nt&127),nt>>>=7,it-=7}if(s.have+st>s.nlen+s.ndist){o.msg="invalid bit length repeat",s.mode=BAD;break}for(;st--;)s.lens[s.have++]=At}}if(s.mode===BAD)break;if(s.lens[256]===0){o.msg="invalid code -- missing end-of-block",s.mode=BAD;break}if(s.lenbits=9,Mt={bits:s.lenbits},St=inflate_table(LENS,s.lens,0,s.nlen,s.lencode,0,s.work,Mt),s.lenbits=Mt.bits,St){o.msg="invalid literal/lengths set",s.mode=BAD;break}if(s.distbits=6,s.distcode=s.distdyn,Mt={bits:s.distbits},St=inflate_table(DISTS,s.lens,s.nlen,s.ndist,s.distcode,0,s.work,Mt),s.distbits=Mt.bits,St){o.msg="invalid distances set",s.mode=BAD;break}if(s.mode=LEN_,a===Z_TREES)break e;case LEN_:s.mode=LEN;case LEN:if(tt>=6&&rt>=258){o.next_out=et,o.avail_out=rt,o.next_in=_e,o.avail_in=tt,s.hold=nt,s.bits=it,inflate_fast(o,at),et=o.next_out,j=o.output,rt=o.avail_out,_e=o.next_in,$=o.input,tt=o.avail_in,nt=s.hold,it=s.bits,s.mode===TYPE&&(s.back=-1);break}for(s.back=0;ft=s.lencode[nt&(1<<s.lenbits)-1],dt=ft>>>24,mt=ft>>>16&255,vt=ft&65535,!(dt<=it);){if(tt===0)break e;tt--,nt+=$[_e++]<<it,it+=8}if(mt&&!(mt&240)){for(yt=dt,pt=mt,ht=vt;ft=s.lencode[ht+((nt&(1<<yt+pt)-1)>>yt)],dt=ft>>>24,mt=ft>>>16&255,vt=ft&65535,!(yt+dt<=it);){if(tt===0)break e;tt--,nt+=$[_e++]<<it,it+=8}nt>>>=yt,it-=yt,s.back+=yt}if(nt>>>=dt,it-=dt,s.back+=dt,s.length=vt,mt===0){s.mode=LIT;break}if(mt&32){s.back=-1,s.mode=TYPE;break}if(mt&64){o.msg="invalid literal/length code",s.mode=BAD;break}s.extra=mt&15,s.mode=LENEXT;case LENEXT:if(s.extra){for(Dt=s.extra;it<Dt;){if(tt===0)break e;tt--,nt+=$[_e++]<<it,it+=8}s.length+=nt&(1<<s.extra)-1,nt>>>=s.extra,it-=s.extra,s.back+=s.extra}s.was=s.length,s.mode=DIST;case DIST:for(;ft=s.distcode[nt&(1<<s.distbits)-1],dt=ft>>>24,mt=ft>>>16&255,vt=ft&65535,!(dt<=it);){if(tt===0)break e;tt--,nt+=$[_e++]<<it,it+=8}if(!(mt&240)){for(yt=dt,pt=mt,ht=vt;ft=s.distcode[ht+((nt&(1<<yt+pt)-1)>>yt)],dt=ft>>>24,mt=ft>>>16&255,vt=ft&65535,!(yt+dt<=it);){if(tt===0)break e;tt--,nt+=$[_e++]<<it,it+=8}nt>>>=yt,it-=yt,s.back+=yt}if(nt>>>=dt,it-=dt,s.back+=dt,mt&64){o.msg="invalid distance code",s.mode=BAD;break}s.offset=vt,s.extra=mt&15,s.mode=DISTEXT;case DISTEXT:if(s.extra){for(Dt=s.extra;it<Dt;){if(tt===0)break e;tt--,nt+=$[_e++]<<it,it+=8}s.offset+=nt&(1<<s.extra)-1,nt>>>=s.extra,it-=s.extra,s.back+=s.extra}if(s.offset>s.dmax){o.msg="invalid distance too far back",s.mode=BAD;break}s.mode=MATCH;case MATCH:if(rt===0)break e;if(st=at-rt,s.offset>st){if(st=s.offset-st,st>s.whave&&s.sane){o.msg="invalid distance too far back",s.mode=BAD;break}st>s.wnext?(st-=s.wnext,ut=s.wsize-st):ut=s.wnext-st,st>s.length&&(st=s.length),ct=s.window}else ct=j,ut=et-s.offset,st=s.length;st>rt&&(st=rt),rt-=st,s.length-=st;do j[et++]=ct[ut++];while(--st);s.length===0&&(s.mode=LEN);break;case LIT:if(rt===0)break e;j[et++]=s.length,rt--,s.mode=LEN;break;case CHECK:if(s.wrap){for(;it<32;){if(tt===0)break e;tt--,nt|=$[_e++]<<it,it+=8}if(at-=rt,o.total_out+=at,s.total+=at,at&&(o.adler=s.check=s.flags?crc32(s.check,j,at,et-at):adler32(s.check,j,at,et-at)),at=rt,(s.flags?nt:zswap32(nt))!==s.check){o.msg="incorrect data check",s.mode=BAD;break}nt=0,it=0}s.mode=LENGTH;case LENGTH:if(s.wrap&&s.flags){for(;it<32;){if(tt===0)break e;tt--,nt+=$[_e++]<<it,it+=8}if(nt!==(s.total&4294967295)){o.msg="incorrect length check",s.mode=BAD;break}nt=0,it=0}s.mode=DONE;case DONE:St=Z_STREAM_END;break e;case BAD:St=Z_DATA_ERROR;break e;case MEM:return Z_MEM_ERROR;case SYNC:default:return Z_STREAM_ERROR}return o.next_out=et,o.avail_out=rt,o.next_in=_e,o.avail_in=tt,s.hold=nt,s.bits=it,(s.wsize||at!==o.avail_out&&s.mode<BAD&&(s.mode<CHECK||a!==Z_FINISH))&&updatewindow(o,o.output,o.next_out,at-o.avail_out),ot-=o.avail_in,at-=o.avail_out,o.total_in+=ot,o.total_out+=at,s.total+=at,s.wrap&&at&&(o.adler=s.check=s.flags?crc32(s.check,j,at,o.next_out-at):adler32(s.check,j,at,o.next_out-at)),o.data_type=s.bits+(s.last?64:0)+(s.mode===TYPE?128:0)+(s.mode===LEN_||s.mode===COPY_?256:0),(ot===0&&at===0||a===Z_FINISH)&&St===Z_OK&&(St=Z_BUF_ERROR),St}function inflateEnd(o){if(!o||!o.state)return Z_STREAM_ERROR;var a=o.state;return a.window&&(a.window=null),o.state=null,Z_OK}function inflateGetHeader(o,a){var s;return!o||!o.state||(s=o.state,!(s.wrap&2))?Z_STREAM_ERROR:(s.head=a,a.done=!1,Z_OK)}function inflateSetDictionary(o,a){var s=a.length,$,j,_e;return!o||!o.state||($=o.state,$.wrap!==0&&$.mode!==DICT)?Z_STREAM_ERROR:$.mode===DICT&&(j=1,j=adler32(j,a,s,0),j!==$.check)?Z_DATA_ERROR:(_e=updatewindow(o,a,s,s),_e?($.mode=MEM,Z_MEM_ERROR):($.havedict=1,Z_OK))}inflate$1.inflateReset=inflateReset;inflate$1.inflateReset2=inflateReset2;inflate$1.inflateResetKeep=inflateResetKeep;inflate$1.inflateInit=inflateInit;inflate$1.inflateInit2=inflateInit2;inflate$1.inflate=inflate;inflate$1.inflateEnd=inflateEnd;inflate$1.inflateGetHeader=inflateGetHeader;inflate$1.inflateSetDictionary=inflateSetDictionary;inflate$1.inflateInfo="pako inflate (from Nodeca project)";var constants$6={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};(function(o){var a=requireAssert(),s=zstream,$=deflate$1,j=inflate$1,_e=constants$6;for(var et in _e)o[et]=_e[et];o.NONE=0,o.DEFLATE=1,o.INFLATE=2,o.GZIP=3,o.GUNZIP=4,o.DEFLATERAW=5,o.INFLATERAW=6,o.UNZIP=7;var tt=31,rt=139;function nt(it){if(typeof it!="number"||it<o.DEFLATE||it>o.UNZIP)throw new TypeError("Bad argument");this.dictionary=null,this.err=0,this.flush=0,this.init_done=!1,this.level=0,this.memLevel=0,this.mode=it,this.strategy=0,this.windowBits=0,this.write_in_progress=!1,this.pending_close=!1,this.gzip_id_bytes_read=0}nt.prototype.close=function(){if(this.write_in_progress){this.pending_close=!0;return}this.pending_close=!1,a(this.init_done,"close before init"),a(this.mode<=o.UNZIP),this.mode===o.DEFLATE||this.mode===o.GZIP||this.mode===o.DEFLATERAW?$.deflateEnd(this.strm):(this.mode===o.INFLATE||this.mode===o.GUNZIP||this.mode===o.INFLATERAW||this.mode===o.UNZIP)&&j.inflateEnd(this.strm),this.mode=o.NONE,this.dictionary=null},nt.prototype.write=function(it,ot,at,st,ut,ct,ft){return this._write(!0,it,ot,at,st,ut,ct,ft)},nt.prototype.writeSync=function(it,ot,at,st,ut,ct,ft){return this._write(!1,it,ot,at,st,ut,ct,ft)},nt.prototype._write=function(it,ot,at,st,ut,ct,ft,dt){if(a.equal(arguments.length,8),a(this.init_done,"write before init"),a(this.mode!==o.NONE,"already finalized"),a.equal(!1,this.write_in_progress,"write already in progress"),a.equal(!1,this.pending_close,"close is pending"),this.write_in_progress=!0,a.equal(!1,ot===void 0,"must provide flush value"),this.write_in_progress=!0,ot!==o.Z_NO_FLUSH&&ot!==o.Z_PARTIAL_FLUSH&&ot!==o.Z_SYNC_FLUSH&&ot!==o.Z_FULL_FLUSH&&ot!==o.Z_FINISH&&ot!==o.Z_BLOCK)throw new Error("Invalid flush value");if(at==null&&(at=Buffer.alloc(0),ut=0,st=0),this.strm.avail_in=ut,this.strm.input=at,this.strm.next_in=st,this.strm.avail_out=dt,this.strm.output=ct,this.strm.next_out=ft,this.flush=ot,!it)return this._process(),this._checkError()?this._afterSync():void 0;var mt=this;return process.nextTick(function(){mt._process(),mt._after()}),this},nt.prototype._afterSync=function(){var it=this.strm.avail_out,ot=this.strm.avail_in;return this.write_in_progress=!1,[ot,it]},nt.prototype._process=function(){var it=null;switch(this.mode){case o.DEFLATE:case o.GZIP:case o.DEFLATERAW:this.err=$.deflate(this.strm,this.flush);break;case o.UNZIP:switch(this.strm.avail_in>0&&(it=this.strm.next_in),this.gzip_id_bytes_read){case 0:if(it===null)break;if(this.strm.input[it]===tt){if(this.gzip_id_bytes_read=1,it++,this.strm.avail_in===1)break}else{this.mode=o.INFLATE;break}case 1:if(it===null)break;this.strm.input[it]===rt?(this.gzip_id_bytes_read=2,this.mode=o.GUNZIP):this.mode=o.INFLATE;break;default:throw new Error("invalid number of gzip magic number bytes read")}case o.INFLATE:case o.GUNZIP:case o.INFLATERAW:for(this.err=j.inflate(this.strm,this.flush),this.err===o.Z_NEED_DICT&&this.dictionary&&(this.err=j.inflateSetDictionary(this.strm,this.dictionary),this.err===o.Z_OK?this.err=j.inflate(this.strm,this.flush):this.err===o.Z_DATA_ERROR&&(this.err=o.Z_NEED_DICT));this.strm.avail_in>0&&this.mode===o.GUNZIP&&this.err===o.Z_STREAM_END&&this.strm.next_in[0]!==0;)this.reset(),this.err=j.inflate(this.strm,this.flush);break;default:throw new Error("Unknown mode "+this.mode)}},nt.prototype._checkError=function(){switch(this.err){case o.Z_OK:case o.Z_BUF_ERROR:if(this.strm.avail_out!==0&&this.flush===o.Z_FINISH)return this._error("unexpected end of file"),!1;break;case o.Z_STREAM_END:break;case o.Z_NEED_DICT:return this.dictionary==null?this._error("Missing dictionary"):this._error("Bad dictionary"),!1;default:return this._error("Zlib error"),!1}return!0},nt.prototype._after=function(){if(this._checkError()){var it=this.strm.avail_out,ot=this.strm.avail_in;this.write_in_progress=!1,this.callback(ot,it),this.pending_close&&this.close()}},nt.prototype._error=function(it){this.strm.msg&&(it=this.strm.msg),this.onerror(it,this.err),this.write_in_progress=!1,this.pending_close&&this.close()},nt.prototype.init=function(it,ot,at,st,ut){a(arguments.length===4||arguments.length===5,"init(windowBits, level, memLevel, strategy, [dictionary])"),a(it>=8&&it<=15,"invalid windowBits"),a(ot>=-1&&ot<=9,"invalid compression level"),a(at>=1&&at<=9,"invalid memlevel"),a(st===o.Z_FILTERED||st===o.Z_HUFFMAN_ONLY||st===o.Z_RLE||st===o.Z_FIXED||st===o.Z_DEFAULT_STRATEGY,"invalid strategy"),this._init(ot,it,at,st,ut),this._setDictionary()},nt.prototype.params=function(){throw new Error("deflateParams Not supported")},nt.prototype.reset=function(){this._reset(),this._setDictionary()},nt.prototype._init=function(it,ot,at,st,ut){switch(this.level=it,this.windowBits=ot,this.memLevel=at,this.strategy=st,this.flush=o.Z_NO_FLUSH,this.err=o.Z_OK,(this.mode===o.GZIP||this.mode===o.GUNZIP)&&(this.windowBits+=16),this.mode===o.UNZIP&&(this.windowBits+=32),(this.mode===o.DEFLATERAW||this.mode===o.INFLATERAW)&&(this.windowBits=-1*this.windowBits),this.strm=new s,this.mode){case o.DEFLATE:case o.GZIP:case o.DEFLATERAW:this.err=$.deflateInit2(this.strm,this.level,o.Z_DEFLATED,this.windowBits,this.memLevel,this.strategy);break;case o.INFLATE:case o.GUNZIP:case o.INFLATERAW:case o.UNZIP:this.err=j.inflateInit2(this.strm,this.windowBits);break;default:throw new Error("Unknown mode "+this.mode)}this.err!==o.Z_OK&&this._error("Init error"),this.dictionary=ut,this.write_in_progress=!1,this.init_done=!0},nt.prototype._setDictionary=function(){if(this.dictionary!=null){switch(this.err=o.Z_OK,this.mode){case o.DEFLATE:case o.DEFLATERAW:this.err=$.deflateSetDictionary(this.strm,this.dictionary);break}this.err!==o.Z_OK&&this._error("Failed to set dictionary")}},nt.prototype._reset=function(){switch(this.err=o.Z_OK,this.mode){case o.DEFLATE:case o.DEFLATERAW:case o.GZIP:this.err=$.deflateReset(this.strm);break;case o.INFLATE:case o.INFLATERAW:case o.GUNZIP:this.err=j.inflateReset(this.strm);break}this.err!==o.Z_OK&&this._error("Failed to reset stream")},o.Zlib=nt})(binding);(function(o){var a=buffer$1.Buffer,s=stream$1.Transform,$=binding,j=util$u,_e=requireAssert().ok,et=buffer$1.kMaxLength,tt="Cannot create final Buffer. It would be larger than 0x"+et.toString(16)+" bytes";$.Z_MIN_WINDOWBITS=8,$.Z_MAX_WINDOWBITS=15,$.Z_DEFAULT_WINDOWBITS=15,$.Z_MIN_CHUNK=64,$.Z_MAX_CHUNK=1/0,$.Z_DEFAULT_CHUNK=16*1024,$.Z_MIN_MEMLEVEL=1,$.Z_MAX_MEMLEVEL=9,$.Z_DEFAULT_MEMLEVEL=8,$.Z_MIN_LEVEL=-1,$.Z_MAX_LEVEL=9,$.Z_DEFAULT_LEVEL=$.Z_DEFAULT_COMPRESSION;for(var rt=Object.keys($),nt=0;nt<rt.length;nt++){var it=rt[nt];it.match(/^Z/)&&Object.defineProperty(o,it,{enumerable:!0,value:$[it],writable:!1})}for(var ot={Z_OK:$.Z_OK,Z_STREAM_END:$.Z_STREAM_END,Z_NEED_DICT:$.Z_NEED_DICT,Z_ERRNO:$.Z_ERRNO,Z_STREAM_ERROR:$.Z_STREAM_ERROR,Z_DATA_ERROR:$.Z_DATA_ERROR,Z_MEM_ERROR:$.Z_MEM_ERROR,Z_BUF_ERROR:$.Z_BUF_ERROR,Z_VERSION_ERROR:$.Z_VERSION_ERROR},at=Object.keys(ot),st=0;st<at.length;st++){var ut=at[st];ot[ot[ut]]=ut}Object.defineProperty(o,"codes",{enumerable:!0,value:Object.freeze(ot),writable:!1}),o.Deflate=dt,o.Inflate=mt,o.Gzip=vt,o.Gunzip=yt,o.DeflateRaw=pt,o.InflateRaw=ht,o.Unzip=At,o.createDeflate=function(Et){return new dt(Et)},o.createInflate=function(Et){return new mt(Et)},o.createDeflateRaw=function(Et){return new pt(Et)},o.createInflateRaw=function(Et){return new ht(Et)},o.createGzip=function(Et){return new vt(Et)},o.createGunzip=function(Et){return new yt(Et)},o.createUnzip=function(Et){return new At(Et)},o.deflate=function(Et,wt,jt){return typeof wt=="function"&&(jt=wt,wt={}),ct(new dt(wt),Et,jt)},o.deflateSync=function(Et,wt){return ft(new dt(wt),Et)},o.gzip=function(Et,wt,jt){return typeof wt=="function"&&(jt=wt,wt={}),ct(new vt(wt),Et,jt)},o.gzipSync=function(Et,wt){return ft(new vt(wt),Et)},o.deflateRaw=function(Et,wt,jt){return typeof wt=="function"&&(jt=wt,wt={}),ct(new pt(wt),Et,jt)},o.deflateRawSync=function(Et,wt){return ft(new pt(wt),Et)},o.unzip=function(Et,wt,jt){return typeof wt=="function"&&(jt=wt,wt={}),ct(new At(wt),Et,jt)},o.unzipSync=function(Et,wt){return ft(new At(wt),Et)},o.inflate=function(Et,wt,jt){return typeof wt=="function"&&(jt=wt,wt={}),ct(new mt(wt),Et,jt)},o.inflateSync=function(Et,wt){return ft(new mt(wt),Et)},o.gunzip=function(Et,wt,jt){return typeof wt=="function"&&(jt=wt,wt={}),ct(new yt(wt),Et,jt)},o.gunzipSync=function(Et,wt){return ft(new yt(wt),Et)},o.inflateRaw=function(Et,wt,jt){return typeof wt=="function"&&(jt=wt,wt={}),ct(new ht(wt),Et,jt)},o.inflateRawSync=function(Et,wt){return ft(new ht(wt),Et)};function ct(Et,wt,jt){var Bt=[],Ht=0;Et.on("error",Tt),Et.on("end",Nt),Et.end(wt),Gt();function Gt(){for(var Ot;(Ot=Et.read())!==null;)Bt.push(Ot),Ht+=Ot.length;Et.once("readable",Gt)}function Tt(Ot){Et.removeListener("end",Nt),Et.removeListener("readable",Gt),jt(Ot)}function Nt(){var Ot,kt=null;Ht>=et?kt=new RangeError(tt):Ot=a.concat(Bt,Ht),Bt=[],Et.close(),jt(kt,Ot)}}function ft(Et,wt){if(typeof wt=="string"&&(wt=a.from(wt)),!a.isBuffer(wt))throw new TypeError("Not a string or buffer");var jt=Et._finishFlushFlag;return Et._processChunk(wt,jt)}function dt(Et){if(!(this instanceof dt))return new dt(Et);Ct.call(this,Et,$.DEFLATE)}function mt(Et){if(!(this instanceof mt))return new mt(Et);Ct.call(this,Et,$.INFLATE)}function vt(Et){if(!(this instanceof vt))return new vt(Et);Ct.call(this,Et,$.GZIP)}function yt(Et){if(!(this instanceof yt))return new yt(Et);Ct.call(this,Et,$.GUNZIP)}function pt(Et){if(!(this instanceof pt))return new pt(Et);Ct.call(this,Et,$.DEFLATERAW)}function ht(Et){if(!(this instanceof ht))return new ht(Et);Ct.call(this,Et,$.INFLATERAW)}function At(Et){if(!(this instanceof At))return new At(Et);Ct.call(this,Et,$.UNZIP)}function St(Et){return Et===$.Z_NO_FLUSH||Et===$.Z_PARTIAL_FLUSH||Et===$.Z_SYNC_FLUSH||Et===$.Z_FULL_FLUSH||Et===$.Z_FINISH||Et===$.Z_BLOCK}function Ct(Et,wt){var jt=this;if(this._opts=Et=Et||{},this._chunkSize=Et.chunkSize||o.Z_DEFAULT_CHUNK,s.call(this,Et),Et.flush&&!St(Et.flush))throw new Error("Invalid flush flag: "+Et.flush);if(Et.finishFlush&&!St(Et.finishFlush))throw new Error("Invalid flush flag: "+Et.finishFlush);if(this._flushFlag=Et.flush||$.Z_NO_FLUSH,this._finishFlushFlag=typeof Et.finishFlush<"u"?Et.finishFlush:$.Z_FINISH,Et.chunkSize&&(Et.chunkSize<o.Z_MIN_CHUNK||Et.chunkSize>o.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+Et.chunkSize);if(Et.windowBits&&(Et.windowBits<o.Z_MIN_WINDOWBITS||Et.windowBits>o.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+Et.windowBits);if(Et.level&&(Et.level<o.Z_MIN_LEVEL||Et.level>o.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+Et.level);if(Et.memLevel&&(Et.memLevel<o.Z_MIN_MEMLEVEL||Et.memLevel>o.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+Et.memLevel);if(Et.strategy&&Et.strategy!=o.Z_FILTERED&&Et.strategy!=o.Z_HUFFMAN_ONLY&&Et.strategy!=o.Z_RLE&&Et.strategy!=o.Z_FIXED&&Et.strategy!=o.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+Et.strategy);if(Et.dictionary&&!a.isBuffer(Et.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._handle=new $.Zlib(wt);var Bt=this;this._hadError=!1,this._handle.onerror=function(Tt,Nt){Mt(Bt),Bt._hadError=!0;var Ot=new Error(Tt);Ot.errno=Nt,Ot.code=o.codes[Nt],Bt.emit("error",Ot)};var Ht=o.Z_DEFAULT_COMPRESSION;typeof Et.level=="number"&&(Ht=Et.level);var Gt=o.Z_DEFAULT_STRATEGY;typeof Et.strategy=="number"&&(Gt=Et.strategy),this._handle.init(Et.windowBits||o.Z_DEFAULT_WINDOWBITS,Ht,Et.memLevel||o.Z_DEFAULT_MEMLEVEL,Gt,Et.dictionary),this._buffer=a.allocUnsafe(this._chunkSize),this._offset=0,this._level=Ht,this._strategy=Gt,this.once("end",this.close),Object.defineProperty(this,"_closed",{get:function(){return!jt._handle},configurable:!0,enumerable:!0})}j.inherits(Ct,s),Ct.prototype.params=function(Et,wt,jt){if(Et<o.Z_MIN_LEVEL||Et>o.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+Et);if(wt!=o.Z_FILTERED&&wt!=o.Z_HUFFMAN_ONLY&&wt!=o.Z_RLE&&wt!=o.Z_FIXED&&wt!=o.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+wt);if(this._level!==Et||this._strategy!==wt){var Bt=this;this.flush($.Z_SYNC_FLUSH,function(){_e(Bt._handle,"zlib binding closed"),Bt._handle.params(Et,wt),Bt._hadError||(Bt._level=Et,Bt._strategy=wt,jt&&jt())})}else process.nextTick(jt)},Ct.prototype.reset=function(){return _e(this._handle,"zlib binding closed"),this._handle.reset()},Ct.prototype._flush=function(Et){this._transform(a.alloc(0),"",Et)},Ct.prototype.flush=function(Et,wt){var jt=this,Bt=this._writableState;(typeof Et=="function"||Et===void 0&&!wt)&&(wt=Et,Et=$.Z_FULL_FLUSH),Bt.ended?wt&&process.nextTick(wt):Bt.ending?wt&&this.once("end",wt):Bt.needDrain?wt&&this.once("drain",function(){return jt.flush(Et,wt)}):(this._flushFlag=Et,this.write(a.alloc(0),"",wt))},Ct.prototype.close=function(Et){Mt(this,Et),process.nextTick(Dt,this)};function Mt(Et,wt){wt&&process.nextTick(wt),Et._handle&&(Et._handle.close(),Et._handle=null)}function Dt(Et){Et.emit("close")}Ct.prototype._transform=function(Et,wt,jt){var Bt,Ht=this._writableState,Gt=Ht.ending||Ht.ended,Tt=Gt&&(!Et||Ht.length===Et.length);if(Et!==null&&!a.isBuffer(Et))return jt(new Error("invalid input"));if(!this._handle)return jt(new Error("zlib binding closed"));Tt?Bt=this._finishFlushFlag:(Bt=this._flushFlag,Et.length>=Ht.length&&(this._flushFlag=this._opts.flush||$.Z_NO_FLUSH)),this._processChunk(Et,Bt,jt)},Ct.prototype._processChunk=function(Et,wt,jt){var Bt=Et&&Et.length,Ht=this._chunkSize-this._offset,Gt=0,Tt=this,Nt=typeof jt=="function";if(!Nt){var Ot=[],kt=0,It;this.on("error",function(Kt){It=Kt}),_e(this._handle,"zlib binding closed");do var Pt=this._handle.writeSync(wt,Et,Gt,Bt,this._buffer,this._offset,Ht);while(!this._hadError&&Xt(Pt[0],Pt[1]));if(this._hadError)throw It;if(kt>=et)throw Mt(this),new RangeError(tt);var Ft=a.concat(Ot,kt);return Mt(this),Ft}_e(this._handle,"zlib binding closed");var Vt=this._handle.write(wt,Et,Gt,Bt,this._buffer,this._offset,Ht);Vt.buffer=Et,Vt.callback=Xt;function Xt(Kt,bt){if(this&&(this.buffer=null,this.callback=null),!Tt._hadError){var $t=Ht-bt;if(_e($t>=0,"have should not go down"),$t>0){var Yt=Tt._buffer.slice(Tt._offset,Tt._offset+$t);Tt._offset+=$t,Nt?Tt.push(Yt):(Ot.push(Yt),kt+=Yt.length)}if((bt===0||Tt._offset>=Tt._chunkSize)&&(Ht=Tt._chunkSize,Tt._offset=0,Tt._buffer=a.allocUnsafe(Tt._chunkSize)),bt===0){if(Gt+=Bt-Kt,Bt=Kt,!Nt)return!0;var Qt=Tt._handle.write(wt,Et,Gt,Bt,Tt._buffer,Tt._offset,Tt._chunkSize);Qt.callback=Xt,Qt.buffer=Et;return}if(!Nt)return!1;jt()}}},j.inherits(dt,Ct),j.inherits(mt,Ct),j.inherits(vt,Ct),j.inherits(yt,Ct),j.inherits(pt,Ct),j.inherits(ht,Ct),j.inherits(At,Ct)})(lib$2);var chunkstream={exports:{}};let util$5=util$u,Stream$2=stream$1,ChunkStream$2=chunkstream.exports=function(){Stream$2.call(this),this._buffers=[],this._buffered=0,this._reads=[],this._paused=!1,this._encoding="utf8",this.writable=!0};util$5.inherits(ChunkStream$2,Stream$2);ChunkStream$2.prototype.read=function(o,a){this._reads.push({length:Math.abs(o),allowLess:o<0,func:a}),process.nextTick((function(){this._process(),this._paused&&this._reads&&this._reads.length>0&&(this._paused=!1,this.emit("drain"))}).bind(this))};ChunkStream$2.prototype.write=function(o,a){if(!this.writable)return this.emit("error",new Error("Stream not writable")),!1;let s;return Buffer.isBuffer(o)?s=o:s=Buffer.from(o,a||this._encoding),this._buffers.push(s),this._buffered+=s.length,this._process(),this._reads&&this._reads.length===0&&(this._paused=!0),this.writable&&!this._paused};ChunkStream$2.prototype.end=function(o,a){o&&this.write(o,a),this.writable=!1,this._buffers&&(this._buffers.length===0?this._end():(this._buffers.push(null),this._process()))};ChunkStream$2.prototype.destroySoon=ChunkStream$2.prototype.end;ChunkStream$2.prototype._end=function(){this._reads.length>0&&this.emit("error",new Error("Unexpected end of input")),this.destroy()};ChunkStream$2.prototype.destroy=function(){this._buffers&&(this.writable=!1,this._reads=null,this._buffers=null,this.emit("close"))};ChunkStream$2.prototype._processReadAllowingLess=function(o){this._reads.shift();let a=this._buffers[0];a.length>o.length?(this._buffered-=o.length,this._buffers[0]=a.slice(o.length),o.func.call(this,a.slice(0,o.length))):(this._buffered-=a.length,this._buffers.shift(),o.func.call(this,a))};ChunkStream$2.prototype._processRead=function(o){this._reads.shift();let a=0,s=0,$=Buffer.alloc(o.length);for(;a<o.length;){let j=this._buffers[s++],_e=Math.min(j.length,o.length-a);j.copy($,a,0,_e),a+=_e,_e!==j.length&&(this._buffers[--s]=j.slice(_e))}s>0&&this._buffers.splice(0,s),this._buffered-=o.length,o.func.call(this,$)};ChunkStream$2.prototype._process=function(){try{for(;this._buffered>0&&this._reads&&this._reads.length>0;){let o=this._reads[0];if(o.allowLess)this._processReadAllowingLess(o);else if(this._buffered>=o.length)this._processRead(o);else break}this._buffers&&!this.writable&&this._end()}catch(o){this.emit("error",o)}};var chunkstreamExports=chunkstream.exports,filterParseAsync={exports:{}},filterParse={exports:{}},interlace={};let imagePasses=[{x:[0],y:[0]},{x:[4],y:[0]},{x:[0,4],y:[4]},{x:[2,6],y:[0,4]},{x:[0,2,4,6],y:[2,6]},{x:[1,3,5,7],y:[0,2,4,6]},{x:[0,1,2,3,4,5,6,7],y:[1,3,5,7]}];interlace.getImagePasses=function(o,a){let s=[],$=o%8,j=a%8,_e=(o-$)/8,et=(a-j)/8;for(let tt=0;tt<imagePasses.length;tt++){let rt=imagePasses[tt],nt=_e*rt.x.length,it=et*rt.y.length;for(let ot=0;ot<rt.x.length&&rt.x[ot]<$;ot++)nt++;for(let ot=0;ot<rt.y.length&&rt.y[ot]<j;ot++)it++;nt>0&&it>0&&s.push({width:nt,height:it,index:tt})}return s};interlace.getInterlaceIterator=function(o){return function(a,s,$){let j=a%imagePasses[$].x.length,_e=(a-j)/imagePasses[$].x.length*8+imagePasses[$].x[j],et=s%imagePasses[$].y.length,tt=(s-et)/imagePasses[$].y.length*8+imagePasses[$].y[et];return _e*4+tt*o*4}};var paethPredictor$2=function o(a,s,$){let j=a+s-$,_e=Math.abs(j-a),et=Math.abs(j-s),tt=Math.abs(j-$);return _e<=et&&_e<=tt?a:et<=tt?s:$};let interlaceUtils$1=interlace,paethPredictor$1=paethPredictor$2;function getByteWidth(o,a,s){let $=o*a;return s!==8&&($=Math.ceil($/(8/s))),$}let Filter$2=filterParse.exports=function(o,a){let s=o.width,$=o.height,j=o.interlace,_e=o.bpp,et=o.depth;if(this.read=a.read,this.write=a.write,this.complete=a.complete,this._imageIndex=0,this._images=[],j){let tt=interlaceUtils$1.getImagePasses(s,$);for(let rt=0;rt<tt.length;rt++)this._images.push({byteWidth:getByteWidth(tt[rt].width,_e,et),height:tt[rt].height,lineIndex:0})}else this._images.push({byteWidth:getByteWidth(s,_e,et),height:$,lineIndex:0});et===8?this._xComparison=_e:et===16?this._xComparison=_e*2:this._xComparison=1};Filter$2.prototype.start=function(){this.read(this._images[this._imageIndex].byteWidth+1,this._reverseFilterLine.bind(this))};Filter$2.prototype._unFilterType1=function(o,a,s){let $=this._xComparison,j=$-1;for(let _e=0;_e<s;_e++){let et=o[1+_e],tt=_e>j?a[_e-$]:0;a[_e]=et+tt}};Filter$2.prototype._unFilterType2=function(o,a,s){let $=this._lastLine;for(let j=0;j<s;j++){let _e=o[1+j],et=$?$[j]:0;a[j]=_e+et}};Filter$2.prototype._unFilterType3=function(o,a,s){let $=this._xComparison,j=$-1,_e=this._lastLine;for(let et=0;et<s;et++){let tt=o[1+et],rt=_e?_e[et]:0,nt=et>j?a[et-$]:0,it=Math.floor((nt+rt)/2);a[et]=tt+it}};Filter$2.prototype._unFilterType4=function(o,a,s){let $=this._xComparison,j=$-1,_e=this._lastLine;for(let et=0;et<s;et++){let tt=o[1+et],rt=_e?_e[et]:0,nt=et>j?a[et-$]:0,it=et>j&&_e?_e[et-$]:0,ot=paethPredictor$1(nt,rt,it);a[et]=tt+ot}};Filter$2.prototype._reverseFilterLine=function(o){let a=o[0],s,$=this._images[this._imageIndex],j=$.byteWidth;if(a===0)s=o.slice(1,j+1);else switch(s=Buffer.alloc(j),a){case 1:this._unFilterType1(o,s,j);break;case 2:this._unFilterType2(o,s,j);break;case 3:this._unFilterType3(o,s,j);break;case 4:this._unFilterType4(o,s,j);break;default:throw new Error("Unrecognised filter type - "+a)}this.write(s),$.lineIndex++,$.lineIndex>=$.height?(this._lastLine=null,this._imageIndex++,$=this._images[this._imageIndex]):this._lastLine=s,$?this.read($.byteWidth+1,this._reverseFilterLine.bind(this)):(this._lastLine=null,this.complete())};var filterParseExports=filterParse.exports;let util$4=util$u,ChunkStream$1=chunkstreamExports,Filter$1=filterParseExports,FilterAsync$1=filterParseAsync.exports=function(o){ChunkStream$1.call(this);let a=[],s=this;this._filter=new Filter$1(o,{read:this.read.bind(this),write:function($){a.push($)},complete:function(){s.emit("complete",Buffer.concat(a))}}),this._filter.start()};util$4.inherits(FilterAsync$1,ChunkStream$1);var filterParseAsyncExports=filterParseAsync.exports,parser$1={exports:{}},constants$5={PNG_SIGNATURE:[137,80,78,71,13,10,26,10],TYPE_IHDR:1229472850,TYPE_IEND:1229278788,TYPE_IDAT:1229209940,TYPE_PLTE:1347179589,TYPE_tRNS:1951551059,TYPE_gAMA:1732332865,COLORTYPE_GRAYSCALE:0,COLORTYPE_PALETTE:1,COLORTYPE_COLOR:2,COLORTYPE_ALPHA:4,COLORTYPE_PALETTE_COLOR:3,COLORTYPE_COLOR_ALPHA:6,COLORTYPE_TO_BPP_MAP:{0:1,2:3,3:1,4:2,6:4},GAMMA_DIVISION:1e5},crc={exports:{}};let crcTable=[];(function(){for(let o=0;o<256;o++){let a=o;for(let s=0;s<8;s++)a&1?a=3988292384^a>>>1:a=a>>>1;crcTable[o]=a}})();let CrcCalculator$1=crc.exports=function(){this._crc=-1};CrcCalculator$1.prototype.write=function(o){for(let a=0;a<o.length;a++)this._crc=crcTable[(this._crc^o[a])&255]^this._crc>>>8;return!0};CrcCalculator$1.prototype.crc32=function(){return this._crc^-1};CrcCalculator$1.crc32=function(o){let a=-1;for(let s=0;s<o.length;s++)a=crcTable[(a^o[s])&255]^a>>>8;return a^-1};var crcExports=crc.exports;let constants$4=constants$5,CrcCalculator=crcExports,Parser$5=parser$1.exports=function(o,a){this._options=o,o.checkCRC=o.checkCRC!==!1,this._hasIHDR=!1,this._hasIEND=!1,this._emittedHeadersFinished=!1,this._palette=[],this._colorType=0,this._chunks={},this._chunks[constants$4.TYPE_IHDR]=this._handleIHDR.bind(this),this._chunks[constants$4.TYPE_IEND]=this._handleIEND.bind(this),this._chunks[constants$4.TYPE_IDAT]=this._handleIDAT.bind(this),this._chunks[constants$4.TYPE_PLTE]=this._handlePLTE.bind(this),this._chunks[constants$4.TYPE_tRNS]=this._handleTRNS.bind(this),this._chunks[constants$4.TYPE_gAMA]=this._handleGAMA.bind(this),this.read=a.read,this.error=a.error,this.metadata=a.metadata,this.gamma=a.gamma,this.transColor=a.transColor,this.palette=a.palette,this.parsed=a.parsed,this.inflateData=a.inflateData,this.finished=a.finished,this.simpleTransparency=a.simpleTransparency,this.headersFinished=a.headersFinished||function(){}};Parser$5.prototype.start=function(){this.read(constants$4.PNG_SIGNATURE.length,this._parseSignature.bind(this))};Parser$5.prototype._parseSignature=function(o){let a=constants$4.PNG_SIGNATURE;for(let s=0;s<a.length;s++)if(o[s]!==a[s]){this.error(new Error("Invalid file signature"));return}this.read(8,this._parseChunkBegin.bind(this))};Parser$5.prototype._parseChunkBegin=function(o){let a=o.readUInt32BE(0),s=o.readUInt32BE(4),$="";for(let _e=4;_e<8;_e++)$+=String.fromCharCode(o[_e]);let j=!!(o[4]&32);if(!this._hasIHDR&&s!==constants$4.TYPE_IHDR){this.error(new Error("Expected IHDR on beggining"));return}if(this._crc=new CrcCalculator,this._crc.write(Buffer.from($)),this._chunks[s])return this._chunks[s](a);if(!j){this.error(new Error("Unsupported critical chunk type "+$));return}this.read(a+4,this._skipChunk.bind(this))};Parser$5.prototype._skipChunk=function(){this.read(8,this._parseChunkBegin.bind(this))};Parser$5.prototype._handleChunkEnd=function(){this.read(4,this._parseChunkEnd.bind(this))};Parser$5.prototype._parseChunkEnd=function(o){let a=o.readInt32BE(0),s=this._crc.crc32();if(this._options.checkCRC&&s!==a){this.error(new Error("Crc error - "+a+" - "+s));return}this._hasIEND||this.read(8,this._parseChunkBegin.bind(this))};Parser$5.prototype._handleIHDR=function(o){this.read(o,this._parseIHDR.bind(this))};Parser$5.prototype._parseIHDR=function(o){this._crc.write(o);let a=o.readUInt32BE(0),s=o.readUInt32BE(4),$=o[8],j=o[9],_e=o[10],et=o[11],tt=o[12];if($!==8&&$!==4&&$!==2&&$!==1&&$!==16){this.error(new Error("Unsupported bit depth "+$));return}if(!(j in constants$4.COLORTYPE_TO_BPP_MAP)){this.error(new Error("Unsupported color type"));return}if(_e!==0){this.error(new Error("Unsupported compression method"));return}if(et!==0){this.error(new Error("Unsupported filter method"));return}if(tt!==0&&tt!==1){this.error(new Error("Unsupported interlace method"));return}this._colorType=j;let rt=constants$4.COLORTYPE_TO_BPP_MAP[this._colorType];this._hasIHDR=!0,this.metadata({width:a,height:s,depth:$,interlace:!!tt,palette:!!(j&constants$4.COLORTYPE_PALETTE),color:!!(j&constants$4.COLORTYPE_COLOR),alpha:!!(j&constants$4.COLORTYPE_ALPHA),bpp:rt,colorType:j}),this._handleChunkEnd()};Parser$5.prototype._handlePLTE=function(o){this.read(o,this._parsePLTE.bind(this))};Parser$5.prototype._parsePLTE=function(o){this._crc.write(o);let a=Math.floor(o.length/3);for(let s=0;s<a;s++)this._palette.push([o[s*3],o[s*3+1],o[s*3+2],255]);this.palette(this._palette),this._handleChunkEnd()};Parser$5.prototype._handleTRNS=function(o){this.simpleTransparency(),this.read(o,this._parseTRNS.bind(this))};Parser$5.prototype._parseTRNS=function(o){if(this._crc.write(o),this._colorType===constants$4.COLORTYPE_PALETTE_COLOR){if(this._palette.length===0){this.error(new Error("Transparency chunk must be after palette"));return}if(o.length>this._palette.length){this.error(new Error("More transparent colors than palette size"));return}for(let a=0;a<o.length;a++)this._palette[a][3]=o[a];this.palette(this._palette)}this._colorType===constants$4.COLORTYPE_GRAYSCALE&&this.transColor([o.readUInt16BE(0)]),this._colorType===constants$4.COLORTYPE_COLOR&&this.transColor([o.readUInt16BE(0),o.readUInt16BE(2),o.readUInt16BE(4)]),this._handleChunkEnd()};Parser$5.prototype._handleGAMA=function(o){this.read(o,this._parseGAMA.bind(this))};Parser$5.prototype._parseGAMA=function(o){this._crc.write(o),this.gamma(o.readUInt32BE(0)/constants$4.GAMMA_DIVISION),this._handleChunkEnd()};Parser$5.prototype._handleIDAT=function(o){this._emittedHeadersFinished||(this._emittedHeadersFinished=!0,this.headersFinished()),this.read(-o,this._parseIDAT.bind(this,o))};Parser$5.prototype._parseIDAT=function(o,a){if(this._crc.write(a),this._colorType===constants$4.COLORTYPE_PALETTE_COLOR&&this._palette.length===0)throw new Error("Expected palette not found");this.inflateData(a);let s=o-a.length;s>0?this._handleIDAT(s):this._handleChunkEnd()};Parser$5.prototype._handleIEND=function(o){this.read(o,this._parseIEND.bind(this))};Parser$5.prototype._parseIEND=function(o){this._crc.write(o),this._hasIEND=!0,this._handleChunkEnd(),this.finished&&this.finished()};var parserExports=parser$1.exports,bitmapper$2={};let interlaceUtils=interlace,pixelBppMapper=[function(){},function(o,a,s,$){if($===a.length)throw new Error("Ran out of data");let j=a[$];o[s]=j,o[s+1]=j,o[s+2]=j,o[s+3]=255},function(o,a,s,$){if($+1>=a.length)throw new Error("Ran out of data");let j=a[$];o[s]=j,o[s+1]=j,o[s+2]=j,o[s+3]=a[$+1]},function(o,a,s,$){if($+2>=a.length)throw new Error("Ran out of data");o[s]=a[$],o[s+1]=a[$+1],o[s+2]=a[$+2],o[s+3]=255},function(o,a,s,$){if($+3>=a.length)throw new Error("Ran out of data");o[s]=a[$],o[s+1]=a[$+1],o[s+2]=a[$+2],o[s+3]=a[$+3]}],pixelBppCustomMapper=[function(){},function(o,a,s,$){let j=a[0];o[s]=j,o[s+1]=j,o[s+2]=j,o[s+3]=$},function(o,a,s){let $=a[0];o[s]=$,o[s+1]=$,o[s+2]=$,o[s+3]=a[1]},function(o,a,s,$){o[s]=a[0],o[s+1]=a[1],o[s+2]=a[2],o[s+3]=$},function(o,a,s){o[s]=a[0],o[s+1]=a[1],o[s+2]=a[2],o[s+3]=a[3]}];function bitRetriever(o,a){let s=[],$=0;function j(){if($===o.length)throw new Error("Ran out of data");let _e=o[$];$++;let et,tt,rt,nt,it,ot,at,st;switch(a){default:throw new Error("unrecognised depth");case 16:at=o[$],$++,s.push((_e<<8)+at);break;case 4:at=_e&15,st=_e>>4,s.push(st,at);break;case 2:it=_e&3,ot=_e>>2&3,at=_e>>4&3,st=_e>>6&3,s.push(st,at,ot,it);break;case 1:et=_e&1,tt=_e>>1&1,rt=_e>>2&1,nt=_e>>3&1,it=_e>>4&1,ot=_e>>5&1,at=_e>>6&1,st=_e>>7&1,s.push(st,at,ot,it,nt,rt,tt,et);break}}return{get:function(_e){for(;s.length<_e;)j();let et=s.slice(0,_e);return s=s.slice(_e),et},resetAfterLine:function(){s.length=0},end:function(){if($!==o.length)throw new Error("extra data found")}}}function mapImage8Bit(o,a,s,$,j,_e){let et=o.width,tt=o.height,rt=o.index;for(let nt=0;nt<tt;nt++)for(let it=0;it<et;it++){let ot=s(it,nt,rt);pixelBppMapper[$](a,j,ot,_e),_e+=$}return _e}function mapImageCustomBit(o,a,s,$,j,_e){let et=o.width,tt=o.height,rt=o.index;for(let nt=0;nt<tt;nt++){for(let it=0;it<et;it++){let ot=j.get($),at=s(it,nt,rt);pixelBppCustomMapper[$](a,ot,at,_e)}j.resetAfterLine()}}bitmapper$2.dataToBitMap=function(o,a){let s=a.width,$=a.height,j=a.depth,_e=a.bpp,et=a.interlace,tt;j!==8&&(tt=bitRetriever(o,j));let rt;j<=8?rt=Buffer.alloc(s*$*4):rt=new Uint16Array(s*$*4);let nt=Math.pow(2,j)-1,it=0,ot,at;if(et)ot=interlaceUtils.getImagePasses(s,$),at=interlaceUtils.getInterlaceIterator(s,$);else{let st=0;at=function(){let ut=st;return st+=4,ut},ot=[{width:s,height:$}]}for(let st=0;st<ot.length;st++)j===8?it=mapImage8Bit(ot[st],rt,at,_e,o,it):mapImageCustomBit(ot[st],rt,at,_e,tt,nt);if(j===8){if(it!==o.length)throw new Error("extra data found")}else tt.end();return rt};function dePalette(o,a,s,$,j){let _e=0;for(let et=0;et<$;et++)for(let tt=0;tt<s;tt++){let rt=j[o[_e]];if(!rt)throw new Error("index "+o[_e]+" not in palette");for(let nt=0;nt<4;nt++)a[_e+nt]=rt[nt];_e+=4}}function replaceTransparentColor(o,a,s,$,j){let _e=0;for(let et=0;et<$;et++)for(let tt=0;tt<s;tt++){let rt=!1;if(j.length===1?j[0]===o[_e]&&(rt=!0):j[0]===o[_e]&&j[1]===o[_e+1]&&j[2]===o[_e+2]&&(rt=!0),rt)for(let nt=0;nt<4;nt++)a[_e+nt]=0;_e+=4}}function scaleDepth(o,a,s,$,j){let _e=255,et=Math.pow(2,j)-1,tt=0;for(let rt=0;rt<$;rt++)for(let nt=0;nt<s;nt++){for(let it=0;it<4;it++)a[tt+it]=Math.floor(o[tt+it]*_e/et+.5);tt+=4}}var formatNormaliser$2=function(o,a,s=!1){let $=a.depth,j=a.width,_e=a.height,et=a.colorType,tt=a.transColor,rt=a.palette,nt=o;return et===3?dePalette(o,nt,j,_e,rt):(tt&&replaceTransparentColor(o,nt,j,_e,tt),$!==8&&!s&&($===16&&(nt=Buffer.alloc(j*_e*4)),scaleDepth(o,nt,j,_e,$))),nt};let util$3=util$u,zlib$3=lib$2,ChunkStream=chunkstreamExports,FilterAsync=filterParseAsyncExports,Parser$4=parserExports,bitmapper$1=bitmapper$2,formatNormaliser$1=formatNormaliser$2,ParserAsync=parserAsync.exports=function(o){ChunkStream.call(this),this._parser=new Parser$4(o,{read:this.read.bind(this),error:this._handleError.bind(this),metadata:this._handleMetaData.bind(this),gamma:this.emit.bind(this,"gamma"),palette:this._handlePalette.bind(this),transColor:this._handleTransColor.bind(this),finished:this._finished.bind(this),inflateData:this._inflateData.bind(this),simpleTransparency:this._simpleTransparency.bind(this),headersFinished:this._headersFinished.bind(this)}),this._options=o,this.writable=!0,this._parser.start()};util$3.inherits(ParserAsync,ChunkStream);ParserAsync.prototype._handleError=function(o){this.emit("error",o),this.writable=!1,this.destroy(),this._inflate&&this._inflate.destroy&&this._inflate.destroy(),this._filter&&(this._filter.destroy(),this._filter.on("error",function(){})),this.errord=!0};ParserAsync.prototype._inflateData=function(o){if(!this._inflate)if(this._bitmapInfo.interlace)this._inflate=zlib$3.createInflate(),this._inflate.on("error",this.emit.bind(this,"error")),this._filter.on("complete",this._complete.bind(this)),this._inflate.pipe(this._filter);else{let s=((this._bitmapInfo.width*this._bitmapInfo.bpp*this._bitmapInfo.depth+7>>3)+1)*this._bitmapInfo.height,$=Math.max(s,zlib$3.Z_MIN_CHUNK);this._inflate=zlib$3.createInflate({chunkSize:$});let j=s,_e=this.emit.bind(this,"error");this._inflate.on("error",function(tt){j&&_e(tt)}),this._filter.on("complete",this._complete.bind(this));let et=this._filter.write.bind(this._filter);this._inflate.on("data",function(tt){j&&(tt.length>j&&(tt=tt.slice(0,j)),j-=tt.length,et(tt))}),this._inflate.on("end",this._filter.end.bind(this._filter))}this._inflate.write(o)};ParserAsync.prototype._handleMetaData=function(o){this._metaData=o,this._bitmapInfo=Object.create(o),this._filter=new FilterAsync(this._bitmapInfo)};ParserAsync.prototype._handleTransColor=function(o){this._bitmapInfo.transColor=o};ParserAsync.prototype._handlePalette=function(o){this._bitmapInfo.palette=o};ParserAsync.prototype._simpleTransparency=function(){this._metaData.alpha=!0};ParserAsync.prototype._headersFinished=function(){this.emit("metadata",this._metaData)};ParserAsync.prototype._finished=function(){this.errord||(this._inflate?this._inflate.end():this.emit("error","No Inflate block"))};ParserAsync.prototype._complete=function(o){if(this.errord)return;let a;try{let s=bitmapper$1.dataToBitMap(o,this._bitmapInfo);a=formatNormaliser$1(s,this._bitmapInfo,this._options.skipRescale),s=null}catch(s){this._handleError(s);return}this.emit("parsed",a)};var parserAsyncExports=parserAsync.exports,packerAsync={exports:{}},packer={exports:{}};let constants$3=constants$5;var bitpacker=function(o,a,s,$){let j=[constants$3.COLORTYPE_COLOR_ALPHA,constants$3.COLORTYPE_ALPHA].indexOf($.colorType)!==-1;if($.colorType===$.inputColorType){let ut=function(){let ct=new ArrayBuffer(2);return new DataView(ct).setInt16(0,256,!0),new Int16Array(ct)[0]!==256}();if($.bitDepth===8||$.bitDepth===16&&ut)return o}let _e=$.bitDepth!==16?o:new Uint16Array(o.buffer),et=255,tt=constants$3.COLORTYPE_TO_BPP_MAP[$.inputColorType];tt===4&&!$.inputHasAlpha&&(tt=3);let rt=constants$3.COLORTYPE_TO_BPP_MAP[$.colorType];$.bitDepth===16&&(et=65535,rt*=2);let nt=Buffer.alloc(a*s*rt),it=0,ot=0,at=$.bgColor||{};at.red===void 0&&(at.red=et),at.green===void 0&&(at.green=et),at.blue===void 0&&(at.blue=et);function st(){let ut,ct,ft,dt=et;switch($.inputColorType){case constants$3.COLORTYPE_COLOR_ALPHA:dt=_e[it+3],ut=_e[it],ct=_e[it+1],ft=_e[it+2];break;case constants$3.COLORTYPE_COLOR:ut=_e[it],ct=_e[it+1],ft=_e[it+2];break;case constants$3.COLORTYPE_ALPHA:dt=_e[it+1],ut=_e[it],ct=ut,ft=ut;break;case constants$3.COLORTYPE_GRAYSCALE:ut=_e[it],ct=ut,ft=ut;break;default:throw new Error("input color type:"+$.inputColorType+" is not supported at present")}return $.inputHasAlpha&&(j||(dt/=et,ut=Math.min(Math.max(Math.round((1-dt)*at.red+dt*ut),0),et),ct=Math.min(Math.max(Math.round((1-dt)*at.green+dt*ct),0),et),ft=Math.min(Math.max(Math.round((1-dt)*at.blue+dt*ft),0),et))),{red:ut,green:ct,blue:ft,alpha:dt}}for(let ut=0;ut<s;ut++)for(let ct=0;ct<a;ct++){let ft=st();switch($.colorType){case constants$3.COLORTYPE_COLOR_ALPHA:case constants$3.COLORTYPE_COLOR:$.bitDepth===8?(nt[ot]=ft.red,nt[ot+1]=ft.green,nt[ot+2]=ft.blue,j&&(nt[ot+3]=ft.alpha)):(nt.writeUInt16BE(ft.red,ot),nt.writeUInt16BE(ft.green,ot+2),nt.writeUInt16BE(ft.blue,ot+4),j&&nt.writeUInt16BE(ft.alpha,ot+6));break;case constants$3.COLORTYPE_ALPHA:case constants$3.COLORTYPE_GRAYSCALE:{let dt=(ft.red+ft.green+ft.blue)/3;$.bitDepth===8?(nt[ot]=dt,j&&(nt[ot+1]=ft.alpha)):(nt.writeUInt16BE(dt,ot),j&&nt.writeUInt16BE(ft.alpha,ot+2));break}default:throw new Error("unrecognised color Type "+$.colorType)}it+=tt,ot+=rt}return nt};let paethPredictor=paethPredictor$2;function filterNone(o,a,s,$,j){for(let _e=0;_e<s;_e++)$[j+_e]=o[a+_e]}function filterSumNone(o,a,s){let $=0,j=a+s;for(let _e=a;_e<j;_e++)$+=Math.abs(o[_e]);return $}function filterSub(o,a,s,$,j,_e){for(let et=0;et<s;et++){let tt=et>=_e?o[a+et-_e]:0,rt=o[a+et]-tt;$[j+et]=rt}}function filterSumSub(o,a,s,$){let j=0;for(let _e=0;_e<s;_e++){let et=_e>=$?o[a+_e-$]:0,tt=o[a+_e]-et;j+=Math.abs(tt)}return j}function filterUp(o,a,s,$,j){for(let _e=0;_e<s;_e++){let et=a>0?o[a+_e-s]:0,tt=o[a+_e]-et;$[j+_e]=tt}}function filterSumUp(o,a,s){let $=0,j=a+s;for(let _e=a;_e<j;_e++){let et=a>0?o[_e-s]:0,tt=o[_e]-et;$+=Math.abs(tt)}return $}function filterAvg(o,a,s,$,j,_e){for(let et=0;et<s;et++){let tt=et>=_e?o[a+et-_e]:0,rt=a>0?o[a+et-s]:0,nt=o[a+et]-(tt+rt>>1);$[j+et]=nt}}function filterSumAvg(o,a,s,$){let j=0;for(let _e=0;_e<s;_e++){let et=_e>=$?o[a+_e-$]:0,tt=a>0?o[a+_e-s]:0,rt=o[a+_e]-(et+tt>>1);j+=Math.abs(rt)}return j}function filterPaeth(o,a,s,$,j,_e){for(let et=0;et<s;et++){let tt=et>=_e?o[a+et-_e]:0,rt=a>0?o[a+et-s]:0,nt=a>0&&et>=_e?o[a+et-(s+_e)]:0,it=o[a+et]-paethPredictor(tt,rt,nt);$[j+et]=it}}function filterSumPaeth(o,a,s,$){let j=0;for(let _e=0;_e<s;_e++){let et=_e>=$?o[a+_e-$]:0,tt=a>0?o[a+_e-s]:0,rt=a>0&&_e>=$?o[a+_e-(s+$)]:0,nt=o[a+_e]-paethPredictor(et,tt,rt);j+=Math.abs(nt)}return j}let filters={0:filterNone,1:filterSub,2:filterUp,3:filterAvg,4:filterPaeth},filterSums={0:filterSumNone,1:filterSumSub,2:filterSumUp,3:filterSumAvg,4:filterSumPaeth};var filterPack=function(o,a,s,$,j){let _e;if(!("filterType"in $)||$.filterType===-1)_e=[0,1,2,3,4];else if(typeof $.filterType=="number")_e=[$.filterType];else throw new Error("unrecognised filter types");$.bitDepth===16&&(j*=2);let et=a*j,tt=0,rt=0,nt=Buffer.alloc((et+1)*s),it=_e[0];for(let ot=0;ot<s;ot++){if(_e.length>1){let at=1/0;for(let st=0;st<_e.length;st++){let ut=filterSums[_e[st]](o,rt,et,j);ut<at&&(it=_e[st],at=ut)}}nt[tt]=it,tt++,filters[it](o,rt,et,nt,tt,j),tt+=et,rt+=et}return nt};let constants$2=constants$5,CrcStream=crcExports,bitPacker=bitpacker,filter=filterPack,zlib$2=lib$2,Packer$3=packer.exports=function(o){if(this._options=o,o.deflateChunkSize=o.deflateChunkSize||32*1024,o.deflateLevel=o.deflateLevel!=null?o.deflateLevel:9,o.deflateStrategy=o.deflateStrategy!=null?o.deflateStrategy:3,o.inputHasAlpha=o.inputHasAlpha!=null?o.inputHasAlpha:!0,o.deflateFactory=o.deflateFactory||zlib$2.createDeflate,o.bitDepth=o.bitDepth||8,o.colorType=typeof o.colorType=="number"?o.colorType:constants$2.COLORTYPE_COLOR_ALPHA,o.inputColorType=typeof o.inputColorType=="number"?o.inputColorType:constants$2.COLORTYPE_COLOR_ALPHA,[constants$2.COLORTYPE_GRAYSCALE,constants$2.COLORTYPE_COLOR,constants$2.COLORTYPE_COLOR_ALPHA,constants$2.COLORTYPE_ALPHA].indexOf(o.colorType)===-1)throw new Error("option color type:"+o.colorType+" is not supported at present");if([constants$2.COLORTYPE_GRAYSCALE,constants$2.COLORTYPE_COLOR,constants$2.COLORTYPE_COLOR_ALPHA,constants$2.COLORTYPE_ALPHA].indexOf(o.inputColorType)===-1)throw new Error("option input color type:"+o.inputColorType+" is not supported at present");if(o.bitDepth!==8&&o.bitDepth!==16)throw new Error("option bit depth:"+o.bitDepth+" is not supported at present")};Packer$3.prototype.getDeflateOptions=function(){return{chunkSize:this._options.deflateChunkSize,level:this._options.deflateLevel,strategy:this._options.deflateStrategy}};Packer$3.prototype.createDeflate=function(){return this._options.deflateFactory(this.getDeflateOptions())};Packer$3.prototype.filterData=function(o,a,s){let $=bitPacker(o,a,s,this._options),j=constants$2.COLORTYPE_TO_BPP_MAP[this._options.colorType];return filter($,a,s,this._options,j)};Packer$3.prototype._packChunk=function(o,a){let s=a?a.length:0,$=Buffer.alloc(s+12);return $.writeUInt32BE(s,0),$.writeUInt32BE(o,4),a&&a.copy($,8),$.writeInt32BE(CrcStream.crc32($.slice(4,$.length-4)),$.length-4),$};Packer$3.prototype.packGAMA=function(o){let a=Buffer.alloc(4);return a.writeUInt32BE(Math.floor(o*constants$2.GAMMA_DIVISION),0),this._packChunk(constants$2.TYPE_gAMA,a)};Packer$3.prototype.packIHDR=function(o,a){let s=Buffer.alloc(13);return s.writeUInt32BE(o,0),s.writeUInt32BE(a,4),s[8]=this._options.bitDepth,s[9]=this._options.colorType,s[10]=0,s[11]=0,s[12]=0,this._packChunk(constants$2.TYPE_IHDR,s)};Packer$3.prototype.packIDAT=function(o){return this._packChunk(constants$2.TYPE_IDAT,o)};Packer$3.prototype.packIEND=function(){return this._packChunk(constants$2.TYPE_IEND,null)};var packerExports=packer.exports;let util$2=util$u,Stream$1=stream$1,constants$1=constants$5,Packer$2=packerExports,PackerAsync=packerAsync.exports=function(o){Stream$1.call(this);let a=o||{};this._packer=new Packer$2(a),this._deflate=this._packer.createDeflate(),this.readable=!0};util$2.inherits(PackerAsync,Stream$1);PackerAsync.prototype.pack=function(o,a,s,$){this.emit("data",Buffer.from(constants$1.PNG_SIGNATURE)),this.emit("data",this._packer.packIHDR(a,s)),$&&this.emit("data",this._packer.packGAMA($));let j=this._packer.filterData(o,a,s);this._deflate.on("error",this.emit.bind(this,"error")),this._deflate.on("data",(function(_e){this.emit("data",this._packer.packIDAT(_e))}).bind(this)),this._deflate.on("end",(function(){this.emit("data",this._packer.packIEND()),this.emit("end")}).bind(this)),this._deflate.end(j)};var packerAsyncExports=packerAsync.exports,pngSync={},syncInflate={exports:{}};(function(o,a){let s=requireAssert().ok,$=lib$2,j=util$u,_e=buffer$1.kMaxLength;function et(ot){if(!(this instanceof et))return new et(ot);ot&&ot.chunkSize<$.Z_MIN_CHUNK&&(ot.chunkSize=$.Z_MIN_CHUNK),$.Inflate.call(this,ot),this._offset=this._offset===void 0?this._outOffset:this._offset,this._buffer=this._buffer||this._outBuffer,ot&&ot.maxLength!=null&&(this._maxLength=ot.maxLength)}function tt(ot){return new et(ot)}function rt(ot,at){ot._handle&&(ot._handle.close(),ot._handle=null)}et.prototype._processChunk=function(ot,at,st){if(typeof st=="function")return $.Inflate._processChunk.call(this,ot,at,st);let ut=this,ct=ot&&ot.length,ft=this._chunkSize-this._offset,dt=this._maxLength,mt=0,vt=[],yt=0,pt;this.on("error",function(Ct){pt=Ct});function ht(Ct,Mt){if(ut._hadError)return;let Dt=ft-Mt;if(s(Dt>=0,"have should not go down"),Dt>0){let Et=ut._buffer.slice(ut._offset,ut._offset+Dt);if(ut._offset+=Dt,Et.length>dt&&(Et=Et.slice(0,dt)),vt.push(Et),yt+=Et.length,dt-=Et.length,dt===0)return!1}return(Mt===0||ut._offset>=ut._chunkSize)&&(ft=ut._chunkSize,ut._offset=0,ut._buffer=Buffer.allocUnsafe(ut._chunkSize)),Mt===0?(mt+=ct-Ct,ct=Ct,!0):!1}s(this._handle,"zlib binding closed");let At;do At=this._handle.writeSync(at,ot,mt,ct,this._buffer,this._offset,ft),At=At||this._writeState;while(!this._hadError&&ht(At[0],At[1]));if(this._hadError)throw pt;if(yt>=_e)throw rt(this),new RangeError("Cannot create final Buffer. It would be larger than 0x"+_e.toString(16)+" bytes");let St=Buffer.concat(vt,yt);return rt(this),St},j.inherits(et,$.Inflate);function nt(ot,at){if(typeof at=="string"&&(at=Buffer.from(at)),!(at instanceof Buffer))throw new TypeError("Not a string or buffer");let st=ot._finishFlushFlag;return st==null&&(st=$.Z_FINISH),ot._processChunk(at,st)}function it(ot,at){return nt(new et(at),ot)}o.exports=a=it,a.Inflate=et,a.createInflate=tt,a.inflateSync=it})(syncInflate,syncInflate.exports);var syncInflateExports=syncInflate.exports,syncReader={exports:{}};let SyncReader$2=syncReader.exports=function(o){this._buffer=o,this._reads=[]};SyncReader$2.prototype.read=function(o,a){this._reads.push({length:Math.abs(o),allowLess:o<0,func:a})};SyncReader$2.prototype.process=function(){for(;this._reads.length>0&&this._buffer.length;){let o=this._reads[0];if(this._buffer.length&&(this._buffer.length>=o.length||o.allowLess)){this._reads.shift();let a=this._buffer;this._buffer=a.slice(o.length),o.func.call(this,a.slice(0,o.length))}else break}if(this._reads.length>0)throw new Error("There are some read requests waitng on finished stream");if(this._buffer.length>0)throw new Error("unrecognised content at end of stream")};var syncReaderExports=syncReader.exports,filterParseSync={};let SyncReader$1=syncReaderExports,Filter=filterParseExports;filterParseSync.process=function(o,a){let s=[],$=new SyncReader$1(o);return new Filter(a,{read:$.read.bind($),write:function(_e){s.push(_e)},complete:function(){}}).start(),$.process(),Buffer.concat(s)};let hasSyncZlib$1=!0,zlib$1=lib$2,inflateSync=syncInflateExports;zlib$1.deflateSync||(hasSyncZlib$1=!1);let SyncReader=syncReaderExports,FilterSync=filterParseSync,Parser$3=parserExports,bitmapper=bitmapper$2,formatNormaliser=formatNormaliser$2;var parserSync=function(o,a){if(!hasSyncZlib$1)throw new Error("To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0");let s;function $(yt){s=yt}let j;function _e(yt){j=yt}function et(yt){j.transColor=yt}function tt(yt){j.palette=yt}function rt(){j.alpha=!0}let nt;function it(yt){nt=yt}let ot=[];function at(yt){ot.push(yt)}let st=new SyncReader(o);if(new Parser$3(a,{read:st.read.bind(st),error:$,metadata:_e,gamma:it,palette:tt,transColor:et,inflateData:at,simpleTransparency:rt}).start(),st.process(),s)throw s;let ct=Buffer.concat(ot);ot.length=0;let ft;if(j.interlace)ft=zlib$1.inflateSync(ct);else{let pt=((j.width*j.bpp*j.depth+7>>3)+1)*j.height;ft=inflateSync(ct,{chunkSize:pt,maxLength:pt})}if(ct=null,!ft||!ft.length)throw new Error("bad png - invalid inflate data response");let dt=FilterSync.process(ft,j);ct=null;let mt=bitmapper.dataToBitMap(dt,j);dt=null;let vt=formatNormaliser(mt,j,a.skipRescale);return j.data=vt,j.gamma=nt||0,j};let hasSyncZlib=!0,zlib=lib$2;zlib.deflateSync||(hasSyncZlib=!1);let constants=constants$5,Packer$1=packerExports;var packerSync=function(o,a){if(!hasSyncZlib)throw new Error("To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0");let s=a||{},$=new Packer$1(s),j=[];j.push(Buffer.from(constants.PNG_SIGNATURE)),j.push($.packIHDR(o.width,o.height)),o.gamma&&j.push($.packGAMA(o.gamma));let _e=$.filterData(o.data,o.width,o.height),et=zlib.deflateSync(_e,$.getDeflateOptions());if(_e=null,!et||!et.length)throw new Error("bad png - invalid compressed data response");return j.push($.packIDAT(et)),j.push($.packIEND()),Buffer.concat(j)};let parse$4=parserSync,pack=packerSync;pngSync.read=function(o,a){return parse$4(o,a||{})};pngSync.write=function(o,a){return pack(o,a)};var PNG_1;let util$1=util$u,Stream=stream$1,Parser$2=parserAsyncExports,Packer=packerAsyncExports,PNGSync=pngSync,PNG=PNG_1=function(o){Stream.call(this),o=o||{},this.width=o.width|0,this.height=o.height|0,this.data=this.width>0&&this.height>0?Buffer.alloc(4*this.width*this.height):null,o.fill&&this.data&&this.data.fill(0),this.gamma=0,this.readable=this.writable=!0,this._parser=new Parser$2(o),this._parser.on("error",this.emit.bind(this,"error")),this._parser.on("close",this._handleClose.bind(this)),this._parser.on("metadata",this._metadata.bind(this)),this._parser.on("gamma",this._gamma.bind(this)),this._parser.on("parsed",(function(a){this.data=a,this.emit("parsed",a)}).bind(this)),this._packer=new Packer(o),this._packer.on("data",this.emit.bind(this,"data")),this._packer.on("end",this.emit.bind(this,"end")),this._parser.on("close",this._handleClose.bind(this)),this._packer.on("error",this.emit.bind(this,"error"))};util$1.inherits(PNG,Stream);PNG.sync=PNGSync;PNG.prototype.pack=function(){return!this.data||!this.data.length?(this.emit("error","No data provided"),this):(process.nextTick((function(){this._packer.pack(this.data,this.width,this.height,this.gamma)}).bind(this)),this)};PNG.prototype.parse=function(o,a){if(a){let s,$;s=(function(j){this.removeListener("error",$),this.data=j,a(null,this)}).bind(this),$=(function(j){this.removeListener("parsed",s),a(j,null)}).bind(this),this.once("parsed",s),this.once("error",$)}return this.end(o),this};PNG.prototype.write=function(o){return this._parser.write(o),!0};PNG.prototype.end=function(o){this._parser.end(o)};PNG.prototype._metadata=function(o){this.width=o.width,this.height=o.height,this.emit("metadata",o)};PNG.prototype._gamma=function(o){this.gamma=o};PNG.prototype._handleClose=function(){!this._parser.writable&&!this._packer.readable&&this.emit("close")};PNG.bitblt=function(o,a,s,$,j,_e,et,tt){if(s|=0,$|=0,j|=0,_e|=0,et|=0,tt|=0,s>o.width||$>o.height||s+j>o.width||$+_e>o.height)throw new Error("bitblt reading outside image");if(et>a.width||tt>a.height||et+j>a.width||tt+_e>a.height)throw new Error("bitblt writing outside image");for(let rt=0;rt<_e;rt++)o.data.copy(a.data,(tt+rt)*a.width+et<<2,($+rt)*o.width+s<<2,($+rt)*o.width+s+j<<2)};PNG.prototype.bitblt=function(o,a,s,$,j,_e,et){return PNG.bitblt(this,o,a,s,$,j,_e,et),this};PNG.adjustGamma=function(o){if(o.gamma){for(let a=0;a<o.height;a++)for(let s=0;s<o.width;s++){let $=o.width*a+s<<2;for(let j=0;j<3;j++){let _e=o.data[$+j]/255;_e=Math.pow(_e,1/2.2/o.gamma),o.data[$+j]=Math.round(_e*255)}}o.gamma=0}};PNG.prototype.adjustGamma=function(){PNG.adjustGamma(this)};const MIME_TYPE="image/png",PNG_FILTER_AUTO=-1,PNG_FILTER_NONE=0,PNG_FILTER_SUB=1,PNG_FILTER_UP=2,PNG_FILTER_AVERAGE=3,PNG_FILTER_PATH=4,jimpPng=()=>({mime:{[MIME_TYPE]:["png"]},constants:{MIME_PNG:MIME_TYPE,PNG_FILTER_AUTO,PNG_FILTER_NONE,PNG_FILTER_SUB,PNG_FILTER_UP,PNG_FILTER_AVERAGE,PNG_FILTER_PATH},hasAlpha:{[MIME_TYPE]:!0},decoders:{[MIME_TYPE]:PNG_1.sync.read},encoders:{[MIME_TYPE](o){const a=new PNG_1({width:o.bitmap.width,height:o.bitmap.height});return a.data=o.bitmap.data,PNG_1.sync.write(a,{deflateLevel:o._deflateLevel,deflateStrategy:o._deflateStrategy,filterType:o._filterType,colorType:typeof o._colorType=="number"?o._colorType:o._rgba?6:2,inputHasAlpha:o._rgba})}},class:{_deflateLevel:9,_deflateStrategy:3,_filterType:PNG_FILTER_AUTO,_colorType:null,deflateLevel(o,a){return typeof o!="number"?throwError.call(this,"l must be a number",a):o<0||o>9?throwError.call(this,"l must be a number 0 - 9",a):(this._deflateLevel=Math.round(o),isNodePattern(a)&&a.call(this,null,this),this)},deflateStrategy(o,a){return typeof o!="number"?throwError.call(this,"s must be a number",a):o<0||o>3?throwError.call(this,"s must be a number 0 - 3",a):(this._deflateStrategy=Math.round(o),isNodePattern(a)&&a.call(this,null,this),this)},filterType(o,a){return typeof o!="number"?throwError.call(this,"n must be a number",a):o<-1||o>4?throwError.call(this,"n must be -1 (auto) or a number 0 - 4",a):(this._filterType=Math.round(o),isNodePattern(a)&&a.call(this,null,this),this)},colorType(o,a){return typeof o!="number"?throwError.call(this,"s must be a number",a):o!==0&&o!==2&&o!==4&&o!==6?throwError.call(this,"s must be a number 0, 2, 4, 6.",a):(this._colorType=Math.round(o),isNodePattern(a)&&a.call(this,null,this),this)}}});var Defaults={defaultAmount:0,defaultCurrency:"USD",defaultPrecision:2},Globals={globalLocale:"en-US",globalFormat:"$0,0.00",globalRoundingMode:"HALF_EVEN",globalFormatRoundingMode:"HALF_AWAY_FROM_ZERO",globalExchangeRatesApi:{endpoint:void 0,headers:void 0,propertyPath:void 0}};function _typeof$4(o){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$4=function(a){return typeof a}:_typeof$4=function(a){return a&&typeof Symbol=="function"&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof$4(o)}function _toArray(o){return _arrayWithHoles$1(o)||_iterableToArray$2(o)||_unsupportedIterableToArray$1(o)||_nonIterableRest$1()}function _arrayWithHoles$1(o){if(Array.isArray(o))return o}function _iterableToArray$2(o){if(typeof Symbol<"u"&&Symbol.iterator in Object(o))return Array.from(o)}function _unsupportedIterableToArray$1(o,a){if(o){if(typeof o=="string")return _arrayLikeToArray$1(o,a);var s=Object.prototype.toString.call(o).slice(8,-1);if(s==="Object"&&o.constructor&&(s=o.constructor.name),s==="Map"||s==="Set")return Array.from(o);if(s==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s))return _arrayLikeToArray$1(o,a)}}function _arrayLikeToArray$1(o,a){(a==null||a>o.length)&&(a=o.length);for(var s=0,$=new Array(a);s<a;s++)$[s]=o[s];return $}function _nonIterableRest$1(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
298
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Static={normalizePrecision:function o(a){var s=a.reduce(function($,j){return Math.max($.getPrecision(),j.getPrecision())});return a.map(function($){return $.getPrecision()!==s?$.convertPrecision(s):$})},minimum:function o(a){var s=_toArray(a),$=s[0],j=s.slice(1),_e=$;return j.forEach(function(et){_e=_e.lessThan(et)?_e:et}),_e},maximum:function o(a){var s=_toArray(a),$=s[0],j=s.slice(1),_e=$;return j.forEach(function(et){_e=_e.greaterThan(et)?_e:et}),_e}};function isNumeric(o){return!isNaN(parseInt(o))&&isFinite(o)}function isPercentage(o){return isNumeric(o)&&o<=100&&o>=0}function areValidRatios(o){return o.length>0&&o.every(function(a){return a>=0})&&o.some(function(a){return a>0})}function isEven(o){return o%2===0}function isFloat(o){return isNumeric(o)&&!Number.isInteger(o)}function countFractionDigits(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,a=o.toString();if(a.indexOf("e-")>0)return parseInt(a.split("e-")[1]);var s=a.split(".")[1];return s?s.length:0}function isHalf(o){return Math.abs(o)%1===.5}function getJSON(o){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return new Promise(function(s,$){var j=Object.assign(new XMLHttpRequest,{onreadystatechange:function(){j.readyState===4&&(j.status>=200&&j.status<400?s(JSON.parse(j.responseText)):$(new Error(j.statusText)))},onerror:function(){$(new Error("Network error"))}});j.open("GET",o,!0),setXHRHeaders(j,a.headers),j.send()})}function setXHRHeaders(o){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};for(var s in a)o.setRequestHeader(s,a[s]);return o}function isUndefined(o){return typeof o>"u"}function flattenObject(o){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:".",s={};return Object.entries(o).forEach(function($){if(_typeof$4($[1])==="object"){var j=flattenObject($[1]);Object.entries(j).forEach(function(_e){s[$[0]+a+_e[0]]=_e[1]})}else s[$[0]]=$[1]}),s}function isThenable(o){return!!o&&(_typeof$4(o)==="object"||typeof o=="function")&&typeof o.then=="function"}function Calculator(){var o=function($,j){var _e=function(rt){return Math.pow(10,countFractionDigits(rt))},et=Math.max(_e($),_e(j));return Math.round($*et)*Math.round(j*et)/(et*et)},a={HALF_ODD:function($){var j=Math.round($);return isHalf($)&&isEven(j)?j-1:j},HALF_EVEN:function($){var j=Math.round($);return isHalf($)?isEven(j)?j:j-1:j},HALF_UP:function($){return Math.round($)},HALF_DOWN:function($){return isHalf($)?Math.floor($):Math.round($)},HALF_TOWARDS_ZERO:function($){return isHalf($)?Math.sign($)*Math.floor(Math.abs($)):Math.round($)},HALF_AWAY_FROM_ZERO:function($){return isHalf($)?Math.sign($)*Math.ceil(Math.abs($)):Math.round($)},DOWN:function($){return Math.floor($)}};return{add:function($,j){return $+j},subtract:function($,j){return $-j},multiply:function($,j){return isFloat($)||isFloat(j)?o($,j):$*j},divide:function($,j){return $/j},modulo:function($,j){return $%j},round:function($){var j=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"HALF_EVEN";return a[j]($)}}}var calculator=Calculator();function Format(o){var a=/^(?:(\$|USD)?0(?:(,)0)?(\.)?(0+)?|0(?:(,)0)?(\.)?(0+)?\s?(dollar)?)$/gm.exec(o);return{getMatches:function(){return a!==null?a.slice(1).filter(function($){return!isUndefined($)}):[]},getMinimumFractionDigits:function(){var $=function(_e){return _e==="."};return isUndefined(this.getMatches().find($))?0:this.getMatches()[calculator.add(this.getMatches().findIndex($),1)].split("").length},getCurrencyDisplay:function(){var $={USD:"code",dollar:"name",$:"symbol"};return $[this.getMatches().find(function(j){return j==="USD"||j==="dollar"||j==="$"})]},getStyle:function(){return isUndefined(this.getCurrencyDisplay(this.getMatches()))?"decimal":"currency"},getUseGrouping:function(){return!isUndefined(this.getMatches().find(function($){return $===","}))}}}function CurrencyConverter(o){var a=function(){var j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",_e=arguments.length>1?arguments[1]:void 0;for(var et in _e)j=j.replace("{{".concat(et,"}}"),_e[et]);return j},s=function(j,_e){return getJSON(a(o.endpoint,{from:j,to:_e}),{headers:o.headers})};return{getExchangeRate:function(j,_e){return(isThenable(o.endpoint)?o.endpoint:s(j,_e)).then(function(et){return flattenObject(et)[a(o.propertyPath,{from:j,to:_e})]})}}}function assert(o,a){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Error;if(!o)throw new s(a)}function assertPercentage(o){assert(isPercentage(o),"You must provide a numeric value between 0 and 100.",RangeError)}function assertValidRatios(o){assert(areValidRatios(o),"You must provide a non-empty array of numeric values greater than 0.",TypeError)}function assertInteger(o){assert(Number.isInteger(o),"You must provide an integer.",TypeError)}var calculator$1=Calculator(),Dinero=function o(a){var s=Object.assign({},{amount:o.defaultAmount,currency:o.defaultCurrency,precision:o.defaultPrecision},a),$=s.amount,j=s.currency,_e=s.precision;assertInteger($),assertInteger(_e);var et=o.globalLocale,tt=o.globalFormat,rt=o.globalRoundingMode,nt=o.globalFormatRoundingMode,it=Object.assign({},o.globalExchangeRatesApi),ot=function(ut){var ct=Object.assign({},Object.assign({},{amount:$,currency:j,precision:_e},ut),Object.assign({},{locale:this.locale},ut));return Object.assign(o({amount:ct.amount,currency:ct.currency,precision:ct.precision}),{locale:ct.locale})},at=function(ut){assert(this.hasSameCurrency(ut),"You must provide a Dinero instance with the same currency.",TypeError)};return{getAmount:function(){return $},getCurrency:function(){return j},getLocale:function(){return this.locale||et},setLocale:function(ut){return ot.call(this,{locale:ut})},getPrecision:function(){return _e},convertPrecision:function(ut){var ct=arguments.length>1&&arguments[1]!==void 0?arguments[1]:nt;assertInteger(ut);var ft=this.getPrecision(),dt=ut>ft,mt=dt?calculator$1.multiply:calculator$1.divide,vt=dt?[ut,ft]:[ft,ut],yt=Math.pow(10,calculator$1.subtract.apply(calculator$1,vt));return ot.call(this,{amount:calculator$1.round(mt(this.getAmount(),yt),ct),precision:ut})},add:function(ut){at.call(this,ut);var ct=o.normalizePrecision([this,ut]);return ot.call(this,{amount:calculator$1.add(ct[0].getAmount(),ct[1].getAmount()),precision:ct[0].getPrecision()})},subtract:function(ut){at.call(this,ut);var ct=o.normalizePrecision([this,ut]);return ot.call(this,{amount:calculator$1.subtract(ct[0].getAmount(),ct[1].getAmount()),precision:ct[0].getPrecision()})},multiply:function(ut){var ct=arguments.length>1&&arguments[1]!==void 0?arguments[1]:rt;return ot.call(this,{amount:calculator$1.round(calculator$1.multiply(this.getAmount(),ut),ct)})},divide:function(ut){var ct=arguments.length>1&&arguments[1]!==void 0?arguments[1]:rt;return ot.call(this,{amount:calculator$1.round(calculator$1.divide(this.getAmount(),ut),ct)})},percentage:function(ut){var ct=arguments.length>1&&arguments[1]!==void 0?arguments[1]:rt;return assertPercentage(ut),this.multiply(calculator$1.divide(ut,100),ct)},allocate:function(ut){var ct=this;assertValidRatios(ut);for(var ft=ut.reduce(function(yt,pt){return calculator$1.add(yt,pt)}),dt=this.getAmount(),mt=ut.map(function(yt){var pt=Math.floor(calculator$1.divide(calculator$1.multiply(ct.getAmount(),yt),ft));return dt=calculator$1.subtract(dt,pt),ot.call(ct,{amount:pt})}),vt=0;dt>0;)ut[vt]>0&&(mt[vt]=mt[vt].add(ot.call(this,{amount:1})),dt=calculator$1.subtract(dt,1)),vt+=1;return mt},convert:function(ut){var ct=this,ft=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},dt=ft.endpoint,mt=dt===void 0?it.endpoint:dt,vt=ft.propertyPath,yt=vt===void 0?it.propertyPath||"rates.{{to}}":vt,pt=ft.headers,ht=pt===void 0?it.headers:pt,At=ft.roundingMode,St=At===void 0?rt:At,Ct=Object.assign({},{endpoint:mt,propertyPath:yt,headers:ht,roundingMode:St});return CurrencyConverter(Ct).getExchangeRate(this.getCurrency(),ut).then(function(Mt){return assert(!isUndefined(Mt),'No rate was found for the destination currency "'.concat(ut,'".'),TypeError),ot.call(ct,{amount:calculator$1.round(calculator$1.multiply(ct.getAmount(),parseFloat(Mt)),Ct.roundingMode),currency:ut})})},equalsTo:function(ut){return this.hasSameAmount(ut)&&this.hasSameCurrency(ut)},lessThan:function(ut){at.call(this,ut);var ct=o.normalizePrecision([this,ut]);return ct[0].getAmount()<ct[1].getAmount()},lessThanOrEqual:function(ut){at.call(this,ut);var ct=o.normalizePrecision([this,ut]);return ct[0].getAmount()<=ct[1].getAmount()},greaterThan:function(ut){at.call(this,ut);var ct=o.normalizePrecision([this,ut]);return ct[0].getAmount()>ct[1].getAmount()},greaterThanOrEqual:function(ut){at.call(this,ut);var ct=o.normalizePrecision([this,ut]);return ct[0].getAmount()>=ct[1].getAmount()},isZero:function(){return this.getAmount()===0},isPositive:function(){return this.getAmount()>=0},isNegative:function(){return this.getAmount()<0},hasSubUnits:function(){return calculator$1.modulo(this.getAmount(),Math.pow(10,_e))!==0},hasCents:function(){return calculator$1.modulo(this.getAmount(),Math.pow(10,_e))!==0},hasSameCurrency:function(ut){return this.getCurrency()===ut.getCurrency()},hasSameAmount:function(ut){var ct=o.normalizePrecision([this,ut]);return ct[0].getAmount()===ct[1].getAmount()},toFormat:function(){var ut=arguments.length>0&&arguments[0]!==void 0?arguments[0]:tt,ct=arguments.length>1&&arguments[1]!==void 0?arguments[1]:nt,ft=Format(ut);return this.toRoundedUnit(ft.getMinimumFractionDigits(),ct).toLocaleString(this.getLocale(),{currencyDisplay:ft.getCurrencyDisplay(),useGrouping:ft.getUseGrouping(),minimumFractionDigits:ft.getMinimumFractionDigits(),style:ft.getStyle(),currency:this.getCurrency()})},toUnit:function(){return calculator$1.divide(this.getAmount(),Math.pow(10,_e))},toRoundedUnit:function(ut){var ct=arguments.length>1&&arguments[1]!==void 0?arguments[1]:nt,ft=Math.pow(10,ut);return calculator$1.divide(calculator$1.round(calculator$1.multiply(this.toUnit(),ft),ct),ft)},toObject:function(){return{amount:$,currency:j,precision:_e}},toJSON:function(){return this.toObject()}}},dinero=Object.assign(Dinero,Defaults,Globals,Static),animalNames=["Aardvark","Albatross","Alligator","Alpaca","Angelfish","Anglerfish","Ant","Anteater","Antelope","Antlion","Ape","Armadillo","Asp","Baboon","Badger","Bandicoot","Barnacle","Barracuda","Basilisk","Bass","Bat","Bear","Beaver","Bee","Beetle","Bird","Bison","Blackbird","Boar","Bobcat","Bonobo","Bug","Butterfly","Buzzard","Camel","Capybara","Cardinal","Caribou","Cat","Caterpillar","Catfish","Cattle","Chameleon","Cheetah","Chickadee","Chicken","Chimpanzee","Chinchilla","Chipmunk","Clam","Clownfish","Cobra","Condor","Coral","Cougar","Coyote","Crab","Crane","Crawdad","Crayfish","Cricket","Crocodile","Crow","Cuckoo","Deer","Dingo","Dinosaur","Dog","Dolphin","Donkey","Dove","Dragon","Dragonfly","Duck","Eagle","Earthworm","Echidna","Egret","Elephant","Elk","Emu","Ermine","Falcon","Ferret","Finch","Firefly","Fish","Flamingo","Fowl","Fox","Frog","Gazelle","Gecko","Gerbil","Gibbon","Giraffe","Goat","Goldfish","Goose","Gopher","Gorilla","Grasshopper","Grouse","Gull","Guppy","Hamster","Hare","Harrier","Hawk","Hedgehog","Heron","Hippopotamus","Horse","Hummingbird","Hyena","Iguana","Impala","Jackal","Jaguar","Jay","Jellyfish","Kangaroo","Kingfisher","Kiwi","Koala","Koi","Ladybug","Lark","Lemming","Lemur","Leopard","Lion","Llama","Lobster","Loon","Lynx","Macaw","Mackerel","Mammal","Manatee","Mandrill","Marlin","Marmoset","Marmot","Marsupial","Mastodon","Meerkat","Mink","Minnow","Mockingbird","Mole","Mongoose","Monkey","Moose","Mosquito","Mouse","Mule","Muskox","Narwhal","Ocelot","Octopus","Opossum","Orangutan","Orca","Ostrich","Otter","Owl","Ox","Panda","Panther","Parakeet","Parrot","Partridge","Peacock","Pelican","Penguin","Pig","Pigeon","Platypus","Pony","Porcupine","Porpoise","Puffin","Puma","Python","Quail","Quokka","Rabbit","Raccoon","Raven","Reindeer","Rhinoceros","Roadrunner","Rooster","Salamander","Salmon","Seahorse","Shark","Sheep","Shrew","Sloth","Snail","Sparrow","Squid","Squirrel","Starfish","Stingray","Stoat","Stork","Sturgeon","Swan","Swift","Swordfish","Tapir","Tarsier","Tern","Tiger","Tortoise","Toucan","Turkey","Turtle","Tyrannosaurus","Vole","Wallaby","Walrus","Warbler","Whale","Wildcat","Wolf","Wolverine","Wombat","Woodpecker","Wren","Yak","Zebra"],adjectives=["Adorable","Adventurous","Agreeable","Alert","Amused","Attractive","Average","Beautiful","Blushing","Brainy","Brave","Bright","Busy","Calm","Careful","Cautious","Charming","Cheerful","Clever","Cloudy","Colorful","Comfortable","Concerned","Cooperative","Courageous","Crazy","Curious","Cute","Delightful","Determined","Distinct","Dizzy","Elated","Elegant","Enchanting","Encouraging","Energetic","Enthusiastic","Excited","Exuberant","Famous","Fancy","Fantastic","Fierce","Fine","Friendly","Funny","Gentle","Gifted","Glamorous","Gleaming","Glorious","Gorgeous","Graceful","Handsome","Happy","Healthy","Helpful","Hilarious","Important","Inquisitive","Jolly","Joyous","Kind","Light","Lively","Lovely","Lucky","Magnificent","Mysterious","Nice","Nutty","Outrageous","Outstanding","Perfect","Pleasant","Poised","Powerful","Precious","Proud","Puzzled","Quaint","Relieved","Shiny","Silly","Sleepy","Smiling","Sparkling","Splendid","Stormy","Strange","Successful","Tame","Thankful","Thoughtful","Tough","Victorious","Vivacious","Wandering","Wide-eyed","Wild","Witty","Zany"],convertStringToInteger$1=function o(a){return a.split("").reduce(function(s,$,j){return s+$.charCodeAt(0)*j},0)},funAnimalName=function o(a,s){var $={},j=$.adjectives,_e=j===void 0?adjectives:j,et=$.animalNames,tt=et===void 0?animalNames:et,rt=convertStringToInteger$1(a),nt=_e[rt%_e.length],it=convertStringToInteger$1(nt),ot=tt[(rt+it)%tt.length];return nt+" "+ot},lodash_sortby={exports:{}};lodash_sortby.exports;(function(o,a){var s={},$=200,j="Expected a function",_e="__lodash_hash_undefined__",et=1,tt=2,rt=9007199254740991,nt="[object Arguments]",it="[object Array]",ot="[object Boolean]",at="[object Date]",st="[object Error]",ut="[object Function]",ct="[object GeneratorFunction]",ft="[object Map]",dt="[object Number]",mt="[object Object]",vt="[object Promise]",yt="[object RegExp]",pt="[object Set]",ht="[object String]",At="[object Symbol]",St="[object WeakMap]",Ct="[object ArrayBuffer]",Mt="[object DataView]",Dt="[object Float32Array]",Et="[object Float64Array]",wt="[object Int8Array]",jt="[object Int16Array]",Bt="[object Int32Array]",Ht="[object Uint8Array]",Gt="[object Uint8ClampedArray]",Tt="[object Uint16Array]",Nt="[object Uint32Array]",Ot=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,kt=/^\w*$/,It=/^\./,Pt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ft=/[\\^$.*+?()[\]{}|]/g,Vt=/\\(\\)?/g,Xt=/^\[object .+?Constructor\]$/,Kt=/^(?:0|[1-9]\d*)$/,bt={};bt[Dt]=bt[Et]=bt[wt]=bt[jt]=bt[Bt]=bt[Ht]=bt[Gt]=bt[Tt]=bt[Nt]=!0,bt[nt]=bt[it]=bt[Ct]=bt[ot]=bt[Mt]=bt[at]=bt[st]=bt[ut]=bt[ft]=bt[dt]=bt[mt]=bt[yt]=bt[pt]=bt[ht]=bt[St]=!1;var $t=typeof s=="object"&&s&&s.Object===Object&&s,Yt=typeof self=="object"&&self&&self.Object===Object&&self,Qt=$t||Yt||Function("return this")(),zt=a&&!a.nodeType&&a,Lt=zt&&!0&&o&&!o.nodeType&&o,er=Lt&&Lt.exports===zt,lr=er&&$t.process,yr=function(){try{return lr&&lr.binding("util")}catch{}}(),mr=yr&&yr.isTypedArray;function Er(Wt,Jt,pr){switch(pr.length){case 0:return Wt.call(Jt);case 1:return Wt.call(Jt,pr[0]);case 2:return Wt.call(Jt,pr[0],pr[1]);case 3:return Wt.call(Jt,pr[0],pr[1],pr[2])}return Wt.apply(Jt,pr)}function ur(Wt,Jt){for(var pr=-1,_r=Wt?Wt.length:0,Mr=Array(_r);++pr<_r;)Mr[pr]=Jt(Wt[pr],pr,Wt);return Mr}function wr(Wt,Jt){for(var pr=-1,_r=Jt.length,Mr=Wt.length;++pr<_r;)Wt[Mr+pr]=Jt[pr];return Wt}function Rr(Wt,Jt){for(var pr=-1,_r=Wt?Wt.length:0;++pr<_r;)if(Jt(Wt[pr],pr,Wt))return!0;return!1}function nr(Wt){return function(Jt){return Jt==null?void 0:Jt[Wt]}}function fr(Wt,Jt){var pr=Wt.length;for(Wt.sort(Jt);pr--;)Wt[pr]=Wt[pr].value;return Wt}function gr(Wt,Jt){for(var pr=-1,_r=Array(Wt);++pr<Wt;)_r[pr]=Jt(pr);return _r}function br(Wt){return function(Jt){return Wt(Jt)}}function Sr(Wt,Jt){return Wt==null?void 0:Wt[Jt]}function Ut(Wt){var Jt=!1;if(Wt!=null&&typeof Wt.toString!="function")try{Jt=!!(Wt+"")}catch{}return Jt}function xt(Wt){var Jt=-1,pr=Array(Wt.size);return Wt.forEach(function(_r,Mr){pr[++Jt]=[Mr,_r]}),pr}function Rt(Wt,Jt){return function(pr){return Wt(Jt(pr))}}function qt(Wt){var Jt=-1,pr=Array(Wt.size);return Wt.forEach(function(_r){pr[++Jt]=_r}),pr}var rr=Array.prototype,ar=Function.prototype,ir=Object.prototype,Tr=Qt["__core-js_shared__"],vr=function(){var Wt=/[^.]+$/.exec(Tr&&Tr.keys&&Tr.keys.IE_PROTO||"");return Wt?"Symbol(src)_1."+Wt:""}(),Ar=ar.toString,Pr=ir.hasOwnProperty,kr=ir.toString,Gr=RegExp("^"+Ar.call(Pr).replace(Ft,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Vr=Qt.Symbol,Kr=Qt.Uint8Array,rn=ir.propertyIsEnumerable,en=rr.splice,nn=Vr?Vr.isConcatSpreadable:void 0,_n=Rt(Object.keys,Object),On=Math.max,xn=Gn(Qt,"DataView"),cn=Gn(Qt,"Map"),dn=Gn(Qt,"Promise"),Cn=Gn(Qt,"Set"),pn=Gn(Qt,"WeakMap"),hn=Gn(Object,"create"),tn=Un(xn),bn=Un(cn),kn=Un(dn),mn=Un(Cn),Tn=Un(pn),gn=Vr?Vr.prototype:void 0,yn=gn?gn.valueOf:void 0,$n=gn?gn.toString:void 0;function Fr(Wt){var Jt=-1,pr=Wt?Wt.length:0;for(this.clear();++Jt<pr;){var _r=Wt[Jt];this.set(_r[0],_r[1])}}function Xr(){this.__data__=hn?hn(null):{}}function In(Wt){return this.has(Wt)&&delete this.__data__[Wt]}function Sn(Wt){var Jt=this.__data__;if(hn){var pr=Jt[Wt];return pr===_e?void 0:pr}return Pr.call(Jt,Wt)?Jt[Wt]:void 0}function on(Wt){var Jt=this.__data__;return hn?Jt[Wt]!==void 0:Pr.call(Jt,Wt)}function Lr(Wt,Jt){var pr=this.__data__;return pr[Wt]=hn&&Jt===void 0?_e:Jt,this}Fr.prototype.clear=Xr,Fr.prototype.delete=In,Fr.prototype.get=Sn,Fr.prototype.has=on,Fr.prototype.set=Lr;function Yr(Wt){var Jt=-1,pr=Wt?Wt.length:0;for(this.clear();++Jt<pr;){var _r=Wt[Jt];this.set(_r[0],_r[1])}}function lo(){this.__data__=[]}function uo(Wt){var Jt=this.__data__,pr=xr(Jt,Wt);if(pr<0)return!1;var _r=Jt.length-1;return pr==_r?Jt.pop():en.call(Jt,pr,1),!0}function co(Wt){var Jt=this.__data__,pr=xr(Jt,Wt);return pr<0?void 0:Jt[pr][1]}function _i(Wt){return xr(this.__data__,Wt)>-1}function Dn(Wt,Jt){var pr=this.__data__,_r=xr(pr,Wt);return _r<0?pr.push([Wt,Jt]):pr[_r][1]=Jt,this}Yr.prototype.clear=lo,Yr.prototype.delete=uo,Yr.prototype.get=co,Yr.prototype.has=_i,Yr.prototype.set=Dn;function vn(Wt){var Jt=-1,pr=Wt?Wt.length:0;for(this.clear();++Jt<pr;){var _r=Wt[Jt];this.set(_r[0],_r[1])}}function Nn(){this.__data__={hash:new Fr,map:new(cn||Yr),string:new Fr}}function fo(Wt){return to(this,Wt).delete(Wt)}function zn(Wt){return to(this,Wt).get(Wt)}function Vn(Wt){return to(this,Wt).has(Wt)}function po(Wt,Jt){return to(this,Wt).set(Wt,Jt),this}vn.prototype.clear=Nn,vn.prototype.delete=fo,vn.prototype.get=zn,vn.prototype.has=Vn,vn.prototype.set=po;function Wn(Wt){var Jt=-1,pr=Wt?Wt.length:0;for(this.__data__=new vn;++Jt<pr;)this.add(Wt[Jt])}function Kn(Wt){return this.__data__.set(Wt,_e),this}function ho(Wt){return this.__data__.has(Wt)}Wn.prototype.add=Wn.prototype.push=Kn,Wn.prototype.has=ho;function wn(Wt){this.__data__=new Yr(Wt)}function Zt(){this.__data__=new Yr}function or(Wt){return this.__data__.delete(Wt)}function tr(Wt){return this.__data__.get(Wt)}function dr(Wt){return this.__data__.has(Wt)}function hr(Wt,Jt){var pr=this.__data__;if(pr instanceof Yr){var _r=pr.__data__;if(!cn||_r.length<$-1)return _r.push([Wt,Jt]),this;pr=this.__data__=new vn(_r)}return pr.set(Wt,Jt),this}wn.prototype.clear=Zt,wn.prototype.delete=or,wn.prototype.get=tr,wn.prototype.has=dr,wn.prototype.set=hr;function cr(Wt,Jt){var pr=jn(Wt)||xo(Wt)?gr(Wt.length,String):[],_r=pr.length,Mr=!!_r;for(var Nr in Wt)Pr.call(Wt,Nr)&&!(Mr&&(Nr=="length"||vo(Nr,_r)))&&pr.push(Nr);return pr}function xr(Wt,Jt){for(var pr=Wt.length;pr--;)if(Eo(Wt[pr][0],Jt))return pr;return-1}var Cr=Ho(Or);function $r(Wt,Jt,pr,_r,Mr){var Nr=-1,Br=Wt.length;for(pr||(pr=Ko),Mr||(Mr=[]);++Nr<Br;){var qr=Wt[Nr];pr(qr)?wr(Mr,qr):Mr[Mr.length]=qr}return Mr}var Ir=zo();function Or(Wt,Jt){return Wt&&Ir(Wt,Jt,oo)}function jr(Wt,Jt){Jt=ro(Jt,Wt)?[Jt]:_o(Jt);for(var pr=0,_r=Jt.length;Wt!=null&&pr<_r;)Wt=Wt[no(Jt[pr++])];return pr&&pr==_r?Wt:void 0}function Dr(Wt){return kr.call(Wt)}function zr(Wt,Jt){return Wt!=null&&Jt in Object(Wt)}function Ur(Wt,Jt,pr,_r,Mr){return Wt===Jt?!0:Wt==null||Jt==null||!Zn(Wt)&&!io(Jt)?Wt!==Wt&&Jt!==Jt:Jr(Wt,Jt,Ur,pr,_r,Mr)}function Jr(Wt,Jt,pr,_r,Mr,Nr){var Br=jn(Wt),qr=jn(Jt),Hr=it,Qr=it;Br||(Hr=Mn(Wt),Hr=Hr==nt?mt:Hr),qr||(Qr=Mn(Jt),Qr=Qr==nt?mt:Qr);var ln=Hr==mt&&!Ut(Wt),un=Qr==mt&&!Ut(Jt),an=Hr==Qr;if(an&&!ln)return Nr||(Nr=new wn),Br||va(Wt)?So(Wt,Jt,pr,_r,Mr,Nr):Wo(Wt,Jt,Hr,pr,_r,Mr,Nr);if(!(Mr&tt)){var An=ln&&Pr.call(Wt,"__wrapped__"),En=un&&Pr.call(Jt,"__wrapped__");if(An||En){var Bn=An?Wt.value():Wt,Pn=En?Jt.value():Jt;return Nr||(Nr=new wn),pr(Bn,Pn,_r,Mr,Nr)}}return an?(Nr||(Nr=new wn),Go(Wt,Jt,pr,_r,Mr,Nr)):!1}function Zr(Wt,Jt,pr,_r){var Mr=pr.length,Nr=Mr;if(Wt==null)return!Nr;for(Wt=Object(Wt);Mr--;){var Br=pr[Mr];if(Br[2]?Br[1]!==Wt[Br[0]]:!(Br[0]in Wt))return!1}for(;++Mr<Nr;){Br=pr[Mr];var qr=Br[0],Hr=Wt[qr],Qr=Br[1];if(Br[2]){if(Hr===void 0&&!(qr in Wt))return!1}else{var ln=new wn,un;if(!(un===void 0?Ur(Qr,Hr,_r,et|tt,ln):un))return!1}}return!0}function sn(Wt){if(!Zn(Wt)||Qo(Wt))return!1;var Jt=$o(Wt)||Ut(Wt)?Gr:Xt;return Jt.test(Un(Wt))}function Fn(Wt){return io(Wt)&&bo(Wt.length)&&!!bt[kr.call(Wt)]}function Yn(Wt){return typeof Wt=="function"?Wt:Wt==null?Io:typeof Wt=="object"?jn(Wt)?go(Wt[0],Wt[1]):wo(Wt):rs(Wt)}function mo(Wt){if(!Xo(Wt))return _n(Wt);var Jt=[];for(var pr in Object(Wt))Pr.call(Wt,pr)&&pr!="constructor"&&Jt.push(pr);return Jt}function Qn(Wt,Jt){var pr=-1,_r=Xn(Wt)?Array(Wt.length):[];return Cr(Wt,function(Mr,Nr,Br){_r[++pr]=Jt(Mr,Nr,Br)}),_r}function wo(Wt){var Jt=qo(Wt);return Jt.length==1&&Jt[0][2]?To(Jt[0][0],Jt[0][1]):function(pr){return pr===Wt||Zr(pr,Wt,Jt)}}function go(Wt,Jt){return ro(Wt)&&Co(Jt)?To(no(Wt),Jt):function(pr){var _r=es(pr,Wt);return _r===void 0&&_r===Jt?ts(pr,Wt):Ur(Jt,_r,void 0,et|tt)}}function yo(Wt,Jt,pr){var _r=-1;Jt=ur(Jt.length?Jt:[Io],br(Yn));var Mr=Qn(Wt,function(Nr,Br,qr){var Hr=ur(Jt,function(Qr){return Qr(Nr)});return{criteria:Hr,index:++_r,value:Nr}});return fr(Mr,function(Nr,Br){return Uo(Nr,Br,pr)})}function eo(Wt){return function(Jt){return jr(Jt,Wt)}}function Lo(Wt,Jt){return Jt=On(Jt===void 0?Wt.length-1:Jt,0),function(){for(var pr=arguments,_r=-1,Mr=On(pr.length-Jt,0),Nr=Array(Mr);++_r<Mr;)Nr[_r]=pr[Jt+_r];_r=-1;for(var Br=Array(Jt+1);++_r<Jt;)Br[_r]=pr[_r];return Br[Jt]=Nr,Er(Wt,this,Br)}}function Do(Wt){if(typeof Wt=="string")return Wt;if(Jn(Wt))return $n?$n.call(Wt):"";var Jt=Wt+"";return Jt=="0"&&1/Wt==-1/0?"-0":Jt}function _o(Wt){return jn(Wt)?Wt:Zo(Wt)}function Fo(Wt,Jt){if(Wt!==Jt){var pr=Wt!==void 0,_r=Wt===null,Mr=Wt===Wt,Nr=Jn(Wt),Br=Jt!==void 0,qr=Jt===null,Hr=Jt===Jt,Qr=Jn(Jt);if(!qr&&!Qr&&!Nr&&Wt>Jt||Nr&&Br&&Hr&&!qr&&!Qr||_r&&Br&&Hr||!pr&&Hr||!Mr)return 1;if(!_r&&!Nr&&!Qr&&Wt<Jt||Qr&&pr&&Mr&&!_r&&!Nr||qr&&pr&&Mr||!Br&&Mr||!Hr)return-1}return 0}function Uo(Wt,Jt,pr){for(var _r=-1,Mr=Wt.criteria,Nr=Jt.criteria,Br=Mr.length,qr=pr.length;++_r<Br;){var Hr=Fo(Mr[_r],Nr[_r]);if(Hr){if(_r>=qr)return Hr;var Qr=pr[_r];return Hr*(Qr=="desc"?-1:1)}}return Wt.index-Jt.index}function Ho(Wt,Jt){return function(pr,_r){if(pr==null)return pr;if(!Xn(pr))return Wt(pr,_r);for(var Mr=pr.length,Nr=-1,Br=Object(pr);++Nr<Mr&&_r(Br[Nr],Nr,Br)!==!1;);return pr}}function zo(Wt){return function(Jt,pr,_r){for(var Mr=-1,Nr=Object(Jt),Br=_r(Jt),qr=Br.length;qr--;){var Hr=Br[++Mr];if(pr(Nr[Hr],Hr,Nr)===!1)break}return Jt}}function So(Wt,Jt,pr,_r,Mr,Nr){var Br=Mr&tt,qr=Wt.length,Hr=Jt.length;if(qr!=Hr&&!(Br&&Hr>qr))return!1;var Qr=Nr.get(Wt);if(Qr&&Nr.get(Jt))return Qr==Jt;var ln=-1,un=!0,an=Mr&et?new Wn:void 0;for(Nr.set(Wt,Jt),Nr.set(Jt,Wt);++ln<qr;){var An=Wt[ln],En=Jt[ln];if(_r)var Bn=Br?_r(En,An,ln,Jt,Wt,Nr):_r(An,En,ln,Wt,Jt,Nr);if(Bn!==void 0){if(Bn)continue;un=!1;break}if(an){if(!Rr(Jt,function(Pn,Hn){if(!an.has(Hn)&&(An===Pn||pr(An,Pn,_r,Mr,Nr)))return an.add(Hn)})){un=!1;break}}else if(!(An===En||pr(An,En,_r,Mr,Nr))){un=!1;break}}return Nr.delete(Wt),Nr.delete(Jt),un}function Wo(Wt,Jt,pr,_r,Mr,Nr,Br){switch(pr){case Mt:if(Wt.byteLength!=Jt.byteLength||Wt.byteOffset!=Jt.byteOffset)return!1;Wt=Wt.buffer,Jt=Jt.buffer;case Ct:return!(Wt.byteLength!=Jt.byteLength||!_r(new Kr(Wt),new Kr(Jt)));case ot:case at:case dt:return Eo(+Wt,+Jt);case st:return Wt.name==Jt.name&&Wt.message==Jt.message;case yt:case ht:return Wt==Jt+"";case ft:var qr=xt;case pt:var Hr=Nr&tt;if(qr||(qr=qt),Wt.size!=Jt.size&&!Hr)return!1;var Qr=Br.get(Wt);if(Qr)return Qr==Jt;Nr|=et,Br.set(Wt,Jt);var ln=So(qr(Wt),qr(Jt),_r,Mr,Nr,Br);return Br.delete(Wt),ln;case At:if(yn)return yn.call(Wt)==yn.call(Jt)}return!1}function Go(Wt,Jt,pr,_r,Mr,Nr){var Br=Mr&tt,qr=oo(Wt),Hr=qr.length,Qr=oo(Jt),ln=Qr.length;if(Hr!=ln&&!Br)return!1;for(var un=Hr;un--;){var an=qr[un];if(!(Br?an in Jt:Pr.call(Jt,an)))return!1}var An=Nr.get(Wt);if(An&&Nr.get(Jt))return An==Jt;var En=!0;Nr.set(Wt,Jt),Nr.set(Jt,Wt);for(var Bn=Br;++un<Hr;){an=qr[un];var Pn=Wt[an],Hn=Jt[an];if(_r)var Po=Br?_r(Hn,Pn,an,Jt,Wt,Nr):_r(Pn,Hn,an,Wt,Jt,Nr);if(!(Po===void 0?Pn===Hn||pr(Pn,Hn,_r,Mr,Nr):Po)){En=!1;break}Bn||(Bn=an=="constructor")}if(En&&!Bn){var ao=Wt.constructor,so=Jt.constructor;ao!=so&&"constructor"in Wt&&"constructor"in Jt&&!(typeof ao=="function"&&ao instanceof ao&&typeof so=="function"&&so instanceof so)&&(En=!1)}return Nr.delete(Wt),Nr.delete(Jt),En}function to(Wt,Jt){var pr=Wt.__data__;return Yo(Jt)?pr[typeof Jt=="string"?"string":"hash"]:pr.map}function qo(Wt){for(var Jt=oo(Wt),pr=Jt.length;pr--;){var _r=Jt[pr],Mr=Wt[_r];Jt[pr]=[_r,Mr,Co(Mr)]}return Jt}function Gn(Wt,Jt){var pr=Sr(Wt,Jt);return sn(pr)?pr:void 0}var Mn=Dr;(xn&&Mn(new xn(new ArrayBuffer(1)))!=Mt||cn&&Mn(new cn)!=ft||dn&&Mn(dn.resolve())!=vt||Cn&&Mn(new Cn)!=pt||pn&&Mn(new pn)!=St)&&(Mn=function(Wt){var Jt=kr.call(Wt),pr=Jt==mt?Wt.constructor:void 0,_r=pr?Un(pr):void 0;if(_r)switch(_r){case tn:return Mt;case bn:return ft;case kn:return vt;case mn:return pt;case Tn:return St}return Jt});function Vo(Wt,Jt,pr){Jt=ro(Jt,Wt)?[Jt]:_o(Jt);for(var _r,Mr=-1,Br=Jt.length;++Mr<Br;){var Nr=no(Jt[Mr]);if(!(_r=Wt!=null&&pr(Wt,Nr)))break;Wt=Wt[Nr]}if(_r)return _r;var Br=Wt?Wt.length:0;return!!Br&&bo(Br)&&vo(Nr,Br)&&(jn(Wt)||xo(Wt))}function Ko(Wt){return jn(Wt)||xo(Wt)||!!(nn&&Wt&&Wt[nn])}function vo(Wt,Jt){return Jt=Jt??rt,!!Jt&&(typeof Wt=="number"||Kt.test(Wt))&&Wt>-1&&Wt%1==0&&Wt<Jt}function Ro(Wt,Jt,pr){if(!Zn(pr))return!1;var _r=typeof Jt;return(_r=="number"?Xn(pr)&&vo(Jt,pr.length):_r=="string"&&Jt in pr)?Eo(pr[Jt],Wt):!1}function ro(Wt,Jt){if(jn(Wt))return!1;var pr=typeof Wt;return pr=="number"||pr=="symbol"||pr=="boolean"||Wt==null||Jn(Wt)?!0:kt.test(Wt)||!Ot.test(Wt)||Jt!=null&&Wt in Object(Jt)}function Yo(Wt){var Jt=typeof Wt;return Jt=="string"||Jt=="number"||Jt=="symbol"||Jt=="boolean"?Wt!=="__proto__":Wt===null}function Qo(Wt){return!!vr&&vr in Wt}function Xo(Wt){var Jt=Wt&&Wt.constructor,pr=typeof Jt=="function"&&Jt.prototype||ir;return Wt===pr}function Co(Wt){return Wt===Wt&&!Zn(Wt)}function To(Wt,Jt){return function(pr){return pr==null?!1:pr[Wt]===Jt&&(Jt!==void 0||Wt in Object(pr))}}var Zo=Ao(function(Wt){Wt=_a(Wt);var Jt=[];return It.test(Wt)&&Jt.push(""),Wt.replace(Pt,function(pr,_r,Mr,Nr){Jt.push(Mr?Nr.replace(Vt,"$1"):_r||pr)}),Jt});function no(Wt){if(typeof Wt=="string"||Jn(Wt))return Wt;var Jt=Wt+"";return Jt=="0"&&1/Wt==-1/0?"-0":Jt}function Un(Wt){if(Wt!=null){try{return Ar.call(Wt)}catch{}try{return Wt+""}catch{}}return""}var Jo=Lo(function(Wt,Jt){if(Wt==null)return[];var pr=Jt.length;return pr>1&&Ro(Wt,Jt[0],Jt[1])?Jt=[]:pr>2&&Ro(Jt[0],Jt[1],Jt[2])&&(Jt=[Jt[0]]),yo(Wt,$r(Jt),[])});function Ao(Wt,Jt){if(typeof Wt!="function"||Jt&&typeof Jt!="function")throw new TypeError(j);var pr=function(){var _r=arguments,Mr=Jt?Jt.apply(this,_r):_r[0],Nr=pr.cache;if(Nr.has(Mr))return Nr.get(Mr);var Br=Wt.apply(this,_r);return pr.cache=Nr.set(Mr,Br),Br};return pr.cache=new(Ao.Cache||vn),pr}Ao.Cache=vn;function Eo(Wt,Jt){return Wt===Jt||Wt!==Wt&&Jt!==Jt}function xo(Wt){return ga(Wt)&&Pr.call(Wt,"callee")&&(!rn.call(Wt,"callee")||kr.call(Wt)==nt)}var jn=Array.isArray;function Xn(Wt){return Wt!=null&&bo(Wt.length)&&!$o(Wt)}function ga(Wt){return io(Wt)&&Xn(Wt)}function $o(Wt){var Jt=Zn(Wt)?kr.call(Wt):"";return Jt==ut||Jt==ct}function bo(Wt){return typeof Wt=="number"&&Wt>-1&&Wt%1==0&&Wt<=rt}function Zn(Wt){var Jt=typeof Wt;return!!Wt&&(Jt=="object"||Jt=="function")}function io(Wt){return!!Wt&&typeof Wt=="object"}function Jn(Wt){return typeof Wt=="symbol"||io(Wt)&&kr.call(Wt)==At}var va=mr?br(mr):Fn;function _a(Wt){return Wt==null?"":Do(Wt)}function es(Wt,Jt,pr){var _r=Wt==null?void 0:jr(Wt,Jt);return _r===void 0?pr:_r}function ts(Wt,Jt){return Wt!=null&&Vo(Wt,Jt,zr)}function oo(Wt){return Xn(Wt)?cr(Wt):mo(Wt)}function Io(Wt){return Wt}function rs(Wt){return ro(Wt)?nr(no(Wt)):eo(Wt)}o.exports=Jo})(lodash_sortby,lodash_sortby.exports);var lodash_sortbyExports=lodash_sortby.exports;const sortBy=getDefaultExportFromCjs(lodash_sortbyExports),cropType={ASPARAGUS:"ASPARAGUS",CARROT:"CARROT",CORN:"CORN",GARLIC:"GARLIC",GRAPE:"GRAPE",JALAPENO:"JALAPENO",OLIVE:"OLIVE",ONION:"ONION",PEA:"PEA",POTATO:"POTATO",PUMPKIN:"PUMPKIN",SOYBEAN:"SOYBEAN",SPINACH:"SPINACH",SUNFLOWER:"SUNFLOWER",STRAWBERRY:"STRAWBERRY",SWEET_POTATO:"SWEET_POTATO",TOMATO:"TOMATO",WATERMELON:"WATERMELON",WHEAT:"WHEAT"},recipeType={FERMENTATION:"FERMENTATION",FORGE:"FORGE",KITCHEN:"KITCHEN",RECYCLING:"RECYCLING",WINE:"WINE"},fieldMode={CLEANUP:"CLEANUP",FERTILIZE:"FERTILIZE",HARVEST:"HARVEST",MINE:"MINE",OBSERVE:"OBSERVE",PLANT:"PLANT",SET_SPRINKLER:"SET_SPRINKLER",SET_SCARECROW:"SET_SCARECROW",WATER:"WATER"},stageFocusType={NONE:"NONE",HOME:"HOME",FIELD:"FIELD",FOREST:"FOREST",SHOP:"SHOP",COW_PEN:"COW_PEN",INVENTORY:"INVENTORY",WORKSHOP:"WORKSHOP",CELLAR:"CELLAR"},cropLifeStage={SEED:"SEED",GROWING:"GROWING",GROWN:"GROWN"},itemType={COW_FEED:"COW_FEED",CRAFTED_ITEM:"CRAFTED_ITEM",CROP:"CROP",FERTILIZER:"FERTILIZER",FUEL:"FUEL",HUGGING_MACHINE:"HUGGING_MACHINE",MILK:"MILK",ORE:"ORE",SCARECROW:"SCARECROW",SPRINKLER:"SPRINKLER",STONE:"STONE",TOOL_UPGRADE:"TOOL_UPGRADE",WEED:"WEED"},fertilizerType={NONE:"NONE",STANDARD:"STANDARD",RAINBOW:"RAINBOW"},genders={FEMALE:"FEMALE",MALE:"MALE"},cowColors={BLUE:"BLUE",BROWN:"BROWN",GREEN:"GREEN",ORANGE:"ORANGE",PURPLE:"PURPLE",RAINBOW:"RAINBOW",WHITE:"WHITE",YELLOW:"YELLOW"},{RAINBOW,...standardCowColors}=cowColors,dialogView={NONE:"NONE",ACCOUNTING:"ACCOUNTING",ACHIEVEMENTS:"ACHIEVEMENTS",FARMERS_LOG:"FARMERS_LOG",KEYBINDINGS:"KEYBINDINGS",ONLINE_PEERS:"ONLINE_PEERS",PRICE_EVENTS:"PRICE_EVENTS",SETTINGS:"SETTINGS",STATS:"STATS"},toolType={SCYTHE:"SCYTHE",SHOVEL:"SHOVEL",HOE:"HOE",WATERING_CAN:"WATERING_CAN"},toolLevel={UNAVAILABLE:"UNAVAILABLE",DEFAULT:"DEFAULT",BRONZE:"BRONZE",IRON:"IRON",SILVER:"SILVER",GOLD:"GOLD"},cowTradeRejectionReason={REQUESTED_COW_UNAVAILABLE:"REQUESTED_COW_UNAVAILABLE"},cropFamily={GRAPE:"GRAPE"},grapeVariety={CHARDONNAY:"CHARDONNAY",SAUVIGNON_BLANC:"SAUVIGNON_BLANC",CABERNET_SAUVIGNON:"CABERNET_SAUVIGNON",TEMPRANILLO:"TEMPRANILLO",NEBBIOLO:"NEBBIOLO"},{freeze:freeze$9}=Object,MEMOIZE_CACHE_CLEAR_THRESHOLD=10,BREAKPOINTS={MD:960},STANDARD_LOAN_AMOUNT=500,LOAN_GARNISHMENT_RATE=.05,LOAN_INTEREST_RATE=.02,FERTILIZER_BONUS=.5,INITIAL_STORAGE_LIMIT=100,INFINITE_STORAGE_LIMIT=-1,STORAGE_EXPANSION_AMOUNT=100,STORAGE_EXPANSION_BASE_PRICE=500,STORAGE_EXPANSION_SCALE_PREMIUM=50,INITIAL_FIELD_WIDTH=6,INITIAL_FIELD_HEIGHT=10,PURCHASEABLE_FIELD_SIZES=freeze$9(new Map([[1,{columns:8,rows:12,price:1e3}],[2,{columns:10,rows:16,price:5e3}],[3,{columns:12,rows:18,price:2e4}]])),INITIAL_FOREST_WIDTH=4,INITIAL_FOREST_HEIGHT=1,PURCHASABLE_FOREST_SIZES=freeze$9(new Map([[1,{columns:4,rows:2,price:1e5}],[2,{columns:4,rows:3,price:2e5}],[3,{columns:4,rows:4,price:3e5}]])),LARGEST_PURCHASABLE_FIELD_SIZE=PURCHASEABLE_FIELD_SIZES.get(PURCHASEABLE_FIELD_SIZES.size),PURCHASEABLE_COMBINES=freeze$9(new Map([[1,{type:"Basic",price:25e4}]])),PURCHASEABLE_COMPOSTERS=freeze$9(new Map([[1,{type:"Basic",price:1e3}]])),PURCHASEABLE_SMELTERS=freeze$9(new Map([[1,{type:"Basic",price:25e4}]])),PURCHASEABLE_COW_PENS=freeze$9(new Map([[1,{cows:10,price:1500}],[2,{cows:20,price:1e4}],[3,{cows:30,price:5e4}]])),PURCHASEABLE_CELLARS=freeze$9(new Map([[1,{space:10,price:25e4}],[2,{space:20,price:75e4}],[3,{space:30,price:2e6}]])),CROW_CHANCE=.4,MAX_CROWS=5,PRECIPITATION_CHANCE=.1,STORM_CHANCE=.5,SCARECROW_ITEM_ID="scarecrow",SPRINKLER_ITEM_ID="sprinkler",INITIAL_SPRINKLER_RANGE=1,COW_STARTING_WEIGHT_BASE=1800,COW_STARTING_WEIGHT_VARIANCE=200,MAX_ANIMAL_NAME_LENGTH=30,MALE_COW_WEIGHT_MULTIPLIER=1.1,COW_HUG_BENEFIT=.05,MAX_DAILY_COW_HUG_BENEFITS=3,COW_WEIGHT_MULTIPLIER_FEED_BENEFIT=.1,COW_WEIGHT_MULTIPLIER_MINIMUM=.5,COW_WEIGHT_MULTIPLIER_MAXIMUM=1.5,COW_MILK_RATE_SLOWEST=7,COW_MILK_RATE_FASTEST=2,COW_FERTILIZER_PRODUCTION_RATE_SLOWEST=7,COW_FERTILIZER_PRODUCTION_RATE_FASTEST=1,COW_FEED_ITEM_ID="cow-feed",HUGGING_MACHINE_ITEM_ID="hugging-machine",COW_MAXIMUM_VALUE_MATURITY_AGE=100,COW_MINIMUM_VALUE_MULTIPLIER=0,COW_MAXIMUM_VALUE_MULTIPLIER=1,COW_GESTATION_PERIOD_DAYS=3,COW_MINIMUM_HAPPINESS_TO_BREED=.8,NOTIFICATION_DURATION=6e3,NOTIFICATION_LOG_SIZE=14,PRICE_EVENT_CHANCE=.2,PRICE_EVENT_STANDARD_DURATION_DECREASE=1,STAGE_TITLE_MAP={[stageFocusType.HOME]:"Home",[stageFocusType.FIELD]:"Field",[stageFocusType.FOREST]:"Forest",[stageFocusType.SHOP]:"Shop",[stageFocusType.COW_PEN]:"Cows",[stageFocusType.WORKSHOP]:"Workshop",[stageFocusType.CELLAR]:"Cellar"},DAILY_FINANCIAL_HISTORY_RECORD_LENGTH=7,RECIPE_INGREDIENT_VALUE_MULTIPLIER=1.25,I_AM_RICH_BONUSES=[.05,.1,.25],PERSISTED_STATE_KEYS=["allowCustomPeerCowNames","cellarInventory","completedAchievements","cowBreedingPen","cowColorsPurchased","cowForSale","cowInventory","cowsSold","cowsTraded","cropsHarvested","dayCount","experience","farmName","field","forest","historicalDailyLosses","historicalDailyRevenue","historicalValueAdjustments","hoveredPlotRangeSize","playerId","inventory","inventoryLimit","isCombineEnabled","itemsSold","cellarItemsSold","learnedRecipes","loanBalance","loansTakenOut","money","newDayNotifications","notificationLog","priceCrashes","priceSurges","profitabilityStreak","purchasedCombine","purchasedComposter","purchasedCowPen","purchasedCellar","purchasedField","purchasedForest","purchasedSmelter","record7dayProfitAverage","recordProfitabilityStreak","recordSingleDayProfit","revenue","showHomeScreen","showNotifications","todaysLosses","todaysPurchases","todaysRevenue","todaysStartingInventory","toolLevels","useAlternateEndDayButtonPosition","valueAdjustments","version"],PEER_METADATA_STATE_KEYS=["cowsSold","cropsHarvested","dayCount","experience","playerId","money","pendingPeerMessages","version"],DEFAULT_ROOM="global",MAX_PENDING_PEER_MESSAGES=5,MAX_LATEST_PEER_MESSAGES=30,LEFT="left",RIGHT="right",TOOLBELT_FIELD_MODES=new Set([fieldMode.CLEANUP,fieldMode.HARVEST,fieldMode.WATER,fieldMode.MINE]),RESOURCE_SPAWN_CHANCE=.3,ORE_SPAWN_CHANCE=.25,COAL_SPAWN_CHANCE=.15,STONE_SPAWN_CHANCE=.4,SALT_ROCK_SPAWN_CHANCE=.3,BRONZE_SPAWN_CHANCE=.4,GOLD_SPAWN_CHANCE=.07,IRON_SPAWN_CHANCE=.33,SILVER_SPAWN_CHANCE=.2,HOE_LEVEL_TO_SEED_RECLAIM_RATE={[toolLevel.DEFAULT]:0,[toolLevel.BRONZE]:.25,[toolLevel.IRON]:.5,[toolLevel.SILVER]:.75,[toolLevel.GOLD]:1},COW_COLORS_HEX_MAP={[cowColors.BLUE]:"#8ff0f9",[cowColors.BROWN]:"#b45f28",[cowColors.GREEN]:"#65f295",[cowColors.ORANGE]:"#ff7031",[cowColors.PURPLE]:"#d884f2",[cowColors.WHITE]:"#ffffff",[cowColors.YELLOW]:"#fff931"},COW_TRADE_TIMEOUT=1e4,WEEDS_SPAWN_CHANCE=.15,KEG_INTEREST_RATE=.02,KEG_SPOILAGE_RATE_MULTIPLIER=.001,WINE_INTEREST_RATE=.015,WINE_GROWTH_TIMELINE_CAP=100,EXPERIENCE_VALUES={CELLAR_ACQUIRED:10,CELLAR_EXPANDED:5,COMPOSTER_ACQUIRED:10,COW_BRED:1,COW_PEN_ACQUIRED:10,COW_PEN_EXPANDED:5,COW_TRADED:1,FERMENTATION_RECIPE_MADE:1,FIELD_EXPANDED:5,FOREST_EXPANDED:10,FORGE_RECIPE_MADE:3,ITEM_SOLD:1,KEG_SOLD:2,KITCHEN_RECIPE_MADE:2,LOAN_PAID_OFF:25,NEW_YEAR:5,RAINBOW_COW_BRED:2,RECYCLING_RECIPE_MADE:1,SMELTER_ACQUIRED:10},STANDARD_VIEW_LIST=[stageFocusType.SHOP,stageFocusType.FIELD],Z_INDEX={END_DAY_BUTTON:1100},HEARTBEAT_INTERVAL_PERIOD=10*1e3,GRAPES_REQUIRED_FOR_WINE=50,YEAST_REQUIREMENT_FOR_WINE_MULTIPLIER=5;var src={exports:{}};function memoize$1(o,a){var s=a&&a.cache?a.cache:cacheDefault,$=a&&a.serializer?a.serializer:serializerDefault,j=a&&a.strategy?a.strategy:strategyDefault;return j(o,{cache:s,serializer:$})}function isPrimitive(o){return o==null||typeof o=="number"||typeof o=="boolean"}function monadic(o,a,s,$){var j=isPrimitive($)?$:s($),_e=a.get(j);return typeof _e>"u"&&(_e=o.call(this,$),a.set(j,_e)),_e}function variadic(o,a,s){var $=Array.prototype.slice.call(arguments,3),j=s($),_e=a.get(j);return typeof _e>"u"&&(_e=o.apply(this,$),a.set(j,_e)),_e}function assemble(o,a,s,$,j){return s.bind(a,o,$,j)}function strategyDefault(o,a){var s=o.length===1?monadic:variadic;return assemble(o,this,s,a.cache.create(),a.serializer)}function strategyVariadic(o,a){var s=variadic;return assemble(o,this,s,a.cache.create(),a.serializer)}function strategyMonadic(o,a){var s=monadic;return assemble(o,this,s,a.cache.create(),a.serializer)}function serializerDefault(){return JSON.stringify(arguments)}function ObjectWithoutPrototypeCache(){this.cache=Object.create(null)}ObjectWithoutPrototypeCache.prototype.has=function(o){return o in this.cache};ObjectWithoutPrototypeCache.prototype.get=function(o){return this.cache[o]};ObjectWithoutPrototypeCache.prototype.set=function(o,a){this.cache[o]=a};var cacheDefault={create:function o(){return new ObjectWithoutPrototypeCache}};src.exports=memoize$1;src.exports.strategies={variadic:strategyVariadic,monadic:strategyMonadic};var srcExports=src.exports;const fastMemoize=getDefaultExportFromCjs(srcExports);class MemoizeCache{constructor({cacheSize:a=MEMOIZE_CACHE_CLEAR_THRESHOLD}={}){Wr(this,"cache",{});this.cacheSize=a}has(a){return a in this.cache}get(a){return this.cache[a]}set(a,s){Object.keys(this.cache).length>this.cacheSize&&(this.cache={}),this.cache[a]=s}}const memoize=(o,a)=>fastMemoize(o,{cache:{create:()=>new MemoizeCache(a)},...a}),getCropLifecycleDuration=memoize(({cropTimeline:o})=>o.reduce((a,s)=>a+s,0)),{freeze:freeze$8}=Object,crop=({cropTimeline:o,growsInto:a,tier:s=1,isSeed:$=!!a,cropLifecycleDuration:j=getCropLifecycleDuration({cropTimeline:o}),id:_e="",name:et="",...tt})=>freeze$8({id:_e,name:et,cropTimeline:o,doesPriceFluctuate:!0,tier:s,type:itemType.CROP,value:10+j*s*($?1:3),...$&&{enablesFieldMode:fieldMode.PLANT,growsInto:a,isPlantableCrop:!0},...tt}),fromSeed=({cropTimeline:o,cropType:a,growsInto:s,tier:$=1},{variantIdx:j=0,canBeFermented:_e=!1}={})=>({id:(Array.isArray(s)?s:[s])[j]||"",cropTimeline:o,cropType:a,doesPriceFluctuate:!0,tier:$,type:itemType.CROP,..._e&&{daysToFerment:getCropLifecycleDuration({cropTimeline:o})*$}}),cropVariety=({imageId:o,cropFamily:a,variety:s,...$})=>({imageId:o,cropFamily:a,variety:s,...crop({...$})}),isGrape=o=>"cropFamily"in o&&o.cropFamily===cropFamily.GRAPE,grape=o=>{const a={...cropVariety({...o,cropFamily:cropFamily.GRAPE})};if(!isGrape(a))throw new Error("Invalid cropVariety props");return a},grapeSeed$1=crop({cropType:cropType.GRAPE,cropTimeline:[3,4],growsInto:["grape-chardonnay","grape-sauvignon-blanc","grape-cabernet-sauvignon","grape-tempranillo","grape-nebbiolo"],id:"grape-seed",name:"Grape Seed",tier:7}),grapeVarietyNameMap={[grapeVariety.CHARDONNAY]:"Chardonnay",[grapeVariety.SAUVIGNON_BLANC]:"Sauvignon Blanc",[grapeVariety.CABERNET_SAUVIGNON]:"Cabernet Sauvignon",[grapeVariety.TEMPRANILLO]:"Tempranillo",[grapeVariety.NEBBIOLO]:"Nebbiolo"},wineVarietyValueMap={[grapeVariety.CHARDONNAY]:1,[grapeVariety.SAUVIGNON_BLANC]:8,[grapeVariety.CABERNET_SAUVIGNON]:3,[grapeVariety.TEMPRANILLO]:5,[grapeVariety.NEBBIOLO]:10};var Oo;const grapeChardonnay=grape({...fromSeed(grapeSeed$1,{variantIdx:(Oo=grapeSeed$1.growsInto)==null?void 0:Oo.indexOf("grape-chardonnay")}),name:"Chardonnay Grape",imageId:"grape-green",variety:grapeVariety.CHARDONNAY,wineId:"wine-chardonnay"});var ko;const grapeSauvignonBlanc=grape({...fromSeed(grapeSeed$1,{variantIdx:(ko=grapeSeed$1.growsInto)==null?void 0:ko.indexOf("grape-sauvignon-blanc")}),name:"Sauvignon Blanc Grape",imageId:"grape-green",variety:grapeVariety.SAUVIGNON_BLANC,wineId:"wine-sauvignon-blanc"});var No;const grapeCabernetSauvignon=grape({...fromSeed(grapeSeed$1,{variantIdx:(No=grapeSeed$1.growsInto)==null?void 0:No.indexOf("grape-cabernet-sauvignon")}),name:"Cabernet Sauvignon Grape",imageId:"grape-purple",variety:grapeVariety.CABERNET_SAUVIGNON,wineId:"wine-cabernet-sauvignon"});var Mo;const grapeTempranillo=grape({...fromSeed(grapeSeed$1,{variantIdx:(Mo=grapeSeed$1.growsInto)==null?void 0:Mo.indexOf("grape-tempranillo")}),name:"Tempranillo Grape",imageId:"grape-purple",variety:grapeVariety.TEMPRANILLO,wineId:"wine-tempranillo"});var jo;const grapeNebbiolo=grape({...fromSeed(grapeSeed$1,{variantIdx:(jo=grapeSeed$1.growsInto)==null?void 0:jo.indexOf("grape-nebbiolo")}),name:"Nebbiolo Grape",imageId:"grape-purple",variety:grapeVariety.NEBBIOLO,wineId:"wine-nebbiolo"}),grapeVarietyToGrapeItemMap={[grapeVariety.CHARDONNAY]:grapeChardonnay,[grapeVariety.SAUVIGNON_BLANC]:grapeSauvignonBlanc,[grapeVariety.CABERNET_SAUVIGNON]:grapeCabernetSauvignon,[grapeVariety.TEMPRANILLO]:grapeTempranillo,[grapeVariety.NEBBIOLO]:grapeNebbiolo},getYeastRequiredForWine=o=>wineVarietyValueMap[o]*YEAST_REQUIREMENT_FOR_WINE_MULTIPLIER,asparagusSeed$1=crop({cropType:cropType.ASPARAGUS,cropTimeline:[4,2,2,1],growsInto:"asparagus",id:"asparagus-seed",name:"Asparagus Seed",tier:4}),asparagus$1=crop({...fromSeed(asparagusSeed$1,{canBeFermented:!0}),name:"Asparagus"}),carrotSeed$1=crop({cropType:cropType.CARROT,cropTimeline:[2,1,1,1],growsInto:"carrot",id:"carrot-seed",name:"Carrot Seed",tier:1}),carrot$1=crop({...fromSeed(carrotSeed$1,{canBeFermented:!0}),name:"Carrot"}),cornSeed$1=crop({cropType:cropType.CORN,cropTimeline:[3,1,1,1,2,2],growsInto:"corn",id:"corn-seed",name:"Corn Kernels",tier:2}),corn$1=crop({...fromSeed(cornSeed$1,{canBeFermented:!0}),name:"Corn"}),garlicSeed$1=crop({cropType:cropType.GARLIC,cropTimeline:[2,1,1,1],growsInto:"garlic",id:"garlic-seed",name:"Garlic Bulb",tier:5}),garlic$1=crop({...fromSeed(garlicSeed$1,{canBeFermented:!0}),name:"Garlic"}),jalapenoSeed$1=crop({cropType:cropType.JALAPENO,cropTimeline:[2,1,1,1],growsInto:"jalapeno",id:"jalapeno-seed",name:"Jalapeño Seed",tier:4}),jalapeno$1=crop({...fromSeed(jalapenoSeed$1,{canBeFermented:!0}),name:"Jalapeño"}),oliveSeed$1=crop({cropType:cropType.OLIVE,cropTimeline:[3,6],growsInto:"olive",id:"olive-seed",name:"Olive Seed",tier:6}),olive$1=crop({...fromSeed(oliveSeed$1,{canBeFermented:!0}),name:"Olive"}),onionSeed$1=crop({cropType:cropType.ONION,cropTimeline:[3,1,2,1],growsInto:"onion",id:"onion-seed",name:"Onion Seeds",tier:2}),onion$1=crop({...fromSeed(onionSeed$1,{canBeFermented:!0}),name:"Onion"}),peaSeed$1=crop({cropType:cropType.PEA,cropTimeline:[2,3],growsInto:"pea",id:"pea-seed",name:"Pea Seed",tier:5}),pea$1=crop({...fromSeed(peaSeed$1,{canBeFermented:!0}),name:"Pea"}),potatoSeed$1=crop({cropType:cropType.POTATO,cropTimeline:[2,1,1,1],growsInto:"potato",id:"potato-seed",name:"Potato Seeds",tier:2}),potato$1=crop({...fromSeed(potatoSeed$1,{canBeFermented:!0}),name:"Potato"}),pumpkinSeed$1=crop({cropType:cropType.PUMPKIN,cropTimeline:[3,1,1,1,1,1],growsInto:"pumpkin",id:"pumpkin-seed",name:"Pumpkin Seed",tier:1}),pumpkin$1=crop({...fromSeed(pumpkinSeed$1,{canBeFermented:!0}),name:"Pumpkin"}),soybeanSeed$1=crop({cropType:cropType.SOYBEAN,cropTimeline:[2,2],growsInto:"soybean",id:"soybean-seed",name:"Soybean Seeds",tier:3}),soybean$1=crop({...fromSeed(soybeanSeed$1,{canBeFermented:!0}),name:"Soybean"}),spinachSeed$1=crop({cropType:cropType.SPINACH,cropTimeline:[2,4],growsInto:"spinach",id:"spinach-seed",name:"Spinach Seed",tier:1}),spinach$1=crop({...fromSeed(spinachSeed$1,{canBeFermented:!0}),name:"Spinach"}),sunflowerSeed$1=crop({cropType:cropType.SUNFLOWER,cropTimeline:[1,1,1,1,1,1],growsInto:"sunflower",id:"sunflower-seed",name:"Sunflower Seed",tier:6}),sunflower$1=crop({...fromSeed(sunflowerSeed$1,{canBeFermented:!0}),name:"Sunflower"}),strawberrySeed$1=crop({cropType:cropType.STRAWBERRY,cropTimeline:[6,2],growsInto:"strawberry",id:"strawberry-seed",name:"Strawberry Seed",tier:5}),strawberry$1=crop({...fromSeed(strawberrySeed$1),name:"Strawberry"}),sweetPotatoSeed$1=crop({cropType:cropType.SWEET_POTATO,cropTimeline:[2,1,1,2,2],growsInto:"sweet-potato",id:"sweet-potato-seed",name:"Sweet Potato Slip",tier:6}),sweetPotato$1=crop({...fromSeed(sweetPotatoSeed$1,{canBeFermented:!0}),name:"Sweet Potato"}),tomatoSeed$1=crop({cropType:cropType.TOMATO,cropTimeline:[2,1,1,1,2,2,2],growsInto:"tomato",id:"tomato-seed",name:"Tomato Seeds",tier:3}),tomato$1=crop({...fromSeed(tomatoSeed$1,{canBeFermented:!0}),name:"Tomato"}),watermelonSeed$1=crop({cropType:cropType.WATERMELON,cropTimeline:[2,10],growsInto:"watermelon",id:"watermelon-seed",name:"Watermelon Seed",tier:4}),watermelon$1=crop({...fromSeed(watermelonSeed$1),name:"Watermelon"}),wheatSeed$1=crop({cropType:cropType.WHEAT,cropTimeline:[1,1],growsInto:"wheat",id:"wheat-seed",name:"Wheat Seeds",tier:3}),wheat$1=crop({...fromSeed(wheatSeed$1),name:"Wheat"}),{freeze:freeze$7}=Object,bronzeOre$1=freeze$7({description:"A piece of bronze ore.",doesPriceFluctuate:!0,id:"bronze-ore",name:"Bronze Ore",type:itemType.ORE,value:25,spawnChance:BRONZE_SPAWN_CHANCE}),{freeze:freeze$6}=Object,coal$2=freeze$6({description:"A piece of coal.",doesPriceFluctuate:!1,id:"coal",name:"Coal",type:itemType.FUEL,spawnChance:COAL_SPAWN_CHANCE,value:2}),{freeze:freeze$5}=Object,goldOre$1=freeze$5({description:"A piece of gold ore.",doesPriceFluctuate:!0,id:"gold-ore",name:"Gold Ore",type:itemType.ORE,value:500,spawnChance:GOLD_SPAWN_CHANCE}),{freeze:freeze$4}=Object,ironOre$1=freeze$4({description:"A piece of iron ore.",doesPriceFluctuate:!0,id:"iron-ore",name:"Iron Ore",type:itemType.ORE,value:40,spawnChance:IRON_SPAWN_CHANCE}),{freeze:freeze$3}=Object,silverOre$1=freeze$3({description:"A piece of silver ore.",doesPriceFluctuate:!0,id:"silver-ore",name:"Silver Ore",type:itemType.ORE,value:100,spawnChance:SILVER_SPAWN_CHANCE}),{freeze:freeze$2}=Object,stone$1=freeze$2({description:"A piece of rock.",doesPriceFluctuate:!1,id:"stone",name:"Stone",spawnChance:STONE_SPAWN_CHANCE,type:itemType.STONE,value:10}),{freeze:freeze$1}=Object,saltRock$1=freeze$1({description:"A large chunk of salt.",doesPriceFluctuate:!0,id:"salt-rock",name:"Salt Rock",spawnChance:SALT_ROCK_SPAWN_CHANCE,type:itemType.STONE,value:10}),{freeze}=Object,{COW_FEED,FERTILIZER,HUGGING_MACHINE,MILK,SCARECROW,SPRINKLER,WEED}=itemType,weed=freeze({id:"weed",name:"Weed",value:.1,doesPriceFluctuate:!1,type:WEED}),rainbowFertilizer$1=freeze({description:"Helps crops grow a little faster and automatically replants them upon harvesting. Consumes seeds upon replanting and disappears if none are available. Also works for Scarecrows.",enablesFieldMode:fieldMode.FERTILIZE,id:"rainbow-fertilizer",name:"Rainbow Fertilizer",type:FERTILIZER,value:15}),sprinkler$1=freeze({description:"Automatically waters adjacent plants every day.",enablesFieldMode:fieldMode.SET_SPRINKLER,hoveredPlotRangeSize:INITIAL_SPRINKLER_RANGE,id:"sprinkler",isReplantable:!0,name:"Sprinkler",type:SPRINKLER,value:120}),scarecrow$1=freeze({description:"Prevents crows from eating your crops. One scarecrow covers an entire field, but they are afraid of storms.",enablesFieldMode:fieldMode.SET_SCARECROW,hoveredPlotRangeSize:Number.MAX_SAFE_INTEGER,id:"scarecrow",isReplantable:!0,name:"Scarecrow",type:SCARECROW,value:160}),cowFeed$2=freeze({id:COW_FEED_ITEM_ID,description:"Each cow automatically consumes one unit of Cow Feed per day. Fed cows gain and maintain weight.",name:"Cow Feed",type:COW_FEED,value:5}),huggingMachine$1=freeze({id:HUGGING_MACHINE_ITEM_ID,description:"Automatically hugs one cow three times every day.",name:"Hugging Machine",type:HUGGING_MACHINE,value:500}),milk1$1=freeze({id:"milk-1",name:"Grade C Milk",type:MILK,value:40}),milk2$1=freeze({id:"milk-2",name:"Grade B Milk",type:MILK,value:80}),milk3$1=freeze({id:"milk-3",name:"Grade A Milk",type:MILK,value:120}),rainbowMilk1$1=freeze({id:"rainbow-milk-1",name:"Grade C Rainbow Milk",type:MILK,value:60}),rainbowMilk2$1=freeze({id:"rainbow-milk-2",name:"Grade B Rainbow Milk",type:MILK,value:120}),rainbowMilk3$1=freeze({id:"rainbow-milk-3",name:"Grade A Rainbow Milk",type:MILK,value:180}),chocolateMilk$1=freeze({id:"chocolate-milk",name:"Chocolate Milk",type:MILK,value:80}),items$1=Object.freeze(Object.defineProperty({__proto__:null,asparagus:asparagus$1,asparagusSeed:asparagusSeed$1,bronzeOre:bronzeOre$1,carrot:carrot$1,carrotSeed:carrotSeed$1,chocolateMilk:chocolateMilk$1,coal:coal$2,corn:corn$1,cornSeed:cornSeed$1,cowFeed:cowFeed$2,garlic:garlic$1,garlicSeed:garlicSeed$1,goldOre:goldOre$1,grapeCabernetSauvignon,grapeChardonnay,grapeNebbiolo,grapeSauvignonBlanc,grapeSeed:grapeSeed$1,grapeTempranillo,huggingMachine:huggingMachine$1,ironOre:ironOre$1,jalapeno:jalapeno$1,jalapenoSeed:jalapenoSeed$1,milk1:milk1$1,milk2:milk2$1,milk3:milk3$1,olive:olive$1,oliveSeed:oliveSeed$1,onion:onion$1,onionSeed:onionSeed$1,pea:pea$1,peaSeed:peaSeed$1,potato:potato$1,potatoSeed:potatoSeed$1,pumpkin:pumpkin$1,pumpkinSeed:pumpkinSeed$1,rainbowFertilizer:rainbowFertilizer$1,rainbowMilk1:rainbowMilk1$1,rainbowMilk2:rainbowMilk2$1,rainbowMilk3:rainbowMilk3$1,saltRock:saltRock$1,scarecrow:scarecrow$1,silverOre:silverOre$1,soybean:soybean$1,soybeanSeed:soybeanSeed$1,spinach:spinach$1,spinachSeed:spinachSeed$1,sprinkler:sprinkler$1,stone:stone$1,strawberry:strawberry$1,strawberrySeed:strawberrySeed$1,sunflower:sunflower$1,sunflowerSeed:sunflowerSeed$1,sweetPotato:sweetPotato$1,sweetPotatoSeed:sweetPotatoSeed$1,tomato:tomato$1,tomatoSeed:tomatoSeed$1,watermelon:watermelon$1,watermelonSeed:watermelonSeed$1,weed,wheat:wheat$1,wheatSeed:wheatSeed$1},Symbol.toStringTag,{value:"Module"})),itemsMap$2={...Object.keys(items$1).reduce((o,a)=>{const s=items$1[a];return o[s.id]=s,o},{})},itemsMap$1={...itemsMap$2},convertToRecipe=o=>{const a=Object.freeze({type:itemType.CRAFTED_ITEM,value:Object.keys(o.ingredients).reduce((s,$)=>s+RECIPE_INGREDIENT_VALUE_MULTIPLIER*itemsMap$1[$].value*o.ingredients[$],0),...o});return itemsMap$1[o.id]=a,a},salt$1=convertToRecipe({id:"salt",name:"Salt",ingredients:{[saltRock$1.id]:1},condition:o=>(o.itemsSold[saltRock$1.id]||0)>=30,description:"Useful for seasoning food and fermentation.",recipeType:recipeType.KITCHEN}),flour$1=convertToRecipe({id:"flour",name:"Flour",ingredients:{[wheat$1.id]:10},condition:o=>(o.itemsSold[wheat$1.id]||0)>=20,recipeType:recipeType.KITCHEN}),yeast$1=convertToRecipe({id:"yeast",name:"Yeast",ingredients:{[flour$1.id]:5},condition:o=>(o.itemsSold[flour$1.id]||0)>=25,recipeType:recipeType.KITCHEN}),getWineRecipeFromGrape=o=>({...convertToRecipe({id:o.wineId,name:`${grapeVarietyNameMap[o.variety]} Wine`,type:itemType.CRAFTED_ITEM,ingredients:{[o.id]:GRAPES_REQUIRED_FOR_WINE,[yeast$1.id]:getYeastRequiredForWine(o.variety)},recipeType:recipeType.WINE,condition:()=>!1}),variety:o.variety}),bread$1=convertToRecipe({id:"bread",name:"Bread",ingredients:{[flour$1.id]:10,[yeast$1.id]:5},condition:o=>(o.itemsSold[flour$1.id]||0)>=30&&(o.itemsSold[yeast$1.id]||0)>=15,recipeType:recipeType.KITCHEN}),butter$1=convertToRecipe({id:"butter",name:"Butter",ingredients:{[milk3$1.id]:5},condition:o=>(o.itemsSold[milk3$1.id]||0)>=30,recipeType:recipeType.KITCHEN}),sunButter$1=convertToRecipe({id:"sun-butter",name:"Sun Butter",ingredients:{[sunflower$1.id]:25},condition:o=>(o.itemsSold[sunflower$1.id]||0)>=200,recipeType:recipeType.KITCHEN}),oliveOil$1=convertToRecipe({id:"olive-oil",name:"Olive Oil",ingredients:{[olive$1.id]:250},condition:o=>(o.itemsSold[olive$1.id]||0)>=500,recipeType:recipeType.KITCHEN}),cheese$1=convertToRecipe({id:"cheese",name:"Cheese",ingredients:{[milk3$1.id]:8},condition:o=>(o.itemsSold[milk3$1.id]||0)>=20,recipeType:recipeType.KITCHEN}),rainbowCheese$1=convertToRecipe({id:"rainbowCheese",name:"Rainbow Cheese",ingredients:{[rainbowMilk3$1.id]:10},condition:o=>(o.itemsSold[rainbowMilk3$1.id]||0)>=30,recipeType:recipeType.KITCHEN}),chocolate$1=convertToRecipe({id:"chocolate",name:"Chocolate",ingredients:{[chocolateMilk$1.id]:10},condition:o=>(o.itemsSold[chocolateMilk$1.id]||0)>=25,recipeType:recipeType.KITCHEN}),carrotSoup$1=convertToRecipe({id:"carrot-soup",name:"Carrot Soup",ingredients:{[carrot$1.id]:4},condition:o=>(o.itemsSold[carrot$1.id]||0)>=10,recipeType:recipeType.KITCHEN}),jackolantern$1=convertToRecipe({id:"jackolantern",name:"Jack-o'-lantern",ingredients:{[pumpkin$1.id]:1},condition:o=>(o.itemsSold[pumpkin$1.id]||0)>=50,recipeType:recipeType.KITCHEN}),spaghetti$1=convertToRecipe({id:"spaghetti",name:"Spaghetti",ingredients:{[wheat$1.id]:10,[tomato$1.id]:2},condition:o=>(o.itemsSold[wheat$1.id]||0)>=20&&(o.itemsSold[tomato$1.id]||0)>=5,recipeType:recipeType.KITCHEN}),frenchOnionSoup$1=convertToRecipe({id:"french-onion-soup",name:"French Onion Soup",ingredients:{[onion$1.id]:5,[cheese$1.id]:2,[salt$1.id]:2},condition:o=>(o.itemsSold[onion$1.id]||0)>=15&&(o.itemsSold[cheese$1.id]||0)>=10,recipeType:recipeType.KITCHEN}),burger$1=convertToRecipe({id:"burger",name:"Burger",ingredients:{[bread$1.id]:1,[cheese$1.id]:1,[onion$1.id]:1,[soybean$1.id]:12,[spinach$1.id]:1,[tomato$1.id]:1},condition:o=>(o.itemsSold[bread$1.id]||0)>=5&&(o.itemsSold[cheese$1.id]||0)>=5&&(o.itemsSold[onion$1.id]||0)>=5&&(o.itemsSold[soybean$1.id]||0)>=25&&(o.itemsSold[spinach$1.id]||0)>=5&&(o.itemsSold[tomato$1.id]||0)>=5,recipeType:recipeType.KITCHEN}),summerSalad$1=convertToRecipe({id:"summer-salad",name:"Summer Salad",ingredients:{[spinach$1.id]:6,[corn$1.id]:1,[carrot$1.id]:1},condition:o=>(o.itemsSold[spinach$1.id]||0)>=30&&(o.itemsSold[corn$1.id]||0)>5&&(o.itemsSold[carrot$1.id]||0)>5,recipeType:recipeType.KITCHEN}),soyMilk$1=convertToRecipe({id:"soy-milk",name:"Soy Milk",ingredients:{[soybean$1.id]:20},condition:o=>(o.itemsSold[soybean$1.id]||0)>=100,recipeType:recipeType.KITCHEN}),chocolateSoyMilk$1=convertToRecipe({id:"chocolate-soy-milk",name:"Chocolate Soy Milk",ingredients:{[soyMilk$1.id]:1,[chocolate$1.id]:1},condition:o=>(o.itemsSold[soyMilk$1.id]||0)>=5&&(o.itemsSold[chocolate$1.id]||0)>=5,recipeType:recipeType.KITCHEN}),tofu$1=convertToRecipe({id:"tofu",name:"Tofu",ingredients:{[soyMilk$1.id]:4},condition:o=>(o.itemsSold[soyMilk$1.id]||0)>=20,recipeType:recipeType.KITCHEN}),chicknPotPie$1=convertToRecipe({id:"chickn-pot-pie",name:"Chick'n Pot Pie",ingredients:{[tofu$1.id]:6,[pea$1.id]:10,[carrot$1.id]:8,[wheat$1.id]:12,[soyMilk$1.id]:3},condition:o=>(o.itemsSold[tofu$1.id]||0)>=30&&(o.itemsSold[pea$1.id]||0)>=225&&(o.itemsSold[carrot$1.id]||0)>=300&&(o.itemsSold[wheat$1.id]||0)>=425&&(o.itemsSold[soyMilk$1.id]||0)>=15,recipeType:recipeType.KITCHEN}),hotSauce$1=convertToRecipe({id:"hot-sauce",name:"Hot Sauce",ingredients:{[jalapeno$1.id]:10,[salt$1.id]:1},condition:o=>(o.itemsSold[jalapeno$1.id]||0)>=50,recipeType:recipeType.KITCHEN}),salsa$1=convertToRecipe({id:"salsa",name:"Salsa",ingredients:{[jalapeno$1.id]:1,[onion$1.id]:1,[tomato$1.id]:1,[corn$1.id]:1},condition:o=>(o.itemsSold[jalapeno$1.id]||0)>=5&&(o.itemsSold[onion$1.id]||0)>=5&&(o.itemsSold[tomato$1.id]||0)>=5&&(o.itemsSold[corn$1.id]||0)>=5,recipeType:recipeType.KITCHEN}),spicyCheese$1=convertToRecipe({id:"spicy-cheese",name:"Spicy Cheese",ingredients:{[jalapeno$1.id]:4,[milk3$1.id]:10},condition:o=>(o.itemsSold[jalapeno$1.id]||0)>=20&&(o.itemsSold[milk3$1.id]||0)>=50,recipeType:recipeType.KITCHEN}),vegetableOil$1=convertToRecipe({id:"vegetable-oil",name:"Vegetable Oil",ingredients:{[soybean$1.id]:350},condition:o=>(o.itemsSold[soybean$1.id]||0)>=900,recipeType:recipeType.KITCHEN}),friedTofu$1=convertToRecipe({id:"fried-tofu",name:"Deep Fried Tofu",ingredients:{[tofu$1.id]:1,[vegetableOil$1.id]:2},condition:o=>(o.itemsSold[tofu$1.id]||0)>=50&&(o.itemsSold[vegetableOil$1.id]||0)>=50,recipeType:recipeType.KITCHEN}),spicyPickledGarlic$1=convertToRecipe({id:"spicy-pickled-garlic",name:"Spicy Pickled Garlic",ingredients:{[jalapeno$1.id]:2,[garlic$1.id]:5},condition:o=>(o.itemsSold[jalapeno$1.id]||0)>=12&&(o.itemsSold[garlic$1.id]||0)>=25,recipeType:recipeType.KITCHEN}),garlicFries$1=convertToRecipe({id:"garlic-fries",name:"Garlic Fries",ingredients:{[potato$1.id]:5,[garlic$1.id]:3,[vegetableOil$1.id]:1,[salt$1.id]:2},condition:o=>(o.itemsSold[potato$1.id]||0)>=50&&(o.itemsSold[garlic$1.id]||0)>=30,recipeType:recipeType.KITCHEN}),garlicBread$1=convertToRecipe({id:"garlic-bread",name:"Garlic Bread",ingredients:{[bread$1.id]:1,[garlic$1.id]:5,[oliveOil$1.id]:1},condition:o=>(o.itemsSold[bread$1.id]||0)>=30&&(o.itemsSold[oliveOil$1.id]||0)>=20&&(o.itemsSold[garlic$1.id]||0)>=50,recipeType:recipeType.KITCHEN}),strawberryJam$1=convertToRecipe({id:"strawberry-jam",name:"Strawberry Jam",ingredients:{[strawberry$1.id]:10},condition:o=>(o.itemsSold[strawberry$1.id]||0)>=60,recipeType:recipeType.KITCHEN}),popcorn$1=convertToRecipe({id:"popcorn",name:"Popcorn",ingredients:{[corn$1.id]:2,[butter$1.id]:1},condition:o=>(o.itemsSold[corn$1.id]||0)>=12&&(o.itemsSold[butter$1.id]||0)>=6,recipeType:recipeType.KITCHEN}),pumpkinPie$1=convertToRecipe({id:"pumpkin-pie",name:"Pumpkin Pie",ingredients:{[pumpkin$1.id]:4,[wheat$1.id]:10,[butter$1.id]:2},condition:o=>(o.itemsSold[pumpkin$1.id]||0)>=200&&(o.itemsSold[wheat$1.id]||0)>=250&&(o.itemsSold[butter$1.id]||0)>=75,recipeType:recipeType.KITCHEN}),sweetPotatoPie$1=convertToRecipe({id:"sweet-potato-pie",name:"Sweet Potato Pie",ingredients:{[sweetPotato$1.id]:6,[wheat$1.id]:10,[butter$1.id]:2},condition:o=>(o.itemsSold[sweetPotato$1.id]||0)>=200&&(o.itemsSold[wheat$1.id]||0)>=250&&(o.itemsSold[butter$1.id]||0)>=75,recipeType:recipeType.KITCHEN}),sweetPotatoFries$1=convertToRecipe({id:"sweet-potato-fries",name:"Sweet Potato Fries",ingredients:{[sweetPotato$1.id]:10,[vegetableOil$1.id]:1,[salt$1.id]:1},condition:o=>(o.itemsSold[sweetPotato$1.id]||0)>=100,recipeType:recipeType.KITCHEN}),onionRings$1=convertToRecipe({id:"onion-rings",name:"Onion Rings",ingredients:{[onion$1.id]:1,[vegetableOil$1.id]:1,[wheat$1.id]:5,[soyMilk$1.id]:1,[salt$1.id]:3},condition:o=>(o.itemsSold[onion$1.id]||0)>=50&&(o.itemsSold[vegetableOil$1.id]||0)>20&&(o.itemsSold[soyMilk$1.id]||0)>20&&(o.itemsSold[wheat$1.id]||0)>30,recipeType:recipeType.KITCHEN}),bronzeIngot$2=convertToRecipe({id:"bronze-ingot",name:"Bronze Ingot",ingredients:{[bronzeOre$1.id]:5,[coal$2.id]:5},condition:o=>o.purchasedSmelter>0&&(o.itemsSold[bronzeOre$1.id]||0)>=50,recipeType:recipeType.FORGE}),ironIngot$2=convertToRecipe({id:"iron-ingot",name:"Iron Ingot",ingredients:{[ironOre$1.id]:5,[coal$2.id]:12},condition:o=>o.purchasedSmelter>0&&(o.itemsSold[ironOre$1.id]||0)>=50,recipeType:recipeType.FORGE}),silverIngot$2=convertToRecipe({id:"silver-ingot",name:"Silver Ingot",ingredients:{[silverOre$1.id]:5,[coal$2.id]:8},condition:o=>o.purchasedSmelter>0&&(o.itemsSold[silverOre$1.id]||0)>=50,recipeType:recipeType.FORGE}),goldIngot$2=convertToRecipe({id:"gold-ingot",name:"Gold Ingot",ingredients:{[goldOre$1.id]:5,[coal$2.id]:10},condition:o=>o.purchasedSmelter>0&&(o.itemsSold[goldOre$1.id]||0)>=50,recipeType:recipeType.FORGE}),compost$1=convertToRecipe({id:"compost",name:"Compost",ingredients:{[weed.id]:25},condition:o=>o.purchasedComposter>0&&(o.itemsSold[weed.id]||0)>=100,description:"Can be used to make fertilizer.",recipeType:recipeType.RECYCLING,type:itemType.CRAFTED_ITEM}),fertilizer$1=convertToRecipe({id:"fertilizer",name:"Fertilizer",ingredients:{[compost$1.id]:10},condition:o=>o.purchasedComposter>0&&(o.itemsSold[compost$1.id]||0)>=10,description:"Helps crops grow and mature a little faster.",enablesFieldMode:fieldMode.FERTILIZE,recipeType:recipeType.RECYCLING,type:itemType.FERTILIZER,value:25}),wineChardonnay=getWineRecipeFromGrape({...grapeChardonnay}),wineSauvignonBlanc=getWineRecipeFromGrape({...grapeSauvignonBlanc}),wineCabernetSauvignon=getWineRecipeFromGrape({...grapeCabernetSauvignon}),wineTempranillo=getWineRecipeFromGrape({...grapeTempranillo}),wineNebbiolo=getWineRecipeFromGrape({...grapeNebbiolo}),recipes=Object.freeze(Object.defineProperty({__proto__:null,bread:bread$1,bronzeIngot:bronzeIngot$2,burger:burger$1,butter:butter$1,carrotSoup:carrotSoup$1,cheese:cheese$1,chicknPotPie:chicknPotPie$1,chocolate:chocolate$1,chocolateSoyMilk:chocolateSoyMilk$1,compost:compost$1,fertilizer:fertilizer$1,flour:flour$1,frenchOnionSoup:frenchOnionSoup$1,friedTofu:friedTofu$1,garlicBread:garlicBread$1,garlicFries:garlicFries$1,goldIngot:goldIngot$2,hotSauce:hotSauce$1,ironIngot:ironIngot$2,jackolantern:jackolantern$1,oliveOil:oliveOil$1,onionRings:onionRings$1,popcorn:popcorn$1,pumpkinPie:pumpkinPie$1,rainbowCheese:rainbowCheese$1,salsa:salsa$1,salt:salt$1,silverIngot:silverIngot$2,soyMilk:soyMilk$1,spaghetti:spaghetti$1,spicyCheese:spicyCheese$1,spicyPickledGarlic:spicyPickledGarlic$1,strawberryJam:strawberryJam$1,summerSalad:summerSalad$1,sunButter:sunButter$1,sweetPotatoFries:sweetPotatoFries$1,sweetPotatoPie:sweetPotatoPie$1,tofu:tofu$1,vegetableOil:vegetableOil$1,wineCabernetSauvignon,wineChardonnay,wineNebbiolo,wineSauvignonBlanc,wineTempranillo,yeast:yeast$1},Symbol.toStringTag,{value:"Module"})),coalNeededForIngots=(o,a=1)=>{switch(o){case bronzeIngot$2.id:return a*2;case ironIngot$2.id:return Math.round(a*3.5);case silverIngot$2.id:return Math.round(a*2.5);case goldIngot$2.id:return a*3;default:return a}},{bronzeIngot:bronzeIngot$1,ironIngot:ironIngot$1,silverIngot:silverIngot$1,goldIngot:goldIngot$1}=recipes,{coal:coal$1}=items$1,upgrades={[toolType.HOE]:{[toolLevel.DEFAULT]:{id:"hoe-default",name:"Basic Hoe",nextLevel:toolLevel.BRONZE},[toolLevel.BRONZE]:{id:"hoe-bronze",description:"Gives 25% chance to retrieve seeds when digging up crops",name:"Bronze Hoe",ingredients:{[bronzeIngot$1.id]:8,[coal$1.id]:coalNeededForIngots(bronzeIngot$1.id,8)},nextLevel:toolLevel.IRON},[toolLevel.IRON]:{id:"hoe-iron",description:"Gives 50% chance to retrieve seeds when digging up crops",name:"Iron Hoe",ingredients:{[ironIngot$1.id]:8,[coal$1.id]:coalNeededForIngots(ironIngot$1.id,8)},nextLevel:toolLevel.SILVER},[toolLevel.SILVER]:{id:"hoe-silver",description:"Gives 75% chance to retrieve seeds when digging up crops",name:"Silver Hoe",ingredients:{[silverIngot$1.id]:8,[coal$1.id]:coalNeededForIngots(silverIngot$1.id,8)},nextLevel:toolLevel.GOLD},[toolLevel.GOLD]:{id:"hoe-gold",description:"Gives 100% chance to retrieve seeds when digging up crops",name:"Gold Hoe",ingredients:{[goldIngot$1.id]:8,[coal$1.id]:coalNeededForIngots(goldIngot$1.id,8)},isMaxLevel:!0}},[toolType.SCYTHE]:{[toolLevel.DEFAULT]:{id:"scythe-default",name:"Basic Scythe",nextLevel:toolLevel.BRONZE},[toolLevel.BRONZE]:{id:"scythe-bronze",description:"Increases crop yield by 1 when harvesting",name:"Bronze Scythe",ingredients:{[bronzeIngot$1.id]:10,[coal$1.id]:coalNeededForIngots(bronzeIngot$1.id,10)},nextLevel:toolLevel.IRON},[toolLevel.IRON]:{id:"scythe-iron",description:"Increases crop yield by 2 when harvesting",name:"Iron Scythe",ingredients:{[ironIngot$1.id]:10,[coal$1.id]:coalNeededForIngots(ironIngot$1.id,10)},nextLevel:toolLevel.SILVER},[toolLevel.SILVER]:{id:"scythe-silver",description:"Increases crop yield by 3 when harvesting",name:"Silver Scythe",ingredients:{[silverIngot$1.id]:10,[coal$1.id]:coalNeededForIngots(silverIngot$1.id,10)},nextLevel:toolLevel.GOLD},[toolLevel.GOLD]:{id:"scythe-gold",description:"Increases crop yield by 4 when harvesting",name:"Gold Scythe",ingredients:{[goldIngot$1.id]:10,[coal$1.id]:coalNeededForIngots(goldIngot$1.id,10)},isMaxLevel:!0}},[toolType.SHOVEL]:{[toolLevel.DEFAULT]:{id:"shovel-default",name:"Basic Shovel",nextLevel:toolLevel.BRONZE},[toolLevel.BRONZE]:{id:"shovel-bronze",description:"Increases chance of finding ore",name:"Bronze Shovel",ingredients:{[bronzeIngot$1.id]:15,[coal$1.id]:coalNeededForIngots(bronzeIngot$1.id,15)},nextLevel:toolLevel.IRON},[toolLevel.IRON]:{id:"shovel-iron",description:"Increases chance of finding ore",name:"Iron Shovel",ingredients:{[ironIngot$1.id]:15,[coal$1.id]:coalNeededForIngots(ironIngot$1.id,15)},nextLevel:toolLevel.SILVER},[toolLevel.SILVER]:{id:"shovel-silver",description:"Increases chance of finding ore",name:"Silver Shovel",ingredients:{[silverIngot$1.id]:15,[coal$1.id]:coalNeededForIngots(silverIngot$1.id,15)},nextLevel:toolLevel.GOLD},[toolLevel.GOLD]:{id:"shovel-gold",description:"Increases chance of finding ore",name:"Gold Shovel",ingredients:{[goldIngot$1.id]:15,[coal$1.id]:coalNeededForIngots(goldIngot$1.id,15)},isMaxLevel:!0}}};for(let o in upgrades)for(let a in upgrades[o])Object.assign(upgrades[o][a],{toolType:o,value:0,doesPriceFluctuate:!1,type:itemType.TOOL_UPGRADE,level:a});const{GRAPE}=cropType,recipeCategories={[recipeType.KITCHEN]:{},[recipeType.FORGE]:{},[recipeType.FERMENTATION]:{},[recipeType.RECYCLING]:{},[recipeType.WINE]:{}},recipesMap={};for(const o of Object.keys(recipes)){const a=recipes[o];recipeCategories[a.recipeType][a.id]=a,recipesMap[a.id]=a}const upgradesMap={};for(let o of Object.keys(upgrades))for(let a of Object.values(upgrades[o]))upgradesMap[a.id]=a;const itemsMap={...itemsMap$2,...recipesMap,...upgradesMap},fermentableItemsMap=Object.fromEntries(Object.entries(itemsMap).filter(([o])=>"daysToFerment"in itemsMap[o])),cropItemIdToSeedItemMap=Object.entries(itemsMap$2).reduce((o,[a,s])=>{const{growsInto:$}=s;if($){const j=Array.isArray($)?$:[$];for(const _e of j)o[_e]=itemsMap$2[a]}return o},{});GRAPE+"",grapeSeed$1.growsInto;var alea$1={exports:{}};alea$1.exports;(function(o){(function(a,s,$){function j(rt){var nt=this,it=tt();nt.next=function(){var ot=2091639*nt.s0+nt.c*23283064365386963e-26;return nt.s0=nt.s1,nt.s1=nt.s2,nt.s2=ot-(nt.c=ot|0)},nt.c=1,nt.s0=it(" "),nt.s1=it(" "),nt.s2=it(" "),nt.s0-=it(rt),nt.s0<0&&(nt.s0+=1),nt.s1-=it(rt),nt.s1<0&&(nt.s1+=1),nt.s2-=it(rt),nt.s2<0&&(nt.s2+=1),it=null}function _e(rt,nt){return nt.c=rt.c,nt.s0=rt.s0,nt.s1=rt.s1,nt.s2=rt.s2,nt}function et(rt,nt){var it=new j(rt),ot=nt&&nt.state,at=it.next;return at.int32=function(){return it.next()*4294967296|0},at.double=function(){return at()+(at()*2097152|0)*11102230246251565e-32},at.quick=at,ot&&(typeof ot=="object"&&_e(ot,it),at.state=function(){return _e(it,{})}),at}function tt(){var rt=4022871197,nt=function(it){it=String(it);for(var ot=0;ot<it.length;ot++){rt+=it.charCodeAt(ot);var at=.02519603282416938*rt;rt=at>>>0,at-=rt,at*=rt,rt=at>>>0,at-=rt,rt+=at*4294967296}return(rt>>>0)*23283064365386963e-26};return nt}s&&s.exports?s.exports=et:this.alea=et})(commonjsGlobal$1,o)})(alea$1);var aleaExports=alea$1.exports,xor128$1={exports:{}};xor128$1.exports;(function(o){(function(a,s,$){function j(tt){var rt=this,nt="";rt.x=0,rt.y=0,rt.z=0,rt.w=0,rt.next=function(){var ot=rt.x^rt.x<<11;return rt.x=rt.y,rt.y=rt.z,rt.z=rt.w,rt.w^=rt.w>>>19^ot^ot>>>8},tt===(tt|0)?rt.x=tt:nt+=tt;for(var it=0;it<nt.length+64;it++)rt.x^=nt.charCodeAt(it)|0,rt.next()}function _e(tt,rt){return rt.x=tt.x,rt.y=tt.y,rt.z=tt.z,rt.w=tt.w,rt}function et(tt,rt){var nt=new j(tt),it=rt&&rt.state,ot=function(){return(nt.next()>>>0)/4294967296};return ot.double=function(){do var at=nt.next()>>>11,st=(nt.next()>>>0)/4294967296,ut=(at+st)/(1<<21);while(ut===0);return ut},ot.int32=nt.next,ot.quick=ot,it&&(typeof it=="object"&&_e(it,nt),ot.state=function(){return _e(nt,{})}),ot}s&&s.exports?s.exports=et:this.xor128=et})(commonjsGlobal$1,o)})(xor128$1);var xor128Exports=xor128$1.exports,xorwow$1={exports:{}};xorwow$1.exports;(function(o){(function(a,s,$){function j(tt){var rt=this,nt="";rt.next=function(){var ot=rt.x^rt.x>>>2;return rt.x=rt.y,rt.y=rt.z,rt.z=rt.w,rt.w=rt.v,(rt.d=rt.d+362437|0)+(rt.v=rt.v^rt.v<<4^(ot^ot<<1))|0},rt.x=0,rt.y=0,rt.z=0,rt.w=0,rt.v=0,tt===(tt|0)?rt.x=tt:nt+=tt;for(var it=0;it<nt.length+64;it++)rt.x^=nt.charCodeAt(it)|0,it==nt.length&&(rt.d=rt.x<<10^rt.x>>>4),rt.next()}function _e(tt,rt){return rt.x=tt.x,rt.y=tt.y,rt.z=tt.z,rt.w=tt.w,rt.v=tt.v,rt.d=tt.d,rt}function et(tt,rt){var nt=new j(tt),it=rt&&rt.state,ot=function(){return(nt.next()>>>0)/4294967296};return ot.double=function(){do var at=nt.next()>>>11,st=(nt.next()>>>0)/4294967296,ut=(at+st)/(1<<21);while(ut===0);return ut},ot.int32=nt.next,ot.quick=ot,it&&(typeof it=="object"&&_e(it,nt),ot.state=function(){return _e(nt,{})}),ot}s&&s.exports?s.exports=et:this.xorwow=et})(commonjsGlobal$1,o)})(xorwow$1);var xorwowExports=xorwow$1.exports,xorshift7$1={exports:{}};xorshift7$1.exports;(function(o){(function(a,s,$){function j(tt){var rt=this;rt.next=function(){var it=rt.x,ot=rt.i,at,st;return at=it[ot],at^=at>>>7,st=at^at<<24,at=it[ot+1&7],st^=at^at>>>10,at=it[ot+3&7],st^=at^at>>>3,at=it[ot+4&7],st^=at^at<<7,at=it[ot+7&7],at=at^at<<13,st^=at^at<<9,it[ot]=st,rt.i=ot+1&7,st};function nt(it,ot){var at,st=[];if(ot===(ot|0))st[0]=ot;else for(ot=""+ot,at=0;at<ot.length;++at)st[at&7]=st[at&7]<<15^ot.charCodeAt(at)+st[at+1&7]<<13;for(;st.length<8;)st.push(0);for(at=0;at<8&&st[at]===0;++at);for(at==8?st[7]=-1:st[at],it.x=st,it.i=0,at=256;at>0;--at)it.next()}nt(rt,tt)}function _e(tt,rt){return rt.x=tt.x.slice(),rt.i=tt.i,rt}function et(tt,rt){tt==null&&(tt=+new Date);var nt=new j(tt),it=rt&&rt.state,ot=function(){return(nt.next()>>>0)/4294967296};return ot.double=function(){do var at=nt.next()>>>11,st=(nt.next()>>>0)/4294967296,ut=(at+st)/(1<<21);while(ut===0);return ut},ot.int32=nt.next,ot.quick=ot,it&&(it.x&&_e(it,nt),ot.state=function(){return _e(nt,{})}),ot}s&&s.exports?s.exports=et:this.xorshift7=et})(commonjsGlobal$1,o)})(xorshift7$1);var xorshift7Exports=xorshift7$1.exports,xor4096$1={exports:{}};xor4096$1.exports;(function(o){(function(a,s,$){function j(tt){var rt=this;rt.next=function(){var it=rt.w,ot=rt.X,at=rt.i,st,ut;return rt.w=it=it+1640531527|0,ut=ot[at+34&127],st=ot[at=at+1&127],ut^=ut<<13,st^=st<<17,ut^=ut>>>15,st^=st>>>12,ut=ot[at]=ut^st,rt.i=at,ut+(it^it>>>16)|0};function nt(it,ot){var at,st,ut,ct,ft,dt=[],mt=128;for(ot===(ot|0)?(st=ot,ot=null):(ot=ot+"\0",st=0,mt=Math.max(mt,ot.length)),ut=0,ct=-32;ct<mt;++ct)ot&&(st^=ot.charCodeAt((ct+32)%ot.length)),ct===0&&(ft=st),st^=st<<10,st^=st>>>15,st^=st<<4,st^=st>>>13,ct>=0&&(ft=ft+1640531527|0,at=dt[ct&127]^=st+ft,ut=at==0?ut+1:0);for(ut>=128&&(dt[(ot&&ot.length||0)&127]=-1),ut=127,ct=4*128;ct>0;--ct)st=dt[ut+34&127],at=dt[ut=ut+1&127],st^=st<<13,at^=at<<17,st^=st>>>15,at^=at>>>12,dt[ut]=st^at;it.w=ft,it.X=dt,it.i=ut}nt(rt,tt)}function _e(tt,rt){return rt.i=tt.i,rt.w=tt.w,rt.X=tt.X.slice(),rt}function et(tt,rt){tt==null&&(tt=+new Date);var nt=new j(tt),it=rt&&rt.state,ot=function(){return(nt.next()>>>0)/4294967296};return ot.double=function(){do var at=nt.next()>>>11,st=(nt.next()>>>0)/4294967296,ut=(at+st)/(1<<21);while(ut===0);return ut},ot.int32=nt.next,ot.quick=ot,it&&(it.X&&_e(it,nt),ot.state=function(){return _e(nt,{})}),ot}s&&s.exports?s.exports=et:this.xor4096=et})(commonjsGlobal$1,o)})(xor4096$1);var xor4096Exports=xor4096$1.exports,tychei$1={exports:{}};tychei$1.exports;(function(o){(function(a,s,$){function j(tt){var rt=this,nt="";rt.next=function(){var ot=rt.b,at=rt.c,st=rt.d,ut=rt.a;return ot=ot<<25^ot>>>7^at,at=at-st|0,st=st<<24^st>>>8^ut,ut=ut-ot|0,rt.b=ot=ot<<20^ot>>>12^at,rt.c=at=at-st|0,rt.d=st<<16^at>>>16^ut,rt.a=ut-ot|0},rt.a=0,rt.b=0,rt.c=-1640531527,rt.d=1367130551,tt===Math.floor(tt)?(rt.a=tt/4294967296|0,rt.b=tt|0):nt+=tt;for(var it=0;it<nt.length+20;it++)rt.b^=nt.charCodeAt(it)|0,rt.next()}function _e(tt,rt){return rt.a=tt.a,rt.b=tt.b,rt.c=tt.c,rt.d=tt.d,rt}function et(tt,rt){var nt=new j(tt),it=rt&&rt.state,ot=function(){return(nt.next()>>>0)/4294967296};return ot.double=function(){do var at=nt.next()>>>11,st=(nt.next()>>>0)/4294967296,ut=(at+st)/(1<<21);while(ut===0);return ut},ot.int32=nt.next,ot.quick=ot,it&&(typeof it=="object"&&_e(it,nt),ot.state=function(){return _e(nt,{})}),ot}s&&s.exports?s.exports=et:this.tychei=et})(commonjsGlobal$1,o)})(tychei$1);var tycheiExports=tychei$1.exports,seedrandom$2={exports:{}};(function(o){(function(a,s,$){var j=256,_e=6,et=52,tt="random",rt=$.pow(j,_e),nt=$.pow(2,et),it=nt*2,ot=j-1,at;function st(yt,pt,ht){var At=[];pt=pt==!0?{entropy:!0}:pt||{};var St=dt(ft(pt.entropy?[yt,vt(s)]:yt??mt(),3),At),Ct=new ut(At),Mt=function(){for(var Dt=Ct.g(_e),Et=rt,wt=0;Dt<nt;)Dt=(Dt+wt)*j,Et*=j,wt=Ct.g(1);for(;Dt>=it;)Dt/=2,Et/=2,wt>>>=1;return(Dt+wt)/Et};return Mt.int32=function(){return Ct.g(4)|0},Mt.quick=function(){return Ct.g(4)/4294967296},Mt.double=Mt,dt(vt(Ct.S),s),(pt.pass||ht||function(Dt,Et,wt,jt){return jt&&(jt.S&&ct(jt,Ct),Dt.state=function(){return ct(Ct,{})}),wt?($[tt]=Dt,Et):Dt})(Mt,St,"global"in pt?pt.global:this==$,pt.state)}function ut(yt){var pt,ht=yt.length,At=this,St=0,Ct=At.i=At.j=0,Mt=At.S=[];for(ht||(yt=[ht++]);St<j;)Mt[St]=St++;for(St=0;St<j;St++)Mt[St]=Mt[Ct=ot&Ct+yt[St%ht]+(pt=Mt[St])],Mt[Ct]=pt;(At.g=function(Dt){for(var Et,wt=0,jt=At.i,Bt=At.j,Ht=At.S;Dt--;)Et=Ht[jt=ot&jt+1],wt=wt*j+Ht[ot&(Ht[jt]=Ht[Bt=ot&Bt+Et])+(Ht[Bt]=Et)];return At.i=jt,At.j=Bt,wt})(j)}function ct(yt,pt){return pt.i=yt.i,pt.j=yt.j,pt.S=yt.S.slice(),pt}function ft(yt,pt){var ht=[],At=typeof yt,St;if(pt&&At=="object")for(St in yt)try{ht.push(ft(yt[St],pt-1))}catch{}return ht.length?ht:At=="string"?yt:yt+"\0"}function dt(yt,pt){for(var ht=yt+"",At,St=0;St<ht.length;)pt[ot&St]=ot&(At^=pt[ot&St]*19)+ht.charCodeAt(St++);return vt(pt)}function mt(){try{var yt;return at&&(yt=at.randomBytes)?yt=yt(j):(yt=new Uint8Array(j),(a.crypto||a.msCrypto).getRandomValues(yt)),vt(yt)}catch{var pt=a.navigator,ht=pt&&pt.plugins;return[+new Date,a,ht,a.screen,vt(s)]}}function vt(yt){return String.fromCharCode.apply(0,yt)}if(dt($.random(),s),o.exports){o.exports=st;try{at=require$$0$3}catch{}}else $["seed"+tt]=st})(typeof self<"u"?self:commonjsGlobal$1,[],Math)})(seedrandom$2);var seedrandomExports=seedrandom$2.exports,alea=aleaExports,xor128=xor128Exports,xorwow=xorwowExports,xorshift7=xorshift7Exports,xor4096=xor4096Exports,tychei=tycheiExports,sr=seedrandomExports;sr.alea=alea;sr.xor128=xor128;sr.xorwow=xorwow;sr.xorshift7=xorshift7;sr.xor4096=xor4096;sr.tychei=tychei;var seedrandom=sr;const seedrandom$1=getDefaultExportFromCjs(seedrandom);class RandomNumberService{constructor(){Wr(this,"seededRandom",null);var s;const a=new URLSearchParams((s=window$1.location)==null?void 0:s.search).get("seed");a&&this.seedRandomNumber(a)}seedRandomNumber(a){this.seededRandom=seedrandom$1(a)}generateRandomNumber(){return this.seededRandom?this.seededRandom():Math.random()}unseedRandomNumber(){this.seededRandom=null}isRandomNumberLessThan(a){return this.generateRandomNumber()<=a}}const randomNumberService=new RandomNumberService,random=()=>randomNumberService.generateRandomNumber(),generateValueAdjustments=(o={},a={})=>Object.keys(itemsMap).reduce((s,$)=>(itemsMap[$].doesPriceFluctuate&&(o[$]?s[$]=.5:a[$]?s[$]=1.5:s[$]=random()+.5),s),{}),fruitNames=["Akee","Apple","Apricot","Avocado","Açaí","Banana","Bilberry","Blackberry","Blackcurrant","Blueberry","Boysenberry","Cantaloupe","Cherimoya","Cherry","Chico","Clementine","Cloudberry","Coconut","Crabapple","Cranberry","Cucumber","Currant","Damson","Durian","Elderberry","Feijoa","Fig","Goji","Gooseberry","Grape","Grapefruit","Guava","Honeyberry","Honeydew","Huckleberry","Jabuticaba","Jackfruit","Jambul","Jostaberry","Jujube","Juniper","Kiwano","Kiwi","Kumquat","Lemon","Lime","Longan","Loquat","Lychee","Mandarine","Mango","Mangosteen","Marion","Melon","Mulberry","Nance","Nectarine","Olive","Orange","Papaya","Peach","Pear","Persimmon","Pineapple","Pineberry","Pitaya","Plantain","Plum","Plumcot","Pomegranate","Pomelo","Prune","Pumpkin","Quince","Raisin","Rambutan","Raspberry","Salak","Salal","Salmonberry","Sapote","Satsuma","Soursop","Strawberry","Surinam","Tamarillo","Tamarind","Tangerine","Tomato","Watermelon","Yuzu","Zucchini"],__vite_import_meta_env__={BASE_URL:"./",DEV:!1,MODE:"production",PROD:!0,SSR:!1,VITE_API_ROOT:"https://farmhand.vercel.app/",VITE_FARMHAND_PACKAGE_VERSION:"1.19.2",VITE_NAME:"@jeremyckahn/farmhand",VITE_TURN_CREDENTIAL:"",VITE_TURN_USERNAME:""},endpoints={getMarketData:"https://farmhand.vercel.app/api/get-market-data",postDayResults:"https://farmhand.vercel.app/api/post-day-results"},features=Object.keys(__vite_import_meta_env__??{}).reduce((o,a)=>{const s=a.match(/VITE_ENABLE_(.*)/);return s&&(o[s[1]]=!0),o},{});var Bo;const searchParams=new URLSearchParams((Bo=window$1.location)==null?void 0:Bo.search);for(const o of searchParams.keys()){const a=o.match(/enable_(.*)/);a&&(features[a[1]]=!0)}const rtcConfig={iceServers:[{urls:"stun:stun.relay.metered.ca:80"}]},relayUrls=__vite_import_meta_env__!=null&&__vite_import_meta_env__.VITE_TRACKER_URL?[__vite_import_meta_env__==null?void 0:__vite_import_meta_env__.VITE_TRACKER_URL]:void 0,levels=[];levels[1]={unlocksShopItem:carrotSeed$1.id};levels[2]={unlocksShopItem:spinachSeed$1.id};levels[3]={unlocksShopItem:fertilizer$1.id};levels[4]={unlocksShopItem:pumpkinSeed$1.id};levels[5]={unlocksShopItem:sprinkler$1.id};levels[6]={unlocksTool:toolType.SHOVEL};levels[8]={increasesSprinklerRange:!0};levels[10]={unlocksShopItem:cornSeed$1.id};levels[12]={increasesSprinklerRange:!0};levels[14]={unlocksShopItem:potatoSeed$1.id};features.FOREST&&(levels[15]={unlocksStageFocusType:stageFocusType.FOREST});levels[16]={unlocksShopItem:onionSeed$1.id};levels[18]={unlocksShopItem:soybeanSeed$1.id};levels[20]={unlocksShopItem:wheatSeed$1.id};levels[22]={unlocksShopItem:tomatoSeed$1.id};levels[24]={unlocksShopItem:asparagusSeed$1.id};levels[26]={unlocksShopItem:jalapenoSeed$1.id};levels[28]={unlocksShopItem:watermelonSeed$1.id};levels[30]={unlocksShopItem:peaSeed$1.id};levels[32]={unlocksShopItem:strawberrySeed$1.id};levels[34]={unlocksShopItem:garlicSeed$1.id};levels[36]={unlocksShopItem:sweetPotatoSeed$1.id};levels[38]={unlocksShopItem:oliveSeed$1.id};levels[40]={unlocksShopItem:sunflowerSeed$1.id};levels[42]={unlocksShopItem:grapeSeed$1.id};for(let o=0;o<levels.length;o++)levels[o]={id:o,...levels[o]};Object.freeze(levels);const unlockableItems=levels.reduce((o,{id:a,unlocksShopItem:s})=>(s&&(o[s]=a),o),{}),itemUnlockLevels=Object.entries(unlockableItems).reduce((o,[a,s])=>(o[s]=a,o),{}),inventory$1=[cowFeed$2,huggingMachine$1],inventory=[asparagusSeed$1,carrotSeed$1,cornSeed$1,grapeSeed$1,garlicSeed$1,jalapenoSeed$1,oliveSeed$1,onionSeed$1,peaSeed$1,potatoSeed$1,pumpkinSeed$1,soybeanSeed$1,spinachSeed$1,sunflowerSeed$1,strawberrySeed$1,sweetPotatoSeed$1,tomatoSeed$1,watermelonSeed$1,wheatSeed$1,fertilizer$1,scarecrow$1,sprinkler$1],itemIds$1=new Set(inventory.map(o=>o.id)),wateredPlot="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABbklEQVRIia1WvY3GIAz15ToqRqCmZoAMwT4R+3iJ66lTMwIjXGX04tjJp9NZQgFsnv1sfkL0gdRaj0/sPhIN5oH/yekTmOh0/239hkpmbhYQMzcNoJ1Y64mIvrQSjVC8ecvuwsDyrI2IiEopxxiDxhgLRMZPQSwGaFRKWeOUEglYSukCiDaix0wsB+hkjEG994ZjCwhFbGQeM/CtGcQYKYSwxxjXeM5JvfeWc17zzNxCCPuc8+I8xkg55/08zx+XgSc6RcgImSGDzQIXQ/x64LIOwTEjm7drtBMB0c5Qb8mmq64jk37vvWkG2O+93w4jkVEDTdPKse5bzAXndpJF+QSimXrgi4G3573rwcu3u4twEqNGx1gPLLbeDO4uqrUemGthgKBSaLyLiGgVGLNxu001fbwuvPRYRdcZuZwDZm4S6dPVjKlBRxqcSJ0D/fUcWGDM3KRdgnt6/rwXTLcnHLIm316utzf5X/9C3oL6BQBimEemYBpmAAAAAElFTkSuQmCC",fertilizedPlot="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAVklEQVRYhe2QwREAIAjD2MVBnc65dAUOi+0J+fSZXM2aX1hz7GcS71KkkIhbKSSGGpEll4jQfyBbrh9RVy4R0Q/0AyUecEGVfx0Roq4cFQGFIvXGNFEOnwmdSclbLhUAAAAASUVORK5CYII=",rainbowFertilizedPlot="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAkUlEQVRYhe3Quw2AMAxF0ezDFizDCjTMwLI0VKaBSFhyEht/pITXuDxXTulfL4NjBntkn+B1b5S6NmgjvsIijyBRJo6vToQQZ0WY4XB+iOgCb4kwx1kRVngpYlw8R1jjGxQ+EInXItRwyQdccCpCHed8wBXHESH4s1C8FiHGNSJccRwxHp4XitdiXFBqIWiPuwDmWChFXQDxHwAAAABJRU5ErkJggg==",shoveledPlot="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAACXBIWXMAAAsTAAALEwEAmpwYAAABXklEQVRYheWYPQ7CMAyFTRcGxMaRei/Ue3EXLoBYqg6dyhAZue6Lk1T5oeJJVURckk8vdtSE6MgaelqGnpaSc5xCAL7Y/eH+q9/hfjSGjiUBIZhxdu31HBrWlgW2CUgQBkBiKP2OhpVxHUNgXSzMa1q3z7d7R/eP8/rRcLIPrUKnOxAMEdHt4iYNtQgejc9zaKgvEAcsZ2KhLMiQoENSeyFQi5zSLnmBcjizx6lOEjJxTogYpzZAXH5cliVhUFVKU5o4ZDkFc6gGjC+XIFBzh2rnkJXY3rJvsVxEtP6EkLt0LYd4VXiVfs4hc6dulkM6qUs7ZAlujKUdCgIh1cghndAmUGko0yGUQ0TlHUr+HmrmEErqplWGluyvqswSPPZaB8TQJCkwyWWPxIPqFsVTl2sDJHOJH/k7NzwSPPTHXrn4zvUxdwIsfb4PXo8MPS2+q5ccSgay5LsbirlXOow+jbqqwQYBTPwAAAAASUVORK5CYII=",bread="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAmklEQVRIiWNgGAUDDRjJ1PefWPNIteA/AwMDw9Ic7JLRUzDNJdYCvAbjsIiRgYGBgYWaBt9+jimGywKKDcZlwX8GBgaGhmDcGlUliTMYmwX/YQYX1M/CqWFCYxphU5EAciT//3AJt8GkWNSwFmE2E0nOIQOMWkB/C5AjmIGBcE4m1WAUw6liAS6DKbaAkMG4JHGV88ToHQXkAQCMXCTuoxbh9AAAAABJRU5ErkJggg==",burger="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA4ElEQVRIiWNgGAUEACOR6v6Tq5+Qgv8MDAwMkxJQBfml9Bk+PrvIkLeAsDm4JDAMhhlKqkXYLPiPz2BsFsEA1CIUM5mwKeSX0oez0Q2D8WFqkNViA+g+INv1aMEFNxerDwi5nhi1MIA1DvBZSgRAMZMFm4ozUFrlQT9OU/68qEfhi1h8wjAcqwAU/PdfA5FaaNJH0PDkJ58ZGBgYGDaG/Mcwk+QgenOCD86Guhod4LXg/6kWfMYTBmY1qObiTUXUADRPRXgzGjmApIxGDUCwsCMFYCvs8BbXZABiK7BRgAAAeO5Ta9GiRlQAAAAASUVORK5CYII=",butter="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABFklEQVRIS2NkoDFgpLH5DKMWEAzhgQmig0sY/iM7zT6G/LjC8AHIcDsHbxSvHzqwFc4n1TIUC7AZjh7IyJaB5AhZiGGBrp4+3ExBIRmCkUjIQrw+eP/uCdGWwdRevnQRxVdwC/Snff8/iY+TAT38YTbgsgwmDvMtyEfIwQa2AGT4hYirDIe2meC0ADms8PmMKhYg+wo9nvBaANII8gUM4AouQhbkffrOcDGLExw6KHEACiZkQMgyUFBh84Gd1xkGgxXaYEtQUhEoLkAWoFuE7jMQH+Q7ZAtgyRVkOAhgtQDmephFuCzDaiHUYGTDUYIIV45CtgyfhTCDQTQs/ImyAN1idAuR5ZENhokPTHFNsAAiQcHQ9wEAcVWNGQEhAZkAAAAASUVORK5CYIIA",carrotSoup="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAyElEQVRIie2UsRXCMAxEzzz6PAaAESihyiJMwghMwiKpSMkIyQB5mUAUIOfiyCYQ6HylpPsnO34BsrKyXKInv2CFRQ+V834yXDcdDruNWXOXu8nlAFGomixgLIh7x2vr2SvevG46APBmhmiP61wLvcrUE4j0FVxResPttE1uGfb4iojl1jwkfTUYihJAawY8Ne6xdxTMM7GhT6XbA8M3+Jsmz3TpKXh7K2BRSAiPBXwVYsFTAcDrHb8Loqc961cRDUplzGBkxfUAEyhSiovwVIoAAAAASUVORK5CYII=",cheese="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA10lEQVRIie2VsRHCMAxFfzi6tCzAEFmIYyyOhVIyAAvQpjaNjSVZsmWThjt+qTjvKYpyAX490w6MUGN+IwgA8Lrx4unKuaOCIMGWpFegdl2THPcGy7QEw2CPoDpnmjgOt6DZtQSG56U4M53vhcAEe4AAgG0F5oWVkoCNww2UcEWS1pR9jW6g6JbW4ojymnZDJdyoHdrUOqAVXbCteaa1OM6Ua0pv0uZMQ6/Fs2k9Ed9vKZiXLFEAMgQI4PEB208gwaLGgblTK1ng6rANtAWDHfYkoPz9/YM3a79OWiGiHuMAAAAASUVORK5CYII=",chicknPotPie="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAACHklEQVRIS+1Vv08TYRh+3g8GimJigpOySSks+idggh20bC0DJNaEXoxbJTI50uhQicDoXaVltNdBXI1RBv8ErcRN4oKDCy1L7zXve72zP64hIekk79Cvd993z/M+z/d8d4QhFw0ZHxcEZzp8YdH/bNHX9XlmAogBZsYojYZ2tNACYGDYgyGCx4TEy4+Rgem6KaABSiJ1pctfITspv8e9eBIHj1fQyGfD+fGtCuqFN9oIEWGu+CnEDf/Un85zfLEbVBBEgQf/wcbuPsa39/D7aEzBJ2+c6th5zQwcbpQwu/lZsfVHOo+nJmCi3hxtn3S4lYYANPMPFDi2taddn6499K9fVQBtxqBeKKmSkGBm8TKIzcDYBQTNfBZj2xWYlu/myZMsQIS7s0m8u78KMGFyqol6wcFc8cAnkPq+foenUxNQQ9TLkT4ysUisWphJ4sujZRz/iiFWXMKlnTLYM8KjdbhRDjc9JLAsi9eu/oBGB0AiJYqkIU8TI8Te7SWMeO0cEOH4KIZr1xu6/tvzXRhZbwibf27CeW3/2wNZkMvlOJPJhF1PfXgBbu+KKDLGj6XXbilIjK+Y8HPhmTYh5boubLuHQCZERTqdVhsE4Dzlum9h26X+mHYSRAP7VgWHbxB5tVqF4zjRBAGJjKJEql+Nvx+9VavVVHVgTTA/8HtgWasssZVDJv53Wqb39MwYEHuqqhf4TILz+B/1zNC/aH8Brz3WGQIa2zUAAAAASUVORK5CYIIA",chocolate="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABBklEQVRIic2VoRKCQBCGf7VTSQbeQGbovoQ2GxSzL2CkkE0+gb6A0U7wDQwkKt050zF3cHu7cOOMWxjudr5vd+8YgD8PxSUsQ+Cf3YaVLALhAIDV/UWy5ggsOCeZKnDCfZIpAi+ckkgFIrhLIrlFqq5rMRwAzNvFdaCqPMH2eOsX0rJgBWYHPoGq8gQA0LQdAOBwfrAS6RmM4ACwjiOrm6FMeot6uI6m7bCOo9G7lqVlQX4Hw0MmKzfh+vm87MnKXYIR3JRQ0izLSLi5wVZuSvT66fr2woeblsQ1czMkcFeC84B1TKmcEliSULgv0TmuqXAu2RrXHLgkVJUnCoJ/b5Dkl/Dg+AKF7I1oIzfs7AAAAABJRU5ErkJggg==",garlicBread="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABDklEQVRIS2NkoDFgpLH5DKMWEAzhwRVEGyrk/mNzckDHI5wOJdoHIMP9Ax6Bzf/4SRBizxsIdeASLwMuS4iyAGb4X1lPVA+8YmD4cv0EXksIWoBuuLTQVYan77QRFkEt+f+BgeHgI0yf4LUAp8uR/UGuBcQYLrDqBcMHBwlwMJHsA2QLkIMFbGiYBOVBBLLAwekzA4+2Be7MhBTJZPkAZgGGq2FWUmyB3mcGHntMH4CD7IY2PImCXA8CJKUicBDpfQZrxGYJAxGuB+klmEzhlmii+gSWwXCFPSwUibYAW0zjCxqiLAApghVw9nKQ4EIH2MIdWQ3BogKmmJySlGAc4M4AxMsQ7QPijURVSXMLAIP+thkNIUCYAAAAAElFTkSuQmCC",garlicFries="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAB00lEQVRIS7WVMUsDQRCFN8FGTKdYCYqglQiCRQjGRiwsBMFWA6KC/oFYim3+gBbaRC0VwcJCLDQhpBAEsVIQBSvR7sRGEnkb3zK37uUu4bLN7e3Nvm/ezG6SUB0eiQ7rq8iA80JffT7/oePl3PUuk/4HwGYEUIwC6bltVb3Y0Xs5Rwzi5btdER+AwQiCmBTgGsQ4J6xnaEFd7U74kiLI6WBm8059vZz5MqYIAEmvoiqlS+Omq3dclY8WTfLSvRPALGXWFAUc2bIsLiDdY7+zySjV1NKJ+vm81y6kSCY7q7MnAHG11z2zJsvbFCBrbYsACiffD3ktbLtqWiIWki5QW+kAMNcaXNRSGXM4ApssAbLOaDIa7+oLyoYBNzL7wBLhQ2FkoL5yuqVPDDLDMzm4ofvCQSi+YRzkSir/9Obra+BNBgCb1q+PdRO7xwragQQSTHE8WwJMplLq1vN0dqvFrHaCAQiAaDKyxmBsywCWgyBTn78JhGVM2wBb2PWOJGIDpG8aPxXV6cYJwogFQGGKxgoY3l9W/aM5k/H7Y1E9rx2254B3QTYRa4BwhIkjLvQfDffBhtgNdtWeMaGAICfNGisTiAQgxHU07WNpx0QGRLkHrphfBDxYKKqYnIMAAAAASUVORK5CYIIA",flour="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAEHUlEQVRIS7WVa2xTZRjH/6f30+vapVrqVl0ZSGKy6EQgDkwIypiaMYIfiEVjYoiXzZJM/KRRNOGTQuKcRickLtuIkhg2vCBREwNz04wwwiLboHRu3Uq30Z6ul9Pb1mPet+uxtzXGhPfLOee9/H//53ne9z0M7nJj7rI+ygGEMvD/so7OKZwoip5o2wOUQjBAe+dPuexcDeHtl5+iY8dO/Uz18wZbm+uw3malEwpEREEKJo3AC2BZ8VIAoVA86LkJQRCgUcsQ5ZfBMAz9Nto2/gtrXYUBuOxaQE1VZZ773BSJAOKciLMqKeKJZaTTGb3LP3Rg8zNOUZwAK6o34PnGetpXSrwsgGEEUZxMVLMyLHFByFVa+s7HltH14VsI8bwInZr14/SFK3m1zdZAaGuug91mpbn/5QsnHm1qy3OejIehUOloHwF8130MBg2LpWgMo+MzyIqfaGtCe+d5EVJU5FHXHQxd99I0EVG5Ukvzn5smUovAeD9GxyZp/3NHTtEnMTkXSODsIO0v2qaZOlRbccvjxafnrlFIthHRwpYtOBG+HYyDVSpQ/2BVdgcWA/Y2bMQTD9sR4WNY8HMUUq4RQ1w0BZNejRqrGdO+AOYWw/j24njpCN5xbAUXjmFrbSUWE0oEOA6sQorbgQjs1VbEoiGwGj3MygT+dPmxzqSl326Pl45fnfTgkU3Va0fwek6KaKpm5rDedh+21degUhFAx5nr0Go00LBK8LEEGEYCsykDIKZuzPMYm1rEwJC7dASH92+hB9SkY3FglwX+pAnf/3oVLzbZUHHPBKZmGzB8xU3BjpbtFNr94zSWIlFqhNSudnUnlixy42N2bN5gxtO76mGvGkJwYRMCSRN9d882oK//Eox6HWQyKQ48ac1A5xowOPwXLDoJFiJpjNyYxze/TZSOwLl/C6QQ8EqLHRX3TqLrtAFqNYuDe33oHbDQ4u/e8RB6zl7CwX07KLizW0nrRu6wWzNe1N6fOUtrbtNttZXwhtJIplI45ODxeZ8erzpC6O234NnHDTCYM65/H3HjhX0+9A1YsJKKw6JlaAQTngBOnh8rAgg9b+7EpI+HscJInRBHjuaMcxJB3zkLXNNevOeU4GjHCo46pej62kgLnkzEoVCqxHWk6KtbXLyuhZ72nRh2+WE1aSGXybFOL8HuRi4DaPHh+EkF1KwSrznC+PgrNQ6/xOOzXh0MOg0tLtl1JIVaNUt3VRHgeOsecEFOjIDcS8T5R18qcORQkqaCRPbuGxK835GmkXzwSZpGGorw0GvVVDgcFzDPRXBhZIqmSbzsSIr+uOmnByZ7cMiTOBsc+xvb6x6gAG8gDqtJBc8dHhKJFCtpAaxCBj6RglopR4iPg48ncfHabB6AfJT7B5e9MtYYLPlP/j9CZdf8Az/h7SitknPUAAAAAElFTkSuQmCC",frenchOnionSoup="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA3klEQVRIie2UPRKCMBBGvzh2Vlg43sDOgoOgDYU38BCUHMIbUNCgB6Gg8wYMBTlCbExY4iZk1DJfBfl5b5dkAGJiYoRnTv2DZQ8aaJMBp+thkXq/PQEA5wfPpQLVZNNLCJwTEZkAgJWG+zaEhClIGQsANfYdtvujmdXdLHXCfSLCEmu6eOw786xlxUYCAMpqQHHZzeBlNbB7aWZn4FqUtDlkWiNp89m4TGt2va4emM7AGw2iQBfczsc1dXURGlo9J/hJYsNdgq8kHNwnAN73eElErnbQr8Ip8iSEEePOC53iSqgjgs9oAAAAAElFTkSuQmCC",friedTofu="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA4ElEQVRIS2NkoDFgpLH5DIPDAj8Fhv/4fLrpAW6HEvQByPD+EhGs5u/a/wYsvv0sAwMuS/BaQMhwkMH+VtwMG499Jd0CQsECcjnIcBAg2wJcQQMytLDnzUi1ADnsiQkiUPjjAqCUhZKKkFMNKIwJWQAyGJsaUPJlY4ekLrgF6EmSGAtwGY6cfMEW4ErvIEtwAUKGw5IvI6npnVDhCMsbKBYQCmvkDEWs2lELsEYFtuIDHMnEhCssQxGrFlZ8E2UByLkgDcQ4BqYW5kWikinMNcQkafSKh2CNRijdE5KnuQUA0jXJFH9Pv6cAAAAASUVORK5CYIIA",jackolantern="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA7UlEQVRIidVUMRKDIBA8mJS+wHfkL3mAM/bpU6a3d8YHJG9Jny6lL7CWNHAg3gFHJoVbiHC3e9yKABwdqoJjJHxpAXO/nHFye7yyGrpWvBQnMQNw5wAFDkg6iFFkL9WBIdY4sWxuXMCYK8EYSKFULhZROUIN1OC1yW8wL/597TtWKIyFnE0xO+Lu5wWgbfYCepxYcRcLua6L7Cl6Pz9VMSyezfgRSYukEFnkPA69XvtuN49zYrAdpEgU9DjJOohPTU6cjdlR2YrQNv5MO2I4UmsAtP/4sPjLnxxfYmwR1yEmpvPIuwi53MYq8w6OL4W0Y7hN+2EVAAAAAElFTkSuQmCC",hotSauce="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAnklEQVRIiWNgGGTgPxQTDRhJMfz/f4jZjIyMROtlIsU15ACSfECOXpJ8sNrfkWG1vyMpWmgfREPfAmIj+T962Idu3E+UfmIswDCcFEuIsoCAPF4zWIiwgOHf/3lYxZkYkwjqJSuSbeYRNpgiC2atM6edBdd8ZpKknqg4IMdgGCDaB1pb0rGyCQGikimBVDQE8gGBnIwXDJ7CjkL9tAMAL4QnWOXkSy4AAAAASUVORK5CYII=",rainbowCheese="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABzUlEQVRIid2VvS9DURjGf5UrqZCwCBZNByQdhBvpQmLqH2BisIjqYrGQSNNEIo1BGCQsPrraDGKyaNIOGi4xSFiERGi6kDQ08XEM7j3t6a3bogvPcs77nvM+z3ve8wV/Ha4qcAgnzt8ICIDZ5oTiXMgMKLw1PyXX2EJjyzZgCspVfVdAWOROKBSpVEAAwhdM4gsmlYHFzKVjYDkBAYjRw4RC3BnsqjAv0JzII6lxrsRYWRJzY0ui1CkSAJHUOIAiYKx/Tj/f6FcC3Jyy0t6h+EI39QCuwhUIgFR8CIBd0+l1xZj3byrB/vATZ1Hn2luwBMTBjD9PMLijTJp+yQGwVLtMX3gKgO5wZ0UiVomU2/iWDRFzN0v7QkQAiM+9K8FGdNvMUucVg7X2YTlmlUieoofVAA+rAd6yIVsWd8ZRyez08IhiXz2f2ObYjunxcUaxr417vK4YAINz9lOtocvWW9frLHB6/Sj7Y7m8kEdvlf1s+oRs2p7pV7Cl9LR3q9iF5AD6RPHjqSJ0Uy/rD0UXrcfTWDajNr2Phpb8ZufoKSBHEltwusklsVjrLnY5PvllBYJa1OxZ7ff+EJtA0+Q+TCquavx6gPlyVovs/+ADoliAUUBEL7MAAAAASUVORK5CYII=",salsa="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABQUlEQVRIie2ToU7DUBSGvzaIdZItRQ/sCAKDZWK2AbOXAMODkJBN42sgs3sCzAQZaoKKKZYMCRNLD4Ldw21v2y3o/urk9tzvO/e2hTp16uzMotGTRaMn/93vlT0YNbsSpSHBbMP36QEAY38JQJSGALSSmMeTSwBuvt4KWc7iqNkVGwIwGU7p355XTmrkeZGfhwcPC6I0pJXEum7gwWyjkwOs23MdIEpDojTUAZ0TmCvJx76isnVTt5KYVWfA2F/qSXxnpwUAdKOdyXCq8HV7rvWqM3A49n0J4ROvk2MADi/unGYzYb4G+Hy5B+Cs/w7La2VnBCKCd/QMoKIymQ1VMCAfV3jeHzv/FYnI7zsyorzMjoEaMJCBFwkyEm2yZJnGLVT7PHfosh/NkexKEbxKACBb0z7gUlaVICOqcuzBqFOeHxC+hOOYYjlcAAAAAElFTkSuQmCC",soyMilk="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAz0lEQVRIiWNgGJHAysrqP00Nf/H45n+aWAIzHIapagm64cRawkSs4etWzscQL6lsJqiXoAX4DO9pr6XMAkoNxwtgYR4TE4MS5jD+/3dr//9/t5b8iEaOVJihyIYr1zAQZQFRkdzTXgsPFnHuKwwqfcEMTE/4iXIoURbAALLht/rmMbz8qkNdCxgYGEgynCwLSDGcgYGBgYUUw0kxGAZI9sHwsiAoPJHh2LFjjDSxgBjD8Vpw7NgxxqDwRIoMJwqgl0mklj1EuQLZUKq5nFoAAB8UtnDnOmpmAAAAAElFTkSuQmCC",spicyCheese="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABZUlEQVRIid1UPWrDMBh9atrg3qCLSwYPhnbq2jVgaEyP0SP4ED6CzyEHCl27Zit4SCHEi2/gEFPUIZb49OOftF7aBwZL+vze+55kAX8dbAIO0cd58UtiUecR6jzC+90T6jyyBH/agWjJnLhevSrucwUEAPSRmyJjI9LiAIBNMsMmmVmF5tzlCOJOxw/p1+BcX0S9OVO0cbjAXB0M5mwSHneJVTNfpCcFF7HMUbY7hrBDQHWgxfH4sT69rLoJmRdAHLZqXMYFAMDnoV5H3Z/jsIwL+DxUQswLsF9yJSA7UMe0qTJ83j+jqTLLqemSOpVdiMPWcg+Qq2K/5NaiGYPVvhdoBlxQAj4P4fNQI6TvJnGXKbquCZgFZVxokbg+pobKuADzAswXKa5uXgDjLhJ0YyXx7VusEdCIZHzyvFMProEYOjnSeeuuk9CE+pOpQ7q5Qw7HQhx3iWiqTKC9OckzGSYn/B/4BhgmpsuPu4+VAAAAAElFTkSuQmCC",spicyPickledGarlic="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABEUlEQVRIS91VwQ3CMAxMxQZELMAGLIDon2cWYBBeDMIC6Y9/EQuwAQugsAEqMtJFrpuiJk0+9Gm1d2ffua5U4acqjK/+kEBr3c0dm3POT2YwouIEpN5a29Vn823kfWrV4lgPmlpeOvXa9/W1B6uMMb1i0GQQEDg9IQLOiPduD5dGQGCrzc4rBiDIsxCgC4AR4fN+9d1RPboDeMDHxNWjDj+SPJDz/+VLFMF2rb2PRMKBoVh6kY2Ajw4qSEQSgTRXJocnLIoAixYaR2g3klIkt3gs/+gyqgNu8phivs20F03TTN9kmSIOliVF5AEBYVtD+c8SU5oviHgXvD7LA77JUrH8h082GTch9rLJW0DfFz/6H7rf9hk80F8vAAAAAElFTkSuQmCC",sunButter="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2UlEQVRIS2NkoDFgpLH5DCgWHF/F+p8aFlqG/YabC2eADDdxkqKG+Qxn9j1jgFkyzCwAhQ+lwQQKHhDACCKQYHWM1/8vZw5RFA88JnYMrUu2YUYyzIIIWwGKLFhx+MMAWjBrYtP/wJg0inywfskshrT8OuxBNHwt4PnhijXYvnDsxhAnKYhwGYxuKrJFRFtArOEwy2CWEGUBLsNrA/nA5jWv/4QzyMi2AGY4zGRsloB8QZYF6IbjsoSgBaCyaGgXFZQWeOgFHcg8rJU+KKjIKZCQi2mYfpq3KgAeqqgZelcVKAAAAABJRU5ErkJgggAA",chocolateSoyMilk="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAyUlEQVRIiWNgGJHAysrqP00N/3Bl2X+aWAIzHIaJsYSRFMO3zcrBEPdKm8Jw7NgxnOYwUWJ4Tsc2gnoJWoDP8CkVXpRZQKnhDAwMDCyEDEc3DMZfM7ERKiKM1wKCQTSlwgse1siGt4vfJMYDxEUyzBJkw5me8FPPAhhANrycVYIhJL+euhYwMDCQZDhZFpBiOAMDnlSEDZBiMAyQ7IPhZQGhgo4iC4gxHK8Fx44dY/RKm0KR4XgtwGUJKYYzMBBZ4SDXXKQYThcAAIIOcW1FSq9sAAAAAElFTkSuQmCC",oliveOil="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA9ElEQVRIS2NkoDFgJNZ8dlmB/8hqfz7+QJReohSBDKa5BXpuIv9F+N6APfHmkwjDpV1viHIcUYrApvJz/ndy/Q5m7tvNycDw8TtReolShGw4LB6ItYSwBUguR08QxFhC0ALksEe3gJi4wGsBPsNhlhGyZGAteLCV7T+bnhjevPjr0isGBe9fOB2K1wd0taBjuhCKTyoy34H5VPEByHBdQ0mGt28hhoKAZsZlBtPHItSzQEqOHcUHVLUAZDJNgwhfMqJKHNDMgqGfk7EV0+jBdfSkAAO+6pNgaQqyRM+cG8XcSye/IvgEKh7CFhDbKsChjuYWAAAtPZoZgsyz7QAAAABJRU5ErkJgggAA",onionRings="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABMUlEQVRIS+2UsQ0CMRAE/RExISlUQAs0gIQQGWQUQQUQkxKSIYREA7RABcSUAVqktfZPd28nn+EI8fbO3d7aTep5NT3rpz+g6HCVRYtR+qjS7V1vbREA8ct5m573R2bsr6/f7xpQJ8AT104Isj4pOASUxCkKyHg4yIzDcZNW61PuzgV02QIlzzL8h0UrAUYnVQBuhkAE3y0nLaeqASreOyCaC4rQDrSolkWadx7QpFjvddDRPckAiKuoVjSdz1oDtFGN/Me+H0DFtSp70Oad1rAAN0Uqjo3IMFcXQMW9MzlFHoA30esMcCuuN9da3VgR7QIH7UMHADvj3k6ANwN6GrUeRdJqoVM3RaVH3su9N7cWgHS1wAPxXpQSxlmFb1HURSkAGvPwsStZxO9eAPiNhXwBw/0AOoT0r0UAAAAASUVORK5CYIIA",popcorn="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABgElEQVRIie2VP2vCQBjGn0taDSI4tKBLUYyD+Kdzp27uguAkfoAuLf0UdusH6NhJlCKOQqFbP4AWhxAFF4dKrUopmvPtUA2pNMk1trRDn+W4e3PP7/K8IQf867fFRB5qX++RXS1TGgl5OJob4zwR12k6uCXiujknrpMTXMicGxMirtO81ySiChFViBsTc50bE28Qq/l6tALmvSYZ47xZs4NIbiA+PYfEHgGpCv58DyyLoFkZu7HOe31wB0hV2/07TuY0K0MO3QC4AJZFLJ/SYMF9yKEjLPppyAcnkIPAom/vYQvIlEbQLo+hp1qIP/igpzTkch20Wv7V3I944wrq6Ry9hg+Zs5FzFJ+9QDsbJSISGgF468G2cuzBprovr+gmIgCA9DcdwIygpobJqpoaNiOCTTzCgE1zK8QN8OM9EAIkAwrqq+zXqiciSAYU171uTWaMMWpnoyhoww+QgjZE5zAGxhjg8Ff+UkTJgIKCNhQ6uSeAF4lcFiKf4HaXzp/WG0R0GZSwU81hAAAAAElFTkSuQmCC",pumpkinPie="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA6klEQVRIS2NkoDFgpLH5DKMWEAzh0SAa5EG0v1j4P0EnMjAwOPa+xRmXWCVgBitocBBjPsODGz/A6rBZhGIBqQaj247NIrgFIMPxufjTt38o5vFxMeH0HcgimG/AFpBqOMxkYiwhygKQgaT4AKQe5guUIAJJEBuxuMIHPR5QIrmqquq/68+ZcL3EWgYzFKRxN3s6Q1tbG9xcjGQKsqSkLBFsycVmC6KSqX7tCbC6nq75KIaDxLDmA2RLiLIBh+E4LQBJgCwB0TDf4LII5GoQQA4WZLUEi2uYRbgswGUwTD1BC4gNIlzqhr4FAOLAXRkvhyyAAAAAAElFTkSuQmCC",salt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA3klEQVRIS2NkoDFgpLH5DANqwX8yfYfiaFw++K++6TjJ5t/0s4TpgZuLzQKyDQc5CmoJTgvIDRYGmI8JWlBz4S7JQdNioEyaBVcPKxFtibbtPQaqWLAuB2Jn0BRUu6liAczwR48eMcjJyaFYQrEFMMPRwwzmE4osABkOczXVLcDlcpBFyEFFsQ9gQYHsG+SIpsgCWLCADEdPPTA5qliAL1OQZQHRuQyqkOSMhmyB0R9lDPvOsaAWJ3SzAL2gA7kMvbj+T25hB/UmRvGPtT4gNQ6wOBRuxIDWyWR4BFMLAHg9rRn+GIpBAAAAAElFTkSuQmCC",summerSalad="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABeUlEQVRIie2VL2/CQByGn9IlBQdJde303ASmAr4BBsMHIJmZQZA0TSZmMCT7AJgZvsACogYxNz1bTQIOKppOHNdey7UlW4biNb1c797nvT+/Fm666a8yake8rpLK95N+pcddnfF82Kv0f+IUoAR03nmh8RnofY0OlAe8rhLVeLO/zLzbLoAUSKPKfP1l0G0LA9nW9alB5sNe7ty0Z7DZC4OPEMZ2E3sZAeAFBnGYPU0Hxp9NeDymc4pqFNPLgV5gYDrQmQnz7cAiDmF3bwHCHKDzHeEF+ZWoq2ig0XSRHY00tJcRpgP2ISIOYdsS/btnAS6TFmA6WWL7IFagmqogCfYCfTloAb6bpBNlOtMR2wECFIcivVTZKrQAmWbbstK9Vtv24bRdyyg1fhnpC14AJn1DFkq3Db2HBN9NssQDK22rSSXUd5PcLVJrQXtN5Y2QqTozI217gYHvJkwXBm+jIz6UXlG4QiVf+Vv0C1CZcT2gACpVzf/g3/UD5wa+Sc12t5MAAAAASUVORK5CYII=",sweetPotatoFries="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABFElEQVRIS+1UMQ7CMAxsRngHG+IlCJ4AY/ukZmyfAE9BbLyDjiAHXXQ1DkklujVTGsd357NTV8283Mz41UKQdXix6L8WXU6rlyAe+6HY2uKLAr7d7ILi++OWJNEiAoEc5lQxAUjgD3ItEQ6HKVVQxGajEpxJriyrwkigVaUALTAm1EKjRczOaiyVINGqtWXyHZus/UMyK84Bc9XoS6wAQV2uRZQbfggRklEPuA+llqXIJF+IAoFWbzXSAtLVWtMVLKrrOpDsh340ahpUA/yaPLx4J+Bt20as63kd9ofu+SUaMQ5Y9xBvmuYzRZok18SSuIB7710cU9gkyVxRCRgrxl7AR++AgZhsCgFAOaf4bzqFiO++AQm8tH22dLVsAAAAAElFTkSuQmCC",sweetPotatoPie="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA4UlEQVRIS2NkoDFgpLH5DKMWEAzh0SAa5EF03o39P0EnMjAwGO76iTMusUrADFbz5iLGfIZbW7+B1WGzCMUCUg1Gtx2bRXALQIYT62JC3gJZBPMN2AJqGg6zHGYJfSyA+QJEEwqmV1xcDGLfIJGKDaDHA0okV1VV/Q890wvXR8gy5OCAsVebFDO0tbXBzcVIpiBLstyNwepft0YRik+wvGj1MjA9bedZFMNBYljzAbIlRNmAw3CcFoAkQJaAaJhvcFkEcjUIIAcLslqCxTXMIlwW4DIYpp6gBcQGES51Q98CAC9yVxnnyn4gAAAAAElFTkSuQmCC",spaghetti="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABBElEQVRIie2VIRLCMBBFfxngGhimAtEz9BBgEKgqLkANBgUX4ADY3AfBYLgGFYuAbXfThDSFGQxfZf4k/2W3mynw16+VhDaYEsTrxT6839YwFDwvDrhcb0inExhsKBbkBJgSxMFS7BkcyT7jg7YApgRl+Vp56XRSV8EgALXHUBdk4CtNBnfxsnytvpcTwK2JCZbevDi0IK0K+gT7PECPKdFqrGHLotV/2Xf2sNvq0NO9zmYAnSvCbNTwbFhIr1AAgMhK1BSdq6Z9ySjuTcmzCizW5NsUK749EBjTb8juw8dVyNu7AB9B7HAfoBfEFf4OAOD5IkMgMdrOrC6zGCol+h/xl9IDcxCDNEfiwBwAAAAASUVORK5CYII=",strawberryJam="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAVRJREFUSIljYBgFBAAjLon+MGsY8z8h/YWrjuJUwIRLgschgpDhDAwMDP+h6vC7AB0sv/6a4ffJTQxrnv4nZAFDiDQjI6u5H0OkpihWeRZcGtc8/f8//vtJQuYzLHxq/j8ST1DjtCDRxYJx/h6CQcSQ6GLB+AOPPIbNy6+/ZuBhZ2OYvXz1//qMZELmMzTOmMuQGhnK+OXnL6zBhBHJpBjOwMDAUJ+RzDB7+er/POxsWOUxLCDFcHRLsMlhjQMtFyOSLGBgYGBgCMnGKowzH1ALYLWA49w5Bo5z54gygJBanMkUpplSQHQQZe83ZMjeb0gbC2AG9xYzMvwwIi0BEO2D3mJEniTFEqIsmOp4nuz4wBrJMBeiG4rNErhvcOQDvKmI1PDGBjCCqFhKkDEch2twgfCQbIZiKUGsRTbW0lTqxCGG3mfvCRbVyI56ZmGHs9KhKQAAu7Vof/9SQdkAAAAASUVORK5CYII=",tofu="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABLElEQVRIie1UuW3EMBAcmgTYgSAIduASHDhw6ALcgMu4Qq4MN+ACFCpQ4BIcUCYO14EACuvgjtLy0YmJHWnCITmzu7MgsGPHjj+HKLnUdy2VCj6/vAaamwZ919LDfYPRAVql55wfHXA+2cDkrkQcCEUmkvMdz5vBZgtYNeDio7twE0loBUgxBbwZLHyXRQZ8LLzKWFirRZzfAzBnlhjkxsJFOW8Gi6pukvOvj8NsEkyt71qq6gZmsCASECJcHs5VdTNXzrtR35/BmyQWrRA8jLdndICSEvbHgGd0Pi3iT+9H4Lqh2Qx4u0rK4IyH7LEmvmqg1bKKPFjP8QL4WGLx2ID4YymmJFhvptUlgy1xTtA1ebjHt1xTWWyJA5mQ4y3Ywi3x+KD4Q7uh8f/4BeeCk0AHVwhiAAAAAElFTkSuQmCC",vegetableOil="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAxElEQVRIS2NkoDFgpLH5DERbwL71y39kx/z05iFKL1GKQAbT3IKWatH/oT6/wJ5YvYWNoab1NVGOI0oRsuGwYCLWEoIWYDOcFEvwWoDPcGItGbWAYIoa2EgGReTQTkVeNvr/nz18gLc8lJJXYNh25CLOoMYpAQqa4JhDDMfPXIJbkBgTxjB/ySoGZPrGjRsMa5fY4Sw6iLIAm8Ewi4aGBbAwQvcJSNzSRI+8IAJppmkkw/IAMVUqvrqBYE4mxgJ8aoa+BQAVra8Zml1jUgAAAABJRU5ErkJgggAA",yeast="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABbklEQVRIS+2Uv0vDQBTHvwc6RAIhOJToZinURYiC+RdchG7FvbropH+HTrpId+mmuPRfiKABFwNSN00dJBSCGRRP7poLaS6/sHQQfVtyl8/nvXe5RzDjIDPm419Q2uG/1SKa6kel6qts4mCntw0aKQgBzPa18BUy8hbjbDcOG+huNpGVfufGxe3JY7IwiZcloNZRA4zoe+/otdbjzAXp5XWEpZrGL1H76g66sQD2YB9z2QQzLeDwwAvxQSmHPw/HsLwQknlCoBqKJEkK6NaZCX8QYOSFuGiZuZmnZexMdi4daIYCva6iv+/ElUwKTk3+rf8U4JNSdK1VqfdJOGvVck1Dx37AHCHQV1S+3D8oEQjI2yDAF7JFLLNd2+UNX6yPwSIqC5IiaSxSGVwqsPaa0NeU0vlStMG/D2Gfu5lnwF7SaSRpuPTPRpn9SJIFzxPwSkQbWEVFEbVDbKl0k9O89JSQrkFRAlWG3VSH/vsF3ysBgRmuWgXeAAAAAElFTkSuQmCC",wineGreen="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABLElEQVRIS2NkoDFgJNH8/1D1ROsjWiEDA8P/C9ujweYbeC4FUUTpJUoR1NX/z2+DWGDoNVQt2LIkD+wDn5hJtAkimseBR7oU2Ac7Zj6jug/+e6ZLo6To7TOfEmUJMakIw3CYTcRYMuAW4HQ9sb4g5AMUC/4zQEoKRqRMTCiYiLYAZHiQrhvYgnWXd8EtoYoFMMM9bZTBFmw/chduCcUWgNI+yOVetsoM/6FlKSMjA8O2wxBLCOUJgkE0a0oC2HBD41qG82dbGP7//89gYVPLcPJoM9iStJwFePMDURaAgoaRkZHB0LiGgY2DgeHkUYhFoKCiigU09QF6HIDCHwSoFgegMgg5icIyGCypUpyKEIUcrDqGWQHxCqUWgMxANxmlVCVUNxNKReiGkcwHAB32mBlT632HAAAAAElFTkSuQmCC",winePurple="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABWUlEQVRIS2NkoDFgJNH8/1D1ROsjWiEDA8P/bB5+sPlTv3wEUUTpJUoR1NXDwAIlCVmwZ+69eEybIIrSdwZbsOzi3qFnwX+Y62HJmlhfEJOKMAwnxZKBt0BAUPC/l6whw39YHgblMCZGBpDAskv7CEY2QR/w8PD8X7ZsGcN/mA2MjAyf/SIZ+DYtZ4iKimL48uULXjMIWsArKPh/+vvfDLybloFd/dk/mkF271qGx85BDJmCbAyf37+nzAJuHp7/2zeuZXjkHMQgu3cd2GDejcsYBHk4GDz9gxm+UsUHn/4zMPByMDB8+Ay25MOXHwwMjIwM0dQIIlApemjvToZH7uEMvOsWgVPo5+A4BgY2FoZMtr+UBxHIgkhdJ3DK+f8PkpTAqYjIIoNgJIMsQM/FQyuj0cUH9or6DNJ8IijV99NPbxgO3r9IeU6GVZc4GgcE45CgAhJbHRjKAc39ixlOVxPLAAAAAElFTkSuQmCC",asparagus="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAV9JREFUSInFVTuOgzAUHKJttlmlJF2UFIgr0EUpkNiaC3AGjsEZuAA1kVKg7SjpIkSRgg4phyBF8pCxn8GglTJVHL/PvBk/AXwCjmf3/5Wz4QKd7WlRk6kcSw703WA4X+sLmrKz5KQlORsxEAB+fm1T4iM8Djf2/5FEYRwNwY/DDWEcTUrleHYfxtFQnGsyNGjKzsqSFPe6AAAc3bMR8yxJR2eZlGIy4V4XSjIHZ3tClbdaUl8mBeD99bLZorn7XYBrfgFQoMpbvcnkAQBUeQvfDbDffcN3g1W7MWpA4MbUvRB6DLr7UQPZZLEAoJonI4wjRR52AuAljyjX3Iuaule2lFhSA5pIZEd+idNy7NkJmrKzOLk4iUx2RbsHU4U4AjrM7gHwkkknARE4ukCWpMq+sBPIO6G7FyfLktTMA5kZB5KIMCUV28DUZBMPVpm8BKtNfv/upbOC2c/hXIGP4wnebtncsEc6vwAAAABJRU5ErkJggg==",asparagusGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJhJREFUSIljYBgFIxOoW0n8p5ZaJmwa1AUcibKEGLWM6BrcNb3g/J3XtzHcPPaCEUMXCWpZ0AV2Xt9GyOFkqR2hgJiEgJGKSDGcmNSGNYUQYzixqQ0jFRELXitdRXCu41ZHtgXntj4kVysqULeS+E9K0YEO8MYBLCIZGBgYbn7YjzOc8QGcQYQekTc/kGo0AQsYGEaLguECAF6gPZZVZb3GAAAAAElFTkSuQmCC",asparagusGrowing2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAQdJREFUSIljYBgF5AB1K4n/1FLLhE2DuoAjUZYQo5YRXYO7phecv/P6Noabx14wYugiQS2GD14rXSXkcJLUwy1Qt5L4H1qSBNdEjEUwNfjUYvhAWdOZ4dzWhwzntj5kCC1Jwhq+MMfA1J3b+pCgY8gCxCQEDB+QYjgxqQ1rCiHGcGJTGws5FjAwoEXsddzqyA4iYgFBC9StJP4TCmdcqY2gBfCIxBOZyprOeB2IMw7QI/LmB4R4aEkSw+qeeQwMDAwM57ZCaIoi+bXSVXhE3jz2grElqI0YbQwMDASCCLnIwBfOJFuAXC4xMBAOZ5ItQDf47vW9DKt75uEMZ3wApwb04CDH8OEBAFoqeOiVTrE/AAAAAElFTkSuQmCC",asparagusGrowing3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAUBJREFUSInFUz3KwkAQnYgHsIyVosVia5lGxELQwsoLeAaPkTPkAqks8oFFCpuU6WRJkSJdwMYbxMZdxv2b1U/wQSAhM/Pe/DyAX4BFYfet2J4pgQ2WXiQ+sYGasJ5t5PeZ/0FVtIGW9Uas1sFtcqWEvxUvCVgUdvvjQSb5EIkYV6zWwXS2ku/748E4XyyGgiSoijZI4wRqnmtENpRZQ4rROhCoeQ5pnBgXJ8SwwRLKrHGK6ZMyDcAXNB5uII0TSfwVAgBlsdxcXCN4BnX4W8zVVoCCtoOqaAPxSKcSbrUtWOsAQ3VqdTfHUddmvSIMPG/VA65rIwmwo9UxYOW7aGEdkZFAVYmLqYak4OxAFKbGcCou1n/W02NR2M23oxcyTIJH4jphL6OZLsXXF14ENc+hzJqPzOZ1pv+BU5HvnH+KB+Rns9NcWsNEAAAAAElFTkSuQmCC",asparagusSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAsUlEQVRIie1VwQ2AIAw8jJMYV2CRDuoirkBYRT9CxJS2Up9ewsNiubO9IvBDQWBih7LvIjjWZakPKWc3yT25OfwrkpkLEkUAwLbtUq6plBMXVA4Grq8t60HWYKQH9R2iWMX0SjniokZEIXlDoOGVGUbdYbazx+MmF2kE7qmWkqxlEEX0CKyNVEWwg1ZQJtoqghs6kcAKotgV0yMIKefmypCsKF0tXhepPXD/UAwifsg4AawtUVA+F49vAAAAAElFTkSuQmCC",carrot="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA3klEQVRIie2UMQ7DIAxFTVUJZcnIBTggU0+RKQfMBTJmQUx0aEDY2FSkdMvbwMn//o4VgJshrFOEdYr/N+m57xalKYaloqKd4o9uk4TzqnrmcqJW5+lOEH92m3BnmqZALJyU86+rDeFEK0E8Fp0Ps/PYyHklzrwwbnWADAAA5lfAJkSMQ9qiLL7tIV9Sw9OsuTmSO+p+2wNYU4zrk0QhAyEJl6Dq3hqNkiCS8JU1TcLWaJRANGGgBdQ9Fc0f+ft6Z8QEzMy7hLkX4rFo1PkvwokqgTV6iLBEhPL3cAMAb8x5cUBYehurAAAAAElFTkSuQmCC",carrotGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAFFJREFUSIljYBgFo2AUjAIagYmc/2lnINUMn8j5H6vB6GLo6si2BBdNADDhlc3/zkiyQ8gCyK5G9xUBg4lzIbIlyIAIH+JSQElKId7Ro2B4AAAM7CorC4ZVKwAAAABJRU5ErkJggg==",carrotGrowing2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAG1JREFUSIljYBgFo2AUkAcmcv6nnYFUM3wi53+sBqOLoasj2xJcNAHAhFc2/zsjyQ4hCyC7Gt1XBAwmzoXIliADInxIvAXolhAZfMRagC8Y8JpBjAX/P3Wz45TkK/2J1xxcEpRkJtKCfRQMfQAAPQYyLlPDfzcAAAAASUVORK5CYII=",carrotGrowing3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAHNJREFUSIljYBgFo2CYgomc/2lnINUMn8j5H6vB6GLo6si2BBdNADDhlc3/zkiyQ8gCyK5G9xUBg4lzIbIlyIAIHxJvAbolRAYfsRbgCwa8ZhBjwf9P3ew4JflKf+I1h5AFeA0nxhJcFlCSW0mL11Ew9AEAw2E2LwiWHwcAAAAASUVORK5CYII=",carrotSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAp0lEQVRIie2U3Q2AMAiErXEZGcShHeQcpz4YkipQ8CdqjN8bacvBlbZpfj4HEWUiyhx3VycfenCUASRVgCsAkGrrtT2MENCqsNf1PaaAPLyPRWjdvXkH40Rq+2WSMpEVC7ZTcAtnRN0x9S7doz1S1W0CEetci7TR4+QR60Jfhef7IqSLCIuiEwMgjRO5xVVesj8xln2mQEmtbSlis7Io2vZpHvkuXssMLP56RC4nRRUAAAAASUVORK5CYII=",garlic="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABB0lEQVRIS82VvQ3CQAyFnRUoGIGWgoYSMQUVJQswBwtQUjEFoqShoGUEClYAOZLRi3P+OaRISRUS8z4/2+c0NPDVDKxP4wIsF5PP7f6uSiodzOLn4542uwPVQMYH4KGocZFyIOXBictC0oDL9UGv54mms23LWa/mqV6EAM6exflCQBbiAlC8BMhATIDUXUoi2WsX/NvrRxFgiUuTayA9gBYvlUYDJKbkpAPIiFsuLMgPgLMudbcaGz1HJy2gVjxygae9A8DMvSw9gC6V6yAqhU5I4nsO/imTNUl6GfamiAN470eNts4C/x+/F+ZBExBuUDzVerNqYXkf7iIUsu69L1y4TTMAL+YLkFzsGSkFyYQAAAAASUVORK5CYIIA",garlicGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAADtJREFUSIljYBgFo2AUjIJRMNxA6nS1/6TqYSLFcB19LZItIdoCcsEIsyBWZxrJFjASoQZfpBKjf4gDABs7CRP3VfqlAAAAAElFTkSuQmCC",garlicGrowing2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJ1JREFUSIljYBgFo2AUDDPg2WH+37PD/D8+eXz6sMkzYdOMTaFnh/l/Gf73GHLI/O0VJxnR9bHAFKFLwjRi04QOiFGDE8As8uww/586Xe0/IZ+iAyZCCrZXnGTEFWTEuJxor8Hi4MlHQbjFxOgj6ANsgJQwJ9oCGf735LiFdB+QahFJFujoa5FkOMkWxOpMI9kCYiILX1onP4MNGQAAbEJDfI/EtV8AAAAASUVORK5CYII=",garlicGrowing3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAALxJREFUSIljYBgqwLPD/D/NDSfJEs8O8//oGrAZQIwaol2XOl0NxVJiDGPBZ/v2ipOM2ytOMuJy+faKk4wkuxSXGLIPsAULXt/gk8QXRNgcQZRvsFlCbBygizGRZSMD7jhAFyM6kjw7zP/L8L9nePJREKtBuADOVITPAHQ5ovQRShnERDI2Pm5BNDlSMhpZuRndAkKGwORpHslkJVNSigiy88HQtEBHX4u2FsTqTCPZAmIiC19yJL4+GLIAAIDwnt7DsMsUAAAAAElFTkSuQmCC",garlicSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAsElEQVRIS2NkoDFgpLH5DKMWEAzh0SCibRBZGAv9P3H2Hd5gJjsOQIbvO3CRwclBnwGfJWRZADMcFj74LCHZApDhK2YVM4ipxcHDnyoWgAwGmQgKFnRAsQXYXA2z5NWtRQwRab0444FgEIEMz80JZQgMqcGaJKkSyeiRSqzrQeoI+gBmGLIloGABAXxBA9NHtAUgDbCIhmkmlMlI8gHBMgGHApJ8QI4loxYQDDWaBxEAZwZJGciZbVQAAAAASUVORK5CYIIA",grapeSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAdUlEQVRIDWNgGAWjITC8QiDTTPk/zEcbwrXhbJgYWTSyoSADkPk0s4Qsl6JrwuU6mDiyT9D1Es2HGQbTAOOjGw4Th6kjmUY3ENkAmhmOz1JkBxDNRjYQmU2RD9A1IxsMchm6PNGuRVZIFUOQDRxlj4bA4AsBAEAiL1mYqo82AAAAAElFTkSuQmCC",grapeGreenGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA10lEQVRIS9WVwQ3CMAxFmw04Mw5TcGUFBmEFDlyYgplgglRGMnJT2/8nUgX0GCX/fX+7SZk2/kqP/vG6q/fTs+tMutkKjoiLeRpwPpRqq708ahGorGVVwXJVWARFTCuRdV3LYl4AbAytsIq0exDEBag7lDtTxSqi9lAEYaOCAC9fL6ao4auI9rfXpBPCznwW1QfQ2zzbdDXlVRuOKdNApg8uAE2PdYqMfAfAXoDM/wKvigxm44liHQag7NXYbwJY9/A9iPL/G8DiBSNG1+3ncJMJ4HvL5oAZR2XBGdo0OvoAAAAASUVORK5CYIIA",grapePurpleGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA10lEQVRIS9WVwQ3CMAxFmw04Mw5TcGUFBmEFDlyYgplgglRGMnJT2/8nUgX0GCX/fX+7SZk2/kqP/vG6q/fTs+tMutkKjoiLeRpwPpRqq708ahGorGVVwXJVWARFTCuRdV3LYl4AbAytsIq0exDEBag7lDtTxSqi9lAEYaOCAC9fL6ao4auI9rfXpBPCznwW1QfQ2zzbdDXlVRuOKdNApg8uAE2PdYqMfAfAXoDM/wKvigxm44liHQag7NXYbwJY9/A9iPL/G8DiBSNG1+3ncJMJ4HvL5oAZR2XBGdo0OvoAAAAASUVORK5CYIIA",grapeGreen="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA1UlEQVRIS2NkoDFgpLH5DKMWEAzhwRFEQtm8/3E59d3Uz3gdiVcSZvAPxW9w8zn5OFHs+n+RkQGfJTgtABmOz2BkW/BZgtUCdMNBhqG4nAspxL5BjMBlCYYFJBnOwMDAEizM8GfxOypZgOTyim3/GUo/qDIIR91hYMDjC9J8gGRB1aqv4KBpC+OGRMc3Rqy+INsCjGQ7aCwAuQxvRCOnIGjQkJSKYF4nmJqQwojkfIBsCYyNLdOBDAYBsnIyeiRiK48IlUMgMwZHaUqw0MejYNQHBEMPACcseBmTrgJTAAAAAElFTkSuQmCC",grapePurple="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2ElEQVRIS2NkoDFgpLH5DKMWEAzhwRFEOpx2/3E59cr3Q3gdiVcSZrD4H1G4+eyMHCh2PWJ+zIDPEpwWgAzHZzCyLfgswWoBuuEgw5BdLsAmBDf/w693YDYuSzAsIMXwTc1HGLgz3jIY89tSxwJklxv6zWUo/aDKwOPKxGBXroXTFyT5ANkCY6fJYEPP7ssF06CgwhZMZFuAnmwHjwUgl+GLaORgggUNSakI5nVCqYmifIBsCYyNnulAEQoDZOVk9EhEL48IlUEw/YOjNCVY6ONRMOoDgqEHAPCIbxlb63vgAAAAAElFTkSuQmCC",jalapeno="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA7klEQVRIS2NkoDFgJMH8/1C1pOhhIFbxf6cwUbD5+1a9BlHE6iNeIQMDA1mWEO0SkAV+adIMXz78IskXxFoANxwWZ8QGFdEWwOIAOVEQYwlBC9w5WP+nSUviTGyznj5n2PnjN05z8FqAbLitrgrD4ct3sFqEzxKiLMBnOMhGsiwg1vUwL+GyBKcPYBYQcj1dLPgkyMyw4soTrJFNFR9QFAeEggif6/EWWoTSPyzsybYAZAAxllAto2HLYYRcT7Bcx+cDYgwnaAGuYCLWcLIsIMVwoixA9gWphhNtAcwSEI2vaMaWEAjWByS0OrAqBQDXPaUZstITfAAAAABJRU5ErkJgggAA",jalapenoGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAwUlEQVRIS2NkoDFgpLH5DKMWEAzh0SAiP4hswh3+w3QfWXkAZ1DC1OFSg1UjSJO27Ue4664e5mf4/ekOnH9y+xOwPmR1IDXYLMGwAJvhMI3mnjJwX7HyqTAgOwJkITZLSLIAOTjQHUKWBcguwhYcMAthPiHKB7CwBdGwoMEXbNjUIyctojIaIQvwpVWSLcCVWnBZQpQFyMEASq6wZEowlzEwkFZcw5LpqAWgoIXnWGLCGU0NSrwSHclkWATWMvQtAAA9on8Z/HlQTAAAAABJRU5ErkJgggAA",jalapenoGrowing2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA/klEQVRIS+VUMQoCQQzcK2z1A5Z2PsBGwdYX+EZfcK2gjQ+ws/QD2lqczMHAXMwtWeREMc3BksxMMrlUaeCoBsZP30Ww2Eyb0XjmNn3c7V2x2Q6W23VDtMf9kgA+X93S+TBpvxp480h6CQCuIBY0SuISWHAoBSDCkvLtrQ5YTA9IwncIKvKAHVA15q/hGR0m8GYPcACgA0uk3TBPc1488AiojgSn+trW5XJJkiVQ47iyXFdVaT3JdkBl2q4q9daVgEX/AYv6PLHrGjbZ3oGPEmA88AAm6xnpUw+xoWuqBqOIWxQ59SECAtk1/W+CzkmIjEJyOmMv8qCQqE3/fYInGwy8GfZ6sOcAAAAASUVORK5CYIIA",jalapenoGrowing3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABH0lEQVRIS2NkoDFgpLH5DIPLAnNPmf+sfCoonj6y8gBeR+KVtAl3+A8z7fenOwwgw7VtPzJcPcwPpkEAxMZnCU4LQIbDDIEZhI1PlgXohsMsANHoloDEKPYBzJWwOEAOHlgQ4rIEbxChawZZABJDjmhCcYHVAmzhD4pkGDi5/QkjrmBE9wmGBdgMh2mC+QDmC+T4wJWiiLYAOcmCDOPmvM/w9bsi2FP4ggmvBbDIhfkKPf2DLNm54CE4uHClJpxxANOAHGToFrx/eJXh6onX5OdkkCXIrkfPzSALwGGPxxKiCjuQJaCIRk6mIL62hSg4aCi2AJY8YRaAkikxhoP0EeUDbBYQW48MXwvg9QCxQYGkDiVUSAoiMiwjLZIHpQUAD3LJGUbvuUIAAAAASUVORK5CYIIA",jalapenoSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAhElEQVRIiWNgGAVDDtzebPH/9maL/zQz/P+zS///P7v0/9zUDKIsYSLFcBXjWSQ7imgLyAWMpCi+vdni/+dHBgwMDAwMRtkzSNI7CoYwoFvGw2UJ2fkAPePBki/VLKAawBe+tzdb/D83NYPocgmrAaQUbGQZTmrpiQ4GtrAbLdwYGBgYAFTPX5fT1wXtAAAAAElFTkSuQmCC",pea="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAbVJREFUSIntlMtKw0AUhr/YokRqkSAGurAUgiLSraZvkT5BnsGlO3d5jj5B8wKum7qTrlqE0o0QkFm0xWys40InTm3Sm7gQ/GFIzgx855x/LvAXZNdMAFmtlwD4/KbxVlIQNfzAkYA8udhHj40fFC79wJmb6HcFUSjwA4fWzSPVesnYOkG1XmLUm0oAP3Dod0W6FoWC08uyMbgf85MOMA8KJJOZVLHrWZxdWQBpBzvbgMtHRQCZTGbS9SyuW+e4nkUUfnXhBw6j3lQWNwErW8bPr7jeR6WNpk3ldJ9G004TqL2wa+b6HSi4Hzi4nkWjadNo2nTaMU+DFzrtGPiwRtkUDxPW6kCH97sirVp10GnHRKHAPCgYyWQm9Q1f2cF3uK6nwctcnExmWJVdIwoFVmXXAJafoqzKATrteO4/CgXlo6Ixfn5dYOQmWGaL7vnZlUXr5jGXlWnRurYoeLVeyi00b2GlLTp81Jvm8RcT2DWTeJhIdRSX2bIKDhkWxcNk4RHLs2UVPDMBkFqjLhFsZouuzIumX/9tbNFVyJi7hTcOj/dSeBQKHu7ExvA8ye/j8/X81+/oHfIfC2frtx3xAAAAAElFTkSuQmCC",peaGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAelJREFUSIntlDFoE2EUx3+f3hESUbQXKFypQyg1iFNU6C0B41K7ZJIuSiI4NIJKFx0Es7YIWTK0QwsRBDchGDsUCprBG1pKx6pBkEiG4nWpJLWJfi7ekbP5rqkIXfqfvseD//+9/3vvg2McNURQMluM+uIz5yJUtuoS4NGlWyKTyhPWRgIFTgSR61qIatuR2kkdgMpWXeasBGkjTiaVl/10oAUlV1oNmTbilJ1NH1nZ2SRanhKj5pV/E8gWo0ROh2AbzNEIORIAzNnrAKSNOItfVmSysRFoMShm8ODFec8OlxSgO74WGhQ/f3UAKN3/phToOYNu8vEBUyR1Y18hobBGte3IsQs3aHVqSoGeFj21smLy6hOp70yLjQ+2L5ezPLtk17CVVvUUOMUgxcpDMf95SU4MDIul7bo3ZNcit8Ozr+6Ki8Njh+vgzdoC1bbjbZBbdS88//pOXnc+Ha4D8A5JmquTvqoBJowhMWevy5yVoPGx6a7xgRvlQ6tTo2TfIVYQ8l5piKlFk1hByGf2ZRkrCOnGrU5Nzi/fVvIoLzmsjfB27TVJ3RDNnR/sNvd8+d3mHrPWY1FZXRCZVF4pEHjJ3fv9978EcNOa+fOa2Zdzoezgf6FvgfcvvwfGKgRNvq/fsk+uYxwhfgNZt7hllq/TVQAAAABJRU5ErkJggg==",peaSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAQFJREFUSIntlD0KwkAQhV/EI/jTpYt2CjYBFYSQRhSsxSOJeIxcQlIG0gS0U7t0MbnD2iQhGXaXWbX0gxTDvjA782YH+GOC77kAIKpvs14ptZOp3dIulo5UZ5FYJFGAXn8IALAdT6aptcfTAaPxAACw256l2o7szyLPlDenPO4v7bk0wa+T1FAPylgK9aCMzeGaqUJlYBOWmSqUHlB0fdaNd5ebQJfkEsZ0vAW4VTLNFEkUiCQKRPoMKy0ARgW3a4rmbcpYicl4s2GPt8ku+pS6j7SXFabvQupBkWf1RFBu15S+C+3EfLyLuPunVYHvudZsvhfN+BLGXycx4mdL7k/FG2sdid9DA0ygAAAAAElFTkSuQmCC",pumpkin="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAu0lEQVRIie1UuxGDMAyVOUomYA52yRzpU9IzR3bJHExArzQg54S+puIur0On97GFBXB3lAYOZvhZA5wfE3283h9Xo2sVj6JPM4CSAwRuIHMCjtD1SidAoaaJub3cAPEpMBZRyOolk+IRWlCWqi3OYN3yohrnMKD06wYwDj6Z18ah1nYt/DUwk3FDLmjhym8awt/guoE2TG34HOJDi5I1Q/ehZcUtDl9i6rrYU9VGu0/cRcSVqecwwb6b4wsIwjy5qWuN/wAAAABJRU5ErkJggg==",pumpkinGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAgklEQVRIS2NkoDFgpLH5DKMWEAzh0SAaDSLsIVC1zu7/lYtPGTY13iWYSHAq8KtX/q+jLw22oS3oEFwdzHCQOMUWwNwPsghkCchSmBgxhoPUEvQisqGkGk6UBTBDYRYR63KYPoI+GLUAPYjgqYRgGYBfAdxcouOAXAtHLSAYcjQPIgAOZi8ZT91aaQAAAABJRU5ErkJgggAA",pumpkinGrowing2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2UlEQVRIS2NkoDFgpLH5DKMWEAxhqgSRX73yf2SbNjXehZtLkQUwg1+9+4PiEzEhFgaYJWRZgMtgZFtglpBsAchwdBeDDP786jvcfF4xTgayLMBmOMxgkKEU+QCX4egGgywhKg5g4QyLLGQL8LkaZAHBVIRsGMg1IAALd5DhyK6GyaMbDAsujEiGGY5uEHqOghmM7FpsuQ7FAnTDkcPSIlcenJmINRivD2CSyK6DWXBi8kOSkjbRioeMBSiFFsGiErcC6hR2xDiA6DggxjCCyZRcQ/DpG/o+AACfiHQZOpMMxAAAAABJRU5ErkJgggAA",pumpkinGrowing3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA20lEQVRIS2NkoDFgpLH5DKMWgEPYr175P3JQb2q8Cw8ZsoMI2dBX7/6gRKWYEAsDzBKyLAAZjm4oemKBWUKyBeiGf371HW42rxgnnE2WBciGwwxGNhTZF2RZYJErD45MkOHYDAYZCgMkxwHM9eiGwwxFTjnIPiE6DmCuB2kmZChFFpyY/JBoR4EswqkYFiSwyIL5gCoWwAwHGYYcNCAXUWwBsuHIYUk1H4AMwuZKqllAcx/ASkdQWYPsE2r5AKXYpaC2o7y4JtZykjINsYaSlZPJMRxvTibXQHR9AG+ifxnYavyUAAAAAElFTkSuQmCC",pumpkinGrowing4="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA90lEQVRIS2NkoDFgpLH5DKMWEAxhqgSRX73yf2SbNjXehZtLtgXIhr569wfFJ2JCLAwwS8iyAGQ4uqHoYQWzhGQL0A3//Oo73GxeMU44mywLkA2HGYxsKLIvyLLAIlceHJkgw7EZDDIUBkiOA5jr0Q2HGYqccpB9QnQcwFwP0kzIUIosODH5IdGOAlmEUzEsSGCRBfMBVSyAGQ4yDDloQC6i2AJkw5HDkmo+ABmEzZWyfEwo5c3jT/+IigsMRdh8ADL8YrYeSmmgP/USAzGWYHUFckFmcEscbHCBwjeqWIASDAQLe9wKKC+uibWcqIgi1jBs6mhuAQBXJIAZAYF9rQAAAABJRU5ErkJgggAA",pumpkinGrowing5="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA/0lEQVRIS2NkoDFgpLH5DKMWgEPYr175P3JQb2q8Cw8ZsoMI2dBX7/6gRKWYEAsDzBKyLAAZjm4oemKBWUKyBeiGf371HW42rxgnnE2WBciGwwxGNhTZF2RZYJErD45MkOHYDAYZCgMkxwHM9eiGwwxFTjnIPiE6DmCuB2kmZChFFpyY/JBoR4EswqkYFiSwyIL5gCoWwAwHGYYcNCAXUWwBsuHIYQmz6OnCxyh56vGnf3iDDEMSZBA2V4LEQYZfzNZDsUB/6iUGfJZgWIDLB7J8TP/RDYfZhM8SrN5DLsgMbonDXVyg8A1r/USMBSjFLRVrOUaS0jQ5Fo9aQDDUALfWiRlPIsF9AAAAAElFTkSuQmCC",pumpkinSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAt0lEQVRIid1UwQ3EIAxzK/7dI2MwCaMxScfIHkzAPSoQnJKS0uvj6h8SOI7jALwWRJSJKN+957RHPqTjECkz8zJ7bx0p9CHB0okGsQAzL3vcZjntsMzBOqv/RZ1626aWmhm4Ql7jBoiRKwKuFhf34BvWvZCEuHqINot8SGoRSUjt4Iy0COhsNMJkUVtkJOZxDBfv15vZWXQlLe0bQLfNPAON/PZ3bSI/QdfBbFL2uD2TrPd/1QDwAfx6iTTKaBYOAAAAAElFTkSuQmCC",spinach="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA7klEQVRIie1VXQqDMAz+OkfBu3gtnz1Ln3et3kUYSPegwTRNjNsYbLAPSjUmX/6aCvzxqyjbchEOCCzdgtSvT9PscmnCgjECQ1dLiYzI87LupLd+b/gumlcM3U5ASD0wRp08L+S4yVx63NO3iHgQGkQmV13LIeFyGYSA3QOLzMomL8Dt3nD6TdYiPIr6VIm4oVUmz9EGeYrqJksyWRaZpXJU9WPKjTw5OXpqDngz+bsWNe3GHEgHAdNcT6eVCc/gQMe7iwK0vmjNNUpkDZrumJeqvuhMG7vJ3LAl46S03kbBGAtSf/pf8JqTD5J/Jx5qr2HmmdxT5AAAAABJRU5ErkJggg==",spinachGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAdklEQVRIie2S0QnAIAxEzwpO41pO5VpOI4j9UmyrMelfSx4ICnrPgwCKonwfI7odXO37mFlvDzKsrRFvn7JXgllYOwuYC4KrPWz1Y29ZLegG90AASOXaZCOZC2I2SIUvFQsoibdgybcCStJgiFazzBpBYabyV07e8yJJjGp+5wAAAABJRU5ErkJggg==",spinachSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAV0lEQVRIiWNgGAW0AE3Rtv+dDBT/D7Q7BhA0RdtSzftM2AQPXH1CkiE0jw9q+pi2gC4upUp40yUTDcqIczJQ/D8oHTawgKySFVc4Ui18sblohJf/QxoAANEqIe1OcIVOAAAAAElFTkSuQmCC",strawberry="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAR1JREFUSInlVbENwjAQPCNIhSjp0oUGJohYgClIxRCZgDnYgg0yAGXS0aVOQ5AwTWzZzv8TU8JJkWznfee/s2TgH6GdT6oBAKhY8uKc2cmlbAyHIVSmxvybRQqoYSMAYBDTxTmz49GGCPLRZqIbu2Y6mCKgAaBP89GP5F55IoGYAoBPFuk+zS153XZYHGaTyb2BJMAhuVd2zIQvdiCS120HfdrDdOiG74LrwCOv2w7b4wrP64sspuyKuqab9ZIlJ0g9UAK6T3MvUAnGqkvZkFaxDNypQ2FTx+UVZiAGy8HNyLlZKhT4itzFQO4dWjQ5tEOaU+Thgg1XupJTT84KxCD0m8I8ijGCmCsgbarbDrvHTdo3WQDgn8LY1+9H8AYaOaFdHXkaZAAAAABJRU5ErkJggg==",strawberryGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAZpJREFUSIntVDFPwkAYfWdQoAYMgdiIcSHK0ASHslgGBiTGGBLZXJmMHXCE0ZmasGDSVf8BA4MhTiyd7OhiogMBAhEMDmrCcA7mCpUWMDI48KZe79173/u+ywELLPDvQWYhZUoBeH0cKp06Ta1vkbfXd1xnX/5mkCkFTOvaoEtlSYSq6WAmo7AzXJpUcW3QpZzHCRe3YuzJkohKp04BGByvj7NN4LATr3TqrGLKhFVNBwAcrG0QAD85lt2wTMAOMjy0c8b3kX+TVPstWu23DM7o/tQEnMcJ9ABV0zFqki0ngTSgarohrGr6RHHLBLe9pklAlkQIvAKBV0w8VdNxyu8SgVfwGGzbXpaxBFeOFEmUBYr0UGi0/8yc9V6WRBxrN7YzGDNINAQA3y0ReAUXnjg5Ke+ZDBlkSUS2nMRhMEIiuLZMYDlkAOTe/UyUjyTZbvCGIUN82U/OV6OE/dtp8jYyFglchYJp/ZnPo+LVSc59R2UMh372tA/M+BJMRTjmQqhI6KUWpaEioeGYa+azkyqgv6xjPmkWmDu+ABYSnXTgyhitAAAAAElFTkSuQmCC",strawberrySeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAmJJREFUSIntlL9P1GAYxz/vtbw5rw1X7gwOhKRAIrtMjCYmJCbEyb+BBRddWJxcWHTBxb/BRUNiojExrsawuAgJeAlBPQ/uCrRHeend63Bt0/uJTjrwTG369vs83x/vA1f1r0v8yaHXj+4A6Gl3jmOvLtyFRVRL6byZF2bOZGpp9e8bHLx9nj5/3/1K48c+Z81AjzsTwl1YRBpSx9+Ef1QFoOiUuPXgRRdO7pLhNaCvu7OcNQMAceI1kIZMhhNCtznxGrrolPQgAHMUetSORBiFWhqSe0/f9zEDOK3XmHbnaAa+KFj26AYfntwHOlSnllbZ3lwHEKqlBjFDtZQoOiWs8qSwypPY5RujG5x4DT3tzkHszfzyGgBbGytsbaz0MePsPEYxsYtlHbWjPk+7GmSpZqXY+fSRolPSzcAX1Z0vWO4Mh5U9YQJjCN1S58JXPra0NT3B6TVZFCwby50hakepFAD7lV0Klq0TZoeVPX5W9jTAxXmINKRQLTWaQRKx7c11wijUtrQT6Rh3JsSxV6folNLzU7M3RRuwrlnM3H3Yi92ZOPuS6DzmOKlh0pCp4XE8kYbEVz55M4+ZMzUghl22LomagQ+gLzwPacgUMCnVUjq5YABhFGqA8PS4LwgDGxzVqunPcTR11I5Sw/NmvotxonujegCg4wGHN4h1TkF85ScSML+8hpkzIZbVlnbK8rRe6wpBtobuoqzmymsQHP0COkH49uYZGanE53evGHcmALj9+GUXztBVkb1kzcCnYNm6l12yTZM1MqguW3YAFCxb71d20/fYHxFG4chVfVX/R/0G94oNtjdxwCgAAAAASUVORK5CYII=",compost="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAANFJREFUSIljYBgFo2AUjAKCgJFYhSbafP8NlP8xXLjLxMDAwMBw5uonovQSpchEm+8/Pnl8lrFQariB8j8GBgaIGmwWMWHTlOLH899Em+8/suEQg0h3DIYFJtp8/2HhjAyQxXwc5LGKYwN4ZZENQgZbDjzEKl6cZIThC7wWIBtUnGSETymDj4M8Q++8cwwMDKhBhREphCKVWACLcPwBiOQ6YsSQAcyhTNgE0cGTx/cxxHDFAzrA6gP0JImcUgjFBbp+eBxgcz1y0cDAQHzxQFcAAE2zRkug2a02AAAAAElFTkSuQmCC",corn="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAbRJREFUSInVlDFrwkAYhh+lKB2CToVupW5C6VgQOrl07OoiCrp37WKhS/5CQUERxNVR/0CgowhxUtwEJyWDxKHpkNxpktNYLYV+S+AueZ/3e7/cwX+v2C9oOIf04ueKr6cVlsMc62klCDsb4CyHOWzLhLmBbZlKyKkAZzGrA7BJleE6txdycZLzPrBqwtwg4UE0LYttmW5HO/VTgLOeVrAtk6SWxQaSWhZWTWwPlFg1fR/Iqd89u22Nenv/LGcxq4cEAJgbbkxA+t7w6caFeKmYoavXJEjlPLFquo6Fc7YzSGrZkLgEiBqMOyqIs+wjY7HiD248XtYJbxaXt42QeAiggDjraUU6tC0T7etTwkQn6SeU4hAxZOEcAs+5IYeavqnuFVd24CvPuXAqn976VYS4BIx6xFrtSWhzN2vbMtmkyrKDfZkH62BEu4PNv1QBA8/QUeKRAJF1/q1BV69t13UovL47B87McYDHDwCDrl5jMO749rp6jQLREN9JLhUzcqPVniiFg9VqTw6dfnUHrfaEUjGjFA/+DFEdHH3ZCeFjct8t38viighGdYqwEhAEnSP8Z/UN/uTZrzroGIUAAAAASUVORK5CYII=",cornGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAFJJREFUSIljYBgFo2AUjALaAZdGhv8ujQz/CaljItfwPZfZiFJLsgWkGE4eCGH7zxDCRlTwkG0B7QxngAQRKerJiuRBZQEjDnFKwhiXmaNggAAALTwUmwa1nZEAAAAASUVORK5CYII=",cornGrowing2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAIhJREFUSIntlMENgCAMRb/GdBu36AjsY9jHEboF23DBExyMUijhxjvDf9A2BRaL6bBHYo9kvb9r4QAggWCVVAU5fFTShqMER93lUn9QuOPW/aguwYekZQD6BK9wCaT2xiTI4QDAZ6yePSwCCVSC5UK1NyYBn1ENNjNvTI1MF/zVcWQlzOnNwswDkWwuFghkVfgAAAAASUVORK5CYII=",cornGrowing3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA3UlEQVRIS9WVsQ3CMBREnQFoGQBqiqxCBkIMxCwU1JkiA4Au0kUfy/Y/W7EQaVLY/u/f3XcyhM7P0Ll++C1gup3fVPi4z8lmuCe3XlSAw8/XsjLGyyHYIiycW2djkkWn63FVQohaHGckADZaCLtOKYuHRgYQAhUAxJblptEFxCF6oVYpsF5b/3MTk1IhTxH9xns3ADsqjav3JXAziCFquFX3wEKsRUrgsgILQQaqbU0AwOwnohR8E4AXTZmoJoBSuClkHIL3u98DO+t/A9j+ZN5NTax/5Vodci2wO+ADXJmJGbhBn08AAAAASUVORK5CYIIA",cornGrowing4="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA9ElEQVRIS2NkoDFgpLH5DANrQXC98n+YD9c23mXcMtnnv0/uFjgNkoOpAcljCw28PgBpPn/5M1ifoS4vA7IlMIPR5dEtISqIlILEwD4BWWL6kJ3htPxPsDmEDAepIcoCkEJkS2AGI/sMV2Ih2gKYJSBfgCyABRmhVEjQAvRIJBSpJMUBckTCXAwSw5ViKEpFsPAG0VSzAOYibMmVUNjD5AnGAbolxEYuyRZgy7XERDjRPkD2CSgOiA02sixAz8X4Ip4sC2AZjZgURZYFxBhMViTDIprq+QA5zVM1J2PLTNSyAF6TEZtjkdShxCvJkUyqhTS3AADroZQZ0g/6xwAAAABJRU5ErkJgggAA",cornGrowing5="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABBklEQVRIS2NkoDFgpLH5DANrQXC98n+YD9c23mXcMtnnv0/uFjgNkoOpAcljCw28PgBpPn/5M1ifoS4vA7IlMIPR5dEtISqIlILEwD4BWWL6kJ3htPxPsDmEDAepIcoCkEJkS2AGI/sMV2Ih2gKYJSBfgCyABRmhVEjQAlhYJ4poMoAimFCkkhQHyBEJcjG7KB/Dz9efwJFNyOUweaJTESy8QTTVLIC5AltypYoPkA2BWUJs5BIVROiuRI5gUK6e/+Y6WAm+ICM6spCDCxbZVM1oyBag52J8viDLB7CMRih4SCoq0H1AbFIlywfEGk62D4aEBfCajNgci6QOJdhJjgNSLaS5BQCfTpUZV5cHzQAAAABJRU5ErkJgggAA",cornSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA2UlEQVRYhWNgGAWjYBQMRuCtxfDfW4vhPz3sYsFmuYetHpR36f/WawyM+AxAdygh9QQdAAPn774nqBnZsTD13gyPCToaGTCRazkl6pEBVpfCgpUYn1AaBXQB+BI1zjRATcvxJWqsaYAWAFc6oYsDKEmkVAH0LNhIBjizDL2yF85yAJFyIXH48tljmjgCbzYkN/GQUpBhdQBE4yWyooDUygxnCFAjuMWlZAlWTlQvCWGhJy4lS22jSQPE5n2SghnZQGrlCKINQW98UCtbklwXULtcH/AoGAUDDgAvcmw2gDIKjQAAAABJRU5ErkJggg==",potato="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAArUlEQVRIie2UsRWAIAxET58jULuJm1m6mZtQuwMWyhNjOAgWNl6FIP8IpwF+fa2ucV+oZVkNAgCsy/HgN2B0x3iadZ7FIERwVGqQM+mtcL9dkyk8p5oKHidnklWUKqiCp1VJMYOwLvfNcszAJQP15KPTM2BZaBmY7jzVm6+oWdRA3jG789yPZq5ACz0HB4CBwWR4WpgMzhaKQZ9gCi8tqo2tFmx5Sbbm1hb/6yPtXRM6Z/YOWwgAAAAASUVORK5CYII=",potatoGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJhJREFUSIntlDEKwzAMRb+Tdg3oAJm9detBfFIfJFs2zT2AIWtI3KGkQ6gixR0KxW8y2H5PYDBQqfwMHyj7QFk7dymVd7fltQZljslJZ8WNvRAAOCbnA2Wm+b137xtMYwsp0linZZqxlwPA8FgP76sBTeLTVZzeHNhEZ+WmAMfkPoksclNgi5TIzYFvqAEV6aHUP6bAWflXnpbpO+4f7cK2AAAAAElFTkSuQmCC",potatoGrowing2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAP1JREFUSIntlD0OwjAMhV8L3VAlH4DZWzcOkitwwR6EjS0zB4jEGpUwFAc3JJS/CfVNUWP7s1+SAot+ITYU2FD4JLd+pXjbDbDkkUI0uNTEOlcQAGzvKjYULHnglAdb8thtazDGnLYbwKBge1dJXJUmtd2Aw+kCdk2ElKaz5MGuiWsA2G1rnI8rCCRapIvHZJngNpF8t+THbqV47ypZS75ocgZ6k12DthsmMB17Pq7uIDPaIpAsQAeUutF7uqkUos9gMkEuIJX4XrIlzX24ptHrZKIctGTLW9Les6GA/ebhvj+7abMP7Zldr8TMAr7VAphV6XA++jXP1Fz0r7oCqWWiCeEH+pYAAAAASUVORK5CYII=",potatoGrowing3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABQ0lEQVRIS+WULQ7CQBSEtwLBj6nClIQEj+Ai3AKJ5R5IBHfgIgg8CQEMCsOPQJS8pdPMvnbbpoAg1PRnu/O9mX27gfnyFXxZ3/wJYDSOYolyvTpax/q9KObSiESsO2yb3eFmmmfLMfcwMP1ey5w211QbcA3LALg6eRYxXAyQb/LOMIFodw5AV8sTdGUiDICMsSNxLO5kfgpgca6Yf4YjOMEYYIgP7jIAHQeyxwQIcOUshgYA0AHoQa4mD6Cr1RFi0Z2ImFy0wOKA1wfOsQ7cUWlfcytyv+dBAUDVXIweSwGoIm+yD8ixcAPkOuBKfTvTJ8JO9IZz1sC3G3UU2uVbR0WVGD4FsAfRaBxJB0Gz9Cwr/SFRihfTgX08Xx4m7DTsfbbcy6dCjSoAKw5hHcdkvi2E+ACvc7ne5WhWcVAPk8z6fcATQYkRKFHnkOsAAAAASUVORK5CYIIA",potatoSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAdElEQVRIiWNgGAUjD+R5MfwnR9+UVIb/2PQyoSsi12G3nmIXZ8IujAmI8dmkbQyMxDsJiwXkBh/RgJIgHAWDDFAzMrHmg1tPqWcJzoyGK2cOGMCVCalaVBAs7HABYuJj0jYGRjVpTHGifUAMyJlNQWE3cgEAMasir1+5WT8AAAAASUVORK5CYII=",sweetPotato="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA6klEQVRIS2NkoDFgpLH5DKMWMEQZ8P5HD+ZlFz7DQ4asIEI2tDlIE2z+1TuXGbRVdMHs2nXXGWCWkGQBzGCYobgSCMkWEGswzEKSLAAZjsvFoGCBAVjwkBRE2AzHZShycBHlA1yGI7uUojhAtwA5lRDK/QR9QIzhyBbiSqIgh2AkU2IMx+cDZNdjWAAzHFdwEAomdMNRLAAZ3lmQxvDr0WFCQYxVHpvhFFmA7huSLEDXjC9oQAaDAHIBh+xFlEjGl2uxhQsuV+O0ACSBraREz6UwPi5X47UAWZJQWU9MaiCpuCbGQHQ1Q98CAPnipBlXIGtSAAAAAElFTkSuQmCC",sweetPotatoGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABE0lEQVRIS+1VIQ7CQBC8fgNXQ4KrxRE0CoWo4g1oBJo3oCpQKDTBYetIMHV8o2SaTLPd7vXO1DScau72ZmZn97aJG3klI+O7P0HQ4QlblO3SmvmX16qXqTxHnBWDfdMiXN6fV+5dfhuOV/HpAOB8mc9b/xfZzF0OT5PEVCbBiSJJNAFifCQdAuviEAFIsZCNzpL3gt4ycLtJ3TF/NPGnYl3f7lUDTOW+OnhrQI+hjOAABokkoIAoixCsbfIRgIidRDEWSa8GVvdI5czAssvquJZAt6YO1iS0hvvMRr+HDoH03SoawLAv1fPbN5R6Fg29SqplJ4XAvS/ZUkP1PIsBjyVoZ9LAbPZO5QmP6+CvKjJgdIt+t2zOGYhEhSEAAAAASUVORK5CYIIA",sweetPotatoGrowing2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABLElEQVRIS+WVoQ7CQBBEj9/AYUhwtTiCRqEQVXwDGoHmG1AIFApNcFgcCQbHb5RMk2m22927MxWEc727zuvOTu8Goecx6Fk//CGgWI0q2Po4vbOqdzdRiD2CIOam5ThMimE4bG5ZEBMAofV+Fp6PT5OB+/EVIM5BiA6JrqwDsMQhogGxOQlpAWiBFV0AMGQVFlTb1wBS4vwq7rOA2j6806nA+vrlYhS25bXeuzvOq/Pl3VTigTDfAUBAVsJNFAZEA7CmGw4bTYC2yQMAxBizJ9J7rNHSVg9kNCGurWEFMbvMmHq5lwBpE/sEu2Q11t9dV6B951FAAS3oPVsBaVlknTESkgJGAd694AE0zHs/60S0IL8FYIKkDYxq6srNsai+YBLD1ckBpMSj670Dvl62CygLcuKEAAAAAElFTkSuQmCC",sweetPotatoGrowing3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABSUlEQVRIS+WVoW4CURBFZ38Dh2lSh8WR6qqqChTfgK5A8w1VK6qqqpu6WhwJBsdv0NxN7ubu7Oy8Lckq1gDz3jt35s7so7KJn2pivt2hwOJ1fqWth49z0YHBDQoCEDDEluuHhv+4mNn79qeJZ30MFwHa7Fd2PFzas7/1yQhnkCIq4AV7AhEcgEjAx6KqOgJqgS8bMDxaRVYVK2kFSnCCCY0EvXUQ6VUQNUyzpg2IaQ98f5BATwBwrUSzzazxzcbeUMDblAmw0mhswQl7oKOpDaTfbLJf0/6EY5rNPWAvz3N7W39Xu/rp+vl17rx0ak/00jVN9r4jBihhAFNAhbLMaWFnTHkl4JNQ/Y4YfkOEiemZaALTe8SLKNwnMXQfFW/DqBLCdO1mgcwuWvXv2zQ6QP+5NgaOvUWLzKz9g0kyHeSMEcgcKK5NLvAHBzcHKPX7AFMAAAAASUVORK5CYIIA",sweetPotatoGrowing4="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABQElEQVRIS92ULQ7CQBCFt9fA1ZDganEEjUIhqjgDGoHmDKgKFApNcNg6Ekwd1yiZJm8znZ3ubCA1rIHuz3z73sxs5kYe2cjx3Z8Cik3ewrr63PykMjhMwbfHhXvW747xqF6OQzic1q0L9ABacK6E1ufl1NfFrJi40+4ehXiAPEw358HkNyg0z4dUFCjAZm4TrOJAbU5TpOZABkIw+rVUSUigYCg4zeMw/efWDJ0hu3o5IFsoaXJoicUch/JzqL4OIKtH+mslHBBuYQCIeasBcFtNHe8PrwAbtXKUfmOPZo9szB6AFrXylJ3NrZAQFRDLgwyOQrCsgYVfdXKKNQEAKnip8bysV7m7XBvfaNYToQJk/ePlpIY5VMtWAqyXlOKZbz0F3pe3bh8gKc90kgJsosBcHYBByysTpoKUILE9owM+Bp4PKJgW4PEAAAAASUVORK5CYIIA",sweetPotatoSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABUElEQVRIS2NkoDFgpLH5DMPIguRM+f+w4Jo7/SGGz2Dy2OTwBTPYIJDmyAR9uLrlCy4yIBsEkq8tTgbLN/fORZEjFIeMyJrvvD2DYQmyPEwS3RJ8vkexAGYAzCKQT2Au//tEhoFZ5gncATBLCPkeHkQwg5C9DDIEBG5v/8Iwf0E3Q2JCKYOqJw9YDBSE6L5DdhgsiOGRCfMmsotBBh568JbRTkH4P8gCEEAWA/FB4jCfYQtirPkAZiDMMJBByGIgvpevF0NosCPY0raVjRhxjeEDdBXoloD4IEO3bd4GNhxEwwDIl7hSE04JXBaADAIZjs9QZMvwFhXYgoUUw0EWEbQAFBwwV8OChljXE7QAFrkwS0gNHqIsgFkCSzlUDaK//5/+Z2aUBgcjciqiahCBLMGVBGGW45InOohgPsFFU2QBcjDhYlNkAT7NxMgN/ToZAJfI8RlnygRTAAAAAElFTkSuQmCC",olive="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABdklEQVRIS2NkoDFgpLH5DKMWEAxhioMor0rvP8yWSW2XMMyjyAKQ4bpGInBfXD73hgHdErItgBn+9s1HuAVaGVcY/Bh+opiJ0wJkr4NMQHYZSE5KjhUj/Im2YCMDx//rM7TBBgiL8INpkPdhFuGy4Nmj38QFEbIFMGciW4TN9dgMB+nFGkS4XAizDGQYyBIQjQ0gByfeOMDmUpCBYIMZ/zJIyXKhmC8swgvmP77/laGp9CTYbAwL0CMXYsI/Bik5djDr2aM/DAwM8KQPFf8HNwoUlOIhR+CpCcWCvCrd/xCDYML/IZH8n4Xh8vnnYHGIrxgZYK4FRT5ED8hSkL5/DMipCcUCSOTqYgSrsLAQkgVsDFoZl8BqXq6xYbh87jXUgr8MDAzMcF9OajuPGUS4LIAEzU+oDxAWXJuhA44PkA+ePfwDjhf0PEMgiBCegVjwH+pahDZQnMBciy1FERnJiJyML4cTZQHWhE2BINmFHbF2jlpAMKQAvHOcGReApVIAAAAASUVORK5CYIIA",oliveGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABbklEQVRIS2NkoDFgRDZf20LqP4h/9cQzFHFK3AA3CGS4e4Aq2KydG27DLaHUUqwWwCwB0dgsJcVHGEGEbCCMje4rfBag+xgjrEEKqqN1GVqXXkZxPXrcYAs6bMGM1QIZJQ6wI5/c+wGmkfmgBAAyCJsYNh9jBBFMI8jgeEtVhoXHb8NDBGYhsqUwh4B8feYrxEHIiQQlktFdi42PHEcwx4AcAjIcZDB6UIItQA87mCJYOINct+fwc4aTj97A4wWkxoSbAyWusCUGDAtwJVFclsBcjSs5Y80HIJfBwhNmobmcCIOLrSTYJyAalMqQgwNXhsRaVMAMg4UrKOUkhen9BxkMAiDD0VMRrryBtcxBToagCAS5GgRgPgDFBXJqA6UuXOUX3nyAnARhLgRZNm/VJax5AZsvCGY0WPAg+wBkASz1oSdLdEtwBhG6RlgcwHyAK8yJsgCb5lELCAbpkA8icGMADRDVMCBKEcHww6MAAJp4MShPAj9kAAAAAElFTkSuQmCC",oliveSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA6UlEQVRIS2NkoDFgpLH5DKMWEAzhgQ2i+BCL/wvXnMDrCJAaZG+gq8epGaSxLESfoWvNRQZslsAMBqmRMTFheHLmDNgedPVYLQBpntSRjFMTujzIYJglRFuA7DJkTTCfIRsKY+dVzMXwLYYPcLkOphlZHl/QwOIFqwXIrsfmdfSIBRmGKzHgtAA9geOKbEIZgWAQ4Yo8QgbjDCKQBHpEYos8qlhAafiDHIE3o8FcCYtAXEkUX/wQXRbBDIf5CjmJgti4gpFoC9DjBl/uRY4fkiyAWYIewfgKRJItIDb14E2mpBqCT/3Q9wEAeMK+GRpnxQAAAAAASUVORK5CYIIA",onion="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAOxJREFUSInVVCsWgzAQnPCIqeUc2MqaCu5QhazkAlW9QGUlqndA1FRie45aTHhQ0/RBPpvl8ehnVFiWmZ0su8C3sVrL3nV2PbsQhRKaWgkO0Sy4XHBFgw7mYpLAsPqmVoLzDStJk+53WwDA+XIFV2DxKwpWEUfoAeB02IzixfEGAGg7moN8GUfoVZWTBcisJEW8VzQif9zthFdMVfnbJVvAIk9SixhJyhKZ1mQt5nLkgSXgrd50ArBc/NYk/4dA20HIrJxM5JsH2sHwj9HnUOMNeCeQnAUjRk3z4quCvexMId2nWcvOJaQRIv4YnrKKcGJDnEswAAAAAElFTkSuQmCC",onionGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAExJREFUSIljYBgFo2AUjIJRgAm4zFj/c5mx/qeZ4a1LY/63Lo0h2hIWUgyvzg9nePv6DUmOYiJFMamGk2wBOYARixg1IhCbuaNguAIAavoTMVykVcgAAAAASUVORK5CYII=",onionGrowing2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAl0lEQVRIS2NkoDFgpLH5DKMWEAxhkoJIwpT3/4vTn+F60PnYbCNoAbIhQ9MCkLdx+YIqQUQXC5AtgbmaGNeD9BGMZFjKQDd4aFqAnM6R8wO+3EZSEJXkhYPN6pm0EkwTYwlJFiREuoANFhEVBltCMwtAlixYvmfUAtS0AUr3sDigNIj+EyzkCSuAJx6iUxFhM7GrGPoWAABQhIsZroeW7AAAAABJRU5ErkJgggAA",onionGrowing3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA70lEQVRIS2NkoDFgpLH5DIPDAglT3v8vTn8GOwYXG1dI4PQBMYbC1CCrRbdocFiAHDTYXE2WD3CFN1UtwOdyYiObYDJFdzGID7IYW6rClpIosgDdMoosIBTRJOcDZA3YggkURPhSD0w/wSBCdzlMI1UtgFlSkhcONr9n0kowDYtofAUmUT6AWZAQ6QI2S0RUGGwJzSwAWbJg+R6qWgBO+zgA3lAgFERggz+v9mNgElJk+PfuPgbNG7oJb4LBZ8H/r3vzMQyFmYZuGbfzRJAUhnnYLMAXHPgSDLIc3FxCQUSsgeRFEMWmYwszahiKbAYAYw7wGetnhO0AAAAASUVORK5CYIIA",onionSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAQklEQVRIiWNgGAVIQEFB4f9AuwECiHXJ4HExtQBFPhpawTG0XEspGPy+RXfh4HcxTcEI9z4UUCUUhk5QDh2X0hIAAFsvEdRqfNUJAAAAAElFTkSuQmCC",soybean="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAxklEQVRIie2VPQ6DMAyFX3+Wbp27IuVuHXsajsCdkHqHbkyVO4RExDiOQ9NOPAkJiPO+h2MJYNcfRfOV6NDKvOv9zfOe+h4bAbJqAYjpfwGg20Mv+AZAXQ9cHDCN7QFJWzTIFoDac67aMSU3AO+XvMhHFKj7gpj8dLVvsgLitIT0HCKlF19I5iH5NPoD5cqZWwCrA+UQzRzQW1SclpJ5bpEAwA3+QZqY2bhoLhUkqcNBLiGW1EudtUXBuMo8V7z6aWwx3mXWB53sOFv+9drCAAAAAElFTkSuQmCC",soybeanGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAApUlEQVRIie2TwQ2AIAxFq/HCCg7Afk7ifgzgChzxYBp+qq0VboZ3Eoz/t/2VaDDoZWr5aN2o4PnYdZ3ZI4aC/BzidQ7xbug2WDcqLIQiIRLlVE0s1NZkpTnVdyickz2ixXLnSp+q5ntLnMiRQYj3UWDVMiOJ6S7njgZ4Z3XjXlMMHOGxaVl8+g/YRAZuBf2agQYLdm2R18SiuQMvWgXq2nVoDv7KCeIgQHNazaXdAAAAAElFTkSuQmCC",soybeanSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAr0lEQVRIiWNgGAWkgt97Ov+fm5rxn1rmMaIbDmNfvnmfwSh7BiOmFtwOu3zzPgMDAwOKPiYqOBLuMF11RQw5FAtYXcoZL9+8zwBzCTUA0UGADyDHGSnBOjQASd7BlVLwAaJTEb6UQhULKAbE5OBzUzNIzuXwcIQFAak5mBCgeRDBLYDl4kEP0OOSqtkaW2lMUj4glIKwBTFRPiClnoA5AqaGhRgLSAFkJ3FyMhldAADK8WmxC7dL5gAAAABJRU5ErkJggg==",sunflower="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABTUlEQVRIS7WVPQrCQBCFJzFdOlsVb2AnKIinEDyj4ClEULDzBqK2duliIhN4YXZ2N9kYTZM1bt43b342Ef35in6hX+Zp+T5nNFikFCWZodkbAPHhOqbXobAgTkBTRNKxFMdzDbEAbRFJQH6kkiPnazaN6XorqjVDkhVV2gYgJKJeDkIi0k3R5riXA8A6dVFTRC6h8ZxKBm22I9rvnvS4mGkP7iIXeLLMamEJYChABgB/8F2+0FR8QNgFO9BuaoAU1Zvaii/f1amyHGAD7gy7n1LiowA9j17H0QAAXMg6WDXQmwGSEDmtXxXZZ1l2EedeprJTF2kXLMS2XWBAXOmxjgoMjq/gPjHddXLaW9sUm13FRzGDAL6oZTfxGqnQgxVUA51jnVdfOwY50Pl3Fc0n1AnAwl2FMAvoNm+RpQus5VQ2CenvBH73/uj7hPH8Azk1pyhepQfHAAAAAElFTkSuQmCC",sunflowerGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAGlJREFUSInt0MEJwCAMBdBv19A13ERwRsFNXEPnsCchxKQg7aWQdwyJ3wQwxhjzVyFihoh5OiPVL6kxZY+UvTqkzUj9W0BvcLUMADgK0WwBVC0DvcHx334WwD2dYm3NOalIH6AbaHXzyg1mdiJmJYRz+AAAAABJRU5ErkJggg==",sunflowerGrowing2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAHFJREFUSIljYBgFo2AUjIKRDGRMGf5TwxwmXIaHhEuTZAkutVgtIBXgcxCGBciKiPEFzHBcAMUCdMVrVj5leHKagRGXAxgYGBienGZgXLPyKXEWwBTjchE5cYMRRIRchAvg0sOITRDZhchBhEt8FFAEAPyuLmpSKFsiAAAAAElFTkSuQmCC",sunflowerGrowing3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAKlJREFUSIntkdENwyAMRI+qW5A1sgkSMyKxCWvAHMmXI5ecSVH/Kt4XAdt3FwOLxeJP2XYc245jtofdv1hhiB4herPJ6mH1N4Fa4HJqADAlYnET0OTUUAvctyLM0FAAGMeX996QKcCGhOg/kkiNnEP0Q4OXAHPaD9fLl8E5NYxELgFZri7Wkfvly5u+Z7z1Ry1wGe0xNvvXjwn6JLNYPdSF3oN2at0vfuIEQtBnyE8BEcQAAAAASUVORK5CYII=",sunflowerGrowing4="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAANFJREFUSIntUkEKwyAQHKW/0EM/4U8C+UYLeUY/EvAZOQT8hv6iYE+mG7ubWNqjA0Gi4+6Ms0BHR8cO1iH/u6amxYfRwDrk5/L+WkQ1861Dvj1MpuuRK44vOgCAGKD8nDCMZtsrrrgGHL/maulSKe7nhBigJBeUzwn6aEBRireGzwk6bADsw5fOa0H0XEtkThWdljIA9P05sGPKFbcOeVoNptXgescWbB2y2ICbCGpZCr8OucaF/sQA5ZFObZ9NFuugdvItpDusCpoDVSrtd/yEF231okoU8YDYAAAAAElFTkSuQmCC",sunflowerGrowing5="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAPNJREFUSIntVDEOgzAMPBC/SIZ+IluXjt2R+EYr8Yx+BIm9YxcGJL4Bv0BKhyrEuE5CRUdOQkBy9p1jK8CBA3uRSYtzB+u+i7PM2covJPLruf6PiaT4OSVr4538HdrA3h7KagM7d/7ZEreZT0XcO1aVxOec1RGNA7K2mVBWalkrKxU8OonPuXkoyCVvmwnjEG4y5UuGvgQoXHIXkDpryVBUAPiUTF3RkXT73BDdT44pd3W5eq4Tj2ER4E55cm1g616h7hVOdyyN5U0OCkgTQZ2Hms+bzLG6KsYBWYspWXZqssQKeCW/IhQjuqB9oE5D6wd24Q0PlLoJNXPrzwAAAABJRU5ErkJggg==",sunflowerSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA40lEQVRIS81UwQkCQQzMVSFiURbhQxAswPPtWYAg3MMiLErEKpR5LOztTTYxsOh+j5vJZCbTSePXNcaX3xActut3qew83kPDzH4C+HDqJ/jPx0su15tESCYECRyA5dMIcrVsAKpgv9u4CHK1mkq6V48HTC1TGTLOC441/C9B7lMtYWEFicCKr2mylv0UBOs2zEPrj0PowFLOVQLkerlaSFMCTGHt2GrjqoJmBJ4IsmvHQKXpZhexFbHGBTjrIzWmUFFrUFQ6a91yreqhYcraDbDGZZ6FLhlAYQ+s2H37PazAS/QBL7jGGVi1//gAAAAASUVORK5CYIIA",watermelon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAW5JREFUSIntVbFuglAUPS81rTTwQpcmNowMGAddXDv1D/oVTv0WJ7/CP3By7SKDKQOjCUkXyYOITnTQ+/qA56MmDh08CQkh3HPuudzzAG7417h7uQeA0nSd3jkLpnv44D/iEO9KAOCTnpFAzBKqYYd4ZxawX5+QL7clAHjTvpawO7Dl/X6dy/vNxxdxsHy5bQpYIwfFKiv9xVgWiig1dk/ggSuF47dPWCOHFaus4aD0pv0K6fO7VyFSO1ah1vDAJTcMADoAYA0dFGEGEaXggdtKSKCuuwO74fr0HaWD0l+MG8SXjEgV3K9z6aJDL33PN62F9QYI1IiuISmgjqaOtlHpagWSqoBOXVdYdwPo3RMqDuo7rhM1NaLWUwAZ8JtcPukZR/UXiCiFmCWwhg4rwuzogCLOA7ex0wTdaHTbxgMXAgmKsBY0SrJ6RFy6psDxyDiXZCkCALpc1KHZ+wp5Q0AKHZN9ldPUiGv8D25oxQ++q8nB7rJdfQAAAABJRU5ErkJggg==",watermelonGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAWNJREFUSIntkj9Lw0AYxp+T1jYxViPFYtFJFMSl3CBE3Lp0cHR0yGhAt34FwcGthawufgOHog5SLBWEIl0LBf+QgjS1rdUMVc7pwiVpqTg45Qc33MvzPs+9xwuEhISETISMKuqFJLI0hX2qMq4j0m1AI3J21J4cIDaVhzYzNIp8RsJ9s0+2NusejTwbQ6ljMQDYXVwh/bfPkSFT4iVLUygPbRaLR93aqlnB3YsDvZCEXkgiocooD21W6ljM0CgMjeLi9ZklVDkwVWAC5uyw0wcHZrXm1gyNwqzWkFtIEwDgxgCQz0gAAN6jOMvkqfWNbtEaH8Ab/PBQHggAneYSlLU5VzNo9BBRoqR98jg2AFeNdxxc15lY5y8WOT5veczFkG7Rcn0DW+T/x7g8jctey/0W8fUAAhMA8ARE/AH+TVjfjgN7Xo10M0MiHwN8bSiMmwqMXH0/7C9HzqmYP0z/xj/kH/kBY5CYjlZ/xP0AAAAASUVORK5CYII=",watermelonSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAN9JREFUSIntVNsRgzAMU3odTKN4lIySUTwKm7gfJTkIsSHQz+qHOzvIL9nAH18YSajqwZFmWESkfUk2cgCVPG3sAIDXTIBSiomIqeow25FtBLfcNVtTVavVVBuArc0nrwRBNiMy8x6/PUcQIAFAKeVgG2E4A5JYlsX75zFauSICEbk8vFvBgnlEYmiIZOoOrvpyztGb0wBY9R4u4+32nfTf0771m/wEfXvaDm2NU6eiw9Qd22XiqeNq20JynEhTVS3nHAXZwW2Rpw6SIGndqag4tG32VKTqf4LT5fnjp/gAHB6L7zj2AgcAAAAASUVORK5CYII=",wheat="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABIElEQVRIib1VuxGEIBBd6MAxsZwLDC3DMggtgzIMDSzHxLEDuQSY3XVB/Nxtgp/Hvo8gAImyRrvUuyul32hSRMAUOzZmHeXeRYJ+2JUHumWqAQDAj84a7fphV1fVEwJPAtbQ1KzR0A97TnGZW6TeWaPJGFyc4SXcgWSZajIpXAvwg5BAikEaq+k+FYzzRrqM8wbdp4oNcQQBj0ceUfxw1mgXANKkcd4Af2gJL+HwKorqE81J9qVucURwMgnCcg0rLRNRdHE3ImeNhkxEsffdiIrcEoKSSV7IpYh4JTcax53smYgX/6ZcUQ6TcysRqKZdyQN/z+2qpl3FiDhechBJEs1FJym3Tw6cIrdPT7RTt/87MlkpvBt/QfBK8zcreYp9ARnARYgSAH7PAAAAAElFTkSuQmCC",wheatGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAf0lEQVRIiWNgGAWjABfYsIb1PzHqmMg1XEVZlihLiLLgynklolxLFrhyXun/hjWs/9EtoWkQUQUguxib65F9gM83WH1w5bzS/zt3H+O1JCDkNyPMcHwRTlQQ6RjeYyRGHUkA3cXIfHTXkhxE1ASjFhAE2FIHpcUC9VPcKBjcAAAkzD98KD5/RAAAAABJRU5ErkJggg==",wheatSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAZElEQVRIiWNgGAWo4D+6ABM1Db8xA7slRLmEWEuIUjQjm+E/BZZQzSW0dcCNGQPnS9paOuDxR3WbkTMavoxCNYuxGj7g4UpzyweDD4choJqXsVU4/2dk47WEKpbjNHwgS9GBAQB1RDSsD2ft+gAAAABJRU5ErkJggg==",tomato="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAPlJREFUSInlVbENgzAQPCJLVJ6ABtGlSpMJWIANskeKVBTZIxt4ASagSUUXpWECqkhIThHkfJwHbBAoUk5y43/u/t7mDfwdolRqn/zNkuTeAlMQuCT1VV4XjdP3Q9AduVlRKs0eifWirwINAFEqoe7NRyCLJQCY/SyWqAuT88XHnYEuE56cElOUyWuBcWML6C6RJaKgTnaHoxGyRaiAIR+DLX69nHtFJl/TIRGKVf8D5xaNYX97cy/uYPVRMbtNtD0A40CFYp6CBW5U6NNWIHu03mR29QB/BkFetV5OVChYcnaDQAPAkBsVCuSVibFcLvN87BWb/Sb8Np74sVisxYmO1AAAAABJRU5ErkJggg==",tomatoGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAGZJREFUSIljYBgFo2AUjHAQWqHxP7RC4z/VDLEpEv1vUyT6nxTDGYm1hIGBgeH5r7cMDAwMDJJswgwMDAwMqztuENTPRIwF2AwixnCSAXIQEQuI8gElYOhbgC2iKEvXRKbMUTCMAAAvbR7j6+Sr/gAAAABJRU5ErkJggg==",tomatoGrowing2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJFJREFUSIljYBgF5ILQCo3/oRUa/+lqiU2R6H+bIlEMSylyDLJmdAuIMZiRWEsYGBgYnv96y8DAwMAgySYMl1vdcQOvGURZALME2QJCBsMAE7EWEGsg2RaQaxlZFsAAMZFM0AJchsDEqBLJuFIRMUFFVBBhM4jcSMcLcOVkfICiSB4ZFmCLKEqLaOpH/igY3AAAKrlIKa6/Bn8AAAAASUVORK5CYII=",tomatoGrowing3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA1UlEQVRIS2NkoDFgpLH5DIPLAs8Ctf8gH2+fcItoh6EojC0zARsAA4u7zqDI47MAl164ASAFyAbCNCCL4bIAXS/IgTAxsAXYFMDEQTTMEmwW4NILCwWCYYnsE3QLCBkOsoSgBcg+efPrE9hhImx8YBo9jrAleaIsgFmCbAExhhPtA5jLYEEE8gFFFmBLQSBL8KUiXEGGEUTIEYduEbZIRjYYW6QTjANcqQiXL9EjmqAFwzMVkV3YEaobKC5Nh40FKHUCIV9hkUdJmUQlUzIsgWsZ+hYAAF7KnRnkpkjpAAAAAElFTkSuQmCC",tomatoGrowing4="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABC0lEQVRIS2NkoDFgpLH5DPS3ILbM5D/IV4u7zmBY7lmgBpbbPuEWXofVLY373xS9CKwGrhAkeP/iNbjBIItAliArxmcBzGHojoNbADMQOU7QxdAtgFmOrg6ZD7YAm+HYNGPzATafgsyE6ScYychxgm4BNoehp0qCFsB8CKLf/PoE1i/Cxgem0eMIW5InaAFyUCFbgC2VkWUBsiZYEIF8gM0C5BQH04fVB7jyAq5kii/vYFiAHHEwjYr6WgygjINsASzfIKd7bJGOYgG6F9ENQbYAl6vRzSAYyYRSEaHCkigLYJagpyJskUpWPoBpIrawQ7aEaB+ANI1aAAs6cKVCAUAJdpLigBxLh74FACQg3hnrDTBLAAAAAElFTkSuQmCC",tomatoGrowing5="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABGElEQVRIS2NkoDFgpLH5DPS3ILbM5D/IV4u7zmBY7lmgBpbbPuEWXofVLY373xS9CKwGrhAkeP/iNbjBIItAliArxmcBzGHojoNbADMQOU7QxdAtgFmOrg6ZD7YAm+EPrwf+l9dcz4gsh80HMHmYepgDYZYTjGTkOEG3AJvD0FMlQQtgPgTRb359AusXYeMD0+hxhC3JE7QAOZyRLcCWysiyAFkTLIhAPsBmAXKKg+nD6gNceQFXMsWXdzAsQI44mEZFfS0GUMZBtgCUamrmP4bHBa7UiGIBuhfRDUG2AJer0c0gGMmEUhGhwpIoC2CWoKcibJFKVj6AaSK2sEO2hGgfgDSNWgALOnClQgFACXaS4oAcS4e+BQAsoN4Zr8Q2BQAAAABJRU5ErkJgggAA",tomatoGrowing6="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABIElEQVRIS2NkoDFgpLH5DMPQgtgyk/+gYFvcdQbDd54FamC57RNu4fV53dK4/03Ri8Bq4ApBgvcvXoMbDLIIZAmyYnwWwByG7ji4BTADkSMdXQzdApjl6OqQ+WALsBn+IsDjv8SGHYzIcth8AJOHqYc5EGY5wVSEHCfoFmBzGHqyJ2gBzIcg+s2vT2D9Imx8YBo9jrDlKYIWIIczsgXYUhlZFiBrggURyAfYLEBOcTB9WH2AKy/gSqb48g6GBcgRB9OoqK/FAMo4yBY8vB74v2b+Y3hc4EqNKBagexGU9ErV3sANQbYAl6vRzSAYyYRSEaHSmCgLYJagpyJskUpWPoBpIrawQ7aEaB+ANI1aAAs6cKVCAUAJdpLigBxLaW4BAFsM3RnfTMpLAAAAAElFTkSuQmCC",tomatoSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAV0lEQVRIiWNgGAWUgorEwP+UyNPfkorEwP/4NFDFxQNiOCmOGBQOoVpwMFHDEKoCXGFMlI/JDRaaGk4RoKmPKLGELuUTVQDZlpCT3anmI1wGDZ1wH3kAAGHuPqjrva2eAAAAAElFTkSuQmCC",fertilizer="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAArElEQVRIiWNgGOqAEYf4f2qZh82C/0EzfMgyfV3GFgwzWQgoJhrgchROCxgYGBim5JoSZXjO5NM45fBagAyyd6AaMtWDOMuJtoAUQ5EBEymKs3ecxvAJITC4fEAOINoCclzPwEAgiPAlP4otIDc3E20BAwPxuRmfYwimov9nHfDKMxofwCtPdDI9f/YrCt/QmJsofURbQKyBJFtAKAgosoAaKYnmOZnmVebQBwBEGSTr3HTDzQAAAABJRU5ErkJggg==",rainbowFertilizer="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA9UlEQVRIidWVOwrCQBCGv4gIor0n0CaVSHqxyhG8gJV6ABsbG7uAj8LK1iNYib0Ee8+hWK5FDMlCspn4wvywZHYnmW9m2CFQdFkp5+pT8ZIASnl2YA0aAExqTQDmLILzaQWA6uwCwJYWAP0gXFrSGkARVCFeO1RoayqbSKuxk5UMAKPlKdVnBMQ13EdB1q4MDFASv/kMvHYdDZYlcQUQVfFXFeQCvCIxIN6WPC1K0m/mQHl27klOkvEWWfXD0wqfG81/j9J5DQCg/K7Rb3WORr94Ds7+Tdu3OzXRd2KANGBuQFYL3gKoaw/IvkUmfX2Sv/7LLL4egFJcIh1wkL8AAAAASUVORK5CYII=",scarecrow="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA4UlEQVRIieWUvQ3CMBCF3yHEIEhsEadKQUHLEkgpvECWyBi0FBRUeIV0bEJjChzkOP45WyBF4kmWT9a9+86OY2Bh0mawRTnFn9d3sNnzvVzAp/goLmTFBBQr1EHWOcfqhXZA1oC+HDHOduzL5QK+JjbA6ngSp8S+RW5ROpxZ/qz/oMTLPSJd9wqDBAYJ1L3yAYsBepDzRbOWhKQAnC6jOeuAgez5tFW47QQaKACwYgE3F8638e3Am9g8lDeOeUIAuxsAoHsrZklmjQKeCZmromuapa6C7qq8h3A5b9H/An6uF4WMRHW3ug60AAAAAElFTkSuQmCC",scarecrowAnimated=""+new URL("scarecrow-animated-Bwzq1lj5.gif",import.meta.url).href,sprinkler="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAlklEQVRIie1VQQqAMAzLxO/5AP+y4/7iA3zgPDikbG1XrYKIAWFsWRLSgcCPNyOXz8UL0qWUEgAgxujiDb14RYBLeIhrkJI1AlVC7cxsIAnBKm4xaEwoeuKAYQZenKqIg6eipv913tfTYp+DVBE7XAq6pzzl/gyUdIEzbkjKWa44mVZE9zWt8aK5mff4M/0Nbof1J/QhbIFgQxZVKNMbAAAAAElFTkSuQmCC",cowFeed$1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABaUlEQVRIie1VO46DMBAdom18idRQEMk3oKfbK1ClQZyFxhXHoPcNkOKCPpdw6S3Qc8aOnZBNmpV2GpBt3m8YIPqvT9U6Sfeb5w57gM/fpSMiUkPpXiV6SqCNpb4VRETU1CIgfptgnaRrakHjbImI/FUNm6M9JFmCdZJOGxuswQlKG/uUJEmwTtKNs/WR9O3NhTbbOt+Ho90EyH2cLcEF1F+uNzcg5b2Jq8g5SJFyIO6kbwVV3ZLEunOA7Hn+2livHHsgOx3zou4IkGVTCw+ArHlETS28AP6WpUi+uHK+Mc6WTsctayjOzQRcgIhXwcEBmmsaokKDc2d5PzxB3EQA8BjiOYjJ4RI4VbcUBw6ujfU2+1YEvQA4sscV5y9XCmbDO1BD6WA7pQjKeTzxmUf3QQ/imF5Z4875Od8M/hal1OaaytdTLoLpU0PpUtOaUl91S/HoQ5ebbO8kfnidpMMPJ/dxU0OZ3fu79QOnNyLrGvOANgAAAABJRU5ErkJggg==",huggingMachine="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAgUlEQVRYhe2W0QrAIAhFbexT/Sz/tb2skKYPw+kGuwd6CemeJEgiAP5Oc/Z7VZ4l0Jk5JV1ELpmrwAw/ix9jOXfmblaxLlLdaJE970KmQCUQgAAEIAABCLz+HWuBzswkIpQ5kIyMkb17hVWYb8AYLqLL7eqnHqE1CXtT810yzwYxDkKWK8nSGBQGAAAAAElFTkSuQmCC",milk1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAlElEQVRIie2UwRGAMAgEL45F2IIV0IB2bQNUoCXYBf70YYBkIuND+cLckoMABEcqqJEWDQ8gzGwWEJGp0zmA5gi3qC/pQiTPSMnv71WLBNC7PwWuV2S1NIB4wgrophdukTrkeQsGAMAylmwxMK26ne6aCg9mPtFu5sNn8AM+AHDX1FvDJoD1gUoj/Ni557qGUVn/TByjTiCJ3SiEogAAAABJRU5ErkJggg==",milk2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAt0lEQVRIicWUwREDIQhFv5ktwhZSAQ0kHVimJaQBKkhKsAty2s0hKrCGyT8q8x8CAgQrGWJkxUMDCDNPA4ho6nNRAMsKL9FmyUKkz0hJz++vJRJgnP1h8HlF12sEEM14APryCy/RsMn3VzAAAB5XyxQDt+e4nOqYCufpfaI2vQ/vgQtQqaEqGZ8GVGoonFE4uyAmwG6+ywMxAUqn0b2z04AVqWOqjeESYPaBrApfduq69jCc8b/RG+oJMonZquS9AAAAAElFTkSuQmCC",milk3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAwUlEQVRIicWUwRECMQhFfxwryCktWAENaNc2QAVaQk5pAS9GHU0CbDYjp50J8x98WIDFEQw5MqOhAYSZhwlENNQ5KIDpWG7R0VKFSJsRgl7fXy0SoF/9S+DdRVOrBxBNuAP60VtuUXfIl/tiAABcT5YtBs63vp3qmgqn4XugPHx3zaBQRlEENwMKZUROiJxcEBOgitcOPBDTqaiC8TmPz28tXB18A3cDtKq1dqBapK3hFGD0A1lj+bFTz7WH4czfJx6xwUOYVCI2qwAAAABJRU5ErkJggg==",rainbowMilk1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA3UlEQVRIie2UQQrCMBBFX0WE4gH0AtKFB8i+p/AC0ivUhW7cuBM8hVfJEfQEHqBQXI2LgCg2k5ZYCuKHbDKT/yeTn4GekbTIkRiOkIBYa9UEY4zKMwoIRKP3FrW6gVQ5pRSUUoDc3dqGdDsIxEATEECkyv0Z7haC0saxj1yOy3B5QMoFgJpMaHiPwVwk56B53rFyVB98vha9HgpCK0YVABA7V+OJuanxQW36F/gRgaBNQzaMEuj6m5vgHRXPYbeeAbCZLgA4cHL7uwkA6f4KQE3WyKfNgq7lt5sr38YDiBMyusgc/RoAAAAASUVORK5CYII=",rainbowMilk2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABAElEQVRIicWUsY0CMRBFHwidhCiAbeBEQAHOqWEDGjhtC1zAJZeQIVEFwTbiEqCCLQAJXTQEq0WH8M7YGMSXnNiz/43HswMv1iAiRnI8LIB479UA55zqMzQA2Xp5iaJuIKcFK6lYSQXy1661xU0A5EgDCCByWvRHtLcQlDKO+sxlO7fTA8YcADgzEwLv8bYukr3ZPLdatlZ3fn0l+v+RKS0ZFQAgvlDPB65Rz9/apneqXUNtZPwwoHYNpS8ofZEEiQJ05p1SIFGAMvDQob2HATky29RqwyxA6t8cUu+ouA67rykA35NPADbs2v2fDwDGv0cAzsyCftosSE0/bq48WxfOzkS6fPRuuQAAAABJRU5ErkJggg==",rainbowMilk3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABB0lEQVRIicWUOwrCQBCGP0UEsUtjLiAWHmB7T+EFxCtooY2NneApvMoeQU+QKpUgVmMRFR/JzK5R/CEQdjf/N4/NwI/VCDgjdTwsgHjv1QPOOdWnaQBq6+clCspAjiNmMmUmU5Bz8SwsbgSgjjSAACLHUfWJIgtBKWOrylw2Qzs8oMMegBMDoaQff7tFsjMvz7PGhdWbX1WJHj8ypQWjAgDEp+p+w2XqflQPcpeRG4YfA3KXkfiUxKdRkCDAzfyWQQzE7AFwN0yu/Xh8txSVwSvwa4CyaEMzMEtkXcNagNi/uUyVo+I+7CY9AObdPgBrtsX6sg1AZ3UA4MSg1E+bBbHhh82Vb+sCloZVyeeaHwgAAAAASUVORK5CYII=",chocolateMilk="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAo0lEQVRIiWNgoDFgJELNf0rMIGTB/5MnT+JVYG5ujtccJgIWUAxoHkQsxLhiS7wGVnGfhTcI6h3QIPrPwIDb9TCA5AusZuGy4D8hg3FYhGEezYMIZyRP/XGdRKOwBwbeVLR9JTGpmIHBMxx3SiaYTP+flMArz2j+Aq88zeNg1IIRYAHBZEooGVJkAb4MRLEF2RyaJBm0HYc4weKaBEBcuUJtAAAZkx6s4XKlkgAAAABJRU5ErkJggg==",inventoryBox="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAZElEQVRIiWNgGAUEACMeuf/UMAuXBf8v9/GTZLpu0Ues5mGzgGTD8VmCbgHZhuOyBNkCig3HZgnMAlIjlFjAyAJj/TsUQlWTmezWQGiqmorNolELRi0YtWAYWEDzwo5G5tIRAAC2nxYih/81pwAAAABJRU5ErkJggg==",weedYellow="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJVJREFUSIljYBgFAw0YiVX44aHBfxhbQP4C0fqYSHHNyTM/SFFOugXmJhwkW4ABPjw0+A/D6HLSSboYYoQAVh9gCwpshuNzDF4LsAXF03mX4RErnaT7H2YhOfECB+iuRjaYgYE4H5BkCTlxQJIl6D6guiU0MxzZElL1EMxouAylqm+Q44BUw4kutJANRc4To2AU0B4AAKGOTyVh8wmJAAAAAElFTkSuQmCC",weedOrange="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAKRJREFUSIljYBgFAw0YiVX4YZ3BfxhbIOgC0fqYSHHNyf8/SFFOugXmjBwkW0ASkE7S/U9YFSpgocRwYuIFpwXomp/Ou8wIswTZspP/f+ANOrxxgC1SpZN0/z+dd5nx6bzLjAwMhOMFbxDBNMMMZWBgYIDRDAykJVe8ADloyIlooi2hmeHIlpCqh2BGw2UoVX2DnjxJMZzoVIBsKHJKGgWjgPYAAKhMQnagnSlUAAAAAElFTkSuQmCC",weedPink="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJNJREFUSIljYBgFAw0YiVV4w+DDfxhb44IA0fqYSHHNw1oLUpQzMDDQwQdYDYJhdDnpJF0MMUIAaxBhCwpshuNzDF4L5JtPYIg9nXcZa7CQEy9wgO5qZL50ku5/YnxAkiUwNjlxQZQl0km6/6luOLIlNDMc2RJS9RDMybgMpapv0COXFMOJzvLIhuLKE6NgFNAGAACdX07JsB31AgAAAABJRU5ErkJggg==",hoe="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAuklEQVRIic2UwQ3DIAxFPx2ALNSJOPRMJmjOnal7pReIHGMIGFfKl5CsyP/9YBDAjbWnxeuTHhNwl+s1RoQQ8vfpAArHGiMAYPFebB4NKP6cStqFdkSiFu+LkJkA9942MYRqNMChcluo0uj2bNCoeRZpZw5Q3qLv6wgB2Kgo/FQMwvH8FP4jkBpGAlrwqnoDVPDeRjW8p3kKfmWYhrdMJvCa0QwumU3hHGAOp5C/wAH2FlnDuS6f4VvqB7TESLgVFsd2AAAAAElFTkSuQmCC",hoeBronze="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAxUlEQVRIic2Uuw3DMAxETxnAdQYwkAncaaIUKTKIi8yRMdJlEW/hNJJBUx9LJAP4AAGEwXtnUYKAE2sNi9c7XRRwF+tlnvC+3+J3dQCFY5knAIAfh2xzb0Dy51S5XUhHlJUfhyREE+Cuz282hKo3wKFwW6jC6NZokKh6FmFnDhDeos9jCwHYqCh8V3TC4V+Jfwukhp6AGryo1gARvLVRDG9pVsGPDGp4zWQCLxnN4DmzKZwDzOEU8hc4wN4iazjX4TN8Sv0AN2RJwOjZLUAAAAAASUVORK5CYII=",hoeIron="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAtUlEQVRIic2Uyw3EIAxEhy3DtaQl9k4bcUvpK3uByDGfgGGljIRkRZ43wSCAF+uMS9c3fSbgLtXMjBBC+j4dIOFgZgAAERWbRwOyP5cq7cI6oqKIKAuZCXDe+2KI1GiAQ+W2SMXRnclgUfMs4s4cYLxFx/cKAdSoJPxWDMKx7Zn/CpSGkYAWvKreABO8t9EM72megj8ZpuEt0xJ4zbgMXjIvhWvAcriE/AUOqLdoNVzr8Rl+pX42rEn4TvbkRQAAAABJRU5ErkJggg==",hoeSilver="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAt0lEQVRIic2U/QnEIAzFnzdIJukKrnLDFJwkK3Sv3j9aUr+qMQd9IISS93s1isCLdcaV1zd9FuAu1cyMEEL6vhwg4WBmAAARVZtnA4o/l6rtQjuiqoioCFkJcN77aojUbIBD47ZIxdGdyaBR9yzizhygvEXH9woBslFJ+K2YhGPbC/8VKA0zAT14U6MBKvhooxo+0rwEfzIsw3smE3jLaAavmU3hOcAcLiF/gQPZW2QNz/X4DL9SP/ScS3hB0In3AAAAAElFTkSuQmCC",hoeGold="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAvUlEQVRIic2UUQrDIBBE35Ycpl89QCnkRj1Me6JCyRV6HPvRROKqia4WMiCIum+cTRAOLDcPPQ90aoDLMnevK5+nXw8kesEC97Bxipi1CbJwIJnC2qKkzpe4VbUtWieARAoIW1WbQMj8LcEtfqbOuxi0+S1aEgC4992bAMgMjOAAgxGuJTJO3jDYsMBvj/LaUgMTvPSgGV5yuAm+V9AM3yrqAs8VdoOnirvCNaA7fA35CxzUW9QbrrX7DB9SX0XaUBQX3euqAAAAAElFTkSuQmCC",scythe="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAxElEQVRIS+2V2w3DIAxFnb06S9QF6DBlgSqz9C/qTES2SoQcbjCPfFQq3+QcfGU7E118pov59BdwwoEIJ9EbUbjPM72WhUVZVo8geO+lRz7rCiWtgvB+EN2eRCVJi0DgfFjAJ0qcc4eoagUaHr+XuHJR1QgQXDoJVWEVnMHjMhCJjskisMBhFSWBFQ6rOBPUwvcq0piQoAW+V5FOdU7QAz9sfy0YCtdTNxyeFXzHv9Rd5h9hCuK9DteumaguDnspesDvCzbc3VkZpaP6uQAAAABJRU5ErkJgggAA",scytheBronze="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2UlEQVRIS2NkoDFgpLH5DKMWMBhriPw/e+MNzpCgKIhAhrd6ijNUb3/JgMsSsi0AGb41TRGcRi48/obTEnIt+H8kj4Ehf5cIAyFLyLEAbDgI2ExiAMUB3BLvWfcxgopUC1AMZ2CAJHNYcGELKlIswGo4sgUgNroviLUAp+GwkgDmC3IsIGg4Pl8Q8gFRhuPzBT4LSDIc2RfIwYTLApINR/YFcq7GZgHZhmMr+tEtoKrhIAuRLaC64VgtAGV/NIspqvRQfAA1iVDSJclCqhpGTCST5DpiFNPcBwAgan0Z4Vp7jQAAAABJRU5ErkJgggAA",scytheIron="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2klEQVRIS2NkoDFgpLH5DKMWMORlRP2fNGMZzpCgKIhAhqsqyzHcvvuIAZclZFsAMtzY1AqcRj69e4LTEnIt+H8kj4Fh1a8oBkKWkGMB2HAQsJnEAIoDuCVnTx/DCCpSLUAxnIEBksxhwYUtqEixAKvhyBaA2Oi+INYCnIbDSgKYL8ixgKDh+HxByAdEGY7PF/gsIMlwZF8gBxMuC0g2HNkXyLkamwVkG46t6Ee3gKqGgyxEtoDqhmO1AJT90SymqNJD8QHUJEJJlyQLqWoYMZFMkuuIUUxzHwAAb2p9GTK1pfkAAAAASUVORK5CYIIA",scytheSilver="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAz0lEQVRIS+2VuxHDIBBEV305oAyqcKQyiDwugjIIHFKJm5DnZOM5YX6HIDORAs172uVACyavZTIffwG01pu1NtvEqYoIrpSCcw45SbeA4Ou67jPivc9KegXb4wrcnxo1SY9gh9O63EB78JUYY36qkgoOcOA95qGuVFUSQRLOBfQcp2gVZOHhJggpegRVeClFLUETvJSiJBDBeQpeU04ghvMU/FSnBN3w1NUfC4bCScgFw+FJAR3/SHzqp3dI8CHVRlckHApr2WTR17W8PD3BC4S6fRnQ192VAAAAAElFTkSuQmCC",scytheGold="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2UlEQVRIS2NkoDFgpLH5DKMWMDQW2/2v7z2EMyQoCiKQ4YZa/Aznr31kwGUJ2RaADC9MVAGnkQMnX+O0hFwL/h/JY2DYy2rHQMgSciwAGw4CNpMYQHEAt6R//h2MoCLVAhTDGRggyRwWXNiCihQLsBqObAGIje4LYi3AaTisJID5ghwLCBqOzxeEfECU4fh8gc8CkgxH9gVyMOGygGTDkX2BnKuxWUC24diKfnQLqGo4yEJkC6huOFYLQNkfzWKKKj0UH0BNIpR0SbKQqoYRE8kkuY4YxTT3AQBP8HwZfM9pkQAAAABJRU5ErkJgggAA",shovel="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAALJJREFUSInV1cENgzAMBdDfqovQOToT5zBBOXeL7MEcMIp7akWM3Vi2OdRHK37fKAKAk+uS5JDmRgMIAKZSmuZznr/2LYJzeN023Ieh6V0zcak8ASrOt/cGmHHAf8k0lSLi+wsGAk/Q2zwSQMsI1FoPON/eE0DLeABVXGxY8Mermf28xaJlDdDwblkOunHL4RDeGwjjv4ZScG0wDZeGU3EOpON75BQcYJ+KbJwX/3H/R70B5PVOSsiwgM8AAAAASUVORK5CYII=",shovelBronze="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA6klEQVRIS7WVoQ7CMBCGbxa9BIXAVZLsIQjhPfBYPBrPexDCQ5Ag5xDYaWzJLbnmVjp69G7Vzfe1/+3vKph4VRb8xtWec+5tF7gqAYEvu+XgnNvzE0hSLEB4DH683rBazEAtGIPjNdSCHBwlqhvEAoyFTk6DUAkQQpIcHPeWDtk3robjZt5nzhc/fanA3/auZx6uHfAvKYaXCAJ8fWoxqiBIwf8VDOAUL5WNt5dHJp1BEi55ZiSCYrgkIhU8J1DDfwlM4GMCM3hKYAqPBeZwLpgE/iXA+isewGTveNHwxy0pnqTAYY85MLZ/AKAsiRkhT8wtAAAAAElFTkSuQmCC",shovelIron="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA7UlEQVRIS2NkoDFgpIb5eRlR/5HNmTRjGdxciiyAGWxsaoXizrOnjzHALCHbApDh6AZ/eveEgU9IhoFiC3AZDvIGxRYQMhxkCUU+QLcAFCwwl8MigiILQIbALCFkOEgtuZH8Py8jikFVWQ4c5sgA2fXkWvB/Z6EG2Myt340YkFMSuuHkWAA33L3/Biio4BZgM5xUC1AMhwUvLLMh517kICM2DrAaTkwxQ4wFZBtOTBBRZDghCyg2HJ8FVDEclwVUMxybBVQ1HN0CqhuObAFNDMewAJT9KSgAseY75IwGqriJyXjEZGC4GqobiG47AJ1ZiBlTJ5acAAAAAElFTkSuQmCC",shovelSilver="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA4ElEQVRIS7WVwQ3DIAxFnW167IEBuHUF1qjEGEgdoVdW6A4M0A06BpUjGTmUFIIdzug9+M4nC5y8Fg2+cy5zToyxcEUCAnvvN+cMIQBJpgUIr8EpJTDGgFiwB8driAU9OEpEN6gFGAudnAYhEiCEJD047p0dcnbOgbV2zZwvfvpZQX7dLyvz+bkC/5Jq+IygwG+PN0ZVBC34UcEGTvFS2Xh7eWSjM2jCR56ZEcE0fCQiEbwnEMP/CVTgewI1eEugCq8F6nAuOAX+I8D6Cx7AZu940fDHPVK8kQKXPerA2v4F7oGIGVytZc4AAAAASUVORK5CYIIA",shovelGold="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA7ElEQVRIS7WVsQ3CMBBFLyxABRNQIDoquoiOORghygAoA6CMwBx0iAo2oGADhnB0kc66GAcfvotr6z37X75TwMSrsOA3dek453S+e65KQODquBqcs728gSTZAoSH4NvzA/vdAtSCMTheQy1IwVGiukEowFjo5DQIlQAhJEnBcW/ukF1Tl7DdzPvM+eKnzxW4a7XumY/ZEviXFMJzBB5+aF8YlRfE4P8KBnCKl8rG28sjk84gCpc8MxJBNlwSkQqeEqjhvwQm8DGBGTwmMIWHAnM4F0wC/xJg/RUPYLR3vGj445YUT1Jgv8ccGNo7Yi6HGb8waRoAAAAASUVORK5CYIIA",wateringCan="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA0klEQVRIie1UwRGEMAgkV8JVYAOWRjWUZgNWYAvxYzJkDwg697vbGWeMJLuyQIj+mKAEsZrc90igikhfMPNjkVdEfhHTta7G3inwr5C8WILOWROYQQGSASLSH0pmZFnUyQhqYcVnAqkiNxzLSu99G77NGiBsUy1yLGt/vyPiWoTQpFqMKLbLEzAtikQ8hHNgoYmgTVmBkBxFGpjZtSldAw+KXIt0IavyqSwaOcG0Y+zWHDjkH2d0zLMovDKivsfY7MJyU/f2YyxzI5qpfxtDZ/wWThNOcCnuawEeAAAAAElFTkSuQmCC",coal="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAThJREFUSIntlK9zg0AQhb/WrEecw8cwCE4wmHj+zriaKDyGqSAiLh53vuJiiOjsFQYSYCJqeIqf39t9t3ew67/18ca//RrWVoMAPRwOOOcwxiAiXK/XWd4Wgz6KIowxWGtp2xYRoes6AOI4njVZa9CnaYr3PjxwzgWw9x7n3KzJ59rKFSIiIRqFiwjGmFEBaw36NE0xxuCcoyxLvPfhPkkSRIQ8y0ZdDbUUUchdAXp9LAq+LxfyLKNumvDudruNuK86CNVrLHEccywKRIS6acizjJ/7PcCttZs66IejeCwK6qYBCLF8nc/A30IDkw5eGkRRRFmWYSSTJKGqqvDBEGyt5XQ6TZiLHcB08XQddD88y3/JYGSiMPiNSMdWs5+rfo0BDI4H3Ww6shrds2NircGs2ZucXbs26AE1fqYGir1jrgAAAABJRU5ErkJggg==",stone="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA8ElEQVRIidWVwRnDIAhGSb9ukyUYwxFcIqcs4Tgu4Tz2In6EIGjaS/+zvgeGKMC/Z1tcX1cZnuACTCndFsQYTdZIUEdAnpwzIKIp0gR1BgwAHc7TRJ371uC8slmw5JCEd3CpXMJGUlnAvu9wHEdnUwe3Y+HgmaoJLvPyNiEiIGIXrcBdAQ9JpMiCmwLtzGU3I/h5ngBt1Kc7kCKCl1LMtY8EPJ5EFXgj6Z27K1iN1QX9B1uMsYYQTBB93NnqueC2UZt7C0xdyDXyLjJhGkALvyrkbVrbDA/jSThcE3wlkfCR4JFEg1sCAP39tbL6vv8mH84SiYSmpt3xAAAAAElFTkSuQmCC",saltRock="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABB0lEQVRIS+2VMQ6DMAxFzUm6s1XiCsz0OpyA65SZKyCxsfckqRzJlXE+sauKrVkq1OQ/5zmBhi4ezcX59Ae4hr9RlExaaG1oEhGltK6H/Kbr+Nld707g8Oc00dD3hY4IxAPkyudlOQD4mQdDPUgNcNAiEAvLniq6zgCFc121dfUzAFUdhaAd5KaK40g4z3mMIzxVECBHMhp+b1u6DUMIABt7dl25AA7f9j3/IojdAWyuvQPScA6VwRCkSQOKcFmsVUnVaFcIEgJwmK5alCCI1eQCkA4OPoPUALyuaLL2bCtGEA/wgdRca5CGRE6RrE2veXY/JlpV9B7oUPuB8YDwvea9rr1Q9/83lhuWGQG9q4IAAAAASUVORK5CYIIA",bronzeOre="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAYlJREFUSIntlDFPwkAYhh8bE2JhgM2pTCasEP0dMjKSsNCJRB0c3WAAYzccSBgZ+R+akjgRnCAOTopJIXFpHeAu17uCja68C+1x97xv7/vu4KCD/qujlPOivzJ+M4gAOt0e+VwWgGWwom6NABiGNW5vrvfy9hlEnW4vBhPPAN6iYixoPzwazF0GUafb4+ttJgdajh+bMLYbAFTXg1iA06unGNfal7zl+BRLZYqlsgEXYKG6NWIY1gyYbhC931/IRMOwJkEisfhV/xMSdVKlbpGEC6mJ9MXLYEU+l5Umak3UWhzrji8fJwD4+UsJrq4HeFOzqF8AzuariqXNWHU9oK3MiRmM7QbYMJ9OIJhJiEdFFlkvrnge2w2WwcrY9JjBfDoB4h2jF1TtGnXbxPnQu0hv06jf7xuFFQn15Hev5wAUMqEc089CUptKmP6uwr1FhUImpJAJaTk+n9+WcVaSvgC210PTdWPJ1MUiuXw/ewYwtmeXgTRquq4BSoJvwYm8VJddCqW9lQ8y9QNiZaVNTKTieAAAAABJRU5ErkJggg==",bronzeIngot="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA4ElEQVRIS2NkoDFgpLH5DKMWEAzh0SD6jxZGGCFCahChGFjnwsXgaakJtmP78esMTXu+gZgoZhKyAKeBuGLXsvksiiXYLIAbiuxCgskFSQGyJegW/CfXUGQHIAcXsgVgw0EAFq6kuBoWD5rS/AwKclIMMF+gWHC81hhs5oNHz8CKCAGQS0EGwgCyHrwW4LIEn4HojsFqAXr4k2IgMXEAUoMSyaQEFTQPINsDDn6syRTmE1wWIKUSDAPRgwpXRkPxCSkGEmsBOLgIlTOEUhmuICJGH9FqCJVFRBuES+HQtwAAGJ1YGe/MnNkAAAAASUVORK5CYIIA",ironOre="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAZZJREFUSIntlLFKA0EQhr+onHfYHCG6RXIKFj5AykCeSgufQCyUFNZWwSqQlwikkqusUgjxkmKjSBpJDISz2mF3cwlJJYJ/d8fONzP/zg7867dV2vF8vitz2wQ5QLfTBqDXTwFoNurOocFwwvXVpcM92Ab81H4kCgOB2+DZfAFApqeFgHUd5AAPrRvKFUWmp1ycnThwAzaJB8MJejxCVWtOF0Ud5N1Om8FwQrkSA3C0/02vn3J+eixwGwwI/OLsxIHtrYMnKpbWX9/eaTbqlCuK2XzB54cuhBfJTpA/tR8FHoUBnx9agk3VURhQrSVikR6PxDa/evHJrzwKA5kUVa3JP1u25z7cnibnDowtxu+v5eEKfDZfkOnpWrj/vWcHRmHAc/qyMt8+fJMGw4ncjZPABDYbdcajrLB6I7/6Xj8VsN/N2oeWqJhMT8U2uwgDNlLVmiT1k5gOStdXl1LF1/KwEK7HI2dqjCXmXKJiJwZWX7Iss9u7+0Jb7Or8NZGomOf0BYBWqwVQ2rTsttmcm7Trpv7XX9UPRxDlZCE0bRgAAAAASUVORK5CYII=",ironIngot="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAwklEQVRIiWNgGAWjYNADRgr1/ydkHqkWoBiYmxHNYGxqxcDAwMBw9vQxhskzlmKYScgCnAbiAgnJ2SjmYrMAbigxBhKyBN2C/+QaigyQg4sJ3XBVZXmyDf707inD2dPHUBzIgqwAOcKI8cWnd08Zbt99iKLfWEgaRQ0LuiaYQmyWEGMgOkCxANlQY1MrsgyEmQMDeCOZ2KBCilRkwIjhAwYGBsbJM5b+z2VgwGswPgOJEmTA4hNiDSRFEcFyZhQMDQAAaMBZ6FnVQEEAAAAASUVORK5CYII=",silverOre="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAQhJREFUSIntlD1uhDAQhb9EuUOK5BBbeGsoOARHoF8XOUIKp+cCvgWFqTNFbkQajIgZbHaVkichIWZ4PzOW4cSJE0cwzc9DeCqR930PQNd1R/o3eD7aKCLwQJqco2kmTUVimiMc+QSpAIAxBhGhbVs+3RcUEhVHpImsv5VE9gSW5UbH6/cQAhdzBaCpq6zBbAJjzK7zSD6EMZviJUeeEoYQALiYa9F5hHYCJhHBObcp7I1lCCMAH/a24UwFpjnuQhJ/buoK5xzWWtXpEEZVQN2BRg5grcV7v9RiPULbhTqidYpUBMB7z+vb+5+epq7iociOKCuyxo98LzsBff45Abj/Br37IvwX/AKZJHqzxczScgAAAABJRU5ErkJggg==",silverIngot="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAs0lEQVRIie2Uyw3DIBBEJ1HOThFTgSN6oUY3E1ewRZgGnEuIWAPmk0si8SQuCN7sAgIYDH6ey5f795KvNUAJl2UBSQCAiMBaGzlLAVlhDmOM8qYCPtIaYSnkGLD3SkPC47oe5Y957hbfpwkiogoMA0ASm3MQkSahH5tzUfe31EaSUSVe+FxXta50nCoglJLsEnqP5/SSU13khO9LDUm+IhWSCzgTVk0i0UmtsGVR8Z8Z/AcvcvFbDaU3IKgAAAAASUVORK5CYII=",goldOre="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAXZJREFUSIntlC1vwkAYx38s+wALroIvQBAVbfAkJJVIbB0OAQLRTE1MbAIz2+BQaBIS0hAMLwJBENgKXFNXycS45ijXg5GphX/SNL3r83+5J/fAAw/8CxxPz114uka8n7k0m827hQp55MnWIYwMprsqALXygumuSqvVulZ7BlWCY7J1LhZLxQO18oL9zOW0f1OirIuUPIwMSsWDsiiMDEbLCpv1iuFwqOLRJmAwb5y9sygVD2zWK0zLZj9zQZNE1+RcEXlttKxoRWSBY7J1GMwbaUNVhIN5gyAIMC0bgLYz4fUryTX4fC2BSkSg7Uzoj+uYFqIXeoEwMqiVF7kiQRAAYFo2bWdykzG5+8f3j8/Umfv2cvGzfCwy+uM6AL1uJ8upbnJ/XMf3YnwvxrRsTMvG92I265XSuS6NLFA4OUgLhDPx7XsxYWSke2Jfh2yCQq/bSYuzQvBzB4SInDgvRe4skvuhcioumoDq/HUC8PvJedPw+3N8A0QSnZsj1HFJAAAAAElFTkSuQmCC",goldIngot="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA00lEQVRIie2UKxLDIBRFL52YYLqRLiAKURNkVVeQZbGCKmRjKqKyADZSE+SrIgMpBYaadiZnBsW8c3n8gJ2dn4d9WU8536FCuA6tBKyRsEZCKxELzHYQFGgl0Hc8WdCe7oE3FrBKS4S5kG0A1Up9xnnBZZgAgDVb+XNpq8W3B+HIbbBAP2CdGOelqAsndFzPHEBY1yBC3/FoSIlwSxDgS/uOVwmdx5E85NKt8g7Vh711AIBdhil7k1LCUkgrQdZIskaSViJ4wYi82E+kUrP/zM5/8ALJtmHuganBugAAAABJRU5ErkJggg==",rainbowCow="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAACNUlEQVRoge2YPW7CMBTH/w+hIgTXQB1yCy6R3oA5GwzpwsIWqVtvUE7QjVtk4B4smV6HxE7i70BIK9U/yRLE9vuwn99zAkQikUgkEolEIr8FTaCDR9BplfGoA6rgUIRe33zyjKGhDvSE7XmnDTjhoxG98Au7bQEAh9VGnx8mg2ZeLY0u3L/aZoGN8U5yv0qfA1bDgwywCS0S0PoimwYt6nYklxMEAHOXnrstBACuWmO6j4sElJVgbsUTURuOtND6kHPtjOHM2nbAafyg1edKriIXSa+LHEfQ1dfF5MB4xk+A6sAkxnORyBXuhQ8AcNXr8x3k7hkYx3g19Ymz4JB30DqbOe8vXnXCAYalaKhx6+JEn/rDgHrwCNYsNMRwwGL8BGiHmItksPGhUFaOLjO0Ev9ZXIVsMvrh1/ktMpCliAG6A0RZyc8KIaAOIyFfXCP4fDaPTf3FbA6A+bYFrS8iEz2XnEEZAVkpDac0BQDvfxMzAKDV98N2ma7WPXLuFSXbqptoxhrrVB1CtPC9OASx5119n1dzv6eaqs4McW6GNmy08KGsvC/1cdVvHkwh4gqbLt4sxOdzLSwrx7vI5QxKSa601KHoFTR9QVnIiFCgvnzseWOZYeHY2rDEFZS+SvmmsOk4NSi5MBcJc5GItzHZOs/k2IFNzlviyktcQ8dbCdkBaoy39Y0BAeCvxuY32AuXyv+5SjzjIqbydseGmmaYvoKN8XXtKTpCd2CKT5BT6IhEIpGR+QG4Bej6ikQYYQAAAABJRU5ErkJggg==",cowVariation1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB8ElEQVRoge1YS3bDMAiEvN7RN0BnUm7gU9JFioMIWNhR0uZVs2j1oTADSLYLMDExMTExMTHxv8Hm90fhAgBARB9JHgDg6w0xbHJwpA9UBiMcZ6Hj9uz2bPBoBRpnRBQaXq/Xrh/5+1prs1lKER/dBGUFNAFHIOOLiHqJ6AoYTlz8WWJShVJKs7cjArcf4J8BHkHcBhdCzPfuQMRtrscyVyIezukliDuEvBAWX6MrCdAK2B5orwjkAREB8ZZUObh2vQcRsLXSO8gTUUNQx9RjaZ896EPcu3OHwhLTV+mRJEZn4DDsXX4Guo2yGCbgTPAR2BUgWa21Pp3h3kPpbAIeBAhZTbiUAqUUV5AVNqKVjiD1KlFrbTLkjcVGz+1+VIFoXQ5z9BCLFlk/CS2kEroitvxWsH1NMMSA19WNhcvS4+qCLYiIiaiZezbWXtbsGG7XNfO6Mq9rdu4i3UIevGrs2TdZCrIe2eKyuN8sp65Re4B1y+hz4LVRRFALsvM97ArIvpP0KtGrjun1cM3l6KxthxgRpXyykXKaCvzje5sbws7e8VtIB/EyckaQVJSZ7+P+LRS2QVeA2ZC17Ed5FDOMkeDXIHMLNQGPBkjCE5XyPexl7reQ/rdK9gvpGZyJ4Qr4q2Q9ZCvwekXviTExMTExGN/dZHBpuZub8gAAAABJRU5ErkJggg==",cowVariation2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB+klEQVRoge2YUZLDIAiGYad3zA3MmeQGOSX7sINFI0Ia2+6D30w7jbHwo0BsARaLxWKxWCwWi2+BH/DBE3yaNu4G0BqOIn6976MzB68GUBlLKZkTicg3xmP96MsLB8AAY8EtXgDaVs65urfve9SOG8Bl4RHHKaXqfrsTeuXbuXpaeTPgV4Rrcs6nNBBBWjQilmv9Wa5VECe9P+8Uv+87MHPZwdbmKMcD+Q8A/QBuiwd45rHO53fQBjBFfFuULSmlssJtyjBzdc/T81CfzZ4mgiKr6YkXRsKYObxzsgMMRkFHBWnenTYaq4i/TnThzACICIgIELGs6Mhoznl43+rnnk0PqYFy5tBOJE9HD6WeE2mhHhGBni1dxAiqC8kOAJwL7pW66Akrjo2eL93JeohZg5dbqRVQb+WICFJK1VOaj6P7fdw2T+ucAACuBwHwFC5CnetuAF/rQtaqD+Z2n1PTArAKLVIvfBxVQO31iGEKWUU8IiIYESuBuG0nwe2YlUaPdqCFj6Pk5IxzEsDzvCMCtQ/tVxjVQHcH5CxCRKfC0vQCGu2Abpf60BboQpd++jIzc0qJ4a9wykuNlbkXX5UP/mv0kfmXaI2DiG/G7tD10RlzMVMIoGw5GmN3mObDLWIh+hPvDq/46AbwX8X2iO7AJ/6C/ISPxWKxmMwve31ULTQV7Y8AAAAASUVORK5CYII=",cowVariation3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAABrklEQVRoge2Ya46EIAyAy8Q7eoMeihtwyu6PEQdqS4FBd5PtlzhxtPaBfagAjuM4juM4jvNbhAds0AKbqo5vA+CKe8l2reuDIRNGA6iUIaIqGGM0lbWu79QRNtPKG+oxOEKPLkQ0g7DuwLTjLcOj+hRd4fxRoBUrzo3P6jz0XPzVUqhyvnRi1IEsH2Os9iUZ65zESzimOr8SIgIiEm20znF4AEvS5knKFDJ7Og9OWx1rERARQtHBS/nWOYkcAIEyNO66Iy29IzZ750DFXXUxg1TETSzntdXrGUozDAfw15hKodVYzUAbYgDXAEKM8bZWmtOIDzRKSZQP+27q3ODo/THG3Im+crAkO8jbJHc8O2r9lxiugVaRSs7n/cu0VVZd4pAV59R2GLBeHCpWpxgPZiS4F3zS5pI+0sr1MhNk2Pdz68VMIUppOhCe++U+dzLsO1BK58bPgVKf0kEqu0SrkL55MZGK+eLcx+ZQcyFEJEQkeNfFuRXHTtnBzbShyKv0DLIA+mP2qs8ylY3W4OL8n0eJJ55AZ2yIRSzIrPi6douN3jvwxCfIJ2w4juMs5gdcWvZP4r+1igAAAABJRU5ErkJggg==",cowVariation4="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAACFElEQVRoge1YW3aEMAiFnu5xdoBrijtwlfRjJEWEhHQcpx+559ipJsKFXPIQYGJiYmJiYmJiYuJTwBt88AU+QxuvBmANZyF+e+9jpw9+DTpmfTEzRFfGDhG57xIREJH0ayIbgJAOSS7LkjT1xE6w+Z70aaEnocoyympEYF3XJjHdbm0jYthXd6t/ArAYKKU0urWzaJ0LIU0aEeu9/l/uVRAnvpGEKvmI5LIs9WpBNG3tCbkIrTaNb8+n50xGYVTro/1HYUfAJX81iKhm2EqGmQ9tPS56BLrkvWyWUv6U5ZafkQTKCDAEBd0q4F5x3wGvBgAgT+7dGu9BL+kI++rqQYhGgelAooJf19WVh2fTexcGplEX75BMZDPrKx2ANWjXAWn3st8jiYjuJe1R9vVDXcShjISYJuRJyw6/nqlERqWUOl3ytrm+8PHwuJ7ARFQ3a3sAaRBRup9cILvZbWPetuy9i7SEom2Dl/nUFiPIeqOvG4QcGA6/vf28lZFtE3h1A/CU0UgAAFVO7iwkD0+NUkwWXqG+sh4YrYfPsqi6hV2H8HsCG64F0b19Bkrj2gcY/fdqwKvsKiFErEPtZaQntZOz4KCSmIXCGagbgGmQZ9lDeeSPZUVundwCfgeEeyFjJCrsqz7LIJyDStke/Srx75AZAQDIH/FeQUdOLtwacPpc8XXtLT6yI3DHJ8g7fExMTExcjB/HIw4rhmRWFQAAAABJRU5ErkJggg==",cowVariation5="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB/klEQVRoge2YbXLEIAiGcad3zA3ImfQGnpL+2JoiQcWPzewPn5nMtAnKi4BrArDZbDabzWYzjHvYHw34Jfb3bdxrSk4f1DbpH/NiRiMORhn1dRv3AgBAxE+L/9j8P5PjZ4VNB5aagsDWWJlDRKwae+/fTpw+dRqf7BLneQIAQAhBG5ZNZs0AcYdWzvME7z0Q0S0Iy1yIKIO4rUQrAwQAQESXoBG891kAUlia/xJVtu3aRgkRs8llqkdIgojourhg51z2LIRQzVYpAOotFwtyzlJvtJ5xtAAy8bxsRkuohCwd6zOObOLlK6+VHSLe6vwSIEqqpScF4MCwJ3vvl2WhJqxnEXkJLT/YrWj6Fk8e5orIQHsCbwagTZ6uFrzclB+lJQxnoKcXVu9enOJRQlthKURrannPIr51VvrLnGokA3AhBLLswSnAnp0plZEQBhSjau+Oozln8zCXDmQ1kT1Nx3shCU9CW/9rVHugJHrF9lha9YqtWhbmF5oe0dzWUl4ymJ7gqhkIIXxk6yvhjsNU99kY5d7VxM45oBj/a9J4wKrB37b4SkvhyjPzSYESAEAUI1GMBO8azK5e+Ni/DwmqD8VnkWYGxIN0j7/J9XCNk1tph76mgQzAFe7NsMzHVxzmZjBvo9ZXvBlGfKgBfKtYDWsGnviK/fSX8s1ms1nAL4ZTXaf8TqprAAAAAElFTkSuQmCC",cowVariation6="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAABsUlEQVRoge2YWXLDIAxARSd3zA10KN3Ap6QfLVQm2sDU/tGbScYJsjYkMTZAkiRJkiRJkjxFucFG3WBT1XE1gFFxlGbXu784MmU2gJDDiAhEFJKzCOgoXxGH4Mfx1WyLeM5HZV7O+rTTUcd4dsd7xjVlJ0r/UljKuOXMSXn9U19K6fcR0cca48NfrYQqIoay6WHpKUYLWmscqYQqN8ivI415N+MOVCvr3o7M7FjLMC+fpoOvefAALk2ZHeW2QiuhCv6hAQDnqfCU05zoOXBiV4M3XZH/NLxzIIzX4NHTmctH9KoBWAeNJjdDNMte4C2AXv9SfRORaHCX85qeQU4cSS9BoHpH/Sqj3nZdj0OUL++3q1OKyjwLOLM7MNZ1c7w56vwWd2BpCu1Ay7ohK474bVPoCmMwM8GZO0BEZpnM9IYlK9V6pP4BnB4gIqjH0ZXNPEFFZHmmR4eFNbEHQgFIBiJOSk7zeyem0NSjb0XEiojtMbJ/2H9ddvLj2lDkVSJNXEAfrbtey5xs/O5MSPdjY3QX4TF6x9PYig2xiQWZHW/X/sVGdAfueAV5h40kSZLNfAP8suojqxWMSgAAAABJRU5ErkJggg==",cowVariation7="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB1klEQVRoge2YXZKDMAiAYad39AZ4JnODnjL7UixBkJim7j7wzdixJuEvJEQBkiRJkiRJkuSvwBt01Ak6XRmfOqAF98J6o/EY9MGfi4qrukyIqEsOEQERQa21ufh5YDwAAPQ60CjsMDBEyljXNezj8Qja9whoYfy/lBIqsZDjWBY7otscHbj/OBymz4qI54DnIBtU61s8Ijb9rbaXnIO93gyMLs4dNlwaJgOAiI2hkrM2jbUG3JE6mj3pM5pivWgHPo58DzwTiNikz7ZtbpuHTKHQ+Bm7jydr27YhPTwDFYKipoXOTA1pvLzv4bAGrH1+ZuRn49aB2UbzVjhb7tWjxM5MQ9Z1datxRFSJT4mqca+TPN4qeuK5uUblqXC/H4mup9zqpx2vz6fZF5fFshX0w6pK9ZAD0qBovDacDQ3+mw58lEKaK457Uff64rKYW/0DAKCUEr04fBXtzBXnfuDt1cG7UsrXzzIeKv9dwhR6TR8AzNs6iQhwWZpIa4ONtvE1wE707jQe+kVFLlYrbYRTl97dKxFVItLvv/LZ3vfiFepw+rv0zMDZ1jrrs0yj46xwaYaPEv+F7jpwx240osOaJusr2Iyva1/R0TsDd3yCvENHkiTJZH4BOxYPBJ6xfbsAAAAASUVORK5CYII=",pixel="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH4goFDRc7VmYGWwAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAALSURBVAjXY2AAAgAABQAB4iYFmwAAAABJRU5ErkJggg==",plotStates={"watered-plot":wateredPlot,"fertilized-plot":fertilizedPlot,"rainbow-fertilized-plot":rainbowFertilizedPlot,"shoveled-plot":shoveledPlot},smeltedItems={"bronze-ingot":bronzeIngot,"iron-ingot":ironIngot,"silver-ingot":silverIngot,"gold-ingot":goldIngot,"hoe-bronze":hoeBronze,"hoe-iron":hoeIron,"hoe-silver":hoeSilver,"hoe-gold":hoeGold,"scythe-bronze":scytheBronze,"scythe-iron":scytheIron,"scythe-silver":scytheSilver,"scythe-gold":scytheGold,"shovel-bronze":shovelBronze,"shovel-iron":shovelIron,"shovel-silver":shovelSilver,"shovel-gold":shovelGold},craftedItems={"carrot-soup":carrotSoup,cheese,"chickn-pot-pie":chicknPotPie,chocolate,"chocolate-soy-milk":chocolateSoyMilk,compost,bread,burger,butter,fertilizer,"french-onion-soup":frenchOnionSoup,"fried-tofu":friedTofu,"garlic-bread":garlicBread,"garlic-fries":garlicFries,flour,jackolantern,"hot-sauce":hotSauce,"olive-oil":oliveOil,"onion-rings":onionRings,popcorn,"pumpkin-pie":pumpkinPie,rainbowCheese,salsa,"soy-milk":soyMilk,"spicy-cheese":spicyCheese,"spicy-pickled-garlic":spicyPickledGarlic,spaghetti,"strawberry-jam":strawberryJam,salt,"summer-salad":summerSalad,"sun-butter":sunButter,"sweet-potato-fries":sweetPotatoFries,"sweet-potato-pie":sweetPotatoPie,tofu,"vegetable-oil":vegetableOil,yeast,...smeltedItems},items={asparagus,"asparagus-growing-1":asparagusGrowing1,"asparagus-growing-2":asparagusGrowing2,"asparagus-growing-3":asparagusGrowing3,"asparagus-seed":asparagusSeed,carrot,"carrot-growing-1":carrotGrowing1,"carrot-growing-2":carrotGrowing2,"carrot-growing-3":carrotGrowing3,"carrot-seed":carrotSeed,garlic,"garlic-growing-1":garlicGrowing1,"garlic-growing-2":garlicGrowing2,"garlic-growing-3":garlicGrowing3,"garlic-seed":garlicSeed,"grape-seed":grapeSeed,"grape-cabernet-sauvignon":grapePurple,"grape-cabernet-sauvignon-growing-1":grapePurpleGrowing1,"grape-cabernet-sauvignon-seed":grapeSeed,"grape-chardonnay":grapeGreen,"grape-chardonnay-growing-1":grapeGreenGrowing1,"grape-chardonnay-seed":grapeSeed,"grape-nebbiolo":grapePurple,"grape-nebbiolo-growing-1":grapePurpleGrowing1,"grape-nebbiolo-seed":grapeSeed,"grape-sauvignon-blanc":grapeGreen,"grape-sauvignon-blanc-growing-1":grapeGreenGrowing1,"grape-sauvignon-blanc-seed":grapeSeed,"grape-tempranillo":grapePurple,"grape-tempranillo-growing-1":grapePurpleGrowing1,"grape-tempranillo-seed":grapeSeed,jalapeno,"jalapeno-growing-1":jalapenoGrowing1,"jalapeno-growing-2":jalapenoGrowing2,"jalapeno-growing-3":jalapenoGrowing3,"jalapeno-seed":jalapenoSeed,pumpkin,"pumpkin-growing-1":pumpkinGrowing1,"pumpkin-growing-2":pumpkinGrowing2,"pumpkin-growing-3":pumpkinGrowing3,"pumpkin-growing-4":pumpkinGrowing4,"pumpkin-growing-5":pumpkinGrowing5,"pumpkin-seed":pumpkinSeed,pea,"pea-growing-1":peaGrowing1,"pea-seed":peaSeed,spinach,"spinach-growing-1":spinachGrowing1,"spinach-seed":spinachSeed,corn,"corn-growing-1":cornGrowing1,"corn-growing-2":cornGrowing2,"corn-growing-3":cornGrowing3,"corn-growing-4":cornGrowing4,"corn-growing-5":cornGrowing5,"corn-seed":cornSeed,potato,"potato-growing-1":potatoGrowing1,"potato-growing-2":potatoGrowing2,"potato-growing-3":potatoGrowing3,"potato-seed":potatoSeed,olive,"olive-growing-1":oliveGrowing1,"olive-seed":oliveSeed,onion,"onion-growing-1":onionGrowing1,"onion-growing-2":onionGrowing2,"onion-growing-3":onionGrowing3,"onion-seed":onionSeed,soybean,"soybean-growing-1":soybeanGrowing1,"soybean-seed":soybeanSeed,"sweet-potato":sweetPotato,"sweet-potato-growing-1":sweetPotatoGrowing1,"sweet-potato-growing-2":sweetPotatoGrowing2,"sweet-potato-growing-3":sweetPotatoGrowing3,"sweet-potato-growing-4":sweetPotatoGrowing4,"sweet-potato-seed":sweetPotatoSeed,wheat,"wheat-growing-1":wheatGrowing1,"wheat-seed":wheatSeed,tomato,"tomato-growing-1":tomatoGrowing1,"tomato-growing-2":tomatoGrowing2,"tomato-growing-3":tomatoGrowing3,"tomato-growing-4":tomatoGrowing4,"tomato-growing-5":tomatoGrowing5,"tomato-growing-6":tomatoGrowing6,"tomato-seed":tomatoSeed,strawberry,"strawberry-growing-1":strawberryGrowing1,"strawberry-seed":strawberrySeed,sunflower,"sunflower-growing-1":sunflowerGrowing1,"sunflower-growing-2":sunflowerGrowing2,"sunflower-growing-3":sunflowerGrowing3,"sunflower-growing-4":sunflowerGrowing4,"sunflower-growing-5":sunflowerGrowing5,"sunflower-seed":sunflowerSeed,watermelon,"watermelon-growing-1":watermelonGrowing1,"watermelon-seed":watermelonSeed,weed:weedPink,"weed-yellow":weedYellow,"weed-orange":weedOrange,"weed-pink":weedPink,coal,stone,"salt-rock":saltRock,"bronze-ore":bronzeOre,"iron-ore":ironOre,"silver-ore":silverOre,"gold-ore":goldOre,"rainbow-fertilizer":rainbowFertilizer,scarecrow,sprinkler,"cow-feed":cowFeed$1,"hugging-machine":huggingMachine,"milk-1":milk1,"milk-2":milk2,"milk-3":milk3,"rainbow-milk-1":rainbowMilk1,"rainbow-milk-2":rainbowMilk2,"rainbow-milk-3":rainbowMilk3,"chocolate-milk":chocolateMilk,"scarecrow-animated":scarecrowAnimated,"inventory-box":inventoryBox,...craftedItems},wines={[grapeVariety.CHARDONNAY]:wineGreen,[grapeVariety.SAUVIGNON_BLANC]:wineGreen,[grapeVariety.CABERNET_SAUVIGNON]:winePurple,[grapeVariety.TEMPRANILLO]:winePurple,[grapeVariety.NEBBIOLO]:winePurple},tools$1={hoe,scythe,shovel,"watering-can":wateringCan},animals={cow:{rainbow:rainbowCow,variations:[cowVariation1,cowVariation2,cowVariation3,cowVariation4,cowVariation5,cowVariation6,cowVariation7]}},isItemAGrownCrop=o=>o.type===itemType.CROP&&!o.growsInto,FARM_PRODUCT_TYPES=[itemType.CRAFTED_ITEM,itemType.FUEL,itemType.MILK,itemType.ORE,itemType.STONE],isItemAFarmProduct=o=>!!(isItemAGrownCrop(o)||FARM_PRODUCT_TYPES.includes(o.type)),farmProductsSold=memoize(o=>Object.entries(o).reduce((a,[s,$])=>a+(isItemAFarmProduct(itemsMap[s])&&$||0),0)),getInventoryQuantityMap=memoize(o=>o.reduce((a,{id:s,quantity:$})=>(a[s]=$,a),{})),getItemBaseValue=o=>itemsMap[o].value,getLevelEntitlements=memoize(o=>{const a={sprinklerRange:INITIAL_SPRINKLER_RANGE,items:{},tools:{},stageFocusType:{}};return levels.find(({unlocksShopItem:s,unlocksStageFocusType:$,unlocksTool:j,id:_e,increasesSprinklerRange:et})=>(et&&a.sprinklerRange++,s&&(a.items[s]=!0),j&&(a.tools[j]=!0),$&&(a.stageFocusType[$]=!0),_e===o)),a}),Jimp=configure({types:[jimpPng]}),{SEED:SEED$1,GROWING,GROWN:GROWN$2}=cropLifeStage,isPlotContent=(o={})=>!!(o&&o.itemId&&o.fertilizerType),isShoveledPlot=(o={})=>!!(o&&o.isShoveled&&o.daysUntilClear),purchasableItemMap=[...inventory$1,...inventory].reduce((o,a)=>(o[a.id]=a,o),{}),chooseRandomIndex=o=>Math.round(random()*(o.length-1)),chooseRandom=o=>o[chooseRandomIndex(o)],memoizationSerializer=o=>JSON.stringify([...o].map(a=>typeof a=="function"?a.toString():a)),clampNumber=(o,a,s)=>o<=a?a:o>=s?s:o,castToMoney=o=>Math.round(o*100)/100,moneyTotal=(...o)=>o.reduce((a,s)=>a+=Math.round(s*100),0)/100,scaleNumber=(o,a,s,$,j)=>(o-a)*(j-$)/(s-a)+$,convertStringToInteger=o=>o.split("").reduce((a,s,$)=>a+s.charCodeAt(0)*$,0),createNewField=()=>new Array(INITIAL_FIELD_HEIGHT).fill(void 0).map(()=>new Array(INITIAL_FIELD_WIDTH).fill(null)),createNewForest=()=>new Array(INITIAL_FOREST_HEIGHT).fill(void 0).map(()=>new Array(INITIAL_FOREST_WIDTH).fill(null)),formatNumber=(o,a)=>dinero({amount:Math.round(o*100),precision:2}).convertPrecision(0).toFormat(a),dollarString=o=>formatNumber(o,"$0,0"),integerString=o=>formatNumber(o,"0,0"),percentageString=o=>`${Math.round(o*100)}%`,getItemCurrentValue=({id:o},a)=>dinero({amount:Math.round((a[o]?getItemBaseValue(o)*(itemsMap[o].doesPriceFluctuate?a[o]:1):getItemBaseValue(o))*100),precision:2}).toUnit(),getAdjustedItemValue=(o,a)=>Number(((o[a]||1)*itemsMap[a].value).toFixed(2)),isItemSoldInShop=({id:o})=>!!purchasableItemMap[o],getResaleValue=({id:o})=>itemsMap[o].value/2,getPlotContentFromItemId=o=>({itemId:o,fertilizerType:fertilizerType.NONE}),getCropFromItemId=o=>({...getPlotContentFromItemId(o),daysOld:0,daysWatered:0,wasWateredToday:!1}),getPlotContentType=({itemId:o})=>o?itemsMap[o].type:null,doesPlotContainCrop=o=>o!==null&&getPlotContentType(o)===itemType.CROP,getLifeStageRange=memoize(o=>{let a=Array(o[0]).fill(SEED$1);return a=a.concat(o.slice(1).reduce((s,$)=>s.concat(Array($).fill(GROWING)),[])),a}),getGrowingPhase=memoize(o=>{const{itemId:a,daysWatered:s}=o,{cropTimeline:$=[]}=itemsMap[a];let j=s+1,_e=0;for(let et of $){if(j-et<=0)break;j-=et,_e+=1}return _e},{cacheSize:LARGEST_PURCHASABLE_FIELD_SIZE.columns*LARGEST_PURCHASABLE_FIELD_SIZE.rows}),getCropLifeStage=o=>{const{itemId:a,daysWatered:s}=o,{cropTimeline:$}=itemsMap[a];if(!$)throw new Error(`${a} has no cropTimeline`);return getLifeStageRange($)[Math.floor(s||0)]||GROWN$2},getPlotImage=(o,a,s)=>{if(isPlotContent(o)){if(isPlotContentACrop(o)){let $;switch(getCropLifeStage(o)){case GROWN$2:$=o.itemId;break;case GROWING:const j=getGrowingPhase(o);$=`${o.itemId}-growing-${j}`;break;default:$=cropItemIdToSeedItemMap[o.itemId].id}return items[$]}if(getPlotContentType(o)===itemType.WEED){const $=["yellow","orange","pink"],j=$[a*s%$.length];return items[`weed-${j}`]}return items[o.itemId]}return isShoveledPlot(o)&&o!=null&&o.oreId?items[o.oreId]:null},getRangeCoords=(o,a,s)=>{const $=2*o+1,j=a-o,_e=s-o;return new Array($).fill(null).map((et,tt)=>new Array($).fill(null).map((rt,nt)=>({x:j+nt,y:_e+tt})))},getFinalCropItemFromSeedItem=({id:o},a=0)=>{const s=getFinalCropItemIdFromSeedItemId(o,a);if(s)return itemsMap[s]},getFinalCropItemIdFromSeedItemId=(o,a=0)=>{const{growsInto:s}=itemsMap[o];return Array.isArray(s)?s[a]:s},getSeedItemIdFromFinalStageCropItemId=memoize(o=>{var s;const a=(s=Object.values(itemsMap).find(({growsInto:$})=>Array.isArray($)?$.includes(o):$===o))==null?void 0:s.id;if(!a)throw new Error(`Crop item ID ${o} does not have a corresponding seed`);return a},{cacheSize:Object.keys(itemsMap).length}),getDefaultCowName=({id:o})=>fruitNames[convertStringToInteger(o)%fruitNames.length],getCowDisplayName=(o,a,s)=>o.originalOwnerId!==a&&!s?getDefaultCowName(o):o.name,generateCow=(o={})=>{const a=o.gender||chooseRandom(Object.values(genders)),s=o.color||chooseRandom(Object.values(standardCowColors)),$=o.id||uuid_1.v4(),_e={baseWeight:Math.round(COW_STARTING_WEIGHT_BASE*(a===genders.MALE?MALE_COW_WEIGHT_MULTIPLIER:1)-COW_STARTING_WEIGHT_VARIANCE+random()*(COW_STARTING_WEIGHT_VARIANCE*2)),color:s,colorsInBloodline:{[s]:!0},daysOld:1,daysSinceMilking:0,daysSinceProducingFertilizer:0,gender:a,happiness:0,happinessBoostsToday:0,id:$,isBred:!1,isUsingHuggingMachine:!1,name:"",ownerId:"",originalOwnerId:"",timesTraded:0,weightMultiplier:1,...o};return _e.name=getDefaultCowName(_e),_e},generateOffspringCow=(o,a,s,$={})=>{if(o.gender===a.gender)throw new Error(`${JSON.stringify(o)} ${JSON.stringify(a)} cannot produce offspring because they have the same gender`);const j=o.gender===genders.MALE?o:a,_e=o.gender===genders.MALE?a:o,et={[j.color]:!0,[_e.color]:!0,...j.colorsInBloodline,..._e.colorsInBloodline};delete et[cowColors.RAINBOW];const tt=Object.keys(et).length===Object.keys(standardCowColors).length;return generateCow({color:tt?cowColors.RAINBOW:chooseRandom([_e.color,j.color]),colorsInBloodline:et,baseWeight:(j.baseWeight+_e.baseWeight)/2,isBred:!0,ownerId:s,originalOwnerId:s,...$})},getCowMilkItem=({color:o,happiness:a})=>{if(o===cowColors.BROWN)return chocolateMilk$1;const s=o===cowColors.RAINBOW;return a<1/3?s?rainbowMilk1$1:milk1$1:a<2/3?s?rainbowMilk2$1:milk2$1:s?rainbowMilk3$1:milk3$1},getCowFertilizerItem=({color:o})=>itemsMap[o===cowColors.RAINBOW?"rainbow-fertilizer":"fertilizer"],getCowMilkRate=o=>o.gender===genders.FEMALE?scaleNumber(o.weightMultiplier,COW_WEIGHT_MULTIPLIER_MINIMUM,COW_WEIGHT_MULTIPLIER_MAXIMUM,COW_MILK_RATE_SLOWEST,COW_MILK_RATE_FASTEST):1/0,getCowFertilizerProductionRate=o=>o.gender===genders.MALE?scaleNumber(o.weightMultiplier,COW_WEIGHT_MULTIPLIER_MINIMUM,COW_WEIGHT_MULTIPLIER_MAXIMUM,COW_FERTILIZER_PRODUCTION_RATE_SLOWEST,COW_FERTILIZER_PRODUCTION_RATE_FASTEST):1/0,getCowWeight=({baseWeight:o,weightMultiplier:a})=>Math.round(o*a),getCowValue=(o,a=!1)=>a?getCowWeight(o)*clampNumber(scaleNumber(o.daysOld,1,COW_MAXIMUM_VALUE_MATURITY_AGE,COW_MINIMUM_VALUE_MULTIPLIER,COW_MAXIMUM_VALUE_MULTIPLIER),COW_MINIMUM_VALUE_MULTIPLIER,COW_MAXIMUM_VALUE_MULTIPLIER):getCowWeight(o)*1.5,getCowSellValue=o=>getCowValue(o,!0),maxYieldOfRecipe=memoize(({ingredients:o},a)=>{const s=getInventoryQuantityMap(a);return Math.min(...Object.keys(o).map($=>Math.floor(s[$]/o[$])))||0}),canMakeRecipe=(o,a,s)=>maxYieldOfRecipe(o,a)>=s,filterItemIdsToSeeds=o=>o.filter(a=>{var s;return((s=itemsMap[a])==null?void 0:s.type)===itemType.CROP}),getRandomUnlockedCrop=o=>{const a=chooseRandom(o),s=itemsMap[a],$=Array.isArray(s.growsInto)?chooseRandomIndex(s.growsInto):0,j=getFinalCropItemIdFromSeedItemId(a,$);if(!j)throw new Error(`Seed item ID ${a} has no corresponding final crop ID`);return itemsMap[j]},getPriceEventForCrop=o=>({itemId:o.id,daysRemaining:getCropLifecycleDuration(o)-PRICE_EVENT_STANDARD_DURATION_DECREASE}),doesMenuObstructStage=()=>window.innerWidth<BREAKPOINTS.MD,itemTypesToShowInReverse=new Set([itemType.MILK]),sortItemIdsByTypeAndValue=memoize(o=>sortBy(o,[a=>+(itemsMap[a].type!==itemType.CROP),a=>{const{type:s,value:$}=itemsMap[a];return itemTypesToShowInReverse.has(s)?-$:$}])),sortItems=o=>{const a={};return o.forEach(s=>a[s.id]=s),sortItemIdsByTypeAndValue(o.map(({id:s})=>s)).map(s=>a[s])},inventorySpaceConsumed=memoize(o=>o.reduce((a,{quantity:s=0})=>a+s,0)),inventorySpaceRemaining=({inventory:o,inventoryLimit:a})=>a===INFINITE_STORAGE_LIMIT?1/0:Math.max(0,a-inventorySpaceConsumed(o)),doesInventorySpaceRemain=o=>inventorySpaceRemaining(o)>0,areHuggingMachinesInInventory=memoize(o=>o.some(({id:a})=>a===HUGGING_MACHINE_ITEM_ID)),nullArray=memoize(o=>Object.freeze(new Array(o).fill(null)),{cacheSize:30}),findCowById=memoize((o,a)=>o.find(s=>a===s.id)),experienceNeededForLevel=o=>((o-1)*10)**2,getAvailableShopInventory=memoize(o=>inventory.filter(({id:a})=>!(unlockableItems.hasOwnProperty(a)&&!o.items.hasOwnProperty(a)))),getRandomLevelUpReward=o=>itemsMap[chooseRandom(filterItemIdsToSeeds(Object.keys(getLevelEntitlements(o).items)))],getRandomLevelUpRewardQuantity=o=>o*10,getPeerMetadata=o=>{const a=PEER_METADATA_STATE_KEYS.reduce((s,$)=>(s[$]=o[$],s),{});return Object.assign(a,{cowOfferedForTrade:o.cowInventory.find(({id:s})=>s===o.cowIdOfferedForTrade)}),a},reduceByPersistedKeys=o=>PERSISTED_STATE_KEYS.reduce((a,s)=>(typeof o[s]<"u"&&(a[s]=o[s]),a),{}),get7DayAverage=o=>o.reduce((a,s)=>moneyTotal(a,s),0)/DAILY_FINANCIAL_HISTORY_RECORD_LENGTH,cowColorToIdMap={[cowColors.BLUE]:"blue",[cowColors.BROWN]:"brown",[cowColors.GREEN]:"green",[cowColors.ORANGE]:"orange",[cowColors.PURPLE]:"purple",[cowColors.RAINBOW]:"rainbow",[cowColors.WHITE]:"white",[cowColors.YELLOW]:"yellow"},getCowColorId=({color:o})=>`${cowColorToIdMap[o]}-cow`,getProfit=(o,a)=>moneyTotal(o,a),getProfitRecord=(o,a,s)=>Math.max(o,getProfit(a,s)),computeMarketPositions=(o,a,s)=>s.reduce(($,{id:j,quantity:_e})=>{const et=o[j]||0,tt=a[j]||0;return itemsMap[j].doesPriceFluctuate&&et!==_e&&(_e<et||_e<tt?$[j]=-1:(_e>et||_e>tt)&&($[j]=1)),$},{}),transformStateDataForImport=o=>{let a={...o};["version"].forEach($=>delete a[$]),a.experience===0&&(a.experience=farmProductsSold(a.itemsSold||{})),a.showHomeScreen===!1&&a.stageFocus===stageFocusType.HOME&&(a={...a,stageFocus:STANDARD_VIEW_LIST[0]});{const{cowId1:$,cowId2:j}=a.cowBreedingPen,_e=a.cowInventory.reduce((tt,rt)=>(tt[rt.id]=rt,tt),{});[$,j].some(tt=>tt&&!(tt in _e))&&(a.cowBreedingPen={cowId1:null,cowId2:null,daysUntilBirth:-1})}return a.id&&(a.playerId=a.id,delete a.id),a},getPlayerName=memoize(o=>funAnimalName(o)),getCostOfNextStorageExpansion=o=>{const a=(o-INITIAL_STORAGE_LIMIT)/STORAGE_EXPANSION_AMOUNT;return STORAGE_EXPANSION_BASE_PRICE+a*STORAGE_EXPANSION_SCALE_PREMIUM},sleep=o=>new Promise(a=>setTimeout(a,o)),getSalePriceMultiplier=(o={})=>{let a=1;return o["i-am-rich-3"]?a+=I_AM_RICH_BONUSES[2]:o["i-am-rich-2"]?a+=I_AM_RICH_BONUSES[1]:o["i-am-rich-1"]&&(a+=I_AM_RICH_BONUSES[0]),a},isPlotContentACrop=o=>getPlotContentType(o)===itemType.CROP;function randomChoice(o){let a=0,s=[];for(let et of o)a+=et.weight,s.push(et);s.sort(et=>et.weight);let $=random()*a,j,_e=0;for(let et in s){if(j=s[et],$<j.weight+_e)return j;_e+=j.weight}return s[s.length-1]}const colorizeCowTemplate=(()=>{const s=document.createElement("canvas");s.setAttribute("height",String(48)),s.setAttribute("width",String(48));const $={},j=memoize(_e=>{const[,et,tt,rt]=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(_e)??["","0","0","0"];return{r:parseInt(et,16),g:parseInt(tt,16),b:parseInt(rt,16)}});return async(_e,et)=>{if(et===cowColors.RAINBOW)return animals.cow.rainbow;const tt=`${et}_${_e}`;if($[tt])return $[tt];try{const rt=buffer$1.Buffer.from(_e.split(",")[1]??"","base64"),nt=await Jimp.read(rt);return nt.scan(0,0,nt.bitmap.width,nt.bitmap.height,function(it,ot){const{r:at,g:st,b:ut}=Jimp.intToRGBA(nt.getPixelColor(it,ot));if(at===102&&st===102&&ut===102){const ct=j(COW_COLORS_HEX_MAP[et]),ft=Jimp.rgbaToInt(ct.r,ct.g,ct.b,255);nt.setPixelColor(ft,it,ot)}}),$[tt]=await nt.getBase64Async(Jimp.MIME_PNG),$[tt]}catch(rt){return console.error(rt),pixel}}})(),getCowImage=async o=>{const a=convertStringToInteger(o.id),{variations:s}=animals.cow,$=s[a%s.length];return await colorizeCowTemplate($,o.color)},isInViewport=o=>{const{top:a,left:s,bottom:$,right:j}=o.getBoundingClientRect();return a>=0&&s>=0&&$<=(window.innerHeight||document.documentElement.clientHeight)&&j<=(window.innerWidth||document.documentElement.clientWidth)},shouldPrecipitateToday=()=>random()<PRECIPITATION_CHANCE,shouldStormToday=()=>random()<STORM_CHANCE,isCowInBreedingPen=(o,a)=>a.cowId1===o.id||a.cowId2===o.id,isOctober=()=>new Date().getMonth()===9,isDecember=()=>new Date().getMonth()===11,PROGRESS_SAVED_MESSAGE="Progress saved!",RAIN_MESSAGE="It rained in the night!",STORM_MESSAGE="There was a storm in the night!",STORM_DESTROYS_SCARECROWS_MESSAGE="There was a storm in the night! No scarecrows survived!",FARM_PRODUCTS_TOOLTIP_TEXT="This figure only includes sales of grown crops, crafted items, and animal products.",COW_SOLD_TOOLTIP_TEXT="This figure only includes cows you were not the original owner for.",DATA_DELETED="Your local game data has been deleted.",INVALID_DATA_PROVIDED="Invalid Farmhand data provided.",UPDATE_AVAILABLE="A game update is available! Click this message to reload and see what's new.",SERVER_ERROR="There was an issue connecting to the server. Please try again in a moment.",CONNECTING_TO_SERVER="Connecting...",DISCONNECTING_FROM_SERVER="Disconnecting...",DISCONNECTED_FROM_SERVER="You are now playing offline.",REQUESTED_COW_TRADE_UNAVAILABLE="The requested cow is no longer available.",UNKNOWN_COW_TRADE_FAILURE="Something went wrong with your cow trade request. Please try again!",COW_ALREADY_OWNED="It looks like you already have this cow!",OUT_OF_COW_FEED_NOTIFICATION="You're out of cow feed! Buy some more before your cows get hungry and run away!",INVENTORY_FULL_NOTIFICATION="Your inventory is full!",SHOVELED="Shoveled plot",WATERING_CAN_ALT_TEXT="A watering can for hydrating plants.",WATERING_CAN_HIDDEN_TEXT="Select the watering can to water your crops",SCYTHE_ALT_TEXT="A scythe for crop harvesting.",SCYTHE_HIDDEN_TEXT="Select the scythe to harvest ripened crops",HOE_ALT_TEXT="A hoe for removing crops and disposing of them. Also returns replantable items to your inventory.",HOE_HIDDEN_TEXT="Select the hoe to clear crops, or replantable field items",SHOVEL_ALT_TEXT="A shovel for digging up rocks.",SHOVEL_HIDDEN_TEXT="Select the shovel to dig for ore",TOOL_LEVEL_INFO={SCYTHE:{DEFAULT:"**Basic**: Harvests one crop per plot.",BRONZE:"**Bronze**: Harvests two crops per plot.",IRON:"**Iron**: Harvests three crops per plot.",SILVER:"**Silver**: Harvests four crops per plot.",GOLD:"**Gold**: Harvests five crops per plot."},SHOVEL:{DEFAULT:"**Basic**: Has a 30% chance of digging up resources.",BRONZE:"**Bronze**: Has a 40% chance of digging up resources.",IRON:"**Iron**: Has a 50% chance of digging up resources.",SILVER:"**Silver**: Has a 60% chance of digging up resources.",GOLD:"**Gold**: Has a 70% chance of digging up resources."},WATERING_CAN:{DEFAULT:"**Basic**: Keeps plots watered for one day.",BRONZE:"**Bronze**: Keeps plots watered for two days.",IRON:"**Iron**: Keeps plots watered for three days.",SILVER:"**Silver**: Keeps plots watered for four days.",GOLD:"**Gold**: Keeps plots watered for five days."},HOE:{DEFAULT:"**Basic**: Destroys crops.",BRONZE:"**Bronze**: 25% chance to retrieve seeds when digging up crops.",IRON:"**Iron**: 50% chance to retrieve seeds when digging up crops.",SILVER:"**Silver**: 75% chance to retrieve seeds when digging up crops.",GOLD:"**Gold**: 100% chance to retrieve seeds when digging up crops."}},FORGE_AVAILABLE_NOTIFICATION="**The Forge** is now available in the Workshop!",RECYCLING_AVAILABLE_NOTIFICATION="**Recycling** is now available in the Workshop!",FOREST_AVAILABLE_NOTIFICATION="The **Forest** is now available!",COW_COLOR_NAMES={[cowColors.BLUE]:"Blue",[cowColors.BROWN]:"Brown",[cowColors.GREEN]:"Green",[cowColors.ORANGE]:"Orange",[cowColors.PURPLE]:"Purple",[cowColors.RAINBOW]:"Rainbow",[cowColors.WHITE]:"White",[cowColors.YELLOW]:"Yellow"},SHOVEL_UNLOCKED="You've unlocked a new tool for the field, The **Shovel**!",addCowToInventory=(o,a)=>{const{cowInventory:s}=o;return{...o,cowInventory:[...s,a]}};function levelAchieved(o=0){return Math.floor(Math.sqrt(o)/10)+1}const moneyString=o=>dinero({amount:Math.round(o*100)}).toFormat(),CROWS_DESTROYED=(o,a)=>`Oh no! Crows destroyed ${a} crop${a>1?"s":""}!`,COW_PEN_PURCHASED=(o,a)=>`Purchased a cow pen with capacity for ${a} cows! You can visit your cow pen by going to the "Cows" page.`,CELLAR_PURCHASED=(o,a)=>`Purchased a cellar with capacity for ${a} kegs! View your keg inventory by going to the "Cellar" page.`,MILKS_PRODUCED=(o,a)=>{let s=`Your cows produced milk:
298
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Static={normalizePrecision:function o(a){var s=a.reduce(function($,j){return Math.max($.getPrecision(),j.getPrecision())});return a.map(function($){return $.getPrecision()!==s?$.convertPrecision(s):$})},minimum:function o(a){var s=_toArray(a),$=s[0],j=s.slice(1),_e=$;return j.forEach(function(et){_e=_e.lessThan(et)?_e:et}),_e},maximum:function o(a){var s=_toArray(a),$=s[0],j=s.slice(1),_e=$;return j.forEach(function(et){_e=_e.greaterThan(et)?_e:et}),_e}};function isNumeric(o){return!isNaN(parseInt(o))&&isFinite(o)}function isPercentage(o){return isNumeric(o)&&o<=100&&o>=0}function areValidRatios(o){return o.length>0&&o.every(function(a){return a>=0})&&o.some(function(a){return a>0})}function isEven(o){return o%2===0}function isFloat(o){return isNumeric(o)&&!Number.isInteger(o)}function countFractionDigits(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,a=o.toString();if(a.indexOf("e-")>0)return parseInt(a.split("e-")[1]);var s=a.split(".")[1];return s?s.length:0}function isHalf(o){return Math.abs(o)%1===.5}function getJSON(o){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return new Promise(function(s,$){var j=Object.assign(new XMLHttpRequest,{onreadystatechange:function(){j.readyState===4&&(j.status>=200&&j.status<400?s(JSON.parse(j.responseText)):$(new Error(j.statusText)))},onerror:function(){$(new Error("Network error"))}});j.open("GET",o,!0),setXHRHeaders(j,a.headers),j.send()})}function setXHRHeaders(o){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};for(var s in a)o.setRequestHeader(s,a[s]);return o}function isUndefined(o){return typeof o>"u"}function flattenObject(o){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:".",s={};return Object.entries(o).forEach(function($){if(_typeof$4($[1])==="object"){var j=flattenObject($[1]);Object.entries(j).forEach(function(_e){s[$[0]+a+_e[0]]=_e[1]})}else s[$[0]]=$[1]}),s}function isThenable(o){return!!o&&(_typeof$4(o)==="object"||typeof o=="function")&&typeof o.then=="function"}function Calculator(){var o=function($,j){var _e=function(rt){return Math.pow(10,countFractionDigits(rt))},et=Math.max(_e($),_e(j));return Math.round($*et)*Math.round(j*et)/(et*et)},a={HALF_ODD:function($){var j=Math.round($);return isHalf($)&&isEven(j)?j-1:j},HALF_EVEN:function($){var j=Math.round($);return isHalf($)?isEven(j)?j:j-1:j},HALF_UP:function($){return Math.round($)},HALF_DOWN:function($){return isHalf($)?Math.floor($):Math.round($)},HALF_TOWARDS_ZERO:function($){return isHalf($)?Math.sign($)*Math.floor(Math.abs($)):Math.round($)},HALF_AWAY_FROM_ZERO:function($){return isHalf($)?Math.sign($)*Math.ceil(Math.abs($)):Math.round($)},DOWN:function($){return Math.floor($)}};return{add:function($,j){return $+j},subtract:function($,j){return $-j},multiply:function($,j){return isFloat($)||isFloat(j)?o($,j):$*j},divide:function($,j){return $/j},modulo:function($,j){return $%j},round:function($){var j=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"HALF_EVEN";return a[j]($)}}}var calculator=Calculator();function Format(o){var a=/^(?:(\$|USD)?0(?:(,)0)?(\.)?(0+)?|0(?:(,)0)?(\.)?(0+)?\s?(dollar)?)$/gm.exec(o);return{getMatches:function(){return a!==null?a.slice(1).filter(function($){return!isUndefined($)}):[]},getMinimumFractionDigits:function(){var $=function(_e){return _e==="."};return isUndefined(this.getMatches().find($))?0:this.getMatches()[calculator.add(this.getMatches().findIndex($),1)].split("").length},getCurrencyDisplay:function(){var $={USD:"code",dollar:"name",$:"symbol"};return $[this.getMatches().find(function(j){return j==="USD"||j==="dollar"||j==="$"})]},getStyle:function(){return isUndefined(this.getCurrencyDisplay(this.getMatches()))?"decimal":"currency"},getUseGrouping:function(){return!isUndefined(this.getMatches().find(function($){return $===","}))}}}function CurrencyConverter(o){var a=function(){var j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",_e=arguments.length>1?arguments[1]:void 0;for(var et in _e)j=j.replace("{{".concat(et,"}}"),_e[et]);return j},s=function(j,_e){return getJSON(a(o.endpoint,{from:j,to:_e}),{headers:o.headers})};return{getExchangeRate:function(j,_e){return(isThenable(o.endpoint)?o.endpoint:s(j,_e)).then(function(et){return flattenObject(et)[a(o.propertyPath,{from:j,to:_e})]})}}}function assert(o,a){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Error;if(!o)throw new s(a)}function assertPercentage(o){assert(isPercentage(o),"You must provide a numeric value between 0 and 100.",RangeError)}function assertValidRatios(o){assert(areValidRatios(o),"You must provide a non-empty array of numeric values greater than 0.",TypeError)}function assertInteger(o){assert(Number.isInteger(o),"You must provide an integer.",TypeError)}var calculator$1=Calculator(),Dinero=function o(a){var s=Object.assign({},{amount:o.defaultAmount,currency:o.defaultCurrency,precision:o.defaultPrecision},a),$=s.amount,j=s.currency,_e=s.precision;assertInteger($),assertInteger(_e);var et=o.globalLocale,tt=o.globalFormat,rt=o.globalRoundingMode,nt=o.globalFormatRoundingMode,it=Object.assign({},o.globalExchangeRatesApi),ot=function(ut){var ct=Object.assign({},Object.assign({},{amount:$,currency:j,precision:_e},ut),Object.assign({},{locale:this.locale},ut));return Object.assign(o({amount:ct.amount,currency:ct.currency,precision:ct.precision}),{locale:ct.locale})},at=function(ut){assert(this.hasSameCurrency(ut),"You must provide a Dinero instance with the same currency.",TypeError)};return{getAmount:function(){return $},getCurrency:function(){return j},getLocale:function(){return this.locale||et},setLocale:function(ut){return ot.call(this,{locale:ut})},getPrecision:function(){return _e},convertPrecision:function(ut){var ct=arguments.length>1&&arguments[1]!==void 0?arguments[1]:nt;assertInteger(ut);var ft=this.getPrecision(),dt=ut>ft,mt=dt?calculator$1.multiply:calculator$1.divide,vt=dt?[ut,ft]:[ft,ut],yt=Math.pow(10,calculator$1.subtract.apply(calculator$1,vt));return ot.call(this,{amount:calculator$1.round(mt(this.getAmount(),yt),ct),precision:ut})},add:function(ut){at.call(this,ut);var ct=o.normalizePrecision([this,ut]);return ot.call(this,{amount:calculator$1.add(ct[0].getAmount(),ct[1].getAmount()),precision:ct[0].getPrecision()})},subtract:function(ut){at.call(this,ut);var ct=o.normalizePrecision([this,ut]);return ot.call(this,{amount:calculator$1.subtract(ct[0].getAmount(),ct[1].getAmount()),precision:ct[0].getPrecision()})},multiply:function(ut){var ct=arguments.length>1&&arguments[1]!==void 0?arguments[1]:rt;return ot.call(this,{amount:calculator$1.round(calculator$1.multiply(this.getAmount(),ut),ct)})},divide:function(ut){var ct=arguments.length>1&&arguments[1]!==void 0?arguments[1]:rt;return ot.call(this,{amount:calculator$1.round(calculator$1.divide(this.getAmount(),ut),ct)})},percentage:function(ut){var ct=arguments.length>1&&arguments[1]!==void 0?arguments[1]:rt;return assertPercentage(ut),this.multiply(calculator$1.divide(ut,100),ct)},allocate:function(ut){var ct=this;assertValidRatios(ut);for(var ft=ut.reduce(function(yt,pt){return calculator$1.add(yt,pt)}),dt=this.getAmount(),mt=ut.map(function(yt){var pt=Math.floor(calculator$1.divide(calculator$1.multiply(ct.getAmount(),yt),ft));return dt=calculator$1.subtract(dt,pt),ot.call(ct,{amount:pt})}),vt=0;dt>0;)ut[vt]>0&&(mt[vt]=mt[vt].add(ot.call(this,{amount:1})),dt=calculator$1.subtract(dt,1)),vt+=1;return mt},convert:function(ut){var ct=this,ft=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},dt=ft.endpoint,mt=dt===void 0?it.endpoint:dt,vt=ft.propertyPath,yt=vt===void 0?it.propertyPath||"rates.{{to}}":vt,pt=ft.headers,ht=pt===void 0?it.headers:pt,At=ft.roundingMode,St=At===void 0?rt:At,Ct=Object.assign({},{endpoint:mt,propertyPath:yt,headers:ht,roundingMode:St});return CurrencyConverter(Ct).getExchangeRate(this.getCurrency(),ut).then(function(Mt){return assert(!isUndefined(Mt),'No rate was found for the destination currency "'.concat(ut,'".'),TypeError),ot.call(ct,{amount:calculator$1.round(calculator$1.multiply(ct.getAmount(),parseFloat(Mt)),Ct.roundingMode),currency:ut})})},equalsTo:function(ut){return this.hasSameAmount(ut)&&this.hasSameCurrency(ut)},lessThan:function(ut){at.call(this,ut);var ct=o.normalizePrecision([this,ut]);return ct[0].getAmount()<ct[1].getAmount()},lessThanOrEqual:function(ut){at.call(this,ut);var ct=o.normalizePrecision([this,ut]);return ct[0].getAmount()<=ct[1].getAmount()},greaterThan:function(ut){at.call(this,ut);var ct=o.normalizePrecision([this,ut]);return ct[0].getAmount()>ct[1].getAmount()},greaterThanOrEqual:function(ut){at.call(this,ut);var ct=o.normalizePrecision([this,ut]);return ct[0].getAmount()>=ct[1].getAmount()},isZero:function(){return this.getAmount()===0},isPositive:function(){return this.getAmount()>=0},isNegative:function(){return this.getAmount()<0},hasSubUnits:function(){return calculator$1.modulo(this.getAmount(),Math.pow(10,_e))!==0},hasCents:function(){return calculator$1.modulo(this.getAmount(),Math.pow(10,_e))!==0},hasSameCurrency:function(ut){return this.getCurrency()===ut.getCurrency()},hasSameAmount:function(ut){var ct=o.normalizePrecision([this,ut]);return ct[0].getAmount()===ct[1].getAmount()},toFormat:function(){var ut=arguments.length>0&&arguments[0]!==void 0?arguments[0]:tt,ct=arguments.length>1&&arguments[1]!==void 0?arguments[1]:nt,ft=Format(ut);return this.toRoundedUnit(ft.getMinimumFractionDigits(),ct).toLocaleString(this.getLocale(),{currencyDisplay:ft.getCurrencyDisplay(),useGrouping:ft.getUseGrouping(),minimumFractionDigits:ft.getMinimumFractionDigits(),style:ft.getStyle(),currency:this.getCurrency()})},toUnit:function(){return calculator$1.divide(this.getAmount(),Math.pow(10,_e))},toRoundedUnit:function(ut){var ct=arguments.length>1&&arguments[1]!==void 0?arguments[1]:nt,ft=Math.pow(10,ut);return calculator$1.divide(calculator$1.round(calculator$1.multiply(this.toUnit(),ft),ct),ft)},toObject:function(){return{amount:$,currency:j,precision:_e}},toJSON:function(){return this.toObject()}}},dinero=Object.assign(Dinero,Defaults,Globals,Static),animalNames=["Aardvark","Albatross","Alligator","Alpaca","Angelfish","Anglerfish","Ant","Anteater","Antelope","Antlion","Ape","Armadillo","Asp","Baboon","Badger","Bandicoot","Barnacle","Barracuda","Basilisk","Bass","Bat","Bear","Beaver","Bee","Beetle","Bird","Bison","Blackbird","Boar","Bobcat","Bonobo","Bug","Butterfly","Buzzard","Camel","Capybara","Cardinal","Caribou","Cat","Caterpillar","Catfish","Cattle","Chameleon","Cheetah","Chickadee","Chicken","Chimpanzee","Chinchilla","Chipmunk","Clam","Clownfish","Cobra","Condor","Coral","Cougar","Coyote","Crab","Crane","Crawdad","Crayfish","Cricket","Crocodile","Crow","Cuckoo","Deer","Dingo","Dinosaur","Dog","Dolphin","Donkey","Dove","Dragon","Dragonfly","Duck","Eagle","Earthworm","Echidna","Egret","Elephant","Elk","Emu","Ermine","Falcon","Ferret","Finch","Firefly","Fish","Flamingo","Fowl","Fox","Frog","Gazelle","Gecko","Gerbil","Gibbon","Giraffe","Goat","Goldfish","Goose","Gopher","Gorilla","Grasshopper","Grouse","Gull","Guppy","Hamster","Hare","Harrier","Hawk","Hedgehog","Heron","Hippopotamus","Horse","Hummingbird","Hyena","Iguana","Impala","Jackal","Jaguar","Jay","Jellyfish","Kangaroo","Kingfisher","Kiwi","Koala","Koi","Ladybug","Lark","Lemming","Lemur","Leopard","Lion","Llama","Lobster","Loon","Lynx","Macaw","Mackerel","Mammal","Manatee","Mandrill","Marlin","Marmoset","Marmot","Marsupial","Mastodon","Meerkat","Mink","Minnow","Mockingbird","Mole","Mongoose","Monkey","Moose","Mosquito","Mouse","Mule","Muskox","Narwhal","Ocelot","Octopus","Opossum","Orangutan","Orca","Ostrich","Otter","Owl","Ox","Panda","Panther","Parakeet","Parrot","Partridge","Peacock","Pelican","Penguin","Pig","Pigeon","Platypus","Pony","Porcupine","Porpoise","Puffin","Puma","Python","Quail","Quokka","Rabbit","Raccoon","Raven","Reindeer","Rhinoceros","Roadrunner","Rooster","Salamander","Salmon","Seahorse","Shark","Sheep","Shrew","Sloth","Snail","Sparrow","Squid","Squirrel","Starfish","Stingray","Stoat","Stork","Sturgeon","Swan","Swift","Swordfish","Tapir","Tarsier","Tern","Tiger","Tortoise","Toucan","Turkey","Turtle","Tyrannosaurus","Vole","Wallaby","Walrus","Warbler","Whale","Wildcat","Wolf","Wolverine","Wombat","Woodpecker","Wren","Yak","Zebra"],adjectives=["Adorable","Adventurous","Agreeable","Alert","Amused","Attractive","Average","Beautiful","Blushing","Brainy","Brave","Bright","Busy","Calm","Careful","Cautious","Charming","Cheerful","Clever","Cloudy","Colorful","Comfortable","Concerned","Cooperative","Courageous","Crazy","Curious","Cute","Delightful","Determined","Distinct","Dizzy","Elated","Elegant","Enchanting","Encouraging","Energetic","Enthusiastic","Excited","Exuberant","Famous","Fancy","Fantastic","Fierce","Fine","Friendly","Funny","Gentle","Gifted","Glamorous","Gleaming","Glorious","Gorgeous","Graceful","Handsome","Happy","Healthy","Helpful","Hilarious","Important","Inquisitive","Jolly","Joyous","Kind","Light","Lively","Lovely","Lucky","Magnificent","Mysterious","Nice","Nutty","Outrageous","Outstanding","Perfect","Pleasant","Poised","Powerful","Precious","Proud","Puzzled","Quaint","Relieved","Shiny","Silly","Sleepy","Smiling","Sparkling","Splendid","Stormy","Strange","Successful","Tame","Thankful","Thoughtful","Tough","Victorious","Vivacious","Wandering","Wide-eyed","Wild","Witty","Zany"],convertStringToInteger$1=function o(a){return a.split("").reduce(function(s,$,j){return s+$.charCodeAt(0)*j},0)},funAnimalName=function o(a,s){var $={},j=$.adjectives,_e=j===void 0?adjectives:j,et=$.animalNames,tt=et===void 0?animalNames:et,rt=convertStringToInteger$1(a),nt=_e[rt%_e.length],it=convertStringToInteger$1(nt),ot=tt[(rt+it)%tt.length];return nt+" "+ot},lodash_sortby={exports:{}};lodash_sortby.exports;(function(o,a){var s={},$=200,j="Expected a function",_e="__lodash_hash_undefined__",et=1,tt=2,rt=9007199254740991,nt="[object Arguments]",it="[object Array]",ot="[object Boolean]",at="[object Date]",st="[object Error]",ut="[object Function]",ct="[object GeneratorFunction]",ft="[object Map]",dt="[object Number]",mt="[object Object]",vt="[object Promise]",yt="[object RegExp]",pt="[object Set]",ht="[object String]",At="[object Symbol]",St="[object WeakMap]",Ct="[object ArrayBuffer]",Mt="[object DataView]",Dt="[object Float32Array]",Et="[object Float64Array]",wt="[object Int8Array]",jt="[object Int16Array]",Bt="[object Int32Array]",Ht="[object Uint8Array]",Gt="[object Uint8ClampedArray]",Tt="[object Uint16Array]",Nt="[object Uint32Array]",Ot=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,kt=/^\w*$/,It=/^\./,Pt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ft=/[\\^$.*+?()[\]{}|]/g,Vt=/\\(\\)?/g,Xt=/^\[object .+?Constructor\]$/,Kt=/^(?:0|[1-9]\d*)$/,bt={};bt[Dt]=bt[Et]=bt[wt]=bt[jt]=bt[Bt]=bt[Ht]=bt[Gt]=bt[Tt]=bt[Nt]=!0,bt[nt]=bt[it]=bt[Ct]=bt[ot]=bt[Mt]=bt[at]=bt[st]=bt[ut]=bt[ft]=bt[dt]=bt[mt]=bt[yt]=bt[pt]=bt[ht]=bt[St]=!1;var $t=typeof s=="object"&&s&&s.Object===Object&&s,Yt=typeof self=="object"&&self&&self.Object===Object&&self,Qt=$t||Yt||Function("return this")(),zt=a&&!a.nodeType&&a,Lt=zt&&!0&&o&&!o.nodeType&&o,er=Lt&&Lt.exports===zt,lr=er&&$t.process,yr=function(){try{return lr&&lr.binding("util")}catch{}}(),mr=yr&&yr.isTypedArray;function Er(Wt,Jt,pr){switch(pr.length){case 0:return Wt.call(Jt);case 1:return Wt.call(Jt,pr[0]);case 2:return Wt.call(Jt,pr[0],pr[1]);case 3:return Wt.call(Jt,pr[0],pr[1],pr[2])}return Wt.apply(Jt,pr)}function ur(Wt,Jt){for(var pr=-1,_r=Wt?Wt.length:0,Mr=Array(_r);++pr<_r;)Mr[pr]=Jt(Wt[pr],pr,Wt);return Mr}function wr(Wt,Jt){for(var pr=-1,_r=Jt.length,Mr=Wt.length;++pr<_r;)Wt[Mr+pr]=Jt[pr];return Wt}function Rr(Wt,Jt){for(var pr=-1,_r=Wt?Wt.length:0;++pr<_r;)if(Jt(Wt[pr],pr,Wt))return!0;return!1}function nr(Wt){return function(Jt){return Jt==null?void 0:Jt[Wt]}}function fr(Wt,Jt){var pr=Wt.length;for(Wt.sort(Jt);pr--;)Wt[pr]=Wt[pr].value;return Wt}function gr(Wt,Jt){for(var pr=-1,_r=Array(Wt);++pr<Wt;)_r[pr]=Jt(pr);return _r}function br(Wt){return function(Jt){return Wt(Jt)}}function Sr(Wt,Jt){return Wt==null?void 0:Wt[Jt]}function Ut(Wt){var Jt=!1;if(Wt!=null&&typeof Wt.toString!="function")try{Jt=!!(Wt+"")}catch{}return Jt}function xt(Wt){var Jt=-1,pr=Array(Wt.size);return Wt.forEach(function(_r,Mr){pr[++Jt]=[Mr,_r]}),pr}function Rt(Wt,Jt){return function(pr){return Wt(Jt(pr))}}function qt(Wt){var Jt=-1,pr=Array(Wt.size);return Wt.forEach(function(_r){pr[++Jt]=_r}),pr}var rr=Array.prototype,ar=Function.prototype,ir=Object.prototype,Tr=Qt["__core-js_shared__"],vr=function(){var Wt=/[^.]+$/.exec(Tr&&Tr.keys&&Tr.keys.IE_PROTO||"");return Wt?"Symbol(src)_1."+Wt:""}(),Ar=ar.toString,Pr=ir.hasOwnProperty,kr=ir.toString,Gr=RegExp("^"+Ar.call(Pr).replace(Ft,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Vr=Qt.Symbol,Kr=Qt.Uint8Array,rn=ir.propertyIsEnumerable,en=rr.splice,nn=Vr?Vr.isConcatSpreadable:void 0,_n=Rt(Object.keys,Object),On=Math.max,xn=Gn(Qt,"DataView"),cn=Gn(Qt,"Map"),dn=Gn(Qt,"Promise"),Cn=Gn(Qt,"Set"),pn=Gn(Qt,"WeakMap"),hn=Gn(Object,"create"),tn=Un(xn),bn=Un(cn),kn=Un(dn),mn=Un(Cn),Tn=Un(pn),gn=Vr?Vr.prototype:void 0,yn=gn?gn.valueOf:void 0,$n=gn?gn.toString:void 0;function Fr(Wt){var Jt=-1,pr=Wt?Wt.length:0;for(this.clear();++Jt<pr;){var _r=Wt[Jt];this.set(_r[0],_r[1])}}function Xr(){this.__data__=hn?hn(null):{}}function In(Wt){return this.has(Wt)&&delete this.__data__[Wt]}function Sn(Wt){var Jt=this.__data__;if(hn){var pr=Jt[Wt];return pr===_e?void 0:pr}return Pr.call(Jt,Wt)?Jt[Wt]:void 0}function on(Wt){var Jt=this.__data__;return hn?Jt[Wt]!==void 0:Pr.call(Jt,Wt)}function Lr(Wt,Jt){var pr=this.__data__;return pr[Wt]=hn&&Jt===void 0?_e:Jt,this}Fr.prototype.clear=Xr,Fr.prototype.delete=In,Fr.prototype.get=Sn,Fr.prototype.has=on,Fr.prototype.set=Lr;function Yr(Wt){var Jt=-1,pr=Wt?Wt.length:0;for(this.clear();++Jt<pr;){var _r=Wt[Jt];this.set(_r[0],_r[1])}}function lo(){this.__data__=[]}function uo(Wt){var Jt=this.__data__,pr=xr(Jt,Wt);if(pr<0)return!1;var _r=Jt.length-1;return pr==_r?Jt.pop():en.call(Jt,pr,1),!0}function co(Wt){var Jt=this.__data__,pr=xr(Jt,Wt);return pr<0?void 0:Jt[pr][1]}function _i(Wt){return xr(this.__data__,Wt)>-1}function Dn(Wt,Jt){var pr=this.__data__,_r=xr(pr,Wt);return _r<0?pr.push([Wt,Jt]):pr[_r][1]=Jt,this}Yr.prototype.clear=lo,Yr.prototype.delete=uo,Yr.prototype.get=co,Yr.prototype.has=_i,Yr.prototype.set=Dn;function vn(Wt){var Jt=-1,pr=Wt?Wt.length:0;for(this.clear();++Jt<pr;){var _r=Wt[Jt];this.set(_r[0],_r[1])}}function Nn(){this.__data__={hash:new Fr,map:new(cn||Yr),string:new Fr}}function fo(Wt){return to(this,Wt).delete(Wt)}function zn(Wt){return to(this,Wt).get(Wt)}function Vn(Wt){return to(this,Wt).has(Wt)}function po(Wt,Jt){return to(this,Wt).set(Wt,Jt),this}vn.prototype.clear=Nn,vn.prototype.delete=fo,vn.prototype.get=zn,vn.prototype.has=Vn,vn.prototype.set=po;function Wn(Wt){var Jt=-1,pr=Wt?Wt.length:0;for(this.__data__=new vn;++Jt<pr;)this.add(Wt[Jt])}function Kn(Wt){return this.__data__.set(Wt,_e),this}function ho(Wt){return this.__data__.has(Wt)}Wn.prototype.add=Wn.prototype.push=Kn,Wn.prototype.has=ho;function wn(Wt){this.__data__=new Yr(Wt)}function Zt(){this.__data__=new Yr}function or(Wt){return this.__data__.delete(Wt)}function tr(Wt){return this.__data__.get(Wt)}function dr(Wt){return this.__data__.has(Wt)}function hr(Wt,Jt){var pr=this.__data__;if(pr instanceof Yr){var _r=pr.__data__;if(!cn||_r.length<$-1)return _r.push([Wt,Jt]),this;pr=this.__data__=new vn(_r)}return pr.set(Wt,Jt),this}wn.prototype.clear=Zt,wn.prototype.delete=or,wn.prototype.get=tr,wn.prototype.has=dr,wn.prototype.set=hr;function cr(Wt,Jt){var pr=jn(Wt)||xo(Wt)?gr(Wt.length,String):[],_r=pr.length,Mr=!!_r;for(var Nr in Wt)Pr.call(Wt,Nr)&&!(Mr&&(Nr=="length"||vo(Nr,_r)))&&pr.push(Nr);return pr}function xr(Wt,Jt){for(var pr=Wt.length;pr--;)if(Eo(Wt[pr][0],Jt))return pr;return-1}var Cr=Ho(Or);function $r(Wt,Jt,pr,_r,Mr){var Nr=-1,Br=Wt.length;for(pr||(pr=Ko),Mr||(Mr=[]);++Nr<Br;){var qr=Wt[Nr];pr(qr)?wr(Mr,qr):Mr[Mr.length]=qr}return Mr}var Ir=zo();function Or(Wt,Jt){return Wt&&Ir(Wt,Jt,oo)}function jr(Wt,Jt){Jt=ro(Jt,Wt)?[Jt]:_o(Jt);for(var pr=0,_r=Jt.length;Wt!=null&&pr<_r;)Wt=Wt[no(Jt[pr++])];return pr&&pr==_r?Wt:void 0}function Dr(Wt){return kr.call(Wt)}function zr(Wt,Jt){return Wt!=null&&Jt in Object(Wt)}function Ur(Wt,Jt,pr,_r,Mr){return Wt===Jt?!0:Wt==null||Jt==null||!Zn(Wt)&&!io(Jt)?Wt!==Wt&&Jt!==Jt:Jr(Wt,Jt,Ur,pr,_r,Mr)}function Jr(Wt,Jt,pr,_r,Mr,Nr){var Br=jn(Wt),qr=jn(Jt),Hr=it,Qr=it;Br||(Hr=Mn(Wt),Hr=Hr==nt?mt:Hr),qr||(Qr=Mn(Jt),Qr=Qr==nt?mt:Qr);var ln=Hr==mt&&!Ut(Wt),un=Qr==mt&&!Ut(Jt),an=Hr==Qr;if(an&&!ln)return Nr||(Nr=new wn),Br||va(Wt)?So(Wt,Jt,pr,_r,Mr,Nr):Wo(Wt,Jt,Hr,pr,_r,Mr,Nr);if(!(Mr&tt)){var An=ln&&Pr.call(Wt,"__wrapped__"),En=un&&Pr.call(Jt,"__wrapped__");if(An||En){var Bn=An?Wt.value():Wt,Pn=En?Jt.value():Jt;return Nr||(Nr=new wn),pr(Bn,Pn,_r,Mr,Nr)}}return an?(Nr||(Nr=new wn),Go(Wt,Jt,pr,_r,Mr,Nr)):!1}function Zr(Wt,Jt,pr,_r){var Mr=pr.length,Nr=Mr;if(Wt==null)return!Nr;for(Wt=Object(Wt);Mr--;){var Br=pr[Mr];if(Br[2]?Br[1]!==Wt[Br[0]]:!(Br[0]in Wt))return!1}for(;++Mr<Nr;){Br=pr[Mr];var qr=Br[0],Hr=Wt[qr],Qr=Br[1];if(Br[2]){if(Hr===void 0&&!(qr in Wt))return!1}else{var ln=new wn,un;if(!(un===void 0?Ur(Qr,Hr,_r,et|tt,ln):un))return!1}}return!0}function sn(Wt){if(!Zn(Wt)||Qo(Wt))return!1;var Jt=$o(Wt)||Ut(Wt)?Gr:Xt;return Jt.test(Un(Wt))}function Fn(Wt){return io(Wt)&&bo(Wt.length)&&!!bt[kr.call(Wt)]}function Yn(Wt){return typeof Wt=="function"?Wt:Wt==null?Io:typeof Wt=="object"?jn(Wt)?go(Wt[0],Wt[1]):wo(Wt):rs(Wt)}function mo(Wt){if(!Xo(Wt))return _n(Wt);var Jt=[];for(var pr in Object(Wt))Pr.call(Wt,pr)&&pr!="constructor"&&Jt.push(pr);return Jt}function Qn(Wt,Jt){var pr=-1,_r=Xn(Wt)?Array(Wt.length):[];return Cr(Wt,function(Mr,Nr,Br){_r[++pr]=Jt(Mr,Nr,Br)}),_r}function wo(Wt){var Jt=qo(Wt);return Jt.length==1&&Jt[0][2]?To(Jt[0][0],Jt[0][1]):function(pr){return pr===Wt||Zr(pr,Wt,Jt)}}function go(Wt,Jt){return ro(Wt)&&Co(Jt)?To(no(Wt),Jt):function(pr){var _r=es(pr,Wt);return _r===void 0&&_r===Jt?ts(pr,Wt):Ur(Jt,_r,void 0,et|tt)}}function yo(Wt,Jt,pr){var _r=-1;Jt=ur(Jt.length?Jt:[Io],br(Yn));var Mr=Qn(Wt,function(Nr,Br,qr){var Hr=ur(Jt,function(Qr){return Qr(Nr)});return{criteria:Hr,index:++_r,value:Nr}});return fr(Mr,function(Nr,Br){return Uo(Nr,Br,pr)})}function eo(Wt){return function(Jt){return jr(Jt,Wt)}}function Lo(Wt,Jt){return Jt=On(Jt===void 0?Wt.length-1:Jt,0),function(){for(var pr=arguments,_r=-1,Mr=On(pr.length-Jt,0),Nr=Array(Mr);++_r<Mr;)Nr[_r]=pr[Jt+_r];_r=-1;for(var Br=Array(Jt+1);++_r<Jt;)Br[_r]=pr[_r];return Br[Jt]=Nr,Er(Wt,this,Br)}}function Do(Wt){if(typeof Wt=="string")return Wt;if(Jn(Wt))return $n?$n.call(Wt):"";var Jt=Wt+"";return Jt=="0"&&1/Wt==-1/0?"-0":Jt}function _o(Wt){return jn(Wt)?Wt:Zo(Wt)}function Fo(Wt,Jt){if(Wt!==Jt){var pr=Wt!==void 0,_r=Wt===null,Mr=Wt===Wt,Nr=Jn(Wt),Br=Jt!==void 0,qr=Jt===null,Hr=Jt===Jt,Qr=Jn(Jt);if(!qr&&!Qr&&!Nr&&Wt>Jt||Nr&&Br&&Hr&&!qr&&!Qr||_r&&Br&&Hr||!pr&&Hr||!Mr)return 1;if(!_r&&!Nr&&!Qr&&Wt<Jt||Qr&&pr&&Mr&&!_r&&!Nr||qr&&pr&&Mr||!Br&&Mr||!Hr)return-1}return 0}function Uo(Wt,Jt,pr){for(var _r=-1,Mr=Wt.criteria,Nr=Jt.criteria,Br=Mr.length,qr=pr.length;++_r<Br;){var Hr=Fo(Mr[_r],Nr[_r]);if(Hr){if(_r>=qr)return Hr;var Qr=pr[_r];return Hr*(Qr=="desc"?-1:1)}}return Wt.index-Jt.index}function Ho(Wt,Jt){return function(pr,_r){if(pr==null)return pr;if(!Xn(pr))return Wt(pr,_r);for(var Mr=pr.length,Nr=-1,Br=Object(pr);++Nr<Mr&&_r(Br[Nr],Nr,Br)!==!1;);return pr}}function zo(Wt){return function(Jt,pr,_r){for(var Mr=-1,Nr=Object(Jt),Br=_r(Jt),qr=Br.length;qr--;){var Hr=Br[++Mr];if(pr(Nr[Hr],Hr,Nr)===!1)break}return Jt}}function So(Wt,Jt,pr,_r,Mr,Nr){var Br=Mr&tt,qr=Wt.length,Hr=Jt.length;if(qr!=Hr&&!(Br&&Hr>qr))return!1;var Qr=Nr.get(Wt);if(Qr&&Nr.get(Jt))return Qr==Jt;var ln=-1,un=!0,an=Mr&et?new Wn:void 0;for(Nr.set(Wt,Jt),Nr.set(Jt,Wt);++ln<qr;){var An=Wt[ln],En=Jt[ln];if(_r)var Bn=Br?_r(En,An,ln,Jt,Wt,Nr):_r(An,En,ln,Wt,Jt,Nr);if(Bn!==void 0){if(Bn)continue;un=!1;break}if(an){if(!Rr(Jt,function(Pn,Hn){if(!an.has(Hn)&&(An===Pn||pr(An,Pn,_r,Mr,Nr)))return an.add(Hn)})){un=!1;break}}else if(!(An===En||pr(An,En,_r,Mr,Nr))){un=!1;break}}return Nr.delete(Wt),Nr.delete(Jt),un}function Wo(Wt,Jt,pr,_r,Mr,Nr,Br){switch(pr){case Mt:if(Wt.byteLength!=Jt.byteLength||Wt.byteOffset!=Jt.byteOffset)return!1;Wt=Wt.buffer,Jt=Jt.buffer;case Ct:return!(Wt.byteLength!=Jt.byteLength||!_r(new Kr(Wt),new Kr(Jt)));case ot:case at:case dt:return Eo(+Wt,+Jt);case st:return Wt.name==Jt.name&&Wt.message==Jt.message;case yt:case ht:return Wt==Jt+"";case ft:var qr=xt;case pt:var Hr=Nr&tt;if(qr||(qr=qt),Wt.size!=Jt.size&&!Hr)return!1;var Qr=Br.get(Wt);if(Qr)return Qr==Jt;Nr|=et,Br.set(Wt,Jt);var ln=So(qr(Wt),qr(Jt),_r,Mr,Nr,Br);return Br.delete(Wt),ln;case At:if(yn)return yn.call(Wt)==yn.call(Jt)}return!1}function Go(Wt,Jt,pr,_r,Mr,Nr){var Br=Mr&tt,qr=oo(Wt),Hr=qr.length,Qr=oo(Jt),ln=Qr.length;if(Hr!=ln&&!Br)return!1;for(var un=Hr;un--;){var an=qr[un];if(!(Br?an in Jt:Pr.call(Jt,an)))return!1}var An=Nr.get(Wt);if(An&&Nr.get(Jt))return An==Jt;var En=!0;Nr.set(Wt,Jt),Nr.set(Jt,Wt);for(var Bn=Br;++un<Hr;){an=qr[un];var Pn=Wt[an],Hn=Jt[an];if(_r)var Po=Br?_r(Hn,Pn,an,Jt,Wt,Nr):_r(Pn,Hn,an,Wt,Jt,Nr);if(!(Po===void 0?Pn===Hn||pr(Pn,Hn,_r,Mr,Nr):Po)){En=!1;break}Bn||(Bn=an=="constructor")}if(En&&!Bn){var ao=Wt.constructor,so=Jt.constructor;ao!=so&&"constructor"in Wt&&"constructor"in Jt&&!(typeof ao=="function"&&ao instanceof ao&&typeof so=="function"&&so instanceof so)&&(En=!1)}return Nr.delete(Wt),Nr.delete(Jt),En}function to(Wt,Jt){var pr=Wt.__data__;return Yo(Jt)?pr[typeof Jt=="string"?"string":"hash"]:pr.map}function qo(Wt){for(var Jt=oo(Wt),pr=Jt.length;pr--;){var _r=Jt[pr],Mr=Wt[_r];Jt[pr]=[_r,Mr,Co(Mr)]}return Jt}function Gn(Wt,Jt){var pr=Sr(Wt,Jt);return sn(pr)?pr:void 0}var Mn=Dr;(xn&&Mn(new xn(new ArrayBuffer(1)))!=Mt||cn&&Mn(new cn)!=ft||dn&&Mn(dn.resolve())!=vt||Cn&&Mn(new Cn)!=pt||pn&&Mn(new pn)!=St)&&(Mn=function(Wt){var Jt=kr.call(Wt),pr=Jt==mt?Wt.constructor:void 0,_r=pr?Un(pr):void 0;if(_r)switch(_r){case tn:return Mt;case bn:return ft;case kn:return vt;case mn:return pt;case Tn:return St}return Jt});function Vo(Wt,Jt,pr){Jt=ro(Jt,Wt)?[Jt]:_o(Jt);for(var _r,Mr=-1,Br=Jt.length;++Mr<Br;){var Nr=no(Jt[Mr]);if(!(_r=Wt!=null&&pr(Wt,Nr)))break;Wt=Wt[Nr]}if(_r)return _r;var Br=Wt?Wt.length:0;return!!Br&&bo(Br)&&vo(Nr,Br)&&(jn(Wt)||xo(Wt))}function Ko(Wt){return jn(Wt)||xo(Wt)||!!(nn&&Wt&&Wt[nn])}function vo(Wt,Jt){return Jt=Jt??rt,!!Jt&&(typeof Wt=="number"||Kt.test(Wt))&&Wt>-1&&Wt%1==0&&Wt<Jt}function Ro(Wt,Jt,pr){if(!Zn(pr))return!1;var _r=typeof Jt;return(_r=="number"?Xn(pr)&&vo(Jt,pr.length):_r=="string"&&Jt in pr)?Eo(pr[Jt],Wt):!1}function ro(Wt,Jt){if(jn(Wt))return!1;var pr=typeof Wt;return pr=="number"||pr=="symbol"||pr=="boolean"||Wt==null||Jn(Wt)?!0:kt.test(Wt)||!Ot.test(Wt)||Jt!=null&&Wt in Object(Jt)}function Yo(Wt){var Jt=typeof Wt;return Jt=="string"||Jt=="number"||Jt=="symbol"||Jt=="boolean"?Wt!=="__proto__":Wt===null}function Qo(Wt){return!!vr&&vr in Wt}function Xo(Wt){var Jt=Wt&&Wt.constructor,pr=typeof Jt=="function"&&Jt.prototype||ir;return Wt===pr}function Co(Wt){return Wt===Wt&&!Zn(Wt)}function To(Wt,Jt){return function(pr){return pr==null?!1:pr[Wt]===Jt&&(Jt!==void 0||Wt in Object(pr))}}var Zo=Ao(function(Wt){Wt=_a(Wt);var Jt=[];return It.test(Wt)&&Jt.push(""),Wt.replace(Pt,function(pr,_r,Mr,Nr){Jt.push(Mr?Nr.replace(Vt,"$1"):_r||pr)}),Jt});function no(Wt){if(typeof Wt=="string"||Jn(Wt))return Wt;var Jt=Wt+"";return Jt=="0"&&1/Wt==-1/0?"-0":Jt}function Un(Wt){if(Wt!=null){try{return Ar.call(Wt)}catch{}try{return Wt+""}catch{}}return""}var Jo=Lo(function(Wt,Jt){if(Wt==null)return[];var pr=Jt.length;return pr>1&&Ro(Wt,Jt[0],Jt[1])?Jt=[]:pr>2&&Ro(Jt[0],Jt[1],Jt[2])&&(Jt=[Jt[0]]),yo(Wt,$r(Jt),[])});function Ao(Wt,Jt){if(typeof Wt!="function"||Jt&&typeof Jt!="function")throw new TypeError(j);var pr=function(){var _r=arguments,Mr=Jt?Jt.apply(this,_r):_r[0],Nr=pr.cache;if(Nr.has(Mr))return Nr.get(Mr);var Br=Wt.apply(this,_r);return pr.cache=Nr.set(Mr,Br),Br};return pr.cache=new(Ao.Cache||vn),pr}Ao.Cache=vn;function Eo(Wt,Jt){return Wt===Jt||Wt!==Wt&&Jt!==Jt}function xo(Wt){return ga(Wt)&&Pr.call(Wt,"callee")&&(!rn.call(Wt,"callee")||kr.call(Wt)==nt)}var jn=Array.isArray;function Xn(Wt){return Wt!=null&&bo(Wt.length)&&!$o(Wt)}function ga(Wt){return io(Wt)&&Xn(Wt)}function $o(Wt){var Jt=Zn(Wt)?kr.call(Wt):"";return Jt==ut||Jt==ct}function bo(Wt){return typeof Wt=="number"&&Wt>-1&&Wt%1==0&&Wt<=rt}function Zn(Wt){var Jt=typeof Wt;return!!Wt&&(Jt=="object"||Jt=="function")}function io(Wt){return!!Wt&&typeof Wt=="object"}function Jn(Wt){return typeof Wt=="symbol"||io(Wt)&&kr.call(Wt)==At}var va=mr?br(mr):Fn;function _a(Wt){return Wt==null?"":Do(Wt)}function es(Wt,Jt,pr){var _r=Wt==null?void 0:jr(Wt,Jt);return _r===void 0?pr:_r}function ts(Wt,Jt){return Wt!=null&&Vo(Wt,Jt,zr)}function oo(Wt){return Xn(Wt)?cr(Wt):mo(Wt)}function Io(Wt){return Wt}function rs(Wt){return ro(Wt)?nr(no(Wt)):eo(Wt)}o.exports=Jo})(lodash_sortby,lodash_sortby.exports);var lodash_sortbyExports=lodash_sortby.exports;const sortBy=getDefaultExportFromCjs(lodash_sortbyExports),cropType={ASPARAGUS:"ASPARAGUS",CARROT:"CARROT",CORN:"CORN",GARLIC:"GARLIC",GRAPE:"GRAPE",JALAPENO:"JALAPENO",OLIVE:"OLIVE",ONION:"ONION",PEA:"PEA",POTATO:"POTATO",PUMPKIN:"PUMPKIN",SOYBEAN:"SOYBEAN",SPINACH:"SPINACH",SUNFLOWER:"SUNFLOWER",STRAWBERRY:"STRAWBERRY",SWEET_POTATO:"SWEET_POTATO",TOMATO:"TOMATO",WATERMELON:"WATERMELON",WHEAT:"WHEAT"},recipeType={FERMENTATION:"FERMENTATION",FORGE:"FORGE",KITCHEN:"KITCHEN",RECYCLING:"RECYCLING",WINE:"WINE"},fieldMode={CLEANUP:"CLEANUP",FERTILIZE:"FERTILIZE",HARVEST:"HARVEST",MINE:"MINE",OBSERVE:"OBSERVE",PLANT:"PLANT",SET_SPRINKLER:"SET_SPRINKLER",SET_SCARECROW:"SET_SCARECROW",WATER:"WATER"},stageFocusType={NONE:"NONE",HOME:"HOME",FIELD:"FIELD",FOREST:"FOREST",SHOP:"SHOP",COW_PEN:"COW_PEN",INVENTORY:"INVENTORY",WORKSHOP:"WORKSHOP",CELLAR:"CELLAR"},cropLifeStage={SEED:"SEED",GROWING:"GROWING",GROWN:"GROWN"},itemType={COW_FEED:"COW_FEED",CRAFTED_ITEM:"CRAFTED_ITEM",CROP:"CROP",FERTILIZER:"FERTILIZER",FUEL:"FUEL",HUGGING_MACHINE:"HUGGING_MACHINE",MILK:"MILK",ORE:"ORE",SCARECROW:"SCARECROW",SPRINKLER:"SPRINKLER",STONE:"STONE",TOOL_UPGRADE:"TOOL_UPGRADE",WEED:"WEED"},fertilizerType={NONE:"NONE",STANDARD:"STANDARD",RAINBOW:"RAINBOW"},genders={FEMALE:"FEMALE",MALE:"MALE"},cowColors={BLUE:"BLUE",BROWN:"BROWN",GREEN:"GREEN",ORANGE:"ORANGE",PURPLE:"PURPLE",RAINBOW:"RAINBOW",WHITE:"WHITE",YELLOW:"YELLOW"},{RAINBOW,...standardCowColors}=cowColors,dialogView={NONE:"NONE",ACCOUNTING:"ACCOUNTING",ACHIEVEMENTS:"ACHIEVEMENTS",FARMERS_LOG:"FARMERS_LOG",KEYBINDINGS:"KEYBINDINGS",ONLINE_PEERS:"ONLINE_PEERS",PRICE_EVENTS:"PRICE_EVENTS",SETTINGS:"SETTINGS",STATS:"STATS"},toolType={SCYTHE:"SCYTHE",SHOVEL:"SHOVEL",HOE:"HOE",WATERING_CAN:"WATERING_CAN"},toolLevel={UNAVAILABLE:"UNAVAILABLE",DEFAULT:"DEFAULT",BRONZE:"BRONZE",IRON:"IRON",SILVER:"SILVER",GOLD:"GOLD"},cowTradeRejectionReason={REQUESTED_COW_UNAVAILABLE:"REQUESTED_COW_UNAVAILABLE"},cropFamily={GRAPE:"GRAPE"},grapeVariety={CHARDONNAY:"CHARDONNAY",SAUVIGNON_BLANC:"SAUVIGNON_BLANC",CABERNET_SAUVIGNON:"CABERNET_SAUVIGNON",TEMPRANILLO:"TEMPRANILLO",NEBBIOLO:"NEBBIOLO"},{freeze:freeze$9}=Object,MEMOIZE_CACHE_CLEAR_THRESHOLD=10,BREAKPOINTS={MD:960},STANDARD_LOAN_AMOUNT=500,LOAN_GARNISHMENT_RATE=.05,LOAN_INTEREST_RATE=.02,FERTILIZER_BONUS=.5,INITIAL_STORAGE_LIMIT=100,INFINITE_STORAGE_LIMIT=-1,STORAGE_EXPANSION_AMOUNT=100,STORAGE_EXPANSION_BASE_PRICE=500,STORAGE_EXPANSION_SCALE_PREMIUM=50,INITIAL_FIELD_WIDTH=6,INITIAL_FIELD_HEIGHT=10,PURCHASEABLE_FIELD_SIZES=freeze$9(new Map([[1,{columns:8,rows:12,price:1e3}],[2,{columns:10,rows:16,price:5e3}],[3,{columns:12,rows:18,price:2e4}]])),INITIAL_FOREST_WIDTH=4,INITIAL_FOREST_HEIGHT=1,PURCHASABLE_FOREST_SIZES=freeze$9(new Map([[1,{columns:4,rows:2,price:1e5}],[2,{columns:4,rows:3,price:2e5}],[3,{columns:4,rows:4,price:3e5}]])),LARGEST_PURCHASABLE_FIELD_SIZE=PURCHASEABLE_FIELD_SIZES.get(PURCHASEABLE_FIELD_SIZES.size),PURCHASEABLE_COMBINES=freeze$9(new Map([[1,{type:"Basic",price:25e4}]])),PURCHASEABLE_COMPOSTERS=freeze$9(new Map([[1,{type:"Basic",price:1e3}]])),PURCHASEABLE_SMELTERS=freeze$9(new Map([[1,{type:"Basic",price:25e4}]])),PURCHASEABLE_COW_PENS=freeze$9(new Map([[1,{cows:10,price:1500}],[2,{cows:20,price:1e4}],[3,{cows:30,price:5e4}]])),PURCHASEABLE_CELLARS=freeze$9(new Map([[1,{space:10,price:25e4}],[2,{space:20,price:75e4}],[3,{space:30,price:2e6}]])),CROW_CHANCE=.4,MAX_CROWS=5,PRECIPITATION_CHANCE=.1,STORM_CHANCE=.5,SCARECROW_ITEM_ID="scarecrow",SPRINKLER_ITEM_ID="sprinkler",INITIAL_SPRINKLER_RANGE=1,COW_STARTING_WEIGHT_BASE=1800,COW_STARTING_WEIGHT_VARIANCE=200,MAX_ANIMAL_NAME_LENGTH=30,MALE_COW_WEIGHT_MULTIPLIER=1.1,COW_HUG_BENEFIT=.05,MAX_DAILY_COW_HUG_BENEFITS=3,COW_WEIGHT_MULTIPLIER_FEED_BENEFIT=.1,COW_WEIGHT_MULTIPLIER_MINIMUM=.5,COW_WEIGHT_MULTIPLIER_MAXIMUM=1.5,COW_MILK_RATE_SLOWEST=7,COW_MILK_RATE_FASTEST=2,COW_FERTILIZER_PRODUCTION_RATE_SLOWEST=7,COW_FERTILIZER_PRODUCTION_RATE_FASTEST=1,COW_FEED_ITEM_ID="cow-feed",HUGGING_MACHINE_ITEM_ID="hugging-machine",COW_MAXIMUM_VALUE_MATURITY_AGE=100,COW_MINIMUM_VALUE_MULTIPLIER=0,COW_MAXIMUM_VALUE_MULTIPLIER=1,COW_GESTATION_PERIOD_DAYS=3,COW_MINIMUM_HAPPINESS_TO_BREED=.8,NOTIFICATION_DURATION=6e3,NOTIFICATION_LOG_SIZE=14,PRICE_EVENT_CHANCE=.2,PRICE_EVENT_STANDARD_DURATION_DECREASE=1,STAGE_TITLE_MAP={[stageFocusType.HOME]:"Home",[stageFocusType.FIELD]:"Field",[stageFocusType.FOREST]:"Forest",[stageFocusType.SHOP]:"Shop",[stageFocusType.COW_PEN]:"Cows",[stageFocusType.WORKSHOP]:"Workshop",[stageFocusType.CELLAR]:"Cellar"},DAILY_FINANCIAL_HISTORY_RECORD_LENGTH=7,RECIPE_INGREDIENT_VALUE_MULTIPLIER=1.25,I_AM_RICH_BONUSES=[.05,.1,.25],PERSISTED_STATE_KEYS=["allowCustomPeerCowNames","cellarInventory","completedAchievements","cowBreedingPen","cowColorsPurchased","cowForSale","cowInventory","cowsSold","cowsTraded","cropsHarvested","dayCount","experience","farmName","field","forest","historicalDailyLosses","historicalDailyRevenue","historicalValueAdjustments","hoveredPlotRangeSize","playerId","inventory","inventoryLimit","isCombineEnabled","itemsSold","cellarItemsSold","learnedRecipes","loanBalance","loansTakenOut","money","newDayNotifications","notificationLog","priceCrashes","priceSurges","profitabilityStreak","purchasedCombine","purchasedComposter","purchasedCowPen","purchasedCellar","purchasedField","purchasedForest","purchasedSmelter","record7dayProfitAverage","recordProfitabilityStreak","recordSingleDayProfit","revenue","showHomeScreen","showNotifications","todaysLosses","todaysPurchases","todaysRevenue","todaysStartingInventory","toolLevels","useAlternateEndDayButtonPosition","valueAdjustments","version"],PEER_METADATA_STATE_KEYS=["cowsSold","cropsHarvested","dayCount","experience","playerId","money","pendingPeerMessages","version"],DEFAULT_ROOM="global",MAX_PENDING_PEER_MESSAGES=5,MAX_LATEST_PEER_MESSAGES=30,LEFT="left",RIGHT="right",TOOLBELT_FIELD_MODES=new Set([fieldMode.CLEANUP,fieldMode.HARVEST,fieldMode.WATER,fieldMode.MINE]),RESOURCE_SPAWN_CHANCE=.3,ORE_SPAWN_CHANCE=.25,COAL_SPAWN_CHANCE=.15,STONE_SPAWN_CHANCE=.4,SALT_ROCK_SPAWN_CHANCE=.3,BRONZE_SPAWN_CHANCE=.4,GOLD_SPAWN_CHANCE=.07,IRON_SPAWN_CHANCE=.33,SILVER_SPAWN_CHANCE=.2,HOE_LEVEL_TO_SEED_RECLAIM_RATE={[toolLevel.DEFAULT]:0,[toolLevel.BRONZE]:.25,[toolLevel.IRON]:.5,[toolLevel.SILVER]:.75,[toolLevel.GOLD]:1},COW_COLORS_HEX_MAP={[cowColors.BLUE]:"#8ff0f9",[cowColors.BROWN]:"#b45f28",[cowColors.GREEN]:"#65f295",[cowColors.ORANGE]:"#ff7031",[cowColors.PURPLE]:"#d884f2",[cowColors.WHITE]:"#ffffff",[cowColors.YELLOW]:"#fff931"},COW_TRADE_TIMEOUT=1e4,WEEDS_SPAWN_CHANCE=.15,KEG_INTEREST_RATE=.02,KEG_SPOILAGE_RATE_MULTIPLIER=.001,WINE_INTEREST_RATE=.015,WINE_GROWTH_TIMELINE_CAP=100,EXPERIENCE_VALUES={CELLAR_ACQUIRED:10,CELLAR_EXPANDED:5,COMPOSTER_ACQUIRED:10,COW_BRED:1,COW_PEN_ACQUIRED:10,COW_PEN_EXPANDED:5,COW_TRADED:1,FERMENTATION_RECIPE_MADE:1,FIELD_EXPANDED:5,FOREST_EXPANDED:10,FORGE_RECIPE_MADE:3,ITEM_SOLD:1,KEG_SOLD:2,KITCHEN_RECIPE_MADE:2,LOAN_PAID_OFF:25,NEW_YEAR:5,RAINBOW_COW_BRED:2,RECYCLING_RECIPE_MADE:1,SMELTER_ACQUIRED:10},STANDARD_VIEW_LIST=[stageFocusType.SHOP,stageFocusType.FIELD],Z_INDEX={END_DAY_BUTTON:1100},HEARTBEAT_INTERVAL_PERIOD=10*1e3,GRAPES_REQUIRED_FOR_WINE=50,YEAST_REQUIREMENT_FOR_WINE_MULTIPLIER=5;var src={exports:{}};function memoize$1(o,a){var s=a&&a.cache?a.cache:cacheDefault,$=a&&a.serializer?a.serializer:serializerDefault,j=a&&a.strategy?a.strategy:strategyDefault;return j(o,{cache:s,serializer:$})}function isPrimitive(o){return o==null||typeof o=="number"||typeof o=="boolean"}function monadic(o,a,s,$){var j=isPrimitive($)?$:s($),_e=a.get(j);return typeof _e>"u"&&(_e=o.call(this,$),a.set(j,_e)),_e}function variadic(o,a,s){var $=Array.prototype.slice.call(arguments,3),j=s($),_e=a.get(j);return typeof _e>"u"&&(_e=o.apply(this,$),a.set(j,_e)),_e}function assemble(o,a,s,$,j){return s.bind(a,o,$,j)}function strategyDefault(o,a){var s=o.length===1?monadic:variadic;return assemble(o,this,s,a.cache.create(),a.serializer)}function strategyVariadic(o,a){var s=variadic;return assemble(o,this,s,a.cache.create(),a.serializer)}function strategyMonadic(o,a){var s=monadic;return assemble(o,this,s,a.cache.create(),a.serializer)}function serializerDefault(){return JSON.stringify(arguments)}function ObjectWithoutPrototypeCache(){this.cache=Object.create(null)}ObjectWithoutPrototypeCache.prototype.has=function(o){return o in this.cache};ObjectWithoutPrototypeCache.prototype.get=function(o){return this.cache[o]};ObjectWithoutPrototypeCache.prototype.set=function(o,a){this.cache[o]=a};var cacheDefault={create:function o(){return new ObjectWithoutPrototypeCache}};src.exports=memoize$1;src.exports.strategies={variadic:strategyVariadic,monadic:strategyMonadic};var srcExports=src.exports;const fastMemoize=getDefaultExportFromCjs(srcExports);class MemoizeCache{constructor({cacheSize:a=MEMOIZE_CACHE_CLEAR_THRESHOLD}={}){Wr(this,"cache",{});this.cacheSize=a}has(a){return a in this.cache}get(a){return this.cache[a]}set(a,s){Object.keys(this.cache).length>this.cacheSize&&(this.cache={}),this.cache[a]=s}}const memoize=(o,a)=>fastMemoize(o,{cache:{create:()=>new MemoizeCache(a)},...a}),getCropLifecycleDuration=memoize(({cropTimeline:o})=>o.reduce((a,s)=>a+s,0)),{freeze:freeze$8}=Object,crop=({cropTimeline:o,growsInto:a,tier:s=1,isSeed:$=!!a,cropLifecycleDuration:j=getCropLifecycleDuration({cropTimeline:o}),id:_e="",name:et="",...tt})=>freeze$8({id:_e,name:et,cropTimeline:o,doesPriceFluctuate:!0,tier:s,type:itemType.CROP,value:10+j*s*($?1:3),...$&&{enablesFieldMode:fieldMode.PLANT,growsInto:a,isPlantableCrop:!0},...tt}),fromSeed=({cropTimeline:o,cropType:a,growsInto:s,tier:$=1},{variantIdx:j=0,canBeFermented:_e=!1}={})=>({id:(Array.isArray(s)?s:[s])[j]||"",cropTimeline:o,cropType:a,doesPriceFluctuate:!0,tier:$,type:itemType.CROP,..._e&&{daysToFerment:getCropLifecycleDuration({cropTimeline:o})*$}}),cropVariety=({imageId:o,cropFamily:a,variety:s,...$})=>({imageId:o,cropFamily:a,variety:s,...crop({...$})}),isGrape=o=>"cropFamily"in o&&o.cropFamily===cropFamily.GRAPE,grape=o=>{const a={...cropVariety({...o,cropFamily:cropFamily.GRAPE})};if(!isGrape(a))throw new Error("Invalid cropVariety props");return a},grapeSeed$1=crop({cropType:cropType.GRAPE,cropTimeline:[3,4],growsInto:["grape-chardonnay","grape-sauvignon-blanc","grape-cabernet-sauvignon","grape-tempranillo","grape-nebbiolo"],id:"grape-seed",name:"Grape Seed",tier:7}),grapeVarietyNameMap={[grapeVariety.CHARDONNAY]:"Chardonnay",[grapeVariety.SAUVIGNON_BLANC]:"Sauvignon Blanc",[grapeVariety.CABERNET_SAUVIGNON]:"Cabernet Sauvignon",[grapeVariety.TEMPRANILLO]:"Tempranillo",[grapeVariety.NEBBIOLO]:"Nebbiolo"},wineVarietyValueMap={[grapeVariety.CHARDONNAY]:1,[grapeVariety.SAUVIGNON_BLANC]:8,[grapeVariety.CABERNET_SAUVIGNON]:3,[grapeVariety.TEMPRANILLO]:5,[grapeVariety.NEBBIOLO]:10};var Oo;const grapeChardonnay=grape({...fromSeed(grapeSeed$1,{variantIdx:(Oo=grapeSeed$1.growsInto)==null?void 0:Oo.indexOf("grape-chardonnay")}),name:"Chardonnay Grape",imageId:"grape-green",variety:grapeVariety.CHARDONNAY,wineId:"wine-chardonnay"});var ko;const grapeSauvignonBlanc=grape({...fromSeed(grapeSeed$1,{variantIdx:(ko=grapeSeed$1.growsInto)==null?void 0:ko.indexOf("grape-sauvignon-blanc")}),name:"Sauvignon Blanc Grape",imageId:"grape-green",variety:grapeVariety.SAUVIGNON_BLANC,wineId:"wine-sauvignon-blanc"});var No;const grapeCabernetSauvignon=grape({...fromSeed(grapeSeed$1,{variantIdx:(No=grapeSeed$1.growsInto)==null?void 0:No.indexOf("grape-cabernet-sauvignon")}),name:"Cabernet Sauvignon Grape",imageId:"grape-purple",variety:grapeVariety.CABERNET_SAUVIGNON,wineId:"wine-cabernet-sauvignon"});var Mo;const grapeTempranillo=grape({...fromSeed(grapeSeed$1,{variantIdx:(Mo=grapeSeed$1.growsInto)==null?void 0:Mo.indexOf("grape-tempranillo")}),name:"Tempranillo Grape",imageId:"grape-purple",variety:grapeVariety.TEMPRANILLO,wineId:"wine-tempranillo"});var jo;const grapeNebbiolo=grape({...fromSeed(grapeSeed$1,{variantIdx:(jo=grapeSeed$1.growsInto)==null?void 0:jo.indexOf("grape-nebbiolo")}),name:"Nebbiolo Grape",imageId:"grape-purple",variety:grapeVariety.NEBBIOLO,wineId:"wine-nebbiolo"}),grapeVarietyToGrapeItemMap={[grapeVariety.CHARDONNAY]:grapeChardonnay,[grapeVariety.SAUVIGNON_BLANC]:grapeSauvignonBlanc,[grapeVariety.CABERNET_SAUVIGNON]:grapeCabernetSauvignon,[grapeVariety.TEMPRANILLO]:grapeTempranillo,[grapeVariety.NEBBIOLO]:grapeNebbiolo},getYeastRequiredForWine=o=>wineVarietyValueMap[o]*YEAST_REQUIREMENT_FOR_WINE_MULTIPLIER,asparagusSeed$1=crop({cropType:cropType.ASPARAGUS,cropTimeline:[4,2,2,1],growsInto:"asparagus",id:"asparagus-seed",name:"Asparagus Seed",tier:4}),asparagus$1=crop({...fromSeed(asparagusSeed$1,{canBeFermented:!0}),name:"Asparagus"}),carrotSeed$1=crop({cropType:cropType.CARROT,cropTimeline:[2,1,1,1],growsInto:"carrot",id:"carrot-seed",name:"Carrot Seed",tier:1}),carrot$1=crop({...fromSeed(carrotSeed$1,{canBeFermented:!0}),name:"Carrot"}),cornSeed$1=crop({cropType:cropType.CORN,cropTimeline:[3,1,1,1,2,2],growsInto:"corn",id:"corn-seed",name:"Corn Kernels",tier:2}),corn$1=crop({...fromSeed(cornSeed$1,{canBeFermented:!0}),name:"Corn"}),garlicSeed$1=crop({cropType:cropType.GARLIC,cropTimeline:[2,1,1,1],growsInto:"garlic",id:"garlic-seed",name:"Garlic Bulb",tier:5}),garlic$1=crop({...fromSeed(garlicSeed$1,{canBeFermented:!0}),name:"Garlic"}),jalapenoSeed$1=crop({cropType:cropType.JALAPENO,cropTimeline:[2,1,1,1],growsInto:"jalapeno",id:"jalapeno-seed",name:"Jalapeño Seed",tier:4}),jalapeno$1=crop({...fromSeed(jalapenoSeed$1,{canBeFermented:!0}),name:"Jalapeño"}),oliveSeed$1=crop({cropType:cropType.OLIVE,cropTimeline:[3,6],growsInto:"olive",id:"olive-seed",name:"Olive Seed",tier:6}),olive$1=crop({...fromSeed(oliveSeed$1,{canBeFermented:!0}),name:"Olive"}),onionSeed$1=crop({cropType:cropType.ONION,cropTimeline:[3,1,2,1],growsInto:"onion",id:"onion-seed",name:"Onion Seeds",tier:2}),onion$1=crop({...fromSeed(onionSeed$1,{canBeFermented:!0}),name:"Onion"}),peaSeed$1=crop({cropType:cropType.PEA,cropTimeline:[2,3],growsInto:"pea",id:"pea-seed",name:"Pea Seed",tier:5}),pea$1=crop({...fromSeed(peaSeed$1,{canBeFermented:!0}),name:"Pea"}),potatoSeed$1=crop({cropType:cropType.POTATO,cropTimeline:[2,1,1,1],growsInto:"potato",id:"potato-seed",name:"Potato Seeds",tier:2}),potato$1=crop({...fromSeed(potatoSeed$1,{canBeFermented:!0}),name:"Potato"}),pumpkinSeed$1=crop({cropType:cropType.PUMPKIN,cropTimeline:[3,1,1,1,1,1],growsInto:"pumpkin",id:"pumpkin-seed",name:"Pumpkin Seed",tier:1}),pumpkin$1=crop({...fromSeed(pumpkinSeed$1,{canBeFermented:!0}),name:"Pumpkin"}),soybeanSeed$1=crop({cropType:cropType.SOYBEAN,cropTimeline:[2,2],growsInto:"soybean",id:"soybean-seed",name:"Soybean Seeds",tier:3}),soybean$1=crop({...fromSeed(soybeanSeed$1,{canBeFermented:!0}),name:"Soybean"}),spinachSeed$1=crop({cropType:cropType.SPINACH,cropTimeline:[2,4],growsInto:"spinach",id:"spinach-seed",name:"Spinach Seed",tier:1}),spinach$1=crop({...fromSeed(spinachSeed$1,{canBeFermented:!0}),name:"Spinach"}),sunflowerSeed$1=crop({cropType:cropType.SUNFLOWER,cropTimeline:[1,1,1,1,1,1],growsInto:"sunflower",id:"sunflower-seed",name:"Sunflower Seed",tier:6}),sunflower$1=crop({...fromSeed(sunflowerSeed$1,{canBeFermented:!0}),name:"Sunflower"}),strawberrySeed$1=crop({cropType:cropType.STRAWBERRY,cropTimeline:[6,2],growsInto:"strawberry",id:"strawberry-seed",name:"Strawberry Seed",tier:5}),strawberry$1=crop({...fromSeed(strawberrySeed$1),name:"Strawberry"}),sweetPotatoSeed$1=crop({cropType:cropType.SWEET_POTATO,cropTimeline:[2,1,1,2,2],growsInto:"sweet-potato",id:"sweet-potato-seed",name:"Sweet Potato Slip",tier:6}),sweetPotato$1=crop({...fromSeed(sweetPotatoSeed$1,{canBeFermented:!0}),name:"Sweet Potato"}),tomatoSeed$1=crop({cropType:cropType.TOMATO,cropTimeline:[2,1,1,1,2,2,2],growsInto:"tomato",id:"tomato-seed",name:"Tomato Seeds",tier:3}),tomato$1=crop({...fromSeed(tomatoSeed$1,{canBeFermented:!0}),name:"Tomato"}),watermelonSeed$1=crop({cropType:cropType.WATERMELON,cropTimeline:[2,10],growsInto:"watermelon",id:"watermelon-seed",name:"Watermelon Seed",tier:4}),watermelon$1=crop({...fromSeed(watermelonSeed$1),name:"Watermelon"}),wheatSeed$1=crop({cropType:cropType.WHEAT,cropTimeline:[1,1],growsInto:"wheat",id:"wheat-seed",name:"Wheat Seeds",tier:3}),wheat$1=crop({...fromSeed(wheatSeed$1),name:"Wheat"}),{freeze:freeze$7}=Object,bronzeOre$1=freeze$7({description:"A piece of bronze ore.",doesPriceFluctuate:!0,id:"bronze-ore",name:"Bronze Ore",type:itemType.ORE,value:25,spawnChance:BRONZE_SPAWN_CHANCE}),{freeze:freeze$6}=Object,coal$2=freeze$6({description:"A piece of coal.",doesPriceFluctuate:!1,id:"coal",name:"Coal",type:itemType.FUEL,spawnChance:COAL_SPAWN_CHANCE,value:2}),{freeze:freeze$5}=Object,goldOre$1=freeze$5({description:"A piece of gold ore.",doesPriceFluctuate:!0,id:"gold-ore",name:"Gold Ore",type:itemType.ORE,value:500,spawnChance:GOLD_SPAWN_CHANCE}),{freeze:freeze$4}=Object,ironOre$1=freeze$4({description:"A piece of iron ore.",doesPriceFluctuate:!0,id:"iron-ore",name:"Iron Ore",type:itemType.ORE,value:40,spawnChance:IRON_SPAWN_CHANCE}),{freeze:freeze$3}=Object,silverOre$1=freeze$3({description:"A piece of silver ore.",doesPriceFluctuate:!0,id:"silver-ore",name:"Silver Ore",type:itemType.ORE,value:100,spawnChance:SILVER_SPAWN_CHANCE}),{freeze:freeze$2}=Object,stone$1=freeze$2({description:"A piece of rock.",doesPriceFluctuate:!1,id:"stone",name:"Stone",spawnChance:STONE_SPAWN_CHANCE,type:itemType.STONE,value:10}),{freeze:freeze$1}=Object,saltRock$1=freeze$1({description:"A large chunk of salt.",doesPriceFluctuate:!0,id:"salt-rock",name:"Salt Rock",spawnChance:SALT_ROCK_SPAWN_CHANCE,type:itemType.STONE,value:10}),{freeze}=Object,{COW_FEED,FERTILIZER,HUGGING_MACHINE,MILK,SCARECROW,SPRINKLER,WEED}=itemType,weed=freeze({id:"weed",name:"Weed",value:.1,doesPriceFluctuate:!1,type:WEED}),rainbowFertilizer$1=freeze({description:"Helps crops grow a little faster and automatically replants them upon harvesting. Consumes seeds upon replanting and disappears if none are available. Also works for Scarecrows.",enablesFieldMode:fieldMode.FERTILIZE,id:"rainbow-fertilizer",name:"Rainbow Fertilizer",type:FERTILIZER,value:15}),sprinkler$1=freeze({description:"Automatically waters adjacent plants every day.",enablesFieldMode:fieldMode.SET_SPRINKLER,hoveredPlotRangeSize:INITIAL_SPRINKLER_RANGE,id:"sprinkler",isReplantable:!0,name:"Sprinkler",type:SPRINKLER,value:120}),scarecrow$1=freeze({description:"Prevents crows from eating your crops. One scarecrow covers an entire field, but they are afraid of storms.",enablesFieldMode:fieldMode.SET_SCARECROW,hoveredPlotRangeSize:Number.MAX_SAFE_INTEGER,id:"scarecrow",isReplantable:!0,name:"Scarecrow",type:SCARECROW,value:160}),cowFeed$2=freeze({id:COW_FEED_ITEM_ID,description:"Each cow automatically consumes one unit of Cow Feed per day. Fed cows gain and maintain weight.",name:"Cow Feed",type:COW_FEED,value:5}),huggingMachine$1=freeze({id:HUGGING_MACHINE_ITEM_ID,description:"Automatically hugs one cow three times every day.",name:"Hugging Machine",type:HUGGING_MACHINE,value:500}),milk1$1=freeze({id:"milk-1",name:"Grade C Milk",type:MILK,value:40}),milk2$1=freeze({id:"milk-2",name:"Grade B Milk",type:MILK,value:80}),milk3$1=freeze({id:"milk-3",name:"Grade A Milk",type:MILK,value:120}),rainbowMilk1$1=freeze({id:"rainbow-milk-1",name:"Grade C Rainbow Milk",type:MILK,value:60}),rainbowMilk2$1=freeze({id:"rainbow-milk-2",name:"Grade B Rainbow Milk",type:MILK,value:120}),rainbowMilk3$1=freeze({id:"rainbow-milk-3",name:"Grade A Rainbow Milk",type:MILK,value:180}),chocolateMilk$1=freeze({id:"chocolate-milk",name:"Chocolate Milk",type:MILK,value:80}),items$1=Object.freeze(Object.defineProperty({__proto__:null,asparagus:asparagus$1,asparagusSeed:asparagusSeed$1,bronzeOre:bronzeOre$1,carrot:carrot$1,carrotSeed:carrotSeed$1,chocolateMilk:chocolateMilk$1,coal:coal$2,corn:corn$1,cornSeed:cornSeed$1,cowFeed:cowFeed$2,garlic:garlic$1,garlicSeed:garlicSeed$1,goldOre:goldOre$1,grapeCabernetSauvignon,grapeChardonnay,grapeNebbiolo,grapeSauvignonBlanc,grapeSeed:grapeSeed$1,grapeTempranillo,huggingMachine:huggingMachine$1,ironOre:ironOre$1,jalapeno:jalapeno$1,jalapenoSeed:jalapenoSeed$1,milk1:milk1$1,milk2:milk2$1,milk3:milk3$1,olive:olive$1,oliveSeed:oliveSeed$1,onion:onion$1,onionSeed:onionSeed$1,pea:pea$1,peaSeed:peaSeed$1,potato:potato$1,potatoSeed:potatoSeed$1,pumpkin:pumpkin$1,pumpkinSeed:pumpkinSeed$1,rainbowFertilizer:rainbowFertilizer$1,rainbowMilk1:rainbowMilk1$1,rainbowMilk2:rainbowMilk2$1,rainbowMilk3:rainbowMilk3$1,saltRock:saltRock$1,scarecrow:scarecrow$1,silverOre:silverOre$1,soybean:soybean$1,soybeanSeed:soybeanSeed$1,spinach:spinach$1,spinachSeed:spinachSeed$1,sprinkler:sprinkler$1,stone:stone$1,strawberry:strawberry$1,strawberrySeed:strawberrySeed$1,sunflower:sunflower$1,sunflowerSeed:sunflowerSeed$1,sweetPotato:sweetPotato$1,sweetPotatoSeed:sweetPotatoSeed$1,tomato:tomato$1,tomatoSeed:tomatoSeed$1,watermelon:watermelon$1,watermelonSeed:watermelonSeed$1,weed,wheat:wheat$1,wheatSeed:wheatSeed$1},Symbol.toStringTag,{value:"Module"})),itemsMap$2={...Object.keys(items$1).reduce((o,a)=>{const s=items$1[a];return o[s.id]=s,o},{})},itemsMap$1={...itemsMap$2},convertToRecipe=o=>{const a=Object.freeze({type:itemType.CRAFTED_ITEM,value:Object.keys(o.ingredients).reduce((s,$)=>s+RECIPE_INGREDIENT_VALUE_MULTIPLIER*itemsMap$1[$].value*o.ingredients[$],0),...o});return itemsMap$1[o.id]=a,a},salt$1=convertToRecipe({id:"salt",name:"Salt",ingredients:{[saltRock$1.id]:1},condition:o=>(o.itemsSold[saltRock$1.id]||0)>=30,description:"Useful for seasoning food and fermentation.",recipeType:recipeType.KITCHEN}),flour$1=convertToRecipe({id:"flour",name:"Flour",ingredients:{[wheat$1.id]:10},condition:o=>(o.itemsSold[wheat$1.id]||0)>=20,recipeType:recipeType.KITCHEN}),yeast$1=convertToRecipe({id:"yeast",name:"Yeast",ingredients:{[flour$1.id]:5},condition:o=>(o.itemsSold[flour$1.id]||0)>=25,recipeType:recipeType.KITCHEN}),getWineRecipeFromGrape=o=>({...convertToRecipe({id:o.wineId,name:`${grapeVarietyNameMap[o.variety]} Wine`,type:itemType.CRAFTED_ITEM,ingredients:{[o.id]:GRAPES_REQUIRED_FOR_WINE,[yeast$1.id]:getYeastRequiredForWine(o.variety)},recipeType:recipeType.WINE,condition:()=>!1}),variety:o.variety}),bread$1=convertToRecipe({id:"bread",name:"Bread",ingredients:{[flour$1.id]:10,[yeast$1.id]:5},condition:o=>(o.itemsSold[flour$1.id]||0)>=30&&(o.itemsSold[yeast$1.id]||0)>=15,recipeType:recipeType.KITCHEN}),butter$1=convertToRecipe({id:"butter",name:"Butter",ingredients:{[milk3$1.id]:5},condition:o=>(o.itemsSold[milk3$1.id]||0)>=30,recipeType:recipeType.KITCHEN}),sunButter$1=convertToRecipe({id:"sun-butter",name:"Sun Butter",ingredients:{[sunflower$1.id]:25},condition:o=>(o.itemsSold[sunflower$1.id]||0)>=200,recipeType:recipeType.KITCHEN}),oliveOil$1=convertToRecipe({id:"olive-oil",name:"Olive Oil",ingredients:{[olive$1.id]:250},condition:o=>(o.itemsSold[olive$1.id]||0)>=500,recipeType:recipeType.KITCHEN}),cheese$1=convertToRecipe({id:"cheese",name:"Cheese",ingredients:{[milk3$1.id]:8},condition:o=>(o.itemsSold[milk3$1.id]||0)>=20,recipeType:recipeType.KITCHEN}),rainbowCheese$1=convertToRecipe({id:"rainbowCheese",name:"Rainbow Cheese",ingredients:{[rainbowMilk3$1.id]:10},condition:o=>(o.itemsSold[rainbowMilk3$1.id]||0)>=30,recipeType:recipeType.KITCHEN}),chocolate$1=convertToRecipe({id:"chocolate",name:"Chocolate",ingredients:{[chocolateMilk$1.id]:10},condition:o=>(o.itemsSold[chocolateMilk$1.id]||0)>=25,recipeType:recipeType.KITCHEN}),carrotSoup$1=convertToRecipe({id:"carrot-soup",name:"Carrot Soup",ingredients:{[carrot$1.id]:4},condition:o=>(o.itemsSold[carrot$1.id]||0)>=10,recipeType:recipeType.KITCHEN}),jackolantern$1=convertToRecipe({id:"jackolantern",name:"Jack-o'-lantern",ingredients:{[pumpkin$1.id]:1},condition:o=>(o.itemsSold[pumpkin$1.id]||0)>=50,recipeType:recipeType.KITCHEN}),spaghetti$1=convertToRecipe({id:"spaghetti",name:"Spaghetti",ingredients:{[wheat$1.id]:10,[tomato$1.id]:2},condition:o=>(o.itemsSold[wheat$1.id]||0)>=20&&(o.itemsSold[tomato$1.id]||0)>=5,recipeType:recipeType.KITCHEN}),frenchOnionSoup$1=convertToRecipe({id:"french-onion-soup",name:"French Onion Soup",ingredients:{[onion$1.id]:5,[cheese$1.id]:2,[salt$1.id]:2},condition:o=>(o.itemsSold[onion$1.id]||0)>=15&&(o.itemsSold[cheese$1.id]||0)>=10,recipeType:recipeType.KITCHEN}),burger$1=convertToRecipe({id:"burger",name:"Burger",ingredients:{[bread$1.id]:1,[cheese$1.id]:1,[onion$1.id]:1,[soybean$1.id]:12,[spinach$1.id]:1,[tomato$1.id]:1},condition:o=>(o.itemsSold[bread$1.id]||0)>=5&&(o.itemsSold[cheese$1.id]||0)>=5&&(o.itemsSold[onion$1.id]||0)>=5&&(o.itemsSold[soybean$1.id]||0)>=25&&(o.itemsSold[spinach$1.id]||0)>=5&&(o.itemsSold[tomato$1.id]||0)>=5,recipeType:recipeType.KITCHEN}),summerSalad$1=convertToRecipe({id:"summer-salad",name:"Summer Salad",ingredients:{[spinach$1.id]:6,[corn$1.id]:1,[carrot$1.id]:1},condition:o=>(o.itemsSold[spinach$1.id]||0)>=30&&(o.itemsSold[corn$1.id]||0)>5&&(o.itemsSold[carrot$1.id]||0)>5,recipeType:recipeType.KITCHEN}),soyMilk$1=convertToRecipe({id:"soy-milk",name:"Soy Milk",ingredients:{[soybean$1.id]:20},condition:o=>(o.itemsSold[soybean$1.id]||0)>=100,recipeType:recipeType.KITCHEN}),chocolateSoyMilk$1=convertToRecipe({id:"chocolate-soy-milk",name:"Chocolate Soy Milk",ingredients:{[soyMilk$1.id]:1,[chocolate$1.id]:1},condition:o=>(o.itemsSold[soyMilk$1.id]||0)>=5&&(o.itemsSold[chocolate$1.id]||0)>=5,recipeType:recipeType.KITCHEN}),tofu$1=convertToRecipe({id:"tofu",name:"Tofu",ingredients:{[soyMilk$1.id]:4},condition:o=>(o.itemsSold[soyMilk$1.id]||0)>=20,recipeType:recipeType.KITCHEN}),chicknPotPie$1=convertToRecipe({id:"chickn-pot-pie",name:"Chick'n Pot Pie",ingredients:{[tofu$1.id]:6,[pea$1.id]:10,[carrot$1.id]:8,[wheat$1.id]:12,[soyMilk$1.id]:3},condition:o=>(o.itemsSold[tofu$1.id]||0)>=30&&(o.itemsSold[pea$1.id]||0)>=225&&(o.itemsSold[carrot$1.id]||0)>=300&&(o.itemsSold[wheat$1.id]||0)>=425&&(o.itemsSold[soyMilk$1.id]||0)>=15,recipeType:recipeType.KITCHEN}),hotSauce$1=convertToRecipe({id:"hot-sauce",name:"Hot Sauce",ingredients:{[jalapeno$1.id]:10,[salt$1.id]:1},condition:o=>(o.itemsSold[jalapeno$1.id]||0)>=50,recipeType:recipeType.KITCHEN}),salsa$1=convertToRecipe({id:"salsa",name:"Salsa",ingredients:{[jalapeno$1.id]:1,[onion$1.id]:1,[tomato$1.id]:1,[corn$1.id]:1},condition:o=>(o.itemsSold[jalapeno$1.id]||0)>=5&&(o.itemsSold[onion$1.id]||0)>=5&&(o.itemsSold[tomato$1.id]||0)>=5&&(o.itemsSold[corn$1.id]||0)>=5,recipeType:recipeType.KITCHEN}),spicyCheese$1=convertToRecipe({id:"spicy-cheese",name:"Spicy Cheese",ingredients:{[jalapeno$1.id]:4,[milk3$1.id]:10},condition:o=>(o.itemsSold[jalapeno$1.id]||0)>=20&&(o.itemsSold[milk3$1.id]||0)>=50,recipeType:recipeType.KITCHEN}),vegetableOil$1=convertToRecipe({id:"vegetable-oil",name:"Vegetable Oil",ingredients:{[soybean$1.id]:350},condition:o=>(o.itemsSold[soybean$1.id]||0)>=900,recipeType:recipeType.KITCHEN}),friedTofu$1=convertToRecipe({id:"fried-tofu",name:"Deep Fried Tofu",ingredients:{[tofu$1.id]:1,[vegetableOil$1.id]:2},condition:o=>(o.itemsSold[tofu$1.id]||0)>=50&&(o.itemsSold[vegetableOil$1.id]||0)>=50,recipeType:recipeType.KITCHEN}),spicyPickledGarlic$1=convertToRecipe({id:"spicy-pickled-garlic",name:"Spicy Pickled Garlic",ingredients:{[jalapeno$1.id]:2,[garlic$1.id]:5},condition:o=>(o.itemsSold[jalapeno$1.id]||0)>=12&&(o.itemsSold[garlic$1.id]||0)>=25,recipeType:recipeType.KITCHEN}),garlicFries$1=convertToRecipe({id:"garlic-fries",name:"Garlic Fries",ingredients:{[potato$1.id]:5,[garlic$1.id]:3,[vegetableOil$1.id]:1,[salt$1.id]:2},condition:o=>(o.itemsSold[potato$1.id]||0)>=50&&(o.itemsSold[garlic$1.id]||0)>=30,recipeType:recipeType.KITCHEN}),garlicBread$1=convertToRecipe({id:"garlic-bread",name:"Garlic Bread",ingredients:{[bread$1.id]:1,[garlic$1.id]:5,[oliveOil$1.id]:1},condition:o=>(o.itemsSold[bread$1.id]||0)>=30&&(o.itemsSold[oliveOil$1.id]||0)>=20&&(o.itemsSold[garlic$1.id]||0)>=50,recipeType:recipeType.KITCHEN}),strawberryJam$1=convertToRecipe({id:"strawberry-jam",name:"Strawberry Jam",ingredients:{[strawberry$1.id]:10},condition:o=>(o.itemsSold[strawberry$1.id]||0)>=60,recipeType:recipeType.KITCHEN}),popcorn$1=convertToRecipe({id:"popcorn",name:"Popcorn",ingredients:{[corn$1.id]:2,[butter$1.id]:1},condition:o=>(o.itemsSold[corn$1.id]||0)>=12&&(o.itemsSold[butter$1.id]||0)>=6,recipeType:recipeType.KITCHEN}),pumpkinPie$1=convertToRecipe({id:"pumpkin-pie",name:"Pumpkin Pie",ingredients:{[pumpkin$1.id]:4,[wheat$1.id]:10,[butter$1.id]:2},condition:o=>(o.itemsSold[pumpkin$1.id]||0)>=200&&(o.itemsSold[wheat$1.id]||0)>=250&&(o.itemsSold[butter$1.id]||0)>=75,recipeType:recipeType.KITCHEN}),sweetPotatoPie$1=convertToRecipe({id:"sweet-potato-pie",name:"Sweet Potato Pie",ingredients:{[sweetPotato$1.id]:6,[wheat$1.id]:10,[butter$1.id]:2},condition:o=>(o.itemsSold[sweetPotato$1.id]||0)>=200&&(o.itemsSold[wheat$1.id]||0)>=250&&(o.itemsSold[butter$1.id]||0)>=75,recipeType:recipeType.KITCHEN}),sweetPotatoFries$1=convertToRecipe({id:"sweet-potato-fries",name:"Sweet Potato Fries",ingredients:{[sweetPotato$1.id]:10,[vegetableOil$1.id]:1,[salt$1.id]:1},condition:o=>(o.itemsSold[sweetPotato$1.id]||0)>=100,recipeType:recipeType.KITCHEN}),onionRings$1=convertToRecipe({id:"onion-rings",name:"Onion Rings",ingredients:{[onion$1.id]:1,[vegetableOil$1.id]:1,[wheat$1.id]:5,[soyMilk$1.id]:1,[salt$1.id]:3},condition:o=>(o.itemsSold[onion$1.id]||0)>=50&&(o.itemsSold[vegetableOil$1.id]||0)>20&&(o.itemsSold[soyMilk$1.id]||0)>20&&(o.itemsSold[wheat$1.id]||0)>30,recipeType:recipeType.KITCHEN}),bronzeIngot$2=convertToRecipe({id:"bronze-ingot",name:"Bronze Ingot",ingredients:{[bronzeOre$1.id]:5,[coal$2.id]:5},condition:o=>o.purchasedSmelter>0&&(o.itemsSold[bronzeOre$1.id]||0)>=50,recipeType:recipeType.FORGE}),ironIngot$2=convertToRecipe({id:"iron-ingot",name:"Iron Ingot",ingredients:{[ironOre$1.id]:5,[coal$2.id]:12},condition:o=>o.purchasedSmelter>0&&(o.itemsSold[ironOre$1.id]||0)>=50,recipeType:recipeType.FORGE}),silverIngot$2=convertToRecipe({id:"silver-ingot",name:"Silver Ingot",ingredients:{[silverOre$1.id]:5,[coal$2.id]:8},condition:o=>o.purchasedSmelter>0&&(o.itemsSold[silverOre$1.id]||0)>=50,recipeType:recipeType.FORGE}),goldIngot$2=convertToRecipe({id:"gold-ingot",name:"Gold Ingot",ingredients:{[goldOre$1.id]:5,[coal$2.id]:10},condition:o=>o.purchasedSmelter>0&&(o.itemsSold[goldOre$1.id]||0)>=50,recipeType:recipeType.FORGE}),compost$1=convertToRecipe({id:"compost",name:"Compost",ingredients:{[weed.id]:25},condition:o=>o.purchasedComposter>0&&(o.itemsSold[weed.id]||0)>=100,description:"Can be used to make fertilizer.",recipeType:recipeType.RECYCLING,type:itemType.CRAFTED_ITEM}),fertilizer$1=convertToRecipe({id:"fertilizer",name:"Fertilizer",ingredients:{[compost$1.id]:10},condition:o=>o.purchasedComposter>0&&(o.itemsSold[compost$1.id]||0)>=10,description:"Helps crops grow and mature a little faster.",enablesFieldMode:fieldMode.FERTILIZE,recipeType:recipeType.RECYCLING,type:itemType.FERTILIZER,value:25}),wineChardonnay=getWineRecipeFromGrape({...grapeChardonnay}),wineSauvignonBlanc=getWineRecipeFromGrape({...grapeSauvignonBlanc}),wineCabernetSauvignon=getWineRecipeFromGrape({...grapeCabernetSauvignon}),wineTempranillo=getWineRecipeFromGrape({...grapeTempranillo}),wineNebbiolo=getWineRecipeFromGrape({...grapeNebbiolo}),recipes=Object.freeze(Object.defineProperty({__proto__:null,bread:bread$1,bronzeIngot:bronzeIngot$2,burger:burger$1,butter:butter$1,carrotSoup:carrotSoup$1,cheese:cheese$1,chicknPotPie:chicknPotPie$1,chocolate:chocolate$1,chocolateSoyMilk:chocolateSoyMilk$1,compost:compost$1,fertilizer:fertilizer$1,flour:flour$1,frenchOnionSoup:frenchOnionSoup$1,friedTofu:friedTofu$1,garlicBread:garlicBread$1,garlicFries:garlicFries$1,goldIngot:goldIngot$2,hotSauce:hotSauce$1,ironIngot:ironIngot$2,jackolantern:jackolantern$1,oliveOil:oliveOil$1,onionRings:onionRings$1,popcorn:popcorn$1,pumpkinPie:pumpkinPie$1,rainbowCheese:rainbowCheese$1,salsa:salsa$1,salt:salt$1,silverIngot:silverIngot$2,soyMilk:soyMilk$1,spaghetti:spaghetti$1,spicyCheese:spicyCheese$1,spicyPickledGarlic:spicyPickledGarlic$1,strawberryJam:strawberryJam$1,summerSalad:summerSalad$1,sunButter:sunButter$1,sweetPotatoFries:sweetPotatoFries$1,sweetPotatoPie:sweetPotatoPie$1,tofu:tofu$1,vegetableOil:vegetableOil$1,wineCabernetSauvignon,wineChardonnay,wineNebbiolo,wineSauvignonBlanc,wineTempranillo,yeast:yeast$1},Symbol.toStringTag,{value:"Module"})),coalNeededForIngots=(o,a=1)=>{switch(o){case bronzeIngot$2.id:return a*2;case ironIngot$2.id:return Math.round(a*3.5);case silverIngot$2.id:return Math.round(a*2.5);case goldIngot$2.id:return a*3;default:return a}},{bronzeIngot:bronzeIngot$1,ironIngot:ironIngot$1,silverIngot:silverIngot$1,goldIngot:goldIngot$1}=recipes,{coal:coal$1}=items$1,upgrades={[toolType.HOE]:{[toolLevel.DEFAULT]:{id:"hoe-default",name:"Basic Hoe",nextLevel:toolLevel.BRONZE},[toolLevel.BRONZE]:{id:"hoe-bronze",description:"Gives 25% chance to retrieve seeds when digging up crops",name:"Bronze Hoe",ingredients:{[bronzeIngot$1.id]:8,[coal$1.id]:coalNeededForIngots(bronzeIngot$1.id,8)},nextLevel:toolLevel.IRON},[toolLevel.IRON]:{id:"hoe-iron",description:"Gives 50% chance to retrieve seeds when digging up crops",name:"Iron Hoe",ingredients:{[ironIngot$1.id]:8,[coal$1.id]:coalNeededForIngots(ironIngot$1.id,8)},nextLevel:toolLevel.SILVER},[toolLevel.SILVER]:{id:"hoe-silver",description:"Gives 75% chance to retrieve seeds when digging up crops",name:"Silver Hoe",ingredients:{[silverIngot$1.id]:8,[coal$1.id]:coalNeededForIngots(silverIngot$1.id,8)},nextLevel:toolLevel.GOLD},[toolLevel.GOLD]:{id:"hoe-gold",description:"Gives 100% chance to retrieve seeds when digging up crops",name:"Gold Hoe",ingredients:{[goldIngot$1.id]:8,[coal$1.id]:coalNeededForIngots(goldIngot$1.id,8)},isMaxLevel:!0}},[toolType.SCYTHE]:{[toolLevel.DEFAULT]:{id:"scythe-default",name:"Basic Scythe",nextLevel:toolLevel.BRONZE},[toolLevel.BRONZE]:{id:"scythe-bronze",description:"Increases crop yield by 1 when harvesting",name:"Bronze Scythe",ingredients:{[bronzeIngot$1.id]:10,[coal$1.id]:coalNeededForIngots(bronzeIngot$1.id,10)},nextLevel:toolLevel.IRON},[toolLevel.IRON]:{id:"scythe-iron",description:"Increases crop yield by 2 when harvesting",name:"Iron Scythe",ingredients:{[ironIngot$1.id]:10,[coal$1.id]:coalNeededForIngots(ironIngot$1.id,10)},nextLevel:toolLevel.SILVER},[toolLevel.SILVER]:{id:"scythe-silver",description:"Increases crop yield by 3 when harvesting",name:"Silver Scythe",ingredients:{[silverIngot$1.id]:10,[coal$1.id]:coalNeededForIngots(silverIngot$1.id,10)},nextLevel:toolLevel.GOLD},[toolLevel.GOLD]:{id:"scythe-gold",description:"Increases crop yield by 4 when harvesting",name:"Gold Scythe",ingredients:{[goldIngot$1.id]:10,[coal$1.id]:coalNeededForIngots(goldIngot$1.id,10)},isMaxLevel:!0}},[toolType.SHOVEL]:{[toolLevel.DEFAULT]:{id:"shovel-default",name:"Basic Shovel",nextLevel:toolLevel.BRONZE},[toolLevel.BRONZE]:{id:"shovel-bronze",description:"Increases chance of finding ore",name:"Bronze Shovel",ingredients:{[bronzeIngot$1.id]:15,[coal$1.id]:coalNeededForIngots(bronzeIngot$1.id,15)},nextLevel:toolLevel.IRON},[toolLevel.IRON]:{id:"shovel-iron",description:"Increases chance of finding ore",name:"Iron Shovel",ingredients:{[ironIngot$1.id]:15,[coal$1.id]:coalNeededForIngots(ironIngot$1.id,15)},nextLevel:toolLevel.SILVER},[toolLevel.SILVER]:{id:"shovel-silver",description:"Increases chance of finding ore",name:"Silver Shovel",ingredients:{[silverIngot$1.id]:15,[coal$1.id]:coalNeededForIngots(silverIngot$1.id,15)},nextLevel:toolLevel.GOLD},[toolLevel.GOLD]:{id:"shovel-gold",description:"Increases chance of finding ore",name:"Gold Shovel",ingredients:{[goldIngot$1.id]:15,[coal$1.id]:coalNeededForIngots(goldIngot$1.id,15)},isMaxLevel:!0}}};for(let o in upgrades)for(let a in upgrades[o])Object.assign(upgrades[o][a],{toolType:o,value:0,doesPriceFluctuate:!1,type:itemType.TOOL_UPGRADE,level:a});const{GRAPE}=cropType,recipeCategories={[recipeType.KITCHEN]:{},[recipeType.FORGE]:{},[recipeType.FERMENTATION]:{},[recipeType.RECYCLING]:{},[recipeType.WINE]:{}},recipesMap={};for(const o of Object.keys(recipes)){const a=recipes[o];recipeCategories[a.recipeType][a.id]=a,recipesMap[a.id]=a}const upgradesMap={};for(let o of Object.keys(upgrades))for(let a of Object.values(upgrades[o]))upgradesMap[a.id]=a;const itemsMap={...itemsMap$2,...recipesMap,...upgradesMap},fermentableItemsMap=Object.fromEntries(Object.entries(itemsMap).filter(([o])=>"daysToFerment"in itemsMap[o])),cropItemIdToSeedItemMap=Object.entries(itemsMap$2).reduce((o,[a,s])=>{const{growsInto:$}=s;if($){const j=Array.isArray($)?$:[$];for(const _e of j)o[_e]=itemsMap$2[a]}return o},{});GRAPE+"",grapeSeed$1.growsInto;var alea$1={exports:{}};alea$1.exports;(function(o){(function(a,s,$){function j(rt){var nt=this,it=tt();nt.next=function(){var ot=2091639*nt.s0+nt.c*23283064365386963e-26;return nt.s0=nt.s1,nt.s1=nt.s2,nt.s2=ot-(nt.c=ot|0)},nt.c=1,nt.s0=it(" "),nt.s1=it(" "),nt.s2=it(" "),nt.s0-=it(rt),nt.s0<0&&(nt.s0+=1),nt.s1-=it(rt),nt.s1<0&&(nt.s1+=1),nt.s2-=it(rt),nt.s2<0&&(nt.s2+=1),it=null}function _e(rt,nt){return nt.c=rt.c,nt.s0=rt.s0,nt.s1=rt.s1,nt.s2=rt.s2,nt}function et(rt,nt){var it=new j(rt),ot=nt&&nt.state,at=it.next;return at.int32=function(){return it.next()*4294967296|0},at.double=function(){return at()+(at()*2097152|0)*11102230246251565e-32},at.quick=at,ot&&(typeof ot=="object"&&_e(ot,it),at.state=function(){return _e(it,{})}),at}function tt(){var rt=4022871197,nt=function(it){it=String(it);for(var ot=0;ot<it.length;ot++){rt+=it.charCodeAt(ot);var at=.02519603282416938*rt;rt=at>>>0,at-=rt,at*=rt,rt=at>>>0,at-=rt,rt+=at*4294967296}return(rt>>>0)*23283064365386963e-26};return nt}s&&s.exports?s.exports=et:this.alea=et})(commonjsGlobal$1,o)})(alea$1);var aleaExports=alea$1.exports,xor128$1={exports:{}};xor128$1.exports;(function(o){(function(a,s,$){function j(tt){var rt=this,nt="";rt.x=0,rt.y=0,rt.z=0,rt.w=0,rt.next=function(){var ot=rt.x^rt.x<<11;return rt.x=rt.y,rt.y=rt.z,rt.z=rt.w,rt.w^=rt.w>>>19^ot^ot>>>8},tt===(tt|0)?rt.x=tt:nt+=tt;for(var it=0;it<nt.length+64;it++)rt.x^=nt.charCodeAt(it)|0,rt.next()}function _e(tt,rt){return rt.x=tt.x,rt.y=tt.y,rt.z=tt.z,rt.w=tt.w,rt}function et(tt,rt){var nt=new j(tt),it=rt&&rt.state,ot=function(){return(nt.next()>>>0)/4294967296};return ot.double=function(){do var at=nt.next()>>>11,st=(nt.next()>>>0)/4294967296,ut=(at+st)/(1<<21);while(ut===0);return ut},ot.int32=nt.next,ot.quick=ot,it&&(typeof it=="object"&&_e(it,nt),ot.state=function(){return _e(nt,{})}),ot}s&&s.exports?s.exports=et:this.xor128=et})(commonjsGlobal$1,o)})(xor128$1);var xor128Exports=xor128$1.exports,xorwow$1={exports:{}};xorwow$1.exports;(function(o){(function(a,s,$){function j(tt){var rt=this,nt="";rt.next=function(){var ot=rt.x^rt.x>>>2;return rt.x=rt.y,rt.y=rt.z,rt.z=rt.w,rt.w=rt.v,(rt.d=rt.d+362437|0)+(rt.v=rt.v^rt.v<<4^(ot^ot<<1))|0},rt.x=0,rt.y=0,rt.z=0,rt.w=0,rt.v=0,tt===(tt|0)?rt.x=tt:nt+=tt;for(var it=0;it<nt.length+64;it++)rt.x^=nt.charCodeAt(it)|0,it==nt.length&&(rt.d=rt.x<<10^rt.x>>>4),rt.next()}function _e(tt,rt){return rt.x=tt.x,rt.y=tt.y,rt.z=tt.z,rt.w=tt.w,rt.v=tt.v,rt.d=tt.d,rt}function et(tt,rt){var nt=new j(tt),it=rt&&rt.state,ot=function(){return(nt.next()>>>0)/4294967296};return ot.double=function(){do var at=nt.next()>>>11,st=(nt.next()>>>0)/4294967296,ut=(at+st)/(1<<21);while(ut===0);return ut},ot.int32=nt.next,ot.quick=ot,it&&(typeof it=="object"&&_e(it,nt),ot.state=function(){return _e(nt,{})}),ot}s&&s.exports?s.exports=et:this.xorwow=et})(commonjsGlobal$1,o)})(xorwow$1);var xorwowExports=xorwow$1.exports,xorshift7$1={exports:{}};xorshift7$1.exports;(function(o){(function(a,s,$){function j(tt){var rt=this;rt.next=function(){var it=rt.x,ot=rt.i,at,st;return at=it[ot],at^=at>>>7,st=at^at<<24,at=it[ot+1&7],st^=at^at>>>10,at=it[ot+3&7],st^=at^at>>>3,at=it[ot+4&7],st^=at^at<<7,at=it[ot+7&7],at=at^at<<13,st^=at^at<<9,it[ot]=st,rt.i=ot+1&7,st};function nt(it,ot){var at,st=[];if(ot===(ot|0))st[0]=ot;else for(ot=""+ot,at=0;at<ot.length;++at)st[at&7]=st[at&7]<<15^ot.charCodeAt(at)+st[at+1&7]<<13;for(;st.length<8;)st.push(0);for(at=0;at<8&&st[at]===0;++at);for(at==8?st[7]=-1:st[at],it.x=st,it.i=0,at=256;at>0;--at)it.next()}nt(rt,tt)}function _e(tt,rt){return rt.x=tt.x.slice(),rt.i=tt.i,rt}function et(tt,rt){tt==null&&(tt=+new Date);var nt=new j(tt),it=rt&&rt.state,ot=function(){return(nt.next()>>>0)/4294967296};return ot.double=function(){do var at=nt.next()>>>11,st=(nt.next()>>>0)/4294967296,ut=(at+st)/(1<<21);while(ut===0);return ut},ot.int32=nt.next,ot.quick=ot,it&&(it.x&&_e(it,nt),ot.state=function(){return _e(nt,{})}),ot}s&&s.exports?s.exports=et:this.xorshift7=et})(commonjsGlobal$1,o)})(xorshift7$1);var xorshift7Exports=xorshift7$1.exports,xor4096$1={exports:{}};xor4096$1.exports;(function(o){(function(a,s,$){function j(tt){var rt=this;rt.next=function(){var it=rt.w,ot=rt.X,at=rt.i,st,ut;return rt.w=it=it+1640531527|0,ut=ot[at+34&127],st=ot[at=at+1&127],ut^=ut<<13,st^=st<<17,ut^=ut>>>15,st^=st>>>12,ut=ot[at]=ut^st,rt.i=at,ut+(it^it>>>16)|0};function nt(it,ot){var at,st,ut,ct,ft,dt=[],mt=128;for(ot===(ot|0)?(st=ot,ot=null):(ot=ot+"\0",st=0,mt=Math.max(mt,ot.length)),ut=0,ct=-32;ct<mt;++ct)ot&&(st^=ot.charCodeAt((ct+32)%ot.length)),ct===0&&(ft=st),st^=st<<10,st^=st>>>15,st^=st<<4,st^=st>>>13,ct>=0&&(ft=ft+1640531527|0,at=dt[ct&127]^=st+ft,ut=at==0?ut+1:0);for(ut>=128&&(dt[(ot&&ot.length||0)&127]=-1),ut=127,ct=4*128;ct>0;--ct)st=dt[ut+34&127],at=dt[ut=ut+1&127],st^=st<<13,at^=at<<17,st^=st>>>15,at^=at>>>12,dt[ut]=st^at;it.w=ft,it.X=dt,it.i=ut}nt(rt,tt)}function _e(tt,rt){return rt.i=tt.i,rt.w=tt.w,rt.X=tt.X.slice(),rt}function et(tt,rt){tt==null&&(tt=+new Date);var nt=new j(tt),it=rt&&rt.state,ot=function(){return(nt.next()>>>0)/4294967296};return ot.double=function(){do var at=nt.next()>>>11,st=(nt.next()>>>0)/4294967296,ut=(at+st)/(1<<21);while(ut===0);return ut},ot.int32=nt.next,ot.quick=ot,it&&(it.X&&_e(it,nt),ot.state=function(){return _e(nt,{})}),ot}s&&s.exports?s.exports=et:this.xor4096=et})(commonjsGlobal$1,o)})(xor4096$1);var xor4096Exports=xor4096$1.exports,tychei$1={exports:{}};tychei$1.exports;(function(o){(function(a,s,$){function j(tt){var rt=this,nt="";rt.next=function(){var ot=rt.b,at=rt.c,st=rt.d,ut=rt.a;return ot=ot<<25^ot>>>7^at,at=at-st|0,st=st<<24^st>>>8^ut,ut=ut-ot|0,rt.b=ot=ot<<20^ot>>>12^at,rt.c=at=at-st|0,rt.d=st<<16^at>>>16^ut,rt.a=ut-ot|0},rt.a=0,rt.b=0,rt.c=-1640531527,rt.d=1367130551,tt===Math.floor(tt)?(rt.a=tt/4294967296|0,rt.b=tt|0):nt+=tt;for(var it=0;it<nt.length+20;it++)rt.b^=nt.charCodeAt(it)|0,rt.next()}function _e(tt,rt){return rt.a=tt.a,rt.b=tt.b,rt.c=tt.c,rt.d=tt.d,rt}function et(tt,rt){var nt=new j(tt),it=rt&&rt.state,ot=function(){return(nt.next()>>>0)/4294967296};return ot.double=function(){do var at=nt.next()>>>11,st=(nt.next()>>>0)/4294967296,ut=(at+st)/(1<<21);while(ut===0);return ut},ot.int32=nt.next,ot.quick=ot,it&&(typeof it=="object"&&_e(it,nt),ot.state=function(){return _e(nt,{})}),ot}s&&s.exports?s.exports=et:this.tychei=et})(commonjsGlobal$1,o)})(tychei$1);var tycheiExports=tychei$1.exports,seedrandom$2={exports:{}};(function(o){(function(a,s,$){var j=256,_e=6,et=52,tt="random",rt=$.pow(j,_e),nt=$.pow(2,et),it=nt*2,ot=j-1,at;function st(yt,pt,ht){var At=[];pt=pt==!0?{entropy:!0}:pt||{};var St=dt(ft(pt.entropy?[yt,vt(s)]:yt??mt(),3),At),Ct=new ut(At),Mt=function(){for(var Dt=Ct.g(_e),Et=rt,wt=0;Dt<nt;)Dt=(Dt+wt)*j,Et*=j,wt=Ct.g(1);for(;Dt>=it;)Dt/=2,Et/=2,wt>>>=1;return(Dt+wt)/Et};return Mt.int32=function(){return Ct.g(4)|0},Mt.quick=function(){return Ct.g(4)/4294967296},Mt.double=Mt,dt(vt(Ct.S),s),(pt.pass||ht||function(Dt,Et,wt,jt){return jt&&(jt.S&&ct(jt,Ct),Dt.state=function(){return ct(Ct,{})}),wt?($[tt]=Dt,Et):Dt})(Mt,St,"global"in pt?pt.global:this==$,pt.state)}function ut(yt){var pt,ht=yt.length,At=this,St=0,Ct=At.i=At.j=0,Mt=At.S=[];for(ht||(yt=[ht++]);St<j;)Mt[St]=St++;for(St=0;St<j;St++)Mt[St]=Mt[Ct=ot&Ct+yt[St%ht]+(pt=Mt[St])],Mt[Ct]=pt;(At.g=function(Dt){for(var Et,wt=0,jt=At.i,Bt=At.j,Ht=At.S;Dt--;)Et=Ht[jt=ot&jt+1],wt=wt*j+Ht[ot&(Ht[jt]=Ht[Bt=ot&Bt+Et])+(Ht[Bt]=Et)];return At.i=jt,At.j=Bt,wt})(j)}function ct(yt,pt){return pt.i=yt.i,pt.j=yt.j,pt.S=yt.S.slice(),pt}function ft(yt,pt){var ht=[],At=typeof yt,St;if(pt&&At=="object")for(St in yt)try{ht.push(ft(yt[St],pt-1))}catch{}return ht.length?ht:At=="string"?yt:yt+"\0"}function dt(yt,pt){for(var ht=yt+"",At,St=0;St<ht.length;)pt[ot&St]=ot&(At^=pt[ot&St]*19)+ht.charCodeAt(St++);return vt(pt)}function mt(){try{var yt;return at&&(yt=at.randomBytes)?yt=yt(j):(yt=new Uint8Array(j),(a.crypto||a.msCrypto).getRandomValues(yt)),vt(yt)}catch{var pt=a.navigator,ht=pt&&pt.plugins;return[+new Date,a,ht,a.screen,vt(s)]}}function vt(yt){return String.fromCharCode.apply(0,yt)}if(dt($.random(),s),o.exports){o.exports=st;try{at=require$$0$3}catch{}}else $["seed"+tt]=st})(typeof self<"u"?self:commonjsGlobal$1,[],Math)})(seedrandom$2);var seedrandomExports=seedrandom$2.exports,alea=aleaExports,xor128=xor128Exports,xorwow=xorwowExports,xorshift7=xorshift7Exports,xor4096=xor4096Exports,tychei=tycheiExports,sr=seedrandomExports;sr.alea=alea;sr.xor128=xor128;sr.xorwow=xorwow;sr.xorshift7=xorshift7;sr.xor4096=xor4096;sr.tychei=tychei;var seedrandom=sr;const seedrandom$1=getDefaultExportFromCjs(seedrandom);class RandomNumberService{constructor(){Wr(this,"seededRandom",null);var s;const a=new URLSearchParams((s=window$1.location)==null?void 0:s.search).get("seed");a&&this.seedRandomNumber(a)}seedRandomNumber(a){this.seededRandom=seedrandom$1(a)}generateRandomNumber(){return this.seededRandom?this.seededRandom():Math.random()}unseedRandomNumber(){this.seededRandom=null}isRandomNumberLessThan(a){return this.generateRandomNumber()<=a}}const randomNumberService=new RandomNumberService,random=()=>randomNumberService.generateRandomNumber(),generateValueAdjustments=(o={},a={})=>Object.keys(itemsMap).reduce((s,$)=>(itemsMap[$].doesPriceFluctuate&&(o[$]?s[$]=.5:a[$]?s[$]=1.5:s[$]=random()+.5),s),{}),fruitNames=["Akee","Apple","Apricot","Avocado","Açaí","Banana","Bilberry","Blackberry","Blackcurrant","Blueberry","Boysenberry","Cantaloupe","Cherimoya","Cherry","Chico","Clementine","Cloudberry","Coconut","Crabapple","Cranberry","Cucumber","Currant","Damson","Durian","Elderberry","Feijoa","Fig","Goji","Gooseberry","Grape","Grapefruit","Guava","Honeyberry","Honeydew","Huckleberry","Jabuticaba","Jackfruit","Jambul","Jostaberry","Jujube","Juniper","Kiwano","Kiwi","Kumquat","Lemon","Lime","Longan","Loquat","Lychee","Mandarine","Mango","Mangosteen","Marion","Melon","Mulberry","Nance","Nectarine","Olive","Orange","Papaya","Peach","Pear","Persimmon","Pineapple","Pineberry","Pitaya","Plantain","Plum","Plumcot","Pomegranate","Pomelo","Prune","Pumpkin","Quince","Raisin","Rambutan","Raspberry","Salak","Salal","Salmonberry","Sapote","Satsuma","Soursop","Strawberry","Surinam","Tamarillo","Tamarind","Tangerine","Tomato","Watermelon","Yuzu","Zucchini"],__vite_import_meta_env__={BASE_URL:"./",DEV:!1,MODE:"production",PROD:!0,SSR:!1,VITE_API_ROOT:"https://farmhand.vercel.app/",VITE_FARMHAND_PACKAGE_VERSION:"1.19.3",VITE_NAME:"@jeremyckahn/farmhand",VITE_TURN_CREDENTIAL:"",VITE_TURN_USERNAME:""},endpoints={getMarketData:"https://farmhand.vercel.app/api/get-market-data",postDayResults:"https://farmhand.vercel.app/api/post-day-results"},features=Object.keys(__vite_import_meta_env__??{}).reduce((o,a)=>{const s=a.match(/VITE_ENABLE_(.*)/);return s&&(o[s[1]]=!0),o},{});var Bo;const searchParams=new URLSearchParams((Bo=window$1.location)==null?void 0:Bo.search);for(const o of searchParams.keys()){const a=o.match(/enable_(.*)/);a&&(features[a[1]]=!0)}const rtcConfig={iceServers:[{urls:"stun:stun.relay.metered.ca:80"}]},relayUrls=__vite_import_meta_env__!=null&&__vite_import_meta_env__.VITE_TRACKER_URL?[__vite_import_meta_env__==null?void 0:__vite_import_meta_env__.VITE_TRACKER_URL]:void 0,levels=[];levels[1]={unlocksShopItem:carrotSeed$1.id};levels[2]={unlocksShopItem:spinachSeed$1.id};levels[3]={unlocksShopItem:fertilizer$1.id};levels[4]={unlocksShopItem:pumpkinSeed$1.id};levels[5]={unlocksShopItem:sprinkler$1.id};levels[6]={unlocksTool:toolType.SHOVEL};levels[8]={increasesSprinklerRange:!0};levels[10]={unlocksShopItem:cornSeed$1.id};levels[12]={increasesSprinklerRange:!0};levels[14]={unlocksShopItem:potatoSeed$1.id};features.FOREST&&(levels[15]={unlocksStageFocusType:stageFocusType.FOREST});levels[16]={unlocksShopItem:onionSeed$1.id};levels[18]={unlocksShopItem:soybeanSeed$1.id};levels[20]={unlocksShopItem:wheatSeed$1.id};levels[22]={unlocksShopItem:tomatoSeed$1.id};levels[24]={unlocksShopItem:asparagusSeed$1.id};levels[26]={unlocksShopItem:jalapenoSeed$1.id};levels[28]={unlocksShopItem:watermelonSeed$1.id};levels[30]={unlocksShopItem:peaSeed$1.id};levels[32]={unlocksShopItem:strawberrySeed$1.id};levels[34]={unlocksShopItem:garlicSeed$1.id};levels[36]={unlocksShopItem:sweetPotatoSeed$1.id};levels[38]={unlocksShopItem:oliveSeed$1.id};levels[40]={unlocksShopItem:sunflowerSeed$1.id};levels[42]={unlocksShopItem:grapeSeed$1.id};for(let o=0;o<levels.length;o++)levels[o]={id:o,...levels[o]};Object.freeze(levels);const unlockableItems=levels.reduce((o,{id:a,unlocksShopItem:s})=>(s&&(o[s]=a),o),{}),itemUnlockLevels=Object.entries(unlockableItems).reduce((o,[a,s])=>(o[s]=a,o),{}),inventory$1=[cowFeed$2,huggingMachine$1],inventory=[asparagusSeed$1,carrotSeed$1,cornSeed$1,grapeSeed$1,garlicSeed$1,jalapenoSeed$1,oliveSeed$1,onionSeed$1,peaSeed$1,potatoSeed$1,pumpkinSeed$1,soybeanSeed$1,spinachSeed$1,sunflowerSeed$1,strawberrySeed$1,sweetPotatoSeed$1,tomatoSeed$1,watermelonSeed$1,wheatSeed$1,fertilizer$1,scarecrow$1,sprinkler$1],itemIds$1=new Set(inventory.map(o=>o.id)),wateredPlot="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABbklEQVRIia1WvY3GIAz15ToqRqCmZoAMwT4R+3iJ66lTMwIjXGX04tjJp9NZQgFsnv1sfkL0gdRaj0/sPhIN5oH/yekTmOh0/239hkpmbhYQMzcNoJ1Y64mIvrQSjVC8ecvuwsDyrI2IiEopxxiDxhgLRMZPQSwGaFRKWeOUEglYSukCiDaix0wsB+hkjEG994ZjCwhFbGQeM/CtGcQYKYSwxxjXeM5JvfeWc17zzNxCCPuc8+I8xkg55/08zx+XgSc6RcgImSGDzQIXQ/x64LIOwTEjm7drtBMB0c5Qb8mmq64jk37vvWkG2O+93w4jkVEDTdPKse5bzAXndpJF+QSimXrgi4G3573rwcu3u4twEqNGx1gPLLbeDO4uqrUemGthgKBSaLyLiGgVGLNxu001fbwuvPRYRdcZuZwDZm4S6dPVjKlBRxqcSJ0D/fUcWGDM3KRdgnt6/rwXTLcnHLIm316utzf5X/9C3oL6BQBimEemYBpmAAAAAElFTkSuQmCC",fertilizedPlot="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAVklEQVRYhe2QwREAIAjD2MVBnc65dAUOi+0J+fSZXM2aX1hz7GcS71KkkIhbKSSGGpEll4jQfyBbrh9RVy4R0Q/0AyUecEGVfx0Roq4cFQGFIvXGNFEOnwmdSclbLhUAAAAASUVORK5CYII=",rainbowFertilizedPlot="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAkUlEQVRYhe3Quw2AMAxF0ezDFizDCjTMwLI0VKaBSFhyEht/pITXuDxXTulfL4NjBntkn+B1b5S6NmgjvsIijyBRJo6vToQQZ0WY4XB+iOgCb4kwx1kRVngpYlw8R1jjGxQ+EInXItRwyQdccCpCHed8wBXHESH4s1C8FiHGNSJccRwxHp4XitdiXFBqIWiPuwDmWChFXQDxHwAAAABJRU5ErkJggg==",shoveledPlot="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAACXBIWXMAAAsTAAALEwEAmpwYAAABXklEQVRYheWYPQ7CMAyFTRcGxMaRei/Ue3EXLoBYqg6dyhAZue6Lk1T5oeJJVURckk8vdtSE6MgaelqGnpaSc5xCAL7Y/eH+q9/hfjSGjiUBIZhxdu31HBrWlgW2CUgQBkBiKP2OhpVxHUNgXSzMa1q3z7d7R/eP8/rRcLIPrUKnOxAMEdHt4iYNtQgejc9zaKgvEAcsZ2KhLMiQoENSeyFQi5zSLnmBcjizx6lOEjJxTogYpzZAXH5cliVhUFVKU5o4ZDkFc6gGjC+XIFBzh2rnkJXY3rJvsVxEtP6EkLt0LYd4VXiVfs4hc6dulkM6qUs7ZAlujKUdCgIh1cghndAmUGko0yGUQ0TlHUr+HmrmEErqplWGluyvqswSPPZaB8TQJCkwyWWPxIPqFsVTl2sDJHOJH/k7NzwSPPTHXrn4zvUxdwIsfb4PXo8MPS2+q5ccSgay5LsbirlXOow+jbqqwQYBTPwAAAAASUVORK5CYII=",bread="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAmklEQVRIiWNgGAUDDRjJ1PefWPNIteA/AwMDw9Ic7JLRUzDNJdYCvAbjsIiRgYGBgYWaBt9+jimGywKKDcZlwX8GBgaGhmDcGlUliTMYmwX/YQYX1M/CqWFCYxphU5EAciT//3AJt8GkWNSwFmE2E0nOIQOMWkB/C5AjmIGBcE4m1WAUw6liAS6DKbaAkMG4JHGV88ToHQXkAQCMXCTuoxbh9AAAAABJRU5ErkJggg==",burger="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA4ElEQVRIiWNgGAUEACOR6v6Tq5+Qgv8MDAwMkxJQBfml9Bk+PrvIkLeAsDm4JDAMhhlKqkXYLPiPz2BsFsEA1CIUM5mwKeSX0oez0Q2D8WFqkNViA+g+INv1aMEFNxerDwi5nhi1MIA1DvBZSgRAMZMFm4ozUFrlQT9OU/68qEfhi1h8wjAcqwAU/PdfA5FaaNJH0PDkJ58ZGBgYGDaG/Mcwk+QgenOCD86Guhod4LXg/6kWfMYTBmY1qObiTUXUADRPRXgzGjmApIxGDUCwsCMFYCvs8BbXZABiK7BRgAAAeO5Ta9GiRlQAAAAASUVORK5CYII=",butter="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABFklEQVRIS2NkoDFgpLH5DKMWEAzhgQmig0sY/iM7zT6G/LjC8AHIcDsHbxSvHzqwFc4n1TIUC7AZjh7IyJaB5AhZiGGBrp4+3ExBIRmCkUjIQrw+eP/uCdGWwdRevnQRxVdwC/Snff8/iY+TAT38YTbgsgwmDvMtyEfIwQa2AGT4hYirDIe2meC0ADms8PmMKhYg+wo9nvBaANII8gUM4AouQhbkffrOcDGLExw6KHEACiZkQMgyUFBh84Gd1xkGgxXaYEtQUhEoLkAWoFuE7jMQH+Q7ZAtgyRVkOAhgtQDmephFuCzDaiHUYGTDUYIIV45CtgyfhTCDQTQs/ImyAN1idAuR5ZENhokPTHFNsAAiQcHQ9wEAcVWNGQEhAZkAAAAASUVORK5CYIIA",carrotSoup="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAyElEQVRIie2UsRXCMAxEzzz6PAaAESihyiJMwghMwiKpSMkIyQB5mUAUIOfiyCYQ6HylpPsnO34BsrKyXKInv2CFRQ+V834yXDcdDruNWXOXu8nlAFGomixgLIh7x2vr2SvevG46APBmhmiP61wLvcrUE4j0FVxResPttE1uGfb4iojl1jwkfTUYihJAawY8Ne6xdxTMM7GhT6XbA8M3+Jsmz3TpKXh7K2BRSAiPBXwVYsFTAcDrHb8Loqc961cRDUplzGBkxfUAEyhSiovwVIoAAAAASUVORK5CYII=",cheese="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA10lEQVRIie2VsRHCMAxFfzi6tCzAEFmIYyyOhVIyAAvQpjaNjSVZsmWThjt+qTjvKYpyAX490w6MUGN+IwgA8Lrx4unKuaOCIMGWpFegdl2THPcGy7QEw2CPoDpnmjgOt6DZtQSG56U4M53vhcAEe4AAgG0F5oWVkoCNww2UcEWS1pR9jW6g6JbW4ojymnZDJdyoHdrUOqAVXbCteaa1OM6Ua0pv0uZMQ6/Fs2k9Ed9vKZiXLFEAMgQI4PEB208gwaLGgblTK1ng6rANtAWDHfYkoPz9/YM3a79OWiGiHuMAAAAASUVORK5CYII=",chicknPotPie="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAACHklEQVRIS+1Vv08TYRh+3g8GimJigpOySSks+idggh20bC0DJNaEXoxbJTI50uhQicDoXaVltNdBXI1RBv8ErcRN4oKDCy1L7zXve72zP64hIekk79Cvd993z/M+z/d8d4QhFw0ZHxcEZzp8YdH/bNHX9XlmAogBZsYojYZ2tNACYGDYgyGCx4TEy4+Rgem6KaABSiJ1pctfITspv8e9eBIHj1fQyGfD+fGtCuqFN9oIEWGu+CnEDf/Un85zfLEbVBBEgQf/wcbuPsa39/D7aEzBJ2+c6th5zQwcbpQwu/lZsfVHOo+nJmCi3hxtn3S4lYYANPMPFDi2taddn6499K9fVQBtxqBeKKmSkGBm8TKIzcDYBQTNfBZj2xWYlu/myZMsQIS7s0m8u78KMGFyqol6wcFc8cAnkPq+foenUxNQQ9TLkT4ysUisWphJ4sujZRz/iiFWXMKlnTLYM8KjdbhRDjc9JLAsi9eu/oBGB0AiJYqkIU8TI8Te7SWMeO0cEOH4KIZr1xu6/tvzXRhZbwibf27CeW3/2wNZkMvlOJPJhF1PfXgBbu+KKDLGj6XXbilIjK+Y8HPhmTYh5boubLuHQCZERTqdVhsE4Dzlum9h26X+mHYSRAP7VgWHbxB5tVqF4zjRBAGJjKJEql+Nvx+9VavVVHVgTTA/8HtgWasssZVDJv53Wqb39MwYEHuqqhf4TILz+B/1zNC/aH8Brz3WGQIa2zUAAAAASUVORK5CYIIA",chocolate="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABBklEQVRIic2VoRKCQBCGf7VTSQbeQGbovoQ2GxSzL2CkkE0+gb6A0U7wDQwkKt050zF3cHu7cOOMWxjudr5vd+8YgD8PxSUsQ+Cf3YaVLALhAIDV/UWy5ggsOCeZKnDCfZIpAi+ckkgFIrhLIrlFqq5rMRwAzNvFdaCqPMH2eOsX0rJgBWYHPoGq8gQA0LQdAOBwfrAS6RmM4ACwjiOrm6FMeot6uI6m7bCOo9G7lqVlQX4Hw0MmKzfh+vm87MnKXYIR3JRQ0izLSLi5wVZuSvT66fr2woeblsQ1czMkcFeC84B1TKmcEliSULgv0TmuqXAu2RrXHLgkVJUnCoJ/b5Dkl/Dg+AKF7I1oIzfs7AAAAABJRU5ErkJggg==",garlicBread="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABDklEQVRIS2NkoDFgpLH5DKMWEAzhwRVEGyrk/mNzckDHI5wOJdoHIMP9Ax6Bzf/4SRBizxsIdeASLwMuS4iyAGb4X1lPVA+8YmD4cv0EXksIWoBuuLTQVYan77QRFkEt+f+BgeHgI0yf4LUAp8uR/UGuBcQYLrDqBcMHBwlwMJHsA2QLkIMFbGiYBOVBBLLAwekzA4+2Be7MhBTJZPkAZgGGq2FWUmyB3mcGHntMH4CD7IY2PImCXA8CJKUicBDpfQZrxGYJAxGuB+klmEzhlmii+gSWwXCFPSwUibYAW0zjCxqiLAApghVw9nKQ4EIH2MIdWQ3BogKmmJySlGAc4M4AxMsQ7QPijURVSXMLAIP+thkNIUCYAAAAAElFTkSuQmCC",garlicFries="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAB00lEQVRIS7WVMUsDQRCFN8FGTKdYCYqglQiCRQjGRiwsBMFWA6KC/oFYim3+gBbaRC0VwcJCLDQhpBAEsVIQBSvR7sRGEnkb3zK37uUu4bLN7e3Nvm/ezG6SUB0eiQ7rq8iA80JffT7/oePl3PUuk/4HwGYEUIwC6bltVb3Y0Xs5Rwzi5btdER+AwQiCmBTgGsQ4J6xnaEFd7U74kiLI6WBm8059vZz5MqYIAEmvoiqlS+Omq3dclY8WTfLSvRPALGXWFAUc2bIsLiDdY7+zySjV1NKJ+vm81y6kSCY7q7MnAHG11z2zJsvbFCBrbYsACiffD3ktbLtqWiIWki5QW+kAMNcaXNRSGXM4ApssAbLOaDIa7+oLyoYBNzL7wBLhQ2FkoL5yuqVPDDLDMzm4ofvCQSi+YRzkSir/9Obra+BNBgCb1q+PdRO7xwragQQSTHE8WwJMplLq1vN0dqvFrHaCAQiAaDKyxmBsywCWgyBTn78JhGVM2wBb2PWOJGIDpG8aPxXV6cYJwogFQGGKxgoY3l9W/aM5k/H7Y1E9rx2254B3QTYRa4BwhIkjLvQfDffBhtgNdtWeMaGAICfNGisTiAQgxHU07WNpx0QGRLkHrphfBDxYKKqYnIMAAAAASUVORK5CYIIA",flour="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAEHUlEQVRIS7WVa2xTZRjH/6f30+vapVrqVl0ZSGKy6EQgDkwIypiaMYIfiEVjYoiXzZJM/KRRNOGTQuKcRickLtuIkhg2vCBREwNz04wwwiLboHRu3Uq30Z6ul9Pb1mPet+uxtzXGhPfLOee9/H//53ne9z0M7nJj7rI+ygGEMvD/so7OKZwoip5o2wOUQjBAe+dPuexcDeHtl5+iY8dO/Uz18wZbm+uw3malEwpEREEKJo3AC2BZ8VIAoVA86LkJQRCgUcsQ5ZfBMAz9Nto2/gtrXYUBuOxaQE1VZZ773BSJAOKciLMqKeKJZaTTGb3LP3Rg8zNOUZwAK6o34PnGetpXSrwsgGEEUZxMVLMyLHFByFVa+s7HltH14VsI8bwInZr14/SFK3m1zdZAaGuug91mpbn/5QsnHm1qy3OejIehUOloHwF8130MBg2LpWgMo+MzyIqfaGtCe+d5EVJU5FHXHQxd99I0EVG5Ukvzn5smUovAeD9GxyZp/3NHTtEnMTkXSODsIO0v2qaZOlRbccvjxafnrlFIthHRwpYtOBG+HYyDVSpQ/2BVdgcWA/Y2bMQTD9sR4WNY8HMUUq4RQ1w0BZNejRqrGdO+AOYWw/j24njpCN5xbAUXjmFrbSUWE0oEOA6sQorbgQjs1VbEoiGwGj3MygT+dPmxzqSl326Pl45fnfTgkU3Va0fwek6KaKpm5rDedh+21degUhFAx5nr0Go00LBK8LEEGEYCsykDIKZuzPMYm1rEwJC7dASH92+hB9SkY3FglwX+pAnf/3oVLzbZUHHPBKZmGzB8xU3BjpbtFNr94zSWIlFqhNSudnUnlixy42N2bN5gxtO76mGvGkJwYRMCSRN9d882oK//Eox6HWQyKQ48ac1A5xowOPwXLDoJFiJpjNyYxze/TZSOwLl/C6QQ8EqLHRX3TqLrtAFqNYuDe33oHbDQ4u/e8RB6zl7CwX07KLizW0nrRu6wWzNe1N6fOUtrbtNttZXwhtJIplI45ODxeZ8erzpC6O234NnHDTCYM65/H3HjhX0+9A1YsJKKw6JlaAQTngBOnh8rAgg9b+7EpI+HscJInRBHjuaMcxJB3zkLXNNevOeU4GjHCo46pej62kgLnkzEoVCqxHWk6KtbXLyuhZ72nRh2+WE1aSGXybFOL8HuRi4DaPHh+EkF1KwSrznC+PgrNQ6/xOOzXh0MOg0tLtl1JIVaNUt3VRHgeOsecEFOjIDcS8T5R18qcORQkqaCRPbuGxK835GmkXzwSZpGGorw0GvVVDgcFzDPRXBhZIqmSbzsSIr+uOmnByZ7cMiTOBsc+xvb6x6gAG8gDqtJBc8dHhKJFCtpAaxCBj6RglopR4iPg48ncfHabB6AfJT7B5e9MtYYLPlP/j9CZdf8Az/h7SitknPUAAAAAElFTkSuQmCC",frenchOnionSoup="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA3klEQVRIie2UPRKCMBBGvzh2Vlg43sDOgoOgDYU38BCUHMIbUNCgB6Gg8wYMBTlCbExY4iZk1DJfBfl5b5dkAGJiYoRnTv2DZQ8aaJMBp+thkXq/PQEA5wfPpQLVZNNLCJwTEZkAgJWG+zaEhClIGQsANfYdtvujmdXdLHXCfSLCEmu6eOw786xlxUYCAMpqQHHZzeBlNbB7aWZn4FqUtDlkWiNp89m4TGt2va4emM7AGw2iQBfczsc1dXURGlo9J/hJYsNdgq8kHNwnAN73eElErnbQr8Ip8iSEEePOC53iSqgjgs9oAAAAAElFTkSuQmCC",friedTofu="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA4ElEQVRIS2NkoDFgpLH5DIPDAj8Fhv/4fLrpAW6HEvQByPD+EhGs5u/a/wYsvv0sAwMuS/BaQMhwkMH+VtwMG499Jd0CQsECcjnIcBAg2wJcQQMytLDnzUi1ADnsiQkiUPjjAqCUhZKKkFMNKIwJWQAyGJsaUPJlY4ekLrgF6EmSGAtwGY6cfMEW4ErvIEtwAUKGw5IvI6npnVDhCMsbKBYQCmvkDEWs2lELsEYFtuIDHMnEhCssQxGrFlZ8E2UByLkgDcQ4BqYW5kWikinMNcQkafSKh2CNRijdE5KnuQUA0jXJFH9Pv6cAAAAASUVORK5CYIIA",jackolantern="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA7UlEQVRIidVUMRKDIBA8mJS+wHfkL3mAM/bpU6a3d8YHJG9Jny6lL7CWNHAg3gFHJoVbiHC3e9yKABwdqoJjJHxpAXO/nHFye7yyGrpWvBQnMQNw5wAFDkg6iFFkL9WBIdY4sWxuXMCYK8EYSKFULhZROUIN1OC1yW8wL/597TtWKIyFnE0xO+Lu5wWgbfYCepxYcRcLua6L7Cl6Pz9VMSyezfgRSYukEFnkPA69XvtuN49zYrAdpEgU9DjJOohPTU6cjdlR2YrQNv5MO2I4UmsAtP/4sPjLnxxfYmwR1yEmpvPIuwi53MYq8w6OL4W0Y7hN+2EVAAAAAElFTkSuQmCC",hotSauce="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAnklEQVRIiWNgGGTgPxQTDRhJMfz/f4jZjIyMROtlIsU15ACSfECOXpJ8sNrfkWG1vyMpWmgfREPfAmIj+T962Idu3E+UfmIswDCcFEuIsoCAPF4zWIiwgOHf/3lYxZkYkwjqJSuSbeYRNpgiC2atM6edBdd8ZpKknqg4IMdgGCDaB1pb0rGyCQGikimBVDQE8gGBnIwXDJ7CjkL9tAMAL4QnWOXkSy4AAAAASUVORK5CYII=",rainbowCheese="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABzUlEQVRIid2VvS9DURjGf5UrqZCwCBZNByQdhBvpQmLqH2BisIjqYrGQSNNEIo1BGCQsPrraDGKyaNIOGi4xSFiERGi6kDQ08XEM7j3t6a3bogvPcs77nvM+z3ve8wV/Ha4qcAgnzt8ICIDZ5oTiXMgMKLw1PyXX2EJjyzZgCspVfVdAWOROKBSpVEAAwhdM4gsmlYHFzKVjYDkBAYjRw4RC3BnsqjAv0JzII6lxrsRYWRJzY0ui1CkSAJHUOIAiYKx/Tj/f6FcC3Jyy0t6h+EI39QCuwhUIgFR8CIBd0+l1xZj3byrB/vATZ1Hn2luwBMTBjD9PMLijTJp+yQGwVLtMX3gKgO5wZ0UiVomU2/iWDRFzN0v7QkQAiM+9K8FGdNvMUucVg7X2YTlmlUieoofVAA+rAd6yIVsWd8ZRyez08IhiXz2f2ObYjunxcUaxr417vK4YAINz9lOtocvWW9frLHB6/Sj7Y7m8kEdvlf1s+oRs2p7pV7Cl9LR3q9iF5AD6RPHjqSJ0Uy/rD0UXrcfTWDajNr2Phpb8ZufoKSBHEltwusklsVjrLnY5PvllBYJa1OxZ7ff+EJtA0+Q+TCquavx6gPlyVovs/+ADoliAUUBEL7MAAAAASUVORK5CYII=",salsa="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABQUlEQVRIie2ToU7DUBSGvzaIdZItRQ/sCAKDZWK2AbOXAMODkJBN42sgs3sCzAQZaoKKKZYMCRNLD4Ldw21v2y3o/urk9tzvO/e2hTp16uzMotGTRaMn/93vlT0YNbsSpSHBbMP36QEAY38JQJSGALSSmMeTSwBuvt4KWc7iqNkVGwIwGU7p355XTmrkeZGfhwcPC6I0pJXEum7gwWyjkwOs23MdIEpDojTUAZ0TmCvJx76isnVTt5KYVWfA2F/qSXxnpwUAdKOdyXCq8HV7rvWqM3A49n0J4ROvk2MADi/unGYzYb4G+Hy5B+Cs/w7La2VnBCKCd/QMoKIymQ1VMCAfV3jeHzv/FYnI7zsyorzMjoEaMJCBFwkyEm2yZJnGLVT7PHfosh/NkexKEbxKACBb0z7gUlaVICOqcuzBqFOeHxC+hOOYYjlcAAAAAElFTkSuQmCC",soyMilk="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAz0lEQVRIiWNgGJHAysrqP00Nf/H45n+aWAIzHIapagm64cRawkSs4etWzscQL6lsJqiXoAX4DO9pr6XMAkoNxwtgYR4TE4MS5jD+/3dr//9/t5b8iEaOVJihyIYr1zAQZQFRkdzTXgsPFnHuKwwqfcEMTE/4iXIoURbAALLht/rmMbz8qkNdCxgYGEgynCwLSDGcgYGBgYUUw0kxGAZI9sHwsiAoPJHh2LFjjDSxgBjD8Vpw7NgxxqDwRIoMJwqgl0mklj1EuQLZUKq5nFoAAB8UtnDnOmpmAAAAAElFTkSuQmCC",spicyCheese="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABZUlEQVRIid1UPWrDMBh9atrg3qCLSwYPhnbq2jVgaEyP0SP4ED6CzyEHCl27Zit4SCHEi2/gEFPUIZb49OOftF7aBwZL+vze+55kAX8dbAIO0cd58UtiUecR6jzC+90T6jyyBH/agWjJnLhevSrucwUEAPSRmyJjI9LiAIBNMsMmmVmF5tzlCOJOxw/p1+BcX0S9OVO0cbjAXB0M5mwSHneJVTNfpCcFF7HMUbY7hrBDQHWgxfH4sT69rLoJmRdAHLZqXMYFAMDnoV5H3Z/jsIwL+DxUQswLsF9yJSA7UMe0qTJ83j+jqTLLqemSOpVdiMPWcg+Qq2K/5NaiGYPVvhdoBlxQAj4P4fNQI6TvJnGXKbquCZgFZVxokbg+pobKuADzAswXKa5uXgDjLhJ0YyXx7VusEdCIZHzyvFMProEYOjnSeeuuk9CE+pOpQ7q5Qw7HQhx3iWiqTKC9OckzGSYn/B/4BhgmpsuPu4+VAAAAAElFTkSuQmCC",spicyPickledGarlic="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABEUlEQVRIS91VwQ3CMAxMxQZELMAGLIDon2cWYBBeDMIC6Y9/EQuwAQugsAEqMtJFrpuiJk0+9Gm1d2ffua5U4acqjK/+kEBr3c0dm3POT2YwouIEpN5a29Vn823kfWrV4lgPmlpeOvXa9/W1B6uMMb1i0GQQEDg9IQLOiPduD5dGQGCrzc4rBiDIsxCgC4AR4fN+9d1RPboDeMDHxNWjDj+SPJDz/+VLFMF2rb2PRMKBoVh6kY2Ajw4qSEQSgTRXJocnLIoAixYaR2g3klIkt3gs/+gyqgNu8phivs20F03TTN9kmSIOliVF5AEBYVtD+c8SU5oviHgXvD7LA77JUrH8h082GTch9rLJW0DfFz/6H7rf9hk80F8vAAAAAElFTkSuQmCC",sunButter="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2UlEQVRIS2NkoDFgpLH5DCgWHF/F+p8aFlqG/YabC2eADDdxkqKG+Qxn9j1jgFkyzCwAhQ+lwQQKHhDACCKQYHWM1/8vZw5RFA88JnYMrUu2YUYyzIIIWwGKLFhx+MMAWjBrYtP/wJg0inywfskshrT8OuxBNHwt4PnhijXYvnDsxhAnKYhwGYxuKrJFRFtArOEwy2CWEGUBLsNrA/nA5jWv/4QzyMi2AGY4zGRsloB8QZYF6IbjsoSgBaCyaGgXFZQWeOgFHcg8rJU+KKjIKZCQi2mYfpq3KgAeqqgZelcVKAAAAABJRU5ErkJgggAA",chocolateSoyMilk="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAyUlEQVRIiWNgGJHAysrqP00N/3Bl2X+aWAIzHIaJsYSRFMO3zcrBEPdKm8Jw7NgxnOYwUWJ4Tsc2gnoJWoDP8CkVXpRZQKnhDAwMDCyEDEc3DMZfM7ERKiKM1wKCQTSlwgse1siGt4vfJMYDxEUyzBJkw5me8FPPAhhANrycVYIhJL+euhYwMDCQZDhZFpBiOAMDnlSEDZBiMAyQ7IPhZQGhgo4iC4gxHK8Fx44dY/RKm0KR4XgtwGUJKYYzMBBZ4SDXXKQYThcAAIIOcW1FSq9sAAAAAElFTkSuQmCC",oliveOil="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA9ElEQVRIS2NkoDFgJNZ8dlmB/8hqfz7+QJReohSBDKa5BXpuIv9F+N6APfHmkwjDpV1viHIcUYrApvJz/ndy/Q5m7tvNycDw8TtReolShGw4LB6ItYSwBUguR08QxFhC0ALksEe3gJi4wGsBPsNhlhGyZGAteLCV7T+bnhjevPjr0isGBe9fOB2K1wd0taBjuhCKTyoy34H5VPEByHBdQ0mGt28hhoKAZsZlBtPHItSzQEqOHcUHVLUAZDJNgwhfMqJKHNDMgqGfk7EV0+jBdfSkAAO+6pNgaQqyRM+cG8XcSye/IvgEKh7CFhDbKsChjuYWAAAtPZoZgsyz7QAAAABJRU5ErkJgggAA",onionRings="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABMUlEQVRIS+2UsQ0CMRAE/RExISlUQAs0gIQQGWQUQQUQkxKSIYREA7RABcSUAVqktfZPd28nn+EI8fbO3d7aTep5NT3rpz+g6HCVRYtR+qjS7V1vbREA8ct5m573R2bsr6/f7xpQJ8AT104Isj4pOASUxCkKyHg4yIzDcZNW61PuzgV02QIlzzL8h0UrAUYnVQBuhkAE3y0nLaeqASreOyCaC4rQDrSolkWadx7QpFjvddDRPckAiKuoVjSdz1oDtFGN/Me+H0DFtSp70Oad1rAAN0Uqjo3IMFcXQMW9MzlFHoA30esMcCuuN9da3VgR7QIH7UMHADvj3k6ANwN6GrUeRdJqoVM3RaVH3su9N7cWgHS1wAPxXpQSxlmFb1HURSkAGvPwsStZxO9eAPiNhXwBw/0AOoT0r0UAAAAASUVORK5CYIIA",popcorn="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABgElEQVRIie2VP2vCQBjGn0taDSI4tKBLUYyD+Kdzp27uguAkfoAuLf0UdusH6NhJlCKOQqFbP4AWhxAFF4dKrUopmvPtUA2pNMk1trRDn+W4e3PP7/K8IQf867fFRB5qX++RXS1TGgl5OJob4zwR12k6uCXiujknrpMTXMicGxMirtO81ySiChFViBsTc50bE28Qq/l6tALmvSYZ47xZs4NIbiA+PYfEHgGpCv58DyyLoFkZu7HOe31wB0hV2/07TuY0K0MO3QC4AJZFLJ/SYMF9yKEjLPppyAcnkIPAom/vYQvIlEbQLo+hp1qIP/igpzTkch20Wv7V3I944wrq6Ry9hg+Zs5FzFJ+9QDsbJSISGgF468G2cuzBprovr+gmIgCA9DcdwIygpobJqpoaNiOCTTzCgE1zK8QN8OM9EAIkAwrqq+zXqiciSAYU171uTWaMMWpnoyhoww+QgjZE5zAGxhjg8Ff+UkTJgIKCNhQ6uSeAF4lcFiKf4HaXzp/WG0R0GZSwU81hAAAAAElFTkSuQmCC",pumpkinPie="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA6klEQVRIS2NkoDFgpLH5DKMWEAzh0SAa5EG0v1j4P0EnMjAwOPa+xRmXWCVgBitocBBjPsODGz/A6rBZhGIBqQaj247NIrgFIMPxufjTt38o5vFxMeH0HcgimG/AFpBqOMxkYiwhygKQgaT4AKQe5guUIAJJEBuxuMIHPR5QIrmqquq/68+ZcL3EWgYzFKRxN3s6Q1tbG9xcjGQKsqSkLBFsycVmC6KSqX7tCbC6nq75KIaDxLDmA2RLiLIBh+E4LQBJgCwB0TDf4LII5GoQQA4WZLUEi2uYRbgswGUwTD1BC4gNIlzqhr4FAOLAXRkvhyyAAAAAAElFTkSuQmCC",salt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA3klEQVRIS2NkoDFgpLH5DANqwX8yfYfiaFw++K++6TjJ5t/0s4TpgZuLzQKyDQc5CmoJTgvIDRYGmI8JWlBz4S7JQdNioEyaBVcPKxFtibbtPQaqWLAuB2Jn0BRUu6liAczwR48eMcjJyaFYQrEFMMPRwwzmE4osABkOczXVLcDlcpBFyEFFsQ9gQYHsG+SIpsgCWLCADEdPPTA5qliAL1OQZQHRuQyqkOSMhmyB0R9lDPvOsaAWJ3SzAL2gA7kMvbj+T25hB/UmRvGPtT4gNQ6wOBRuxIDWyWR4BFMLAHg9rRn+GIpBAAAAAElFTkSuQmCC",summerSalad="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABeUlEQVRIie2VL2/CQByGn9IlBQdJde303ASmAr4BBsMHIJmZQZA0TSZmMCT7AJgZvsACogYxNz1bTQIOKppOHNdey7UlW4biNb1c797nvT+/Fm666a8yake8rpLK95N+pcddnfF82Kv0f+IUoAR03nmh8RnofY0OlAe8rhLVeLO/zLzbLoAUSKPKfP1l0G0LA9nW9alB5sNe7ty0Z7DZC4OPEMZ2E3sZAeAFBnGYPU0Hxp9NeDymc4pqFNPLgV5gYDrQmQnz7cAiDmF3bwHCHKDzHeEF+ZWoq2ig0XSRHY00tJcRpgP2ISIOYdsS/btnAS6TFmA6WWL7IFagmqogCfYCfTloAb6bpBNlOtMR2wECFIcivVTZKrQAmWbbstK9Vtv24bRdyyg1fhnpC14AJn1DFkq3Db2HBN9NssQDK22rSSXUd5PcLVJrQXtN5Y2QqTozI217gYHvJkwXBm+jIz6UXlG4QiVf+Vv0C1CZcT2gACpVzf/g3/UD5wa+Sc12t5MAAAAASUVORK5CYII=",sweetPotatoFries="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABFElEQVRIS+1UMQ7CMAxsRngHG+IlCJ4AY/ukZmyfAE9BbLyDjiAHXXQ1DkklujVTGsd357NTV8283Mz41UKQdXix6L8WXU6rlyAe+6HY2uKLAr7d7ILi++OWJNEiAoEc5lQxAUjgD3ItEQ6HKVVQxGajEpxJriyrwkigVaUALTAm1EKjRczOaiyVINGqtWXyHZus/UMyK84Bc9XoS6wAQV2uRZQbfggRklEPuA+llqXIJF+IAoFWbzXSAtLVWtMVLKrrOpDsh340ahpUA/yaPLx4J+Bt20as63kd9ofu+SUaMQ5Y9xBvmuYzRZok18SSuIB7710cU9gkyVxRCRgrxl7AR++AgZhsCgFAOaf4bzqFiO++AQm8tH22dLVsAAAAAElFTkSuQmCC",sweetPotatoPie="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA4UlEQVRIS2NkoDFgpLH5DKMWEAzh0SAa5EF03o39P0EnMjAwGO76iTMusUrADFbz5iLGfIZbW7+B1WGzCMUCUg1Gtx2bRXALQIYT62JC3gJZBPMN2AJqGg6zHGYJfSyA+QJEEwqmV1xcDGLfIJGKDaDHA0okV1VV/Q890wvXR8gy5OCAsVebFDO0tbXBzcVIpiBLstyNwepft0YRik+wvGj1MjA9bedZFMNBYljzAbIlRNmAw3CcFoAkQJaAaJhvcFkEcjUIIAcLslqCxTXMIlwW4DIYpp6gBcQGES51Q98CAC9yVxnnyn4gAAAAAElFTkSuQmCC",spaghetti="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABBElEQVRIie2VIRLCMBBFfxngGhimAtEz9BBgEKgqLkANBgUX4ADY3AfBYLgGFYuAbXfThDSFGQxfZf4k/2W3mynw16+VhDaYEsTrxT6839YwFDwvDrhcb0inExhsKBbkBJgSxMFS7BkcyT7jg7YApgRl+Vp56XRSV8EgALXHUBdk4CtNBnfxsnytvpcTwK2JCZbevDi0IK0K+gT7PECPKdFqrGHLotV/2Xf2sNvq0NO9zmYAnSvCbNTwbFhIr1AAgMhK1BSdq6Z9ySjuTcmzCizW5NsUK749EBjTb8juw8dVyNu7AB9B7HAfoBfEFf4OAOD5IkMgMdrOrC6zGCol+h/xl9IDcxCDNEfiwBwAAAAASUVORK5CYII=",strawberryJam="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAVRJREFUSIljYBgFBAAjLon+MGsY8z8h/YWrjuJUwIRLgschgpDhDAwMDP+h6vC7AB0sv/6a4ffJTQxrnv4nZAFDiDQjI6u5H0OkpihWeRZcGtc8/f8//vtJQuYzLHxq/j8ST1DjtCDRxYJx/h6CQcSQ6GLB+AOPPIbNy6+/ZuBhZ2OYvXz1//qMZELmMzTOmMuQGhnK+OXnL6zBhBHJpBjOwMDAUJ+RzDB7+er/POxsWOUxLCDFcHRLsMlhjQMtFyOSLGBgYGBgCMnGKowzH1ALYLWA49w5Bo5z54gygJBanMkUpplSQHQQZe83ZMjeb0gbC2AG9xYzMvwwIi0BEO2D3mJEniTFEqIsmOp4nuz4wBrJMBeiG4rNErhvcOQDvKmI1PDGBjCCqFhKkDEch2twgfCQbIZiKUGsRTbW0lTqxCGG3mfvCRbVyI56ZmGHs9KhKQAAu7Vof/9SQdkAAAAASUVORK5CYII=",tofu="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABLElEQVRIie1UuW3EMBAcmgTYgSAIduASHDhw6ALcgMu4Qq4MN+ACFCpQ4BIcUCYO14EACuvgjtLy0YmJHWnCITmzu7MgsGPHjj+HKLnUdy2VCj6/vAaamwZ919LDfYPRAVql55wfHXA+2cDkrkQcCEUmkvMdz5vBZgtYNeDio7twE0loBUgxBbwZLHyXRQZ8LLzKWFirRZzfAzBnlhjkxsJFOW8Gi6pukvOvj8NsEkyt71qq6gZmsCASECJcHs5VdTNXzrtR35/BmyQWrRA8jLdndICSEvbHgGd0Pi3iT+9H4Lqh2Qx4u0rK4IyH7LEmvmqg1bKKPFjP8QL4WGLx2ID4YymmJFhvptUlgy1xTtA1ebjHt1xTWWyJA5mQ4y3Ywi3x+KD4Q7uh8f/4BeeCk0AHVwhiAAAAAElFTkSuQmCC",vegetableOil="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAxElEQVRIS2NkoDFgpLH5DERbwL71y39kx/z05iFKL1GKQAbT3IKWatH/oT6/wJ5YvYWNoab1NVGOI0oRsuGwYCLWEoIWYDOcFEvwWoDPcGItGbWAYIoa2EgGReTQTkVeNvr/nz18gLc8lJJXYNh25CLOoMYpAQqa4JhDDMfPXIJbkBgTxjB/ySoGZPrGjRsMa5fY4Sw6iLIAm8Ewi4aGBbAwQvcJSNzSRI+8IAJppmkkw/IAMVUqvrqBYE4mxgJ8aoa+BQAVra8Zml1jUgAAAABJRU5ErkJgggAA",yeast="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABbklEQVRIS+2Uv0vDQBTHvwc6RAIhOJToZinURYiC+RdchG7FvbropH+HTrpId+mmuPRfiKABFwNSN00dJBSCGRRP7poLaS6/sHQQfVtyl8/nvXe5RzDjIDPm419Q2uG/1SKa6kel6qts4mCntw0aKQgBzPa18BUy8hbjbDcOG+huNpGVfufGxe3JY7IwiZcloNZRA4zoe+/otdbjzAXp5XWEpZrGL1H76g66sQD2YB9z2QQzLeDwwAvxQSmHPw/HsLwQknlCoBqKJEkK6NaZCX8QYOSFuGiZuZmnZexMdi4daIYCva6iv+/ElUwKTk3+rf8U4JNSdK1VqfdJOGvVck1Dx37AHCHQV1S+3D8oEQjI2yDAF7JFLLNd2+UNX6yPwSIqC5IiaSxSGVwqsPaa0NeU0vlStMG/D2Gfu5lnwF7SaSRpuPTPRpn9SJIFzxPwSkQbWEVFEbVDbKl0k9O89JSQrkFRAlWG3VSH/vsF3ysBgRmuWgXeAAAAAElFTkSuQmCC",wineGreen="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABLElEQVRIS2NkoDFgJNH8/1D1ROsjWiEDA8P/C9ujweYbeC4FUUTpJUoR1NX/z2+DWGDoNVQt2LIkD+wDn5hJtAkimseBR7oU2Ac7Zj6jug/+e6ZLo6To7TOfEmUJMakIw3CYTcRYMuAW4HQ9sb4g5AMUC/4zQEoKRqRMTCiYiLYAZHiQrhvYgnWXd8EtoYoFMMM9bZTBFmw/chduCcUWgNI+yOVetsoM/6FlKSMjA8O2wxBLCOUJgkE0a0oC2HBD41qG82dbGP7//89gYVPLcPJoM9iStJwFePMDURaAgoaRkZHB0LiGgY2DgeHkUYhFoKCiigU09QF6HIDCHwSoFgegMgg5icIyGCypUpyKEIUcrDqGWQHxCqUWgMxANxmlVCVUNxNKReiGkcwHAB32mBlT632HAAAAAElFTkSuQmCC",winePurple="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABWUlEQVRIS2NkoDFgJNH8/1D1ROsjWiEDA8P/bB5+sPlTv3wEUUTpJUoR1NXDwAIlCVmwZ+69eEybIIrSdwZbsOzi3qFnwX+Y62HJmlhfEJOKMAwnxZKBt0BAUPC/l6whw39YHgblMCZGBpDAskv7CEY2QR/w8PD8X7ZsGcN/mA2MjAyf/SIZ+DYtZ4iKimL48uULXjMIWsArKPh/+vvfDLybloFd/dk/mkF271qGx85BDJmCbAyf37+nzAJuHp7/2zeuZXjkHMQgu3cd2GDejcsYBHk4GDz9gxm+UsUHn/4zMPByMDB8+Ay25MOXHwwMjIwM0dQIIlApemjvToZH7uEMvOsWgVPo5+A4BgY2FoZMtr+UBxHIgkhdJ3DK+f8PkpTAqYjIIoNgJIMsQM/FQyuj0cUH9or6DNJ8IijV99NPbxgO3r9IeU6GVZc4GgcE45CgAhJbHRjKAc39ixlOVxPLAAAAAElFTkSuQmCC",asparagus="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAV9JREFUSInFVTuOgzAUHKJttlmlJF2UFIgr0EUpkNiaC3AGjsEZuAA1kVKg7SjpIkSRgg4phyBF8pCxn8GglTJVHL/PvBk/AXwCjmf3/5Wz4QKd7WlRk6kcSw703WA4X+sLmrKz5KQlORsxEAB+fm1T4iM8Djf2/5FEYRwNwY/DDWEcTUrleHYfxtFQnGsyNGjKzsqSFPe6AAAc3bMR8yxJR2eZlGIy4V4XSjIHZ3tClbdaUl8mBeD99bLZorn7XYBrfgFQoMpbvcnkAQBUeQvfDbDffcN3g1W7MWpA4MbUvRB6DLr7UQPZZLEAoJonI4wjRR52AuAljyjX3Iuaule2lFhSA5pIZEd+idNy7NkJmrKzOLk4iUx2RbsHU4U4AjrM7gHwkkknARE4ukCWpMq+sBPIO6G7FyfLktTMA5kZB5KIMCUV28DUZBMPVpm8BKtNfv/upbOC2c/hXIGP4wnebtncsEc6vwAAAABJRU5ErkJggg==",asparagusGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJhJREFUSIljYBgFIxOoW0n8p5ZaJmwa1AUcibKEGLWM6BrcNb3g/J3XtzHcPPaCEUMXCWpZ0AV2Xt9GyOFkqR2hgJiEgJGKSDGcmNSGNYUQYzixqQ0jFRELXitdRXCu41ZHtgXntj4kVysqULeS+E9K0YEO8MYBLCIZGBgYbn7YjzOc8QGcQYQekTc/kGo0AQsYGEaLguECAF6gPZZVZb3GAAAAAElFTkSuQmCC",asparagusGrowing2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAQdJREFUSIljYBgF5AB1K4n/1FLLhE2DuoAjUZYQo5YRXYO7phecv/P6Noabx14wYugiQS2GD14rXSXkcJLUwy1Qt5L4H1qSBNdEjEUwNfjUYvhAWdOZ4dzWhwzntj5kCC1Jwhq+MMfA1J3b+pCgY8gCxCQEDB+QYjgxqQ1rCiHGcGJTGws5FjAwoEXsddzqyA4iYgFBC9StJP4TCmdcqY2gBfCIxBOZyprOeB2IMw7QI/LmB4R4aEkSw+qeeQwMDAwM57ZCaIoi+bXSVXhE3jz2grElqI0YbQwMDASCCLnIwBfOJFuAXC4xMBAOZ5ItQDf47vW9DKt75uEMZ3wApwb04CDH8OEBAFoqeOiVTrE/AAAAAElFTkSuQmCC",asparagusGrowing3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAUBJREFUSInFUz3KwkAQnYgHsIyVosVia5lGxELQwsoLeAaPkTPkAqks8oFFCpuU6WRJkSJdwMYbxMZdxv2b1U/wQSAhM/Pe/DyAX4BFYfet2J4pgQ2WXiQ+sYGasJ5t5PeZ/0FVtIGW9Uas1sFtcqWEvxUvCVgUdvvjQSb5EIkYV6zWwXS2ku/748E4XyyGgiSoijZI4wRqnmtENpRZQ4rROhCoeQ5pnBgXJ8SwwRLKrHGK6ZMyDcAXNB5uII0TSfwVAgBlsdxcXCN4BnX4W8zVVoCCtoOqaAPxSKcSbrUtWOsAQ3VqdTfHUddmvSIMPG/VA65rIwmwo9UxYOW7aGEdkZFAVYmLqYak4OxAFKbGcCou1n/W02NR2M23oxcyTIJH4jphL6OZLsXXF14ENc+hzJqPzOZ1pv+BU5HvnH+KB+Rns9NcWsNEAAAAAElFTkSuQmCC",asparagusSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAsUlEQVRIie1VwQ2AIAw8jJMYV2CRDuoirkBYRT9CxJS2Up9ewsNiubO9IvBDQWBih7LvIjjWZakPKWc3yT25OfwrkpkLEkUAwLbtUq6plBMXVA4Grq8t60HWYKQH9R2iWMX0SjniokZEIXlDoOGVGUbdYbazx+MmF2kE7qmWkqxlEEX0CKyNVEWwg1ZQJtoqghs6kcAKotgV0yMIKefmypCsKF0tXhepPXD/UAwifsg4AawtUVA+F49vAAAAAElFTkSuQmCC",carrot="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA3klEQVRIie2UMQ7DIAxFTVUJZcnIBTggU0+RKQfMBTJmQUx0aEDY2FSkdMvbwMn//o4VgJshrFOEdYr/N+m57xalKYaloqKd4o9uk4TzqnrmcqJW5+lOEH92m3BnmqZALJyU86+rDeFEK0E8Fp0Ps/PYyHklzrwwbnWADAAA5lfAJkSMQ9qiLL7tIV9Sw9OsuTmSO+p+2wNYU4zrk0QhAyEJl6Dq3hqNkiCS8JU1TcLWaJRANGGgBdQ9Fc0f+ft6Z8QEzMy7hLkX4rFo1PkvwokqgTV6iLBEhPL3cAMAb8x5cUBYehurAAAAAElFTkSuQmCC",carrotGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAFFJREFUSIljYBgFo2AUjAIagYmc/2lnINUMn8j5H6vB6GLo6si2BBdNADDhlc3/zkiyQ8gCyK5G9xUBg4lzIbIlyIAIH+JSQElKId7Ro2B4AAAM7CorC4ZVKwAAAABJRU5ErkJggg==",carrotGrowing2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAG1JREFUSIljYBgFo2AUkAcmcv6nnYFUM3wi53+sBqOLoasj2xJcNAHAhFc2/zsjyQ4hCyC7Gt1XBAwmzoXIliADInxIvAXolhAZfMRagC8Y8JpBjAX/P3Wz45TkK/2J1xxcEpRkJtKCfRQMfQAAPQYyLlPDfzcAAAAASUVORK5CYII=",carrotGrowing3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAHNJREFUSIljYBgFo2CYgomc/2lnINUMn8j5H6vB6GLo6si2BBdNADDhlc3/zkiyQ8gCyK5G9xUBg4lzIbIlyIAIHxJvAbolRAYfsRbgCwa8ZhBjwf9P3ew4JflKf+I1h5AFeA0nxhJcFlCSW0mL11Ew9AEAw2E2LwiWHwcAAAAASUVORK5CYII=",carrotSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAp0lEQVRIie2U3Q2AMAiErXEZGcShHeQcpz4YkipQ8CdqjN8bacvBlbZpfj4HEWUiyhx3VycfenCUASRVgCsAkGrrtT2MENCqsNf1PaaAPLyPRWjdvXkH40Rq+2WSMpEVC7ZTcAtnRN0x9S7doz1S1W0CEetci7TR4+QR60Jfhef7IqSLCIuiEwMgjRO5xVVesj8xln2mQEmtbSlis7Io2vZpHvkuXssMLP56RC4nRRUAAAAASUVORK5CYII=",garlic="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABB0lEQVRIS82VvQ3CQAyFnRUoGIGWgoYSMQUVJQswBwtQUjEFoqShoGUEClYAOZLRi3P+OaRISRUS8z4/2+c0NPDVDKxP4wIsF5PP7f6uSiodzOLn4542uwPVQMYH4KGocZFyIOXBictC0oDL9UGv54mms23LWa/mqV6EAM6exflCQBbiAlC8BMhATIDUXUoi2WsX/NvrRxFgiUuTayA9gBYvlUYDJKbkpAPIiFsuLMgPgLMudbcaGz1HJy2gVjxygae9A8DMvSw9gC6V6yAqhU5I4nsO/imTNUl6GfamiAN470eNts4C/x+/F+ZBExBuUDzVerNqYXkf7iIUsu69L1y4TTMAL+YLkFzsGSkFyYQAAAAASUVORK5CYIIA",garlicGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAADtJREFUSIljYBgFo2AUjIJRMNxA6nS1/6TqYSLFcB19LZItIdoCcsEIsyBWZxrJFjASoQZfpBKjf4gDABs7CRP3VfqlAAAAAElFTkSuQmCC",garlicGrowing2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJ1JREFUSIljYBgFo2AUDDPg2WH+37PD/D8+eXz6sMkzYdOMTaFnh/l/Gf73GHLI/O0VJxnR9bHAFKFLwjRi04QOiFGDE8As8uww/586Xe0/IZ+iAyZCCrZXnGTEFWTEuJxor8Hi4MlHQbjFxOgj6ANsgJQwJ9oCGf735LiFdB+QahFJFujoa5FkOMkWxOpMI9kCYiILX1onP4MNGQAAbEJDfI/EtV8AAAAASUVORK5CYII=",garlicGrowing3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAALxJREFUSIljYBgqwLPD/D/NDSfJEs8O8//oGrAZQIwaol2XOl0NxVJiDGPBZ/v2ipOM2ytOMuJy+faKk4wkuxSXGLIPsAULXt/gk8QXRNgcQZRvsFlCbBygizGRZSMD7jhAFyM6kjw7zP/L8L9nePJREKtBuADOVITPAHQ5ovQRShnERDI2Pm5BNDlSMhpZuRndAkKGwORpHslkJVNSigiy88HQtEBHX4u2FsTqTCPZAmIiC19yJL4+GLIAAIDwnt7DsMsUAAAAAElFTkSuQmCC",garlicSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAsElEQVRIS2NkoDFgpLH5DKMWEAzh0SCibRBZGAv9P3H2Hd5gJjsOQIbvO3CRwclBnwGfJWRZADMcFj74LCHZApDhK2YVM4ipxcHDnyoWgAwGmQgKFnRAsQXYXA2z5NWtRQwRab0444FgEIEMz80JZQgMqcGaJKkSyeiRSqzrQeoI+gBmGLIloGABAXxBA9NHtAUgDbCIhmkmlMlI8gHBMgGHApJ8QI4loxYQDDWaBxEAZwZJGciZbVQAAAAASUVORK5CYIIA",grapeSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAdUlEQVRIDWNgGAWjITC8QiDTTPk/zEcbwrXhbJgYWTSyoSADkPk0s4Qsl6JrwuU6mDiyT9D1Es2HGQbTAOOjGw4Th6kjmUY3ENkAmhmOz1JkBxDNRjYQmU2RD9A1IxsMchm6PNGuRVZIFUOQDRxlj4bA4AsBAEAiL1mYqo82AAAAAElFTkSuQmCC",grapeGreenGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA10lEQVRIS9WVwQ3CMAxFmw04Mw5TcGUFBmEFDlyYgplgglRGMnJT2/8nUgX0GCX/fX+7SZk2/kqP/vG6q/fTs+tMutkKjoiLeRpwPpRqq708ahGorGVVwXJVWARFTCuRdV3LYl4AbAytsIq0exDEBag7lDtTxSqi9lAEYaOCAC9fL6ao4auI9rfXpBPCznwW1QfQ2zzbdDXlVRuOKdNApg8uAE2PdYqMfAfAXoDM/wKvigxm44liHQag7NXYbwJY9/A9iPL/G8DiBSNG1+3ncJMJ4HvL5oAZR2XBGdo0OvoAAAAASUVORK5CYIIA",grapePurpleGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA10lEQVRIS9WVwQ3CMAxFmw04Mw5TcGUFBmEFDlyYgplgglRGMnJT2/8nUgX0GCX/fX+7SZk2/kqP/vG6q/fTs+tMutkKjoiLeRpwPpRqq708ahGorGVVwXJVWARFTCuRdV3LYl4AbAytsIq0exDEBag7lDtTxSqi9lAEYaOCAC9fL6ao4auI9rfXpBPCznwW1QfQ2zzbdDXlVRuOKdNApg8uAE2PdYqMfAfAXoDM/wKvigxm44liHQag7NXYbwJY9/A9iPL/G8DiBSNG1+3ncJMJ4HvL5oAZR2XBGdo0OvoAAAAASUVORK5CYIIA",grapeGreen="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA1UlEQVRIS2NkoDFgpLH5DKMWEAzhwRFEQtm8/3E59d3Uz3gdiVcSZvAPxW9w8zn5OFHs+n+RkQGfJTgtABmOz2BkW/BZgtUCdMNBhqG4nAspxL5BjMBlCYYFJBnOwMDAEizM8GfxOypZgOTyim3/GUo/qDIIR91hYMDjC9J8gGRB1aqv4KBpC+OGRMc3Rqy+INsCjGQ7aCwAuQxvRCOnIGjQkJSKYF4nmJqQwojkfIBsCYyNLdOBDAYBsnIyeiRiK48IlUMgMwZHaUqw0MejYNQHBEMPACcseBmTrgJTAAAAAElFTkSuQmCC",grapePurple="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2ElEQVRIS2NkoDFgpLH5DKMWEAzhwRFEOpx2/3E59cr3Q3gdiVcSZrD4H1G4+eyMHCh2PWJ+zIDPEpwWgAzHZzCyLfgswWoBuuEgw5BdLsAmBDf/w693YDYuSzAsIMXwTc1HGLgz3jIY89tSxwJklxv6zWUo/aDKwOPKxGBXroXTFyT5ANkCY6fJYEPP7ssF06CgwhZMZFuAnmwHjwUgl+GLaORgggUNSakI5nVCqYmifIBsCYyNnulAEQoDZOVk9EhEL48IlUEw/YOjNCVY6ONRMOoDgqEHAPCIbxlb63vgAAAAAElFTkSuQmCC",jalapeno="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA7klEQVRIS2NkoDFgJMH8/1C1pOhhIFbxf6cwUbD5+1a9BlHE6iNeIQMDA1mWEO0SkAV+adIMXz78IskXxFoANxwWZ8QGFdEWwOIAOVEQYwlBC9w5WP+nSUviTGyznj5n2PnjN05z8FqAbLitrgrD4ct3sFqEzxKiLMBnOMhGsiwg1vUwL+GyBKcPYBYQcj1dLPgkyMyw4soTrJFNFR9QFAeEggif6/EWWoTSPyzsybYAZAAxllAto2HLYYRcT7Bcx+cDYgwnaAGuYCLWcLIsIMVwoixA9gWphhNtAcwSEI2vaMaWEAjWByS0OrAqBQDXPaUZstITfAAAAABJRU5ErkJgggAA",jalapenoGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAwUlEQVRIS2NkoDFgpLH5DKMWEAzh0SAiP4hswh3+w3QfWXkAZ1DC1OFSg1UjSJO27Ue4664e5mf4/ekOnH9y+xOwPmR1IDXYLMGwAJvhMI3mnjJwX7HyqTAgOwJkITZLSLIAOTjQHUKWBcguwhYcMAthPiHKB7CwBdGwoMEXbNjUIyctojIaIQvwpVWSLcCVWnBZQpQFyMEASq6wZEowlzEwkFZcw5LpqAWgoIXnWGLCGU0NSrwSHclkWATWMvQtAAA9on8Z/HlQTAAAAABJRU5ErkJgggAA",jalapenoGrowing2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA/klEQVRIS+VUMQoCQQzcK2z1A5Z2PsBGwdYX+EZfcK2gjQ+ws/QD2lqczMHAXMwtWeREMc3BksxMMrlUaeCoBsZP30Ww2Eyb0XjmNn3c7V2x2Q6W23VDtMf9kgA+X93S+TBpvxp480h6CQCuIBY0SuISWHAoBSDCkvLtrQ5YTA9IwncIKvKAHVA15q/hGR0m8GYPcACgA0uk3TBPc1488AiojgSn+trW5XJJkiVQ47iyXFdVaT3JdkBl2q4q9daVgEX/AYv6PLHrGjbZ3oGPEmA88AAm6xnpUw+xoWuqBqOIWxQ59SECAtk1/W+CzkmIjEJyOmMv8qCQqE3/fYInGwy8GfZ6sOcAAAAASUVORK5CYIIA",jalapenoGrowing3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABH0lEQVRIS2NkoDFgpLH5DIPLAnNPmf+sfCoonj6y8gBeR+KVtAl3+A8z7fenOwwgw7VtPzJcPcwPpkEAxMZnCU4LQIbDDIEZhI1PlgXohsMsANHoloDEKPYBzJWwOEAOHlgQ4rIEbxChawZZABJDjmhCcYHVAmzhD4pkGDi5/QkjrmBE9wmGBdgMh2mC+QDmC+T4wJWiiLYAOcmCDOPmvM/w9bsi2FP4ggmvBbDIhfkKPf2DLNm54CE4uHClJpxxANOAHGToFrx/eJXh6onX5OdkkCXIrkfPzSALwGGPxxKiCjuQJaCIRk6mIL62hSg4aCi2AJY8YRaAkikxhoP0EeUDbBYQW48MXwvg9QCxQYGkDiVUSAoiMiwjLZIHpQUAD3LJGUbvuUIAAAAASUVORK5CYIIA",jalapenoSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAhElEQVRIiWNgGAVDDtzebPH/9maL/zQz/P+zS///P7v0/9zUDKIsYSLFcBXjWSQ7imgLyAWMpCi+vdni/+dHBgwMDAwMRtkzSNI7CoYwoFvGw2UJ2fkAPePBki/VLKAawBe+tzdb/D83NYPocgmrAaQUbGQZTmrpiQ4GtrAbLdwYGBgYAFTPX5fT1wXtAAAAAElFTkSuQmCC",pea="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAbVJREFUSIntlMtKw0AUhr/YokRqkSAGurAUgiLSraZvkT5BnsGlO3d5jj5B8wKum7qTrlqE0o0QkFm0xWys40InTm3Sm7gQ/GFIzgx855x/LvAXZNdMAFmtlwD4/KbxVlIQNfzAkYA8udhHj40fFC79wJmb6HcFUSjwA4fWzSPVesnYOkG1XmLUm0oAP3Dod0W6FoWC08uyMbgf85MOMA8KJJOZVLHrWZxdWQBpBzvbgMtHRQCZTGbS9SyuW+e4nkUUfnXhBw6j3lQWNwErW8bPr7jeR6WNpk3ldJ9G004TqL2wa+b6HSi4Hzi4nkWjadNo2nTaMU+DFzrtGPiwRtkUDxPW6kCH97sirVp10GnHRKHAPCgYyWQm9Q1f2cF3uK6nwctcnExmWJVdIwoFVmXXAJafoqzKATrteO4/CgXlo6Ixfn5dYOQmWGaL7vnZlUXr5jGXlWnRurYoeLVeyi00b2GlLTp81Jvm8RcT2DWTeJhIdRSX2bIKDhkWxcNk4RHLs2UVPDMBkFqjLhFsZouuzIumX/9tbNFVyJi7hTcOj/dSeBQKHu7ExvA8ye/j8/X81+/oHfIfC2frtx3xAAAAAElFTkSuQmCC",peaGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAelJREFUSIntlDFoE2EUx3+f3hESUbQXKFypQyg1iFNU6C0B41K7ZJIuSiI4NIJKFx0Es7YIWTK0QwsRBDchGDsUCprBG1pKx6pBkEiG4nWpJLWJfi7ekbP5rqkIXfqfvseD//+9/3vvg2McNURQMluM+uIz5yJUtuoS4NGlWyKTyhPWRgIFTgSR61qIatuR2kkdgMpWXeasBGkjTiaVl/10oAUlV1oNmTbilJ1NH1nZ2SRanhKj5pV/E8gWo0ROh2AbzNEIORIAzNnrAKSNOItfVmSysRFoMShm8ODFec8OlxSgO74WGhQ/f3UAKN3/phToOYNu8vEBUyR1Y18hobBGte3IsQs3aHVqSoGeFj21smLy6hOp70yLjQ+2L5ezPLtk17CVVvUUOMUgxcpDMf95SU4MDIul7bo3ZNcit8Ozr+6Ki8Njh+vgzdoC1bbjbZBbdS88//pOXnc+Ha4D8A5JmquTvqoBJowhMWevy5yVoPGx6a7xgRvlQ6tTo2TfIVYQ8l5piKlFk1hByGf2ZRkrCOnGrU5Nzi/fVvIoLzmsjfB27TVJ3RDNnR/sNvd8+d3mHrPWY1FZXRCZVF4pEHjJ3fv9978EcNOa+fOa2Zdzoezgf6FvgfcvvwfGKgRNvq/fsk+uYxwhfgNZt7hllq/TVQAAAABJRU5ErkJggg==",peaSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAQFJREFUSIntlD0KwkAQhV/EI/jTpYt2CjYBFYSQRhSsxSOJeIxcQlIG0gS0U7t0MbnD2iQhGXaXWbX0gxTDvjA782YH+GOC77kAIKpvs14ptZOp3dIulo5UZ5FYJFGAXn8IALAdT6aptcfTAaPxAACw256l2o7szyLPlDenPO4v7bk0wa+T1FAPylgK9aCMzeGaqUJlYBOWmSqUHlB0fdaNd5ebQJfkEsZ0vAW4VTLNFEkUiCQKRPoMKy0ARgW3a4rmbcpYicl4s2GPt8ku+pS6j7SXFabvQupBkWf1RFBu15S+C+3EfLyLuPunVYHvudZsvhfN+BLGXycx4mdL7k/FG2sdid9DA0ygAAAAAElFTkSuQmCC",pumpkin="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAu0lEQVRIie1UuxGDMAyVOUomYA52yRzpU9IzR3bJHExArzQg54S+puIur0On97GFBXB3lAYOZvhZA5wfE3283h9Xo2sVj6JPM4CSAwRuIHMCjtD1SidAoaaJub3cAPEpMBZRyOolk+IRWlCWqi3OYN3yohrnMKD06wYwDj6Z18ah1nYt/DUwk3FDLmjhym8awt/guoE2TG34HOJDi5I1Q/ehZcUtDl9i6rrYU9VGu0/cRcSVqecwwb6b4wsIwjy5qWuN/wAAAABJRU5ErkJggg==",pumpkinGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAgklEQVRIS2NkoDFgpLH5DKMWEAzh0SAaDSLsIVC1zu7/lYtPGTY13iWYSHAq8KtX/q+jLw22oS3oEFwdzHCQOMUWwNwPsghkCchSmBgxhoPUEvQisqGkGk6UBTBDYRYR63KYPoI+GLUAPYjgqYRgGYBfAdxcouOAXAtHLSAYcjQPIgAOZi8ZT91aaQAAAABJRU5ErkJgggAA",pumpkinGrowing2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2UlEQVRIS2NkoDFgpLH5DKMWEAxhqgSRX73yf2SbNjXehZtLkQUwg1+9+4PiEzEhFgaYJWRZgMtgZFtglpBsAchwdBeDDP786jvcfF4xTgayLMBmOMxgkKEU+QCX4egGgywhKg5g4QyLLGQL8LkaZAHBVIRsGMg1IAALd5DhyK6GyaMbDAsujEiGGY5uEHqOghmM7FpsuQ7FAnTDkcPSIlcenJmINRivD2CSyK6DWXBi8kOSkjbRioeMBSiFFsGiErcC6hR2xDiA6DggxjCCyZRcQ/DpG/o+AACfiHQZOpMMxAAAAABJRU5ErkJgggAA",pumpkinGrowing3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA20lEQVRIS2NkoDFgpLH5DKMWgEPYr175P3JQb2q8Cw8ZsoMI2dBX7/6gRKWYEAsDzBKyLAAZjm4oemKBWUKyBeiGf371HW42rxgnnE2WBciGwwxGNhTZF2RZYJErD45MkOHYDAYZCgMkxwHM9eiGwwxFTjnIPiE6DmCuB2kmZChFFpyY/JBoR4EswqkYFiSwyIL5gCoWwAwHGYYcNCAXUWwBsuHIYUk1H4AMwuZKqllAcx/ASkdQWYPsE2r5AKXYpaC2o7y4JtZykjINsYaSlZPJMRxvTibXQHR9AG+ifxnYavyUAAAAAElFTkSuQmCC",pumpkinGrowing4="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA90lEQVRIS2NkoDFgpLH5DKMWEAxhqgSRX73yf2SbNjXehZtLtgXIhr569wfFJ2JCLAwwS8iyAGQ4uqHoYQWzhGQL0A3//Oo73GxeMU44mywLkA2HGYxsKLIvyLLAIlceHJkgw7EZDDIUBkiOA5jr0Q2HGYqccpB9QnQcwFwP0kzIUIosODH5IdGOAlmEUzEsSGCRBfMBVSyAGQ4yDDloQC6i2AJkw5HDkmo+ABmEzZWyfEwo5c3jT/+IigsMRdh8ADL8YrYeSmmgP/USAzGWYHUFckFmcEscbHCBwjeqWIASDAQLe9wKKC+uibWcqIgi1jBs6mhuAQBXJIAZAYF9rQAAAABJRU5ErkJgggAA",pumpkinGrowing5="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA/0lEQVRIS2NkoDFgpLH5DKMWgEPYr175P3JQb2q8Cw8ZsoMI2dBX7/6gRKWYEAsDzBKyLAAZjm4oemKBWUKyBeiGf371HW42rxgnnE2WBciGwwxGNhTZF2RZYJErD45MkOHYDAYZCgMkxwHM9eiGwwxFTjnIPiE6DmCuB2kmZChFFpyY/JBoR4EswqkYFiSwyIL5gCoWwAwHGYYcNCAXUWwBsuHIYQmz6OnCxyh56vGnf3iDDEMSZBA2V4LEQYZfzNZDsUB/6iUGfJZgWIDLB7J8TP/RDYfZhM8SrN5DLsgMbonDXVyg8A1r/USMBSjFLRVrOUaS0jQ5Fo9aQDDUALfWiRlPIsF9AAAAAElFTkSuQmCC",pumpkinSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAt0lEQVRIid1UwQ3EIAxzK/7dI2MwCaMxScfIHkzAPSoQnJKS0uvj6h8SOI7jALwWRJSJKN+957RHPqTjECkz8zJ7bx0p9CHB0okGsQAzL3vcZjntsMzBOqv/RZ1626aWmhm4Ql7jBoiRKwKuFhf34BvWvZCEuHqINot8SGoRSUjt4Iy0COhsNMJkUVtkJOZxDBfv15vZWXQlLe0bQLfNPAON/PZ3bSI/QdfBbFL2uD2TrPd/1QDwAfx6iTTKaBYOAAAAAElFTkSuQmCC",spinach="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA7klEQVRIie1VXQqDMAz+OkfBu3gtnz1Ln3et3kUYSPegwTRNjNsYbLAPSjUmX/6aCvzxqyjbchEOCCzdgtSvT9PscmnCgjECQ1dLiYzI87LupLd+b/gumlcM3U5ASD0wRp08L+S4yVx63NO3iHgQGkQmV13LIeFyGYSA3QOLzMomL8Dt3nD6TdYiPIr6VIm4oVUmz9EGeYrqJksyWRaZpXJU9WPKjTw5OXpqDngz+bsWNe3GHEgHAdNcT6eVCc/gQMe7iwK0vmjNNUpkDZrumJeqvuhMG7vJ3LAl46S03kbBGAtSf/pf8JqTD5J/Jx5qr2HmmdxT5AAAAABJRU5ErkJggg==",spinachGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAdklEQVRIie2S0QnAIAxEzwpO41pO5VpOI4j9UmyrMelfSx4ICnrPgwCKonwfI7odXO37mFlvDzKsrRFvn7JXgllYOwuYC4KrPWz1Y29ZLegG90AASOXaZCOZC2I2SIUvFQsoibdgybcCStJgiFazzBpBYabyV07e8yJJjGp+5wAAAABJRU5ErkJggg==",spinachSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAV0lEQVRIiWNgGAW0AE3Rtv+dDBT/D7Q7BhA0RdtSzftM2AQPXH1CkiE0jw9q+pi2gC4upUp40yUTDcqIczJQ/D8oHTawgKySFVc4Ui18sblohJf/QxoAANEqIe1OcIVOAAAAAElFTkSuQmCC",strawberry="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAR1JREFUSInlVbENwjAQPCNIhSjp0oUGJohYgClIxRCZgDnYgg0yAGXS0aVOQ5AwTWzZzv8TU8JJkWznfee/s2TgH6GdT6oBAKhY8uKc2cmlbAyHIVSmxvybRQqoYSMAYBDTxTmz49GGCPLRZqIbu2Y6mCKgAaBP89GP5F55IoGYAoBPFuk+zS153XZYHGaTyb2BJMAhuVd2zIQvdiCS120HfdrDdOiG74LrwCOv2w7b4wrP64sspuyKuqab9ZIlJ0g9UAK6T3MvUAnGqkvZkFaxDNypQ2FTx+UVZiAGy8HNyLlZKhT4itzFQO4dWjQ5tEOaU+Thgg1XupJTT84KxCD0m8I8ijGCmCsgbarbDrvHTdo3WQDgn8LY1+9H8AYaOaFdHXkaZAAAAABJRU5ErkJggg==",strawberryGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAZpJREFUSIntVDFPwkAYfWdQoAYMgdiIcSHK0ASHslgGBiTGGBLZXJmMHXCE0ZmasGDSVf8BA4MhTiyd7OhiogMBAhEMDmrCcA7mCpUWMDI48KZe79173/u+ywELLPDvQWYhZUoBeH0cKp06Ta1vkbfXd1xnX/5mkCkFTOvaoEtlSYSq6WAmo7AzXJpUcW3QpZzHCRe3YuzJkohKp04BGByvj7NN4LATr3TqrGLKhFVNBwAcrG0QAD85lt2wTMAOMjy0c8b3kX+TVPstWu23DM7o/tQEnMcJ9ABV0zFqki0ngTSgarohrGr6RHHLBLe9pklAlkQIvAKBV0w8VdNxyu8SgVfwGGzbXpaxBFeOFEmUBYr0UGi0/8yc9V6WRBxrN7YzGDNINAQA3y0ReAUXnjg5Ke+ZDBlkSUS2nMRhMEIiuLZMYDlkAOTe/UyUjyTZbvCGIUN82U/OV6OE/dtp8jYyFglchYJp/ZnPo+LVSc59R2UMh372tA/M+BJMRTjmQqhI6KUWpaEioeGYa+azkyqgv6xjPmkWmDu+ABYSnXTgyhitAAAAAElFTkSuQmCC",strawberrySeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAmJJREFUSIntlL9P1GAYxz/vtbw5rw1X7gwOhKRAIrtMjCYmJCbEyb+BBRddWJxcWHTBxb/BRUNiojExrsawuAgJeAlBPQ/uCrRHeend63Bt0/uJTjrwTG369vs83x/vA1f1r0v8yaHXj+4A6Gl3jmOvLtyFRVRL6byZF2bOZGpp9e8bHLx9nj5/3/1K48c+Z81AjzsTwl1YRBpSx9+Ef1QFoOiUuPXgRRdO7pLhNaCvu7OcNQMAceI1kIZMhhNCtznxGrrolPQgAHMUetSORBiFWhqSe0/f9zEDOK3XmHbnaAa+KFj26AYfntwHOlSnllbZ3lwHEKqlBjFDtZQoOiWs8qSwypPY5RujG5x4DT3tzkHszfzyGgBbGytsbaz0MePsPEYxsYtlHbWjPk+7GmSpZqXY+fSRolPSzcAX1Z0vWO4Mh5U9YQJjCN1S58JXPra0NT3B6TVZFCwby50hakepFAD7lV0Klq0TZoeVPX5W9jTAxXmINKRQLTWaQRKx7c11wijUtrQT6Rh3JsSxV6folNLzU7M3RRuwrlnM3H3Yi92ZOPuS6DzmOKlh0pCp4XE8kYbEVz55M4+ZMzUghl22LomagQ+gLzwPacgUMCnVUjq5YABhFGqA8PS4LwgDGxzVqunPcTR11I5Sw/NmvotxonujegCg4wGHN4h1TkF85ScSML+8hpkzIZbVlnbK8rRe6wpBtobuoqzmymsQHP0COkH49uYZGanE53evGHcmALj9+GUXztBVkb1kzcCnYNm6l12yTZM1MqguW3YAFCxb71d20/fYHxFG4chVfVX/R/0G94oNtjdxwCgAAAAASUVORK5CYII=",compost="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAANFJREFUSIljYBgFo2AUjAKCgJFYhSbafP8NlP8xXLjLxMDAwMBw5uonovQSpchEm+8/Pnl8lrFQariB8j8GBgaIGmwWMWHTlOLH899Em+8/suEQg0h3DIYFJtp8/2HhjAyQxXwc5LGKYwN4ZZENQgZbDjzEKl6cZIThC7wWIBtUnGSETymDj4M8Q++8cwwMDKhBhREphCKVWACLcPwBiOQ6YsSQAcyhTNgE0cGTx/cxxHDFAzrA6gP0JImcUgjFBbp+eBxgcz1y0cDAQHzxQFcAAE2zRkug2a02AAAAAElFTkSuQmCC",corn="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAbRJREFUSInVlDFrwkAYhh+lKB2CToVupW5C6VgQOrl07OoiCrp37WKhS/5CQUERxNVR/0CgowhxUtwEJyWDxKHpkNxpktNYLYV+S+AueZ/3e7/cwX+v2C9oOIf04ueKr6cVlsMc62klCDsb4CyHOWzLhLmBbZlKyKkAZzGrA7BJleE6txdycZLzPrBqwtwg4UE0LYttmW5HO/VTgLOeVrAtk6SWxQaSWhZWTWwPlFg1fR/Iqd89u22Nenv/LGcxq4cEAJgbbkxA+t7w6caFeKmYoavXJEjlPLFquo6Fc7YzSGrZkLgEiBqMOyqIs+wjY7HiD248XtYJbxaXt42QeAiggDjraUU6tC0T7etTwkQn6SeU4hAxZOEcAs+5IYeavqnuFVd24CvPuXAqn976VYS4BIx6xFrtSWhzN2vbMtmkyrKDfZkH62BEu4PNv1QBA8/QUeKRAJF1/q1BV69t13UovL47B87McYDHDwCDrl5jMO749rp6jQLREN9JLhUzcqPVniiFg9VqTw6dfnUHrfaEUjGjFA/+DFEdHH3ZCeFjct8t38viighGdYqwEhAEnSP8Z/UN/uTZrzroGIUAAAAASUVORK5CYII=",cornGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAFJJREFUSIljYBgFo2AUjALaAZdGhv8ujQz/CaljItfwPZfZiFJLsgWkGE4eCGH7zxDCRlTwkG0B7QxngAQRKerJiuRBZQEjDnFKwhiXmaNggAAALTwUmwa1nZEAAAAASUVORK5CYII=",cornGrowing2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAIhJREFUSIntlMENgCAMRb/GdBu36AjsY9jHEboF23DBExyMUijhxjvDf9A2BRaL6bBHYo9kvb9r4QAggWCVVAU5fFTShqMER93lUn9QuOPW/aguwYekZQD6BK9wCaT2xiTI4QDAZ6yePSwCCVSC5UK1NyYBn1ENNjNvTI1MF/zVcWQlzOnNwswDkWwuFghkVfgAAAAASUVORK5CYII=",cornGrowing3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA3UlEQVRIS9WVsQ3CMBREnQFoGQBqiqxCBkIMxCwU1JkiA4Au0kUfy/Y/W7EQaVLY/u/f3XcyhM7P0Ll++C1gup3fVPi4z8lmuCe3XlSAw8/XsjLGyyHYIiycW2djkkWn63FVQohaHGckADZaCLtOKYuHRgYQAhUAxJblptEFxCF6oVYpsF5b/3MTk1IhTxH9xns3ADsqjav3JXAziCFquFX3wEKsRUrgsgILQQaqbU0AwOwnohR8E4AXTZmoJoBSuClkHIL3u98DO+t/A9j+ZN5NTax/5Vodci2wO+ADXJmJGbhBn08AAAAASUVORK5CYIIA",cornGrowing4="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA9ElEQVRIS2NkoDFgpLH5DANrQXC98n+YD9c23mXcMtnnv0/uFjgNkoOpAcljCw28PgBpPn/5M1ifoS4vA7IlMIPR5dEtISqIlILEwD4BWWL6kJ3htPxPsDmEDAepIcoCkEJkS2AGI/sMV2Ih2gKYJSBfgCyABRmhVEjQAvRIJBSpJMUBckTCXAwSw5ViKEpFsPAG0VSzAOYibMmVUNjD5AnGAbolxEYuyRZgy7XERDjRPkD2CSgOiA02sixAz8X4Ip4sC2AZjZgURZYFxBhMViTDIprq+QA5zVM1J2PLTNSyAF6TEZtjkdShxCvJkUyqhTS3AADroZQZ0g/6xwAAAABJRU5ErkJgggAA",cornGrowing5="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABBklEQVRIS2NkoDFgpLH5DANrQXC98n+YD9c23mXcMtnnv0/uFjgNkoOpAcljCw28PgBpPn/5M1ifoS4vA7IlMIPR5dEtISqIlILEwD4BWWL6kJ3htPxPsDmEDAepIcoCkEJkS2AGI/sMV2Ih2gKYJSBfgCyABRmhVEjQAlhYJ4poMoAimFCkkhQHyBEJcjG7KB/Dz9efwJFNyOUweaJTESy8QTTVLIC5AltypYoPkA2BWUJs5BIVROiuRI5gUK6e/+Y6WAm+ICM6spCDCxbZVM1oyBag52J8viDLB7CMRih4SCoq0H1AbFIlywfEGk62D4aEBfCajNgci6QOJdhJjgNSLaS5BQCfTpUZV5cHzQAAAABJRU5ErkJgggAA",cornSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA2UlEQVRYhWNgGAWjYBQMRuCtxfDfW4vhPz3sYsFmuYetHpR36f/WawyM+AxAdygh9QQdAAPn774nqBnZsTD13gyPCToaGTCRazkl6pEBVpfCgpUYn1AaBXQB+BI1zjRATcvxJWqsaYAWAFc6oYsDKEmkVAH0LNhIBjizDL2yF85yAJFyIXH48tljmjgCbzYkN/GQUpBhdQBE4yWyooDUygxnCFAjuMWlZAlWTlQvCWGhJy4lS22jSQPE5n2SghnZQGrlCKINQW98UCtbklwXULtcH/AoGAUDDgAvcmw2gDIKjQAAAABJRU5ErkJggg==",potato="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAArUlEQVRIie2UsRWAIAxET58jULuJm1m6mZtQuwMWyhNjOAgWNl6FIP8IpwF+fa2ucV+oZVkNAgCsy/HgN2B0x3iadZ7FIERwVGqQM+mtcL9dkyk8p5oKHidnklWUKqiCp1VJMYOwLvfNcszAJQP15KPTM2BZaBmY7jzVm6+oWdRA3jG789yPZq5ACz0HB4CBwWR4WpgMzhaKQZ9gCi8tqo2tFmx5Sbbm1hb/6yPtXRM6Z/YOWwgAAAAASUVORK5CYII=",potatoGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJhJREFUSIntlDEKwzAMRb+Tdg3oAJm9detBfFIfJFs2zT2AIWtI3KGkQ6gixR0KxW8y2H5PYDBQqfwMHyj7QFk7dymVd7fltQZljslJZ8WNvRAAOCbnA2Wm+b137xtMYwsp0linZZqxlwPA8FgP76sBTeLTVZzeHNhEZ+WmAMfkPoksclNgi5TIzYFvqAEV6aHUP6bAWflXnpbpO+4f7cK2AAAAAElFTkSuQmCC",potatoGrowing2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAP1JREFUSIntlD0OwjAMhV8L3VAlH4DZWzcOkitwwR6EjS0zB4jEGpUwFAc3JJS/CfVNUWP7s1+SAot+ITYU2FD4JLd+pXjbDbDkkUI0uNTEOlcQAGzvKjYULHnglAdb8thtazDGnLYbwKBge1dJXJUmtd2Aw+kCdk2ElKaz5MGuiWsA2G1rnI8rCCRapIvHZJngNpF8t+THbqV47ypZS75ocgZ6k12DthsmMB17Pq7uIDPaIpAsQAeUutF7uqkUos9gMkEuIJX4XrIlzX24ptHrZKIctGTLW9Les6GA/ebhvj+7abMP7Zldr8TMAr7VAphV6XA++jXP1Fz0r7oCqWWiCeEH+pYAAAAASUVORK5CYII=",potatoGrowing3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABQ0lEQVRIS+WULQ7CQBSEtwLBj6nClIQEj+Ai3AKJ5R5IBHfgIgg8CQEMCsOPQJS8pdPMvnbbpoAg1PRnu/O9mX27gfnyFXxZ3/wJYDSOYolyvTpax/q9KObSiESsO2yb3eFmmmfLMfcwMP1ey5w211QbcA3LALg6eRYxXAyQb/LOMIFodw5AV8sTdGUiDICMsSNxLO5kfgpgca6Yf4YjOMEYYIgP7jIAHQeyxwQIcOUshgYA0AHoQa4mD6Cr1RFi0Z2ImFy0wOKA1wfOsQ7cUWlfcytyv+dBAUDVXIweSwGoIm+yD8ixcAPkOuBKfTvTJ8JO9IZz1sC3G3UU2uVbR0WVGD4FsAfRaBxJB0Gz9Cwr/SFRihfTgX08Xx4m7DTsfbbcy6dCjSoAKw5hHcdkvi2E+ACvc7ne5WhWcVAPk8z6fcATQYkRKFHnkOsAAAAASUVORK5CYIIA",potatoSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAdElEQVRIiWNgGAUjD+R5MfwnR9+UVIb/2PQyoSsi12G3nmIXZ8IujAmI8dmkbQyMxDsJiwXkBh/RgJIgHAWDDFAzMrHmg1tPqWcJzoyGK2cOGMCVCalaVBAs7HABYuJj0jYGRjVpTHGifUAMyJlNQWE3cgEAMasir1+5WT8AAAAASUVORK5CYII=",sweetPotato="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA6klEQVRIS2NkoDFgpLH5DKMWMEQZ8P5HD+ZlFz7DQ4asIEI2tDlIE2z+1TuXGbRVdMHs2nXXGWCWkGQBzGCYobgSCMkWEGswzEKSLAAZjsvFoGCBAVjwkBRE2AzHZShycBHlA1yGI7uUojhAtwA5lRDK/QR9QIzhyBbiSqIgh2AkU2IMx+cDZNdjWAAzHFdwEAomdMNRLAAZ3lmQxvDr0WFCQYxVHpvhFFmA7huSLEDXjC9oQAaDAHIBh+xFlEjGl2uxhQsuV+O0ACSBraREz6UwPi5X47UAWZJQWU9MaiCpuCbGQHQ1Q98CAPnipBlXIGtSAAAAAElFTkSuQmCC",sweetPotatoGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABE0lEQVRIS+1VIQ7CQBC8fgNXQ4KrxRE0CoWo4g1oBJo3oCpQKDTBYetIMHV8o2SaTLPd7vXO1DScau72ZmZn97aJG3klI+O7P0HQ4QlblO3SmvmX16qXqTxHnBWDfdMiXN6fV+5dfhuOV/HpAOB8mc9b/xfZzF0OT5PEVCbBiSJJNAFifCQdAuviEAFIsZCNzpL3gt4ycLtJ3TF/NPGnYl3f7lUDTOW+OnhrQI+hjOAABokkoIAoixCsbfIRgIidRDEWSa8GVvdI5czAssvquJZAt6YO1iS0hvvMRr+HDoH03SoawLAv1fPbN5R6Fg29SqplJ4XAvS/ZUkP1PIsBjyVoZ9LAbPZO5QmP6+CvKjJgdIt+t2zOGYhEhSEAAAAASUVORK5CYIIA",sweetPotatoGrowing2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABLElEQVRIS+WVoQ7CQBBEj9/AYUhwtTiCRqEQVXwDGoHmG1AIFApNcFgcCQbHb5RMk2m22927MxWEc727zuvOTu8Goecx6Fk//CGgWI0q2Po4vbOqdzdRiD2CIOam5ThMimE4bG5ZEBMAofV+Fp6PT5OB+/EVIM5BiA6JrqwDsMQhogGxOQlpAWiBFV0AMGQVFlTb1wBS4vwq7rOA2j6806nA+vrlYhS25bXeuzvOq/Pl3VTigTDfAUBAVsJNFAZEA7CmGw4bTYC2yQMAxBizJ9J7rNHSVg9kNCGurWEFMbvMmHq5lwBpE/sEu2Q11t9dV6B951FAAS3oPVsBaVlknTESkgJGAd694AE0zHs/60S0IL8FYIKkDYxq6srNsai+YBLD1ckBpMSj670Dvl62CygLcuKEAAAAAElFTkSuQmCC",sweetPotatoGrowing3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABSUlEQVRIS+WVoW4CURBFZ38Dh2lSh8WR6qqqChTfgK5A8w1VK6qqqpu6WhwJBsdv0NxN7ubu7Oy8Lckq1gDz3jt35s7so7KJn2pivt2hwOJ1fqWth49z0YHBDQoCEDDEluuHhv+4mNn79qeJZ30MFwHa7Fd2PFzas7/1yQhnkCIq4AV7AhEcgEjAx6KqOgJqgS8bMDxaRVYVK2kFSnCCCY0EvXUQ6VUQNUyzpg2IaQ98f5BATwBwrUSzzazxzcbeUMDblAmw0mhswQl7oKOpDaTfbLJf0/6EY5rNPWAvz3N7W39Xu/rp+vl17rx0ak/00jVN9r4jBihhAFNAhbLMaWFnTHkl4JNQ/Y4YfkOEiemZaALTe8SLKNwnMXQfFW/DqBLCdO1mgcwuWvXv2zQ6QP+5NgaOvUWLzKz9g0kyHeSMEcgcKK5NLvAHBzcHKPX7AFMAAAAASUVORK5CYIIA",sweetPotatoGrowing4="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABQElEQVRIS92ULQ7CQBCFt9fA1ZDganEEjUIhqjgDGoHmDKgKFApNcNg6Ekwd1yiZJm8znZ3ubCA1rIHuz3z73sxs5kYe2cjx3Z8Cik3ewrr63PykMjhMwbfHhXvW747xqF6OQzic1q0L9ABacK6E1ufl1NfFrJi40+4ehXiAPEw358HkNyg0z4dUFCjAZm4TrOJAbU5TpOZABkIw+rVUSUigYCg4zeMw/efWDJ0hu3o5IFsoaXJoicUch/JzqL4OIKtH+mslHBBuYQCIeasBcFtNHe8PrwAbtXKUfmOPZo9szB6AFrXylJ3NrZAQFRDLgwyOQrCsgYVfdXKKNQEAKnip8bysV7m7XBvfaNYToQJk/ePlpIY5VMtWAqyXlOKZbz0F3pe3bh8gKc90kgJsosBcHYBByysTpoKUILE9owM+Bp4PKJgW4PEAAAAASUVORK5CYIIA",sweetPotatoSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABUElEQVRIS2NkoDFgpLH5DMPIguRM+f+w4Jo7/SGGz2Dy2OTwBTPYIJDmyAR9uLrlCy4yIBsEkq8tTgbLN/fORZEjFIeMyJrvvD2DYQmyPEwS3RJ8vkexAGYAzCKQT2Au//tEhoFZ5gncATBLCPkeHkQwg5C9DDIEBG5v/8Iwf0E3Q2JCKYOqJw9YDBSE6L5DdhgsiOGRCfMmsotBBh568JbRTkH4P8gCEEAWA/FB4jCfYQtirPkAZiDMMJBByGIgvpevF0NosCPY0raVjRhxjeEDdBXoloD4IEO3bd4GNhxEwwDIl7hSE04JXBaADAIZjs9QZMvwFhXYgoUUw0EWEbQAFBwwV8OChljXE7QAFrkwS0gNHqIsgFkCSzlUDaK//5/+Z2aUBgcjciqiahCBLMGVBGGW45InOohgPsFFU2QBcjDhYlNkAT7NxMgN/ToZAJfI8RlnygRTAAAAAElFTkSuQmCC",olive="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABdklEQVRIS2NkoDFgpLH5DKMWEAxhioMor0rvP8yWSW2XMMyjyAKQ4bpGInBfXD73hgHdErItgBn+9s1HuAVaGVcY/Bh+opiJ0wJkr4NMQHYZSE5KjhUj/Im2YCMDx//rM7TBBgiL8INpkPdhFuGy4Nmj38QFEbIFMGciW4TN9dgMB+nFGkS4XAizDGQYyBIQjQ0gByfeOMDmUpCBYIMZ/zJIyXKhmC8swgvmP77/laGp9CTYbAwL0CMXYsI/Bik5djDr2aM/DAwM8KQPFf8HNwoUlOIhR+CpCcWCvCrd/xCDYML/IZH8n4Xh8vnnYHGIrxgZYK4FRT5ED8hSkL5/DMipCcUCSOTqYgSrsLAQkgVsDFoZl8BqXq6xYbh87jXUgr8MDAzMcF9OajuPGUS4LIAEzU+oDxAWXJuhA44PkA+ePfwDjhf0PEMgiBCegVjwH+pahDZQnMBciy1FERnJiJyML4cTZQHWhE2BINmFHbF2jlpAMKQAvHOcGReApVIAAAAASUVORK5CYIIA",oliveGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABbklEQVRIS2NkoDFgRDZf20LqP4h/9cQzFHFK3AA3CGS4e4Aq2KydG27DLaHUUqwWwCwB0dgsJcVHGEGEbCCMje4rfBag+xgjrEEKqqN1GVqXXkZxPXrcYAs6bMGM1QIZJQ6wI5/c+wGmkfmgBAAyCJsYNh9jBBFMI8jgeEtVhoXHb8NDBGYhsqUwh4B8feYrxEHIiQQlktFdi42PHEcwx4AcAjIcZDB6UIItQA87mCJYOINct+fwc4aTj97A4wWkxoSbAyWusCUGDAtwJVFclsBcjSs5Y80HIJfBwhNmobmcCIOLrSTYJyAalMqQgwNXhsRaVMAMg4UrKOUkhen9BxkMAiDD0VMRrryBtcxBToagCAS5GgRgPgDFBXJqA6UuXOUX3nyAnARhLgRZNm/VJax5AZsvCGY0WPAg+wBkASz1oSdLdEtwBhG6RlgcwHyAK8yJsgCb5lELCAbpkA8icGMADRDVMCBKEcHww6MAAJp4MShPAj9kAAAAAElFTkSuQmCC",oliveSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA6UlEQVRIS2NkoDFgpLH5DKMWEAzhgQ2i+BCL/wvXnMDrCJAaZG+gq8epGaSxLESfoWvNRQZslsAMBqmRMTFheHLmDNgedPVYLQBpntSRjFMTujzIYJglRFuA7DJkTTCfIRsKY+dVzMXwLYYPcLkOphlZHl/QwOIFqwXIrsfmdfSIBRmGKzHgtAA9geOKbEIZgWAQ4Yo8QgbjDCKQBHpEYos8qlhAafiDHIE3o8FcCYtAXEkUX/wQXRbBDIf5CjmJgti4gpFoC9DjBl/uRY4fkiyAWYIewfgKRJItIDb14E2mpBqCT/3Q9wEAeMK+GRpnxQAAAAAASUVORK5CYIIA",onion="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAOxJREFUSInVVCsWgzAQnPCIqeUc2MqaCu5QhazkAlW9QGUlqndA1FRie45aTHhQ0/RBPpvl8ehnVFiWmZ0su8C3sVrL3nV2PbsQhRKaWgkO0Sy4XHBFgw7mYpLAsPqmVoLzDStJk+53WwDA+XIFV2DxKwpWEUfoAeB02IzixfEGAGg7moN8GUfoVZWTBcisJEW8VzQif9zthFdMVfnbJVvAIk9SixhJyhKZ1mQt5nLkgSXgrd50ArBc/NYk/4dA20HIrJxM5JsH2sHwj9HnUOMNeCeQnAUjRk3z4quCvexMId2nWcvOJaQRIv4YnrKKcGJDnEswAAAAAElFTkSuQmCC",onionGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAExJREFUSIljYBgFo2AUjIJRgAm4zFj/c5mx/qeZ4a1LY/63Lo0h2hIWUgyvzg9nePv6DUmOYiJFMamGk2wBOYARixg1IhCbuaNguAIAavoTMVykVcgAAAAASUVORK5CYII=",onionGrowing2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAl0lEQVRIS2NkoDFgpLH5DKMWEAxhkoJIwpT3/4vTn+F60PnYbCNoAbIhQ9MCkLdx+YIqQUQXC5AtgbmaGNeD9BGMZFjKQDd4aFqAnM6R8wO+3EZSEJXkhYPN6pm0EkwTYwlJFiREuoANFhEVBltCMwtAlixYvmfUAtS0AUr3sDigNIj+EyzkCSuAJx6iUxFhM7GrGPoWAABQhIsZroeW7AAAAABJRU5ErkJgggAA",onionGrowing3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA70lEQVRIS2NkoDFgpLH5DIPDAglT3v8vTn8GOwYXG1dI4PQBMYbC1CCrRbdocFiAHDTYXE2WD3CFN1UtwOdyYiObYDJFdzGID7IYW6rClpIosgDdMoosIBTRJOcDZA3YggkURPhSD0w/wSBCdzlMI1UtgFlSkhcONr9n0kowDYtofAUmUT6AWZAQ6QI2S0RUGGwJzSwAWbJg+R6qWgBO+zgA3lAgFERggz+v9mNgElJk+PfuPgbNG7oJb4LBZ8H/r3vzMQyFmYZuGbfzRJAUhnnYLMAXHPgSDLIc3FxCQUSsgeRFEMWmYwszahiKbAYAYw7wGetnhO0AAAAASUVORK5CYIIA",onionSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAQklEQVRIiWNgGAVIQEFB4f9AuwECiHXJ4HExtQBFPhpawTG0XEspGPy+RXfh4HcxTcEI9z4UUCUUhk5QDh2X0hIAAFsvEdRqfNUJAAAAAElFTkSuQmCC",soybean="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAxklEQVRIie2VPQ6DMAyFX3+Wbp27IuVuHXsajsCdkHqHbkyVO4RExDiOQ9NOPAkJiPO+h2MJYNcfRfOV6NDKvOv9zfOe+h4bAbJqAYjpfwGg20Mv+AZAXQ9cHDCN7QFJWzTIFoDac67aMSU3AO+XvMhHFKj7gpj8dLVvsgLitIT0HCKlF19I5iH5NPoD5cqZWwCrA+UQzRzQW1SclpJ5bpEAwA3+QZqY2bhoLhUkqcNBLiGW1EudtUXBuMo8V7z6aWwx3mXWB53sOFv+9drCAAAAAElFTkSuQmCC",soybeanGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAApUlEQVRIie2TwQ2AIAxFq/HCCg7Afk7ifgzgChzxYBp+qq0VboZ3Eoz/t/2VaDDoZWr5aN2o4PnYdZ3ZI4aC/BzidQ7xbug2WDcqLIQiIRLlVE0s1NZkpTnVdyickz2ixXLnSp+q5ntLnMiRQYj3UWDVMiOJ6S7njgZ4Z3XjXlMMHOGxaVl8+g/YRAZuBf2agQYLdm2R18SiuQMvWgXq2nVoDv7KCeIgQHNazaXdAAAAAElFTkSuQmCC",soybeanSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAr0lEQVRIiWNgGAWkgt97Ov+fm5rxn1rmMaIbDmNfvnmfwSh7BiOmFtwOu3zzPgMDAwOKPiYqOBLuMF11RQw5FAtYXcoZL9+8zwBzCTUA0UGADyDHGSnBOjQASd7BlVLwAaJTEb6UQhULKAbE5OBzUzNIzuXwcIQFAak5mBCgeRDBLYDl4kEP0OOSqtkaW2lMUj4glIKwBTFRPiClnoA5AqaGhRgLSAFkJ3FyMhldAADK8WmxC7dL5gAAAABJRU5ErkJggg==",sunflower="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABTUlEQVRIS7WVPQrCQBCFJzFdOlsVb2AnKIinEDyj4ClEULDzBqK2duliIhN4YXZ2N9kYTZM1bt43b342Ef35in6hX+Zp+T5nNFikFCWZodkbAPHhOqbXobAgTkBTRNKxFMdzDbEAbRFJQH6kkiPnazaN6XorqjVDkhVV2gYgJKJeDkIi0k3R5riXA8A6dVFTRC6h8ZxKBm22I9rvnvS4mGkP7iIXeLLMamEJYChABgB/8F2+0FR8QNgFO9BuaoAU1Zvaii/f1amyHGAD7gy7n1LiowA9j17H0QAAXMg6WDXQmwGSEDmtXxXZZ1l2EedeprJTF2kXLMS2XWBAXOmxjgoMjq/gPjHddXLaW9sUm13FRzGDAL6oZTfxGqnQgxVUA51jnVdfOwY50Pl3Fc0n1AnAwl2FMAvoNm+RpQus5VQ2CenvBH73/uj7hPH8Azk1pyhepQfHAAAAAElFTkSuQmCC",sunflowerGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAGlJREFUSInt0MEJwCAMBdBv19A13ERwRsFNXEPnsCchxKQg7aWQdwyJ3wQwxhjzVyFihoh5OiPVL6kxZY+UvTqkzUj9W0BvcLUMADgK0WwBVC0DvcHx334WwD2dYm3NOalIH6AbaHXzyg1mdiJmJYRz+AAAAABJRU5ErkJggg==",sunflowerGrowing2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAHFJREFUSIljYBgFo2AUjIKRDGRMGf5TwxwmXIaHhEuTZAkutVgtIBXgcxCGBciKiPEFzHBcAMUCdMVrVj5leHKagRGXAxgYGBienGZgXLPyKXEWwBTjchE5cYMRRIRchAvg0sOITRDZhchBhEt8FFAEAPyuLmpSKFsiAAAAAElFTkSuQmCC",sunflowerGrowing3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAKlJREFUSIntkdENwyAMRI+qW5A1sgkSMyKxCWvAHMmXI5ecSVH/Kt4XAdt3FwOLxeJP2XYc245jtofdv1hhiB4herPJ6mH1N4Fa4HJqADAlYnET0OTUUAvctyLM0FAAGMeX996QKcCGhOg/kkiNnEP0Q4OXAHPaD9fLl8E5NYxELgFZri7Wkfvly5u+Z7z1Ry1wGe0xNvvXjwn6JLNYPdSF3oN2at0vfuIEQtBnyE8BEcQAAAAASUVORK5CYII=",sunflowerGrowing4="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAANFJREFUSIntUkEKwyAQHKW/0EM/4U8C+UYLeUY/EvAZOQT8hv6iYE+mG7ubWNqjA0Gi4+6Ms0BHR8cO1iH/u6amxYfRwDrk5/L+WkQ1861Dvj1MpuuRK44vOgCAGKD8nDCMZtsrrrgGHL/maulSKe7nhBigJBeUzwn6aEBRireGzwk6bADsw5fOa0H0XEtkThWdljIA9P05sGPKFbcOeVoNptXgescWbB2y2ICbCGpZCr8OucaF/sQA5ZFObZ9NFuugdvItpDusCpoDVSrtd/yEF231okoU8YDYAAAAAElFTkSuQmCC",sunflowerGrowing5="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAPNJREFUSIntVDEOgzAMPBC/SIZ+IluXjt2R+EYr8Yx+BIm9YxcGJL4Bv0BKhyrEuE5CRUdOQkBy9p1jK8CBA3uRSYtzB+u+i7PM2covJPLruf6PiaT4OSVr4538HdrA3h7KagM7d/7ZEreZT0XcO1aVxOec1RGNA7K2mVBWalkrKxU8OonPuXkoyCVvmwnjEG4y5UuGvgQoXHIXkDpryVBUAPiUTF3RkXT73BDdT44pd3W5eq4Tj2ER4E55cm1g616h7hVOdyyN5U0OCkgTQZ2Hms+bzLG6KsYBWYspWXZqssQKeCW/IhQjuqB9oE5D6wd24Q0PlLoJNXPrzwAAAABJRU5ErkJggg==",sunflowerSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA40lEQVRIS81UwQkCQQzMVSFiURbhQxAswPPtWYAg3MMiLErEKpR5LOztTTYxsOh+j5vJZCbTSePXNcaX3xActut3qew83kPDzH4C+HDqJ/jPx0su15tESCYECRyA5dMIcrVsAKpgv9u4CHK1mkq6V48HTC1TGTLOC441/C9B7lMtYWEFicCKr2mylv0UBOs2zEPrj0PowFLOVQLkerlaSFMCTGHt2GrjqoJmBJ4IsmvHQKXpZhexFbHGBTjrIzWmUFFrUFQ6a91yreqhYcraDbDGZZ6FLhlAYQ+s2H37PazAS/QBL7jGGVi1//gAAAAASUVORK5CYIIA",watermelon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAW5JREFUSIntVbFuglAUPS81rTTwQpcmNowMGAddXDv1D/oVTv0WJ7/CP3By7SKDKQOjCUkXyYOITnTQ+/qA56MmDh08CQkh3HPuudzzAG7417h7uQeA0nSd3jkLpnv44D/iEO9KAOCTnpFAzBKqYYd4ZxawX5+QL7clAHjTvpawO7Dl/X6dy/vNxxdxsHy5bQpYIwfFKiv9xVgWiig1dk/ggSuF47dPWCOHFaus4aD0pv0K6fO7VyFSO1ah1vDAJTcMADoAYA0dFGEGEaXggdtKSKCuuwO74fr0HaWD0l+MG8SXjEgV3K9z6aJDL33PN62F9QYI1IiuISmgjqaOtlHpagWSqoBOXVdYdwPo3RMqDuo7rhM1NaLWUwAZ8JtcPukZR/UXiCiFmCWwhg4rwuzogCLOA7ex0wTdaHTbxgMXAgmKsBY0SrJ6RFy6psDxyDiXZCkCALpc1KHZ+wp5Q0AKHZN9ldPUiGv8D25oxQ++q8nB7rJdfQAAAABJRU5ErkJggg==",watermelonGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAWNJREFUSIntkj9Lw0AYxp+T1jYxViPFYtFJFMSl3CBE3Lp0cHR0yGhAt34FwcGthawufgOHog5SLBWEIl0LBf+QgjS1rdUMVc7pwiVpqTg45Qc33MvzPs+9xwuEhISETISMKuqFJLI0hX2qMq4j0m1AI3J21J4cIDaVhzYzNIp8RsJ9s0+2NusejTwbQ6ljMQDYXVwh/bfPkSFT4iVLUygPbRaLR93aqlnB3YsDvZCEXkgiocooD21W6ljM0CgMjeLi9ZklVDkwVWAC5uyw0wcHZrXm1gyNwqzWkFtIEwDgxgCQz0gAAN6jOMvkqfWNbtEaH8Ab/PBQHggAneYSlLU5VzNo9BBRoqR98jg2AFeNdxxc15lY5y8WOT5veczFkG7Rcn0DW+T/x7g8jctey/0W8fUAAhMA8ARE/AH+TVjfjgN7Xo10M0MiHwN8bSiMmwqMXH0/7C9HzqmYP0z/xj/kH/kBY5CYjlZ/xP0AAAAASUVORK5CYII=",watermelonSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAN9JREFUSIntVNsRgzAMU3odTKN4lIySUTwKm7gfJTkIsSHQz+qHOzvIL9nAH18YSajqwZFmWESkfUk2cgCVPG3sAIDXTIBSiomIqeow25FtBLfcNVtTVavVVBuArc0nrwRBNiMy8x6/PUcQIAFAKeVgG2E4A5JYlsX75zFauSICEbk8vFvBgnlEYmiIZOoOrvpyztGb0wBY9R4u4+32nfTf0771m/wEfXvaDm2NU6eiw9Qd22XiqeNq20JynEhTVS3nHAXZwW2Rpw6SIGndqag4tG32VKTqf4LT5fnjp/gAHB6L7zj2AgcAAAAASUVORK5CYII=",wheat="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABIElEQVRIib1VuxGEIBBd6MAxsZwLDC3DMggtgzIMDSzHxLEDuQSY3XVB/Nxtgp/Hvo8gAImyRrvUuyul32hSRMAUOzZmHeXeRYJ+2JUHumWqAQDAj84a7fphV1fVEwJPAtbQ1KzR0A97TnGZW6TeWaPJGFyc4SXcgWSZajIpXAvwg5BAikEaq+k+FYzzRrqM8wbdp4oNcQQBj0ceUfxw1mgXANKkcd4Af2gJL+HwKorqE81J9qVucURwMgnCcg0rLRNRdHE3ImeNhkxEsffdiIrcEoKSSV7IpYh4JTcax53smYgX/6ZcUQ6TcysRqKZdyQN/z+2qpl3FiDhechBJEs1FJym3Tw6cIrdPT7RTt/87MlkpvBt/QfBK8zcreYp9ARnARYgSAH7PAAAAAElFTkSuQmCC",wheatGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAf0lEQVRIiWNgGAWjABfYsIb1PzHqmMg1XEVZlihLiLLgynklolxLFrhyXun/hjWs/9EtoWkQUQUguxib65F9gM83WH1w5bzS/zt3H+O1JCDkNyPMcHwRTlQQ6RjeYyRGHUkA3cXIfHTXkhxE1ASjFhAE2FIHpcUC9VPcKBjcAAAkzD98KD5/RAAAAABJRU5ErkJggg==",wheatSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAZElEQVRIiWNgGAWo4D+6ABM1Db8xA7slRLmEWEuIUjQjm+E/BZZQzSW0dcCNGQPnS9paOuDxR3WbkTMavoxCNYuxGj7g4UpzyweDD4choJqXsVU4/2dk47WEKpbjNHwgS9GBAQB1RDSsD2ft+gAAAABJRU5ErkJggg==",tomato="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAPlJREFUSInlVbENgzAQPCJLVJ6ABtGlSpMJWIANskeKVBTZIxt4ASagSUUXpWECqkhIThHkfJwHbBAoUk5y43/u/t7mDfwdolRqn/zNkuTeAlMQuCT1VV4XjdP3Q9AduVlRKs0eifWirwINAFEqoe7NRyCLJQCY/SyWqAuT88XHnYEuE56cElOUyWuBcWML6C6RJaKgTnaHoxGyRaiAIR+DLX69nHtFJl/TIRGKVf8D5xaNYX97cy/uYPVRMbtNtD0A40CFYp6CBW5U6NNWIHu03mR29QB/BkFetV5OVChYcnaDQAPAkBsVCuSVibFcLvN87BWb/Sb8Np74sVisxYmO1AAAAABJRU5ErkJggg==",tomatoGrowing1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAGZJREFUSIljYBgFo2AUjHAQWqHxP7RC4z/VDLEpEv1vUyT6nxTDGYm1hIGBgeH5r7cMDAwMDJJswgwMDAwMqztuENTPRIwF2AwixnCSAXIQEQuI8gElYOhbgC2iKEvXRKbMUTCMAAAvbR7j6+Sr/gAAAABJRU5ErkJggg==",tomatoGrowing2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJFJREFUSIljYBgF5ILQCo3/oRUa/+lqiU2R6H+bIlEMSylyDLJmdAuIMZiRWEsYGBgYnv96y8DAwMAgySYMl1vdcQOvGURZALME2QJCBsMAE7EWEGsg2RaQaxlZFsAAMZFM0AJchsDEqBLJuFIRMUFFVBBhM4jcSMcLcOVkfICiSB4ZFmCLKEqLaOpH/igY3AAAKrlIKa6/Bn8AAAAASUVORK5CYII=",tomatoGrowing3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA1UlEQVRIS2NkoDFgpLH5DIPLAs8Ctf8gH2+fcItoh6EojC0zARsAA4u7zqDI47MAl164ASAFyAbCNCCL4bIAXS/IgTAxsAXYFMDEQTTMEmwW4NILCwWCYYnsE3QLCBkOsoSgBcg+efPrE9hhImx8YBo9jrAleaIsgFmCbAExhhPtA5jLYEEE8gFFFmBLQSBL8KUiXEGGEUTIEYduEbZIRjYYW6QTjANcqQiXL9EjmqAFwzMVkV3YEaobKC5Nh40FKHUCIV9hkUdJmUQlUzIsgWsZ+hYAAF7KnRnkpkjpAAAAAElFTkSuQmCC",tomatoGrowing4="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABC0lEQVRIS2NkoDFgpLH5DPS3ILbM5D/IV4u7zmBY7lmgBpbbPuEWXofVLY373xS9CKwGrhAkeP/iNbjBIItAliArxmcBzGHojoNbADMQOU7QxdAtgFmOrg6ZD7YAm+HYNGPzATafgsyE6ScYychxgm4BNoehp0qCFsB8CKLf/PoE1i/Cxgem0eMIW5InaAFyUCFbgC2VkWUBsiZYEIF8gM0C5BQH04fVB7jyAq5kii/vYFiAHHEwjYr6WgygjINsASzfIKd7bJGOYgG6F9ENQbYAl6vRzSAYyYRSEaHCkigLYJagpyJskUpWPoBpIrawQ7aEaB+ANI1aAAs6cKVCAUAJdpLigBxLh74FACQg3hnrDTBLAAAAAElFTkSuQmCC",tomatoGrowing5="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABGElEQVRIS2NkoDFgpLH5DPS3ILbM5D/IV4u7zmBY7lmgBpbbPuEWXofVLY373xS9CKwGrhAkeP/iNbjBIItAliArxmcBzGHojoNbADMQOU7QxdAtgFmOrg6ZD7YAm+EPrwf+l9dcz4gsh80HMHmYepgDYZYTjGTkOEG3AJvD0FMlQQtgPgTRb359AusXYeMD0+hxhC3JE7QAOZyRLcCWysiyAFkTLIhAPsBmAXKKg+nD6gNceQFXMsWXdzAsQI44mEZFfS0GUMZBtgCUamrmP4bHBa7UiGIBuhfRDUG2AJer0c0gGMmEUhGhwpIoC2CWoKcibJFKVj6AaSK2sEO2hGgfgDSNWgALOnClQgFACXaS4oAcS4e+BQAsoN4Zr8Q2BQAAAABJRU5ErkJgggAA",tomatoGrowing6="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABIElEQVRIS2NkoDFgpLH5DMPQgtgyk/+gYFvcdQbDd54FamC57RNu4fV53dK4/03Ri8Bq4ApBgvcvXoMbDLIIZAmyYnwWwByG7ji4BTADkSMdXQzdApjl6OqQ+WALsBn+IsDjv8SGHYzIcth8AJOHqYc5EGY5wVSEHCfoFmBzGHqyJ2gBzIcg+s2vT2D9Imx8YBo9jrDlKYIWIIczsgXYUhlZFiBrggURyAfYLEBOcTB9WH2AKy/gSqb48g6GBcgRB9OoqK/FAMo4yBY8vB74v2b+Y3hc4EqNKBagexGU9ErV3sANQbYAl6vRzSAYyYRSEaHSmCgLYJagpyJskUpWPoBpIrawQ7aEaB+ANI1aAAs6cKVCAUAJdpLigBxLaW4BAFsM3RnfTMpLAAAAAElFTkSuQmCC",tomatoSeed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAV0lEQVRIiWNgGAWUgorEwP+UyNPfkorEwP/4NFDFxQNiOCmOGBQOoVpwMFHDEKoCXGFMlI/JDRaaGk4RoKmPKLGELuUTVQDZlpCT3anmI1wGDZ1wH3kAAGHuPqjrva2eAAAAAElFTkSuQmCC",fertilizer="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAArElEQVRIiWNgGOqAEYf4f2qZh82C/0EzfMgyfV3GFgwzWQgoJhrgchROCxgYGBim5JoSZXjO5NM45fBagAyyd6AaMtWDOMuJtoAUQ5EBEymKs3ecxvAJITC4fEAOINoCclzPwEAgiPAlP4otIDc3E20BAwPxuRmfYwimov9nHfDKMxofwCtPdDI9f/YrCt/QmJsofURbQKyBJFtAKAgosoAaKYnmOZnmVebQBwBEGSTr3HTDzQAAAABJRU5ErkJggg==",rainbowFertilizer="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA9UlEQVRIidWVOwrCQBCGv4gIor0n0CaVSHqxyhG8gJV6ABsbG7uAj8LK1iNYib0Ee8+hWK5FDMlCspn4wvywZHYnmW9m2CFQdFkp5+pT8ZIASnl2YA0aAExqTQDmLILzaQWA6uwCwJYWAP0gXFrSGkARVCFeO1RoayqbSKuxk5UMAKPlKdVnBMQ13EdB1q4MDFASv/kMvHYdDZYlcQUQVfFXFeQCvCIxIN6WPC1K0m/mQHl27klOkvEWWfXD0wqfG81/j9J5DQCg/K7Rb3WORr94Ds7+Tdu3OzXRd2KANGBuQFYL3gKoaw/IvkUmfX2Sv/7LLL4egFJcIh1wkL8AAAAASUVORK5CYII=",scarecrow="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA4UlEQVRIieWUvQ3CMBCF3yHEIEhsEadKQUHLEkgpvECWyBi0FBRUeIV0bEJjChzkOP45WyBF4kmWT9a9+86OY2Bh0mawRTnFn9d3sNnzvVzAp/goLmTFBBQr1EHWOcfqhXZA1oC+HDHOduzL5QK+JjbA6ngSp8S+RW5ROpxZ/qz/oMTLPSJd9wqDBAYJ1L3yAYsBepDzRbOWhKQAnC6jOeuAgez5tFW47QQaKACwYgE3F8638e3Am9g8lDeOeUIAuxsAoHsrZklmjQKeCZmromuapa6C7qq8h3A5b9H/An6uF4WMRHW3ug60AAAAAElFTkSuQmCC",scarecrowAnimated=""+new URL("scarecrow-animated-Bwzq1lj5.gif",import.meta.url).href,sprinkler="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAlklEQVRIie1VQQqAMAzLxO/5AP+y4/7iA3zgPDikbG1XrYKIAWFsWRLSgcCPNyOXz8UL0qWUEgAgxujiDb14RYBLeIhrkJI1AlVC7cxsIAnBKm4xaEwoeuKAYQZenKqIg6eipv913tfTYp+DVBE7XAq6pzzl/gyUdIEzbkjKWa44mVZE9zWt8aK5mff4M/0Nbof1J/QhbIFgQxZVKNMbAAAAAElFTkSuQmCC",cowFeed$1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABaUlEQVRIie1VO46DMBAdom18idRQEMk3oKfbK1ClQZyFxhXHoPcNkOKCPpdw6S3Qc8aOnZBNmpV2GpBt3m8YIPqvT9U6Sfeb5w57gM/fpSMiUkPpXiV6SqCNpb4VRETU1CIgfptgnaRrakHjbImI/FUNm6M9JFmCdZJOGxuswQlKG/uUJEmwTtKNs/WR9O3NhTbbOt+Ho90EyH2cLcEF1F+uNzcg5b2Jq8g5SJFyIO6kbwVV3ZLEunOA7Hn+2livHHsgOx3zou4IkGVTCw+ArHlETS28AP6WpUi+uHK+Mc6WTsctayjOzQRcgIhXwcEBmmsaokKDc2d5PzxB3EQA8BjiOYjJ4RI4VbcUBw6ujfU2+1YEvQA4sscV5y9XCmbDO1BD6WA7pQjKeTzxmUf3QQ/imF5Z4875Od8M/hal1OaaytdTLoLpU0PpUtOaUl91S/HoQ5ebbO8kfnidpMMPJ/dxU0OZ3fu79QOnNyLrGvOANgAAAABJRU5ErkJggg==",huggingMachine="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAgUlEQVRYhe2W0QrAIAhFbexT/Sz/tb2skKYPw+kGuwd6CemeJEgiAP5Oc/Z7VZ4l0Jk5JV1ELpmrwAw/ix9jOXfmblaxLlLdaJE970KmQCUQgAAEIAABCLz+HWuBzswkIpQ5kIyMkb17hVWYb8AYLqLL7eqnHqE1CXtT810yzwYxDkKWK8nSGBQGAAAAAElFTkSuQmCC",milk1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAlElEQVRIie2UwRGAMAgEL45F2IIV0IB2bQNUoCXYBf70YYBkIuND+cLckoMABEcqqJEWDQ8gzGwWEJGp0zmA5gi3qC/pQiTPSMnv71WLBNC7PwWuV2S1NIB4wgrophdukTrkeQsGAMAylmwxMK26ne6aCg9mPtFu5sNn8AM+AHDX1FvDJoD1gUoj/Ni557qGUVn/TByjTiCJ3SiEogAAAABJRU5ErkJggg==",milk2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAt0lEQVRIicWUwREDIQhFv5ktwhZSAQ0kHVimJaQBKkhKsAty2s0hKrCGyT8q8x8CAgQrGWJkxUMDCDNPA4ho6nNRAMsKL9FmyUKkz0hJz++vJRJgnP1h8HlF12sEEM14APryCy/RsMn3VzAAAB5XyxQDt+e4nOqYCufpfaI2vQ/vgQtQqaEqGZ8GVGoonFE4uyAmwG6+ywMxAUqn0b2z04AVqWOqjeESYPaBrApfduq69jCc8b/RG+oJMonZquS9AAAAAElFTkSuQmCC",milk3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAwUlEQVRIicWUwRECMQhFfxwryCktWAENaNc2QAVaQk5pAS9GHU0CbDYjp50J8x98WIDFEQw5MqOhAYSZhwlENNQ5KIDpWG7R0VKFSJsRgl7fXy0SoF/9S+DdRVOrBxBNuAP60VtuUXfIl/tiAABcT5YtBs63vp3qmgqn4XugPHx3zaBQRlEENwMKZUROiJxcEBOgitcOPBDTqaiC8TmPz28tXB18A3cDtKq1dqBapK3hFGD0A1lj+bFTz7WH4czfJx6xwUOYVCI2qwAAAABJRU5ErkJggg==",rainbowMilk1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA3UlEQVRIie2UQQrCMBBFX0WE4gH0AtKFB8i+p/AC0ivUhW7cuBM8hVfJEfQEHqBQXI2LgCg2k5ZYCuKHbDKT/yeTn4GekbTIkRiOkIBYa9UEY4zKMwoIRKP3FrW6gVQ5pRSUUoDc3dqGdDsIxEATEECkyv0Z7haC0saxj1yOy3B5QMoFgJpMaHiPwVwk56B53rFyVB98vha9HgpCK0YVABA7V+OJuanxQW36F/gRgaBNQzaMEuj6m5vgHRXPYbeeAbCZLgA4cHL7uwkA6f4KQE3WyKfNgq7lt5sr38YDiBMyusgc/RoAAAAASUVORK5CYII=",rainbowMilk2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABAElEQVRIicWUsY0CMRBFHwidhCiAbeBEQAHOqWEDGjhtC1zAJZeQIVEFwTbiEqCCLQAJXTQEq0WH8M7YGMSXnNiz/43HswMv1iAiRnI8LIB479UA55zqMzQA2Xp5iaJuIKcFK6lYSQXy1661xU0A5EgDCCByWvRHtLcQlDKO+sxlO7fTA8YcADgzEwLv8bYukr3ZPLdatlZ3fn0l+v+RKS0ZFQAgvlDPB65Rz9/apneqXUNtZPwwoHYNpS8ofZEEiQJ05p1SIFGAMvDQob2HATky29RqwyxA6t8cUu+ouA67rykA35NPADbs2v2fDwDGv0cAzsyCftosSE0/bq48WxfOzkS6fPRuuQAAAABJRU5ErkJggg==",rainbowMilk3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABB0lEQVRIicWUOwrCQBCGP0UEsUtjLiAWHmB7T+EFxCtooY2NneApvMoeQU+QKpUgVmMRFR/JzK5R/CEQdjf/N4/NwI/VCDgjdTwsgHjv1QPOOdWnaQBq6+clCspAjiNmMmUmU5Bz8SwsbgSgjjSAACLHUfWJIgtBKWOrylw2Qzs8oMMegBMDoaQff7tFsjMvz7PGhdWbX1WJHj8ypQWjAgDEp+p+w2XqflQPcpeRG4YfA3KXkfiUxKdRkCDAzfyWQQzE7AFwN0yu/Xh8txSVwSvwa4CyaEMzMEtkXcNagNi/uUyVo+I+7CY9AObdPgBrtsX6sg1AZ3UA4MSg1E+bBbHhh82Vb+sCloZVyeeaHwgAAAAASUVORK5CYII=",chocolateMilk="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAo0lEQVRIiWNgoDFgJELNf0rMIGTB/5MnT+JVYG5ujtccJgIWUAxoHkQsxLhiS7wGVnGfhTcI6h3QIPrPwIDb9TCA5AusZuGy4D8hg3FYhGEezYMIZyRP/XGdRKOwBwbeVLR9JTGpmIHBMxx3SiaYTP+flMArz2j+Aq88zeNg1IIRYAHBZEooGVJkAb4MRLEF2RyaJBm0HYc4weKaBEBcuUJtAAAZkx6s4XKlkgAAAABJRU5ErkJggg==",inventoryBox="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAZElEQVRIiWNgGAUEACMeuf/UMAuXBf8v9/GTZLpu0Ues5mGzgGTD8VmCbgHZhuOyBNkCig3HZgnMAlIjlFjAyAJj/TsUQlWTmezWQGiqmorNolELRi0YtWAYWEDzwo5G5tIRAAC2nxYih/81pwAAAABJRU5ErkJggg==",weedYellow="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJVJREFUSIljYBgFAw0YiVX44aHBfxhbQP4C0fqYSHHNyTM/SFFOugXmJhwkW4ABPjw0+A/D6HLSSboYYoQAVh9gCwpshuNzDF4LsAXF03mX4RErnaT7H2YhOfECB+iuRjaYgYE4H5BkCTlxQJIl6D6guiU0MxzZElL1EMxouAylqm+Q44BUw4kutJANRc4To2AU0B4AAKGOTyVh8wmJAAAAAElFTkSuQmCC",weedOrange="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAKRJREFUSIljYBgFAw0YiVX4YZ3BfxhbIOgC0fqYSHHNyf8/SFFOugXmjBwkW0ASkE7S/U9YFSpgocRwYuIFpwXomp/Ou8wIswTZspP/f+ANOrxxgC1SpZN0/z+dd5nx6bzLjAwMhOMFbxDBNMMMZWBgYIDRDAykJVe8ADloyIlooi2hmeHIlpCqh2BGw2UoVX2DnjxJMZzoVIBsKHJKGgWjgPYAAKhMQnagnSlUAAAAAElFTkSuQmCC",weedPink="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAJNJREFUSIljYBgFAw0YiVV4w+DDfxhb44IA0fqYSHHNw1oLUpQzMDDQwQdYDYJhdDnpJF0MMUIAaxBhCwpshuNzDF4L5JtPYIg9nXcZa7CQEy9wgO5qZL50ku5/YnxAkiUwNjlxQZQl0km6/6luOLIlNDMc2RJS9RDMybgMpapv0COXFMOJzvLIhuLKE6NgFNAGAACdX07JsB31AgAAAABJRU5ErkJggg==",hoe="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAuklEQVRIic2UwQ3DIAxFPx2ALNSJOPRMJmjOnal7pReIHGMIGFfKl5CsyP/9YBDAjbWnxeuTHhNwl+s1RoQQ8vfpAArHGiMAYPFebB4NKP6cStqFdkSiFu+LkJkA9942MYRqNMChcluo0uj2bNCoeRZpZw5Q3qLv6wgB2Kgo/FQMwvH8FP4jkBpGAlrwqnoDVPDeRjW8p3kKfmWYhrdMJvCa0QwumU3hHGAOp5C/wAH2FlnDuS6f4VvqB7TESLgVFsd2AAAAAElFTkSuQmCC",hoeBronze="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAxUlEQVRIic2Uuw3DMAxETxnAdQYwkAncaaIUKTKIi8yRMdJlEW/hNJJBUx9LJAP4AAGEwXtnUYKAE2sNi9c7XRRwF+tlnvC+3+J3dQCFY5knAIAfh2xzb0Dy51S5XUhHlJUfhyREE+Cuz282hKo3wKFwW6jC6NZokKh6FmFnDhDeos9jCwHYqCh8V3TC4V+Jfwukhp6AGryo1gARvLVRDG9pVsGPDGp4zWQCLxnN4DmzKZwDzOEU8hc4wN4iazjX4TN8Sv0AN2RJwOjZLUAAAAAASUVORK5CYII=",hoeIron="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAtUlEQVRIic2Uyw3EIAxEhy3DtaQl9k4bcUvpK3uByDGfgGGljIRkRZ43wSCAF+uMS9c3fSbgLtXMjBBC+j4dIOFgZgAAERWbRwOyP5cq7cI6oqKIKAuZCXDe+2KI1GiAQ+W2SMXRnclgUfMs4s4cYLxFx/cKAdSoJPxWDMKx7Zn/CpSGkYAWvKreABO8t9EM72megj8ZpuEt0xJ4zbgMXjIvhWvAcriE/AUOqLdoNVzr8Rl+pX42rEn4TvbkRQAAAABJRU5ErkJggg==",hoeSilver="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAt0lEQVRIic2U/QnEIAzFnzdIJukKrnLDFJwkK3Sv3j9aUr+qMQd9IISS93s1isCLdcaV1zd9FuAu1cyMEEL6vhwg4WBmAAARVZtnA4o/l6rtQjuiqoioCFkJcN77aojUbIBD47ZIxdGdyaBR9yzizhygvEXH9woBslFJ+K2YhGPbC/8VKA0zAT14U6MBKvhooxo+0rwEfzIsw3smE3jLaAavmU3hOcAcLiF/gQPZW2QNz/X4DL9SP/ScS3hB0In3AAAAAElFTkSuQmCC",hoeGold="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAvUlEQVRIic2UUQrDIBBE35Ycpl89QCnkRj1Me6JCyRV6HPvRROKqia4WMiCIum+cTRAOLDcPPQ90aoDLMnevK5+nXw8kesEC97Bxipi1CbJwIJnC2qKkzpe4VbUtWieARAoIW1WbQMj8LcEtfqbOuxi0+S1aEgC4992bAMgMjOAAgxGuJTJO3jDYsMBvj/LaUgMTvPSgGV5yuAm+V9AM3yrqAs8VdoOnirvCNaA7fA35CxzUW9QbrrX7DB9SX0XaUBQX3euqAAAAAElFTkSuQmCC",scythe="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAxElEQVRIS+2V2w3DIAxFnb06S9QF6DBlgSqz9C/qTES2SoQcbjCPfFQq3+QcfGU7E118pov59BdwwoEIJ9EbUbjPM72WhUVZVo8geO+lRz7rCiWtgvB+EN2eRCVJi0DgfFjAJ0qcc4eoagUaHr+XuHJR1QgQXDoJVWEVnMHjMhCJjskisMBhFSWBFQ6rOBPUwvcq0piQoAW+V5FOdU7QAz9sfy0YCtdTNxyeFXzHv9Rd5h9hCuK9DteumaguDnspesDvCzbc3VkZpaP6uQAAAABJRU5ErkJgggAA",scytheBronze="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2UlEQVRIS2NkoDFgpLH5DKMWMBhriPw/e+MNzpCgKIhAhrd6ijNUb3/JgMsSsi0AGb41TRGcRi48/obTEnIt+H8kj4Ehf5cIAyFLyLEAbDgI2ExiAMUB3BLvWfcxgopUC1AMZ2CAJHNYcGELKlIswGo4sgUgNroviLUAp+GwkgDmC3IsIGg4Pl8Q8gFRhuPzBT4LSDIc2RfIwYTLApINR/YFcq7GZgHZhmMr+tEtoKrhIAuRLaC64VgtAGV/NIspqvRQfAA1iVDSJclCqhpGTCST5DpiFNPcBwAgan0Z4Vp7jQAAAABJRU5ErkJgggAA",scytheIron="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2klEQVRIS2NkoDFgpLH5DKMWMORlRP2fNGMZzpCgKIhAhqsqyzHcvvuIAZclZFsAMtzY1AqcRj69e4LTEnIt+H8kj4Fh1a8oBkKWkGMB2HAQsJnEAIoDuCVnTx/DCCpSLUAxnIEBksxhwYUtqEixAKvhyBaA2Oi+INYCnIbDSgKYL8ixgKDh+HxByAdEGY7PF/gsIMlwZF8gBxMuC0g2HNkXyLkamwVkG46t6Ee3gKqGgyxEtoDqhmO1AJT90SymqNJD8QHUJEJJlyQLqWoYMZFMkuuIUUxzHwAAb2p9GTK1pfkAAAAASUVORK5CYIIA",scytheSilver="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAz0lEQVRIS+2VuxHDIBBEV305oAyqcKQyiDwugjIIHFKJm5DnZOM5YX6HIDORAs172uVACyavZTIffwG01pu1NtvEqYoIrpSCcw45SbeA4Ou67jPivc9KegXb4wrcnxo1SY9gh9O63EB78JUYY36qkgoOcOA95qGuVFUSQRLOBfQcp2gVZOHhJggpegRVeClFLUETvJSiJBDBeQpeU04ghvMU/FSnBN3w1NUfC4bCScgFw+FJAR3/SHzqp3dI8CHVRlckHApr2WTR17W8PD3BC4S6fRnQ192VAAAAAElFTkSuQmCC",scytheGold="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA2UlEQVRIS2NkoDFgpLH5DKMWMDQW2/2v7z2EMyQoCiKQ4YZa/Aznr31kwGUJ2RaADC9MVAGnkQMnX+O0hFwL/h/JY2DYy2rHQMgSciwAGw4CNpMYQHEAt6R//h2MoCLVAhTDGRggyRwWXNiCihQLsBqObAGIje4LYi3AaTisJID5ghwLCBqOzxeEfECU4fh8gc8CkgxH9gVyMOGygGTDkX2BnKuxWUC24diKfnQLqGo4yEJkC6huOFYLQNkfzWKKKj0UH0BNIpR0SbKQqoYRE8kkuY4YxTT3AQBP8HwZfM9pkQAAAABJRU5ErkJgggAA",shovel="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAALJJREFUSInV1cENgzAMBdDfqovQOToT5zBBOXeL7MEcMIp7akWM3Vi2OdRHK37fKAKAk+uS5JDmRgMIAKZSmuZznr/2LYJzeN023Ieh6V0zcak8ASrOt/cGmHHAf8k0lSLi+wsGAk/Q2zwSQMsI1FoPON/eE0DLeABVXGxY8Mermf28xaJlDdDwblkOunHL4RDeGwjjv4ZScG0wDZeGU3EOpON75BQcYJ+KbJwX/3H/R70B5PVOSsiwgM8AAAAASUVORK5CYII=",shovelBronze="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA6klEQVRIS7WVoQ7CMBCGbxa9BIXAVZLsIQjhPfBYPBrPexDCQ5Ag5xDYaWzJLbnmVjp69G7Vzfe1/+3vKph4VRb8xtWec+5tF7gqAYEvu+XgnNvzE0hSLEB4DH683rBazEAtGIPjNdSCHBwlqhvEAoyFTk6DUAkQQpIcHPeWDtk3robjZt5nzhc/fanA3/auZx6uHfAvKYaXCAJ8fWoxqiBIwf8VDOAUL5WNt5dHJp1BEi55ZiSCYrgkIhU8J1DDfwlM4GMCM3hKYAqPBeZwLpgE/iXA+isewGTveNHwxy0pnqTAYY85MLZ/AKAsiRkhT8wtAAAAAElFTkSuQmCC",shovelIron="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA7UlEQVRIS2NkoDFgpIb5eRlR/5HNmTRjGdxciiyAGWxsaoXizrOnjzHALCHbApDh6AZ/eveEgU9IhoFiC3AZDvIGxRYQMhxkCUU+QLcAFCwwl8MigiILQIbALCFkOEgtuZH8Py8jikFVWQ4c5sgA2fXkWvB/Z6EG2Myt340YkFMSuuHkWAA33L3/Biio4BZgM5xUC1AMhwUvLLMh517kICM2DrAaTkwxQ4wFZBtOTBBRZDghCyg2HJ8FVDEclwVUMxybBVQ1HN0CqhuObAFNDMewAJT9KSgAseY75IwGqriJyXjEZGC4GqobiG47AJ1ZiBlTJ5acAAAAAElFTkSuQmCC",shovelSilver="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA4ElEQVRIS7WVwQ3DIAxFnW167IEBuHUF1qjEGEgdoVdW6A4M0A06BpUjGTmUFIIdzug9+M4nC5y8Fg2+cy5zToyxcEUCAnvvN+cMIQBJpgUIr8EpJTDGgFiwB8driAU9OEpEN6gFGAudnAYhEiCEJD047p0dcnbOgbV2zZwvfvpZQX7dLyvz+bkC/5Jq+IygwG+PN0ZVBC34UcEGTvFS2Xh7eWSjM2jCR56ZEcE0fCQiEbwnEMP/CVTgewI1eEugCq8F6nAuOAX+I8D6Cx7AZu940fDHPVK8kQKXPerA2v4F7oGIGVytZc4AAAAASUVORK5CYIIA",shovelGold="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA7ElEQVRIS7WVsQ3CMBBFLyxABRNQIDoquoiOORghygAoA6CMwBx0iAo2oGADhnB0kc66GAcfvotr6z37X75TwMSrsOA3dek453S+e65KQODquBqcs728gSTZAoSH4NvzA/vdAtSCMTheQy1IwVGiukEowFjo5DQIlQAhJEnBcW/ukF1Tl7DdzPvM+eKnzxW4a7XumY/ZEviXFMJzBB5+aF8YlRfE4P8KBnCKl8rG28sjk84gCpc8MxJBNlwSkQqeEqjhvwQm8DGBGTwmMIWHAnM4F0wC/xJg/RUPYLR3vGj445YUT1Jgv8ccGNo7Yi6HGb8waRoAAAAASUVORK5CYIIA",wateringCan="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA0klEQVRIie1UwRGEMAgkV8JVYAOWRjWUZgNWYAvxYzJkDwg697vbGWeMJLuyQIj+mKAEsZrc90igikhfMPNjkVdEfhHTta7G3inwr5C8WILOWROYQQGSASLSH0pmZFnUyQhqYcVnAqkiNxzLSu99G77NGiBsUy1yLGt/vyPiWoTQpFqMKLbLEzAtikQ8hHNgoYmgTVmBkBxFGpjZtSldAw+KXIt0IavyqSwaOcG0Y+zWHDjkH2d0zLMovDKivsfY7MJyU/f2YyxzI5qpfxtDZ/wWThNOcCnuawEeAAAAAElFTkSuQmCC",coal="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAThJREFUSIntlK9zg0AQhb/WrEecw8cwCE4wmHj+zriaKDyGqSAiLh53vuJiiOjsFQYSYCJqeIqf39t9t3ew67/18ca//RrWVoMAPRwOOOcwxiAiXK/XWd4Wgz6KIowxWGtp2xYRoes6AOI4njVZa9CnaYr3PjxwzgWw9x7n3KzJ59rKFSIiIRqFiwjGmFEBaw36NE0xxuCcoyxLvPfhPkkSRIQ8y0ZdDbUUUchdAXp9LAq+LxfyLKNumvDudruNuK86CNVrLHEccywKRIS6acizjJ/7PcCttZs66IejeCwK6qYBCLF8nc/A30IDkw5eGkRRRFmWYSSTJKGqqvDBEGyt5XQ6TZiLHcB08XQddD88y3/JYGSiMPiNSMdWs5+rfo0BDI4H3Ww6shrds2NircGs2ZucXbs26AE1fqYGir1jrgAAAABJRU5ErkJggg==",stone="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA8ElEQVRIidWVwRnDIAhGSb9ukyUYwxFcIqcs4Tgu4Tz2In6EIGjaS/+zvgeGKMC/Z1tcX1cZnuACTCndFsQYTdZIUEdAnpwzIKIp0gR1BgwAHc7TRJ371uC8slmw5JCEd3CpXMJGUlnAvu9wHEdnUwe3Y+HgmaoJLvPyNiEiIGIXrcBdAQ9JpMiCmwLtzGU3I/h5ngBt1Kc7kCKCl1LMtY8EPJ5EFXgj6Z27K1iN1QX9B1uMsYYQTBB93NnqueC2UZt7C0xdyDXyLjJhGkALvyrkbVrbDA/jSThcE3wlkfCR4JFEg1sCAP39tbL6vv8mH84SiYSmpt3xAAAAAElFTkSuQmCC",saltRock="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABB0lEQVRIS+2VMQ6DMAxFzUm6s1XiCsz0OpyA65SZKyCxsfckqRzJlXE+sauKrVkq1OQ/5zmBhi4ezcX59Ae4hr9RlExaaG1oEhGltK6H/Kbr+Nld707g8Oc00dD3hY4IxAPkyudlOQD4mQdDPUgNcNAiEAvLniq6zgCFc121dfUzAFUdhaAd5KaK40g4z3mMIzxVECBHMhp+b1u6DUMIABt7dl25AA7f9j3/IojdAWyuvQPScA6VwRCkSQOKcFmsVUnVaFcIEgJwmK5alCCI1eQCkA4OPoPUALyuaLL2bCtGEA/wgdRca5CGRE6RrE2veXY/JlpV9B7oUPuB8YDwvea9rr1Q9/83lhuWGQG9q4IAAAAASUVORK5CYIIA",bronzeOre="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAYlJREFUSIntlDFPwkAYhh8bE2JhgM2pTCasEP0dMjKSsNCJRB0c3WAAYzccSBgZ+R+akjgRnCAOTopJIXFpHeAu17uCja68C+1x97xv7/vu4KCD/qujlPOivzJ+M4gAOt0e+VwWgGWwom6NABiGNW5vrvfy9hlEnW4vBhPPAN6iYixoPzwazF0GUafb4+ttJgdajh+bMLYbAFTXg1iA06unGNfal7zl+BRLZYqlsgEXYKG6NWIY1gyYbhC931/IRMOwJkEisfhV/xMSdVKlbpGEC6mJ9MXLYEU+l5Umak3UWhzrji8fJwD4+UsJrq4HeFOzqF8AzuariqXNWHU9oK3MiRmM7QbYMJ9OIJhJiEdFFlkvrnge2w2WwcrY9JjBfDoB4h2jF1TtGnXbxPnQu0hv06jf7xuFFQn15Hev5wAUMqEc089CUptKmP6uwr1FhUImpJAJaTk+n9+WcVaSvgC210PTdWPJ1MUiuXw/ewYwtmeXgTRquq4BSoJvwYm8VJddCqW9lQ8y9QNiZaVNTKTieAAAAABJRU5ErkJggg==",bronzeIngot="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA4ElEQVRIS2NkoDFgpLH5DKMWEAzh0SD6jxZGGCFCahChGFjnwsXgaakJtmP78esMTXu+gZgoZhKyAKeBuGLXsvksiiXYLIAbiuxCgskFSQGyJegW/CfXUGQHIAcXsgVgw0EAFq6kuBoWD5rS/AwKclIMMF+gWHC81hhs5oNHz8CKCAGQS0EGwgCyHrwW4LIEn4HojsFqAXr4k2IgMXEAUoMSyaQEFTQPINsDDn6syRTmE1wWIKUSDAPRgwpXRkPxCSkGEmsBOLgIlTOEUhmuICJGH9FqCJVFRBuES+HQtwAAGJ1YGe/MnNkAAAAASUVORK5CYIIA",ironOre="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAZZJREFUSIntlLFKA0EQhr+onHfYHCG6RXIKFj5AykCeSgufQCyUFNZWwSqQlwikkqusUgjxkmKjSBpJDISz2mF3cwlJJYJ/d8fONzP/zg7867dV2vF8vitz2wQ5QLfTBqDXTwFoNurOocFwwvXVpcM92Ab81H4kCgOB2+DZfAFApqeFgHUd5AAPrRvKFUWmp1ycnThwAzaJB8MJejxCVWtOF0Ud5N1Om8FwQrkSA3C0/02vn3J+eixwGwwI/OLsxIHtrYMnKpbWX9/eaTbqlCuK2XzB54cuhBfJTpA/tR8FHoUBnx9agk3VURhQrSVikR6PxDa/evHJrzwKA5kUVa3JP1u25z7cnibnDowtxu+v5eEKfDZfkOnpWrj/vWcHRmHAc/qyMt8+fJMGw4ncjZPABDYbdcajrLB6I7/6Xj8VsN/N2oeWqJhMT8U2uwgDNlLVmiT1k5gOStdXl1LF1/KwEK7HI2dqjCXmXKJiJwZWX7Iss9u7+0Jb7Or8NZGomOf0BYBWqwVQ2rTsttmcm7Trpv7XX9UPRxDlZCE0bRgAAAAASUVORK5CYII=",ironIngot="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAwklEQVRIiWNgGAWjYNADRgr1/ydkHqkWoBiYmxHNYGxqxcDAwMBw9vQxhskzlmKYScgCnAbiAgnJ2SjmYrMAbigxBhKyBN2C/+QaigyQg4sJ3XBVZXmyDf707inD2dPHUBzIgqwAOcKI8cWnd08Zbt99iKLfWEgaRQ0LuiaYQmyWEGMgOkCxANlQY1MrsgyEmQMDeCOZ2KBCilRkwIjhAwYGBsbJM5b+z2VgwGswPgOJEmTA4hNiDSRFEcFyZhQMDQAAaMBZ6FnVQEEAAAAASUVORK5CYII=",silverOre="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAQhJREFUSIntlD1uhDAQhb9EuUOK5BBbeGsoOARHoF8XOUIKp+cCvgWFqTNFbkQajIgZbHaVkichIWZ4PzOW4cSJE0cwzc9DeCqR930PQNd1R/o3eD7aKCLwQJqco2kmTUVimiMc+QSpAIAxBhGhbVs+3RcUEhVHpImsv5VE9gSW5UbH6/cQAhdzBaCpq6zBbAJjzK7zSD6EMZviJUeeEoYQALiYa9F5hHYCJhHBObcp7I1lCCMAH/a24UwFpjnuQhJ/buoK5xzWWtXpEEZVQN2BRg5grcV7v9RiPULbhTqidYpUBMB7z+vb+5+epq7iociOKCuyxo98LzsBff45Abj/Br37IvwX/AKZJHqzxczScgAAAABJRU5ErkJggg==",silverIngot="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAs0lEQVRIie2Uyw3DIBBEJ1HOThFTgSN6oUY3E1ewRZgGnEuIWAPmk0si8SQuCN7sAgIYDH6ey5f795KvNUAJl2UBSQCAiMBaGzlLAVlhDmOM8qYCPtIaYSnkGLD3SkPC47oe5Y957hbfpwkiogoMA0ASm3MQkSahH5tzUfe31EaSUSVe+FxXta50nCoglJLsEnqP5/SSU13khO9LDUm+IhWSCzgTVk0i0UmtsGVR8Z8Z/AcvcvFbDaU3IKgAAAAASUVORK5CYII=",goldOre="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAXZJREFUSIntlC1vwkAYx38s+wALroIvQBAVbfAkJJVIbB0OAQLRTE1MbAIz2+BQaBIS0hAMLwJBENgKXFNXycS45ijXg5GphX/SNL3r83+5J/fAAw/8CxxPz114uka8n7k0m827hQp55MnWIYwMprsqALXygumuSqvVulZ7BlWCY7J1LhZLxQO18oL9zOW0f1OirIuUPIwMSsWDsiiMDEbLCpv1iuFwqOLRJmAwb5y9sygVD2zWK0zLZj9zQZNE1+RcEXlttKxoRWSBY7J1GMwbaUNVhIN5gyAIMC0bgLYz4fUryTX4fC2BSkSg7Uzoj+uYFqIXeoEwMqiVF7kiQRAAYFo2bWdykzG5+8f3j8/Umfv2cvGzfCwy+uM6AL1uJ8upbnJ/XMf3YnwvxrRsTMvG92I265XSuS6NLFA4OUgLhDPx7XsxYWSke2Jfh2yCQq/bSYuzQvBzB4SInDgvRe4skvuhcioumoDq/HUC8PvJedPw+3N8A0QSnZsj1HFJAAAAAElFTkSuQmCC",goldIngot="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA00lEQVRIie2UKxLDIBRFL52YYLqRLiAKURNkVVeQZbGCKmRjKqKyADZSE+SrIgMpBYaadiZnBsW8c3n8gJ2dn4d9WU8536FCuA6tBKyRsEZCKxELzHYQFGgl0Hc8WdCe7oE3FrBKS4S5kG0A1Up9xnnBZZgAgDVb+XNpq8W3B+HIbbBAP2CdGOelqAsndFzPHEBY1yBC3/FoSIlwSxDgS/uOVwmdx5E85NKt8g7Vh711AIBdhil7k1LCUkgrQdZIskaSViJ4wYi82E+kUrP/zM5/8ALJtmHuganBugAAAABJRU5ErkJggg==",rainbowCow="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAACNUlEQVRoge2YPW7CMBTH/w+hIgTXQB1yCy6R3oA5GwzpwsIWqVtvUE7QjVtk4B4smV6HxE7i70BIK9U/yRLE9vuwn99zAkQikUgkEolEIr8FTaCDR9BplfGoA6rgUIRe33zyjKGhDvSE7XmnDTjhoxG98Au7bQEAh9VGnx8mg2ZeLY0u3L/aZoGN8U5yv0qfA1bDgwywCS0S0PoimwYt6nYklxMEAHOXnrstBACuWmO6j4sElJVgbsUTURuOtND6kHPtjOHM2nbAafyg1edKriIXSa+LHEfQ1dfF5MB4xk+A6sAkxnORyBXuhQ8AcNXr8x3k7hkYx3g19Ymz4JB30DqbOe8vXnXCAYalaKhx6+JEn/rDgHrwCNYsNMRwwGL8BGiHmItksPGhUFaOLjO0Ev9ZXIVsMvrh1/ktMpCliAG6A0RZyc8KIaAOIyFfXCP4fDaPTf3FbA6A+bYFrS8iEz2XnEEZAVkpDac0BQDvfxMzAKDV98N2ma7WPXLuFSXbqptoxhrrVB1CtPC9OASx5119n1dzv6eaqs4McW6GNmy08KGsvC/1cdVvHkwh4gqbLt4sxOdzLSwrx7vI5QxKSa601KHoFTR9QVnIiFCgvnzseWOZYeHY2rDEFZS+SvmmsOk4NSi5MBcJc5GItzHZOs/k2IFNzlviyktcQ8dbCdkBaoy39Y0BAeCvxuY32AuXyv+5SjzjIqbydseGmmaYvoKN8XXtKTpCd2CKT5BT6IhEIpGR+QG4Bej6ikQYYQAAAABJRU5ErkJggg==",cowVariation1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB8ElEQVRoge1YS3bDMAiEvN7RN0BnUm7gU9JFioMIWNhR0uZVs2j1oTADSLYLMDExMTExMTHxv8Hm90fhAgBARB9JHgDg6w0xbHJwpA9UBiMcZ6Hj9uz2bPBoBRpnRBQaXq/Xrh/5+1prs1lKER/dBGUFNAFHIOOLiHqJ6AoYTlz8WWJShVJKs7cjArcf4J8BHkHcBhdCzPfuQMRtrscyVyIezukliDuEvBAWX6MrCdAK2B5orwjkAREB8ZZUObh2vQcRsLXSO8gTUUNQx9RjaZ896EPcu3OHwhLTV+mRJEZn4DDsXX4Guo2yGCbgTPAR2BUgWa21Pp3h3kPpbAIeBAhZTbiUAqUUV5AVNqKVjiD1KlFrbTLkjcVGz+1+VIFoXQ5z9BCLFlk/CS2kEroitvxWsH1NMMSA19WNhcvS4+qCLYiIiaiZezbWXtbsGG7XNfO6Mq9rdu4i3UIevGrs2TdZCrIe2eKyuN8sp65Re4B1y+hz4LVRRFALsvM97ArIvpP0KtGrjun1cM3l6KxthxgRpXyykXKaCvzje5sbws7e8VtIB/EyckaQVJSZ7+P+LRS2QVeA2ZC17Ed5FDOMkeDXIHMLNQGPBkjCE5XyPexl7reQ/rdK9gvpGZyJ4Qr4q2Q9ZCvwekXviTExMTExGN/dZHBpuZub8gAAAABJRU5ErkJggg==",cowVariation2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB+klEQVRoge2YUZLDIAiGYad3zA3MmeQGOSX7sINFI0Ia2+6D30w7jbHwo0BsARaLxWKxWCwWi2+BH/DBE3yaNu4G0BqOIn6976MzB68GUBlLKZkTicg3xmP96MsLB8AAY8EtXgDaVs65urfve9SOG8Bl4RHHKaXqfrsTeuXbuXpaeTPgV4Rrcs6nNBBBWjQilmv9Wa5VECe9P+8Uv+87MHPZwdbmKMcD+Q8A/QBuiwd45rHO53fQBjBFfFuULSmlssJtyjBzdc/T81CfzZ4mgiKr6YkXRsKYObxzsgMMRkFHBWnenTYaq4i/TnThzACICIgIELGs6Mhoznl43+rnnk0PqYFy5tBOJE9HD6WeE2mhHhGBni1dxAiqC8kOAJwL7pW66Akrjo2eL93JeohZg5dbqRVQb+WICFJK1VOaj6P7fdw2T+ucAACuBwHwFC5CnetuAF/rQtaqD+Z2n1PTArAKLVIvfBxVQO31iGEKWUU8IiIYESuBuG0nwe2YlUaPdqCFj6Pk5IxzEsDzvCMCtQ/tVxjVQHcH5CxCRKfC0vQCGu2Abpf60BboQpd++jIzc0qJ4a9wykuNlbkXX5UP/mv0kfmXaI2DiG/G7tD10RlzMVMIoGw5GmN3mObDLWIh+hPvDq/46AbwX8X2iO7AJ/6C/ISPxWKxmMwve31ULTQV7Y8AAAAASUVORK5CYII=",cowVariation3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAABrklEQVRoge2Ya46EIAyAy8Q7eoMeihtwyu6PEQdqS4FBd5PtlzhxtPaBfagAjuM4juM4jvNbhAds0AKbqo5vA+CKe8l2reuDIRNGA6iUIaIqGGM0lbWu79QRNtPKG+oxOEKPLkQ0g7DuwLTjLcOj+hRd4fxRoBUrzo3P6jz0XPzVUqhyvnRi1IEsH2Os9iUZ65zESzimOr8SIgIiEm20znF4AEvS5knKFDJ7Og9OWx1rERARQtHBS/nWOYkcAIEyNO66Iy29IzZ750DFXXUxg1TETSzntdXrGUozDAfw15hKodVYzUAbYgDXAEKM8bZWmtOIDzRKSZQP+27q3ODo/THG3Im+crAkO8jbJHc8O2r9lxiugVaRSs7n/cu0VVZd4pAV59R2GLBeHCpWpxgPZiS4F3zS5pI+0sr1MhNk2Pdz68VMIUppOhCe++U+dzLsO1BK58bPgVKf0kEqu0SrkL55MZGK+eLcx+ZQcyFEJEQkeNfFuRXHTtnBzbShyKv0DLIA+mP2qs8ylY3W4OL8n0eJJ55AZ2yIRSzIrPi6douN3jvwxCfIJ2w4juMs5gdcWvZP4r+1igAAAABJRU5ErkJggg==",cowVariation4="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAACFElEQVRoge1YW3aEMAiFnu5xdoBrijtwlfRjJEWEhHQcpx+559ipJsKFXPIQYGJiYmJiYmJiYuJTwBt88AU+QxuvBmANZyF+e+9jpw9+DTpmfTEzRFfGDhG57xIREJH0ayIbgJAOSS7LkjT1xE6w+Z70aaEnocoyympEYF3XJjHdbm0jYthXd6t/ArAYKKU0urWzaJ0LIU0aEeu9/l/uVRAnvpGEKvmI5LIs9WpBNG3tCbkIrTaNb8+n50xGYVTro/1HYUfAJX81iKhm2EqGmQ9tPS56BLrkvWyWUv6U5ZafkQTKCDAEBd0q4F5x3wGvBgAgT+7dGu9BL+kI++rqQYhGgelAooJf19WVh2fTexcGplEX75BMZDPrKx2ANWjXAWn3st8jiYjuJe1R9vVDXcShjISYJuRJyw6/nqlERqWUOl3ytrm+8PHwuJ7ARFQ3a3sAaRBRup9cILvZbWPetuy9i7SEom2Dl/nUFiPIeqOvG4QcGA6/vf28lZFtE3h1A/CU0UgAAFVO7iwkD0+NUkwWXqG+sh4YrYfPsqi6hV2H8HsCG64F0b19Bkrj2gcY/fdqwKvsKiFErEPtZaQntZOz4KCSmIXCGagbgGmQZ9lDeeSPZUVundwCfgeEeyFjJCrsqz7LIJyDStke/Srx75AZAQDIH/FeQUdOLtwacPpc8XXtLT6yI3DHJ8g7fExMTExcjB/HIw4rhmRWFQAAAABJRU5ErkJggg==",cowVariation5="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB/klEQVRoge2YbXLEIAiGcad3zA3ImfQGnpL+2JoiQcWPzewPn5nMtAnKi4BrArDZbDabzWYzjHvYHw34Jfb3bdxrSk4f1DbpH/NiRiMORhn1dRv3AgBAxE+L/9j8P5PjZ4VNB5aagsDWWJlDRKwae+/fTpw+dRqf7BLneQIAQAhBG5ZNZs0AcYdWzvME7z0Q0S0Iy1yIKIO4rUQrAwQAQESXoBG891kAUlia/xJVtu3aRgkRs8llqkdIgojourhg51z2LIRQzVYpAOotFwtyzlJvtJ5xtAAy8bxsRkuohCwd6zOObOLlK6+VHSLe6vwSIEqqpScF4MCwJ3vvl2WhJqxnEXkJLT/YrWj6Fk8e5orIQHsCbwagTZ6uFrzclB+lJQxnoKcXVu9enOJRQlthKURrannPIr51VvrLnGokA3AhBLLswSnAnp0plZEQBhSjau+Oozln8zCXDmQ1kT1Nx3shCU9CW/9rVHugJHrF9lha9YqtWhbmF5oe0dzWUl4ymJ7gqhkIIXxk6yvhjsNU99kY5d7VxM45oBj/a9J4wKrB37b4SkvhyjPzSYESAEAUI1GMBO8azK5e+Ni/DwmqD8VnkWYGxIN0j7/J9XCNk1tph76mgQzAFe7NsMzHVxzmZjBvo9ZXvBlGfKgBfKtYDWsGnviK/fSX8s1ms1nAL4ZTXaf8TqprAAAAAElFTkSuQmCC",cowVariation6="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAABsUlEQVRoge2YWXLDIAxARSd3zA10KN3Ap6QfLVQm2sDU/tGbScYJsjYkMTZAkiRJkiRJkjxFucFG3WBT1XE1gFFxlGbXu784MmU2gJDDiAhEFJKzCOgoXxGH4Mfx1WyLeM5HZV7O+rTTUcd4dsd7xjVlJ0r/UljKuOXMSXn9U19K6fcR0cca48NfrYQqIoay6WHpKUYLWmscqYQqN8ivI415N+MOVCvr3o7M7FjLMC+fpoOvefAALk2ZHeW2QiuhCv6hAQDnqfCU05zoOXBiV4M3XZH/NLxzIIzX4NHTmctH9KoBWAeNJjdDNMte4C2AXv9SfRORaHCX85qeQU4cSS9BoHpH/Sqj3nZdj0OUL++3q1OKyjwLOLM7MNZ1c7w56vwWd2BpCu1Ay7ohK474bVPoCmMwM8GZO0BEZpnM9IYlK9V6pP4BnB4gIqjH0ZXNPEFFZHmmR4eFNbEHQgFIBiJOSk7zeyem0NSjb0XEiojtMbJ/2H9ddvLj2lDkVSJNXEAfrbtey5xs/O5MSPdjY3QX4TF6x9PYig2xiQWZHW/X/sVGdAfueAV5h40kSZLNfAP8suojqxWMSgAAAABJRU5ErkJggg==",cowVariation7="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB1klEQVRoge2YXZKDMAiAYad39AZ4JnODnjL7UixBkJim7j7wzdixJuEvJEQBkiRJkiRJkuSvwBt01Ak6XRmfOqAF98J6o/EY9MGfi4qrukyIqEsOEQERQa21ufh5YDwAAPQ60CjsMDBEyljXNezj8Qja9whoYfy/lBIqsZDjWBY7otscHbj/OBymz4qI54DnIBtU61s8Ijb9rbaXnIO93gyMLs4dNlwaJgOAiI2hkrM2jbUG3JE6mj3pM5pivWgHPo58DzwTiNikz7ZtbpuHTKHQ+Bm7jydr27YhPTwDFYKipoXOTA1pvLzv4bAGrH1+ZuRn49aB2UbzVjhb7tWjxM5MQ9Z1datxRFSJT4mqca+TPN4qeuK5uUblqXC/H4mup9zqpx2vz6fZF5fFshX0w6pK9ZAD0qBovDacDQ3+mw58lEKaK457Uff64rKYW/0DAKCUEr04fBXtzBXnfuDt1cG7UsrXzzIeKv9dwhR6TR8AzNs6iQhwWZpIa4ONtvE1wE707jQe+kVFLlYrbYRTl97dKxFVItLvv/LZ3vfiFepw+rv0zMDZ1jrrs0yj46xwaYaPEv+F7jpwx240osOaJusr2Iyva1/R0TsDd3yCvENHkiTJZH4BOxYPBJ6xfbsAAAAASUVORK5CYII=",pixel="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH4goFDRc7VmYGWwAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAALSURBVAjXY2AAAgAABQAB4iYFmwAAAABJRU5ErkJggg==",plotStates={"watered-plot":wateredPlot,"fertilized-plot":fertilizedPlot,"rainbow-fertilized-plot":rainbowFertilizedPlot,"shoveled-plot":shoveledPlot},smeltedItems={"bronze-ingot":bronzeIngot,"iron-ingot":ironIngot,"silver-ingot":silverIngot,"gold-ingot":goldIngot,"hoe-bronze":hoeBronze,"hoe-iron":hoeIron,"hoe-silver":hoeSilver,"hoe-gold":hoeGold,"scythe-bronze":scytheBronze,"scythe-iron":scytheIron,"scythe-silver":scytheSilver,"scythe-gold":scytheGold,"shovel-bronze":shovelBronze,"shovel-iron":shovelIron,"shovel-silver":shovelSilver,"shovel-gold":shovelGold},craftedItems={"carrot-soup":carrotSoup,cheese,"chickn-pot-pie":chicknPotPie,chocolate,"chocolate-soy-milk":chocolateSoyMilk,compost,bread,burger,butter,fertilizer,"french-onion-soup":frenchOnionSoup,"fried-tofu":friedTofu,"garlic-bread":garlicBread,"garlic-fries":garlicFries,flour,jackolantern,"hot-sauce":hotSauce,"olive-oil":oliveOil,"onion-rings":onionRings,popcorn,"pumpkin-pie":pumpkinPie,rainbowCheese,salsa,"soy-milk":soyMilk,"spicy-cheese":spicyCheese,"spicy-pickled-garlic":spicyPickledGarlic,spaghetti,"strawberry-jam":strawberryJam,salt,"summer-salad":summerSalad,"sun-butter":sunButter,"sweet-potato-fries":sweetPotatoFries,"sweet-potato-pie":sweetPotatoPie,tofu,"vegetable-oil":vegetableOil,yeast,...smeltedItems},items={asparagus,"asparagus-growing-1":asparagusGrowing1,"asparagus-growing-2":asparagusGrowing2,"asparagus-growing-3":asparagusGrowing3,"asparagus-seed":asparagusSeed,carrot,"carrot-growing-1":carrotGrowing1,"carrot-growing-2":carrotGrowing2,"carrot-growing-3":carrotGrowing3,"carrot-seed":carrotSeed,garlic,"garlic-growing-1":garlicGrowing1,"garlic-growing-2":garlicGrowing2,"garlic-growing-3":garlicGrowing3,"garlic-seed":garlicSeed,"grape-seed":grapeSeed,"grape-cabernet-sauvignon":grapePurple,"grape-cabernet-sauvignon-growing-1":grapePurpleGrowing1,"grape-cabernet-sauvignon-seed":grapeSeed,"grape-chardonnay":grapeGreen,"grape-chardonnay-growing-1":grapeGreenGrowing1,"grape-chardonnay-seed":grapeSeed,"grape-nebbiolo":grapePurple,"grape-nebbiolo-growing-1":grapePurpleGrowing1,"grape-nebbiolo-seed":grapeSeed,"grape-sauvignon-blanc":grapeGreen,"grape-sauvignon-blanc-growing-1":grapeGreenGrowing1,"grape-sauvignon-blanc-seed":grapeSeed,"grape-tempranillo":grapePurple,"grape-tempranillo-growing-1":grapePurpleGrowing1,"grape-tempranillo-seed":grapeSeed,jalapeno,"jalapeno-growing-1":jalapenoGrowing1,"jalapeno-growing-2":jalapenoGrowing2,"jalapeno-growing-3":jalapenoGrowing3,"jalapeno-seed":jalapenoSeed,pumpkin,"pumpkin-growing-1":pumpkinGrowing1,"pumpkin-growing-2":pumpkinGrowing2,"pumpkin-growing-3":pumpkinGrowing3,"pumpkin-growing-4":pumpkinGrowing4,"pumpkin-growing-5":pumpkinGrowing5,"pumpkin-seed":pumpkinSeed,pea,"pea-growing-1":peaGrowing1,"pea-seed":peaSeed,spinach,"spinach-growing-1":spinachGrowing1,"spinach-seed":spinachSeed,corn,"corn-growing-1":cornGrowing1,"corn-growing-2":cornGrowing2,"corn-growing-3":cornGrowing3,"corn-growing-4":cornGrowing4,"corn-growing-5":cornGrowing5,"corn-seed":cornSeed,potato,"potato-growing-1":potatoGrowing1,"potato-growing-2":potatoGrowing2,"potato-growing-3":potatoGrowing3,"potato-seed":potatoSeed,olive,"olive-growing-1":oliveGrowing1,"olive-seed":oliveSeed,onion,"onion-growing-1":onionGrowing1,"onion-growing-2":onionGrowing2,"onion-growing-3":onionGrowing3,"onion-seed":onionSeed,soybean,"soybean-growing-1":soybeanGrowing1,"soybean-seed":soybeanSeed,"sweet-potato":sweetPotato,"sweet-potato-growing-1":sweetPotatoGrowing1,"sweet-potato-growing-2":sweetPotatoGrowing2,"sweet-potato-growing-3":sweetPotatoGrowing3,"sweet-potato-growing-4":sweetPotatoGrowing4,"sweet-potato-seed":sweetPotatoSeed,wheat,"wheat-growing-1":wheatGrowing1,"wheat-seed":wheatSeed,tomato,"tomato-growing-1":tomatoGrowing1,"tomato-growing-2":tomatoGrowing2,"tomato-growing-3":tomatoGrowing3,"tomato-growing-4":tomatoGrowing4,"tomato-growing-5":tomatoGrowing5,"tomato-growing-6":tomatoGrowing6,"tomato-seed":tomatoSeed,strawberry,"strawberry-growing-1":strawberryGrowing1,"strawberry-seed":strawberrySeed,sunflower,"sunflower-growing-1":sunflowerGrowing1,"sunflower-growing-2":sunflowerGrowing2,"sunflower-growing-3":sunflowerGrowing3,"sunflower-growing-4":sunflowerGrowing4,"sunflower-growing-5":sunflowerGrowing5,"sunflower-seed":sunflowerSeed,watermelon,"watermelon-growing-1":watermelonGrowing1,"watermelon-seed":watermelonSeed,weed:weedPink,"weed-yellow":weedYellow,"weed-orange":weedOrange,"weed-pink":weedPink,coal,stone,"salt-rock":saltRock,"bronze-ore":bronzeOre,"iron-ore":ironOre,"silver-ore":silverOre,"gold-ore":goldOre,"rainbow-fertilizer":rainbowFertilizer,scarecrow,sprinkler,"cow-feed":cowFeed$1,"hugging-machine":huggingMachine,"milk-1":milk1,"milk-2":milk2,"milk-3":milk3,"rainbow-milk-1":rainbowMilk1,"rainbow-milk-2":rainbowMilk2,"rainbow-milk-3":rainbowMilk3,"chocolate-milk":chocolateMilk,"scarecrow-animated":scarecrowAnimated,"inventory-box":inventoryBox,...craftedItems},wines={[grapeVariety.CHARDONNAY]:wineGreen,[grapeVariety.SAUVIGNON_BLANC]:wineGreen,[grapeVariety.CABERNET_SAUVIGNON]:winePurple,[grapeVariety.TEMPRANILLO]:winePurple,[grapeVariety.NEBBIOLO]:winePurple},tools$1={hoe,scythe,shovel,"watering-can":wateringCan},animals={cow:{rainbow:rainbowCow,variations:[cowVariation1,cowVariation2,cowVariation3,cowVariation4,cowVariation5,cowVariation6,cowVariation7]}},isItemAGrownCrop=o=>o.type===itemType.CROP&&!o.growsInto,FARM_PRODUCT_TYPES=[itemType.CRAFTED_ITEM,itemType.FUEL,itemType.MILK,itemType.ORE,itemType.STONE],isItemAFarmProduct=o=>!!(isItemAGrownCrop(o)||FARM_PRODUCT_TYPES.includes(o.type)),farmProductsSold=memoize(o=>Object.entries(o).reduce((a,[s,$])=>a+(isItemAFarmProduct(itemsMap[s])&&$||0),0)),getInventoryQuantityMap=memoize(o=>o.reduce((a,{id:s,quantity:$})=>(a[s]=$,a),{})),getItemBaseValue=o=>itemsMap[o].value,getLevelEntitlements=memoize(o=>{const a={sprinklerRange:INITIAL_SPRINKLER_RANGE,items:{},tools:{},stageFocusType:{}};return levels.find(({unlocksShopItem:s,unlocksStageFocusType:$,unlocksTool:j,id:_e,increasesSprinklerRange:et})=>(et&&a.sprinklerRange++,s&&(a.items[s]=!0),j&&(a.tools[j]=!0),$&&(a.stageFocusType[$]=!0),_e===o)),a}),Jimp=configure({types:[jimpPng]}),{SEED:SEED$1,GROWING,GROWN:GROWN$2}=cropLifeStage,isPlotContent=(o={})=>!!(o&&o.itemId&&o.fertilizerType),isShoveledPlot=(o={})=>!!(o&&o.isShoveled&&o.daysUntilClear),purchasableItemMap=[...inventory$1,...inventory].reduce((o,a)=>(o[a.id]=a,o),{}),chooseRandomIndex=o=>Math.round(random()*(o.length-1)),chooseRandom=o=>o[chooseRandomIndex(o)],memoizationSerializer=o=>JSON.stringify([...o].map(a=>typeof a=="function"?a.toString():a)),clampNumber=(o,a,s)=>o<=a?a:o>=s?s:o,castToMoney=o=>Math.round(o*100)/100,moneyTotal=(...o)=>o.reduce((a,s)=>a+=Math.round(s*100),0)/100,scaleNumber=(o,a,s,$,j)=>(o-a)*(j-$)/(s-a)+$,convertStringToInteger=o=>o.split("").reduce((a,s,$)=>a+s.charCodeAt(0)*$,0),createNewField=()=>new Array(INITIAL_FIELD_HEIGHT).fill(void 0).map(()=>new Array(INITIAL_FIELD_WIDTH).fill(null)),createNewForest=()=>new Array(INITIAL_FOREST_HEIGHT).fill(void 0).map(()=>new Array(INITIAL_FOREST_WIDTH).fill(null)),formatNumber=(o,a)=>dinero({amount:Math.round(o*100),precision:2}).convertPrecision(0).toFormat(a),dollarString=o=>formatNumber(o,"$0,0"),integerString=o=>formatNumber(o,"0,0"),percentageString=o=>`${Math.round(o*100)}%`,getItemCurrentValue=({id:o},a)=>dinero({amount:Math.round((a[o]?getItemBaseValue(o)*(itemsMap[o].doesPriceFluctuate?a[o]:1):getItemBaseValue(o))*100),precision:2}).toUnit(),getAdjustedItemValue=(o,a)=>Number(((o[a]||1)*itemsMap[a].value).toFixed(2)),isItemSoldInShop=({id:o})=>!!purchasableItemMap[o],getResaleValue=({id:o})=>itemsMap[o].value/2,getPlotContentFromItemId=o=>({itemId:o,fertilizerType:fertilizerType.NONE}),getCropFromItemId=o=>({...getPlotContentFromItemId(o),daysOld:0,daysWatered:0,wasWateredToday:!1}),getPlotContentType=({itemId:o})=>o?itemsMap[o].type:null,doesPlotContainCrop=o=>o!==null&&getPlotContentType(o)===itemType.CROP,getLifeStageRange=memoize(o=>{let a=Array(o[0]).fill(SEED$1);return a=a.concat(o.slice(1).reduce((s,$)=>s.concat(Array($).fill(GROWING)),[])),a}),getGrowingPhase=memoize(o=>{const{itemId:a,daysWatered:s}=o,{cropTimeline:$=[]}=itemsMap[a];let j=s+1,_e=0;for(let et of $){if(j-et<=0)break;j-=et,_e+=1}return _e},{cacheSize:LARGEST_PURCHASABLE_FIELD_SIZE.columns*LARGEST_PURCHASABLE_FIELD_SIZE.rows}),getCropLifeStage=o=>{const{itemId:a,daysWatered:s}=o,{cropTimeline:$}=itemsMap[a];if(!$)throw new Error(`${a} has no cropTimeline`);return getLifeStageRange($)[Math.floor(s||0)]||GROWN$2},getPlotImage=(o,a,s)=>{if(isPlotContent(o)){if(isPlotContentACrop(o)){let $;switch(getCropLifeStage(o)){case GROWN$2:$=o.itemId;break;case GROWING:const j=getGrowingPhase(o);$=`${o.itemId}-growing-${j}`;break;default:$=cropItemIdToSeedItemMap[o.itemId].id}return items[$]}if(getPlotContentType(o)===itemType.WEED){const $=["yellow","orange","pink"],j=$[a*s%$.length];return items[`weed-${j}`]}return items[o.itemId]}return isShoveledPlot(o)&&o!=null&&o.oreId?items[o.oreId]:null},getRangeCoords=(o,a,s)=>{const $=2*o+1,j=a-o,_e=s-o;return new Array($).fill(null).map((et,tt)=>new Array($).fill(null).map((rt,nt)=>({x:j+nt,y:_e+tt})))},getFinalCropItemFromSeedItem=({id:o},a=0)=>{const s=getFinalCropItemIdFromSeedItemId(o,a);if(s)return itemsMap[s]},getFinalCropItemIdFromSeedItemId=(o,a=0)=>{const{growsInto:s}=itemsMap[o];return Array.isArray(s)?s[a]:s},getSeedItemIdFromFinalStageCropItemId=memoize(o=>{var s;const a=(s=Object.values(itemsMap).find(({growsInto:$})=>Array.isArray($)?$.includes(o):$===o))==null?void 0:s.id;if(!a)throw new Error(`Crop item ID ${o} does not have a corresponding seed`);return a},{cacheSize:Object.keys(itemsMap).length}),getDefaultCowName=({id:o})=>fruitNames[convertStringToInteger(o)%fruitNames.length],getCowDisplayName=(o,a,s)=>o.originalOwnerId!==a&&!s?getDefaultCowName(o):o.name,generateCow=(o={})=>{const a=o.gender||chooseRandom(Object.values(genders)),s=o.color||chooseRandom(Object.values(standardCowColors)),$=o.id||uuid_1.v4(),_e={baseWeight:Math.round(COW_STARTING_WEIGHT_BASE*(a===genders.MALE?MALE_COW_WEIGHT_MULTIPLIER:1)-COW_STARTING_WEIGHT_VARIANCE+random()*(COW_STARTING_WEIGHT_VARIANCE*2)),color:s,colorsInBloodline:{[s]:!0},daysOld:1,daysSinceMilking:0,daysSinceProducingFertilizer:0,gender:a,happiness:0,happinessBoostsToday:0,id:$,isBred:!1,isUsingHuggingMachine:!1,name:"",ownerId:"",originalOwnerId:"",timesTraded:0,weightMultiplier:1,...o};return _e.name=getDefaultCowName(_e),_e},generateOffspringCow=(o,a,s,$={})=>{if(o.gender===a.gender)throw new Error(`${JSON.stringify(o)} ${JSON.stringify(a)} cannot produce offspring because they have the same gender`);const j=o.gender===genders.MALE?o:a,_e=o.gender===genders.MALE?a:o,et={[j.color]:!0,[_e.color]:!0,...j.colorsInBloodline,..._e.colorsInBloodline};delete et[cowColors.RAINBOW];const tt=Object.keys(et).length===Object.keys(standardCowColors).length;return generateCow({color:tt?cowColors.RAINBOW:chooseRandom([_e.color,j.color]),colorsInBloodline:et,baseWeight:(j.baseWeight+_e.baseWeight)/2,isBred:!0,ownerId:s,originalOwnerId:s,...$})},getCowMilkItem=({color:o,happiness:a})=>{if(o===cowColors.BROWN)return chocolateMilk$1;const s=o===cowColors.RAINBOW;return a<1/3?s?rainbowMilk1$1:milk1$1:a<2/3?s?rainbowMilk2$1:milk2$1:s?rainbowMilk3$1:milk3$1},getCowFertilizerItem=({color:o})=>itemsMap[o===cowColors.RAINBOW?"rainbow-fertilizer":"fertilizer"],getCowMilkRate=o=>o.gender===genders.FEMALE?scaleNumber(o.weightMultiplier,COW_WEIGHT_MULTIPLIER_MINIMUM,COW_WEIGHT_MULTIPLIER_MAXIMUM,COW_MILK_RATE_SLOWEST,COW_MILK_RATE_FASTEST):1/0,getCowFertilizerProductionRate=o=>o.gender===genders.MALE?scaleNumber(o.weightMultiplier,COW_WEIGHT_MULTIPLIER_MINIMUM,COW_WEIGHT_MULTIPLIER_MAXIMUM,COW_FERTILIZER_PRODUCTION_RATE_SLOWEST,COW_FERTILIZER_PRODUCTION_RATE_FASTEST):1/0,getCowWeight=({baseWeight:o,weightMultiplier:a})=>Math.round(o*a),getCowValue=(o,a=!1)=>a?getCowWeight(o)*clampNumber(scaleNumber(o.daysOld,1,COW_MAXIMUM_VALUE_MATURITY_AGE,COW_MINIMUM_VALUE_MULTIPLIER,COW_MAXIMUM_VALUE_MULTIPLIER),COW_MINIMUM_VALUE_MULTIPLIER,COW_MAXIMUM_VALUE_MULTIPLIER):getCowWeight(o)*1.5,getCowSellValue=o=>getCowValue(o,!0),maxYieldOfRecipe=memoize(({ingredients:o},a)=>{const s=getInventoryQuantityMap(a);return Math.min(...Object.keys(o).map($=>Math.floor(s[$]/o[$])))||0}),canMakeRecipe=(o,a,s)=>maxYieldOfRecipe(o,a)>=s,filterItemIdsToSeeds=o=>o.filter(a=>{var s;return((s=itemsMap[a])==null?void 0:s.type)===itemType.CROP}),getRandomUnlockedCrop=o=>{const a=chooseRandom(o),s=itemsMap[a],$=Array.isArray(s.growsInto)?chooseRandomIndex(s.growsInto):0,j=getFinalCropItemIdFromSeedItemId(a,$);if(!j)throw new Error(`Seed item ID ${a} has no corresponding final crop ID`);return itemsMap[j]},getPriceEventForCrop=o=>({itemId:o.id,daysRemaining:getCropLifecycleDuration(o)-PRICE_EVENT_STANDARD_DURATION_DECREASE}),doesMenuObstructStage=()=>window.innerWidth<BREAKPOINTS.MD,itemTypesToShowInReverse=new Set([itemType.MILK]),sortItemIdsByTypeAndValue=memoize(o=>sortBy(o,[a=>+(itemsMap[a].type!==itemType.CROP),a=>{const{type:s,value:$}=itemsMap[a];return itemTypesToShowInReverse.has(s)?-$:$}])),sortItems=o=>{const a={};return o.forEach(s=>a[s.id]=s),sortItemIdsByTypeAndValue(o.map(({id:s})=>s)).map(s=>a[s])},inventorySpaceConsumed=memoize(o=>o.reduce((a,{quantity:s=0})=>a+s,0)),inventorySpaceRemaining=({inventory:o,inventoryLimit:a})=>a===INFINITE_STORAGE_LIMIT?1/0:Math.max(0,a-inventorySpaceConsumed(o)),doesInventorySpaceRemain=o=>inventorySpaceRemaining(o)>0,areHuggingMachinesInInventory=memoize(o=>o.some(({id:a})=>a===HUGGING_MACHINE_ITEM_ID)),nullArray=memoize(o=>Object.freeze(new Array(o).fill(null)),{cacheSize:30}),findCowById=memoize((o,a)=>o.find(s=>a===s.id)),experienceNeededForLevel=o=>((o-1)*10)**2,getAvailableShopInventory=memoize(o=>inventory.filter(({id:a})=>!(unlockableItems.hasOwnProperty(a)&&!o.items.hasOwnProperty(a)))),getRandomLevelUpReward=o=>itemsMap[chooseRandom(filterItemIdsToSeeds(Object.keys(getLevelEntitlements(o).items)))],getRandomLevelUpRewardQuantity=o=>o*10,getPeerMetadata=o=>{const a=PEER_METADATA_STATE_KEYS.reduce((s,$)=>(s[$]=o[$],s),{});return Object.assign(a,{cowOfferedForTrade:o.cowInventory.find(({id:s})=>s===o.cowIdOfferedForTrade)}),a},reduceByPersistedKeys=o=>PERSISTED_STATE_KEYS.reduce((a,s)=>(typeof o[s]<"u"&&(a[s]=o[s]),a),{}),get7DayAverage=o=>o.reduce((a,s)=>moneyTotal(a,s),0)/DAILY_FINANCIAL_HISTORY_RECORD_LENGTH,cowColorToIdMap={[cowColors.BLUE]:"blue",[cowColors.BROWN]:"brown",[cowColors.GREEN]:"green",[cowColors.ORANGE]:"orange",[cowColors.PURPLE]:"purple",[cowColors.RAINBOW]:"rainbow",[cowColors.WHITE]:"white",[cowColors.YELLOW]:"yellow"},getCowColorId=({color:o})=>`${cowColorToIdMap[o]}-cow`,getProfit=(o,a)=>moneyTotal(o,a),getProfitRecord=(o,a,s)=>Math.max(o,getProfit(a,s)),computeMarketPositions=(o,a,s)=>s.reduce(($,{id:j,quantity:_e})=>{const et=o[j]||0,tt=a[j]||0;return itemsMap[j].doesPriceFluctuate&&et!==_e&&(_e<et||_e<tt?$[j]=-1:(_e>et||_e>tt)&&($[j]=1)),$},{}),transformStateDataForImport=o=>{let a={...o};["version"].forEach($=>delete a[$]),a.experience===0&&(a.experience=farmProductsSold(a.itemsSold||{})),a.showHomeScreen===!1&&a.stageFocus===stageFocusType.HOME&&(a={...a,stageFocus:STANDARD_VIEW_LIST[0]});{const{cowId1:$,cowId2:j}=a.cowBreedingPen,_e=a.cowInventory.reduce((tt,rt)=>(tt[rt.id]=rt,tt),{});[$,j].some(tt=>tt&&!(tt in _e))&&(a.cowBreedingPen={cowId1:null,cowId2:null,daysUntilBirth:-1})}return a.id&&(a.playerId=a.id,delete a.id),a},getPlayerName=memoize(o=>funAnimalName(o)),getCostOfNextStorageExpansion=o=>{const a=(o-INITIAL_STORAGE_LIMIT)/STORAGE_EXPANSION_AMOUNT;return STORAGE_EXPANSION_BASE_PRICE+a*STORAGE_EXPANSION_SCALE_PREMIUM},sleep=o=>new Promise(a=>setTimeout(a,o)),getSalePriceMultiplier=(o={})=>{let a=1;return o["i-am-rich-3"]?a+=I_AM_RICH_BONUSES[2]:o["i-am-rich-2"]?a+=I_AM_RICH_BONUSES[1]:o["i-am-rich-1"]&&(a+=I_AM_RICH_BONUSES[0]),a},isPlotContentACrop=o=>getPlotContentType(o)===itemType.CROP;function randomChoice(o){let a=0,s=[];for(let et of o)a+=et.weight,s.push(et);s.sort(et=>et.weight);let $=random()*a,j,_e=0;for(let et in s){if(j=s[et],$<j.weight+_e)return j;_e+=j.weight}return s[s.length-1]}const colorizeCowTemplate=(()=>{const s=document.createElement("canvas");s.setAttribute("height",String(48)),s.setAttribute("width",String(48));const $={},j=memoize(_e=>{const[,et,tt,rt]=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(_e)??["","0","0","0"];return{r:parseInt(et,16),g:parseInt(tt,16),b:parseInt(rt,16)}});return async(_e,et)=>{if(et===cowColors.RAINBOW)return animals.cow.rainbow;const tt=`${et}_${_e}`;if($[tt])return $[tt];try{const rt=buffer$1.Buffer.from(_e.split(",")[1]??"","base64"),nt=await Jimp.read(rt);return nt.scan(0,0,nt.bitmap.width,nt.bitmap.height,function(it,ot){const{r:at,g:st,b:ut}=Jimp.intToRGBA(nt.getPixelColor(it,ot));if(at===102&&st===102&&ut===102){const ct=j(COW_COLORS_HEX_MAP[et]),ft=Jimp.rgbaToInt(ct.r,ct.g,ct.b,255);nt.setPixelColor(ft,it,ot)}}),$[tt]=await nt.getBase64Async(Jimp.MIME_PNG),$[tt]}catch(rt){return console.error(rt),pixel}}})(),getCowImage=async o=>{const a=convertStringToInteger(o.id),{variations:s}=animals.cow,$=s[a%s.length];return await colorizeCowTemplate($,o.color)},isInViewport=o=>{const{top:a,left:s,bottom:$,right:j}=o.getBoundingClientRect();return a>=0&&s>=0&&$<=(window.innerHeight||document.documentElement.clientHeight)&&j<=(window.innerWidth||document.documentElement.clientWidth)},shouldPrecipitateToday=()=>random()<PRECIPITATION_CHANCE,shouldStormToday=()=>random()<STORM_CHANCE,isCowInBreedingPen=(o,a)=>a.cowId1===o.id||a.cowId2===o.id,isOctober=()=>new Date().getMonth()===9,isDecember=()=>new Date().getMonth()===11,PROGRESS_SAVED_MESSAGE="Progress saved!",RAIN_MESSAGE="It rained in the night!",STORM_MESSAGE="There was a storm in the night!",STORM_DESTROYS_SCARECROWS_MESSAGE="There was a storm in the night! No scarecrows survived!",FARM_PRODUCTS_TOOLTIP_TEXT="This figure only includes sales of grown crops, crafted items, and animal products.",COW_SOLD_TOOLTIP_TEXT="This figure only includes cows you were not the original owner for.",DATA_DELETED="Your local game data has been deleted.",INVALID_DATA_PROVIDED="Invalid Farmhand data provided.",UPDATE_AVAILABLE="A game update is available! Click this message to reload and see what's new.",SERVER_ERROR="There was an issue connecting to the server. Please try again in a moment.",CONNECTING_TO_SERVER="Connecting...",DISCONNECTING_FROM_SERVER="Disconnecting...",DISCONNECTED_FROM_SERVER="You are now playing offline.",REQUESTED_COW_TRADE_UNAVAILABLE="The requested cow is no longer available.",UNKNOWN_COW_TRADE_FAILURE="Something went wrong with your cow trade request. Please try again!",COW_ALREADY_OWNED="It looks like you already have this cow!",OUT_OF_COW_FEED_NOTIFICATION="You're out of cow feed! Buy some more before your cows get hungry and run away!",INVENTORY_FULL_NOTIFICATION="Your inventory is full!",SHOVELED="Shoveled plot",WATERING_CAN_ALT_TEXT="A watering can for hydrating plants.",WATERING_CAN_HIDDEN_TEXT="Select the watering can to water your crops",SCYTHE_ALT_TEXT="A scythe for crop harvesting.",SCYTHE_HIDDEN_TEXT="Select the scythe to harvest ripened crops",HOE_ALT_TEXT="A hoe for removing crops and disposing of them. Also returns replantable items to your inventory.",HOE_HIDDEN_TEXT="Select the hoe to clear crops, or replantable field items",SHOVEL_ALT_TEXT="A shovel for digging up rocks.",SHOVEL_HIDDEN_TEXT="Select the shovel to dig for ore",TOOL_LEVEL_INFO={SCYTHE:{DEFAULT:"**Basic**: Harvests one crop per plot.",BRONZE:"**Bronze**: Harvests two crops per plot.",IRON:"**Iron**: Harvests three crops per plot.",SILVER:"**Silver**: Harvests four crops per plot.",GOLD:"**Gold**: Harvests five crops per plot."},SHOVEL:{DEFAULT:"**Basic**: Has a 30% chance of digging up resources.",BRONZE:"**Bronze**: Has a 40% chance of digging up resources.",IRON:"**Iron**: Has a 50% chance of digging up resources.",SILVER:"**Silver**: Has a 60% chance of digging up resources.",GOLD:"**Gold**: Has a 70% chance of digging up resources."},WATERING_CAN:{DEFAULT:"**Basic**: Keeps plots watered for one day.",BRONZE:"**Bronze**: Keeps plots watered for two days.",IRON:"**Iron**: Keeps plots watered for three days.",SILVER:"**Silver**: Keeps plots watered for four days.",GOLD:"**Gold**: Keeps plots watered for five days."},HOE:{DEFAULT:"**Basic**: Destroys crops.",BRONZE:"**Bronze**: 25% chance to retrieve seeds when digging up crops.",IRON:"**Iron**: 50% chance to retrieve seeds when digging up crops.",SILVER:"**Silver**: 75% chance to retrieve seeds when digging up crops.",GOLD:"**Gold**: 100% chance to retrieve seeds when digging up crops."}},FORGE_AVAILABLE_NOTIFICATION="**The Forge** is now available in the Workshop!",RECYCLING_AVAILABLE_NOTIFICATION="**Recycling** is now available in the Workshop!",FOREST_AVAILABLE_NOTIFICATION="The **Forest** is now available!",COW_COLOR_NAMES={[cowColors.BLUE]:"Blue",[cowColors.BROWN]:"Brown",[cowColors.GREEN]:"Green",[cowColors.ORANGE]:"Orange",[cowColors.PURPLE]:"Purple",[cowColors.RAINBOW]:"Rainbow",[cowColors.WHITE]:"White",[cowColors.YELLOW]:"Yellow"},SHOVEL_UNLOCKED="You've unlocked a new tool for the field, The **Shovel**!",addCowToInventory=(o,a)=>{const{cowInventory:s}=o;return{...o,cowInventory:[...s,a]}};function levelAchieved(o=0){return Math.floor(Math.sqrt(o)/10)+1}const moneyString=o=>dinero({amount:Math.round(o*100)}).toFormat(),CROWS_DESTROYED=(o,a)=>`Oh no! Crows destroyed ${a} crop${a>1?"s":""}!`,COW_PEN_PURCHASED=(o,a)=>`Purchased a cow pen with capacity for ${a} cows! You can visit your cow pen by going to the "Cows" page.`,CELLAR_PURCHASED=(o,a)=>`Purchased a cellar with capacity for ${a} kegs! View your keg inventory by going to the "Cellar" page.`,MILKS_PRODUCED=(o,a)=>{let s=`Your cows produced milk:
299
299
  `;return Object.keys(a).sort().forEach($=>s+=` - ${a[$]} ${$}${a[$]>1?"s":""}
300
300
  `),s},FERTILIZERS_PRODUCED=(o,a)=>{let s=`Your cows produced fertilizer:
301
301
  `;return Object.keys(a).sort().forEach($=>s+=` - ${a[$]} ${$}${a[$]>1?"s":""}
@@ -845,7 +845,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
845
845
  animation: ${0} 1.4s linear infinite;
846
846
  `),circularRotateKeyframe)),CircularProgressSVG=styled("svg",{name:"MuiCircularProgress",slot:"Svg",overridesResolver:(o,a)=>a.svg})({display:"block"}),CircularProgressCircle=styled("circle",{name:"MuiCircularProgress",slot:"Circle",overridesResolver:(o,a)=>{const{ownerState:s}=o;return[a.circle,a[`circle${capitalize$2(s.variant)}`],s.disableShrink&&a.circleDisableShrink]}})(({ownerState:o,theme:a})=>_extends$5({stroke:"currentColor"},o.variant==="determinate"&&{transition:a.transitions.create("stroke-dashoffset")},o.variant==="indeterminate"&&{strokeDasharray:"80px, 200px",strokeDashoffset:0}),({ownerState:o})=>o.variant==="indeterminate"&&!o.disableShrink&&css$2(_t4||(_t4=_`
847
847
  animation: ${0} 1.4s ease-in-out infinite;
848
- `),circularDashKeyframe)),CircularProgress=reactExports.forwardRef(function o(a,s){const $=useDefaultProps({props:a,name:"MuiCircularProgress"}),{className:j,color:_e="primary",disableShrink:et=!1,size:tt=40,style:rt,thickness:nt=3.6,value:it=0,variant:ot="indeterminate"}=$,at=_objectWithoutPropertiesLoose$3($,_excluded$6),st=_extends$5({},$,{color:_e,disableShrink:et,size:tt,thickness:nt,value:it,variant:ot}),ut=useUtilityClasses$5(st),ct={},ft={},dt={};if(ot==="determinate"){const mt=2*Math.PI*((SIZE-nt)/2);ct.strokeDasharray=mt.toFixed(3),dt["aria-valuenow"]=Math.round(it),ct.strokeDashoffset=`${((100-it)/100*mt).toFixed(3)}px`,ft.transform="rotate(-90deg)"}return jsxRuntimeExports.jsx(CircularProgressRoot,_extends$5({className:clsx$1(ut.root,j),style:_extends$5({width:tt,height:tt},ft,rt),ownerState:st,ref:s,role:"progressbar"},dt,at,{children:jsxRuntimeExports.jsx(CircularProgressSVG,{className:ut.svg,ownerState:st,viewBox:`${SIZE/2} ${SIZE/2} ${SIZE} ${SIZE}`,children:jsxRuntimeExports.jsx(CircularProgressCircle,{className:ut.circle,style:ct,ownerState:st,cx:SIZE,cy:SIZE,r:(SIZE-nt)/2,fill:"none",strokeWidth:nt})})}))});function DayAndProgressContainer({dayCount:o,experience:a,itemsSold:s}){const $=levelAchieved(a),j=scaleNumber(a,experienceNeededForLevel($),experienceNeededForLevel($+1),0,100),_e=experienceNeededForLevel($+1)-a,et=$+1;return jsxRuntimeExports.jsxs("h2",{className:"day-and-progress-container",children:[jsxRuntimeExports.jsxs("span",{children:["Day ",integerString(o),", level:"]}),jsxRuntimeExports.jsx(Tooltip,{arrow:!0,placement:"top",title:EXPERIENCE_GAUGE_TOOLTIP_LABEL`${_e}${et}`,children:jsxRuntimeExports.jsxs(Box,{children:[jsxRuntimeExports.jsx(CircularProgress,{value:j,variant:"determinate"}),jsxRuntimeExports.jsx("span",{className:"current-level",children:integerString($)})]})})]})}DayAndProgressContainer.propTypes={dayCount:propTypesExports.number.isRequired,experience:propTypesExports.number.isRequired,itemsSold:propTypesExports.object.isRequired};function Consumer$g(o){return jsxRuntimeExports.jsx(FarmhandContext.Consumer,{children:({gameState:a,handlers:s})=>jsxRuntimeExports.jsx(DayAndProgressContainer,{...a,...s,...o})})}const FarmNameDisplay=({farmName:o,handleFarmNameUpdate:a})=>{const[s,$]=reactExports.useState(o);return reactExports.useEffect(()=>{$(o)},[o,$]),jsxRuntimeExports.jsxs("h2",{className:"farm-name",children:[jsxRuntimeExports.jsx(TextField,{variant:"standard",inputProps:{maxLength:12},onChange:({target:{value:j}})=>{$(j)},onBlur:({target:{value:j}})=>{a(j)},placeholder:"Farm Name",value:s})," ","Farm"]})},OnlineControls=({activePlayers:o,handleActivePlayerButtonClick:a,handleChatRoomOpenStateChange:s,handleOnlineToggleChange:$,handleRoomChange:j,isChatAvailable:_e,isOnline:et,room:tt})=>{const[rt,nt]=reactExports.useState(tt);reactExports.useEffect(()=>{nt(tt)},[tt,nt]);const it=()=>{s(!0)},ot=()=>{j(rt)},at=st=>{ot(),$(st)};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs(FormControl,{variant:"standard",className:"online-control-container",component:"fieldset",children:[jsxRuntimeExports.jsx(FormGroup,{className:"toggle-container",children:jsxRuntimeExports.jsx(FormControlLabel,{control:jsxRuntimeExports.jsx(Switch,{color:"primary",checked:et,onChange:(st,ut)=>{at(ut)},name:"use-alternate-end-day-button-position"}),label:"Play online"})}),jsxRuntimeExports.jsx(TextField,{className:"room-name",inputProps:{maxLength:MAX_ROOM_NAME_LENGTH},label:"Room name",onChange:({target:{value:st}})=>{nt(st)},onKeyUp:({key:st})=>{st==="Enter"&&ot()},value:rt,variant:"outlined"})]}),o&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs(Button,{color:"primary",onClick:a,variant:"contained",children:["Connected players: ",integerString(o)]}),_e?jsxRuntimeExports.jsx(Button,{variant:"contained",color:"primary",onClick:it,children:"Open chat"}):jsxRuntimeExports.jsxs(Typography,{className:"chat-placeholder",children:['Chat is available for online rooms other than "',DEFAULT_ROOM,'"']})]})]})},{FARMERS_LOG,PRICE_EVENTS,STATS,ACHIEVEMENTS,ACCOUNTING,SETTINGS,ONLINE_PEERS,KEYBINDINGS}=dialogView,dialogTriggerTextMap={[FARMERS_LOG]:"Open Farmer's Log (l)",[PRICE_EVENTS]:"See Price Events (e)",[STATS]:"View your stats (s)",[ACHIEVEMENTS]:"View Achievements (a)",[ACCOUNTING]:"View Bank Account (b)",[SETTINGS]:"View Settings (comma)"},dialogTitleMap={[FARMERS_LOG]:"Farmer's Log",[PRICE_EVENTS]:"Price Events",[STATS]:"Farm Stats",[ACHIEVEMENTS]:"Achievements",[ACCOUNTING]:"Bank Account",[SETTINGS]:"Settings",[ONLINE_PEERS]:"Active Players",[KEYBINDINGS]:"Keyboard Shortcuts"},dialogContentMap={[FARMERS_LOG]:jsxRuntimeExports.jsx(Consumer$n,{}),[PRICE_EVENTS]:jsxRuntimeExports.jsx(Consumer$j,{}),[STATS]:jsxRuntimeExports.jsx(Consumer$h,{}),[ACHIEVEMENTS]:jsxRuntimeExports.jsx(Consumer$o,{}),[ACCOUNTING]:jsxRuntimeExports.jsx(Consumer$q,{}),[SETTINGS]:jsxRuntimeExports.jsx(Consumer$i,{}),[ONLINE_PEERS]:jsxRuntimeExports.jsx(Consumer$l,{}),[KEYBINDINGS]:jsxRuntimeExports.jsx(KeybindingsView,{})},Navigation=({activePlayers:o,blockInput:a,currentDialogView:s,farmName:$,handleActivePlayerButtonClick:j,handleChatRoomOpenStateChange:_e,handleClickDialogViewButton:et,handleCloseDialogView:tt,handleDialogViewExited:rt,handleFarmNameUpdate:nt,handleOnlineToggleChange:it,handleRoomChange:ot,handleViewChange:at,inventory:st,inventoryLimit:ut,isChatAvailable:ct,isDialogViewOpen:ft,isOnline:dt,room:mt,stageFocus:vt,viewList:yt,currentDialogViewLowerCase:pt=s.toLowerCase(),modalTitleId:ht=`${pt}-modal-title`,modalContentId:At=`${pt}-modal-content`})=>jsxRuntimeExports.jsxs("header",{className:"Navigation",children:[jsxRuntimeExports.jsx("h1",{children:"Farmhand"}),jsxRuntimeExports.jsxs("p",{className:"version",children:["v","1.19.2"]}),jsxRuntimeExports.jsx(FarmNameDisplay,{farmName:$,handleFarmNameUpdate:nt}),jsxRuntimeExports.jsx(Consumer$g,{}),jsxRuntimeExports.jsx(OnlineControls,{activePlayers:o,handleActivePlayerButtonClick:j,handleChatRoomOpenStateChange:_e,handleOnlineToggleChange:it,handleRoomChange:ot,isChatAvailable:ct,isOnline:dt,room:mt}),ut>INFINITE_STORAGE_LIMIT&&jsxRuntimeExports.jsxs("h3",{className:classNames("inventory-info",{"is-inventory-full":!doesInventorySpaceRemain({inventory:st,inventoryLimit:ut})}),children:["Inventory: ",integerString(inventorySpaceConsumed(st))," /"," ",integerString(ut)]}),jsxRuntimeExports.jsx(Select,{variant:"standard",className:"view-select",onChange:at,value:vt,children:yt.map((St,Ct)=>jsxRuntimeExports.jsxs(MenuItem,{key:St,value:St,children:[Ct+1,": ",STAGE_TITLE_MAP[St]]}))}),jsxRuntimeExports.jsx("div",{className:"button-array",children:[{dialogView:FARMERS_LOG,Icon:default_1$a},{dialogView:PRICE_EVENTS,Icon:default_1$9},{dialogView:STATS,Icon:default_1$c},{dialogView:ACHIEVEMENTS,Icon:default_1$b},{dialogView:ACCOUNTING,Icon:default_1$d},{dialogView:SETTINGS,Icon:default_1$8}].map(({dialogView:St,Icon:Ct})=>jsxRuntimeExports.jsx(Tooltip,{arrow:!0,key:St,placement:"top",title:dialogTriggerTextMap[St],children:jsxRuntimeExports.jsx(Fab,{"aria-label":dialogTriggerTextMap[St],color:"primary",onClick:()=>et(St),children:jsxRuntimeExports.jsx(Ct,{})})}))}),jsxRuntimeExports.jsxs(Dialog,{className:classNames("Farmhand",{"block-input":a}),fullWidth:!0,maxWidth:"xs",onClose:tt,open:ft,TransitionProps:{onExited:rt},"aria-describedby":ht,"aria-labelledby":At,children:[jsxRuntimeExports.jsx(DialogTitle,{id:ht,children:dialogTitleMap[s]}),jsxRuntimeExports.jsx(DialogContent,{id:At,children:dialogContentMap[s]}),jsxRuntimeExports.jsx(DialogActions,{children:jsxRuntimeExports.jsx(Button,{onClick:tt,color:"primary",autoFocus:!0,children:"Close"})})]})]});Navigation.propTypes={activePlayers:propTypesExports.number,blockInput:propTypesExports.bool.isRequired,farmName:propTypesExports.string.isRequired,handleClickDialogViewButton:propTypesExports.func.isRequired,handleChatRoomOpenStateChange:propTypesExports.func.isRequired,handleActivePlayerButtonClick:propTypesExports.func.isRequired,handleCloseDialogView:propTypesExports.func.isRequired,handleDialogViewExited:propTypesExports.func.isRequired,handleFarmNameUpdate:propTypesExports.func.isRequired,handleOnlineToggleChange:propTypesExports.func.isRequired,handleRoomChange:propTypesExports.func.isRequired,handleViewChange:propTypesExports.func.isRequired,inventory:propTypesExports.array.isRequired,inventoryLimit:propTypesExports.number.isRequired,isChatAvailable:propTypesExports.bool.isRequired,isDialogViewOpen:propTypesExports.bool.isRequired,isOnline:propTypesExports.bool.isRequired,stageFocus:propTypesExports.string.isRequired,viewList:propTypesExports.array.isRequired};function Consumer$f(o){return jsxRuntimeExports.jsx(FarmhandContext.Consumer,{children:({gameState:a,handlers:s})=>jsxRuntimeExports.jsx(Navigation,{...a,...s,...o})})}var ExpandMore={},_interopRequireDefault$4=interopRequireDefaultExports;Object.defineProperty(ExpandMore,"__esModule",{value:!0});var default_1$4=ExpandMore.default=void 0,_createSvgIcon$4=_interopRequireDefault$4(requireCreateSvgIcon()),_jsxRuntime$4=jsxRuntimeExports;default_1$4=ExpandMore.default=(0,_createSvgIcon$4.default)((0,_jsxRuntime$4.jsx)("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore");const SearchBar=({placeholder:o,onSearch:a})=>{const s=useDebounceCallback(j=>{a(j)},300),$=j=>{s(j.target.value)};return jsxRuntimeExports.jsx("div",{className:"search-bar",children:jsxRuntimeExports.jsx(TextField,{variant:"outlined",fullWidth:!0,placeholder:o||"Search...",onChange:$,inputProps:{"aria-label":"search"}})})};SearchBar.propTypes={placeholder:PropTypes$1.string,onSearch:PropTypes$1.func.isRequired};const categoryIds=new Map([["CROPS","CROPS"],["SEEDS","SEEDS"],["FORAGED_ITEMS","FORAGED_ITEMS"],["FIELD_TOOLS","FIELD_TOOLS"],["ANIMAL_PRODUCTS","ANIMAL_PRODUCTS"],["ANIMAL_SUPPLIES","ANIMAL_SUPPLIES"],["CRAFTED_ITEMS","CRAFTED_ITEMS"],["MINED_RESOURCES","MINED_RESOURCES"]]),itemTypeCategoryMap=new Map([["SEEDS","SEEDS"],["COW_FEED","ANIMAL_SUPPLIES"],["CRAFTED_ITEM","CRAFTED_ITEMS"],["CROP","CROPS"],["FERTILIZER","FIELD_TOOLS"],["FUEL","MINED_RESOURCES"],["HUGGING_MACHINE","ANIMAL_SUPPLIES"],["MILK","ANIMAL_PRODUCTS"],["ORE","MINED_RESOURCES"],["SCARECROW","FIELD_TOOLS"],["SPRINKLER","FIELD_TOOLS"],["STONE","MINED_RESOURCES"],["WEED","FORAGED_ITEMS"]]),getItemCategories=()=>new Map(Array.from(categoryIds.keys()).map(o=>[o,[]])),separateItemsIntoCategories=o=>sortItems(o).reduce((a,s)=>{var _e,et;const{type:$}=itemsMap[s.id],j=itemTypeCategoryMap.get($);if(j==="CROPS"){const tt=s.isPlantableCrop?"SEEDS":"CROPS";(_e=a.get(tt))==null||_e.push(s)}else j!=null&&a.has(j)&&((et=a.get(j))==null||et.push(s));return a},getItemCategories()),formatCategoryName=o=>o.replace(/_/g," ").toLowerCase().replace(/\b\w/g,a=>a.toUpperCase()),Inventory=({items:o,playerInventory:a,shopInventory:s,isPurchaseView:$=!1,isSellView:j=!1,itemCategories:_e=separateItemsIntoCategories(o),placeholder:et="Search inventory..."})=>{const[tt,rt]=reactExports.useState(""),[nt,it]=reactExports.useState([]),ot=st=>{it(ut=>ut.includes(st)?ut.filter(ct=>ct!==st):[...ut,st])},at=Array.from(_e.entries()).reduce((st,[ut,ct])=>{const ft=ct.filter(dt=>{const mt=itemsMap[dt.id];return mt&&mt.name&&mt.name.toLowerCase().includes(tt.toLowerCase())});return ft.length&&(!nt.length||nt.includes(ut))&&st.set(ut,ft),st},new Map);return jsxRuntimeExports.jsxs("div",{className:"Inventory",children:[jsxRuntimeExports.jsx(SearchBar,{placeholder:et,onSearch:rt}),!$&&jsxRuntimeExports.jsxs(Accordion,{children:[jsxRuntimeExports.jsx(AccordionSummary,{expandIcon:jsxRuntimeExports.jsx(default_1$4,{}),"aria-controls":"filter-content",id:"filter-header",children:jsxRuntimeExports.jsx("h4",{children:"Filter by category"})}),jsxRuntimeExports.jsx(AccordionDetails,{children:jsxRuntimeExports.jsx("div",{className:"filter-section",children:Array.from(categoryIds.keys()).map(st=>jsxRuntimeExports.jsx(FormControlLabel,{sx:{display:"block"},control:jsxRuntimeExports.jsx(Checkbox,{disabled:$,checked:nt.includes(st),onChange:()=>ot(st)}),label:formatCategoryName(st)},st))})})]}),Array.from(at.entries()).map(([st,ut])=>ut.length?jsxRuntimeExports.jsx(reactExports.Fragment,{children:jsxRuntimeExports.jsxs("section",{children:[jsxRuntimeExports.jsx("h3",{children:formatCategoryName(st)}),jsxRuntimeExports.jsx("ul",{className:"card-list",children:ut.map(ct=>jsxRuntimeExports.jsx("li",{children:jsxRuntimeExports.jsx(Consumer$k,{isPurchaseView:$,isSellView:j,item:ct,showQuantity:$})},ct.id))})]})},st):null)]})};Inventory.propTypes={items:propTypesExports.array.isRequired,playerInventory:propTypesExports.array,shopInventory:propTypesExports.array};function Consumer$e(o){return jsxRuntimeExports.jsx(FarmhandContext.Consumer,{children:({gameState:a,handlers:s})=>jsxRuntimeExports.jsx(Inventory,{...a,...s,...o})})}var ArrowDownward={},_interopRequireDefault$3=interopRequireDefaultExports;Object.defineProperty(ArrowDownward,"__esModule",{value:!0});var default_1$3=ArrowDownward.default=void 0,_createSvgIcon$3=_interopRequireDefault$3(requireCreateSvgIcon()),_jsxRuntime$3=jsxRuntimeExports;default_1$3=ArrowDownward.default=(0,_createSvgIcon$3.default)((0,_jsxRuntime$3.jsx)("path",{d:"m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8z"}),"ArrowDownward");var ArrowUpward={},_interopRequireDefault$2=interopRequireDefaultExports;Object.defineProperty(ArrowUpward,"__esModule",{value:!0});var default_1$2=ArrowUpward.default=void 0,_createSvgIcon$2=_interopRequireDefault$2(requireCreateSvgIcon()),_jsxRuntime$2=jsxRuntimeExports;default_1$2=ArrowUpward.default=(0,_createSvgIcon$2.default)((0,_jsxRuntime$2.jsx)("path",{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"}),"ArrowUpward");function getTabUtilityClass(o){return generateUtilityClass("MuiTab",o)}const tabClasses=generateUtilityClasses("MuiTab",["root","labelIcon","textColorInherit","textColorPrimary","textColorSecondary","selected","disabled","fullWidth","wrapped","iconWrapper"]),_excluded$5=["className","disabled","disableFocusRipple","fullWidth","icon","iconPosition","indicator","label","onChange","onClick","onFocus","selected","selectionFollowsFocus","textColor","value","wrapped"],useUtilityClasses$4=o=>{const{classes:a,textColor:s,fullWidth:$,wrapped:j,icon:_e,label:et,selected:tt,disabled:rt}=o,nt={root:["root",_e&&et&&"labelIcon",`textColor${capitalize$2(s)}`,$&&"fullWidth",j&&"wrapped",tt&&"selected",rt&&"disabled"],iconWrapper:["iconWrapper"]};return composeClasses(nt,getTabUtilityClass,a)},TabRoot=styled(ButtonBase,{name:"MuiTab",slot:"Root",overridesResolver:(o,a)=>{const{ownerState:s}=o;return[a.root,s.label&&s.icon&&a.labelIcon,a[`textColor${capitalize$2(s.textColor)}`],s.fullWidth&&a.fullWidth,s.wrapped&&a.wrapped,{[`& .${tabClasses.iconWrapper}`]:a.iconWrapper}]}})(({theme:o,ownerState:a})=>_extends$5({},o.typography.button,{maxWidth:360,minWidth:90,position:"relative",minHeight:48,flexShrink:0,padding:"12px 16px",overflow:"hidden",whiteSpace:"normal",textAlign:"center"},a.label&&{flexDirection:a.iconPosition==="top"||a.iconPosition==="bottom"?"column":"row"},{lineHeight:1.25},a.icon&&a.label&&{minHeight:72,paddingTop:9,paddingBottom:9,[`& > .${tabClasses.iconWrapper}`]:_extends$5({},a.iconPosition==="top"&&{marginBottom:6},a.iconPosition==="bottom"&&{marginTop:6},a.iconPosition==="start"&&{marginRight:o.spacing(1)},a.iconPosition==="end"&&{marginLeft:o.spacing(1)})},a.textColor==="inherit"&&{color:"inherit",opacity:.6,[`&.${tabClasses.selected}`]:{opacity:1},[`&.${tabClasses.disabled}`]:{opacity:(o.vars||o).palette.action.disabledOpacity}},a.textColor==="primary"&&{color:(o.vars||o).palette.text.secondary,[`&.${tabClasses.selected}`]:{color:(o.vars||o).palette.primary.main},[`&.${tabClasses.disabled}`]:{color:(o.vars||o).palette.text.disabled}},a.textColor==="secondary"&&{color:(o.vars||o).palette.text.secondary,[`&.${tabClasses.selected}`]:{color:(o.vars||o).palette.secondary.main},[`&.${tabClasses.disabled}`]:{color:(o.vars||o).palette.text.disabled}},a.fullWidth&&{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"},a.wrapped&&{fontSize:o.typography.pxToRem(12)})),Tab=reactExports.forwardRef(function o(a,s){const $=useDefaultProps({props:a,name:"MuiTab"}),{className:j,disabled:_e=!1,disableFocusRipple:et=!1,fullWidth:tt,icon:rt,iconPosition:nt="top",indicator:it,label:ot,onChange:at,onClick:st,onFocus:ut,selected:ct,selectionFollowsFocus:ft,textColor:dt="inherit",value:mt,wrapped:vt=!1}=$,yt=_objectWithoutPropertiesLoose$3($,_excluded$5),pt=_extends$5({},$,{disabled:_e,disableFocusRipple:et,selected:ct,icon:!!rt,iconPosition:nt,label:!!ot,fullWidth:tt,textColor:dt,wrapped:vt}),ht=useUtilityClasses$4(pt),At=rt&&ot&&reactExports.isValidElement(rt)?reactExports.cloneElement(rt,{className:clsx$1(ht.iconWrapper,rt.props.className)}):rt,St=Mt=>{!ct&&at&&at(Mt,mt),st&&st(Mt)},Ct=Mt=>{ft&&!ct&&at&&at(Mt,mt),ut&&ut(Mt)};return jsxRuntimeExports.jsxs(TabRoot,_extends$5({focusRipple:!et,className:clsx$1(ht.root,j),ref:s,role:"tab","aria-selected":ct,disabled:_e,onClick:St,onFocus:Ct,ownerState:pt,tabIndex:ct?0:-1},yt,{children:[nt==="top"||nt==="start"?jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[At,ot]}):jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[ot,At]}),it]}))});function easeInOutSin(o){return(1+Math.sin(Math.PI*o-Math.PI/2))/2}function animate$1(o,a,s,$={},j=()=>{}){const{ease:_e=easeInOutSin,duration:et=300}=$;let tt=null;const rt=a[o];let nt=!1;const it=()=>{nt=!0},ot=at=>{if(nt){j(new Error("Animation cancelled"));return}tt===null&&(tt=at);const st=Math.min(1,(at-tt)/et);if(a[o]=_e(st)*(s-rt)+rt,st>=1){requestAnimationFrame(()=>{j(null)});return}requestAnimationFrame(ot)};return rt===s?(j(new Error("Element already at target position")),it):(requestAnimationFrame(ot),it)}const _excluded$4=["onChange"],styles$1={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll"};function ScrollbarSize(o){const{onChange:a}=o,s=_objectWithoutPropertiesLoose$3(o,_excluded$4),$=reactExports.useRef(),j=reactExports.useRef(null),_e=()=>{$.current=j.current.offsetHeight-j.current.clientHeight};return useEnhancedEffect$1(()=>{const et=debounce$4(()=>{const rt=$.current;_e(),rt!==$.current&&a($.current)}),tt=ownerWindow(j.current);return tt.addEventListener("resize",et),()=>{et.clear(),tt.removeEventListener("resize",et)}},[a]),reactExports.useEffect(()=>{_e(),a($.current)},[a]),jsxRuntimeExports.jsx("div",_extends$5({style:styles$1},s,{ref:j}))}const KeyboardArrowLeft=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft"),KeyboardArrowRight=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight");function getTabScrollButtonUtilityClass(o){return generateUtilityClass("MuiTabScrollButton",o)}const tabScrollButtonClasses=generateUtilityClasses("MuiTabScrollButton",["root","vertical","horizontal","disabled"]),_excluded$3=["className","slots","slotProps","direction","orientation","disabled"],useUtilityClasses$3=o=>{const{classes:a,orientation:s,disabled:$}=o;return composeClasses({root:["root",s,$&&"disabled"]},getTabScrollButtonUtilityClass,a)},TabScrollButtonRoot=styled(ButtonBase,{name:"MuiTabScrollButton",slot:"Root",overridesResolver:(o,a)=>{const{ownerState:s}=o;return[a.root,s.orientation&&a[s.orientation]]}})(({ownerState:o})=>_extends$5({width:40,flexShrink:0,opacity:.8,[`&.${tabScrollButtonClasses.disabled}`]:{opacity:0}},o.orientation==="vertical"&&{width:"100%",height:40,"& svg":{transform:`rotate(${o.isRtl?-90:90}deg)`}})),TabScrollButton=reactExports.forwardRef(function o(a,s){var $,j;const _e=useDefaultProps({props:a,name:"MuiTabScrollButton"}),{className:et,slots:tt={},slotProps:rt={},direction:nt}=_e,it=_objectWithoutPropertiesLoose$3(_e,_excluded$3),ot=useRtl(),at=_extends$5({isRtl:ot},_e),st=useUtilityClasses$3(at),ut=($=tt.StartScrollButtonIcon)!=null?$:KeyboardArrowLeft,ct=(j=tt.EndScrollButtonIcon)!=null?j:KeyboardArrowRight,ft=useSlotProps({elementType:ut,externalSlotProps:rt.startScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:at}),dt=useSlotProps({elementType:ct,externalSlotProps:rt.endScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:at});return jsxRuntimeExports.jsx(TabScrollButtonRoot,_extends$5({component:"div",className:clsx$1(st.root,et),ref:s,role:null,ownerState:at,tabIndex:null},it,{children:nt==="left"?jsxRuntimeExports.jsx(ut,_extends$5({},ft)):jsxRuntimeExports.jsx(ct,_extends$5({},dt))}))});function getTabsUtilityClass(o){return generateUtilityClass("MuiTabs",o)}const tabsClasses=generateUtilityClasses("MuiTabs",["root","vertical","flexContainer","flexContainerVertical","centered","scroller","fixed","scrollableX","scrollableY","hideScrollbar","scrollButtons","scrollButtonsHideMobile","indicator"]),_excluded$2=["aria-label","aria-labelledby","action","centered","children","className","component","allowScrollButtonsMobile","indicatorColor","onChange","orientation","ScrollButtonComponent","scrollButtons","selectionFollowsFocus","slots","slotProps","TabIndicatorProps","TabScrollButtonProps","textColor","value","variant","visibleScrollbar"],nextItem=(o,a)=>o===a?o.firstChild:a&&a.nextElementSibling?a.nextElementSibling:o.firstChild,previousItem=(o,a)=>o===a?o.lastChild:a&&a.previousElementSibling?a.previousElementSibling:o.lastChild,moveFocus=(o,a,s)=>{let $=!1,j=s(o,a);for(;j;){if(j===o.firstChild){if($)return;$=!0}const _e=j.disabled||j.getAttribute("aria-disabled")==="true";if(!j.hasAttribute("tabindex")||_e)j=s(o,j);else{j.focus();return}}},useUtilityClasses$2=o=>{const{vertical:a,fixed:s,hideScrollbar:$,scrollableX:j,scrollableY:_e,centered:et,scrollButtonsHideMobile:tt,classes:rt}=o;return composeClasses({root:["root",a&&"vertical"],scroller:["scroller",s&&"fixed",$&&"hideScrollbar",j&&"scrollableX",_e&&"scrollableY"],flexContainer:["flexContainer",a&&"flexContainerVertical",et&&"centered"],indicator:["indicator"],scrollButtons:["scrollButtons",tt&&"scrollButtonsHideMobile"],scrollableX:[j&&"scrollableX"],hideScrollbar:[$&&"hideScrollbar"]},getTabsUtilityClass,rt)},TabsRoot=styled("div",{name:"MuiTabs",slot:"Root",overridesResolver:(o,a)=>{const{ownerState:s}=o;return[{[`& .${tabsClasses.scrollButtons}`]:a.scrollButtons},{[`& .${tabsClasses.scrollButtons}`]:s.scrollButtonsHideMobile&&a.scrollButtonsHideMobile},a.root,s.vertical&&a.vertical]}})(({ownerState:o,theme:a})=>_extends$5({overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex"},o.vertical&&{flexDirection:"column"},o.scrollButtonsHideMobile&&{[`& .${tabsClasses.scrollButtons}`]:{[a.breakpoints.down("sm")]:{display:"none"}}})),TabsScroller=styled("div",{name:"MuiTabs",slot:"Scroller",overridesResolver:(o,a)=>{const{ownerState:s}=o;return[a.scroller,s.fixed&&a.fixed,s.hideScrollbar&&a.hideScrollbar,s.scrollableX&&a.scrollableX,s.scrollableY&&a.scrollableY]}})(({ownerState:o})=>_extends$5({position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap"},o.fixed&&{overflowX:"hidden",width:"100%"},o.hideScrollbar&&{scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}},o.scrollableX&&{overflowX:"auto",overflowY:"hidden"},o.scrollableY&&{overflowY:"auto",overflowX:"hidden"})),FlexContainer=styled("div",{name:"MuiTabs",slot:"FlexContainer",overridesResolver:(o,a)=>{const{ownerState:s}=o;return[a.flexContainer,s.vertical&&a.flexContainerVertical,s.centered&&a.centered]}})(({ownerState:o})=>_extends$5({display:"flex"},o.vertical&&{flexDirection:"column"},o.centered&&{justifyContent:"center"})),TabsIndicator=styled("span",{name:"MuiTabs",slot:"Indicator",overridesResolver:(o,a)=>a.indicator})(({ownerState:o,theme:a})=>_extends$5({position:"absolute",height:2,bottom:0,width:"100%",transition:a.transitions.create()},o.indicatorColor==="primary"&&{backgroundColor:(a.vars||a).palette.primary.main},o.indicatorColor==="secondary"&&{backgroundColor:(a.vars||a).palette.secondary.main},o.vertical&&{height:"100%",width:2,right:0})),TabsScrollbarSize=styled(ScrollbarSize)({overflowX:"auto",overflowY:"hidden",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),defaultIndicatorStyle={},Tabs=reactExports.forwardRef(function o(a,s){const $=useDefaultProps({props:a,name:"MuiTabs"}),j=useTheme$1(),_e=useRtl(),{"aria-label":et,"aria-labelledby":tt,action:rt,centered:nt=!1,children:it,className:ot,component:at="div",allowScrollButtonsMobile:st=!1,indicatorColor:ut="primary",onChange:ct,orientation:ft="horizontal",ScrollButtonComponent:dt=TabScrollButton,scrollButtons:mt="auto",selectionFollowsFocus:vt,slots:yt={},slotProps:pt={},TabIndicatorProps:ht={},TabScrollButtonProps:At={},textColor:St="primary",value:Ct,variant:Mt="standard",visibleScrollbar:Dt=!1}=$,Et=_objectWithoutPropertiesLoose$3($,_excluded$2),wt=Mt==="scrollable",jt=ft==="vertical",Bt=jt?"scrollTop":"scrollLeft",Ht=jt?"top":"left",Gt=jt?"bottom":"right",Tt=jt?"clientHeight":"clientWidth",Nt=jt?"height":"width",Ot=_extends$5({},$,{component:at,allowScrollButtonsMobile:st,indicatorColor:ut,orientation:ft,vertical:jt,scrollButtons:mt,textColor:St,variant:Mt,visibleScrollbar:Dt,fixed:!wt,hideScrollbar:wt&&!Dt,scrollableX:wt&&!jt,scrollableY:wt&&jt,centered:nt&&!wt,scrollButtonsHideMobile:!st}),kt=useUtilityClasses$2(Ot),It=useSlotProps({elementType:yt.StartScrollButtonIcon,externalSlotProps:pt.startScrollButtonIcon,ownerState:Ot}),Pt=useSlotProps({elementType:yt.EndScrollButtonIcon,externalSlotProps:pt.endScrollButtonIcon,ownerState:Ot}),[Ft,Vt]=reactExports.useState(!1),[Xt,Kt]=reactExports.useState(defaultIndicatorStyle),[bt,$t]=reactExports.useState(!1),[Yt,Qt]=reactExports.useState(!1),[zt,Lt]=reactExports.useState(!1),[er,lr]=reactExports.useState({overflow:"hidden",scrollbarWidth:0}),yr=new Map,mr=reactExports.useRef(null),Er=reactExports.useRef(null),ur=()=>{const vr=mr.current;let Ar;if(vr){const kr=vr.getBoundingClientRect();Ar={clientWidth:vr.clientWidth,scrollLeft:vr.scrollLeft,scrollTop:vr.scrollTop,scrollLeftNormalized:getNormalizedScrollLeft(vr,_e?"rtl":"ltr"),scrollWidth:vr.scrollWidth,top:kr.top,bottom:kr.bottom,left:kr.left,right:kr.right}}let Pr;if(vr&&Ct!==!1){const kr=Er.current.children;if(kr.length>0){const Gr=kr[yr.get(Ct)];Pr=Gr?Gr.getBoundingClientRect():null}}return{tabsMeta:Ar,tabMeta:Pr}},wr=useEventCallback$1(()=>{const{tabsMeta:vr,tabMeta:Ar}=ur();let Pr=0,kr;if(jt)kr="top",Ar&&vr&&(Pr=Ar.top-vr.top+vr.scrollTop);else if(kr=_e?"right":"left",Ar&&vr){const Vr=_e?vr.scrollLeftNormalized+vr.clientWidth-vr.scrollWidth:vr.scrollLeft;Pr=(_e?-1:1)*(Ar[kr]-vr[kr]+Vr)}const Gr={[kr]:Pr,[Nt]:Ar?Ar[Nt]:0};if(isNaN(Xt[kr])||isNaN(Xt[Nt]))Kt(Gr);else{const Vr=Math.abs(Xt[kr]-Gr[kr]),Kr=Math.abs(Xt[Nt]-Gr[Nt]);(Vr>=1||Kr>=1)&&Kt(Gr)}}),Rr=(vr,{animation:Ar=!0}={})=>{Ar?animate$1(Bt,mr.current,vr,{duration:j.transitions.duration.standard}):mr.current[Bt]=vr},nr=vr=>{let Ar=mr.current[Bt];jt?Ar+=vr:(Ar+=vr*(_e?-1:1),Ar*=_e&&detectScrollType()==="reverse"?-1:1),Rr(Ar)},fr=()=>{const vr=mr.current[Tt];let Ar=0;const Pr=Array.from(Er.current.children);for(let kr=0;kr<Pr.length;kr+=1){const Gr=Pr[kr];if(Ar+Gr[Tt]>vr){kr===0&&(Ar=vr);break}Ar+=Gr[Tt]}return Ar},gr=()=>{nr(-1*fr())},br=()=>{nr(fr())},Sr=reactExports.useCallback(vr=>{lr({overflow:null,scrollbarWidth:vr})},[]),Ut=()=>{const vr={};vr.scrollbarSizeListener=wt?jsxRuntimeExports.jsx(TabsScrollbarSize,{onChange:Sr,className:clsx$1(kt.scrollableX,kt.hideScrollbar)}):null;const Pr=wt&&(mt==="auto"&&(bt||Yt)||mt===!0);return vr.scrollButtonStart=Pr?jsxRuntimeExports.jsx(dt,_extends$5({slots:{StartScrollButtonIcon:yt.StartScrollButtonIcon},slotProps:{startScrollButtonIcon:It},orientation:ft,direction:_e?"right":"left",onClick:gr,disabled:!bt},At,{className:clsx$1(kt.scrollButtons,At.className)})):null,vr.scrollButtonEnd=Pr?jsxRuntimeExports.jsx(dt,_extends$5({slots:{EndScrollButtonIcon:yt.EndScrollButtonIcon},slotProps:{endScrollButtonIcon:Pt},orientation:ft,direction:_e?"left":"right",onClick:br,disabled:!Yt},At,{className:clsx$1(kt.scrollButtons,At.className)})):null,vr},xt=useEventCallback$1(vr=>{const{tabsMeta:Ar,tabMeta:Pr}=ur();if(!(!Pr||!Ar)){if(Pr[Ht]<Ar[Ht]){const kr=Ar[Bt]+(Pr[Ht]-Ar[Ht]);Rr(kr,{animation:vr})}else if(Pr[Gt]>Ar[Gt]){const kr=Ar[Bt]+(Pr[Gt]-Ar[Gt]);Rr(kr,{animation:vr})}}}),Rt=useEventCallback$1(()=>{wt&&mt!==!1&&Lt(!zt)});reactExports.useEffect(()=>{const vr=debounce$4(()=>{mr.current&&wr()});let Ar;const Pr=Vr=>{Vr.forEach(Kr=>{Kr.removedNodes.forEach(rn=>{var en;(en=Ar)==null||en.unobserve(rn)}),Kr.addedNodes.forEach(rn=>{var en;(en=Ar)==null||en.observe(rn)})}),vr(),Rt()},kr=ownerWindow(mr.current);kr.addEventListener("resize",vr);let Gr;return typeof ResizeObserver<"u"&&(Ar=new ResizeObserver(vr),Array.from(Er.current.children).forEach(Vr=>{Ar.observe(Vr)})),typeof MutationObserver<"u"&&(Gr=new MutationObserver(Pr),Gr.observe(Er.current,{childList:!0})),()=>{var Vr,Kr;vr.clear(),kr.removeEventListener("resize",vr),(Vr=Gr)==null||Vr.disconnect(),(Kr=Ar)==null||Kr.disconnect()}},[wr,Rt]),reactExports.useEffect(()=>{const vr=Array.from(Er.current.children),Ar=vr.length;if(typeof IntersectionObserver<"u"&&Ar>0&&wt&&mt!==!1){const Pr=vr[0],kr=vr[Ar-1],Gr={root:mr.current,threshold:.99},Vr=nn=>{$t(!nn[0].isIntersecting)},Kr=new IntersectionObserver(Vr,Gr);Kr.observe(Pr);const rn=nn=>{Qt(!nn[0].isIntersecting)},en=new IntersectionObserver(rn,Gr);return en.observe(kr),()=>{Kr.disconnect(),en.disconnect()}}},[wt,mt,zt,it==null?void 0:it.length]),reactExports.useEffect(()=>{Vt(!0)},[]),reactExports.useEffect(()=>{wr()}),reactExports.useEffect(()=>{xt(defaultIndicatorStyle!==Xt)},[xt,Xt]),reactExports.useImperativeHandle(rt,()=>({updateIndicator:wr,updateScrollButtons:Rt}),[wr,Rt]);const qt=jsxRuntimeExports.jsx(TabsIndicator,_extends$5({},ht,{className:clsx$1(kt.indicator,ht.className),ownerState:Ot,style:_extends$5({},Xt,ht.style)}));let rr=0;const ar=reactExports.Children.map(it,vr=>{if(!reactExports.isValidElement(vr))return null;const Ar=vr.props.value===void 0?rr:vr.props.value;yr.set(Ar,rr);const Pr=Ar===Ct;return rr+=1,reactExports.cloneElement(vr,_extends$5({fullWidth:Mt==="fullWidth",indicator:Pr&&!Ft&&qt,selected:Pr,selectionFollowsFocus:vt,onChange:ct,textColor:St,value:Ar},rr===1&&Ct===!1&&!vr.props.tabIndex?{tabIndex:0}:{}))}),ir=vr=>{const Ar=Er.current,Pr=ownerDocument(Ar).activeElement;if(Pr.getAttribute("role")!=="tab")return;let Gr=ft==="horizontal"?"ArrowLeft":"ArrowUp",Vr=ft==="horizontal"?"ArrowRight":"ArrowDown";switch(ft==="horizontal"&&_e&&(Gr="ArrowRight",Vr="ArrowLeft"),vr.key){case Gr:vr.preventDefault(),moveFocus(Ar,Pr,previousItem);break;case Vr:vr.preventDefault(),moveFocus(Ar,Pr,nextItem);break;case"Home":vr.preventDefault(),moveFocus(Ar,null,nextItem);break;case"End":vr.preventDefault(),moveFocus(Ar,null,previousItem);break}},Tr=Ut();return jsxRuntimeExports.jsxs(TabsRoot,_extends$5({className:clsx$1(kt.root,ot),ownerState:Ot,ref:s,as:at},Et,{children:[Tr.scrollButtonStart,Tr.scrollbarSizeListener,jsxRuntimeExports.jsxs(TabsScroller,{className:kt.scroller,ownerState:Ot,style:{overflow:er.overflow,[jt?`margin${_e?"Left":"Right"}`:"marginBottom"]:Dt?void 0:-er.scrollbarWidth},ref:mr,children:[jsxRuntimeExports.jsx(FlexContainer,{"aria-label":et,"aria-labelledby":tt,"aria-orientation":ft==="vertical"?"vertical":null,className:kt.flexContainer,ownerState:Ot,onKeyDown:ir,ref:Er,role:"tablist",children:ar}),Ft&&qt]}),Tr.scrollButtonEnd]}))}),TabPanel$3=o=>{const{children:a,value:s,index:$,...j}=o;return jsxRuntimeExports.jsx("section",{role:"tabpanel",hidden:s!==$,id:`cow-context-tabpanel-${$}`,"aria-labelledby":`cow-context-tab-${$}`,...j,children:s===$?a:null})};TabPanel$3.propTypes={children:propTypesExports.node,index:propTypesExports.number.isRequired,value:propTypesExports.number.isRequired};const a11yProps$3=o=>({id:`cow-context-tab-${o}`,"aria-controls":`cow-context-tabpanel-${o}`}),{AGE,COLOR,GENDER,HAPPINESS,VALUE,WEIGHT}={AGE:"AGE",COLOR:"COLOR",GENDER:"GENDER",HAPPINESS:"HAPPINESS",VALUE:"VALUE",WEIGHT:"WEIGHT"},sortCows=(o,a,s)=>{let $=_e=>_e;a===VALUE?$=getCowSellValue:a===WEIGHT?$=getCowWeight:a===AGE?$=({daysOld:_e})=>_e:a===COLOR?$=({color:_e})=>_e:a===GENDER?$=({gender:_e})=>_e:a===HAPPINESS&&($=({happiness:_e})=>_e);const j=sortBy(o,$);return s?j.reverse():j};/*!
848
+ `),circularDashKeyframe)),CircularProgress=reactExports.forwardRef(function o(a,s){const $=useDefaultProps({props:a,name:"MuiCircularProgress"}),{className:j,color:_e="primary",disableShrink:et=!1,size:tt=40,style:rt,thickness:nt=3.6,value:it=0,variant:ot="indeterminate"}=$,at=_objectWithoutPropertiesLoose$3($,_excluded$6),st=_extends$5({},$,{color:_e,disableShrink:et,size:tt,thickness:nt,value:it,variant:ot}),ut=useUtilityClasses$5(st),ct={},ft={},dt={};if(ot==="determinate"){const mt=2*Math.PI*((SIZE-nt)/2);ct.strokeDasharray=mt.toFixed(3),dt["aria-valuenow"]=Math.round(it),ct.strokeDashoffset=`${((100-it)/100*mt).toFixed(3)}px`,ft.transform="rotate(-90deg)"}return jsxRuntimeExports.jsx(CircularProgressRoot,_extends$5({className:clsx$1(ut.root,j),style:_extends$5({width:tt,height:tt},ft,rt),ownerState:st,ref:s,role:"progressbar"},dt,at,{children:jsxRuntimeExports.jsx(CircularProgressSVG,{className:ut.svg,ownerState:st,viewBox:`${SIZE/2} ${SIZE/2} ${SIZE} ${SIZE}`,children:jsxRuntimeExports.jsx(CircularProgressCircle,{className:ut.circle,style:ct,ownerState:st,cx:SIZE,cy:SIZE,r:(SIZE-nt)/2,fill:"none",strokeWidth:nt})})}))});function DayAndProgressContainer({dayCount:o,experience:a,itemsSold:s}){const $=levelAchieved(a),j=scaleNumber(a,experienceNeededForLevel($),experienceNeededForLevel($+1),0,100),_e=experienceNeededForLevel($+1)-a,et=$+1;return jsxRuntimeExports.jsxs("h2",{className:"day-and-progress-container",children:[jsxRuntimeExports.jsxs("span",{children:["Day ",integerString(o),", level:"]}),jsxRuntimeExports.jsx(Tooltip,{arrow:!0,placement:"top",title:EXPERIENCE_GAUGE_TOOLTIP_LABEL`${_e}${et}`,children:jsxRuntimeExports.jsxs(Box,{children:[jsxRuntimeExports.jsx(CircularProgress,{value:j,variant:"determinate"}),jsxRuntimeExports.jsx("span",{className:"current-level",children:integerString($)})]})})]})}DayAndProgressContainer.propTypes={dayCount:propTypesExports.number.isRequired,experience:propTypesExports.number.isRequired,itemsSold:propTypesExports.object.isRequired};function Consumer$g(o){return jsxRuntimeExports.jsx(FarmhandContext.Consumer,{children:({gameState:a,handlers:s})=>jsxRuntimeExports.jsx(DayAndProgressContainer,{...a,...s,...o})})}const FarmNameDisplay=({farmName:o,handleFarmNameUpdate:a})=>{const[s,$]=reactExports.useState(o);return reactExports.useEffect(()=>{$(o)},[o,$]),jsxRuntimeExports.jsxs("h2",{className:"farm-name",children:[jsxRuntimeExports.jsx(TextField,{variant:"standard",inputProps:{maxLength:12},onChange:({target:{value:j}})=>{$(j)},onBlur:({target:{value:j}})=>{a(j)},placeholder:"Farm Name",value:s})," ","Farm"]})},OnlineControls=({activePlayers:o,handleActivePlayerButtonClick:a,handleChatRoomOpenStateChange:s,handleOnlineToggleChange:$,handleRoomChange:j,isChatAvailable:_e,isOnline:et,room:tt})=>{const[rt,nt]=reactExports.useState(tt);reactExports.useEffect(()=>{nt(tt)},[tt,nt]);const it=()=>{s(!0)},ot=()=>{j(rt)},at=st=>{ot(),$(st)};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs(FormControl,{variant:"standard",className:"online-control-container",component:"fieldset",children:[jsxRuntimeExports.jsx(FormGroup,{className:"toggle-container",children:jsxRuntimeExports.jsx(FormControlLabel,{control:jsxRuntimeExports.jsx(Switch,{color:"primary",checked:et,onChange:(st,ut)=>{at(ut)},name:"use-alternate-end-day-button-position"}),label:"Play online"})}),jsxRuntimeExports.jsx(TextField,{className:"room-name",inputProps:{maxLength:MAX_ROOM_NAME_LENGTH},label:"Room name",onChange:({target:{value:st}})=>{nt(st)},onKeyUp:({key:st})=>{st==="Enter"&&ot()},value:rt,variant:"outlined"})]}),o&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs(Button,{color:"primary",onClick:a,variant:"contained",children:["Connected players: ",integerString(o)]}),_e?jsxRuntimeExports.jsx(Button,{variant:"contained",color:"primary",onClick:it,children:"Open chat"}):jsxRuntimeExports.jsxs(Typography,{className:"chat-placeholder",children:['Chat is available for online rooms other than "',DEFAULT_ROOM,'"']})]})]})},{FARMERS_LOG,PRICE_EVENTS,STATS,ACHIEVEMENTS,ACCOUNTING,SETTINGS,ONLINE_PEERS,KEYBINDINGS}=dialogView,dialogTriggerTextMap={[FARMERS_LOG]:"Open Farmer's Log (l)",[PRICE_EVENTS]:"See Price Events (e)",[STATS]:"View your stats (s)",[ACHIEVEMENTS]:"View Achievements (a)",[ACCOUNTING]:"View Bank Account (b)",[SETTINGS]:"View Settings (comma)"},dialogTitleMap={[FARMERS_LOG]:"Farmer's Log",[PRICE_EVENTS]:"Price Events",[STATS]:"Farm Stats",[ACHIEVEMENTS]:"Achievements",[ACCOUNTING]:"Bank Account",[SETTINGS]:"Settings",[ONLINE_PEERS]:"Active Players",[KEYBINDINGS]:"Keyboard Shortcuts"},dialogContentMap={[FARMERS_LOG]:jsxRuntimeExports.jsx(Consumer$n,{}),[PRICE_EVENTS]:jsxRuntimeExports.jsx(Consumer$j,{}),[STATS]:jsxRuntimeExports.jsx(Consumer$h,{}),[ACHIEVEMENTS]:jsxRuntimeExports.jsx(Consumer$o,{}),[ACCOUNTING]:jsxRuntimeExports.jsx(Consumer$q,{}),[SETTINGS]:jsxRuntimeExports.jsx(Consumer$i,{}),[ONLINE_PEERS]:jsxRuntimeExports.jsx(Consumer$l,{}),[KEYBINDINGS]:jsxRuntimeExports.jsx(KeybindingsView,{})},Navigation=({activePlayers:o,blockInput:a,currentDialogView:s,farmName:$,handleActivePlayerButtonClick:j,handleChatRoomOpenStateChange:_e,handleClickDialogViewButton:et,handleCloseDialogView:tt,handleDialogViewExited:rt,handleFarmNameUpdate:nt,handleOnlineToggleChange:it,handleRoomChange:ot,handleViewChange:at,inventory:st,inventoryLimit:ut,isChatAvailable:ct,isDialogViewOpen:ft,isOnline:dt,room:mt,stageFocus:vt,viewList:yt,currentDialogViewLowerCase:pt=s.toLowerCase(),modalTitleId:ht=`${pt}-modal-title`,modalContentId:At=`${pt}-modal-content`})=>jsxRuntimeExports.jsxs("header",{className:"Navigation",children:[jsxRuntimeExports.jsx("h1",{children:"Farmhand"}),jsxRuntimeExports.jsxs("p",{className:"version",children:["v","1.19.3"]}),jsxRuntimeExports.jsx(FarmNameDisplay,{farmName:$,handleFarmNameUpdate:nt}),jsxRuntimeExports.jsx(Consumer$g,{}),jsxRuntimeExports.jsx(OnlineControls,{activePlayers:o,handleActivePlayerButtonClick:j,handleChatRoomOpenStateChange:_e,handleOnlineToggleChange:it,handleRoomChange:ot,isChatAvailable:ct,isOnline:dt,room:mt}),ut>INFINITE_STORAGE_LIMIT&&jsxRuntimeExports.jsxs("h3",{className:classNames("inventory-info",{"is-inventory-full":!doesInventorySpaceRemain({inventory:st,inventoryLimit:ut})}),children:["Inventory: ",integerString(inventorySpaceConsumed(st))," /"," ",integerString(ut)]}),jsxRuntimeExports.jsx(Select,{variant:"standard",className:"view-select",onChange:at,value:vt,children:yt.map((St,Ct)=>jsxRuntimeExports.jsxs(MenuItem,{key:St,value:St,children:[Ct+1,": ",STAGE_TITLE_MAP[St]]}))}),jsxRuntimeExports.jsx("div",{className:"button-array",children:[{dialogView:FARMERS_LOG,Icon:default_1$a},{dialogView:PRICE_EVENTS,Icon:default_1$9},{dialogView:STATS,Icon:default_1$c},{dialogView:ACHIEVEMENTS,Icon:default_1$b},{dialogView:ACCOUNTING,Icon:default_1$d},{dialogView:SETTINGS,Icon:default_1$8}].map(({dialogView:St,Icon:Ct})=>jsxRuntimeExports.jsx(Tooltip,{arrow:!0,key:St,placement:"top",title:dialogTriggerTextMap[St],children:jsxRuntimeExports.jsx(Fab,{"aria-label":dialogTriggerTextMap[St],color:"primary",onClick:()=>et(St),children:jsxRuntimeExports.jsx(Ct,{})})}))}),jsxRuntimeExports.jsxs(Dialog,{className:classNames("Farmhand",{"block-input":a}),fullWidth:!0,maxWidth:"xs",onClose:tt,open:ft,TransitionProps:{onExited:rt},"aria-describedby":ht,"aria-labelledby":At,children:[jsxRuntimeExports.jsx(DialogTitle,{id:ht,children:dialogTitleMap[s]}),jsxRuntimeExports.jsx(DialogContent,{id:At,children:dialogContentMap[s]}),jsxRuntimeExports.jsx(DialogActions,{children:jsxRuntimeExports.jsx(Button,{onClick:tt,color:"primary",autoFocus:!0,children:"Close"})})]})]});Navigation.propTypes={activePlayers:propTypesExports.number,blockInput:propTypesExports.bool.isRequired,farmName:propTypesExports.string.isRequired,handleClickDialogViewButton:propTypesExports.func.isRequired,handleChatRoomOpenStateChange:propTypesExports.func.isRequired,handleActivePlayerButtonClick:propTypesExports.func.isRequired,handleCloseDialogView:propTypesExports.func.isRequired,handleDialogViewExited:propTypesExports.func.isRequired,handleFarmNameUpdate:propTypesExports.func.isRequired,handleOnlineToggleChange:propTypesExports.func.isRequired,handleRoomChange:propTypesExports.func.isRequired,handleViewChange:propTypesExports.func.isRequired,inventory:propTypesExports.array.isRequired,inventoryLimit:propTypesExports.number.isRequired,isChatAvailable:propTypesExports.bool.isRequired,isDialogViewOpen:propTypesExports.bool.isRequired,isOnline:propTypesExports.bool.isRequired,stageFocus:propTypesExports.string.isRequired,viewList:propTypesExports.array.isRequired};function Consumer$f(o){return jsxRuntimeExports.jsx(FarmhandContext.Consumer,{children:({gameState:a,handlers:s})=>jsxRuntimeExports.jsx(Navigation,{...a,...s,...o})})}var ExpandMore={},_interopRequireDefault$4=interopRequireDefaultExports;Object.defineProperty(ExpandMore,"__esModule",{value:!0});var default_1$4=ExpandMore.default=void 0,_createSvgIcon$4=_interopRequireDefault$4(requireCreateSvgIcon()),_jsxRuntime$4=jsxRuntimeExports;default_1$4=ExpandMore.default=(0,_createSvgIcon$4.default)((0,_jsxRuntime$4.jsx)("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore");const SearchBar=({placeholder:o,onSearch:a})=>{const s=useDebounceCallback(j=>{a(j)},300),$=j=>{s(j.target.value)};return jsxRuntimeExports.jsx("div",{className:"search-bar",children:jsxRuntimeExports.jsx(TextField,{variant:"outlined",fullWidth:!0,placeholder:o||"Search...",onChange:$,inputProps:{"aria-label":"search"}})})};SearchBar.propTypes={placeholder:PropTypes$1.string,onSearch:PropTypes$1.func.isRequired};const categoryIds=new Map([["CROPS","CROPS"],["SEEDS","SEEDS"],["FORAGED_ITEMS","FORAGED_ITEMS"],["FIELD_TOOLS","FIELD_TOOLS"],["ANIMAL_PRODUCTS","ANIMAL_PRODUCTS"],["ANIMAL_SUPPLIES","ANIMAL_SUPPLIES"],["CRAFTED_ITEMS","CRAFTED_ITEMS"],["MINED_RESOURCES","MINED_RESOURCES"]]),itemTypeCategoryMap=new Map([["SEEDS","SEEDS"],["COW_FEED","ANIMAL_SUPPLIES"],["CRAFTED_ITEM","CRAFTED_ITEMS"],["CROP","CROPS"],["FERTILIZER","FIELD_TOOLS"],["FUEL","MINED_RESOURCES"],["HUGGING_MACHINE","ANIMAL_SUPPLIES"],["MILK","ANIMAL_PRODUCTS"],["ORE","MINED_RESOURCES"],["SCARECROW","FIELD_TOOLS"],["SPRINKLER","FIELD_TOOLS"],["STONE","MINED_RESOURCES"],["WEED","FORAGED_ITEMS"]]),getItemCategories=()=>new Map(Array.from(categoryIds.keys()).map(o=>[o,[]])),separateItemsIntoCategories=o=>sortItems(o).reduce((a,s)=>{var _e,et;const{type:$}=itemsMap[s.id],j=itemTypeCategoryMap.get($);if(j==="CROPS"){const tt=s.isPlantableCrop?"SEEDS":"CROPS";(_e=a.get(tt))==null||_e.push(s)}else j!=null&&a.has(j)&&((et=a.get(j))==null||et.push(s));return a},getItemCategories()),formatCategoryName=o=>o.replace(/_/g," ").toLowerCase().replace(/\b\w/g,a=>a.toUpperCase()),Inventory=({items:o,playerInventory:a,shopInventory:s,isPurchaseView:$=!1,isSellView:j=!1,itemCategories:_e=separateItemsIntoCategories(o),placeholder:et="Search inventory..."})=>{const[tt,rt]=reactExports.useState(""),[nt,it]=reactExports.useState([]),ot=st=>{it(ut=>ut.includes(st)?ut.filter(ct=>ct!==st):[...ut,st])},at=Array.from(_e.entries()).reduce((st,[ut,ct])=>{const ft=ct.filter(dt=>{const mt=itemsMap[dt.id];return mt&&mt.name&&mt.name.toLowerCase().includes(tt.toLowerCase())});return ft.length&&(!nt.length||nt.includes(ut))&&st.set(ut,ft),st},new Map);return jsxRuntimeExports.jsxs("div",{className:"Inventory",children:[jsxRuntimeExports.jsx(SearchBar,{placeholder:et,onSearch:rt}),!$&&jsxRuntimeExports.jsxs(Accordion,{children:[jsxRuntimeExports.jsx(AccordionSummary,{expandIcon:jsxRuntimeExports.jsx(default_1$4,{}),"aria-controls":"filter-content",id:"filter-header",children:jsxRuntimeExports.jsx("h4",{children:"Filter by category"})}),jsxRuntimeExports.jsx(AccordionDetails,{children:jsxRuntimeExports.jsx("div",{className:"filter-section",children:Array.from(categoryIds.keys()).map(st=>jsxRuntimeExports.jsx(FormControlLabel,{sx:{display:"block"},control:jsxRuntimeExports.jsx(Checkbox,{disabled:$,checked:nt.includes(st),onChange:()=>ot(st)}),label:formatCategoryName(st)},st))})})]}),Array.from(at.entries()).map(([st,ut])=>ut.length?jsxRuntimeExports.jsx(reactExports.Fragment,{children:jsxRuntimeExports.jsxs("section",{children:[jsxRuntimeExports.jsx("h3",{children:formatCategoryName(st)}),jsxRuntimeExports.jsx("ul",{className:"card-list",children:ut.map(ct=>jsxRuntimeExports.jsx("li",{children:jsxRuntimeExports.jsx(Consumer$k,{isPurchaseView:$,isSellView:j,item:ct,showQuantity:$})},ct.id))})]})},st):null)]})};Inventory.propTypes={items:propTypesExports.array.isRequired,playerInventory:propTypesExports.array,shopInventory:propTypesExports.array};function Consumer$e(o){return jsxRuntimeExports.jsx(FarmhandContext.Consumer,{children:({gameState:a,handlers:s})=>jsxRuntimeExports.jsx(Inventory,{...a,...s,...o})})}var ArrowDownward={},_interopRequireDefault$3=interopRequireDefaultExports;Object.defineProperty(ArrowDownward,"__esModule",{value:!0});var default_1$3=ArrowDownward.default=void 0,_createSvgIcon$3=_interopRequireDefault$3(requireCreateSvgIcon()),_jsxRuntime$3=jsxRuntimeExports;default_1$3=ArrowDownward.default=(0,_createSvgIcon$3.default)((0,_jsxRuntime$3.jsx)("path",{d:"m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8z"}),"ArrowDownward");var ArrowUpward={},_interopRequireDefault$2=interopRequireDefaultExports;Object.defineProperty(ArrowUpward,"__esModule",{value:!0});var default_1$2=ArrowUpward.default=void 0,_createSvgIcon$2=_interopRequireDefault$2(requireCreateSvgIcon()),_jsxRuntime$2=jsxRuntimeExports;default_1$2=ArrowUpward.default=(0,_createSvgIcon$2.default)((0,_jsxRuntime$2.jsx)("path",{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"}),"ArrowUpward");function getTabUtilityClass(o){return generateUtilityClass("MuiTab",o)}const tabClasses=generateUtilityClasses("MuiTab",["root","labelIcon","textColorInherit","textColorPrimary","textColorSecondary","selected","disabled","fullWidth","wrapped","iconWrapper"]),_excluded$5=["className","disabled","disableFocusRipple","fullWidth","icon","iconPosition","indicator","label","onChange","onClick","onFocus","selected","selectionFollowsFocus","textColor","value","wrapped"],useUtilityClasses$4=o=>{const{classes:a,textColor:s,fullWidth:$,wrapped:j,icon:_e,label:et,selected:tt,disabled:rt}=o,nt={root:["root",_e&&et&&"labelIcon",`textColor${capitalize$2(s)}`,$&&"fullWidth",j&&"wrapped",tt&&"selected",rt&&"disabled"],iconWrapper:["iconWrapper"]};return composeClasses(nt,getTabUtilityClass,a)},TabRoot=styled(ButtonBase,{name:"MuiTab",slot:"Root",overridesResolver:(o,a)=>{const{ownerState:s}=o;return[a.root,s.label&&s.icon&&a.labelIcon,a[`textColor${capitalize$2(s.textColor)}`],s.fullWidth&&a.fullWidth,s.wrapped&&a.wrapped,{[`& .${tabClasses.iconWrapper}`]:a.iconWrapper}]}})(({theme:o,ownerState:a})=>_extends$5({},o.typography.button,{maxWidth:360,minWidth:90,position:"relative",minHeight:48,flexShrink:0,padding:"12px 16px",overflow:"hidden",whiteSpace:"normal",textAlign:"center"},a.label&&{flexDirection:a.iconPosition==="top"||a.iconPosition==="bottom"?"column":"row"},{lineHeight:1.25},a.icon&&a.label&&{minHeight:72,paddingTop:9,paddingBottom:9,[`& > .${tabClasses.iconWrapper}`]:_extends$5({},a.iconPosition==="top"&&{marginBottom:6},a.iconPosition==="bottom"&&{marginTop:6},a.iconPosition==="start"&&{marginRight:o.spacing(1)},a.iconPosition==="end"&&{marginLeft:o.spacing(1)})},a.textColor==="inherit"&&{color:"inherit",opacity:.6,[`&.${tabClasses.selected}`]:{opacity:1},[`&.${tabClasses.disabled}`]:{opacity:(o.vars||o).palette.action.disabledOpacity}},a.textColor==="primary"&&{color:(o.vars||o).palette.text.secondary,[`&.${tabClasses.selected}`]:{color:(o.vars||o).palette.primary.main},[`&.${tabClasses.disabled}`]:{color:(o.vars||o).palette.text.disabled}},a.textColor==="secondary"&&{color:(o.vars||o).palette.text.secondary,[`&.${tabClasses.selected}`]:{color:(o.vars||o).palette.secondary.main},[`&.${tabClasses.disabled}`]:{color:(o.vars||o).palette.text.disabled}},a.fullWidth&&{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"},a.wrapped&&{fontSize:o.typography.pxToRem(12)})),Tab=reactExports.forwardRef(function o(a,s){const $=useDefaultProps({props:a,name:"MuiTab"}),{className:j,disabled:_e=!1,disableFocusRipple:et=!1,fullWidth:tt,icon:rt,iconPosition:nt="top",indicator:it,label:ot,onChange:at,onClick:st,onFocus:ut,selected:ct,selectionFollowsFocus:ft,textColor:dt="inherit",value:mt,wrapped:vt=!1}=$,yt=_objectWithoutPropertiesLoose$3($,_excluded$5),pt=_extends$5({},$,{disabled:_e,disableFocusRipple:et,selected:ct,icon:!!rt,iconPosition:nt,label:!!ot,fullWidth:tt,textColor:dt,wrapped:vt}),ht=useUtilityClasses$4(pt),At=rt&&ot&&reactExports.isValidElement(rt)?reactExports.cloneElement(rt,{className:clsx$1(ht.iconWrapper,rt.props.className)}):rt,St=Mt=>{!ct&&at&&at(Mt,mt),st&&st(Mt)},Ct=Mt=>{ft&&!ct&&at&&at(Mt,mt),ut&&ut(Mt)};return jsxRuntimeExports.jsxs(TabRoot,_extends$5({focusRipple:!et,className:clsx$1(ht.root,j),ref:s,role:"tab","aria-selected":ct,disabled:_e,onClick:St,onFocus:Ct,ownerState:pt,tabIndex:ct?0:-1},yt,{children:[nt==="top"||nt==="start"?jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[At,ot]}):jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[ot,At]}),it]}))});function easeInOutSin(o){return(1+Math.sin(Math.PI*o-Math.PI/2))/2}function animate$1(o,a,s,$={},j=()=>{}){const{ease:_e=easeInOutSin,duration:et=300}=$;let tt=null;const rt=a[o];let nt=!1;const it=()=>{nt=!0},ot=at=>{if(nt){j(new Error("Animation cancelled"));return}tt===null&&(tt=at);const st=Math.min(1,(at-tt)/et);if(a[o]=_e(st)*(s-rt)+rt,st>=1){requestAnimationFrame(()=>{j(null)});return}requestAnimationFrame(ot)};return rt===s?(j(new Error("Element already at target position")),it):(requestAnimationFrame(ot),it)}const _excluded$4=["onChange"],styles$1={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll"};function ScrollbarSize(o){const{onChange:a}=o,s=_objectWithoutPropertiesLoose$3(o,_excluded$4),$=reactExports.useRef(),j=reactExports.useRef(null),_e=()=>{$.current=j.current.offsetHeight-j.current.clientHeight};return useEnhancedEffect$1(()=>{const et=debounce$4(()=>{const rt=$.current;_e(),rt!==$.current&&a($.current)}),tt=ownerWindow(j.current);return tt.addEventListener("resize",et),()=>{et.clear(),tt.removeEventListener("resize",et)}},[a]),reactExports.useEffect(()=>{_e(),a($.current)},[a]),jsxRuntimeExports.jsx("div",_extends$5({style:styles$1},s,{ref:j}))}const KeyboardArrowLeft=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft"),KeyboardArrowRight=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight");function getTabScrollButtonUtilityClass(o){return generateUtilityClass("MuiTabScrollButton",o)}const tabScrollButtonClasses=generateUtilityClasses("MuiTabScrollButton",["root","vertical","horizontal","disabled"]),_excluded$3=["className","slots","slotProps","direction","orientation","disabled"],useUtilityClasses$3=o=>{const{classes:a,orientation:s,disabled:$}=o;return composeClasses({root:["root",s,$&&"disabled"]},getTabScrollButtonUtilityClass,a)},TabScrollButtonRoot=styled(ButtonBase,{name:"MuiTabScrollButton",slot:"Root",overridesResolver:(o,a)=>{const{ownerState:s}=o;return[a.root,s.orientation&&a[s.orientation]]}})(({ownerState:o})=>_extends$5({width:40,flexShrink:0,opacity:.8,[`&.${tabScrollButtonClasses.disabled}`]:{opacity:0}},o.orientation==="vertical"&&{width:"100%",height:40,"& svg":{transform:`rotate(${o.isRtl?-90:90}deg)`}})),TabScrollButton=reactExports.forwardRef(function o(a,s){var $,j;const _e=useDefaultProps({props:a,name:"MuiTabScrollButton"}),{className:et,slots:tt={},slotProps:rt={},direction:nt}=_e,it=_objectWithoutPropertiesLoose$3(_e,_excluded$3),ot=useRtl(),at=_extends$5({isRtl:ot},_e),st=useUtilityClasses$3(at),ut=($=tt.StartScrollButtonIcon)!=null?$:KeyboardArrowLeft,ct=(j=tt.EndScrollButtonIcon)!=null?j:KeyboardArrowRight,ft=useSlotProps({elementType:ut,externalSlotProps:rt.startScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:at}),dt=useSlotProps({elementType:ct,externalSlotProps:rt.endScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:at});return jsxRuntimeExports.jsx(TabScrollButtonRoot,_extends$5({component:"div",className:clsx$1(st.root,et),ref:s,role:null,ownerState:at,tabIndex:null},it,{children:nt==="left"?jsxRuntimeExports.jsx(ut,_extends$5({},ft)):jsxRuntimeExports.jsx(ct,_extends$5({},dt))}))});function getTabsUtilityClass(o){return generateUtilityClass("MuiTabs",o)}const tabsClasses=generateUtilityClasses("MuiTabs",["root","vertical","flexContainer","flexContainerVertical","centered","scroller","fixed","scrollableX","scrollableY","hideScrollbar","scrollButtons","scrollButtonsHideMobile","indicator"]),_excluded$2=["aria-label","aria-labelledby","action","centered","children","className","component","allowScrollButtonsMobile","indicatorColor","onChange","orientation","ScrollButtonComponent","scrollButtons","selectionFollowsFocus","slots","slotProps","TabIndicatorProps","TabScrollButtonProps","textColor","value","variant","visibleScrollbar"],nextItem=(o,a)=>o===a?o.firstChild:a&&a.nextElementSibling?a.nextElementSibling:o.firstChild,previousItem=(o,a)=>o===a?o.lastChild:a&&a.previousElementSibling?a.previousElementSibling:o.lastChild,moveFocus=(o,a,s)=>{let $=!1,j=s(o,a);for(;j;){if(j===o.firstChild){if($)return;$=!0}const _e=j.disabled||j.getAttribute("aria-disabled")==="true";if(!j.hasAttribute("tabindex")||_e)j=s(o,j);else{j.focus();return}}},useUtilityClasses$2=o=>{const{vertical:a,fixed:s,hideScrollbar:$,scrollableX:j,scrollableY:_e,centered:et,scrollButtonsHideMobile:tt,classes:rt}=o;return composeClasses({root:["root",a&&"vertical"],scroller:["scroller",s&&"fixed",$&&"hideScrollbar",j&&"scrollableX",_e&&"scrollableY"],flexContainer:["flexContainer",a&&"flexContainerVertical",et&&"centered"],indicator:["indicator"],scrollButtons:["scrollButtons",tt&&"scrollButtonsHideMobile"],scrollableX:[j&&"scrollableX"],hideScrollbar:[$&&"hideScrollbar"]},getTabsUtilityClass,rt)},TabsRoot=styled("div",{name:"MuiTabs",slot:"Root",overridesResolver:(o,a)=>{const{ownerState:s}=o;return[{[`& .${tabsClasses.scrollButtons}`]:a.scrollButtons},{[`& .${tabsClasses.scrollButtons}`]:s.scrollButtonsHideMobile&&a.scrollButtonsHideMobile},a.root,s.vertical&&a.vertical]}})(({ownerState:o,theme:a})=>_extends$5({overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex"},o.vertical&&{flexDirection:"column"},o.scrollButtonsHideMobile&&{[`& .${tabsClasses.scrollButtons}`]:{[a.breakpoints.down("sm")]:{display:"none"}}})),TabsScroller=styled("div",{name:"MuiTabs",slot:"Scroller",overridesResolver:(o,a)=>{const{ownerState:s}=o;return[a.scroller,s.fixed&&a.fixed,s.hideScrollbar&&a.hideScrollbar,s.scrollableX&&a.scrollableX,s.scrollableY&&a.scrollableY]}})(({ownerState:o})=>_extends$5({position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap"},o.fixed&&{overflowX:"hidden",width:"100%"},o.hideScrollbar&&{scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}},o.scrollableX&&{overflowX:"auto",overflowY:"hidden"},o.scrollableY&&{overflowY:"auto",overflowX:"hidden"})),FlexContainer=styled("div",{name:"MuiTabs",slot:"FlexContainer",overridesResolver:(o,a)=>{const{ownerState:s}=o;return[a.flexContainer,s.vertical&&a.flexContainerVertical,s.centered&&a.centered]}})(({ownerState:o})=>_extends$5({display:"flex"},o.vertical&&{flexDirection:"column"},o.centered&&{justifyContent:"center"})),TabsIndicator=styled("span",{name:"MuiTabs",slot:"Indicator",overridesResolver:(o,a)=>a.indicator})(({ownerState:o,theme:a})=>_extends$5({position:"absolute",height:2,bottom:0,width:"100%",transition:a.transitions.create()},o.indicatorColor==="primary"&&{backgroundColor:(a.vars||a).palette.primary.main},o.indicatorColor==="secondary"&&{backgroundColor:(a.vars||a).palette.secondary.main},o.vertical&&{height:"100%",width:2,right:0})),TabsScrollbarSize=styled(ScrollbarSize)({overflowX:"auto",overflowY:"hidden",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),defaultIndicatorStyle={},Tabs=reactExports.forwardRef(function o(a,s){const $=useDefaultProps({props:a,name:"MuiTabs"}),j=useTheme$1(),_e=useRtl(),{"aria-label":et,"aria-labelledby":tt,action:rt,centered:nt=!1,children:it,className:ot,component:at="div",allowScrollButtonsMobile:st=!1,indicatorColor:ut="primary",onChange:ct,orientation:ft="horizontal",ScrollButtonComponent:dt=TabScrollButton,scrollButtons:mt="auto",selectionFollowsFocus:vt,slots:yt={},slotProps:pt={},TabIndicatorProps:ht={},TabScrollButtonProps:At={},textColor:St="primary",value:Ct,variant:Mt="standard",visibleScrollbar:Dt=!1}=$,Et=_objectWithoutPropertiesLoose$3($,_excluded$2),wt=Mt==="scrollable",jt=ft==="vertical",Bt=jt?"scrollTop":"scrollLeft",Ht=jt?"top":"left",Gt=jt?"bottom":"right",Tt=jt?"clientHeight":"clientWidth",Nt=jt?"height":"width",Ot=_extends$5({},$,{component:at,allowScrollButtonsMobile:st,indicatorColor:ut,orientation:ft,vertical:jt,scrollButtons:mt,textColor:St,variant:Mt,visibleScrollbar:Dt,fixed:!wt,hideScrollbar:wt&&!Dt,scrollableX:wt&&!jt,scrollableY:wt&&jt,centered:nt&&!wt,scrollButtonsHideMobile:!st}),kt=useUtilityClasses$2(Ot),It=useSlotProps({elementType:yt.StartScrollButtonIcon,externalSlotProps:pt.startScrollButtonIcon,ownerState:Ot}),Pt=useSlotProps({elementType:yt.EndScrollButtonIcon,externalSlotProps:pt.endScrollButtonIcon,ownerState:Ot}),[Ft,Vt]=reactExports.useState(!1),[Xt,Kt]=reactExports.useState(defaultIndicatorStyle),[bt,$t]=reactExports.useState(!1),[Yt,Qt]=reactExports.useState(!1),[zt,Lt]=reactExports.useState(!1),[er,lr]=reactExports.useState({overflow:"hidden",scrollbarWidth:0}),yr=new Map,mr=reactExports.useRef(null),Er=reactExports.useRef(null),ur=()=>{const vr=mr.current;let Ar;if(vr){const kr=vr.getBoundingClientRect();Ar={clientWidth:vr.clientWidth,scrollLeft:vr.scrollLeft,scrollTop:vr.scrollTop,scrollLeftNormalized:getNormalizedScrollLeft(vr,_e?"rtl":"ltr"),scrollWidth:vr.scrollWidth,top:kr.top,bottom:kr.bottom,left:kr.left,right:kr.right}}let Pr;if(vr&&Ct!==!1){const kr=Er.current.children;if(kr.length>0){const Gr=kr[yr.get(Ct)];Pr=Gr?Gr.getBoundingClientRect():null}}return{tabsMeta:Ar,tabMeta:Pr}},wr=useEventCallback$1(()=>{const{tabsMeta:vr,tabMeta:Ar}=ur();let Pr=0,kr;if(jt)kr="top",Ar&&vr&&(Pr=Ar.top-vr.top+vr.scrollTop);else if(kr=_e?"right":"left",Ar&&vr){const Vr=_e?vr.scrollLeftNormalized+vr.clientWidth-vr.scrollWidth:vr.scrollLeft;Pr=(_e?-1:1)*(Ar[kr]-vr[kr]+Vr)}const Gr={[kr]:Pr,[Nt]:Ar?Ar[Nt]:0};if(isNaN(Xt[kr])||isNaN(Xt[Nt]))Kt(Gr);else{const Vr=Math.abs(Xt[kr]-Gr[kr]),Kr=Math.abs(Xt[Nt]-Gr[Nt]);(Vr>=1||Kr>=1)&&Kt(Gr)}}),Rr=(vr,{animation:Ar=!0}={})=>{Ar?animate$1(Bt,mr.current,vr,{duration:j.transitions.duration.standard}):mr.current[Bt]=vr},nr=vr=>{let Ar=mr.current[Bt];jt?Ar+=vr:(Ar+=vr*(_e?-1:1),Ar*=_e&&detectScrollType()==="reverse"?-1:1),Rr(Ar)},fr=()=>{const vr=mr.current[Tt];let Ar=0;const Pr=Array.from(Er.current.children);for(let kr=0;kr<Pr.length;kr+=1){const Gr=Pr[kr];if(Ar+Gr[Tt]>vr){kr===0&&(Ar=vr);break}Ar+=Gr[Tt]}return Ar},gr=()=>{nr(-1*fr())},br=()=>{nr(fr())},Sr=reactExports.useCallback(vr=>{lr({overflow:null,scrollbarWidth:vr})},[]),Ut=()=>{const vr={};vr.scrollbarSizeListener=wt?jsxRuntimeExports.jsx(TabsScrollbarSize,{onChange:Sr,className:clsx$1(kt.scrollableX,kt.hideScrollbar)}):null;const Pr=wt&&(mt==="auto"&&(bt||Yt)||mt===!0);return vr.scrollButtonStart=Pr?jsxRuntimeExports.jsx(dt,_extends$5({slots:{StartScrollButtonIcon:yt.StartScrollButtonIcon},slotProps:{startScrollButtonIcon:It},orientation:ft,direction:_e?"right":"left",onClick:gr,disabled:!bt},At,{className:clsx$1(kt.scrollButtons,At.className)})):null,vr.scrollButtonEnd=Pr?jsxRuntimeExports.jsx(dt,_extends$5({slots:{EndScrollButtonIcon:yt.EndScrollButtonIcon},slotProps:{endScrollButtonIcon:Pt},orientation:ft,direction:_e?"left":"right",onClick:br,disabled:!Yt},At,{className:clsx$1(kt.scrollButtons,At.className)})):null,vr},xt=useEventCallback$1(vr=>{const{tabsMeta:Ar,tabMeta:Pr}=ur();if(!(!Pr||!Ar)){if(Pr[Ht]<Ar[Ht]){const kr=Ar[Bt]+(Pr[Ht]-Ar[Ht]);Rr(kr,{animation:vr})}else if(Pr[Gt]>Ar[Gt]){const kr=Ar[Bt]+(Pr[Gt]-Ar[Gt]);Rr(kr,{animation:vr})}}}),Rt=useEventCallback$1(()=>{wt&&mt!==!1&&Lt(!zt)});reactExports.useEffect(()=>{const vr=debounce$4(()=>{mr.current&&wr()});let Ar;const Pr=Vr=>{Vr.forEach(Kr=>{Kr.removedNodes.forEach(rn=>{var en;(en=Ar)==null||en.unobserve(rn)}),Kr.addedNodes.forEach(rn=>{var en;(en=Ar)==null||en.observe(rn)})}),vr(),Rt()},kr=ownerWindow(mr.current);kr.addEventListener("resize",vr);let Gr;return typeof ResizeObserver<"u"&&(Ar=new ResizeObserver(vr),Array.from(Er.current.children).forEach(Vr=>{Ar.observe(Vr)})),typeof MutationObserver<"u"&&(Gr=new MutationObserver(Pr),Gr.observe(Er.current,{childList:!0})),()=>{var Vr,Kr;vr.clear(),kr.removeEventListener("resize",vr),(Vr=Gr)==null||Vr.disconnect(),(Kr=Ar)==null||Kr.disconnect()}},[wr,Rt]),reactExports.useEffect(()=>{const vr=Array.from(Er.current.children),Ar=vr.length;if(typeof IntersectionObserver<"u"&&Ar>0&&wt&&mt!==!1){const Pr=vr[0],kr=vr[Ar-1],Gr={root:mr.current,threshold:.99},Vr=nn=>{$t(!nn[0].isIntersecting)},Kr=new IntersectionObserver(Vr,Gr);Kr.observe(Pr);const rn=nn=>{Qt(!nn[0].isIntersecting)},en=new IntersectionObserver(rn,Gr);return en.observe(kr),()=>{Kr.disconnect(),en.disconnect()}}},[wt,mt,zt,it==null?void 0:it.length]),reactExports.useEffect(()=>{Vt(!0)},[]),reactExports.useEffect(()=>{wr()}),reactExports.useEffect(()=>{xt(defaultIndicatorStyle!==Xt)},[xt,Xt]),reactExports.useImperativeHandle(rt,()=>({updateIndicator:wr,updateScrollButtons:Rt}),[wr,Rt]);const qt=jsxRuntimeExports.jsx(TabsIndicator,_extends$5({},ht,{className:clsx$1(kt.indicator,ht.className),ownerState:Ot,style:_extends$5({},Xt,ht.style)}));let rr=0;const ar=reactExports.Children.map(it,vr=>{if(!reactExports.isValidElement(vr))return null;const Ar=vr.props.value===void 0?rr:vr.props.value;yr.set(Ar,rr);const Pr=Ar===Ct;return rr+=1,reactExports.cloneElement(vr,_extends$5({fullWidth:Mt==="fullWidth",indicator:Pr&&!Ft&&qt,selected:Pr,selectionFollowsFocus:vt,onChange:ct,textColor:St,value:Ar},rr===1&&Ct===!1&&!vr.props.tabIndex?{tabIndex:0}:{}))}),ir=vr=>{const Ar=Er.current,Pr=ownerDocument(Ar).activeElement;if(Pr.getAttribute("role")!=="tab")return;let Gr=ft==="horizontal"?"ArrowLeft":"ArrowUp",Vr=ft==="horizontal"?"ArrowRight":"ArrowDown";switch(ft==="horizontal"&&_e&&(Gr="ArrowRight",Vr="ArrowLeft"),vr.key){case Gr:vr.preventDefault(),moveFocus(Ar,Pr,previousItem);break;case Vr:vr.preventDefault(),moveFocus(Ar,Pr,nextItem);break;case"Home":vr.preventDefault(),moveFocus(Ar,null,nextItem);break;case"End":vr.preventDefault(),moveFocus(Ar,null,previousItem);break}},Tr=Ut();return jsxRuntimeExports.jsxs(TabsRoot,_extends$5({className:clsx$1(kt.root,ot),ownerState:Ot,ref:s,as:at},Et,{children:[Tr.scrollButtonStart,Tr.scrollbarSizeListener,jsxRuntimeExports.jsxs(TabsScroller,{className:kt.scroller,ownerState:Ot,style:{overflow:er.overflow,[jt?`margin${_e?"Left":"Right"}`:"marginBottom"]:Dt?void 0:-er.scrollbarWidth},ref:mr,children:[jsxRuntimeExports.jsx(FlexContainer,{"aria-label":et,"aria-labelledby":tt,"aria-orientation":ft==="vertical"?"vertical":null,className:kt.flexContainer,ownerState:Ot,onKeyDown:ir,ref:Er,role:"tablist",children:ar}),Ft&&qt]}),Tr.scrollButtonEnd]}))}),TabPanel$3=o=>{const{children:a,value:s,index:$,...j}=o;return jsxRuntimeExports.jsx("section",{role:"tabpanel",hidden:s!==$,id:`cow-context-tabpanel-${$}`,"aria-labelledby":`cow-context-tab-${$}`,...j,children:s===$?a:null})};TabPanel$3.propTypes={children:propTypesExports.node,index:propTypesExports.number.isRequired,value:propTypesExports.number.isRequired};const a11yProps$3=o=>({id:`cow-context-tab-${o}`,"aria-controls":`cow-context-tabpanel-${o}`}),{AGE,COLOR,GENDER,HAPPINESS,VALUE,WEIGHT}={AGE:"AGE",COLOR:"COLOR",GENDER:"GENDER",HAPPINESS:"HAPPINESS",VALUE:"VALUE",WEIGHT:"WEIGHT"},sortCows=(o,a,s)=>{let $=_e=>_e;a===VALUE?$=getCowSellValue:a===WEIGHT?$=getCowWeight:a===AGE?$=({daysOld:_e})=>_e:a===COLOR?$=({color:_e})=>_e:a===GENDER?$=({gender:_e})=>_e:a===HAPPINESS&&($=({happiness:_e})=>_e);const j=sortBy(o,$);return s?j.reverse():j};/*!
849
849
  * @param {farmhand.cowBreedingPen} cowBreedingPen
850
850
  * @returns {number}
851
851
  */const numberOfCowsBreeding=({cowId1:o,cowId2:a})=>o?a?2:1:0,CowPenContextMenu=({cowBreedingPen:o,cowForSale:a,cowInventory:s,handleCowAutomaticHugChange:$,handleCowBreedChange:j,handleCowHugClick:_e,handleCowNameInputChange:et,handleCowOfferClick:tt,handleCowSelect:rt,handleCowSellClick:nt,handleCowWithdrawClick:it,purchasedCowPen:ot,selectedCowId:at})=>{var At;const[st,ut]=reactExports.useState(AGE),[ct,ft]=reactExports.useState(!1),[dt,mt]=reactExports.useState(0),[vt,yt]=reactExports.useState("");reactExports.useEffect(()=>{yt("")},[dt]);const pt=vt?s.filter(St=>St.name.toLowerCase().includes(vt.toLowerCase())):s,ht=vt?inventory$1.filter(St=>St.name.toLowerCase().includes(vt.toLowerCase())):inventory$1;return jsxRuntimeExports.jsxs("div",{className:"CowPenContextMenu",children:[jsxRuntimeExports.jsx("h3",{children:"For sale"}),jsxRuntimeExports.jsx(Consumer$m,{cow:a,isSelected:!1,isCowOfferedForTradeByPeer:!1}),jsxRuntimeExports.jsxs(Tabs,{value:dt,onChange:(St,Ct)=>mt(Ct),"aria-label":"Cow tabs",sx:{mt:"1rem"},children:[jsxRuntimeExports.jsx(Tab,{label:"Cows",...a11yProps$3(0)}),jsxRuntimeExports.jsx(Tab,{label:"Breeding Pen",...a11yProps$3(1)}),jsxRuntimeExports.jsx(Tab,{label:"Supplies",...a11yProps$3(2)})]}),jsxRuntimeExports.jsxs(TabPanel$3,{value:dt,index:0,children:[jsxRuntimeExports.jsxs("h3",{children:["Capacity: ",s.length," /"," ",(At=PURCHASEABLE_COW_PENS.get(ot))==null?void 0:At.cows]}),s.length>0&&jsxRuntimeExports.jsx(SearchBar,{placeholder:"Search cows by name...",onSearch:yt}),pt.length>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[pt.length>1&&jsxRuntimeExports.jsxs("div",{className:"sort-wrapper",children:[jsxRuntimeExports.jsx(Fab,{"aria-label":"Toggle sorting order",onClick:()=>ft(!ct),color:"primary",children:ct?jsxRuntimeExports.jsx(default_1$2,{}):jsxRuntimeExports.jsx(default_1$3,{})}),jsxRuntimeExports.jsxs(Select,{variant:"standard",className:"sort-select",displayEmpty:!0,value:st,onChange:({target:{value:St}})=>ut(String(St)),children:[jsxRuntimeExports.jsx(MenuItem,{value:VALUE,children:"Sort by Value"}),jsxRuntimeExports.jsx(MenuItem,{value:AGE,children:"Sort by Age"}),jsxRuntimeExports.jsx(MenuItem,{value:HAPPINESS,children:"Sort by Happiness"}),jsxRuntimeExports.jsx(MenuItem,{value:WEIGHT,children:"Sort by Weight"}),jsxRuntimeExports.jsx(MenuItem,{value:GENDER,children:"Sort by Gender"}),jsxRuntimeExports.jsx(MenuItem,{value:COLOR,children:"Sort by Color"})]})]}),jsxRuntimeExports.jsx("ul",{className:"card-list purchased-cows",children:sortCows(pt,st,ct).map(St=>isCowInBreedingPen(St,o)?null:jsxRuntimeExports.jsx("li",{key:St.id,onFocus:()=>rt(St),onClick:()=>rt(St),children:jsxRuntimeExports.jsx(Consumer$m,{cow:St,handleCowAutomaticHugChange:$,handleCowBreedChange:j,handleCowHugClick:_e,handleCowNameInputChange:et,handleCowOfferClick:tt,handleCowSellClick:nt,handleCowWithdrawClick:it,isCowPurchased:!0,isCowOfferedForTradeByPeer:!1,isSelected:St.id===at})}))})]})]}),jsxRuntimeExports.jsx(TabPanel$3,{value:dt,index:1,children:(()=>{const St=nullArray(numberOfCowsBreeding(o)).map((Ct,Mt)=>{const Dt=o[`cowId${Mt+1}`],Et=findCowById(s,Dt);return!Et||!Et.name.toLowerCase().includes(vt.toLowerCase())?null:Et}).filter(Boolean);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("h3",{children:["Capacity: ",numberOfCowsBreeding(o)," / 2"]}),s.length>0&&jsxRuntimeExports.jsx(SearchBar,{placeholder:"Search cows by name...",onSearch:yt}),jsxRuntimeExports.jsx("ul",{className:"card-list purchased-cows breeding-cows",children:St.map(Ct=>{if(!Ct)throw new TypeError("cow is undefined");return jsxRuntimeExports.jsx("li",{children:jsxRuntimeExports.jsx(Consumer$m,{cow:Ct,handleCowAutomaticHugChange:$,handleCowBreedChange:j,handleCowHugClick:_e,handleCowNameInputChange:et,handleCowOfferClick:tt,handleCowSellClick:nt,handleCowWithdrawClick:it,isCowPurchased:!0,isCowOfferedForTradeByPeer:!1,isSelected:Ct.id===at})},Ct.id)})})]})})()}),jsxRuntimeExports.jsxs(TabPanel$3,{value:dt,index:2,children:[inventory$1.length>0&&jsxRuntimeExports.jsx(SearchBar,{placeholder:"Search supplies...",onSearch:yt}),jsxRuntimeExports.jsx("ul",{className:"card-list",children:ht.map(St=>jsxRuntimeExports.jsx("li",{children:jsxRuntimeExports.jsx(Consumer$k,{item:St,isPurchaseView:!0,showQuantity:!0})},St.id))})]})]})};CowPenContextMenu.propTypes={cowForSale:propTypesExports.object.isRequired,cowInventory:propTypesExports.array.isRequired,handleCowAutomaticHugChange:propTypesExports.func.isRequired,handleCowBreedChange:propTypesExports.func.isRequired,handleCowHugClick:propTypesExports.func.isRequired,handleCowNameInputChange:propTypesExports.func.isRequired,handleCowOfferClick:propTypesExports.func.isRequired,handleCowSelect:propTypesExports.func.isRequired,handleCowSellClick:propTypesExports.func.isRequired,handleCowWithdrawClick:propTypesExports.func.isRequired,purchasedCowPen:propTypesExports.number.isRequired,selectedCowId:propTypesExports.string.isRequired};function Consumer$d(){return jsxRuntimeExports.jsx(FarmhandContext.Consumer,{children:({gameState:o,handlers:a})=>jsxRuntimeExports.jsx(CowPenContextMenu,{...o,...a})})}const PlayerInventory=reactExports.memo(({playerInventory:o})=>jsxRuntimeExports.jsx(Consumer$e,{items:o,isSellView:!0}),(o,a)=>o.playerInventory===a.playerInventory),ContextPane=({playerInventory:o,stageFocus:a})=>jsxRuntimeExports.jsx("div",{className:"ContextPane",children:a===stageFocusType.COW_PEN?jsxRuntimeExports.jsx(Consumer$d,{}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("h2",{children:"Inventory"}),jsxRuntimeExports.jsx(PlayerInventory,{playerInventory:o})]})});ContextPane.propTypes={playerInventory:propTypesExports.array.isRequired,stageFocus:propTypesExports.string.isRequired};function Consumer$c(){return jsxRuntimeExports.jsx(FarmhandContext.Consumer,{children:({gameState:o,handlers:a})=>jsxRuntimeExports.jsx(ContextPane,{...o,...a})})}function areArraysEqual(o,a,s=($,j)=>$===j){return o.length===a.length&&o.every(($,j)=>s($,a[j]))}const INTENTIONAL_DRAG_COUNT_THRESHOLD=2;function asc(o,a){return o-a}function findClosest(o,a){var s;const{index:$}=(s=o.reduce((j,_e,et)=>{const tt=Math.abs(a-_e);return j===null||tt<j.distance||tt===j.distance?{distance:tt,index:et}:j},null))!=null?s:{};return $}function trackFinger(o,a){if(a.current!==void 0&&o.changedTouches){const s=o;for(let $=0;$<s.changedTouches.length;$+=1){const j=s.changedTouches[$];if(j.identifier===a.current)return{x:j.clientX,y:j.clientY}}return!1}return{x:o.clientX,y:o.clientY}}function valueToPercent(o,a,s){return(o-a)*100/(s-a)}function percentToValue(o,a,s){return(s-a)*o+a}function getDecimalPrecision(o){if(Math.abs(o)<1){const s=o.toExponential().split("e-"),$=s[0].split(".")[1];return($?$.length:0)+parseInt(s[1],10)}const a=o.toString().split(".")[1];return a?a.length:0}function roundValueToStep(o,a,s){const $=Math.round((o-s)/a)*a+s;return Number($.toFixed(getDecimalPrecision(a)))}function setValueIndex({values:o,newValue:a,index:s}){const $=o.slice();return $[s]=a,$.sort(asc)}function focusThumb({sliderRef:o,activeIndex:a,setActive:s}){var $,j;const _e=ownerDocument(o.current);if(!(($=o.current)!=null&&$.contains(_e.activeElement))||Number(_e==null||(j=_e.activeElement)==null?void 0:j.getAttribute("data-index"))!==a){var et;(et=o.current)==null||et.querySelector(`[type="range"][data-index="${a}"]`).focus()}s&&s(a)}function areValuesEqual(o,a){return typeof o=="number"&&typeof a=="number"?o===a:typeof o=="object"&&typeof a=="object"?areArraysEqual(o,a):!1}const axisProps={horizontal:{offset:o=>({left:`${o}%`}),leap:o=>({width:`${o}%`})},"horizontal-reverse":{offset:o=>({right:`${o}%`}),leap:o=>({width:`${o}%`})},vertical:{offset:o=>({bottom:`${o}%`}),leap:o=>({height:`${o}%`})}},Identity$1=o=>o;let cachedSupportsTouchActionNone;function doesSupportTouchActionNone(){return cachedSupportsTouchActionNone===void 0&&(typeof CSS<"u"&&typeof CSS.supports=="function"?cachedSupportsTouchActionNone=CSS.supports("touch-action","none"):cachedSupportsTouchActionNone=!0),cachedSupportsTouchActionNone}function useSlider(o){const{"aria-labelledby":a,defaultValue:s,disabled:$=!1,disableSwap:j=!1,isRtl:_e=!1,marks:et=!1,max:tt=100,min:rt=0,name:nt,onChange:it,onChangeCommitted:ot,orientation:at="horizontal",rootRef:st,scale:ut=Identity$1,step:ct=1,shiftStep:ft=10,tabIndex:dt,value:mt}=o,vt=reactExports.useRef(void 0),[yt,pt]=reactExports.useState(-1),[ht,At]=reactExports.useState(-1),[St,Ct]=reactExports.useState(!1),Mt=reactExports.useRef(0),[Dt,Et]=useControlled({controlled:mt,default:s??rt,name:"Slider"}),wt=it&&((xt,Rt,qt)=>{const rr=xt.nativeEvent||xt,ar=new rr.constructor(rr.type,rr);Object.defineProperty(ar,"target",{writable:!0,value:{value:Rt,name:nt}}),it(ar,Rt,qt)}),jt=Array.isArray(Dt);let Bt=jt?Dt.slice().sort(asc):[Dt];Bt=Bt.map(xt=>xt==null?rt:clamp$2(xt,rt,tt));const Ht=et===!0&&ct!==null?[...Array(Math.floor((tt-rt)/ct)+1)].map((xt,Rt)=>({value:rt+ct*Rt})):et||[],Gt=Ht.map(xt=>xt.value),{isFocusVisibleRef:Tt,onBlur:Nt,onFocus:Ot,ref:kt}=useIsFocusVisible(),[It,Pt]=reactExports.useState(-1),Ft=reactExports.useRef(null),Vt=useForkRef(kt,Ft),Xt=useForkRef(st,Vt),Kt=xt=>Rt=>{var qt;const rr=Number(Rt.currentTarget.getAttribute("data-index"));Ot(Rt),Tt.current===!0&&Pt(rr),At(rr),xt==null||(qt=xt.onFocus)==null||qt.call(xt,Rt)},bt=xt=>Rt=>{var qt;Nt(Rt),Tt.current===!1&&Pt(-1),At(-1),xt==null||(qt=xt.onBlur)==null||qt.call(xt,Rt)},$t=(xt,Rt)=>{const qt=Number(xt.currentTarget.getAttribute("data-index")),rr=Bt[qt],ar=Gt.indexOf(rr);let ir=Rt;if(Ht&&ct==null){const Tr=Gt[Gt.length-1];ir>Tr?ir=Tr:ir<Gt[0]?ir=Gt[0]:ir=ir<rr?Gt[ar-1]:Gt[ar+1]}if(ir=clamp$2(ir,rt,tt),jt){j&&(ir=clamp$2(ir,Bt[qt-1]||-1/0,Bt[qt+1]||1/0));const Tr=ir;ir=setValueIndex({values:Bt,newValue:ir,index:qt});let vr=qt;j||(vr=ir.indexOf(Tr)),focusThumb({sliderRef:Ft,activeIndex:vr})}Et(ir),Pt(qt),wt&&!areValuesEqual(ir,Dt)&&wt(xt,ir,qt),ot&&ot(xt,ir)},Yt=xt=>Rt=>{var qt;if(ct!==null){const rr=Number(Rt.currentTarget.getAttribute("data-index")),ar=Bt[rr];let ir=null;(Rt.key==="ArrowLeft"||Rt.key==="ArrowDown")&&Rt.shiftKey||Rt.key==="PageDown"?ir=Math.max(ar-ft,rt):((Rt.key==="ArrowRight"||Rt.key==="ArrowUp")&&Rt.shiftKey||Rt.key==="PageUp")&&(ir=Math.min(ar+ft,tt)),ir!==null&&($t(Rt,ir),Rt.preventDefault())}xt==null||(qt=xt.onKeyDown)==null||qt.call(xt,Rt)};useEnhancedEffect$1(()=>{if($&&Ft.current.contains(document.activeElement)){var xt;(xt=document.activeElement)==null||xt.blur()}},[$]),$&&yt!==-1&&pt(-1),$&&It!==-1&&Pt(-1);const Qt=xt=>Rt=>{var qt;(qt=xt.onChange)==null||qt.call(xt,Rt),$t(Rt,Rt.target.valueAsNumber)},zt=reactExports.useRef(void 0);let Lt=at;_e&&at==="horizontal"&&(Lt+="-reverse");const er=({finger:xt,move:Rt=!1})=>{const{current:qt}=Ft,{width:rr,height:ar,bottom:ir,left:Tr}=qt.getBoundingClientRect();let vr;Lt.indexOf("vertical")===0?vr=(ir-xt.y)/ar:vr=(xt.x-Tr)/rr,Lt.indexOf("-reverse")!==-1&&(vr=1-vr);let Ar;if(Ar=percentToValue(vr,rt,tt),ct)Ar=roundValueToStep(Ar,ct,rt);else{const kr=findClosest(Gt,Ar);Ar=Gt[kr]}Ar=clamp$2(Ar,rt,tt);let Pr=0;if(jt){Rt?Pr=zt.current:Pr=findClosest(Bt,Ar),j&&(Ar=clamp$2(Ar,Bt[Pr-1]||-1/0,Bt[Pr+1]||1/0));const kr=Ar;Ar=setValueIndex({values:Bt,newValue:Ar,index:Pr}),j&&Rt||(Pr=Ar.indexOf(kr),zt.current=Pr)}return{newValue:Ar,activeIndex:Pr}},lr=useEventCallback$1(xt=>{const Rt=trackFinger(xt,vt);if(!Rt)return;if(Mt.current+=1,xt.type==="mousemove"&&xt.buttons===0){yr(xt);return}const{newValue:qt,activeIndex:rr}=er({finger:Rt,move:!0});focusThumb({sliderRef:Ft,activeIndex:rr,setActive:pt}),Et(qt),!St&&Mt.current>INTENTIONAL_DRAG_COUNT_THRESHOLD&&Ct(!0),wt&&!areValuesEqual(qt,Dt)&&wt(xt,qt,rr)}),yr=useEventCallback$1(xt=>{const Rt=trackFinger(xt,vt);if(Ct(!1),!Rt)return;const{newValue:qt}=er({finger:Rt,move:!0});pt(-1),xt.type==="touchend"&&At(-1),ot&&ot(xt,qt),vt.current=void 0,Er()}),mr=useEventCallback$1(xt=>{if($)return;doesSupportTouchActionNone()||xt.preventDefault();const Rt=xt.changedTouches[0];Rt!=null&&(vt.current=Rt.identifier);const qt=trackFinger(xt,vt);if(qt!==!1){const{newValue:ar,activeIndex:ir}=er({finger:qt});focusThumb({sliderRef:Ft,activeIndex:ir,setActive:pt}),Et(ar),wt&&!areValuesEqual(ar,Dt)&&wt(xt,ar,ir)}Mt.current=0;const rr=ownerDocument(Ft.current);rr.addEventListener("touchmove",lr,{passive:!0}),rr.addEventListener("touchend",yr,{passive:!0})}),Er=reactExports.useCallback(()=>{const xt=ownerDocument(Ft.current);xt.removeEventListener("mousemove",lr),xt.removeEventListener("mouseup",yr),xt.removeEventListener("touchmove",lr),xt.removeEventListener("touchend",yr)},[yr,lr]);reactExports.useEffect(()=>{const{current:xt}=Ft;return xt.addEventListener("touchstart",mr,{passive:doesSupportTouchActionNone()}),()=>{xt.removeEventListener("touchstart",mr),Er()}},[Er,mr]),reactExports.useEffect(()=>{$&&Er()},[$,Er]);const ur=xt=>Rt=>{var qt;if((qt=xt.onMouseDown)==null||qt.call(xt,Rt),$||Rt.defaultPrevented||Rt.button!==0)return;Rt.preventDefault();const rr=trackFinger(Rt,vt);if(rr!==!1){const{newValue:ir,activeIndex:Tr}=er({finger:rr});focusThumb({sliderRef:Ft,activeIndex:Tr,setActive:pt}),Et(ir),wt&&!areValuesEqual(ir,Dt)&&wt(Rt,ir,Tr)}Mt.current=0;const ar=ownerDocument(Ft.current);ar.addEventListener("mousemove",lr,{passive:!0}),ar.addEventListener("mouseup",yr)},wr=valueToPercent(jt?Bt[0]:rt,rt,tt),Rr=valueToPercent(Bt[Bt.length-1],rt,tt)-wr,nr=(xt={})=>{const Rt=extractEventHandlers(xt),qt={onMouseDown:ur(Rt||{})},rr=_extends$5({},Rt,qt);return _extends$5({},xt,{ref:Xt},rr)},fr=xt=>Rt=>{var qt;(qt=xt.onMouseOver)==null||qt.call(xt,Rt);const rr=Number(Rt.currentTarget.getAttribute("data-index"));At(rr)},gr=xt=>Rt=>{var qt;(qt=xt.onMouseLeave)==null||qt.call(xt,Rt),At(-1)};return{active:yt,axis:Lt,axisProps,dragging:St,focusedThumbIndex:It,getHiddenInputProps:(xt={})=>{var Rt;const qt=extractEventHandlers(xt),rr={onChange:Qt(qt||{}),onFocus:Kt(qt||{}),onBlur:bt(qt||{}),onKeyDown:Yt(qt||{})},ar=_extends$5({},qt,rr);return _extends$5({tabIndex:dt,"aria-labelledby":a,"aria-orientation":at,"aria-valuemax":ut(tt),"aria-valuemin":ut(rt),name:nt,type:"range",min:o.min,max:o.max,step:o.step===null&&o.marks?"any":(Rt=o.step)!=null?Rt:void 0,disabled:$},xt,ar,{style:_extends$5({},visuallyHidden,{direction:_e?"rtl":"ltr",width:"100%",height:"100%"})})},getRootProps:nr,getThumbProps:(xt={})=>{const Rt=extractEventHandlers(xt),qt={onMouseOver:fr(Rt||{}),onMouseLeave:gr(Rt||{})};return _extends$5({},xt,Rt,qt)},marks:Ht,open:ht,range:jt,rootRef:Xt,trackLeap:Rr,trackOffset:wr,values:Bt,getThumbStyle:xt=>({pointerEvents:yt!==-1&&yt!==xt?"none":void 0})}}const shouldSpreadAdditionalProps=o=>!o||!isHostComponent(o);function getSliderUtilityClass(o){return generateUtilityClass("MuiSlider",o)}const sliderClasses=generateUtilityClasses("MuiSlider",["root","active","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","disabled","dragging","focusVisible","mark","markActive","marked","markLabel","markLabelActive","rail","sizeSmall","thumb","thumbColorPrimary","thumbColorSecondary","thumbColorError","thumbColorSuccess","thumbColorInfo","thumbColorWarning","track","trackInverted","trackFalse","thumbSizeSmall","valueLabel","valueLabelOpen","valueLabelCircle","valueLabelLabel","vertical"]),useValueLabelClasses=o=>{const{open:a}=o;return{offset:clsx$1(a&&sliderClasses.valueLabelOpen),circle:sliderClasses.valueLabelCircle,label:sliderClasses.valueLabelLabel}};function SliderValueLabel$1(o){const{children:a,className:s,value:$}=o,j=useValueLabelClasses(o);return a?reactExports.cloneElement(a,{className:clsx$1(a.props.className)},jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[a.props.children,jsxRuntimeExports.jsx("span",{className:clsx$1(j.offset,s),"aria-hidden":!0,children:jsxRuntimeExports.jsx("span",{className:j.circle,children:jsxRuntimeExports.jsx("span",{className:j.label,children:$})})})]})):null}const _excluded$1=["aria-label","aria-valuetext","aria-labelledby","component","components","componentsProps","color","classes","className","disableSwap","disabled","getAriaLabel","getAriaValueText","marks","max","min","name","onChange","onChangeCommitted","orientation","shiftStep","size","step","scale","slotProps","slots","tabIndex","track","value","valueLabelDisplay","valueLabelFormat"];function Identity(o){return o}const SliderRoot=styled("span",{name:"MuiSlider",slot:"Root",overridesResolver:(o,a)=>{const{ownerState:s}=o;return[a.root,a[`color${capitalize$2(s.color)}`],s.size!=="medium"&&a[`size${capitalize$2(s.size)}`],s.marked&&a.marked,s.orientation==="vertical"&&a.vertical,s.track==="inverted"&&a.trackInverted,s.track===!1&&a.trackFalse]}})(({theme:o})=>{var a;return{borderRadius:12,boxSizing:"content-box",display:"inline-block",position:"relative",cursor:"pointer",touchAction:"none",WebkitTapHighlightColor:"transparent","@media print":{colorAdjust:"exact"},[`&.${sliderClasses.disabled}`]:{pointerEvents:"none",cursor:"default",color:(o.vars||o).palette.grey[400]},[`&.${sliderClasses.dragging}`]:{[`& .${sliderClasses.thumb}, & .${sliderClasses.track}`]:{transition:"none"}},variants:[...Object.keys(((a=o.vars)!=null?a:o).palette).filter(s=>{var $;return(($=o.vars)!=null?$:o).palette[s].main}).map(s=>({props:{color:s},style:{color:(o.vars||o).palette[s].main}})),{props:{orientation:"horizontal"},style:{height:4,width:"100%",padding:"13px 0","@media (pointer: coarse)":{padding:"20px 0"}}},{props:{orientation:"horizontal",size:"small"},style:{height:2}},{props:{orientation:"horizontal",marked:!0},style:{marginBottom:20}},{props:{orientation:"vertical"},style:{height:"100%",width:4,padding:"0 13px","@media (pointer: coarse)":{padding:"0 20px"}}},{props:{orientation:"vertical",size:"small"},style:{width:2}},{props:{orientation:"vertical",marked:!0},style:{marginRight:44}}]}}),SliderRail=styled("span",{name:"MuiSlider",slot:"Rail",overridesResolver:(o,a)=>a.rail})({display:"block",position:"absolute",borderRadius:"inherit",backgroundColor:"currentColor",opacity:.38,variants:[{props:{orientation:"horizontal"},style:{width:"100%",height:"inherit",top:"50%",transform:"translateY(-50%)"}},{props:{orientation:"vertical"},style:{height:"100%",width:"inherit",left:"50%",transform:"translateX(-50%)"}},{props:{track:"inverted"},style:{opacity:1}}]}),SliderTrack=styled("span",{name:"MuiSlider",slot:"Track",overridesResolver:(o,a)=>a.track})(({theme:o})=>{var a;return{display:"block",position:"absolute",borderRadius:"inherit",border:"1px solid currentColor",backgroundColor:"currentColor",transition:o.transitions.create(["left","width","bottom","height"],{duration:o.transitions.duration.shortest}),variants:[{props:{size:"small"},style:{border:"none"}},{props:{orientation:"horizontal"},style:{height:"inherit",top:"50%",transform:"translateY(-50%)"}},{props:{orientation:"vertical"},style:{width:"inherit",left:"50%",transform:"translateX(-50%)"}},{props:{track:!1},style:{display:"none"}},...Object.keys(((a=o.vars)!=null?a:o).palette).filter(s=>{var $;return(($=o.vars)!=null?$:o).palette[s].main}).map(s=>({props:{color:s,track:"inverted"},style:_extends$5({},o.vars?{backgroundColor:o.vars.palette.Slider[`${s}Track`],borderColor:o.vars.palette.Slider[`${s}Track`]}:_extends$5({backgroundColor:lighten_1(o.palette[s].main,.62),borderColor:lighten_1(o.palette[s].main,.62)},o.applyStyles("dark",{backgroundColor:darken_1(o.palette[s].main,.5)}),o.applyStyles("dark",{borderColor:darken_1(o.palette[s].main,.5)})))}))]}}),SliderThumb=styled("span",{name:"MuiSlider",slot:"Thumb",overridesResolver:(o,a)=>{const{ownerState:s}=o;return[a.thumb,a[`thumbColor${capitalize$2(s.color)}`],s.size!=="medium"&&a[`thumbSize${capitalize$2(s.size)}`]]}})(({theme:o})=>{var a;return{position:"absolute",width:20,height:20,boxSizing:"border-box",borderRadius:"50%",outline:0,backgroundColor:"currentColor",display:"flex",alignItems:"center",justifyContent:"center",transition:o.transitions.create(["box-shadow","left","bottom"],{duration:o.transitions.duration.shortest}),"&::before":{position:"absolute",content:'""',borderRadius:"inherit",width:"100%",height:"100%",boxShadow:(o.vars||o).shadows[2]},"&::after":{position:"absolute",content:'""',borderRadius:"50%",width:42,height:42,top:"50%",left:"50%",transform:"translate(-50%, -50%)"},[`&.${sliderClasses.disabled}`]:{"&:hover":{boxShadow:"none"}},variants:[{props:{size:"small"},style:{width:12,height:12,"&::before":{boxShadow:"none"}}},{props:{orientation:"horizontal"},style:{top:"50%",transform:"translate(-50%, -50%)"}},{props:{orientation:"vertical"},style:{left:"50%",transform:"translate(-50%, 50%)"}},...Object.keys(((a=o.vars)!=null?a:o).palette).filter(s=>{var $;return(($=o.vars)!=null?$:o).palette[s].main}).map(s=>({props:{color:s},style:{[`&:hover, &.${sliderClasses.focusVisible}`]:_extends$5({},o.vars?{boxShadow:`0px 0px 0px 8px rgba(${o.vars.palette[s].mainChannel} / 0.16)`}:{boxShadow:`0px 0px 0px 8px ${alpha_1(o.palette[s].main,.16)}`},{"@media (hover: none)":{boxShadow:"none"}}),[`&.${sliderClasses.active}`]:_extends$5({},o.vars?{boxShadow:`0px 0px 0px 14px rgba(${o.vars.palette[s].mainChannel} / 0.16)`}:{boxShadow:`0px 0px 0px 14px ${alpha_1(o.palette[s].main,.16)}`})}}))]}}),SliderValueLabel=styled(SliderValueLabel$1,{name:"MuiSlider",slot:"ValueLabel",overridesResolver:(o,a)=>a.valueLabel})(({theme:o})=>_extends$5({zIndex:1,whiteSpace:"nowrap"},o.typography.body2,{fontWeight:500,transition:o.transitions.create(["transform"],{duration:o.transitions.duration.shortest}),position:"absolute",backgroundColor:(o.vars||o).palette.grey[600],borderRadius:2,color:(o.vars||o).palette.common.white,display:"flex",alignItems:"center",justifyContent:"center",padding:"0.25rem 0.75rem",variants:[{props:{orientation:"horizontal"},style:{transform:"translateY(-100%) scale(0)",top:"-10px",transformOrigin:"bottom center","&::before":{position:"absolute",content:'""',width:8,height:8,transform:"translate(-50%, 50%) rotate(45deg)",backgroundColor:"inherit",bottom:0,left:"50%"},[`&.${sliderClasses.valueLabelOpen}`]:{transform:"translateY(-100%) scale(1)"}}},{props:{orientation:"vertical"},style:{transform:"translateY(-50%) scale(0)",right:"30px",top:"50%",transformOrigin:"right center","&::before":{position:"absolute",content:'""',width:8,height:8,transform:"translate(-50%, -50%) rotate(45deg)",backgroundColor:"inherit",right:-8,top:"50%"},[`&.${sliderClasses.valueLabelOpen}`]:{transform:"translateY(-50%) scale(1)"}}},{props:{size:"small"},style:{fontSize:o.typography.pxToRem(12),padding:"0.25rem 0.5rem"}},{props:{orientation:"vertical",size:"small"},style:{right:"20px"}}]})),SliderMark=styled("span",{name:"MuiSlider",slot:"Mark",shouldForwardProp:o=>slotShouldForwardProp(o)&&o!=="markActive",overridesResolver:(o,a)=>{const{markActive:s}=o;return[a.mark,s&&a.markActive]}})(({theme:o})=>({position:"absolute",width:2,height:2,borderRadius:1,backgroundColor:"currentColor",variants:[{props:{orientation:"horizontal"},style:{top:"50%",transform:"translate(-1px, -50%)"}},{props:{orientation:"vertical"},style:{left:"50%",transform:"translate(-50%, 1px)"}},{props:{markActive:!0},style:{backgroundColor:(o.vars||o).palette.background.paper,opacity:.8}}]})),SliderMarkLabel=styled("span",{name:"MuiSlider",slot:"MarkLabel",shouldForwardProp:o=>slotShouldForwardProp(o)&&o!=="markLabelActive",overridesResolver:(o,a)=>a.markLabel})(({theme:o})=>_extends$5({},o.typography.body2,{color:(o.vars||o).palette.text.secondary,position:"absolute",whiteSpace:"nowrap",variants:[{props:{orientation:"horizontal"},style:{top:30,transform:"translateX(-50%)","@media (pointer: coarse)":{top:40}}},{props:{orientation:"vertical"},style:{left:36,transform:"translateY(50%)","@media (pointer: coarse)":{left:44}}},{props:{markLabelActive:!0},style:{color:(o.vars||o).palette.text.primary}}]})),useUtilityClasses$1=o=>{const{disabled:a,dragging:s,marked:$,orientation:j,track:_e,classes:et,color:tt,size:rt}=o,nt={root:["root",a&&"disabled",s&&"dragging",$&&"marked",j==="vertical"&&"vertical",_e==="inverted"&&"trackInverted",_e===!1&&"trackFalse",tt&&`color${capitalize$2(tt)}`,rt&&`size${capitalize$2(rt)}`],rail:["rail"],track:["track"],mark:["mark"],markActive:["markActive"],markLabel:["markLabel"],markLabelActive:["markLabelActive"],valueLabel:["valueLabel"],thumb:["thumb",a&&"disabled",rt&&`thumbSize${capitalize$2(rt)}`,tt&&`thumbColor${capitalize$2(tt)}`],active:["active"],disabled:["disabled"],focusVisible:["focusVisible"]};return composeClasses(nt,getSliderUtilityClass,et)},Forward=({children:o})=>o,Slider=reactExports.forwardRef(function o(a,s){var $,j,_e,et,tt,rt,nt,it,ot,at,st,ut,ct,ft,dt,mt,vt,yt,pt,ht,At,St,Ct,Mt;const Dt=useDefaultProps({props:a,name:"MuiSlider"}),Et=useRtl(),{"aria-label":wt,"aria-valuetext":jt,"aria-labelledby":Bt,component:Ht="span",components:Gt={},componentsProps:Tt={},color:Nt="primary",classes:Ot,className:kt,disableSwap:It=!1,disabled:Pt=!1,getAriaLabel:Ft,getAriaValueText:Vt,marks:Xt=!1,max:Kt=100,min:bt=0,orientation:$t="horizontal",shiftStep:Yt=10,size:Qt="medium",step:zt=1,scale:Lt=Identity,slotProps:er,slots:lr,track:yr="normal",valueLabelDisplay:mr="off",valueLabelFormat:Er=Identity}=Dt,ur=_objectWithoutPropertiesLoose$3(Dt,_excluded$1),wr=_extends$5({},Dt,{isRtl:Et,max:Kt,min:bt,classes:Ot,disabled:Pt,disableSwap:It,orientation:$t,marks:Xt,color:Nt,size:Qt,step:zt,shiftStep:Yt,scale:Lt,track:yr,valueLabelDisplay:mr,valueLabelFormat:Er}),{axisProps:Rr,getRootProps:nr,getHiddenInputProps:fr,getThumbProps:gr,open:br,active:Sr,axis:Ut,focusedThumbIndex:xt,range:Rt,dragging:qt,marks:rr,values:ar,trackOffset:ir,trackLeap:Tr,getThumbStyle:vr}=useSlider(_extends$5({},wr,{rootRef:s}));wr.marked=rr.length>0&&rr.some(Fr=>Fr.label),wr.dragging=qt,wr.focusedThumbIndex=xt;const Ar=useUtilityClasses$1(wr),Pr=($=(j=lr==null?void 0:lr.root)!=null?j:Gt.Root)!=null?$:SliderRoot,kr=(_e=(et=lr==null?void 0:lr.rail)!=null?et:Gt.Rail)!=null?_e:SliderRail,Gr=(tt=(rt=lr==null?void 0:lr.track)!=null?rt:Gt.Track)!=null?tt:SliderTrack,Vr=(nt=(it=lr==null?void 0:lr.thumb)!=null?it:Gt.Thumb)!=null?nt:SliderThumb,Kr=(ot=(at=lr==null?void 0:lr.valueLabel)!=null?at:Gt.ValueLabel)!=null?ot:SliderValueLabel,rn=(st=(ut=lr==null?void 0:lr.mark)!=null?ut:Gt.Mark)!=null?st:SliderMark,en=(ct=(ft=lr==null?void 0:lr.markLabel)!=null?ft:Gt.MarkLabel)!=null?ct:SliderMarkLabel,nn=(dt=(mt=lr==null?void 0:lr.input)!=null?mt:Gt.Input)!=null?dt:"input",_n=(vt=er==null?void 0:er.root)!=null?vt:Tt.root,On=(yt=er==null?void 0:er.rail)!=null?yt:Tt.rail,xn=(pt=er==null?void 0:er.track)!=null?pt:Tt.track,cn=(ht=er==null?void 0:er.thumb)!=null?ht:Tt.thumb,dn=(At=er==null?void 0:er.valueLabel)!=null?At:Tt.valueLabel,Cn=(St=er==null?void 0:er.mark)!=null?St:Tt.mark,pn=(Ct=er==null?void 0:er.markLabel)!=null?Ct:Tt.markLabel,hn=(Mt=er==null?void 0:er.input)!=null?Mt:Tt.input,tn=useSlotProps({elementType:Pr,getSlotProps:nr,externalSlotProps:_n,externalForwardedProps:ur,additionalProps:_extends$5({},shouldSpreadAdditionalProps(Pr)&&{as:Ht}),ownerState:_extends$5({},wr,_n==null?void 0:_n.ownerState),className:[Ar.root,kt]}),bn=useSlotProps({elementType:kr,externalSlotProps:On,ownerState:wr,className:Ar.rail}),kn=useSlotProps({elementType:Gr,externalSlotProps:xn,additionalProps:{style:_extends$5({},Rr[Ut].offset(ir),Rr[Ut].leap(Tr))},ownerState:_extends$5({},wr,xn==null?void 0:xn.ownerState),className:Ar.track}),mn=useSlotProps({elementType:Vr,getSlotProps:gr,externalSlotProps:cn,ownerState:_extends$5({},wr,cn==null?void 0:cn.ownerState),className:Ar.thumb}),Tn=useSlotProps({elementType:Kr,externalSlotProps:dn,ownerState:_extends$5({},wr,dn==null?void 0:dn.ownerState),className:Ar.valueLabel}),gn=useSlotProps({elementType:rn,externalSlotProps:Cn,ownerState:wr,className:Ar.mark}),yn=useSlotProps({elementType:en,externalSlotProps:pn,ownerState:wr,className:Ar.markLabel}),$n=useSlotProps({elementType:nn,getSlotProps:fr,externalSlotProps:hn,ownerState:wr});return jsxRuntimeExports.jsxs(Pr,_extends$5({},tn,{children:[jsxRuntimeExports.jsx(kr,_extends$5({},bn)),jsxRuntimeExports.jsx(Gr,_extends$5({},kn)),rr.filter(Fr=>Fr.value>=bt&&Fr.value<=Kt).map((Fr,Xr)=>{const In=valueToPercent(Fr.value,bt,Kt),Sn=Rr[Ut].offset(In);let on;return yr===!1?on=ar.indexOf(Fr.value)!==-1:on=yr==="normal"&&(Rt?Fr.value>=ar[0]&&Fr.value<=ar[ar.length-1]:Fr.value<=ar[0])||yr==="inverted"&&(Rt?Fr.value<=ar[0]||Fr.value>=ar[ar.length-1]:Fr.value>=ar[0]),jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx(rn,_extends$5({"data-index":Xr},gn,!isHostComponent(rn)&&{markActive:on},{style:_extends$5({},Sn,gn.style),className:clsx$1(gn.className,on&&Ar.markActive)})),Fr.label!=null?jsxRuntimeExports.jsx(en,_extends$5({"aria-hidden":!0,"data-index":Xr},yn,!isHostComponent(en)&&{markLabelActive:on},{style:_extends$5({},Sn,yn.style),className:clsx$1(Ar.markLabel,yn.className,on&&Ar.markLabelActive),children:Fr.label})):null]},Xr)}),ar.map((Fr,Xr)=>{const In=valueToPercent(Fr,bt,Kt),Sn=Rr[Ut].offset(In),on=mr==="off"?Forward:Kr;return jsxRuntimeExports.jsx(on,_extends$5({},!isHostComponent(on)&&{valueLabelFormat:Er,valueLabelDisplay:mr,value:typeof Er=="function"?Er(Lt(Fr),Xr):Er,index:Xr,open:br===Xr||Sr===Xr||mr==="on",disabled:Pt},Tn,{children:jsxRuntimeExports.jsx(Vr,_extends$5({"data-index":Xr},mn,{className:clsx$1(Ar.thumb,mn.className,Sr===Xr&&Ar.active,xt===Xr&&Ar.focusVisible),style:_extends$5({},Sn,vr(Xr),mn.style),children:jsxRuntimeExports.jsx(nn,_extends$5({"data-index":Xr,"aria-label":Ft?Ft(Xr):wt,"aria-valuenow":Lt(Fr),"aria-labelledby":Bt,"aria-valuetext":Vt?Vt(Lt(Fr),Xr):jt,value:ar[Xr]},$n))}))}),Xr)})]}))});var ZoomIn={},_interopRequireDefault$1=interopRequireDefaultExports;Object.defineProperty(ZoomIn,"__esModule",{value:!0});var default_1$1=ZoomIn.default=void 0,_createSvgIcon$1=_interopRequireDefault$1(requireCreateSvgIcon()),_jsxRuntime$1=jsxRuntimeExports;default_1$1=ZoomIn.default=(0,_createSvgIcon$1.default)([(0,_jsxRuntime$1.jsx)("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14"},"0"),(0,_jsxRuntime$1.jsx)("path",{d:"M12 10h-2v2H9v-2H7V9h2V7h1v2h2z"},"1")],"ZoomIn");var ZoomOut={},_interopRequireDefault=interopRequireDefaultExports;Object.defineProperty(ZoomOut,"__esModule",{value:!0});var default_1=ZoomOut.default=void 0,_createSvgIcon=_interopRequireDefault(requireCreateSvgIcon()),_jsxRuntime=jsxRuntimeExports;default_1=ZoomOut.default=(0,_createSvgIcon.default)((0,_jsxRuntime.jsx)("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14M7 9h5v1H7z"}),"ZoomOut");/*! *****************************************************************************
@@ -978,5 +978,5 @@ Keg contents take time to reach maturity before they can be sold. After they rea
978
978
 
979
979
  Kegs that contain fermented crops compound in value at a rate of ${KEG_INTEREST_RATE}% a day but have an increasing chance of spoiling.
980
980
 
981
- Kegs that contain wine compound in value at a rate of ${WINE_INTEREST_RATE}% for up to ${integerString(WINE_GROWTH_TIMELINE_CAP)} days and never spoil.`})})})})})]})};CellarInventoryTabPanel.propTypes={currentTab:propTypesExports.number.isRequired,index:propTypesExports.number.isRequired};function getCropsAvailableToFerment(o){return Object.keys(o.items).reduce((s,$)=>{const j=getFinalCropItemFromSeedItem(itemsMap[$]);return j&&Number.isFinite(j.daysToFerment)&&s.push(j),s},[])}const FermentationRecipe=({item:o})=>{const{gameState:{inventory:a,cellarInventory:s,purchasedCellar:$},handlers:{handleMakeFermentationRecipeClick:j}}=reactExports.useContext(FarmhandContext),[_e,et]=reactExports.useState(1),tt=getInventoryQuantityMap(a),rt=FERMENTED_CROP_NAME`${o}`,{space:nt}=PURCHASEABLE_CELLARS.get($)??{space:0};reactExports.useEffect(()=>{et(Math.min(getMaxYieldOfFermentationRecipe(o,a,s,nt),Math.max(1,_e)))},[s,nt,a,o,_e]);const it=_e>0&&cellarService.doesCellarSpaceRemain(s,$),ot=()=>{it&&j(o,_e)},at=getMaxYieldOfFermentationRecipe(o,a,s,nt),st=cellarService.getItemInstancesInCellar(s,o);return jsxRuntimeExports.jsxs(Card,{className:"FermentationRecipe",children:[jsxRuntimeExports.jsx(CardHeader,{title:rt,avatar:jsxRuntimeExports.jsx("img",{src:items[o.id],alt:rt}),subheader:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("p",{children:["Days to ferment: ",o.daysToFerment]}),jsxRuntimeExports.jsxs("p",{children:["Units of ",itemsMap[o.id].name," in inventory:"," ",integerString(tt[o.id]??0)]}),jsxRuntimeExports.jsxs("p",{children:["Units of ",itemsMap.salt.name," required:"," ",getSaltRequirementsForFermentationRecipe(o)," (available:"," ",jsxRuntimeExports.jsx(AnimatedNumber,{number:tt[itemsMap.salt.id]??0,formatter:integerString}),")"]}),jsxRuntimeExports.jsxs("p",{children:["In cellar: ",integerString(st??0)]})]})}),jsxRuntimeExports.jsxs(CardActions,{children:[jsxRuntimeExports.jsx(Button,{className:"make-recipe",color:"primary",disabled:!it||!_e,onClick:ot,variant:"contained",children:"Make"}),jsxRuntimeExports.jsx(QuantityInput,{handleSubmit:ot,handleUpdateNumber:et,maxQuantity:at,setQuantity:et,value:_e})]})]})};FermentationRecipe.propTypes={item:propTypesExports.object.isRequired};const totalFermentableItems=Object.keys(fermentableItemsMap).length,FermentationRecipeList=()=>{const{gameState:{levelEntitlements:o}}=reactExports.useContext(FarmhandContext),a=getCropsAvailableToFerment(o),[s,$]=reactExports.useState(""),j=s.toLowerCase().split(" ").filter(tt=>tt.length>0),_e=a.filter(tt=>{const rt=`${FERMENTED_CROP_NAME}${tt.name}`.toLowerCase();return j.every(nt=>rt.includes(nt)||tt.name.toLowerCase().includes(nt))}),et=_e.length;return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("h3",{children:["Available Fermentation Recipes (",et," /"," ",totalFermentableItems,")"]}),a.length>0&&jsxRuntimeExports.jsx(SearchBar,{placeholder:"Search fermentation recipes...",onSearch:$}),_e.length>0&&jsxRuntimeExports.jsx("ul",{className:"card-list",children:_e.map(tt=>jsxRuntimeExports.jsx("li",{children:jsxRuntimeExports.jsx(FermentationRecipe,{item:tt})},tt.id))})]})};FermentationRecipeList.propTypes={};const FermentationTabPanel=({index:o,currentTab:a})=>jsxRuntimeExports.jsxs(TabPanel,{value:a,index:o,children:[jsxRuntimeExports.jsx(FermentationRecipeList,{}),jsxRuntimeExports.jsx(Divider,{}),jsxRuntimeExports.jsx("ul",{className:"card-list",children:jsxRuntimeExports.jsx("li",{children:jsxRuntimeExports.jsx(Card,{children:jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx(ReactMarkdown$1,{linkTarget:"_blank",className:"markdown",source:"Some items can be fermented and become much more valuable over time."})})})})})]});FermentationTabPanel.propTypes={currentTab:propTypesExports.number.isRequired,index:propTypesExports.number.isRequired};const getGrapesSold=o=>Object.entries(o).reduce((s,[$,j])=>{const _e=itemsMap[$];return(j||0)>0&&isGrape(_e)&&s.push(_e),s},[]);function getWineVarietiesAvailableToMake(o){return getGrapesSold(o).map(({variety:$})=>$)}const WineRecipe=({wineVariety:o})=>{const{gameState:{cellarInventory:a,inventory:s,purchasedCellar:$},handlers:{handleMakeWineClick:j}}=reactExports.useContext(FarmhandContext),[_e,et]=reactExports.useState(1),tt=grapeVarietyNameMap[o],rt=grapeVarietyToGrapeItemMap[o],nt=itemsMap[rt.wineId],{space:it}=PURCHASEABLE_CELLARS.get($)??{space:0},ot=getInventoryQuantityMap(s),at=ot[rt.id]??0,st=ot[yeast$1.id]??0;reactExports.useEffect(()=>{et(Math.min(wineService.getMaxWineYield({grape:rt,inventory:s,cellarInventory:a,cellarSize:it}),Math.max(1,_e)))},[a,it,rt,s,_e,o]);const ut=_e>0&&at>=GRAPES_REQUIRED_FOR_WINE&&cellarService.doesCellarSpaceRemain(a,$),ct=!ut||!_e,ft=cellarService.getItemInstancesInCellar(a,nt),dt=wineService.getMaxWineYield({grape:rt,inventory:s,cellarInventory:a,cellarSize:it}),mt=()=>{ut&&j(rt,_e)};return jsxRuntimeExports.jsxs(Card,{className:"WineRecipe",sx:{position:"relative"},children:[jsxRuntimeExports.jsx(CardHeader,{title:tt,avatar:jsxRuntimeExports.jsx("img",{src:wines[o],alt:tt}),subheader:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("p",{children:["Days to mature: ",integerString(wineService.getDaysToMature(o))]}),jsxRuntimeExports.jsxs("p",{children:["Units of ",rt.name," required:"," ",integerString(GRAPES_REQUIRED_FOR_WINE)," (available:"," ",integerString(at),")"]}),jsxRuntimeExports.jsxs("p",{children:["Units of ",yeast$1.name," required:"," ",integerString(getYeastRequiredForWine(o)*_e)," ","(available: ",integerString(st),")"]}),jsxRuntimeExports.jsxs("p",{children:["In cellar: ",integerString(ft??0)]})]})}),jsxRuntimeExports.jsxs(CardActions,{children:[jsxRuntimeExports.jsx(Button,{color:"primary",variant:"contained",disabled:ct,onClick:mt,children:"Make"}),jsxRuntimeExports.jsx(QuantityInput,{handleSubmit:mt,handleUpdateNumber:et,maxQuantity:dt,setQuantity:et,value:_e})]})]})};WineRecipe.propTypes={wineVariety:propTypesExports.oneOf(Object.keys(grapeVariety))};const totalGrapeVarieties=Object.keys(grapeVariety).length,WineRecipeList=()=>{const{gameState:{itemsSold:o}}=reactExports.useContext(FarmhandContext),a=getWineVarietiesAvailableToMake(o),[s,$]=reactExports.useState(""),j=a.filter(et=>et.toLowerCase().includes(s.toLowerCase())),_e=j.length;return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("h3",{children:["Available Wine Recipes (",_e," /"," ",totalGrapeVarieties,")"]}),a.length>0&&jsxRuntimeExports.jsx(SearchBar,{placeholder:"Search wine varieties...",onSearch:$}),jsxRuntimeExports.jsx("ul",{className:"card-list",children:j.map(et=>jsxRuntimeExports.jsx("li",{children:jsxRuntimeExports.jsx(WineRecipe,{wineVariety:et})},et))})]})},WinemakingTabPanel=({index:o,currentTab:a})=>jsxRuntimeExports.jsxs(TabPanel,{value:a,index:o,children:[jsxRuntimeExports.jsx(WineRecipeList,{}),jsxRuntimeExports.jsx(Divider,{}),jsxRuntimeExports.jsx("ul",{className:"card-list",children:jsxRuntimeExports.jsx("li",{children:jsxRuntimeExports.jsx(Card,{children:jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx(ReactMarkdown$1,{linkTarget:"_blank",className:"markdown",source:"Grapes can be made into wine. Wine becomes very valuable in time and never spoils."})})})})})]});WinemakingTabPanel.propTypes={currentTab:propTypesExports.number.isRequired,index:propTypesExports.number.isRequired};const Cellar=()=>{const[o,a]=reactExports.useState(0);return jsxRuntimeExports.jsxs("div",{className:"Cellar",children:[jsxRuntimeExports.jsxs(Tabs,{value:o,onChange:(s,$)=>a($),"aria-label":"Cellar tabs",children:[jsxRuntimeExports.jsx(Tab,{label:"Cellar Inventory",...a11yProps(0)}),jsxRuntimeExports.jsx(Tab,{label:"Fermentation",...a11yProps(1)}),jsxRuntimeExports.jsx(Tab,{label:"Winemaking",...a11yProps(2)})]}),jsxRuntimeExports.jsx(CellarInventoryTabPanel,{index:0,currentTab:o}),jsxRuntimeExports.jsx(FermentationTabPanel,{index:1,currentTab:o}),jsxRuntimeExports.jsx(WinemakingTabPanel,{index:2,currentTab:o})]})};Cellar.propTypes={};const Stage=({field:o,stageFocus:a,viewTitle:s})=>{const $=reactExports.useRef(null);return reactExports.useEffect(()=>{if($.current){const j=$.current,{style:_e}=j;j.scrollTop=0,_e.overflow="hidden",setTimeout(()=>_e.overflow="",0)}},[a]),jsxRuntimeExports.jsxs("div",{className:classNames("Stage",{"is-october":isOctober(),"is-december":isDecember()}),"data-stage-focus":a,role:"main",ref:$,children:[jsxRuntimeExports.jsx("h2",{className:"view-title",children:s}),a===stageFocusType.HOME&&jsxRuntimeExports.jsx(Consumer$7,{}),a===stageFocusType.FIELD&&jsxRuntimeExports.jsx(Consumer$8,{columns:o[0].length,rows:o.length}),a===stageFocusType.FOREST&&jsxRuntimeExports.jsx(Forest,{}),a===stageFocusType.SHOP&&jsxRuntimeExports.jsx(Consumer$4,{}),a===stageFocusType.COW_PEN&&jsxRuntimeExports.jsx(Consumer$6,{}),a===stageFocusType.WORKSHOP&&jsxRuntimeExports.jsx(Consumer$1,{}),a===stageFocusType.CELLAR&&jsxRuntimeExports.jsx(Cellar,{}),jsxRuntimeExports.jsx("div",{className:"spacer"})]})};Stage.propTypes={field:propTypesExports.arrayOf(propTypesExports.array).isRequired,stageFocus:propTypesExports.string.isRequired,viewTitle:propTypesExports.string.isRequired};function Consumer(o){return jsxRuntimeExports.jsx(FarmhandContext.Consumer,{children:({gameState:a,handlers:s})=>jsxRuntimeExports.jsx(Stage,{...a,...s,...o})})}const snackbarProviderContentCallback=(o,{message:a,onClick:s,severity:$})=>jsxRuntimeExports.jsx(Alert,{elevation:3,key:o,onClick:s,severity:$,style:{cursor:s?"pointer":"default"},children:jsxRuntimeExports.jsx(ReactMarkdown$1,{source:a})}),NotificationSystem=({closeSnackbar:o,enqueueSnackbar:a,latestNotification:s})=>(reactExports.useEffect(()=>{s&&a(s,{autoHideDuration:NOTIFICATION_DURATION,onClose:()=>o(),preventDuplicate:!0})},[o,a,s]),null);NotificationSystem.propTypes={latestNotification:propTypesExports.shape({message:propTypesExports.string.isRequired,onClick:propTypesExports.func,severity:propTypesExports.string.isRequired})};const NotificationSystem$1=withSnackbar(function o(a){return jsxRuntimeExports.jsx(FarmhandContext.Consumer,{children:({gameState:s,handlers:$})=>jsxRuntimeExports.jsx(NotificationSystem,{...s,...$,...a})})}),scriptRel="modulepreload",assetsURL=function(o,a){return new URL(o,a).href},seen={},__vitePreload=function o(a,s,$){let j=Promise.resolve();if(s&&s.length>0){const et=document.getElementsByTagName("link"),tt=document.querySelector("meta[property=csp-nonce]"),rt=(tt==null?void 0:tt.nonce)||(tt==null?void 0:tt.getAttribute("nonce"));j=Promise.allSettled(s.map(nt=>{if(nt=assetsURL(nt,$),nt in seen)return;seen[nt]=!0;const it=nt.endsWith(".css"),ot=it?'[rel="stylesheet"]':"";if(!!$)for(let ut=et.length-1;ut>=0;ut--){const ct=et[ut];if(ct.href===nt&&(!it||ct.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${nt}"]${ot}`))return;const st=document.createElement("link");if(st.rel=it?"stylesheet":scriptRel,it||(st.as="script"),st.crossOrigin="",st.href=nt,rt&&st.setAttribute("nonce",rt),document.head.appendChild(st),it)return new Promise((ut,ct)=>{st.addEventListener("load",ut),st.addEventListener("error",()=>ct(new Error(`Unable to preload CSS for ${nt}`)))})}))}function _e(et){const tt=new Event("vite:preloadError",{cancelable:!0});if(tt.payload=et,window.dispatchEvent(tt),!tt.defaultPrevented)throw et}return j.then(et=>{for(const tt of et||[])tt.status==="rejected"&&_e(tt.reason);return a().catch(_e)})};function registerSW(o={}){const{immediate:a=!1,onNeedRefresh:s,onOfflineReady:$,onRegistered:j,onRegisteredSW:_e,onRegisterError:et}=o;let tt,rt,nt;const it=async(at=!0)=>{await rt,await(nt==null?void 0:nt())};async function ot(){if("serviceWorker"in navigator){if(tt=await __vitePreload(async()=>{const{Workbox:at}=await import("./workbox-window.prod.es5-B9K5rw8f.js");return{Workbox:at}},[],import.meta.url).then(({Workbox:at})=>new at("./service-worker.js",{scope:"./",type:"classic"})).catch(at=>{et==null||et(at)}),!tt)return;nt=async()=>{await(tt==null?void 0:tt.messageSkipWaiting())};{let at=!1;const st=()=>{at=!0,tt==null||tt.addEventListener("controlling",ut=>{ut.isUpdate&&window.location.reload()}),s==null||s()};tt.addEventListener("installed",ut=>{typeof ut.isUpdate>"u"?typeof ut.isExternal<"u"?ut.isExternal?st():!at&&($==null||$()):ut.isExternal?window.location.reload():!at&&($==null||$()):ut.isUpdate||$==null||$()}),tt.addEventListener("waiting",st),tt.addEventListener("externalwaiting",st)}tt.register({immediate:a}).then(at=>{_e?_e("./service-worker.js",at):j==null||j(at)}).catch(at=>{et==null||et(at)})}}return rt=ot(),it}function useRegisterSW(o={}){const{immediate:a=!0,onNeedRefresh:s,onOfflineReady:$,onRegistered:j,onRegisteredSW:_e,onRegisterError:et}=o,[tt,rt]=reactExports.useState(!1),[nt,it]=reactExports.useState(!1),[ot]=reactExports.useState(()=>registerSW({immediate:a,onOfflineReady(){it(!0),$==null||$()},onNeedRefresh(){rt(!0),s==null||s()},onRegistered:j,onRegisteredSW:_e,onRegisterError:et}));return{needRefresh:[tt,rt],offlineReady:[nt,it],updateServiceWorker:ot}}const UpdateNotifier=()=>{const{handlers:{handleGameUpdateAvailable:o}}=reactExports.useContext(FarmhandContext),{needRefresh:[a],updateServiceWorker:s}=useRegisterSW();return reactExports.useEffect(()=>{a&&(o(s),window.addEventListener("beforeunload",()=>{s(!0)}))},[a,o,s]),null},theme=createTheme({palette:{mode:"light"},shape:{},components:{MuiTabs:{styleOverrides:{root:({theme:o})=>({background:"#ffeec6",borderColor:"#9b6d00",borderWidth:2,borderStyle:"solid",borderRadius:`${o.shape.borderRadius}px ${o.shape.borderRadius}px 0 0`})}},MuiInput:{styleOverrides:{root:{margin:"1rem 0"}}}}}),commonFetchConfig={mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer"};async function getData(o="",a={}){const s=new URLSearchParams;return Object.keys(a).forEach(j=>s.append(encodeURIComponent(j),encodeURIComponent(a[j]))),(await fetch(`${o}?${s}`,{...commonFetchConfig,method:"GET"})).json()}async function postData(o="",a={}){return(await fetch(o,{...commonFetchConfig,method:"POST",body:JSON.stringify(a)})).json()}function _interopDefault(o){return o&&typeof o=="object"&&"default"in o?o.default:o}var React=reactExports,React__default=_interopDefault(React);function _defineProperty(o,a,s){return a in o?Object.defineProperty(o,a,{value:s,enumerable:!0,configurable:!0,writable:!0}):o[a]=s,o}function _inheritsLoose(o,a){o.prototype=Object.create(a.prototype),o.prototype.constructor=o,o.__proto__=a}var canUseDOM=!!(typeof window<"u"&&window.document&&window.document.createElement);function withSideEffect(o,a,s){if(typeof o!="function")throw new Error("Expected reducePropsToState to be a function.");if(typeof a!="function")throw new Error("Expected handleStateChangeOnClient to be a function.");if(typeof s<"u"&&typeof s!="function")throw new Error("Expected mapStateOnServer to either be undefined or a function.");function $(j){return j.displayName||j.name||"Component"}return function(_e){if(typeof _e!="function")throw new Error("Expected WrappedComponent to be a React component.");var et=[],tt;function rt(){tt=o(et.map(function(it){return it.props})),nt.canUseDOM?a(tt):s&&(tt=s(tt))}var nt=function(it){_inheritsLoose(ot,it);function ot(){return it.apply(this,arguments)||this}ot.peek=function(){return tt},ot.rewind=function(){if(ot.canUseDOM)throw new Error("You may only call rewind() on the server. Call peek() to read the current state.");var ut=tt;return tt=void 0,et=[],ut};var at=ot.prototype;return at.UNSAFE_componentWillMount=function(){et.push(this),rt()},at.componentDidUpdate=function(){rt()},at.componentWillUnmount=function(){var ut=et.indexOf(this);et.splice(ut,1),rt()},at.render=function(){return React__default.createElement(_e,this.props)},ot}(React.PureComponent);return _defineProperty(nt,"displayName","SideEffect("+$(_e)+")"),_defineProperty(nt,"canUseDOM",canUseDOM),nt}}var lib=withSideEffect;const withSideEffect$1=getDefaultExportFromCjs(lib);var hasElementType=typeof Element<"u",hasMap=typeof Map=="function",hasSet=typeof Set=="function",hasArrayBuffer=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function equal(o,a){if(o===a)return!0;if(o&&a&&typeof o=="object"&&typeof a=="object"){if(o.constructor!==a.constructor)return!1;var s,$,j;if(Array.isArray(o)){if(s=o.length,s!=a.length)return!1;for($=s;$--!==0;)if(!equal(o[$],a[$]))return!1;return!0}var _e;if(hasMap&&o instanceof Map&&a instanceof Map){if(o.size!==a.size)return!1;for(_e=o.entries();!($=_e.next()).done;)if(!a.has($.value[0]))return!1;for(_e=o.entries();!($=_e.next()).done;)if(!equal($.value[1],a.get($.value[0])))return!1;return!0}if(hasSet&&o instanceof Set&&a instanceof Set){if(o.size!==a.size)return!1;for(_e=o.entries();!($=_e.next()).done;)if(!a.has($.value[0]))return!1;return!0}if(hasArrayBuffer&&ArrayBuffer.isView(o)&&ArrayBuffer.isView(a)){if(s=o.length,s!=a.length)return!1;for($=s;$--!==0;)if(o[$]!==a[$])return!1;return!0}if(o.constructor===RegExp)return o.source===a.source&&o.flags===a.flags;if(o.valueOf!==Object.prototype.valueOf&&typeof o.valueOf=="function"&&typeof a.valueOf=="function")return o.valueOf()===a.valueOf();if(o.toString!==Object.prototype.toString&&typeof o.toString=="function"&&typeof a.toString=="function")return o.toString()===a.toString();if(j=Object.keys(o),s=j.length,s!==Object.keys(a).length)return!1;for($=s;$--!==0;)if(!Object.prototype.hasOwnProperty.call(a,j[$]))return!1;if(hasElementType&&o instanceof Element)return!1;for($=s;$--!==0;)if(!((j[$]==="_owner"||j[$]==="__v"||j[$]==="__o")&&o.$$typeof)&&!equal(o[j[$]],a[j[$]]))return!1;return!0}return o!==o&&a!==a}var reactFastCompare=function o(a,s){try{return equal(a,s)}catch($){if(($.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw $}};const isEqual=getDefaultExportFromCjs(reactFastCompare);var define_global_default={},ATTRIBUTE_NAMES={BODY:"bodyAttributes",HTML:"htmlAttributes",TITLE:"titleAttributes"},TAG_NAMES={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title"};Object.keys(TAG_NAMES).map(function(o){return TAG_NAMES[o]});var TAG_PROPERTIES={CHARSET:"charset",CSS_TEXT:"cssText",HREF:"href",HTTPEQUIV:"http-equiv",INNER_HTML:"innerHTML",ITEM_PROP:"itemprop",NAME:"name",PROPERTY:"property",REL:"rel",SRC:"src",TARGET:"target"},REACT_TAG_MAP={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},HELMET_PROPS={DEFAULT_TITLE:"defaultTitle",DEFER:"defer",ENCODE_SPECIAL_CHARACTERS:"encodeSpecialCharacters",ON_CHANGE_CLIENT_STATE:"onChangeClientState",TITLE_TEMPLATE:"titleTemplate"},HTML_TAG_MAP=Object.keys(REACT_TAG_MAP).reduce(function(o,a){return o[REACT_TAG_MAP[a]]=a,o},{}),SELF_CLOSING_TAGS=[TAG_NAMES.NOSCRIPT,TAG_NAMES.SCRIPT,TAG_NAMES.STYLE],HELMET_ATTRIBUTE="data-react-helmet",_typeof=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(o){return typeof o}:function(o){return o&&typeof Symbol=="function"&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},classCallCheck=function(o,a){if(!(o instanceof a))throw new TypeError("Cannot call a class as a function")},createClass=function(){function o(a,s){for(var $=0;$<s.length;$++){var j=s[$];j.enumerable=j.enumerable||!1,j.configurable=!0,"value"in j&&(j.writable=!0),Object.defineProperty(a,j.key,j)}}return function(a,s,$){return s&&o(a.prototype,s),$&&o(a,$),a}}(),_extends=Object.assign||function(o){for(var a=1;a<arguments.length;a++){var s=arguments[a];for(var $ in s)Object.prototype.hasOwnProperty.call(s,$)&&(o[$]=s[$])}return o},inherits=function(o,a){if(typeof a!="function"&&a!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof a);o.prototype=Object.create(a&&a.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),a&&(Object.setPrototypeOf?Object.setPrototypeOf(o,a):o.__proto__=a)},objectWithoutProperties=function(o,a){var s={};for(var $ in o)a.indexOf($)>=0||Object.prototype.hasOwnProperty.call(o,$)&&(s[$]=o[$]);return s},possibleConstructorReturn=function(o,a){if(!o)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return a&&(typeof a=="object"||typeof a=="function")?a:o},encodeSpecialCharacters=function o(a){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return s===!1?String(a):String(a).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")},getTitleFromPropsList=function o(a){var s=getInnermostProperty(a,TAG_NAMES.TITLE),$=getInnermostProperty(a,HELMET_PROPS.TITLE_TEMPLATE);if($&&s)return $.replace(/%s/g,function(){return Array.isArray(s)?s.join(""):s});var j=getInnermostProperty(a,HELMET_PROPS.DEFAULT_TITLE);return s||j||void 0},getOnChangeClientState=function o(a){return getInnermostProperty(a,HELMET_PROPS.ON_CHANGE_CLIENT_STATE)||function(){}},getAttributesFromPropsList=function o(a,s){return s.filter(function($){return typeof $[a]<"u"}).map(function($){return $[a]}).reduce(function($,j){return _extends({},$,j)},{})},getBaseTagFromPropsList=function o(a,s){return s.filter(function($){return typeof $[TAG_NAMES.BASE]<"u"}).map(function($){return $[TAG_NAMES.BASE]}).reverse().reduce(function($,j){if(!$.length)for(var _e=Object.keys(j),et=0;et<_e.length;et++){var tt=_e[et],rt=tt.toLowerCase();if(a.indexOf(rt)!==-1&&j[rt])return $.concat(j)}return $},[])},getTagsFromPropsList=function o(a,s,$){var j={};return $.filter(function(_e){return Array.isArray(_e[a])?!0:(typeof _e[a]<"u"&&warn("Helmet: "+a+' should be of type "Array". Instead found type "'+_typeof(_e[a])+'"'),!1)}).map(function(_e){return _e[a]}).reverse().reduce(function(_e,et){var tt={};et.filter(function(at){for(var st=void 0,ut=Object.keys(at),ct=0;ct<ut.length;ct++){var ft=ut[ct],dt=ft.toLowerCase();s.indexOf(dt)!==-1&&!(st===TAG_PROPERTIES.REL&&at[st].toLowerCase()==="canonical")&&!(dt===TAG_PROPERTIES.REL&&at[dt].toLowerCase()==="stylesheet")&&(st=dt),s.indexOf(ft)!==-1&&(ft===TAG_PROPERTIES.INNER_HTML||ft===TAG_PROPERTIES.CSS_TEXT||ft===TAG_PROPERTIES.ITEM_PROP)&&(st=ft)}if(!st||!at[st])return!1;var mt=at[st].toLowerCase();return j[st]||(j[st]={}),tt[st]||(tt[st]={}),j[st][mt]?!1:(tt[st][mt]=!0,!0)}).reverse().forEach(function(at){return _e.push(at)});for(var rt=Object.keys(tt),nt=0;nt<rt.length;nt++){var it=rt[nt],ot=objectAssign$1({},j[it],tt[it]);j[it]=ot}return _e},[]).reverse()},getInnermostProperty=function o(a,s){for(var $=a.length-1;$>=0;$--){var j=a[$];if(j.hasOwnProperty(s))return j[s]}return null},reducePropsToState=function o(a){return{baseTag:getBaseTagFromPropsList([TAG_PROPERTIES.HREF,TAG_PROPERTIES.TARGET],a),bodyAttributes:getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY,a),defer:getInnermostProperty(a,HELMET_PROPS.DEFER),encode:getInnermostProperty(a,HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),htmlAttributes:getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML,a),linkTags:getTagsFromPropsList(TAG_NAMES.LINK,[TAG_PROPERTIES.REL,TAG_PROPERTIES.HREF],a),metaTags:getTagsFromPropsList(TAG_NAMES.META,[TAG_PROPERTIES.NAME,TAG_PROPERTIES.CHARSET,TAG_PROPERTIES.HTTPEQUIV,TAG_PROPERTIES.PROPERTY,TAG_PROPERTIES.ITEM_PROP],a),noscriptTags:getTagsFromPropsList(TAG_NAMES.NOSCRIPT,[TAG_PROPERTIES.INNER_HTML],a),onChangeClientState:getOnChangeClientState(a),scriptTags:getTagsFromPropsList(TAG_NAMES.SCRIPT,[TAG_PROPERTIES.SRC,TAG_PROPERTIES.INNER_HTML],a),styleTags:getTagsFromPropsList(TAG_NAMES.STYLE,[TAG_PROPERTIES.CSS_TEXT],a),title:getTitleFromPropsList(a),titleAttributes:getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE,a)}},rafPolyfill=function(){var o=Date.now();return function(a){var s=Date.now();s-o>16?(o=s,a(s)):setTimeout(function(){rafPolyfill(a)},0)}}(),cafPolyfill=function o(a){return clearTimeout(a)},requestAnimationFrame$1=typeof window<"u"?window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||rafPolyfill:define_global_default.requestAnimationFrame||rafPolyfill,cancelAnimationFrame$1=typeof window<"u"?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||cafPolyfill:define_global_default.cancelAnimationFrame||cafPolyfill,warn=function o(a){return console&&typeof console.warn=="function"&&console.warn(a)},_helmetCallback=null,handleClientStateChange=function o(a){_helmetCallback&&cancelAnimationFrame$1(_helmetCallback),a.defer?_helmetCallback=requestAnimationFrame$1(function(){commitTagChanges(a,function(){_helmetCallback=null})}):(commitTagChanges(a),_helmetCallback=null)},commitTagChanges=function o(a,s){var $=a.baseTag,j=a.bodyAttributes,_e=a.htmlAttributes,et=a.linkTags,tt=a.metaTags,rt=a.noscriptTags,nt=a.onChangeClientState,it=a.scriptTags,ot=a.styleTags,at=a.title,st=a.titleAttributes;updateAttributes(TAG_NAMES.BODY,j),updateAttributes(TAG_NAMES.HTML,_e),updateTitle(at,st);var ut={baseTag:updateTags(TAG_NAMES.BASE,$),linkTags:updateTags(TAG_NAMES.LINK,et),metaTags:updateTags(TAG_NAMES.META,tt),noscriptTags:updateTags(TAG_NAMES.NOSCRIPT,rt),scriptTags:updateTags(TAG_NAMES.SCRIPT,it),styleTags:updateTags(TAG_NAMES.STYLE,ot)},ct={},ft={};Object.keys(ut).forEach(function(dt){var mt=ut[dt],vt=mt.newTags,yt=mt.oldTags;vt.length&&(ct[dt]=vt),yt.length&&(ft[dt]=ut[dt].oldTags)}),s&&s(),nt(a,ct,ft)},flattenArray=function o(a){return Array.isArray(a)?a.join(""):a},updateTitle=function o(a,s){typeof a<"u"&&document.title!==a&&(document.title=flattenArray(a)),updateAttributes(TAG_NAMES.TITLE,s)},updateAttributes=function o(a,s){var $=document.getElementsByTagName(a)[0];if($){for(var j=$.getAttribute(HELMET_ATTRIBUTE),_e=j?j.split(","):[],et=[].concat(_e),tt=Object.keys(s),rt=0;rt<tt.length;rt++){var nt=tt[rt],it=s[nt]||"";$.getAttribute(nt)!==it&&$.setAttribute(nt,it),_e.indexOf(nt)===-1&&_e.push(nt);var ot=et.indexOf(nt);ot!==-1&&et.splice(ot,1)}for(var at=et.length-1;at>=0;at--)$.removeAttribute(et[at]);_e.length===et.length?$.removeAttribute(HELMET_ATTRIBUTE):$.getAttribute(HELMET_ATTRIBUTE)!==tt.join(",")&&$.setAttribute(HELMET_ATTRIBUTE,tt.join(","))}},updateTags=function o(a,s){var $=document.head||document.querySelector(TAG_NAMES.HEAD),j=$.querySelectorAll(a+"["+HELMET_ATTRIBUTE+"]"),_e=Array.prototype.slice.call(j),et=[],tt=void 0;return s&&s.length&&s.forEach(function(rt){var nt=document.createElement(a);for(var it in rt)if(rt.hasOwnProperty(it))if(it===TAG_PROPERTIES.INNER_HTML)nt.innerHTML=rt.innerHTML;else if(it===TAG_PROPERTIES.CSS_TEXT)nt.styleSheet?nt.styleSheet.cssText=rt.cssText:nt.appendChild(document.createTextNode(rt.cssText));else{var ot=typeof rt[it]>"u"?"":rt[it];nt.setAttribute(it,ot)}nt.setAttribute(HELMET_ATTRIBUTE,"true"),_e.some(function(at,st){return tt=st,nt.isEqualNode(at)})?_e.splice(tt,1):et.push(nt)}),_e.forEach(function(rt){return rt.parentNode.removeChild(rt)}),et.forEach(function(rt){return $.appendChild(rt)}),{oldTags:_e,newTags:et}},generateElementAttributesAsString=function o(a){return Object.keys(a).reduce(function(s,$){var j=typeof a[$]<"u"?$+'="'+a[$]+'"':""+$;return s?s+" "+j:j},"")},generateTitleAsString=function o(a,s,$,j){var _e=generateElementAttributesAsString($),et=flattenArray(s);return _e?"<"+a+" "+HELMET_ATTRIBUTE+'="true" '+_e+">"+encodeSpecialCharacters(et,j)+"</"+a+">":"<"+a+" "+HELMET_ATTRIBUTE+'="true">'+encodeSpecialCharacters(et,j)+"</"+a+">"},generateTagsAsString=function o(a,s,$){return s.reduce(function(j,_e){var et=Object.keys(_e).filter(function(nt){return!(nt===TAG_PROPERTIES.INNER_HTML||nt===TAG_PROPERTIES.CSS_TEXT)}).reduce(function(nt,it){var ot=typeof _e[it]>"u"?it:it+'="'+encodeSpecialCharacters(_e[it],$)+'"';return nt?nt+" "+ot:ot},""),tt=_e.innerHTML||_e.cssText||"",rt=SELF_CLOSING_TAGS.indexOf(a)===-1;return j+"<"+a+" "+HELMET_ATTRIBUTE+'="true" '+et+(rt?"/>":">"+tt+"</"+a+">")},"")},convertElementAttributestoReactProps=function o(a){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Object.keys(a).reduce(function($,j){return $[REACT_TAG_MAP[j]||j]=a[j],$},s)},convertReactPropstoHtmlAttributes=function o(a){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Object.keys(a).reduce(function($,j){return $[HTML_TAG_MAP[j]||j]=a[j],$},s)},generateTitleAsReactComponent=function o(a,s,$){var j,_e=(j={key:s},j[HELMET_ATTRIBUTE]=!0,j),et=convertElementAttributestoReactProps($,_e);return[React$5.createElement(TAG_NAMES.TITLE,et,s)]},generateTagsAsReactComponent=function o(a,s){return s.map(function($,j){var _e,et=(_e={key:j},_e[HELMET_ATTRIBUTE]=!0,_e);return Object.keys($).forEach(function(tt){var rt=REACT_TAG_MAP[tt]||tt;if(rt===TAG_PROPERTIES.INNER_HTML||rt===TAG_PROPERTIES.CSS_TEXT){var nt=$.innerHTML||$.cssText;et.dangerouslySetInnerHTML={__html:nt}}else et[rt]=$[tt]}),React$5.createElement(a,et)})},getMethodsForTag=function o(a,s,$){switch(a){case TAG_NAMES.TITLE:return{toComponent:function(){return generateTitleAsReactComponent(a,s.title,s.titleAttributes)},toString:function(){return generateTitleAsString(a,s.title,s.titleAttributes,$)}};case ATTRIBUTE_NAMES.BODY:case ATTRIBUTE_NAMES.HTML:return{toComponent:function(){return convertElementAttributestoReactProps(s)},toString:function(){return generateElementAttributesAsString(s)}};default:return{toComponent:function(){return generateTagsAsReactComponent(a,s)},toString:function(){return generateTagsAsString(a,s,$)}}}},mapStateOnServer=function o(a){var s=a.baseTag,$=a.bodyAttributes,j=a.encode,_e=a.htmlAttributes,et=a.linkTags,tt=a.metaTags,rt=a.noscriptTags,nt=a.scriptTags,it=a.styleTags,ot=a.title,at=ot===void 0?"":ot,st=a.titleAttributes;return{base:getMethodsForTag(TAG_NAMES.BASE,s,j),bodyAttributes:getMethodsForTag(ATTRIBUTE_NAMES.BODY,$,j),htmlAttributes:getMethodsForTag(ATTRIBUTE_NAMES.HTML,_e,j),link:getMethodsForTag(TAG_NAMES.LINK,et,j),meta:getMethodsForTag(TAG_NAMES.META,tt,j),noscript:getMethodsForTag(TAG_NAMES.NOSCRIPT,rt,j),script:getMethodsForTag(TAG_NAMES.SCRIPT,nt,j),style:getMethodsForTag(TAG_NAMES.STYLE,it,j),title:getMethodsForTag(TAG_NAMES.TITLE,{title:at,titleAttributes:st},j)}},Helmet=function o(a){var s,$;return $=s=function(j){inherits(_e,j);function _e(){return classCallCheck(this,_e),possibleConstructorReturn(this,j.apply(this,arguments))}return _e.prototype.shouldComponentUpdate=function(tt){return!isEqual(this.props,tt)},_e.prototype.mapNestedChildrenToProps=function(tt,rt){if(!rt)return null;switch(tt.type){case TAG_NAMES.SCRIPT:case TAG_NAMES.NOSCRIPT:return{innerHTML:rt};case TAG_NAMES.STYLE:return{cssText:rt}}throw new Error("<"+tt.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")},_e.prototype.flattenArrayTypeChildren=function(tt){var rt,nt=tt.child,it=tt.arrayTypeChildren,ot=tt.newChildProps,at=tt.nestedChildren;return _extends({},it,(rt={},rt[nt.type]=[].concat(it[nt.type]||[],[_extends({},ot,this.mapNestedChildrenToProps(nt,at))]),rt))},_e.prototype.mapObjectTypeChildren=function(tt){var rt,nt,it=tt.child,ot=tt.newProps,at=tt.newChildProps,st=tt.nestedChildren;switch(it.type){case TAG_NAMES.TITLE:return _extends({},ot,(rt={},rt[it.type]=st,rt.titleAttributes=_extends({},at),rt));case TAG_NAMES.BODY:return _extends({},ot,{bodyAttributes:_extends({},at)});case TAG_NAMES.HTML:return _extends({},ot,{htmlAttributes:_extends({},at)})}return _extends({},ot,(nt={},nt[it.type]=_extends({},at),nt))},_e.prototype.mapArrayTypeChildrenToProps=function(tt,rt){var nt=_extends({},rt);return Object.keys(tt).forEach(function(it){var ot;nt=_extends({},nt,(ot={},ot[it]=tt[it],ot))}),nt},_e.prototype.warnOnInvalidChildren=function(tt,rt){return!0},_e.prototype.mapChildrenToProps=function(tt,rt){var nt=this,it={};return React$5.Children.forEach(tt,function(ot){if(!(!ot||!ot.props)){var at=ot.props,st=at.children,ut=objectWithoutProperties(at,["children"]),ct=convertReactPropstoHtmlAttributes(ut);switch(nt.warnOnInvalidChildren(ot,st),ot.type){case TAG_NAMES.LINK:case TAG_NAMES.META:case TAG_NAMES.NOSCRIPT:case TAG_NAMES.SCRIPT:case TAG_NAMES.STYLE:it=nt.flattenArrayTypeChildren({child:ot,arrayTypeChildren:it,newChildProps:ct,nestedChildren:st});break;default:rt=nt.mapObjectTypeChildren({child:ot,newProps:rt,newChildProps:ct,nestedChildren:st});break}}}),rt=this.mapArrayTypeChildrenToProps(it,rt),rt},_e.prototype.render=function(){var tt=this.props,rt=tt.children,nt=objectWithoutProperties(tt,["children"]),it=_extends({},nt);return rt&&(it=this.mapChildrenToProps(rt,it)),React$5.createElement(a,it)},createClass(_e,null,[{key:"canUseDOM",set:function(tt){a.canUseDOM=tt}}]),_e}(React$5.Component),s.propTypes={base:PropTypes$1.object,bodyAttributes:PropTypes$1.object,children:PropTypes$1.oneOfType([PropTypes$1.arrayOf(PropTypes$1.node),PropTypes$1.node]),defaultTitle:PropTypes$1.string,defer:PropTypes$1.bool,encodeSpecialCharacters:PropTypes$1.bool,htmlAttributes:PropTypes$1.object,link:PropTypes$1.arrayOf(PropTypes$1.object),meta:PropTypes$1.arrayOf(PropTypes$1.object),noscript:PropTypes$1.arrayOf(PropTypes$1.object),onChangeClientState:PropTypes$1.func,script:PropTypes$1.arrayOf(PropTypes$1.object),style:PropTypes$1.arrayOf(PropTypes$1.object),title:PropTypes$1.string,titleAttributes:PropTypes$1.object,titleTemplate:PropTypes$1.string},s.defaultProps={defer:!0,encodeSpecialCharacters:!0},s.peek=a.peek,s.rewind=function(){var j=a.rewind();return j||(j=mapStateOnServer({baseTag:[],bodyAttributes:{},htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}})),j},$},NullComponent=function o(){return null},HelmetSideEffects=withSideEffect$1(reducePropsToState,handleClientStateChange,mapStateOnServer)(NullComponent),HelmetExport=Helmet(HelmetSideEffects);HelmetExport.renderStatic=HelmetExport.rewind;const chitchatterDomain="https://chitchatter.im",ChatRoom=()=>{const o="chat-title",a="chat-content",{handlers:{handleChatRoomOpenStateChange:s},gameState:{playerId:$,isChatOpen:j,room:_e}}=reactExports.useContext(FarmhandContext),et=()=>{s(!1)},tt=jsxRuntimeExports.jsx("chat-room",{"root-url":chitchatterDomain,room:`__farmhand__${_e}`,"user-id":$,style:{height:"100%",width:"100%",border:"none"},"color-mode":"light"});return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(HelmetExport,{children:jsxRuntimeExports.jsx("script",{src:`${chitchatterDomain}/sdk.js`})}),jsxRuntimeExports.jsxs(Dialog,{className:classNames("Farmhand","ChatRoom"),fullWidth:!0,keepMounted:!0,fullScreen:!0,open:j,onClose:et,"aria-describedby":o,"aria-labelledby":a,children:[jsxRuntimeExports.jsx(DialogTitle,{id:o,children:"Chat room"}),jsxRuntimeExports.jsx(DialogContent,{id:a,children:tt}),jsxRuntimeExports.jsx(DialogActions,{children:jsxRuntimeExports.jsx(Button,{onClick:et,color:"primary",autoFocus:!0,children:"Close"})})]})]})},itemIds=Object.keys(itemsMap),getInventoryQuantities=o=>{const a={};for(const s of itemIds)a[s]=0;for(const{id:s,quantity:$}of o)a[s]=$;return a};class FarmhandReducers extends reactExports.Component{addCowToInventory(){throw new Error("Unimplemented")}addPeer(){throw new Error("Unimplemented")}adjustLoan(){throw new Error("Unimplemented")}changeCowAutomaticHugState(){throw new Error("Unimplemented")}changeCowBreedingPenResident(){throw new Error("Unimplemented")}changeCowName(){throw new Error("Unimplemented")}clearPlot(){throw new Error("Unimplemented")}computeStateForNextDay(){throw new Error("Unimplemented")}fertilizePlot(){throw new Error("Unimplemented")}forRange(){throw new Error("Unimplemented")}harvestPlot(){throw new Error("Unimplemented")}hugCow(){throw new Error("Unimplemented")}makeRecipe(){throw new Error("Unimplemented")}makeFermentationRecipe(){throw new Error("Unimplemented")}makeWine(){throw new Error("Unimplemented")}modifyCow(){throw new Error("Unimplemented")}offerCow(){throw new Error("Unimplemented")}plantInPlot(){throw new Error("Unimplemented")}prependPendingPeerMessage(){throw new Error("Unimplemented")}purchaseCombine(){throw new Error("Unimplemented")}purchaseComposter(){throw new Error("Unimplemented")}purchaseCow(){throw new Error("Unimplemented")}purchaseCowPen(){throw new Error("Unimplemented")}purchaseCellar(){throw new Error("Unimplemented")}purchaseField(){throw new Error("Unimplemented")}purchaseForest(){throw new Error("Unimplemented")}purchaseItem(){throw new Error("Unimplemented")}purchaseSmelter(){throw new Error("Unimplemented")}purchaseStorageExpansion(){throw new Error("Unimplemented")}removeCowFromInventory(){throw new Error("Unimplemented")}removeKegFromCellar(){throw new Error("Unimplemented")}removePeer(){throw new Error("Unimplemented")}selectCow(){throw new Error("Unimplemented")}sellCow(){throw new Error("Unimplemented")}sellItem(){throw new Error("Unimplemented")}sellKeg(){throw new Error("Unimplemented")}setScarecrow(){throw new Error("Unimplemented")}setSprinkler(){throw new Error("Unimplemented")}showNotification(){throw new Error("Unimplemented")}updatePeer(){throw new Error("Unimplemented")}upgradeTool(){throw new Error("Unimplemented")}waterAllPlots(){throw new Error("Unimplemented")}waterField(){throw new Error("Unimplemented")}waterPlot(){throw new Error("Unimplemented")}withdrawCow(){throw new Error("Unimplemented")}constructor(a){super(a);const s=Object.getOwnPropertyNames(FarmhandReducers.prototype).filter($=>$!=="constructor");for(const $ of s){const j=reducers[$];this[$]=(..._e)=>{this.setState(et=>j(et,..._e))}}}}const{CLEANUP,HARVEST,MINE,OBSERVE,WATER,PLANT}=fieldMode,emptyObject=Object.freeze({}),computePlayerInventory=memoize((o,a)=>o.map(({quantity:s,id:$})=>({quantity:s,...itemsMap[$],value:getItemCurrentValue(itemsMap[$],a)}))),getFieldToolInventory=memoize(o=>o.filter(({id:a})=>{const{enablesFieldMode:s}=itemsMap[a];return typeof s=="string"&&s!==PLANT}).map(({id:a,quantity:s})=>({...itemsMap[a],quantity:s}))),getPlantableCropInventory=memoize(o=>o.filter(({id:a})=>itemsMap[a].isPlantableCrop).map(({id:a,quantity:s})=>({...itemsMap[a],quantity:s}))),applyPriceEvents=(o,a,s)=>{const $={...o};return Object.keys(a).forEach(j=>{$[j]=.5}),Object.keys(s).forEach(j=>{$[j]=1.5}),$};class Farmhand extends FarmhandReducers{constructor(s){super(s);Wr(this,"state",this.createInitialState());Wr(this,"handlers",{...eventHandlers,debounced:{...eventHandlers}});Wr(this,"keyMap",{});Wr(this,"keyHandlers",{});Wr(this,"getData",getData);Wr(this,"postData",postData);Wr(this,"handleCowTradeTimeout",()=>{typeof this.state.cowTradeTimeoutId=="number"&&(this.showNotification(REQUESTED_COW_TRADE_UNAVAILABLE,"error"),this.setState({cowTradeTimeoutId:null,isAwaitingCowTradeRequest:!1}),console.error("Cow trade request timed out"))});this.initInputHandlers(),window$1.farmhand=this}get viewTitle(){return STAGE_TITLE_MAP[this.state.stageFocus]}get fieldToolInventory(){return getFieldToolInventory(this.state.inventory)}get playerInventory(){const{inventory:s,valueAdjustments:$}=this.state;return computePlayerInventory(s,$)}get plantableCropInventory(){return getPlantableCropInventory(this.state.inventory)}get viewList(){const{CELLAR:s,COW_PEN:$,HOME:j,WORKSHOP:_e,FOREST:et}=stageFocusType,tt=[...STANDARD_VIEW_LIST];return this.state.showHomeScreen&&tt.unshift(j),this.isForestUnlocked&&features.FOREST&&tt.push(et),this.state.purchasedCowPen&&tt.push($),tt.push(_e),this.state.purchasedCellar&&tt.push(s),tt}get levelEntitlements(){return getLevelEntitlements(levelAchieved(this.state.experience))}get shopInventory(){return getAvailableShopInventory(this.levelEntitlements)}get peerMetadata(){return getPeerMetadata(this.state)}get isInputBlocked(){return this.state.isAwaitingNetworkRequest||this.state.isAwaitingCowTradeRequest||this.state.isWaitingForDayToCompleteIncrementing}get isChatAvailable(){const{isOnline:s,room:$}=this.state;return s&&$!==DEFAULT_ROOM}get isForestUnlocked(){return this.levelEntitlements.stageFocusType[stageFocusType.FOREST]}createInitialState(){return{activePlayers:null,allowCustomPeerCowNames:!1,cellarInventory:[],currentDialogView:dialogView.NONE,completedAchievements:{},cowForSale:generateCow(),cowBreedingPen:{cowId1:null,cowId2:null,daysUntilBirth:-1},cowColorsPurchased:{},cowIdOfferedForTrade:"",cowInventory:[],cowsSold:{},cowsTraded:0,cowTradeTimeoutId:-1,cropsHarvested:{},dayCount:0,experience:0,farmName:"Unnamed",field:createNewField(),fieldMode:OBSERVE,forest:createNewForest(),getCowAccept:noop,getCowReject:noop,getCowTradeRequest:noop,getPeerMetadata:noop,hasBooted:!1,heartbeatTimeoutId:null,historicalDailyLosses:[],historicalDailyRevenue:[],historicalValueAdjustments:[],hoveredPlotRangeSize:0,playerId:uuid_1.v4(),inventory:[{id:scarecrow$1.id,quantity:1}],inventoryLimit:INITIAL_STORAGE_LIMIT,isAwaitingCowTradeRequest:!1,isAwaitingNetworkRequest:!1,isCombineEnabled:!1,isMenuOpen:!doesMenuObstructStage(),itemsSold:{},cellarItemsSold:{},isChatOpen:!1,isDialogViewOpen:!1,isOnline:this.props.match.path.startsWith("/online"),isWaitingForDayToCompleteIncrementing:!1,learnedRecipes:{},loanBalance:STANDARD_LOAN_AMOUNT,loansTakenOut:1,money:STANDARD_LOAN_AMOUNT,latestNotification:null,newDayNotifications:[],notificationLog:[],peers:{},peerRoom:null,pendingPeerMessages:[],latestPeerMessages:[],sendPeerMetadata:null,selectedCowId:"",selectedItemId:"",priceCrashes:{},priceSurges:{},profitabilityStreak:0,record7dayProfitAverage:0,recordProfitabilityStreak:0,recordSingleDayProfit:0,revenue:0,redirect:"",room:decodeURIComponent(this.props.match.params.room||DEFAULT_ROOM),sendCowAccept:noop,sendCowReject:noop,purchasedCombine:0,purchasedComposter:0,purchasedCowPen:0,purchasedCellar:0,purchasedField:0,purchasedForest:0,purchasedSmelter:0,sendCowTradeRequest:noop,showHomeScreen:!0,showNotifications:!0,stageFocus:stageFocusType.HOME,todaysNotifications:[],todaysLosses:0,todaysPurchases:{},todaysRevenue:0,todaysStartingInventory:{},toolLevels:{[toolType.HOE]:toolLevel.DEFAULT,[toolType.SCYTHE]:toolLevel.DEFAULT,[toolType.SHOVEL]:toolLevel.UNAVAILABLE,[toolType.WATERING_CAN]:toolLevel.DEFAULT},useAlternateEndDayButtonPosition:!1,valueAdjustments:{},version:"1.19.2"}}async initializeNewGame(){await this.incrementDay(!0),this.setState(()=>({historicalValueAdjustments:[]})),this.showNotification(LOAN_INCREASED("",STANDARD_LOAN_AMOUNT),"info")}initInputHandlers(){Object.keys(eventHandlers).forEach($=>{this.handlers[$]=eventHandlers[$].bind(this),this.handlers.debounced[$]=debounce$2(this.handlers[$],50)}),this.keyMap={incrementDay:"shift+c",nextView:"right",openAccounting:"b",openAchievements:"a",openLog:"l",openPriceEvents:"e",openStats:"s",openSettings:",",openKeybindings:"shift+?",previousView:"left",toggleMenu:"m"},this.keyHandlers={incrementDay:()=>this.incrementDay(),nextView:this.focusNextView.bind(this),openAccounting:()=>this.openDialogView(dialogView.ACCOUNTING),openAchievements:()=>this.openDialogView(dialogView.ACHIEVEMENTS),openLog:()=>this.openDialogView(dialogView.FARMERS_LOG),openPriceEvents:()=>this.openDialogView(dialogView.PRICE_EVENTS),openStats:()=>this.openDialogView(dialogView.STATS),openSettings:()=>this.openDialogView(dialogView.SETTINGS),openKeybindings:()=>this.openDialogView(dialogView.KEYBINDINGS),previousView:this.focusPreviousView.bind(this),selectHoe:()=>this.handlers.handleFieldModeSelect(CLEANUP),selectScythe:()=>this.handlers.handleFieldModeSelect(HARVEST),selectWateringCan:()=>this.handlers.handleFieldModeSelect(WATER),selectShovel:()=>{this.state.toolLevels[toolType.SHOVEL]!==toolLevel.UNAVAILABLE&&this.handlers.handleFieldModeSelect(MINE)},toggleMenu:()=>this.handlers.handleMenuToggle()},nullArray(9).forEach(($,j)=>{const _e=j+1,et=`numberKey${_e}`;this.keyMap[et]=String(_e),this.keyHandlers[et]=()=>{const tt=this.viewList[j];typeof tt=="string"&&this.setState({stageFocus:stageFocusType[tt]})}}),Object.assign(this.keyHandlers,{clearPersistedData:()=>this.clearPersistedData(),waterAllPlots:()=>this.waterAllPlots()})}async componentDidMount(){const s=await this.props.localforage.getItem("state");if(s){const $=transformStateDataForImport({...this.createInitialState(),...s}),{isCombineEnabled:j,newDayNotifications:_e}=$;this.setState({...$,newDayNotifications:[]},()=>{_e.forEach(({message:et,severity:tt})=>{setTimeout(()=>this.showNotification(et,tt),0),j&&this.forRange(harvestPlot,1/0,0,0)})})}else await this.initializeNewGame();this.syncToRoom(),this.setState({hasBooted:!0})}componentDidUpdate(s,$){var dt,mt;const{hasBooted:j,heartbeatTimeoutId:_e,isMenuOpen:et,isOnline:tt,money:rt,peerRoom:nt,room:it,stageFocus:ot}=this.state;if(!j)return;const{match:{path:at,params:{room:st=it}}}=this.props,ut=decodeURIComponent(st),ct=at.startsWith("/online");(ct!==this.state.isOnline||ut!==it)&&this.setState(()=>({isOnline:ct,redirect:"",room:ut})),(tt!==$.isOnline||it!==$.room)&&(ct&&this.syncToRoom(),!tt&&typeof _e=="number"&&(clearTimeout(_e),this.setState({activePlayers:null,heartbeatTimeoutId:null,peerRoom:null}))),tt===!1&&$.isOnline===!0&&this.showNotification(DISCONNECTED_FROM_SERVER,"info");const ft=updateAchievements(this.state,$);if(ft!==this.state&&this.setState(()=>ft),this.state.stageFocus===stageFocusType.COW_PEN&&$.stageFocus!==stageFocusType.COW_PEN&&this.setState(()=>({selectedCowId:""})),ot!==$.stageFocus&&et&&this.setState(()=>({isMenuOpen:!doesMenuObstructStage()})),rt<$.money&&this.setState(({todaysLosses:vt})=>({todaysLosses:moneyTotal(vt,rt-$.money)})),nt!==$.peerRoom)if(nt){nt.onPeerJoin(Dt=>{this.addPeer(Dt)}),nt.onPeerLeave(Dt=>{this.removePeer(Dt)});const[vt,yt]=nt.makeAction("peerMetadata");yt((...Dt)=>handlePeerMetadataRequest(this,...Dt));const[pt,ht]=nt.makeAction("cowTrade");ht((...Dt)=>handleCowTradeRequest(this,...Dt));const[At,St]=nt.makeAction("cowAccept");St((...Dt)=>handleCowTradeRequestAccept(this,...Dt));const[Ct,Mt]=nt.makeAction("cowReject");Mt((...Dt)=>handleCowTradeRequestReject(this,...Dt)),this.setState({getCowAccept:St,getCowReject:Mt,getCowTradeRequest:ht,getPeerMetadata:yt,pendingPeerMessages:[],sendCowAccept:At,sendCowReject:Ct,sendCowTradeRequest:pt,sendPeerMetadata:this.wrapSendPeerMetadata(vt)}),vt(this.peerMetadata)}else $.peerRoom.leave(),this.setState({peers:{},sendPeerMetadata:null});["showInventoryFullNotifications","showRecipeLearnedNotifications"].forEach(vt=>this[vt]($)),(mt=(dt=this.state).sendPeerMetadata)==null||mt.call(dt,this.peerMetadata)}wrapSendPeerMetadata(s){return throttle$1((...$)=>{s(...$),this.setState(()=>({pendingPeerMessages:[]}))},5e3,{trailing:!0})}tradeForPeerCow(s){this.setState($=>{const{cowIdOfferedForTrade:j,cowInventory:_e,peers:et,sendCowTradeRequest:tt}=$;if(!tt)return null;const{ownerId:rt}=s,[nt]=Object.entries(et).find(([,st])=>(st==null?void 0:st.playerId)===rt)??[];if(!nt)return console.error(`Owner not found for cow ${JSON.stringify(s)}`),null;if(_e.find(({id:st})=>st===s.id))return console.error(`Cow ID ${s.id} is already in inventory`),showNotification($,COW_ALREADY_OWNED,"error");const ot=_e.find(({id:st})=>st===j);if(!ot)return console.error(`Cow ID ${j} not found`),null;const at=setTimeout(this.handleCowTradeTimeout,COW_TRADE_TIMEOUT);return tt({cowOffered:{...ot,isUsingHuggingMachine:!1},cowRequested:s},nt),{cowTradeTimeoutId:at,isAwaitingCowTradeRequest:!0}},noop)}async clearPersistedData(){await this.props.localforage.clear(),this.showNotification(DATA_DELETED)}async syncToRoom(){var et;const{isOnline:s,priceCrashes:$,priceSurges:j,room:_e}=this.state;if(s){this.showNotification(CONNECTING_TO_SERVER,"info");try{this.setState({isAwaitingNetworkRequest:!0,peers:{}}),(et=this.state.peerRoom)==null||et.leave();const{valueAdjustments:tt}=await getData(endpoints.getMarketData,{farmId:this.state.playerId,room:_e});this.scheduleHeartbeat(),this.setState({activePlayers:1,peerRoom:joinRoom({appId:"@jeremyckahn/farmhand",relayUrls,relayRedundancy:4,rtcConfig},_e),valueAdjustments:applyPriceEvents(tt,$,j)}),this.showNotification(CONNECTED_TO_ROOM("",_e),"success")}catch(tt){this.showNotification(SERVER_ERROR,"error"),console.error(tt),this.setState(()=>({redirect:"/",cowIdOfferedForTrade:""}))}this.setState({isAwaitingNetworkRequest:!1,isAwaitingCowTradeRequest:!1})}}scheduleHeartbeat(){const{heartbeatTimeoutId:s}=this.state;clearTimeout(s??-1),this.setState(()=>({heartbeatTimeoutId:setTimeout(async()=>{this.setState(({money:$,activePlayers:j})=>({activePlayers:j,money:moneyTotal($,j)})),this.scheduleHeartbeat()},HEARTBEAT_INTERVAL_PERIOD)}))}showInventoryFullNotifications(s){inventorySpaceRemaining(s)>0&&inventorySpaceRemaining(this.state)<=0&&this.showNotification(INVENTORY_FULL_NOTIFICATION,"warning")}showRecipeLearnedNotifications({learnedRecipes:s}){let $=[];Object.keys(this.state.learnedRecipes).forEach(j=>{s.hasOwnProperty(j)||$.push(recipesMap[j])}),$.length>1?this.showNotification(RECIPES_LEARNED("",$)):$.length===1&&this.showNotification(RECIPE_LEARNED("",$[0]))}persistState(s={}){return this.props.localforage.setItem("state",reduceByPersistedKeys({...this.state,...s}))}async updateServerForNextDay(){const s=[];let $=null;this.setState(()=>({isAwaitingNetworkRequest:!0}));let j;if(this.state.isOnline){const{inventory:_e,room:et,todaysPurchases:tt,todaysStartingInventory:rt}=this.state,nt=computeMarketPositions(rt,tt,_e);try{j=(await postData(endpoints.postDayResults,{positions:nt,room:et})).valueAdjustments,Object.keys(nt).length&&(s.push({message:POSITIONS_POSTED_NOTIFICATION("","You",nt),severity:"info"}),$=POSITIONS_POSTED_NOTIFICATION("","",nt))}catch(it){s.push({message:SERVER_ERROR,severity:"error"}),this.setState(()=>({redirect:"/",cowIdOfferedForTrade:"",isAwaitingNetworkRequest:!1})),console.error(it)}}return{broadcastedPositionMessage:$,serverMessages:s,serverValueAdjustments:j}}async incrementDay(s=!1){const{broadcastedPositionMessage:$,serverMessages:j,serverValueAdjustments:_e}=await this.updateServerForNextDay();let et=[];this.setState(tt=>{const rt=computeStateForNextDay(tt,s);return et=[...j,...rt.newDayNotifications],rt.valueAdjustments=applyPriceEvents(_e??rt.valueAdjustments,rt.priceCrashes,rt.priceSurges),rt.isAwaitingNetworkRequest=!1,{...rt,isWaitingForDayToCompleteIncrementing:!0,newDayNotifications:[],todaysNotifications:[]}},async()=>{try{await this.persistState({newDayNotifications:et}),[...et].concat(s?[]:[{message:PROGRESS_SAVED_MESSAGE,severity:"info"}]).forEach(({message:rt,severity:nt})=>this.showNotification(rt,nt)),this.state.isCombineEnabled&&(this.state.stageFocus===stageFocusType.FIELD&&await sleep(1e3),this.forRange(harvestPlot,1/0,0,0))}catch(tt){console.error(tt),this.showNotification(JSON.stringify(tt),"error")}finally{this.setState(()=>({isWaitingForDayToCompleteIncrementing:!1})),$&&this.messagePeers($)}})}openDialogView(s){this.setState({currentDialogView:s,isDialogViewOpen:!0})}closeDialogView(){this.setState({isDialogViewOpen:!1})}focusNextView(){var $;if((($=document.activeElement)==null?void 0:$.getAttribute("role"))==="tab")return;const{viewList:s}=this;this.setState(({stageFocus:j})=>{const _e=s.indexOf(j);return{stageFocus:s[(_e+1)%s.length]}})}focusPreviousView(){var $;if((($=document.activeElement)==null?void 0:$.getAttribute("role"))==="tab")return;const{viewList:s}=this;this.setState(({stageFocus:j})=>{const _e=s.indexOf(j);return{stageFocus:s[_e===0?s.length-1:(_e-1)%s.length]}})}messagePeers(s,$){this.prependPendingPeerMessage(s,$)}render(){const{props:{features:s},state:{redirect:$},fieldToolInventory:j,handlers:_e,isChatAvailable:et,keyHandlers:tt,keyMap:rt,levelEntitlements:nt,plantableCropInventory:it,playerInventory:ot,shopInventory:at,viewList:st,viewTitle:ut}=this,ct=this.isInputBlocked,ft={...this.state,blockInput:ct,features:s,fieldToolInventory:j,isChatAvailable:et,levelEntitlements:nt,plantableCropInventory:it,playerInventory:ot,playerInventoryQuantities:getInventoryQuantities(this.state.inventory),shopInventory:at,viewList:st,viewTitle:ut};return jsxRuntimeExports.jsx(index_esExports.GlobalHotKeys,{allowChanges:!0,keyMap:ct?emptyObject:rt,handlers:ct?emptyObject:tt,children:jsxRuntimeExports.jsx(StyledEngineProvider,{injectFirst:!0,children:jsxRuntimeExports.jsx(ThemeProvider,{theme,children:jsxRuntimeExports.jsxs(SnackbarProvider,{anchorOrigin:{vertical:"top",horizontal:"right"},classes:{containerRoot:"Farmhand notification-container"},content:snackbarProviderContentCallback,maxSnack:4,children:[$&&jsxRuntimeExports.jsx(Redirect,{to:$}),jsxRuntimeExports.jsxs(FarmhandContext.Provider,{value:{gameState:ft,handlers:_e},children:[jsxRuntimeExports.jsxs("div",{className:classNames("Farmhand farmhand-root fill",this.state.isMenuOpen?"menu-open":"menu-closed",{"use-alternate-end-day-button-position":this.state.useAlternateEndDayButtonPosition,"block-input":ct,"has-booted":this.state.hasBooted}),children:[jsxRuntimeExports.jsx(UpdateNotifier,{}),jsxRuntimeExports.jsx(Consumer$r,{}),jsxRuntimeExports.jsxs(Drawer,{className:"sidebar-wrapper",open:ft.isMenuOpen,variant:"persistent",role:"complementary",PaperProps:{className:"sidebar"},children:[jsxRuntimeExports.jsx(Consumer$f,{}),jsxRuntimeExports.jsx(Consumer$c,{}),jsxRuntimeExports.jsx("div",{className:"spacer"})]}),jsxRuntimeExports.jsx(Consumer,{}),jsxRuntimeExports.jsxs("div",{className:"bottom-controls",children:[jsxRuntimeExports.jsx(MobileStepper,{variant:"dots",steps:st.length,position:"static",activeStep:st.indexOf(this.state.stageFocus),className:"",backButton:null,nextButton:null}),jsxRuntimeExports.jsxs("div",{className:"fab-buttons buttons",children:[jsxRuntimeExports.jsx(Fab,{"aria-label":"Previous view",color:"primary",onClick:()=>this.focusPreviousView(),children:jsxRuntimeExports.jsx(default_1$g,{})}),jsxRuntimeExports.jsx(Fab,{className:classNames("menu-button",{"is-open":this.state.isMenuOpen}),color:"primary","aria-label":"Open drawer",onClick:()=>_e.handleMenuToggle(),children:jsxRuntimeExports.jsx(default_1$i,{})}),jsxRuntimeExports.jsx(Fab,{"aria-label":"Next view",color:"primary",onClick:()=>this.focusNextView(),children:jsxRuntimeExports.jsx(default_1$f,{})})]})]}),jsxRuntimeExports.jsx(Tooltip,{placement:"left",title:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("p",{children:"End the day to save your progress and advance the game."}),jsxRuntimeExports.jsx("p",{children:"(shift + c)"})]}),children:jsxRuntimeExports.jsx(Fab,{"aria-label":"End the day to save your progress and advance the game.",className:"end-day",color:"error",onClick:_e.handleClickEndDayButton,sx:{zIndex:Z_INDEX.END_DAY_BUTTON},children:jsxRuntimeExports.jsx(default_1$h,{})})})]}),et?jsxRuntimeExports.jsx(ChatRoom,{}):null,jsxRuntimeExports.jsx(NotificationSystem$1,{})]})]})})})})}}Wr(Farmhand,"defaultProps",{localforage:localforage.createInstance({name:"farmhand",description:"Persisted game data for Farmhand"}),features:{},match:{path:"",params:{}}});Farmhand.propTypes={features:propTypesExports.object,history:propTypesExports.object,location:propTypesExports.object,match:propTypesExports.object.isRequired};const FarmhandRoute=o=>jsxRuntimeExports.jsx(Farmhand,{...o,features});ReactDOM.render(jsxRuntimeExports.jsx(HashRouter,{hashType:"noslash",children:jsxRuntimeExports.jsx(Route,{path:["/online/:room","/online","/"],component:FarmhandRoute})}),document.getElementById("root"));
982
- //# sourceMappingURL=index-Cq9-4Mu0.js.map
981
+ Kegs that contain wine compound in value at a rate of ${WINE_INTEREST_RATE}% for up to ${integerString(WINE_GROWTH_TIMELINE_CAP)} days and never spoil.`})})})})})]})};CellarInventoryTabPanel.propTypes={currentTab:propTypesExports.number.isRequired,index:propTypesExports.number.isRequired};function getCropsAvailableToFerment(o){return Object.keys(o.items).reduce((s,$)=>{const j=getFinalCropItemFromSeedItem(itemsMap[$]);return j&&Number.isFinite(j.daysToFerment)&&s.push(j),s},[])}const FermentationRecipe=({item:o})=>{const{gameState:{inventory:a,cellarInventory:s,purchasedCellar:$},handlers:{handleMakeFermentationRecipeClick:j}}=reactExports.useContext(FarmhandContext),[_e,et]=reactExports.useState(1),tt=getInventoryQuantityMap(a),rt=FERMENTED_CROP_NAME`${o}`,{space:nt}=PURCHASEABLE_CELLARS.get($)??{space:0};reactExports.useEffect(()=>{et(Math.min(getMaxYieldOfFermentationRecipe(o,a,s,nt),Math.max(1,_e)))},[s,nt,a,o,_e]);const it=_e>0&&cellarService.doesCellarSpaceRemain(s,$),ot=()=>{it&&j(o,_e)},at=getMaxYieldOfFermentationRecipe(o,a,s,nt),st=cellarService.getItemInstancesInCellar(s,o);return jsxRuntimeExports.jsxs(Card,{className:"FermentationRecipe",children:[jsxRuntimeExports.jsx(CardHeader,{title:rt,avatar:jsxRuntimeExports.jsx("img",{src:items[o.id],alt:rt}),subheader:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("p",{children:["Days to ferment: ",o.daysToFerment]}),jsxRuntimeExports.jsxs("p",{children:["Units of ",itemsMap[o.id].name," in inventory:"," ",integerString(tt[o.id]??0)]}),jsxRuntimeExports.jsxs("p",{children:["Units of ",itemsMap.salt.name," required:"," ",getSaltRequirementsForFermentationRecipe(o)," (available:"," ",jsxRuntimeExports.jsx(AnimatedNumber,{number:tt[itemsMap.salt.id]??0,formatter:integerString}),")"]}),jsxRuntimeExports.jsxs("p",{children:["In cellar: ",integerString(st??0)]})]})}),jsxRuntimeExports.jsxs(CardActions,{children:[jsxRuntimeExports.jsx(Button,{className:"make-recipe",color:"primary",disabled:!it||!_e,onClick:ot,variant:"contained",children:"Make"}),jsxRuntimeExports.jsx(QuantityInput,{handleSubmit:ot,handleUpdateNumber:et,maxQuantity:at,setQuantity:et,value:_e})]})]})};FermentationRecipe.propTypes={item:propTypesExports.object.isRequired};const totalFermentableItems=Object.keys(fermentableItemsMap).length,FermentationRecipeList=()=>{const{gameState:{levelEntitlements:o}}=reactExports.useContext(FarmhandContext),a=getCropsAvailableToFerment(o),[s,$]=reactExports.useState(""),j=s.toLowerCase().split(" ").filter(tt=>tt.length>0),_e=a.filter(tt=>{const rt=`${FERMENTED_CROP_NAME}${tt.name}`.toLowerCase();return j.every(nt=>rt.includes(nt)||tt.name.toLowerCase().includes(nt))}),et=_e.length;return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("h3",{children:["Available Fermentation Recipes (",et," /"," ",totalFermentableItems,")"]}),a.length>0&&jsxRuntimeExports.jsx(SearchBar,{placeholder:"Search fermentation recipes...",onSearch:$}),_e.length>0&&jsxRuntimeExports.jsx("ul",{className:"card-list",children:_e.map(tt=>jsxRuntimeExports.jsx("li",{children:jsxRuntimeExports.jsx(FermentationRecipe,{item:tt})},tt.id))})]})};FermentationRecipeList.propTypes={};const FermentationTabPanel=({index:o,currentTab:a})=>jsxRuntimeExports.jsxs(TabPanel,{value:a,index:o,children:[jsxRuntimeExports.jsx(FermentationRecipeList,{}),jsxRuntimeExports.jsx(Divider,{}),jsxRuntimeExports.jsx("ul",{className:"card-list",children:jsxRuntimeExports.jsx("li",{children:jsxRuntimeExports.jsx(Card,{children:jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx(ReactMarkdown$1,{linkTarget:"_blank",className:"markdown",source:"Some items can be fermented and become much more valuable over time."})})})})})]});FermentationTabPanel.propTypes={currentTab:propTypesExports.number.isRequired,index:propTypesExports.number.isRequired};const getGrapesSold=o=>Object.entries(o).reduce((s,[$,j])=>{const _e=itemsMap[$];return(j||0)>0&&isGrape(_e)&&s.push(_e),s},[]);function getWineVarietiesAvailableToMake(o){return getGrapesSold(o).map(({variety:$})=>$)}const WineRecipe=({wineVariety:o})=>{const{gameState:{cellarInventory:a,inventory:s,purchasedCellar:$},handlers:{handleMakeWineClick:j}}=reactExports.useContext(FarmhandContext),[_e,et]=reactExports.useState(1),tt=grapeVarietyNameMap[o],rt=grapeVarietyToGrapeItemMap[o],nt=itemsMap[rt.wineId],{space:it}=PURCHASEABLE_CELLARS.get($)??{space:0},ot=getInventoryQuantityMap(s),at=ot[rt.id]??0,st=ot[yeast$1.id]??0;reactExports.useEffect(()=>{et(Math.min(wineService.getMaxWineYield({grape:rt,inventory:s,cellarInventory:a,cellarSize:it}),Math.max(1,_e)))},[a,it,rt,s,_e,o]);const ut=_e>0&&at>=GRAPES_REQUIRED_FOR_WINE&&cellarService.doesCellarSpaceRemain(a,$),ct=!ut||!_e,ft=cellarService.getItemInstancesInCellar(a,nt),dt=wineService.getMaxWineYield({grape:rt,inventory:s,cellarInventory:a,cellarSize:it}),mt=()=>{ut&&j(rt,_e)};return jsxRuntimeExports.jsxs(Card,{className:"WineRecipe",sx:{position:"relative"},children:[jsxRuntimeExports.jsx(CardHeader,{title:tt,avatar:jsxRuntimeExports.jsx("img",{src:wines[o],alt:tt}),subheader:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("p",{children:["Days to mature: ",integerString(wineService.getDaysToMature(o))]}),jsxRuntimeExports.jsxs("p",{children:["Units of ",rt.name," required:"," ",integerString(GRAPES_REQUIRED_FOR_WINE)," (available:"," ",integerString(at),")"]}),jsxRuntimeExports.jsxs("p",{children:["Units of ",yeast$1.name," required:"," ",integerString(getYeastRequiredForWine(o)*_e)," ","(available: ",integerString(st),")"]}),jsxRuntimeExports.jsxs("p",{children:["In cellar: ",integerString(ft??0)]})]})}),jsxRuntimeExports.jsxs(CardActions,{children:[jsxRuntimeExports.jsx(Button,{color:"primary",variant:"contained",disabled:ct,onClick:mt,children:"Make"}),jsxRuntimeExports.jsx(QuantityInput,{handleSubmit:mt,handleUpdateNumber:et,maxQuantity:dt,setQuantity:et,value:_e})]})]})};WineRecipe.propTypes={wineVariety:propTypesExports.oneOf(Object.keys(grapeVariety))};const totalGrapeVarieties=Object.keys(grapeVariety).length,WineRecipeList=()=>{const{gameState:{itemsSold:o}}=reactExports.useContext(FarmhandContext),a=getWineVarietiesAvailableToMake(o),[s,$]=reactExports.useState(""),j=a.filter(et=>et.toLowerCase().includes(s.toLowerCase())),_e=j.length;return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("h3",{children:["Available Wine Recipes (",_e," /"," ",totalGrapeVarieties,")"]}),a.length>0&&jsxRuntimeExports.jsx(SearchBar,{placeholder:"Search wine varieties...",onSearch:$}),jsxRuntimeExports.jsx("ul",{className:"card-list",children:j.map(et=>jsxRuntimeExports.jsx("li",{children:jsxRuntimeExports.jsx(WineRecipe,{wineVariety:et})},et))})]})},WinemakingTabPanel=({index:o,currentTab:a})=>jsxRuntimeExports.jsxs(TabPanel,{value:a,index:o,children:[jsxRuntimeExports.jsx(WineRecipeList,{}),jsxRuntimeExports.jsx(Divider,{}),jsxRuntimeExports.jsx("ul",{className:"card-list",children:jsxRuntimeExports.jsx("li",{children:jsxRuntimeExports.jsx(Card,{children:jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx(ReactMarkdown$1,{linkTarget:"_blank",className:"markdown",source:"Grapes can be made into wine. Wine becomes very valuable in time and never spoils."})})})})})]});WinemakingTabPanel.propTypes={currentTab:propTypesExports.number.isRequired,index:propTypesExports.number.isRequired};const Cellar=()=>{const[o,a]=reactExports.useState(0);return jsxRuntimeExports.jsxs("div",{className:"Cellar",children:[jsxRuntimeExports.jsxs(Tabs,{value:o,onChange:(s,$)=>a($),"aria-label":"Cellar tabs",children:[jsxRuntimeExports.jsx(Tab,{label:"Cellar Inventory",...a11yProps(0)}),jsxRuntimeExports.jsx(Tab,{label:"Fermentation",...a11yProps(1)}),jsxRuntimeExports.jsx(Tab,{label:"Winemaking",...a11yProps(2)})]}),jsxRuntimeExports.jsx(CellarInventoryTabPanel,{index:0,currentTab:o}),jsxRuntimeExports.jsx(FermentationTabPanel,{index:1,currentTab:o}),jsxRuntimeExports.jsx(WinemakingTabPanel,{index:2,currentTab:o})]})};Cellar.propTypes={};const Stage=({field:o,stageFocus:a,viewTitle:s})=>{const $=reactExports.useRef(null);return reactExports.useEffect(()=>{if($.current){const j=$.current,{style:_e}=j;j.scrollTop=0,_e.overflow="hidden",setTimeout(()=>_e.overflow="",0)}},[a]),jsxRuntimeExports.jsxs("div",{className:classNames("Stage",{"is-october":isOctober(),"is-december":isDecember()}),"data-stage-focus":a,role:"main",ref:$,children:[jsxRuntimeExports.jsx("h2",{className:"view-title",children:s}),a===stageFocusType.HOME&&jsxRuntimeExports.jsx(Consumer$7,{}),a===stageFocusType.FIELD&&jsxRuntimeExports.jsx(Consumer$8,{columns:o[0].length,rows:o.length}),a===stageFocusType.FOREST&&jsxRuntimeExports.jsx(Forest,{}),a===stageFocusType.SHOP&&jsxRuntimeExports.jsx(Consumer$4,{}),a===stageFocusType.COW_PEN&&jsxRuntimeExports.jsx(Consumer$6,{}),a===stageFocusType.WORKSHOP&&jsxRuntimeExports.jsx(Consumer$1,{}),a===stageFocusType.CELLAR&&jsxRuntimeExports.jsx(Cellar,{}),jsxRuntimeExports.jsx("div",{className:"spacer"})]})};Stage.propTypes={field:propTypesExports.arrayOf(propTypesExports.array).isRequired,stageFocus:propTypesExports.string.isRequired,viewTitle:propTypesExports.string.isRequired};function Consumer(o){return jsxRuntimeExports.jsx(FarmhandContext.Consumer,{children:({gameState:a,handlers:s})=>jsxRuntimeExports.jsx(Stage,{...a,...s,...o})})}const snackbarProviderContentCallback=(o,{message:a,onClick:s,severity:$})=>jsxRuntimeExports.jsx(Alert,{elevation:3,key:o,onClick:s,severity:$,style:{cursor:s?"pointer":"default"},children:jsxRuntimeExports.jsx(ReactMarkdown$1,{source:a})}),NotificationSystem=({closeSnackbar:o,enqueueSnackbar:a,latestNotification:s})=>(reactExports.useEffect(()=>{s&&a(s,{autoHideDuration:NOTIFICATION_DURATION,onClose:()=>o(),preventDuplicate:!0})},[o,a,s]),null);NotificationSystem.propTypes={latestNotification:propTypesExports.shape({message:propTypesExports.string.isRequired,onClick:propTypesExports.func,severity:propTypesExports.string.isRequired})};const NotificationSystem$1=withSnackbar(function o(a){return jsxRuntimeExports.jsx(FarmhandContext.Consumer,{children:({gameState:s,handlers:$})=>jsxRuntimeExports.jsx(NotificationSystem,{...s,...$,...a})})}),scriptRel="modulepreload",assetsURL=function(o,a){return new URL(o,a).href},seen={},__vitePreload=function o(a,s,$){let j=Promise.resolve();if(s&&s.length>0){const et=document.getElementsByTagName("link"),tt=document.querySelector("meta[property=csp-nonce]"),rt=(tt==null?void 0:tt.nonce)||(tt==null?void 0:tt.getAttribute("nonce"));j=Promise.allSettled(s.map(nt=>{if(nt=assetsURL(nt,$),nt in seen)return;seen[nt]=!0;const it=nt.endsWith(".css"),ot=it?'[rel="stylesheet"]':"";if(!!$)for(let ut=et.length-1;ut>=0;ut--){const ct=et[ut];if(ct.href===nt&&(!it||ct.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${nt}"]${ot}`))return;const st=document.createElement("link");if(st.rel=it?"stylesheet":scriptRel,it||(st.as="script"),st.crossOrigin="",st.href=nt,rt&&st.setAttribute("nonce",rt),document.head.appendChild(st),it)return new Promise((ut,ct)=>{st.addEventListener("load",ut),st.addEventListener("error",()=>ct(new Error(`Unable to preload CSS for ${nt}`)))})}))}function _e(et){const tt=new Event("vite:preloadError",{cancelable:!0});if(tt.payload=et,window.dispatchEvent(tt),!tt.defaultPrevented)throw et}return j.then(et=>{for(const tt of et||[])tt.status==="rejected"&&_e(tt.reason);return a().catch(_e)})};function registerSW(o={}){const{immediate:a=!1,onNeedRefresh:s,onOfflineReady:$,onRegistered:j,onRegisteredSW:_e,onRegisterError:et}=o;let tt,rt,nt;const it=async(at=!0)=>{await rt,await(nt==null?void 0:nt())};async function ot(){if("serviceWorker"in navigator){if(tt=await __vitePreload(async()=>{const{Workbox:at}=await import("./workbox-window.prod.es5-B9K5rw8f.js");return{Workbox:at}},[],import.meta.url).then(({Workbox:at})=>new at("./service-worker.js",{scope:"./",type:"classic"})).catch(at=>{et==null||et(at)}),!tt)return;nt=async()=>{await(tt==null?void 0:tt.messageSkipWaiting())};{let at=!1;const st=()=>{at=!0,tt==null||tt.addEventListener("controlling",ut=>{ut.isUpdate&&window.location.reload()}),s==null||s()};tt.addEventListener("installed",ut=>{typeof ut.isUpdate>"u"?typeof ut.isExternal<"u"?ut.isExternal?st():!at&&($==null||$()):ut.isExternal?window.location.reload():!at&&($==null||$()):ut.isUpdate||$==null||$()}),tt.addEventListener("waiting",st),tt.addEventListener("externalwaiting",st)}tt.register({immediate:a}).then(at=>{_e?_e("./service-worker.js",at):j==null||j(at)}).catch(at=>{et==null||et(at)})}}return rt=ot(),it}function useRegisterSW(o={}){const{immediate:a=!0,onNeedRefresh:s,onOfflineReady:$,onRegistered:j,onRegisteredSW:_e,onRegisterError:et}=o,[tt,rt]=reactExports.useState(!1),[nt,it]=reactExports.useState(!1),[ot]=reactExports.useState(()=>registerSW({immediate:a,onOfflineReady(){it(!0),$==null||$()},onNeedRefresh(){rt(!0),s==null||s()},onRegistered:j,onRegisteredSW:_e,onRegisterError:et}));return{needRefresh:[tt,rt],offlineReady:[nt,it],updateServiceWorker:ot}}const UpdateNotifier=()=>{const{handlers:{handleGameUpdateAvailable:o}}=reactExports.useContext(FarmhandContext),{needRefresh:[a],updateServiceWorker:s}=useRegisterSW();return reactExports.useEffect(()=>{a&&(o(s),window.addEventListener("beforeunload",()=>{s(!0)}))},[a,o,s]),null},theme=createTheme({palette:{mode:"light"},shape:{},components:{MuiTabs:{styleOverrides:{root:({theme:o})=>({background:"#ffeec6",borderColor:"#9b6d00",borderWidth:2,borderStyle:"solid",borderRadius:`${o.shape.borderRadius}px ${o.shape.borderRadius}px 0 0`})}},MuiInput:{styleOverrides:{root:{margin:"1rem 0"}}}}}),commonFetchConfig={mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer"};async function getData(o="",a={}){const s=new URLSearchParams;return Object.keys(a).forEach(j=>s.append(encodeURIComponent(j),encodeURIComponent(a[j]))),(await fetch(`${o}?${s}`,{...commonFetchConfig,method:"GET"})).json()}async function postData(o="",a={}){return(await fetch(o,{...commonFetchConfig,method:"POST",body:JSON.stringify(a)})).json()}function _interopDefault(o){return o&&typeof o=="object"&&"default"in o?o.default:o}var React=reactExports,React__default=_interopDefault(React);function _defineProperty(o,a,s){return a in o?Object.defineProperty(o,a,{value:s,enumerable:!0,configurable:!0,writable:!0}):o[a]=s,o}function _inheritsLoose(o,a){o.prototype=Object.create(a.prototype),o.prototype.constructor=o,o.__proto__=a}var canUseDOM=!!(typeof window<"u"&&window.document&&window.document.createElement);function withSideEffect(o,a,s){if(typeof o!="function")throw new Error("Expected reducePropsToState to be a function.");if(typeof a!="function")throw new Error("Expected handleStateChangeOnClient to be a function.");if(typeof s<"u"&&typeof s!="function")throw new Error("Expected mapStateOnServer to either be undefined or a function.");function $(j){return j.displayName||j.name||"Component"}return function(_e){if(typeof _e!="function")throw new Error("Expected WrappedComponent to be a React component.");var et=[],tt;function rt(){tt=o(et.map(function(it){return it.props})),nt.canUseDOM?a(tt):s&&(tt=s(tt))}var nt=function(it){_inheritsLoose(ot,it);function ot(){return it.apply(this,arguments)||this}ot.peek=function(){return tt},ot.rewind=function(){if(ot.canUseDOM)throw new Error("You may only call rewind() on the server. Call peek() to read the current state.");var ut=tt;return tt=void 0,et=[],ut};var at=ot.prototype;return at.UNSAFE_componentWillMount=function(){et.push(this),rt()},at.componentDidUpdate=function(){rt()},at.componentWillUnmount=function(){var ut=et.indexOf(this);et.splice(ut,1),rt()},at.render=function(){return React__default.createElement(_e,this.props)},ot}(React.PureComponent);return _defineProperty(nt,"displayName","SideEffect("+$(_e)+")"),_defineProperty(nt,"canUseDOM",canUseDOM),nt}}var lib=withSideEffect;const withSideEffect$1=getDefaultExportFromCjs(lib);var hasElementType=typeof Element<"u",hasMap=typeof Map=="function",hasSet=typeof Set=="function",hasArrayBuffer=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function equal(o,a){if(o===a)return!0;if(o&&a&&typeof o=="object"&&typeof a=="object"){if(o.constructor!==a.constructor)return!1;var s,$,j;if(Array.isArray(o)){if(s=o.length,s!=a.length)return!1;for($=s;$--!==0;)if(!equal(o[$],a[$]))return!1;return!0}var _e;if(hasMap&&o instanceof Map&&a instanceof Map){if(o.size!==a.size)return!1;for(_e=o.entries();!($=_e.next()).done;)if(!a.has($.value[0]))return!1;for(_e=o.entries();!($=_e.next()).done;)if(!equal($.value[1],a.get($.value[0])))return!1;return!0}if(hasSet&&o instanceof Set&&a instanceof Set){if(o.size!==a.size)return!1;for(_e=o.entries();!($=_e.next()).done;)if(!a.has($.value[0]))return!1;return!0}if(hasArrayBuffer&&ArrayBuffer.isView(o)&&ArrayBuffer.isView(a)){if(s=o.length,s!=a.length)return!1;for($=s;$--!==0;)if(o[$]!==a[$])return!1;return!0}if(o.constructor===RegExp)return o.source===a.source&&o.flags===a.flags;if(o.valueOf!==Object.prototype.valueOf&&typeof o.valueOf=="function"&&typeof a.valueOf=="function")return o.valueOf()===a.valueOf();if(o.toString!==Object.prototype.toString&&typeof o.toString=="function"&&typeof a.toString=="function")return o.toString()===a.toString();if(j=Object.keys(o),s=j.length,s!==Object.keys(a).length)return!1;for($=s;$--!==0;)if(!Object.prototype.hasOwnProperty.call(a,j[$]))return!1;if(hasElementType&&o instanceof Element)return!1;for($=s;$--!==0;)if(!((j[$]==="_owner"||j[$]==="__v"||j[$]==="__o")&&o.$$typeof)&&!equal(o[j[$]],a[j[$]]))return!1;return!0}return o!==o&&a!==a}var reactFastCompare=function o(a,s){try{return equal(a,s)}catch($){if(($.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw $}};const isEqual=getDefaultExportFromCjs(reactFastCompare);var define_global_default={},ATTRIBUTE_NAMES={BODY:"bodyAttributes",HTML:"htmlAttributes",TITLE:"titleAttributes"},TAG_NAMES={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title"};Object.keys(TAG_NAMES).map(function(o){return TAG_NAMES[o]});var TAG_PROPERTIES={CHARSET:"charset",CSS_TEXT:"cssText",HREF:"href",HTTPEQUIV:"http-equiv",INNER_HTML:"innerHTML",ITEM_PROP:"itemprop",NAME:"name",PROPERTY:"property",REL:"rel",SRC:"src",TARGET:"target"},REACT_TAG_MAP={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},HELMET_PROPS={DEFAULT_TITLE:"defaultTitle",DEFER:"defer",ENCODE_SPECIAL_CHARACTERS:"encodeSpecialCharacters",ON_CHANGE_CLIENT_STATE:"onChangeClientState",TITLE_TEMPLATE:"titleTemplate"},HTML_TAG_MAP=Object.keys(REACT_TAG_MAP).reduce(function(o,a){return o[REACT_TAG_MAP[a]]=a,o},{}),SELF_CLOSING_TAGS=[TAG_NAMES.NOSCRIPT,TAG_NAMES.SCRIPT,TAG_NAMES.STYLE],HELMET_ATTRIBUTE="data-react-helmet",_typeof=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(o){return typeof o}:function(o){return o&&typeof Symbol=="function"&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},classCallCheck=function(o,a){if(!(o instanceof a))throw new TypeError("Cannot call a class as a function")},createClass=function(){function o(a,s){for(var $=0;$<s.length;$++){var j=s[$];j.enumerable=j.enumerable||!1,j.configurable=!0,"value"in j&&(j.writable=!0),Object.defineProperty(a,j.key,j)}}return function(a,s,$){return s&&o(a.prototype,s),$&&o(a,$),a}}(),_extends=Object.assign||function(o){for(var a=1;a<arguments.length;a++){var s=arguments[a];for(var $ in s)Object.prototype.hasOwnProperty.call(s,$)&&(o[$]=s[$])}return o},inherits=function(o,a){if(typeof a!="function"&&a!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof a);o.prototype=Object.create(a&&a.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),a&&(Object.setPrototypeOf?Object.setPrototypeOf(o,a):o.__proto__=a)},objectWithoutProperties=function(o,a){var s={};for(var $ in o)a.indexOf($)>=0||Object.prototype.hasOwnProperty.call(o,$)&&(s[$]=o[$]);return s},possibleConstructorReturn=function(o,a){if(!o)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return a&&(typeof a=="object"||typeof a=="function")?a:o},encodeSpecialCharacters=function o(a){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return s===!1?String(a):String(a).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")},getTitleFromPropsList=function o(a){var s=getInnermostProperty(a,TAG_NAMES.TITLE),$=getInnermostProperty(a,HELMET_PROPS.TITLE_TEMPLATE);if($&&s)return $.replace(/%s/g,function(){return Array.isArray(s)?s.join(""):s});var j=getInnermostProperty(a,HELMET_PROPS.DEFAULT_TITLE);return s||j||void 0},getOnChangeClientState=function o(a){return getInnermostProperty(a,HELMET_PROPS.ON_CHANGE_CLIENT_STATE)||function(){}},getAttributesFromPropsList=function o(a,s){return s.filter(function($){return typeof $[a]<"u"}).map(function($){return $[a]}).reduce(function($,j){return _extends({},$,j)},{})},getBaseTagFromPropsList=function o(a,s){return s.filter(function($){return typeof $[TAG_NAMES.BASE]<"u"}).map(function($){return $[TAG_NAMES.BASE]}).reverse().reduce(function($,j){if(!$.length)for(var _e=Object.keys(j),et=0;et<_e.length;et++){var tt=_e[et],rt=tt.toLowerCase();if(a.indexOf(rt)!==-1&&j[rt])return $.concat(j)}return $},[])},getTagsFromPropsList=function o(a,s,$){var j={};return $.filter(function(_e){return Array.isArray(_e[a])?!0:(typeof _e[a]<"u"&&warn("Helmet: "+a+' should be of type "Array". Instead found type "'+_typeof(_e[a])+'"'),!1)}).map(function(_e){return _e[a]}).reverse().reduce(function(_e,et){var tt={};et.filter(function(at){for(var st=void 0,ut=Object.keys(at),ct=0;ct<ut.length;ct++){var ft=ut[ct],dt=ft.toLowerCase();s.indexOf(dt)!==-1&&!(st===TAG_PROPERTIES.REL&&at[st].toLowerCase()==="canonical")&&!(dt===TAG_PROPERTIES.REL&&at[dt].toLowerCase()==="stylesheet")&&(st=dt),s.indexOf(ft)!==-1&&(ft===TAG_PROPERTIES.INNER_HTML||ft===TAG_PROPERTIES.CSS_TEXT||ft===TAG_PROPERTIES.ITEM_PROP)&&(st=ft)}if(!st||!at[st])return!1;var mt=at[st].toLowerCase();return j[st]||(j[st]={}),tt[st]||(tt[st]={}),j[st][mt]?!1:(tt[st][mt]=!0,!0)}).reverse().forEach(function(at){return _e.push(at)});for(var rt=Object.keys(tt),nt=0;nt<rt.length;nt++){var it=rt[nt],ot=objectAssign$1({},j[it],tt[it]);j[it]=ot}return _e},[]).reverse()},getInnermostProperty=function o(a,s){for(var $=a.length-1;$>=0;$--){var j=a[$];if(j.hasOwnProperty(s))return j[s]}return null},reducePropsToState=function o(a){return{baseTag:getBaseTagFromPropsList([TAG_PROPERTIES.HREF,TAG_PROPERTIES.TARGET],a),bodyAttributes:getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY,a),defer:getInnermostProperty(a,HELMET_PROPS.DEFER),encode:getInnermostProperty(a,HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),htmlAttributes:getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML,a),linkTags:getTagsFromPropsList(TAG_NAMES.LINK,[TAG_PROPERTIES.REL,TAG_PROPERTIES.HREF],a),metaTags:getTagsFromPropsList(TAG_NAMES.META,[TAG_PROPERTIES.NAME,TAG_PROPERTIES.CHARSET,TAG_PROPERTIES.HTTPEQUIV,TAG_PROPERTIES.PROPERTY,TAG_PROPERTIES.ITEM_PROP],a),noscriptTags:getTagsFromPropsList(TAG_NAMES.NOSCRIPT,[TAG_PROPERTIES.INNER_HTML],a),onChangeClientState:getOnChangeClientState(a),scriptTags:getTagsFromPropsList(TAG_NAMES.SCRIPT,[TAG_PROPERTIES.SRC,TAG_PROPERTIES.INNER_HTML],a),styleTags:getTagsFromPropsList(TAG_NAMES.STYLE,[TAG_PROPERTIES.CSS_TEXT],a),title:getTitleFromPropsList(a),titleAttributes:getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE,a)}},rafPolyfill=function(){var o=Date.now();return function(a){var s=Date.now();s-o>16?(o=s,a(s)):setTimeout(function(){rafPolyfill(a)},0)}}(),cafPolyfill=function o(a){return clearTimeout(a)},requestAnimationFrame$1=typeof window<"u"?window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||rafPolyfill:define_global_default.requestAnimationFrame||rafPolyfill,cancelAnimationFrame$1=typeof window<"u"?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||cafPolyfill:define_global_default.cancelAnimationFrame||cafPolyfill,warn=function o(a){return console&&typeof console.warn=="function"&&console.warn(a)},_helmetCallback=null,handleClientStateChange=function o(a){_helmetCallback&&cancelAnimationFrame$1(_helmetCallback),a.defer?_helmetCallback=requestAnimationFrame$1(function(){commitTagChanges(a,function(){_helmetCallback=null})}):(commitTagChanges(a),_helmetCallback=null)},commitTagChanges=function o(a,s){var $=a.baseTag,j=a.bodyAttributes,_e=a.htmlAttributes,et=a.linkTags,tt=a.metaTags,rt=a.noscriptTags,nt=a.onChangeClientState,it=a.scriptTags,ot=a.styleTags,at=a.title,st=a.titleAttributes;updateAttributes(TAG_NAMES.BODY,j),updateAttributes(TAG_NAMES.HTML,_e),updateTitle(at,st);var ut={baseTag:updateTags(TAG_NAMES.BASE,$),linkTags:updateTags(TAG_NAMES.LINK,et),metaTags:updateTags(TAG_NAMES.META,tt),noscriptTags:updateTags(TAG_NAMES.NOSCRIPT,rt),scriptTags:updateTags(TAG_NAMES.SCRIPT,it),styleTags:updateTags(TAG_NAMES.STYLE,ot)},ct={},ft={};Object.keys(ut).forEach(function(dt){var mt=ut[dt],vt=mt.newTags,yt=mt.oldTags;vt.length&&(ct[dt]=vt),yt.length&&(ft[dt]=ut[dt].oldTags)}),s&&s(),nt(a,ct,ft)},flattenArray=function o(a){return Array.isArray(a)?a.join(""):a},updateTitle=function o(a,s){typeof a<"u"&&document.title!==a&&(document.title=flattenArray(a)),updateAttributes(TAG_NAMES.TITLE,s)},updateAttributes=function o(a,s){var $=document.getElementsByTagName(a)[0];if($){for(var j=$.getAttribute(HELMET_ATTRIBUTE),_e=j?j.split(","):[],et=[].concat(_e),tt=Object.keys(s),rt=0;rt<tt.length;rt++){var nt=tt[rt],it=s[nt]||"";$.getAttribute(nt)!==it&&$.setAttribute(nt,it),_e.indexOf(nt)===-1&&_e.push(nt);var ot=et.indexOf(nt);ot!==-1&&et.splice(ot,1)}for(var at=et.length-1;at>=0;at--)$.removeAttribute(et[at]);_e.length===et.length?$.removeAttribute(HELMET_ATTRIBUTE):$.getAttribute(HELMET_ATTRIBUTE)!==tt.join(",")&&$.setAttribute(HELMET_ATTRIBUTE,tt.join(","))}},updateTags=function o(a,s){var $=document.head||document.querySelector(TAG_NAMES.HEAD),j=$.querySelectorAll(a+"["+HELMET_ATTRIBUTE+"]"),_e=Array.prototype.slice.call(j),et=[],tt=void 0;return s&&s.length&&s.forEach(function(rt){var nt=document.createElement(a);for(var it in rt)if(rt.hasOwnProperty(it))if(it===TAG_PROPERTIES.INNER_HTML)nt.innerHTML=rt.innerHTML;else if(it===TAG_PROPERTIES.CSS_TEXT)nt.styleSheet?nt.styleSheet.cssText=rt.cssText:nt.appendChild(document.createTextNode(rt.cssText));else{var ot=typeof rt[it]>"u"?"":rt[it];nt.setAttribute(it,ot)}nt.setAttribute(HELMET_ATTRIBUTE,"true"),_e.some(function(at,st){return tt=st,nt.isEqualNode(at)})?_e.splice(tt,1):et.push(nt)}),_e.forEach(function(rt){return rt.parentNode.removeChild(rt)}),et.forEach(function(rt){return $.appendChild(rt)}),{oldTags:_e,newTags:et}},generateElementAttributesAsString=function o(a){return Object.keys(a).reduce(function(s,$){var j=typeof a[$]<"u"?$+'="'+a[$]+'"':""+$;return s?s+" "+j:j},"")},generateTitleAsString=function o(a,s,$,j){var _e=generateElementAttributesAsString($),et=flattenArray(s);return _e?"<"+a+" "+HELMET_ATTRIBUTE+'="true" '+_e+">"+encodeSpecialCharacters(et,j)+"</"+a+">":"<"+a+" "+HELMET_ATTRIBUTE+'="true">'+encodeSpecialCharacters(et,j)+"</"+a+">"},generateTagsAsString=function o(a,s,$){return s.reduce(function(j,_e){var et=Object.keys(_e).filter(function(nt){return!(nt===TAG_PROPERTIES.INNER_HTML||nt===TAG_PROPERTIES.CSS_TEXT)}).reduce(function(nt,it){var ot=typeof _e[it]>"u"?it:it+'="'+encodeSpecialCharacters(_e[it],$)+'"';return nt?nt+" "+ot:ot},""),tt=_e.innerHTML||_e.cssText||"",rt=SELF_CLOSING_TAGS.indexOf(a)===-1;return j+"<"+a+" "+HELMET_ATTRIBUTE+'="true" '+et+(rt?"/>":">"+tt+"</"+a+">")},"")},convertElementAttributestoReactProps=function o(a){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Object.keys(a).reduce(function($,j){return $[REACT_TAG_MAP[j]||j]=a[j],$},s)},convertReactPropstoHtmlAttributes=function o(a){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Object.keys(a).reduce(function($,j){return $[HTML_TAG_MAP[j]||j]=a[j],$},s)},generateTitleAsReactComponent=function o(a,s,$){var j,_e=(j={key:s},j[HELMET_ATTRIBUTE]=!0,j),et=convertElementAttributestoReactProps($,_e);return[React$5.createElement(TAG_NAMES.TITLE,et,s)]},generateTagsAsReactComponent=function o(a,s){return s.map(function($,j){var _e,et=(_e={key:j},_e[HELMET_ATTRIBUTE]=!0,_e);return Object.keys($).forEach(function(tt){var rt=REACT_TAG_MAP[tt]||tt;if(rt===TAG_PROPERTIES.INNER_HTML||rt===TAG_PROPERTIES.CSS_TEXT){var nt=$.innerHTML||$.cssText;et.dangerouslySetInnerHTML={__html:nt}}else et[rt]=$[tt]}),React$5.createElement(a,et)})},getMethodsForTag=function o(a,s,$){switch(a){case TAG_NAMES.TITLE:return{toComponent:function(){return generateTitleAsReactComponent(a,s.title,s.titleAttributes)},toString:function(){return generateTitleAsString(a,s.title,s.titleAttributes,$)}};case ATTRIBUTE_NAMES.BODY:case ATTRIBUTE_NAMES.HTML:return{toComponent:function(){return convertElementAttributestoReactProps(s)},toString:function(){return generateElementAttributesAsString(s)}};default:return{toComponent:function(){return generateTagsAsReactComponent(a,s)},toString:function(){return generateTagsAsString(a,s,$)}}}},mapStateOnServer=function o(a){var s=a.baseTag,$=a.bodyAttributes,j=a.encode,_e=a.htmlAttributes,et=a.linkTags,tt=a.metaTags,rt=a.noscriptTags,nt=a.scriptTags,it=a.styleTags,ot=a.title,at=ot===void 0?"":ot,st=a.titleAttributes;return{base:getMethodsForTag(TAG_NAMES.BASE,s,j),bodyAttributes:getMethodsForTag(ATTRIBUTE_NAMES.BODY,$,j),htmlAttributes:getMethodsForTag(ATTRIBUTE_NAMES.HTML,_e,j),link:getMethodsForTag(TAG_NAMES.LINK,et,j),meta:getMethodsForTag(TAG_NAMES.META,tt,j),noscript:getMethodsForTag(TAG_NAMES.NOSCRIPT,rt,j),script:getMethodsForTag(TAG_NAMES.SCRIPT,nt,j),style:getMethodsForTag(TAG_NAMES.STYLE,it,j),title:getMethodsForTag(TAG_NAMES.TITLE,{title:at,titleAttributes:st},j)}},Helmet=function o(a){var s,$;return $=s=function(j){inherits(_e,j);function _e(){return classCallCheck(this,_e),possibleConstructorReturn(this,j.apply(this,arguments))}return _e.prototype.shouldComponentUpdate=function(tt){return!isEqual(this.props,tt)},_e.prototype.mapNestedChildrenToProps=function(tt,rt){if(!rt)return null;switch(tt.type){case TAG_NAMES.SCRIPT:case TAG_NAMES.NOSCRIPT:return{innerHTML:rt};case TAG_NAMES.STYLE:return{cssText:rt}}throw new Error("<"+tt.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")},_e.prototype.flattenArrayTypeChildren=function(tt){var rt,nt=tt.child,it=tt.arrayTypeChildren,ot=tt.newChildProps,at=tt.nestedChildren;return _extends({},it,(rt={},rt[nt.type]=[].concat(it[nt.type]||[],[_extends({},ot,this.mapNestedChildrenToProps(nt,at))]),rt))},_e.prototype.mapObjectTypeChildren=function(tt){var rt,nt,it=tt.child,ot=tt.newProps,at=tt.newChildProps,st=tt.nestedChildren;switch(it.type){case TAG_NAMES.TITLE:return _extends({},ot,(rt={},rt[it.type]=st,rt.titleAttributes=_extends({},at),rt));case TAG_NAMES.BODY:return _extends({},ot,{bodyAttributes:_extends({},at)});case TAG_NAMES.HTML:return _extends({},ot,{htmlAttributes:_extends({},at)})}return _extends({},ot,(nt={},nt[it.type]=_extends({},at),nt))},_e.prototype.mapArrayTypeChildrenToProps=function(tt,rt){var nt=_extends({},rt);return Object.keys(tt).forEach(function(it){var ot;nt=_extends({},nt,(ot={},ot[it]=tt[it],ot))}),nt},_e.prototype.warnOnInvalidChildren=function(tt,rt){return!0},_e.prototype.mapChildrenToProps=function(tt,rt){var nt=this,it={};return React$5.Children.forEach(tt,function(ot){if(!(!ot||!ot.props)){var at=ot.props,st=at.children,ut=objectWithoutProperties(at,["children"]),ct=convertReactPropstoHtmlAttributes(ut);switch(nt.warnOnInvalidChildren(ot,st),ot.type){case TAG_NAMES.LINK:case TAG_NAMES.META:case TAG_NAMES.NOSCRIPT:case TAG_NAMES.SCRIPT:case TAG_NAMES.STYLE:it=nt.flattenArrayTypeChildren({child:ot,arrayTypeChildren:it,newChildProps:ct,nestedChildren:st});break;default:rt=nt.mapObjectTypeChildren({child:ot,newProps:rt,newChildProps:ct,nestedChildren:st});break}}}),rt=this.mapArrayTypeChildrenToProps(it,rt),rt},_e.prototype.render=function(){var tt=this.props,rt=tt.children,nt=objectWithoutProperties(tt,["children"]),it=_extends({},nt);return rt&&(it=this.mapChildrenToProps(rt,it)),React$5.createElement(a,it)},createClass(_e,null,[{key:"canUseDOM",set:function(tt){a.canUseDOM=tt}}]),_e}(React$5.Component),s.propTypes={base:PropTypes$1.object,bodyAttributes:PropTypes$1.object,children:PropTypes$1.oneOfType([PropTypes$1.arrayOf(PropTypes$1.node),PropTypes$1.node]),defaultTitle:PropTypes$1.string,defer:PropTypes$1.bool,encodeSpecialCharacters:PropTypes$1.bool,htmlAttributes:PropTypes$1.object,link:PropTypes$1.arrayOf(PropTypes$1.object),meta:PropTypes$1.arrayOf(PropTypes$1.object),noscript:PropTypes$1.arrayOf(PropTypes$1.object),onChangeClientState:PropTypes$1.func,script:PropTypes$1.arrayOf(PropTypes$1.object),style:PropTypes$1.arrayOf(PropTypes$1.object),title:PropTypes$1.string,titleAttributes:PropTypes$1.object,titleTemplate:PropTypes$1.string},s.defaultProps={defer:!0,encodeSpecialCharacters:!0},s.peek=a.peek,s.rewind=function(){var j=a.rewind();return j||(j=mapStateOnServer({baseTag:[],bodyAttributes:{},htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}})),j},$},NullComponent=function o(){return null},HelmetSideEffects=withSideEffect$1(reducePropsToState,handleClientStateChange,mapStateOnServer)(NullComponent),HelmetExport=Helmet(HelmetSideEffects);HelmetExport.renderStatic=HelmetExport.rewind;const chitchatterDomain="https://chitchatter.im",ChatRoom=()=>{const o="chat-title",a="chat-content",{handlers:{handleChatRoomOpenStateChange:s},gameState:{playerId:$,isChatOpen:j,room:_e}}=reactExports.useContext(FarmhandContext),et=()=>{s(!1)},tt=jsxRuntimeExports.jsx("chat-room",{"root-url":chitchatterDomain,room:`__farmhand__${_e}`,"user-id":$,style:{height:"100%",width:"100%",border:"none"},"color-mode":"light"});return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(HelmetExport,{children:jsxRuntimeExports.jsx("script",{src:`${chitchatterDomain}/sdk.js`})}),jsxRuntimeExports.jsxs(Dialog,{className:classNames("Farmhand","ChatRoom"),fullWidth:!0,keepMounted:!0,fullScreen:!0,open:j,onClose:et,"aria-describedby":o,"aria-labelledby":a,children:[jsxRuntimeExports.jsx(DialogTitle,{id:o,children:"Chat room"}),jsxRuntimeExports.jsx(DialogContent,{id:a,children:tt}),jsxRuntimeExports.jsx(DialogActions,{children:jsxRuntimeExports.jsx(Button,{onClick:et,color:"primary",autoFocus:!0,children:"Close"})})]})]})},itemIds=Object.keys(itemsMap),getInventoryQuantities=o=>{const a={};for(const s of itemIds)a[s]=0;for(const{id:s,quantity:$}of o)a[s]=$;return a};class FarmhandReducers extends reactExports.Component{addCowToInventory(){throw new Error("Unimplemented")}addPeer(){throw new Error("Unimplemented")}adjustLoan(){throw new Error("Unimplemented")}changeCowAutomaticHugState(){throw new Error("Unimplemented")}changeCowBreedingPenResident(){throw new Error("Unimplemented")}changeCowName(){throw new Error("Unimplemented")}clearPlot(){throw new Error("Unimplemented")}computeStateForNextDay(){throw new Error("Unimplemented")}fertilizePlot(){throw new Error("Unimplemented")}forRange(){throw new Error("Unimplemented")}harvestPlot(){throw new Error("Unimplemented")}hugCow(){throw new Error("Unimplemented")}makeRecipe(){throw new Error("Unimplemented")}makeFermentationRecipe(){throw new Error("Unimplemented")}makeWine(){throw new Error("Unimplemented")}modifyCow(){throw new Error("Unimplemented")}offerCow(){throw new Error("Unimplemented")}plantInPlot(){throw new Error("Unimplemented")}prependPendingPeerMessage(){throw new Error("Unimplemented")}purchaseCombine(){throw new Error("Unimplemented")}purchaseComposter(){throw new Error("Unimplemented")}purchaseCow(){throw new Error("Unimplemented")}purchaseCowPen(){throw new Error("Unimplemented")}purchaseCellar(){throw new Error("Unimplemented")}purchaseField(){throw new Error("Unimplemented")}purchaseForest(){throw new Error("Unimplemented")}purchaseItem(){throw new Error("Unimplemented")}purchaseSmelter(){throw new Error("Unimplemented")}purchaseStorageExpansion(){throw new Error("Unimplemented")}removeCowFromInventory(){throw new Error("Unimplemented")}removeKegFromCellar(){throw new Error("Unimplemented")}removePeer(){throw new Error("Unimplemented")}selectCow(){throw new Error("Unimplemented")}sellCow(){throw new Error("Unimplemented")}sellItem(){throw new Error("Unimplemented")}sellKeg(){throw new Error("Unimplemented")}setScarecrow(){throw new Error("Unimplemented")}setSprinkler(){throw new Error("Unimplemented")}showNotification(){throw new Error("Unimplemented")}updatePeer(){throw new Error("Unimplemented")}upgradeTool(){throw new Error("Unimplemented")}waterAllPlots(){throw new Error("Unimplemented")}waterField(){throw new Error("Unimplemented")}waterPlot(){throw new Error("Unimplemented")}withdrawCow(){throw new Error("Unimplemented")}constructor(a){super(a);const s=Object.getOwnPropertyNames(FarmhandReducers.prototype).filter($=>$!=="constructor");for(const $ of s){const j=reducers[$];this[$]=(..._e)=>{this.setState(et=>j(et,..._e))}}}}const{CLEANUP,HARVEST,MINE,OBSERVE,WATER,PLANT}=fieldMode,emptyObject=Object.freeze({}),computePlayerInventory=memoize((o,a)=>o.map(({quantity:s,id:$})=>({quantity:s,...itemsMap[$],value:getItemCurrentValue(itemsMap[$],a)}))),getFieldToolInventory=memoize(o=>o.filter(({id:a})=>{const{enablesFieldMode:s}=itemsMap[a];return typeof s=="string"&&s!==PLANT}).map(({id:a,quantity:s})=>({...itemsMap[a],quantity:s}))),getPlantableCropInventory=memoize(o=>o.filter(({id:a})=>itemsMap[a].isPlantableCrop).map(({id:a,quantity:s})=>({...itemsMap[a],quantity:s}))),applyPriceEvents=(o,a,s)=>{const $={...o};return Object.keys(a).forEach(j=>{$[j]=.5}),Object.keys(s).forEach(j=>{$[j]=1.5}),$};class Farmhand extends FarmhandReducers{constructor(s){super(s);Wr(this,"state",this.createInitialState());Wr(this,"handlers",{...eventHandlers,debounced:{...eventHandlers}});Wr(this,"keyMap",{});Wr(this,"keyHandlers",{});Wr(this,"getData",getData);Wr(this,"postData",postData);Wr(this,"handleCowTradeTimeout",()=>{typeof this.state.cowTradeTimeoutId=="number"&&(this.showNotification(REQUESTED_COW_TRADE_UNAVAILABLE,"error"),this.setState({cowTradeTimeoutId:null,isAwaitingCowTradeRequest:!1}),console.error("Cow trade request timed out"))});this.initInputHandlers(),window$1.farmhand=this}get viewTitle(){return STAGE_TITLE_MAP[this.state.stageFocus]}get fieldToolInventory(){return getFieldToolInventory(this.state.inventory)}get playerInventory(){const{inventory:s,valueAdjustments:$}=this.state;return computePlayerInventory(s,$)}get plantableCropInventory(){return getPlantableCropInventory(this.state.inventory)}get viewList(){const{CELLAR:s,COW_PEN:$,HOME:j,WORKSHOP:_e,FOREST:et}=stageFocusType,tt=[...STANDARD_VIEW_LIST];return this.state.showHomeScreen&&tt.unshift(j),this.isForestUnlocked&&features.FOREST&&tt.push(et),this.state.purchasedCowPen&&tt.push($),tt.push(_e),this.state.purchasedCellar&&tt.push(s),tt}get levelEntitlements(){return getLevelEntitlements(levelAchieved(this.state.experience))}get shopInventory(){return getAvailableShopInventory(this.levelEntitlements)}get peerMetadata(){return getPeerMetadata(this.state)}get isInputBlocked(){return this.state.isAwaitingNetworkRequest||this.state.isAwaitingCowTradeRequest||this.state.isWaitingForDayToCompleteIncrementing}get isChatAvailable(){const{isOnline:s,room:$}=this.state;return s&&$!==DEFAULT_ROOM}get isForestUnlocked(){return this.levelEntitlements.stageFocusType[stageFocusType.FOREST]}createInitialState(){return{activePlayers:null,allowCustomPeerCowNames:!1,cellarInventory:[],currentDialogView:dialogView.NONE,completedAchievements:{},cowForSale:generateCow(),cowBreedingPen:{cowId1:null,cowId2:null,daysUntilBirth:-1},cowColorsPurchased:{},cowIdOfferedForTrade:"",cowInventory:[],cowsSold:{},cowsTraded:0,cowTradeTimeoutId:-1,cropsHarvested:{},dayCount:0,experience:0,farmName:"Unnamed",field:createNewField(),fieldMode:OBSERVE,forest:createNewForest(),getCowAccept:noop,getCowReject:noop,getCowTradeRequest:noop,getPeerMetadata:noop,hasBooted:!1,heartbeatTimeoutId:null,historicalDailyLosses:[],historicalDailyRevenue:[],historicalValueAdjustments:[],hoveredPlotRangeSize:0,playerId:uuid_1.v4(),inventory:[{id:scarecrow$1.id,quantity:1}],inventoryLimit:INITIAL_STORAGE_LIMIT,isAwaitingCowTradeRequest:!1,isAwaitingNetworkRequest:!1,isCombineEnabled:!1,isMenuOpen:!doesMenuObstructStage(),itemsSold:{},cellarItemsSold:{},isChatOpen:!1,isDialogViewOpen:!1,isOnline:this.props.match.path.startsWith("/online"),isWaitingForDayToCompleteIncrementing:!1,learnedRecipes:{},loanBalance:STANDARD_LOAN_AMOUNT,loansTakenOut:1,money:STANDARD_LOAN_AMOUNT,latestNotification:null,newDayNotifications:[],notificationLog:[],peers:{},peerRoom:null,pendingPeerMessages:[],latestPeerMessages:[],sendPeerMetadata:null,selectedCowId:"",selectedItemId:"",priceCrashes:{},priceSurges:{},profitabilityStreak:0,record7dayProfitAverage:0,recordProfitabilityStreak:0,recordSingleDayProfit:0,revenue:0,redirect:"",room:decodeURIComponent(this.props.match.params.room||DEFAULT_ROOM),sendCowAccept:noop,sendCowReject:noop,purchasedCombine:0,purchasedComposter:0,purchasedCowPen:0,purchasedCellar:0,purchasedField:0,purchasedForest:0,purchasedSmelter:0,sendCowTradeRequest:noop,showHomeScreen:!0,showNotifications:!0,stageFocus:stageFocusType.HOME,todaysNotifications:[],todaysLosses:0,todaysPurchases:{},todaysRevenue:0,todaysStartingInventory:{},toolLevels:{[toolType.HOE]:toolLevel.DEFAULT,[toolType.SCYTHE]:toolLevel.DEFAULT,[toolType.SHOVEL]:toolLevel.UNAVAILABLE,[toolType.WATERING_CAN]:toolLevel.DEFAULT},useAlternateEndDayButtonPosition:!1,valueAdjustments:{},version:"1.19.3"}}async initializeNewGame(){await this.incrementDay(!0),this.setState(()=>({historicalValueAdjustments:[]})),this.showNotification(LOAN_INCREASED("",STANDARD_LOAN_AMOUNT),"info")}initInputHandlers(){Object.keys(eventHandlers).forEach($=>{this.handlers[$]=eventHandlers[$].bind(this),this.handlers.debounced[$]=debounce$2(this.handlers[$],50)}),this.keyMap={incrementDay:"shift+c",nextView:"right",openAccounting:"b",openAchievements:"a",openLog:"l",openPriceEvents:"e",openStats:"s",openSettings:",",openKeybindings:"shift+?",previousView:"left",toggleMenu:"m"},this.keyHandlers={incrementDay:()=>this.incrementDay(),nextView:this.focusNextView.bind(this),openAccounting:()=>this.openDialogView(dialogView.ACCOUNTING),openAchievements:()=>this.openDialogView(dialogView.ACHIEVEMENTS),openLog:()=>this.openDialogView(dialogView.FARMERS_LOG),openPriceEvents:()=>this.openDialogView(dialogView.PRICE_EVENTS),openStats:()=>this.openDialogView(dialogView.STATS),openSettings:()=>this.openDialogView(dialogView.SETTINGS),openKeybindings:()=>this.openDialogView(dialogView.KEYBINDINGS),previousView:this.focusPreviousView.bind(this),selectHoe:()=>this.handlers.handleFieldModeSelect(CLEANUP),selectScythe:()=>this.handlers.handleFieldModeSelect(HARVEST),selectWateringCan:()=>this.handlers.handleFieldModeSelect(WATER),selectShovel:()=>{this.state.toolLevels[toolType.SHOVEL]!==toolLevel.UNAVAILABLE&&this.handlers.handleFieldModeSelect(MINE)},toggleMenu:()=>this.handlers.handleMenuToggle()},nullArray(9).forEach(($,j)=>{const _e=j+1,et=`numberKey${_e}`;this.keyMap[et]=String(_e),this.keyHandlers[et]=()=>{const tt=this.viewList[j];typeof tt=="string"&&this.setState({stageFocus:stageFocusType[tt]})}}),Object.assign(this.keyHandlers,{clearPersistedData:()=>this.clearPersistedData(),waterAllPlots:()=>this.waterAllPlots()})}async componentDidMount(){const s=await this.props.localforage.getItem("state");if(s){const $=transformStateDataForImport({...this.createInitialState(),...s}),{isCombineEnabled:j,newDayNotifications:_e}=$;this.setState({...$,newDayNotifications:[]},()=>{_e.forEach(({message:et,severity:tt})=>{setTimeout(()=>this.showNotification(et,tt),0),j&&this.forRange(harvestPlot,1/0,0,0)})})}else await this.initializeNewGame();this.syncToRoom(),this.setState({hasBooted:!0})}componentDidUpdate(s,$){var dt,mt;const{hasBooted:j,heartbeatTimeoutId:_e,isMenuOpen:et,isOnline:tt,money:rt,peerRoom:nt,room:it,stageFocus:ot}=this.state;if(!j)return;const{match:{path:at,params:{room:st=it}}}=this.props,ut=decodeURIComponent(st),ct=at.startsWith("/online");(ct!==this.state.isOnline||ut!==it)&&this.setState(()=>({isOnline:ct,redirect:"",room:ut})),(tt!==$.isOnline||it!==$.room)&&(ct&&this.syncToRoom(),!tt&&typeof _e=="number"&&(clearTimeout(_e),this.setState({activePlayers:null,heartbeatTimeoutId:null,peerRoom:null}))),tt===!1&&$.isOnline===!0&&this.showNotification(DISCONNECTED_FROM_SERVER,"info");const ft=updateAchievements(this.state,$);if(ft!==this.state&&this.setState(()=>ft),this.state.stageFocus===stageFocusType.COW_PEN&&$.stageFocus!==stageFocusType.COW_PEN&&this.setState(()=>({selectedCowId:""})),ot!==$.stageFocus&&et&&this.setState(()=>({isMenuOpen:!doesMenuObstructStage()})),rt<$.money&&this.setState(({todaysLosses:vt})=>({todaysLosses:moneyTotal(vt,rt-$.money)})),nt!==$.peerRoom)if(nt){nt.onPeerJoin(Dt=>{this.addPeer(Dt)}),nt.onPeerLeave(Dt=>{this.removePeer(Dt)});const[vt,yt]=nt.makeAction("peerMetadata");yt((...Dt)=>handlePeerMetadataRequest(this,...Dt));const[pt,ht]=nt.makeAction("cowTrade");ht((...Dt)=>handleCowTradeRequest(this,...Dt));const[At,St]=nt.makeAction("cowAccept");St((...Dt)=>handleCowTradeRequestAccept(this,...Dt));const[Ct,Mt]=nt.makeAction("cowReject");Mt((...Dt)=>handleCowTradeRequestReject(this,...Dt)),this.setState({getCowAccept:St,getCowReject:Mt,getCowTradeRequest:ht,getPeerMetadata:yt,pendingPeerMessages:[],sendCowAccept:At,sendCowReject:Ct,sendCowTradeRequest:pt,sendPeerMetadata:this.wrapSendPeerMetadata(vt)}),vt(this.peerMetadata)}else $.peerRoom.leave(),this.setState({peers:{},sendPeerMetadata:null});["showInventoryFullNotifications","showRecipeLearnedNotifications"].forEach(vt=>this[vt]($)),(mt=(dt=this.state).sendPeerMetadata)==null||mt.call(dt,this.peerMetadata)}wrapSendPeerMetadata(s){return throttle$1((...$)=>{s(...$),this.setState(()=>({pendingPeerMessages:[]}))},5e3,{trailing:!0})}tradeForPeerCow(s){this.setState($=>{const{cowIdOfferedForTrade:j,cowInventory:_e,peers:et,sendCowTradeRequest:tt}=$;if(!tt)return null;const{ownerId:rt}=s,[nt]=Object.entries(et).find(([,st])=>(st==null?void 0:st.playerId)===rt)??[];if(!nt)return console.error(`Owner not found for cow ${JSON.stringify(s)}`),null;if(_e.find(({id:st})=>st===s.id))return console.error(`Cow ID ${s.id} is already in inventory`),showNotification($,COW_ALREADY_OWNED,"error");const ot=_e.find(({id:st})=>st===j);if(!ot)return console.error(`Cow ID ${j} not found`),null;const at=setTimeout(this.handleCowTradeTimeout,COW_TRADE_TIMEOUT);return tt({cowOffered:{...ot,isUsingHuggingMachine:!1},cowRequested:s},nt),{cowTradeTimeoutId:at,isAwaitingCowTradeRequest:!0}},noop)}async clearPersistedData(){await this.props.localforage.clear(),this.showNotification(DATA_DELETED)}async syncToRoom(){var et;const{isOnline:s,priceCrashes:$,priceSurges:j,room:_e}=this.state;if(s){this.showNotification(CONNECTING_TO_SERVER,"info");try{this.setState({isAwaitingNetworkRequest:!0,peers:{}}),(et=this.state.peerRoom)==null||et.leave();const{valueAdjustments:tt}=await getData(endpoints.getMarketData,{farmId:this.state.playerId,room:_e});this.scheduleHeartbeat(),this.setState({activePlayers:1,peerRoom:joinRoom({appId:"@jeremyckahn/farmhand",relayUrls,relayRedundancy:4,rtcConfig},_e),valueAdjustments:applyPriceEvents(tt,$,j)}),this.showNotification(CONNECTED_TO_ROOM("",_e),"success")}catch(tt){this.showNotification(SERVER_ERROR,"error"),console.error(tt),this.setState(()=>({redirect:"/",cowIdOfferedForTrade:""}))}this.setState({isAwaitingNetworkRequest:!1,isAwaitingCowTradeRequest:!1})}}scheduleHeartbeat(){const{heartbeatTimeoutId:s}=this.state;clearTimeout(s??-1),this.setState(()=>({heartbeatTimeoutId:setTimeout(async()=>{this.setState(({money:$,activePlayers:j})=>({activePlayers:j,money:moneyTotal($,j)})),this.scheduleHeartbeat()},HEARTBEAT_INTERVAL_PERIOD)}))}showInventoryFullNotifications(s){inventorySpaceRemaining(s)>0&&inventorySpaceRemaining(this.state)<=0&&this.showNotification(INVENTORY_FULL_NOTIFICATION,"warning")}showRecipeLearnedNotifications({learnedRecipes:s}){let $=[];Object.keys(this.state.learnedRecipes).forEach(j=>{s.hasOwnProperty(j)||$.push(recipesMap[j])}),$.length>1?this.showNotification(RECIPES_LEARNED("",$)):$.length===1&&this.showNotification(RECIPE_LEARNED("",$[0]))}persistState(s={}){return this.props.localforage.setItem("state",reduceByPersistedKeys({...this.state,...s}))}async updateServerForNextDay(){const s=[];let $=null;this.setState(()=>({isAwaitingNetworkRequest:!0}));let j;if(this.state.isOnline){const{inventory:_e,room:et,todaysPurchases:tt,todaysStartingInventory:rt}=this.state,nt=computeMarketPositions(rt,tt,_e);try{j=(await postData(endpoints.postDayResults,{positions:nt,room:et})).valueAdjustments,Object.keys(nt).length&&(s.push({message:POSITIONS_POSTED_NOTIFICATION("","You",nt),severity:"info"}),$=POSITIONS_POSTED_NOTIFICATION("","",nt))}catch(it){s.push({message:SERVER_ERROR,severity:"error"}),this.setState(()=>({redirect:"/",cowIdOfferedForTrade:"",isAwaitingNetworkRequest:!1})),console.error(it)}}return{broadcastedPositionMessage:$,serverMessages:s,serverValueAdjustments:j}}async incrementDay(s=!1){const{broadcastedPositionMessage:$,serverMessages:j,serverValueAdjustments:_e}=await this.updateServerForNextDay();let et=[];this.setState(tt=>{const rt=computeStateForNextDay(tt,s);return et=[...j,...rt.newDayNotifications],rt.valueAdjustments=applyPriceEvents(_e??rt.valueAdjustments,rt.priceCrashes,rt.priceSurges),rt.isAwaitingNetworkRequest=!1,{...rt,isWaitingForDayToCompleteIncrementing:!0,newDayNotifications:[],todaysNotifications:[]}},async()=>{try{await this.persistState({newDayNotifications:et}),[...et].concat(s?[]:[{message:PROGRESS_SAVED_MESSAGE,severity:"info"}]).forEach(({message:rt,severity:nt})=>this.showNotification(rt,nt)),this.state.isCombineEnabled&&(this.state.stageFocus===stageFocusType.FIELD&&await sleep(1e3),this.forRange(harvestPlot,1/0,0,0))}catch(tt){console.error(tt),this.showNotification(JSON.stringify(tt),"error")}finally{this.setState(()=>({isWaitingForDayToCompleteIncrementing:!1})),$&&this.messagePeers($)}})}openDialogView(s){this.setState({currentDialogView:s,isDialogViewOpen:!0})}closeDialogView(){this.setState({isDialogViewOpen:!1})}focusNextView(){var $;if((($=document.activeElement)==null?void 0:$.getAttribute("role"))==="tab")return;const{viewList:s}=this;this.setState(({stageFocus:j})=>{const _e=s.indexOf(j);return{stageFocus:s[(_e+1)%s.length]}})}focusPreviousView(){var $;if((($=document.activeElement)==null?void 0:$.getAttribute("role"))==="tab")return;const{viewList:s}=this;this.setState(({stageFocus:j})=>{const _e=s.indexOf(j);return{stageFocus:s[_e===0?s.length-1:(_e-1)%s.length]}})}messagePeers(s,$){this.prependPendingPeerMessage(s,$)}render(){const{props:{features:s},state:{redirect:$},fieldToolInventory:j,handlers:_e,isChatAvailable:et,keyHandlers:tt,keyMap:rt,levelEntitlements:nt,plantableCropInventory:it,playerInventory:ot,shopInventory:at,viewList:st,viewTitle:ut}=this,ct=this.isInputBlocked,ft={...this.state,blockInput:ct,features:s,fieldToolInventory:j,isChatAvailable:et,levelEntitlements:nt,plantableCropInventory:it,playerInventory:ot,playerInventoryQuantities:getInventoryQuantities(this.state.inventory),shopInventory:at,viewList:st,viewTitle:ut};return jsxRuntimeExports.jsx(index_esExports.GlobalHotKeys,{allowChanges:!0,keyMap:ct?emptyObject:rt,handlers:ct?emptyObject:tt,children:jsxRuntimeExports.jsx(StyledEngineProvider,{injectFirst:!0,children:jsxRuntimeExports.jsx(ThemeProvider,{theme,children:jsxRuntimeExports.jsxs(SnackbarProvider,{anchorOrigin:{vertical:"top",horizontal:"right"},classes:{containerRoot:"Farmhand notification-container"},content:snackbarProviderContentCallback,maxSnack:4,children:[$&&jsxRuntimeExports.jsx(Redirect,{to:$}),jsxRuntimeExports.jsxs(FarmhandContext.Provider,{value:{gameState:ft,handlers:_e},children:[jsxRuntimeExports.jsxs("div",{className:classNames("Farmhand farmhand-root fill",this.state.isMenuOpen?"menu-open":"menu-closed",{"use-alternate-end-day-button-position":this.state.useAlternateEndDayButtonPosition,"block-input":ct,"has-booted":this.state.hasBooted}),children:[jsxRuntimeExports.jsx(UpdateNotifier,{}),jsxRuntimeExports.jsx(Consumer$r,{}),jsxRuntimeExports.jsxs(Drawer,{className:"sidebar-wrapper",open:ft.isMenuOpen,variant:"persistent",role:"complementary",PaperProps:{className:"sidebar"},children:[jsxRuntimeExports.jsx(Consumer$f,{}),jsxRuntimeExports.jsx(Consumer$c,{}),jsxRuntimeExports.jsx("div",{className:"spacer"})]}),jsxRuntimeExports.jsx(Consumer,{}),jsxRuntimeExports.jsxs("div",{className:"bottom-controls",children:[jsxRuntimeExports.jsx(MobileStepper,{variant:"dots",steps:st.length,position:"static",activeStep:st.indexOf(this.state.stageFocus),className:"",backButton:null,nextButton:null}),jsxRuntimeExports.jsxs("div",{className:"fab-buttons buttons",children:[jsxRuntimeExports.jsx(Fab,{"aria-label":"Previous view",color:"primary",onClick:()=>this.focusPreviousView(),children:jsxRuntimeExports.jsx(default_1$g,{})}),jsxRuntimeExports.jsx(Fab,{className:classNames("menu-button",{"is-open":this.state.isMenuOpen}),color:"primary","aria-label":"Open drawer",onClick:()=>_e.handleMenuToggle(),children:jsxRuntimeExports.jsx(default_1$i,{})}),jsxRuntimeExports.jsx(Fab,{"aria-label":"Next view",color:"primary",onClick:()=>this.focusNextView(),children:jsxRuntimeExports.jsx(default_1$f,{})})]})]}),jsxRuntimeExports.jsx(Tooltip,{placement:"left",title:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("p",{children:"End the day to save your progress and advance the game."}),jsxRuntimeExports.jsx("p",{children:"(shift + c)"})]}),children:jsxRuntimeExports.jsx(Fab,{"aria-label":"End the day to save your progress and advance the game.",className:"end-day",color:"error",onClick:_e.handleClickEndDayButton,sx:{zIndex:Z_INDEX.END_DAY_BUTTON},children:jsxRuntimeExports.jsx(default_1$h,{})})})]}),et?jsxRuntimeExports.jsx(ChatRoom,{}):null,jsxRuntimeExports.jsx(NotificationSystem$1,{})]})]})})})})}}Wr(Farmhand,"defaultProps",{localforage:localforage.createInstance({name:"farmhand",description:"Persisted game data for Farmhand"}),features:{},match:{path:"",params:{}}});Farmhand.propTypes={features:propTypesExports.object,history:propTypesExports.object,location:propTypesExports.object,match:propTypesExports.object.isRequired};const FarmhandRoute=o=>jsxRuntimeExports.jsx(Farmhand,{...o,features});ReactDOM.render(jsxRuntimeExports.jsx(HashRouter,{hashType:"noslash",children:jsxRuntimeExports.jsx(Route,{path:["/online/:room","/online","/"],component:FarmhandRoute})}),document.getElementById("root"));
982
+ //# sourceMappingURL=index-CM3J6PBy.js.map