// A Craft-Crypo Token
// craft-crypto.com
// 
//
/*
Forming an idea.........
!!
I got it!    

...........OM8MM:............................MI......:~..M?.....................
..........+N:....OM.........................M$:..ZD..~=MMMMM....................
.........$O.......MMO:..................NMMMZ:.ND:MMMMN8DM+.....................
........:M:..........$8...............:M....:DMMMN.:~DMMM:.:M...................
........:M:..........:8+.............:M:.=:...NM7.OM:..::....D:.................
.........:M......:Z$~.IZM............=I=Z::.N:=M8D.ZM+....~8D~M.................
...........MO::~M~::.M8.D?...........M:M.:MMO..M~OD:........:.8?................
.........:7MM=.MOZOM:.M=D=...........M+8:M:.~MDMM:::IDDZ~:......................
.........MMMN7MMMMO:.M.M~...........~O=8N+..M:.M?M~:.....+M.....................
........M...:M:...:M$M7M............+O=8M..I?.MM7OMN88MM:..M~...................
.......???M8D+.:DMMOMM:M...=+.......:N=MM:.M::MMM.:+++:.:M:.M:..................
..:OMDMMZ:..M:::....M+I:M.:.M.......:M:MM::M:MMM88::....N7D+M...................
.:M:......:??M=.....M:..M:.O7:.......D.MO.?8:M?M:........:MMM:..................
.=O:.........:M:..~M+...I8.:.........+7MZ+Z+Z+N+..........~MM...................
.=OM....:DD+..=M~~:.....:M............N::..~..I8...........=....................
.:MM..:M7...M~.=M:......I8.....:~NN$~:.........=Z...............................
..8M+M7:M:...O::M:.....~M...:8M~................I8..............................
.........~MN?IDM:....MZ:N:.M:....................?Z.............................
.........Z~....M:.......~M$:......................N~............................
........:O..+:.:M:.....:M.................7:.:+....M.::.........................
........8~:.M:..N+....:M...................I78=...+$D:.~7~......................
........:$87+M:7M.....O=...................:MMM+..~NM::+:...+:..................
............M.:.......M:...................+MM:.....D~...MZ:..=M~...............
.:MNDM.ZO=:.M...+::MM:M....................~..O:....D~..DZ......?M:.............
.M...OMZ.:M.M::8O78:+MZ.............................N~..M:.......:M.............
:M+...:=..+777M8.::.................................M..:M.........:M............
.M........O~N:.....................................:N..~M..........M~...........
.M::......:MM......................................M~...M..........M:...........
.=M:.......ZM......................................M....87.........M:...........
..M:.......MM....................................:N:.....OI.......M.............
.::ON=.....M......:..............................Z~.......:8MO8MM:..............
......~M.........8:.............................D~..............................
........D?......:M.............................M:............:+MMM?:............
..........M$:..:MNI:........................:ZZ:.........7NNNM....:DZ...........
............=$$::..DM~....................?MM.........D8.....Z$.....:M:.........
.........:=N:.......M:..............:..=MD..M:......:M:......:M......=M:........
..........?8:.......D=......:=MMMMMMMM+:....M:..ND.:M.........NO......M7IM:.....
.....................M.......M:.......7M$~.M~.:7N+.NI.........OO......M8...M....
.....................:M....I$............:M..:8....M:.........M?.....:M~.:M~M~..
................=+::..MZMMZ:..............M=.M::+8MM=.......:~M.....:N7~+MM:.N:.
..............DN..7M:N~?O..............:M~..M:.....IM:.:.....MMM+::DM+++:....~M.
.............~MN$N8:7I:M:::............M.:M$Z+.......~MM:::~MNMMMN.:....:M:..7:.
............M=.~...~~..I777M+:.........:7:..MZ....:NI...IM$..................M:.
............+MDOMD=.:.~MN..=M:..............:M:...M:M.......................M:..
..........................=:..................Z8..:=$...........:M........8?:...
...............................................IM8...............8:....??D......
.................................................:N~:.:.........~:::7MM::.......
....................................................:..+?8+DDMNOZ=N8::..........       
                                                                                 
HENFRUIT!
*/

//Putting pen to paper
pragma solidity ^0.4.10;

//gathering ingedients
contract Henfruit {
    /*
................................................................................
...............................,....................................NDOO88M.....
...............................M,................................O8888888NM.....
...............................ZOMM............................MMO888DMMMM......
................................MO88MZ:......................NMO88ODMMMM$.......
................................+DO88OODMM$=...............MMNO88OMMMMM.........
.............................MZ$MMMO888888O8OOONMM:....:MMMDO8888MMMM+..........
.......................,,D8$ZZZZZZZM8888888888888888OD88888888OMMMMI............
......................:N$ZZZZZZZZZ$ZMMO88888888888888O88888888MMMM:.............
....................$ZZZZZZZZZZZZZZ$ZDMMO888888D8888888888888NMMM:..............
..................O8ZZZZZZZZZZZZZZZZZZZMMMD8DN888888888888ONMMMN=...............
................M$ZZZZZZZZZZZZZZZZZZZZZOMMMD8O8888888888888ODMM.................
...............7OZZZZZZZZ$ZZZZZZZZZZZZZZMMM888888888888888O88M~.................
................=ZDMMND8ZZZ$$ZZZZZZZZOONMM8888888888888888888D?.................
..............:M$777MMN777NMMMMMMM$ZZZZZ8MOO8888888888888O888DM.................
.............877I777DI7777I7MMMMMOZZZZZZNDNNDD88888888O8ND888MM,................
...........+7777777$I77777777MMMZ$ZZZZZZZ$Z$Z$DMMMMMMMD88888NMM$................
..........N7$77777OOI7I7777777MMZZZZZZZZZZZ$ZZ$$MMM888O8888MMMMM................
........,7NZ$$7I$7D77777777777MOZZZZZZZZZZZZZZZZNMM8888O88MDO88M?...............
.........I$IM$I7NM777777777777MZZZZZZZZZZZZZZZZZNMM8888MMM8O88OMM...............
........$777M$777N7777777777I7MZZZZZZZZZZZZZZZZZMMDMMMMMMN888888M+..............
......~$7777I77I78777777II7Z8DDZZZZZZZZZZZZZZZZZMMMMMMMMMMD888888M..............
......77777M7777IO777DMI777OMMNZZZZZZZZZZZZZZZZMMMMMMMMMMMMM8888O8M.............
.....OI777N$77777ZII8M$7777778MZZZZZZZZZZZZZZZMMMMMZZZZZZZMMMM88O8OM,...........
....D7777ID7777777777D777777778ZZZZZZZZZZZZZZMMMMMMZZZZZZZZMMMMMMO888I..........
....77I7DMZ777777777$77777777778ZZZZZZZZZZ$MMMMMMMMZZZZZZZZMMMMM:..7O8D.........
.....Z777$7777777777MI77777777$7DM8OZO8NMMMMMMMMMM8ZZZZZZZZMMMM~................
....~7777$777I77IDMMM777777777777$7MMMD$Z778MMMMMMOZZZZZZZZMMMM.................
....N77777$$DMMIZMMMD77777777777778MMMZ7777777MMMMZZZZZZZZZMMN..................
....877777777Z7777DMO7777777777778MMMMI77777777MMMZZZZZZZZDMM?..................
....77777777787777$$O7777777777IMMMMMO777777777MMMZZZZZZZZMMZ...................
....$777777$7O777777N7777I7777OMMMMMM7777777I7MMMMZZZZZ$ZNM?....................
....Z7777777ZZ777777MZ7I77I$MMMMMMMM87777777?NMMMM8ZZZZZNMZ.....................
....8777IMMMM$777777777OMMMMM$I77I7M7777I$7ZMMMMMMDZ$ZZZMO......................
.......8777$$$7777777777MMMMZI$777777$77ZMMMDOZDMMMZZZDM........................
......777777IZ777777I77MMMMM7777778MMMMMMMI77777MMNZZNM.........................
......M7777I7DII77777MMMMMM77777777778MMMM7777$ZMM.7MO..........................
......D7777777I7MMMMDO$$MMN77777777I7MMMMM77777M=..N............................
......8777777777NMN77777$O$77777777MMMMMMM77INN.................................
......87777777I8MM$77777IMDOO88NMMDZ777MMM7ZD...................................
......MI77777DMMMM7I7777777MMMM7I77777OMM.M,....................................
........?ONND7:..O7777777INMMMD777I78MN.........................................
.................$I7777$MMMMM877ZMM7............................................
...................~$88OI....~MM~...............................................
................................................................................
    */

    //first step of any good idea is a name 
    string public constant name = "Henfruit";
    //and of course after a name, we need a smaller name.
    string public constant symbol = "EGG";
    //Then determine brewing capacity
    uint256 public totalSupply = 20736;
    //and major shame to those who sell partial brews (and partial hens are messy)
    uint8 public constant decimals = 0;


    //Setting the price on awesome
    uint256 public numBrews;
    uint256 public ETH_Rate = 13; 
    uint256 public ETH_Rate_Factor = 10000; 
    uint256 public WeiinEth = 1000000000000000000; 

    //Then some overhead
    address public owner;
    mapping(address => uint256) balances;
    mapping(address => mapping (address => uint256)) allowed;
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);

    //Starting to brew
    function Henfruit() public {
        owner = msg.sender;
        balances[this] += totalSupply - 20;
        /*
        Quality checks........
....................................................................IZ,~I,==~,+~
..........................................................$,....,::.ZN,+7=$=:7+=
........................................................:,D+,:=~O7Z$$M8OMDDD$?NI
.....................................................,.~=7OMNNMMMMMMMMMMMMMMMMMM
.......................................................=$8NMMMNMMMMMMMMMMMMMMMMM
................................+7=,................I+::$DMDMMMMMMMMMMMMMMMMMMMM
................................NMDNNNDN............,I7O8NMMMMMMMMMMMMMMMMMMMMMM
...............................IMMDNNNMD.............,Z8NMMMMMMMMMMMMMMMMMMMMMMM
...............................NMNDNMNMM............+?8$MMMMMMMMMMMMMMMMMMMMMMMM
...............................DMDNMMMMD............$ODMMMMMMMMMMMMMMMMMMMMMMMMM
..............................,NNZ88NNM.............:INMD8NMMMMMMMMMMMMMMMMMMMMM
..............................NN8ODDNNM:.............?+,IMMMMMMMMMMMMMMMMMMMMMMM
.............................DND8ODDNNM+............,.,MMMMMMMMMMMMMMMMMMMMMMMMM
............................,ND88ODDNNMZ.............DMMMMMMMMMMMMMMMMMMMMMMMMMM
............................DDOOZZ88DNN8...........+NMMMMMMMMMMMMMMMMMMMMMMMMMMM
............................8$$$$$O88DN8..........$MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
...........................$Z777I$$OOO8O.........~MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
...........................D$$8NNNNMNNN$.........OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
..........................:N?+I77I++?8M=........,8MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
..........................$N??7$I?++I8N,........+NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
..........................DD?I77I?++7DN..........?NNMMMMMMMMMMMMMMMMMMMMMMMMMMMM
..........................DZI7$$7?++OMD..........?MOMMMMMMMMMMMMMMMMMMMMMMMMMMMM
.........................INDOZ$$I?+?DM~.........7MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
........................8NNNNNNNNNNMMM:.......:NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
......................$DD888888OOZ8NNMO......DMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
.....................8D8$$$ZZZZ$$$O8DMMD...+MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
....................ZD87III7777III7$OMMM8:MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
....................D87??II777IIIIII$NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
...................,D8I??I77$77I???+INMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
...................~N87?I7$$$$7I?????OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
...................ZDZI?I7$$Z$7II?+?$8NMM:MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
...................8N7II7$ZZ$$7III?I$DNMZ..NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
...................DD7I7$$ZZ$$77IIIIZDMMOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
..................+DD777$ZZZZ$77IIIIONMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
..................ODO7$$ZZZZZ$77III78DMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
..................8DZ7$$ZZZZZ$77II7$8NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
..................D8$7$$ZZZZ$$77II7$DMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
.................?D8$$$ZZZZ$$$7III7ZNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
.................8DO$$$ZZZZ$$777II7ONMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
.................DDO$$ZZZZ$$$77777$8DMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
.................DDOZZZZOZ$$$77777Z8NMZ.MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
................+D8ZZZOOZZ$$$$77$$O8NM:~MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
................ON8ZZZOOZZ$$$$$7$Z88NM.MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
................DDOZZZOOOZZ$$$$7$Z8DMN.MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
................DD8OZOOOOZZ$$$$$ZO8NMZ.MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
...............:DD8OOOOOOZZ$$$$ZZODNM:.8MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
...............ZND8OOOOOOZZ$$$$OO8NMM...MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
...............DD8OOOOOOOZZZ$$$ZODNMN....7MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
...............DDOZZZOOOOZZZ$$$ZODMM$.......7MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
.=NND$Z=......~NDZZZZOOOZZ$$$$$Z8NMM=..............::~+=~+ZNMMMMMMMMMMMMMMMMMMMM
.?NMMMNND:....8MDOZZOOOOZZ$$77$Z8NMM,.........................~DMMMMMMMMMMMMMMMM
..$NMMMMDND8NDMMMNNNNNND8OZ$77$O8NMM............................:MMMMMMMMMMMMMMM
...ZMMMMNNMMNDMMMMMMNMMNNNNMNDDNNMMN..............................8MMMMMMMMMMMMM
....DMMMMMMNMMMMMMMMMMMNMNMNNMNNMMM8...............................7MMMMMMMMMMMM
.....$MMMMMMMMMMMMMMMMMMMMMMMMMMMMM?................................$MMMMMMMMMMM
.......NMMMMMMMMMMMMMMMMMMMMMMMMMMM+.................................+MMMMMMMMMM
........DMMMMMMMMMMMMMMMMMMMMMMMDNNNNIO8$:.............................NMMMMMMMM
.........8MMMMMMMMMMMMMMMMMMMMMMMMMND8O8O8NI............................IMMMMMMM
...........INNMMMMMMMMMMMMMMMMMMMMMMMMMMD88DD+..........................7NMMMMMM
...............?NMMMMMMMMMMMMMMMMMMMMMMMMMMNZOO,........................8MDMMMMM
...................8MMMMMMMMMMMMMMMMMMMMMMMMMMDOZ.......................NMMMMMMM
.....................NNMMMMMMMMMMMMMMMMMMMMMMMMMZZ......................MMMMMMMM
......................,NMMMMMMMMMMMMMMMMMMMMMMMMMO$,....................MNMMMMMM
.......................$MMMMMMMMMMMMMMMMMMMMMMMMMMOD............................

        Damn that's good!

        */
        balances[0x943291649C1e162476D840Bea7f471ED788dfDa6] += 20; // brewmaster samples
    }

    

    /* Now it's time to send you the good stuff


................................~++??I777+7I77I+................................
.............................+8I~~+$NNDNN$I$I+~~ZD..............................
............................N7~Z8DNNNDDDD888Z$?~?NN.............................
............................NNN8Z$I?II77$$ZOODNNNNO.............................
............................:7ONNNNNNNDND8$ZZ7II=:..............................
.............................DDD8OZ$ZZO88DDDDNNNNN$.............................
............................=NNNNNNNNNNNNNNNNNNNDNN.............................
............................ZNNNNNNN8NDNDNDDDNDNNNN+............................
............................NNNNNNNNNNNNNNNNNNNNNDZ.............................
............................I8DDNNNNNNDD8OZ$I+~~?$..............................
.............................~OOZ$ZII7ZO8DDDNNNNNN+.............................
.............................ONDDD88NDZNN8NNZ...:ZZ.............................
.............................D8~..=+NNNNNNZ8NN+.8NN.............................
.............................8NN~.DNNNNDDO$8NN:.DNN.............................
............................~NNN=.8NND~...ONNN..NNN.............................
............................+NNN+.ONND..Z.:8NN.:DNN:............................
............................ZNNNI.8ND..DND.7OD.~NNN=............................
............................DNNN7.8N.IDNNNN:.+.+NNNZ............................
............................NNNN$.O..ONNNNND+..+N8ND............................
...........................:NNDDZ...7NNNNNNNN7.I8NNN............................
............................NNN7I..:ZNNNNNN:....?NNN............................
...........................+NND7II?=+NNNNNNNNNNNNNND+...........................
...........................ZNDDNNNNNNNNNNNND8ZI+:NNN$...........................
...........................NNN8.................$NNND...........................
...........................NNNNNNNNNNNN=.~NNNNNNNNNND...........................
...........................NNNNNNNNNNNN~.INNNNNNNNNND...........................
...........................NNNNNNNNNNNN:.$NNNNNNNNNNN...........................
...........................NNNNNNNNNNNN:.7NNND8O$+8ND=..........................
..........................:NNNO...................ONN7..........................
..........................?NNNNND88OZZZ$ZO8DNNNNNNNNNO..........................
..........................$NNNNNDDD8NNI....INNNNNNNNNO..........................
..........................ZN:......~NNO$.~NNNNNNNNNNNN:.........................
..........................ONNN7.?NNNNNN$.?NDNNNI.ONNNN=.........................
..........................DNNN?.7NNNNNNZ.INNDNNI.ON..N?.........................
..........................NNNN=.$NNNNNNZ.$NNNDDI.8N..NZ.........................
..........................NNNN~.ONNNN::..........8N..8D?........................
.........................INNNN..8NNNDDDD8DDDNNNNNNN..$ND+.......................
.........................8NNNN..8NNNND888OOZZ$$$$7?..7NND~......................
........................ZNN..........................ZNNN$O.....................
.......................$NN8I7I$ZZOO88DDNNNNNNNNNNNNNNNDODNNN=...................
....................~ZNNNNNNNNNNNNNDZDNNNNNNNNNNNNNNNNN7..?DND7.................
...................ZNNDDNNDNNNNNNND.....=DNNNNNNNNNNNNN7...NNNNNZ:..............
..................8NNNNNNNNDNNNNNN?....+NNNNNN?=ZNNNNNN7...NNNNNND=.............
................+N7....ZNN...+NNNZ....ZNNNNN8..:.8NNNON7..=NNNNNNNN$............
...............?N7.?...ZND...DNND~...ZNNNNNN$.:7.$7...NI..$NNNNNNNNNI...........
..............+ND.OD:..DN~..:NNNI...$NN7..ONNI.I.$....?I..8NNOIONNNND...........
.............:NN=+N$..~NN...8NNN~...ND.....ONNN=.ZN=.:DI..8N....8NNDN=..........
............:DNN$DN..:8NI..:NNNZ...8N...:..?NNN..8Z..$NI..8.....$DNNN8..........
............INNNNNZ..?NN:..8NNNI...NI..=DZ.=NNZ..N..:NN7..+.78..NNNNND..........
............NNNNND..:8NZ...NNNN=..=N:..8DO.:ON+.?Z..ZNN$...~N:.ZNNNNN8..........
...........:NNDNN$..$DN+..$NNNN...DN...DN8..N8..D:..NNN$...D..INNNNNNN:.........
...........78NNNN...8ND...DNNND...8N...8NO.~D:.IZ..ONNN$.....INDNNNNNN+.........
...........NNNNN$..INN?...NNNNO..:DN~..?N$.$=.~N=..NNNN$........?NNNNN?.........
..........:N8N8N:..NN8...$NNNN$..=DN8...IZ=...DD..7NNNN$..?ODD8..+NNNNO.........
..........:NDNND..~NN?...8NNNN?..IDN.O......=NNZ..DNNNN+..NNNNNO..$NNN8.........
..........:NNNN?..8NO....DNDNN:..OND.:87~=?DNNN=..NNNN$...NNNNND..?DNND.........
..........:NNND:..NN:...~NNNNO..+DN?.:NN$.INNNN..=NNN8....8NNNND..+DNND.........
..........:NNN8..=N?....~NNNN=..ZNN..~NN~.DNNNN..+DND.~+..ZNNNNO..7DNNN.........
...........NNNZ..78.....~NNNZ..?DNN..?N$.$NNNNN..=NO.:NI.:ONNNNZ..7DDNN:........
..........:NNN$..I.......DND...8NNN..7N..DNNNNN=....=DNOONNNZ:.7..?..?N:........
...........NNNO.....7Z...ZZ...DNNNN..=..ZNNNNNND:.~8NNDNN7....:$:.Z8..N~........
...........DNNN+...$NNO.....~NNNNNNO...$NNNN8NNNNNNNNO=...:?DNND=..~~7D~........
...........NNNNND88NNNNN7+?DNNN78NNND$DNNNNNNNNNND$....:IDNNNNNNNDOZ8DN+........
...........NNNNNDDNNNNNNNN8Z?:...?DNNNNNNNNDN8$+....:$DNNNDZI=~:~+ZNNNN+........
...........DNNNN8...................~=+?~~:......:ONNNI~............7NN+........
...........8NNNNNOO...........................+8NNNNNN~..:7DNNNNNN:..:N?........
...........8NDNNNNNNN8I~................:~$NNNDDNNNNNN~..NNNNNNNND:..NN?........
...........ONND$ODNNNNNNNNND88O8888DDNNND7~......:DNNN:.:NNNNNN8?..+NNN?........
...........DNNO..........:~====~:..NNNO....=$ODD?.~NNN:.:NN87~...$NNNNNI........
...........ONNO.:ZI=:............~?NND...DNNNNNND..NN8........:DNNNNNNN7........
...........DNNO.:NNNNNNNNNNNNNNNNNNNNZ..ZNNNNNNNN..NN$...?8NO...8NNNNNNZ........
...........DNNZ.:8DDDDNDNDNDDD8O$IDN8...NNNNNNNNN...NN:.:NNNN8..~DN+.DNZ........
...........8ND:...................DN=..:NNNNNNNND..NNN:.:NNNND$..ZN~.NN$........
...........8NNO..NNNDND888888DDNNNNNN+.:NNNNNNND:.?NNN:.:NNNNNN:....=NNZ........
...........8NNO..NNNNDNNNDNNNNNNNNNNN$..ZNND7+:..7NNNN:.~NNDNNNN7=?8NNN7........
...........$NNO..DNNNNNNNNNNNNNNNNNNNN8=...:=IODNNNNNNNNNDD7=~:~~=$NN$N7........
...........ZNN8II8NNNNNNNNNNNNNNNNNNNNNNNNNNNDDNNNND$+~..N:.........+NNI........
...........?NNDDO$+:......:ONNNNNND8Z7+~......ZZ.........N...........=N7........
...........=NNN.............=DNN8~............DI.........N.....~+:....NI........
...........:NNN...............8N$.............N=........:N8Z..:NNN~..=N?........
...........~DDD...............=M$............:N=........=NNO..~NNI...DN?........
............NND................DI............=NNI..DDN=+$NN7..:=...?NNN?........
...........:NN8......I8DD8~....ONNN...NNNN~+IONN?..NNNNNNNN=.....=ONNNN+........
............NND8D....ZDNNNN....DNNN...NNNNNNNDDD+..D+$DDNNN~..:=:..7N8N=........
............ZNN8D....ONNNN8...+NNND..:N?=8NNNNNN=..~.ONNNNN...7NN:.:N.N~........
............NNNN8....ZDNNN....8NNNZ..:7..8NNNNNN~....ONNNNN...ZNN=..Z.N.........
............NNNNZ....$DNI...:DNNNN?......NNNNNNN:..8.OD88NN.....ND:..ON.........
............NNNN7....?.....7NNNNNN=.....:NNDDDNN...NNN?.77......8NNNNND.........
............NNNNI........IDNNNNNNN:..NZ.+N:..ONN..:DZ~..$Z..=ZNNNDZ+.ND.........
............NNNN?..........INDNNND:..NNNNN:..DD$........$DNNNNO+...=$88.........
............NNNN?....77=.....NNNND...NNNNO...D~.....:7DNNNNI:..?ONN8:=D.........
............NNNN+...~DNND:...7NNND...N7:.....N?..?8DNN8I:...7DNNNO:..ND.........
............NNNN=...=NNNND...~DNNO..........+NNMNNNI.....ZNIN8+D7...?ND.........
............NNND=...+NDNNI...:N~........~ZNNDNNO~...:$DDNN=:..8NN:..8NN.........
............NNNN~...+D87.....IN=....:IDNNNN+.....+8NNNNNN8N..:NNN~..ONN.........
............NN+:............~NN77ONNNNNO?:....$NDNZNNN8+..$..~NNN~..ONN.........
............NN=............$DDDDNND7~...:7887DNN$.DN7....~N..$NNN~..ZNN.........
............NN=.:........ZNNNDOI:....ZNNNNNNNN8..:N......=N..ONNN=..ZNN.........
............NN=......~INNDD+....~IDNNNNND$:DN$...?NN..~~:~N..8NNN=..DNN.........
............NN++IZDNNN87:...+ODNNNNNND:...INNN$..INN..8NDNN..ZNNN=..DNN.........
............NNNNND$=...~IDNO+IDN8I=+8NN=..+NNN8..7ND..ONNNN..ONNN=..DNN.........
............NN8....IODDNN:...DD:.....ON7..:DNND..7NN..8NNNN..$NNN~..NND.........
............NN87DNNNNNNND~..=N=..I8..~N$...DNNN..$NN..DNNNN..7NNN~..8ND.........
............DDD8D8+.DNND7...8O..~8N...NZ...ZNNN:.$NN..DNN?D..?NDN~..DNO.........
............8NN?....DNDN=...D$..?DD...NZ...7NNN:.ZNN..DO~=N..?NNN~..NN8.........
............ONNZ....8NNI.:..NI..INN...D$....DNN..ZND.....IN..=DNN:..NN8.........
............ONNZ:.?.+N8..Z..N?..$NN...N$....INN..ZNN.....+N...NN+...NNO.........
............$NN$.:N:.+..?O.~N?..ZNN...NI....~NN:.ZNN..$NNNN+........NN7.........
............+DDI.IND....8$.~N+..ONN...NI:....IN..OND..ZNNDNN7..:O:..DN=.........
............~NN=.IND...IN$.:N+..8NN..:N?..Z...N:.O8N..ZNNNNNNDI8N:..8N:.........
............:NZ..~NN8DZZN?..N?..ZNN..~N+..DI..$..7NN..7NNNN7..:NN...NN..........
.............IN$~.DNNNNNN=..N7..7N8..IN~..NN+.::.7NN..INNONNI.:NN..:NN..........
..............=DNOONNNNNN:..NO..?NZ..8N:..NN8....7NN..7NNN=DN:.::..7ND..........
................?NNNNNNNO...$N..~DI..NN...NNNZ...?NN..IN8..DNN~...ON$...........
..................:DNDNN+....N$.....ONN..:NNNN...=DN..~:...8NNNNNN$:............
....................:I88NND$=?N7:.:ZNND...DNNNI...DN......~INNN8=...............
.......................:IDNNNNNNNNNNND+....8NN=..~ZZ..IODNNNZ~..................
.........................~:+IZNNNNNNNDZ$$7$ONNDDN8NODNNN87~:....................
.................................:+$DNNNNNNNNNND8Z?=::..........................
................................................................................

    */                                                                         
                                                                            

    function () public payable {
        //CheckInventory();
        numBrews = div(div(msg.value,ETH_Rate)*ETH_Rate_Factor,WeiinEth);
        require(numBrews > 0 && balances[this] >= numBrews);
        balances[msg.sender] += numBrews;
        balances[this] -= numBrews;
        owner.transfer(msg.value);
    }



    /*

................................................................................
......................~8?.......................................................
.....................,OMM.......................................................
.....................+MMM.............................................OD+.......
.............,~=~....ZMM8..........................IO:................8MD.......
...........:ZN==NO,..NMO:........................$MM$:........+8Z,....8MD.......
..........IMM~:.$N=.DMN~..........................$MMI~~......NMMN=...DM8.......
.........7MM+..,88Z.OM8=...........OMZNI.....7DD$:.$NDNMMZ...+MMMZ~...DMO.......
........+MMN..+8MO..DMZ:.........+MM..8M?..7MM..8M..$=ZMMO...$MM8~....DMZ.......
.......,NMM..$MMD...MMI..?OZ:...7MM?..NM?.IMM$..8M..$~8MMI...=MM$,....DMI.......
.......ZMMD..8M8...?MM?,DMMMD..:MM8...MO..DMN...MM..Z=DMM=...ZNMN?....NM+.......
.......NMM8........8MM~8O=MMO..ZMM$..MN...MMN..8M..I?+MMD~..:D=NM8:...NN=.......
......~MMMI........DMN$O~?MM7..NMM?.ON...$MM8.OO...8=?MM8~..O=:7MMZ...N8........
......ZMMM.........NMMN:.8MM?..MMN=O8....ZMM88....+Z~?MM8..?O+..NM8...MZ........
......NMMM........,MMMI..NMN...MMN8I+....ZMMZ~....N=:IMMO..8~.$8OMN...MI........
......NMMN........+MMD~..MMO...MMN=......ZMMD=...DI~.=MMN$8~.ZM~7MD...I.........
......MMMD........7MMO..=MMZ...MMN?.......DMMI.,O7=,.,$MN7~..MN~ON=.............
......NMMD........OMMI..ZMM7..8~8MM88D7::..ZMMNI~:...........IND+~,..NZ,........
......NMMD........OMN=..DMM$+N......................................=M7~........
......OMMN....ZMD.......?MMM$.......................................~+~.........
......=MMM+..~MMI...............................................................
.......8MM$..NM7................................................................
........DMMNMN~.................................................................
................................................................................
................................................................................
........................III?I+=,................................................
........................ZI,~~I7+:+..............................................
.......................=$,,=~I+IZ:.............,?Z777I$I=~77$?:.................
.......................:?~=+????$:..........,=7=~.,.........,~?I,...............
.......................II.=I77D7I..........Z$:~:,.?I?.....,,,=:=O~..............
.......................Z?,+?=I??+.........$+.,..:...~I$OZ$=,...,?7,.............
......................~7,:+7+??=~........~OI+7$$?::,.......,:..,+$:.............
......................I7.:+??I?=~........:ZN7=,I++:,,.......=:..+II.............
.....................:$?,~~~~~~+:........,OMI+.+??7==.......~+,.+?7.............
.....................+$=IIOOZ8O7:.........8ZD8$OZOZOZOOZZZ8O$7+,7?7.............
.....................77:7IZ7$88Z:.........ZI8OZ$OZ$I?????$$$$7~,=OI+............
....................~Z7=Z$Z7ZDN8,.........I+OOZ7ZZZ$?????$$OOZ+,=ZIZ............
....................I$+?ZZZZODND..........~7OOZ7$OZ$????I$$O$O7,:778............
....................7Z~I$OZZODDO..........,MOOO7OO$$I???IZZO7Z$::?$8............
...................,Z$~7ZO$O8OOZ...........M?OO77ZZZ$7??IZ$ZZOZ:,+ZO............
...................,ZI=ZZOOOON==...........+?O8Z77OZ$$I?IZZZZOZ~,+$O............
..................,OO$OZZ$$$Z8O,............O$8O$OZZZ7I?I$ZZZZ$=,+$O,...........
.................+ZO7I777$8O8N?:............=IOOZII$$Z7I7$$Z7ZZ=,+Z:,~~.........
...............,$Z$7+:,:~7I7O88$..........:::$ZDO$ZZ$$$II7I77OZ~~7=?:?~=........
..............,$O+I7$I?+?III7O8II.......?~.,..:=?ZOZZZ7IIIZZ$Z7~??=:+:=+........
..............?Z$:ZZ$77$$7$7$ODN7=......$7:7~~~,:,:OOO$I?I7Z$ZI=~$7+..,=........
..........I8M,7Z+?$ZZZZ7ZZOOOO8O$I......Z77:+~$?$+:OZO7I?I7I7O7~:ID7$?I.........
........==?$?7O$~7ZOZOOZ$O8888DDZI......:II$=+~:~78$I$$$?III7Z$=:7Z$~$..........
........+=.?:~I$~7ZZZOOOZ888888Z7?=+=~~...$?==~::,....?=~~?7IZ7=:7ZZ:+..........
........+,,.?IZ?~$Z$$$ZZZ8OO$?,.:+,=~+7...?7I?I=:....,?II??77Z$+:7OI~$..........
.........I+$$DO+~$ZI7$$Z$OOOI?I+I?,=7Z7...7Z7777?:,+~=?Z7+ZOOZ$?,?OZ~O,.........
.........,Z?7O$~+$III$$$$O$$OZ::~=+7$7?...:$7?+IIIZZII$I+?=+D7Z?:=$8~Z..........
..........I~$ZZ~?ZII7+~==~....,~=+=?O.......?7+==,::..,:,,,=Z7$7~=$Z~8~.........
..........7++Z7:$Z?Z?=~+~+....,++=+7I7......$7$7I$+,....ZZ$+Z$ZI=~Z$M~:Z?,......
.........:I?NZ+=Z7I?$7$Z=,....+=$??778......$ZZZO7I:,~I?,7N$OOZZ+:7$D$=..:NI,...
.........:Z=MZ~+Z??$+=77$?===+7$?==I$,.......?I7+~=?II7?~?IZ$$Z$I:+OOZ+,....,:=,
.........:8:8Z:+ZI?I=.,I.,.~==~?=7I...........~I=:::.,==??IZ$$77$=~Z7I==:.......
......:$?~+DZ7:7$??7IZZ+....:I7$$?Z:..........?$I$Z$++~+~ZOZZZ$$Z?~?$$?=........
...=M+,.,+$O$?:O$I???87:7?:,?$O$Z7Z,...........O$,+:~$MD8OOOOOZZZ7~=8O+=,.......
,~,.....,+Z$O~=Z$I?I$?=~7?I7?=?$7?,................I$OO8OOZZZZOO$$?=O?I~........
.......:=+IN8,?ZZ7?7Z+?I:I.,~:~??..................?7D8OOZZ$$$ZZ$Z7=,Z$=,.......
........=I+87,7Z77I$$Z=~+::+777+$..................+?OI8$$$$7?~::...,=II?~......
........=?+O7:ZZ$7$ZO$O8N=,++77II..................+I$7I+,,,~:.~+~?+=I7$7$=.....
........~?Z7=:ZZZ$ZOOZ$ZZOO8O$,....................~7$$7+=?I+=I?$I7++O77I7=,....
.......,~?7$++$$ZZZZOOOOOZO877.....................,$??+=+II77I77I?:+Z?~II?.....
.....:+I,=Z7?==+$88OZ$77$$7Z7=.........................................,$7~?....
.....?I$:=OZIIIIII7I?IIII??7$:............................................:N,...
......$7I?Z$$ZZZZ$777$$$7$ZO$=...............................................+,.
......:+=Z$Z7Z8O88ZZ$$ZO8O$ZZ:..................................................
.....,$Z,....~7ZZO$7$$Z8O7?ZZ...................................................
...,8+..........................................................................
.,+:............................................................................



 ... and then the boring stuff */


    function balanceOf(address _owner) public constant returns (uint256 balance) {
        return balances[_owner];
    }

    function transfer(address _to, uint256 _amount) public returns (bool success) {
        if (balances[msg.sender] >= _amount && _amount > 0
            && balances[_to] + _amount > balances[_to]) {
            balances[msg.sender] -= _amount;
            balances[_to] += _amount;
            Transfer(msg.sender, _to, _amount);
            return true;
        } else {
            return false;
        }
    }

    function transferFrom(address _from, address _to, uint256 _amount) public returns (bool success) {
        if (balances[_from] >= _amount
            && allowed[_from][msg.sender] >= _amount
            && _amount > 0
            && balances[_to] + _amount > balances[_to]) {
            balances[_from] -= _amount;
            allowed[_from][msg.sender] -= _amount;
            balances[_to] += _amount;
            Transfer(_from, _to, _amount);
            return true;
        } else {
            return false;
        }
    }

    function approve(address _spender, uint256 _amount) public returns (bool success) {
        allowed[msg.sender][_spender] = _amount;
        Approval(msg.sender, _spender, _amount);
        return true;
    }

    function allowance(address _owner, address _spender) public constant returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }

    /*

    Practicing Safe Math (Division sucks)......
................................................................................
................................................................................
................................................I?+I............................
...............................................III=7............................
..............................................7II??+............................
......................................:7$$$$7+7$?~$.............................
....................................7$7I?+++?7$$77,.............................
..................................~7IIII?+++++I7$$$,............................
.................................+7IIIIIIIIIIIII+=$$I...........................
................................:7I+~=+IIIIIIII~~~~$$I..........................
...............................:7II~~~~+IIIIIIII~~~~$$~.........................
...............................III~~~~~I?II??III?~~~I$I.........................
..............................:II+~~~~???I????III~~~+$I,........................
..............................?II~~~~=?????????II~~~?$+:........................
.............................~7I?~~~~I??????????I~~=7$=:........................
.............................=II=~~~~????????????~+I7+=.........................
............................:III~~~~????????????=?I7++?.........................
............................~II+~~~~???????????I+II++=+.........................
............................=II~~~~+????????????II+++?,.........................
...........................:?II~~~~????????????II++++I..........................
...........................~III~~~~I??????????II?++++~..........................
...........I??,............~II+~~~=???????????II+++++...........................
...........???,............=III?II????I?????III?++++?...........................
...........???............:+II??I?I??I?????IIII++++++...........................
........ZZ7$$7............~IIIIIIIIIII???IIIII?++++=:...........................
.......$Z$$ZI7Z...........~III?IIIIIIIII??IIII+++++=............................
.......ZZZZ$??$+..........=III?IIIIIII??IIIII?+++++=............................
......,ZZZ????IZ+.....+$$I=II??IIIIIIIIIIIIII++++++=?...........................
.......ZZOZ???Z.,=??I~...,II??IIIIIIIIIIIIII++++++=?.7,.........................
........ZZZZ+............:=II?IIIIIIIIIIIII?++++++=,..:I........................
.........................:+IIIIIIIIIIIIIII?+++??+++....,7.......................
.........................~++IIIIIIIIIIIII??+?????+?.....,$......................
.........................~++++?IIIIIII??+?+??????++......:7.....................
.........................~+++++++++?++++???????+?+=.......?=....................
.........................~+++++++++?++++??????????=........I,...................
.........................~+++++++++?+?++?????????$=.........$...................
.........................~++++++????????????????I7=........,$$Z,................
.........................~++++++????????????????77+........IIZ7?................
.........................=+????????II77$$ZZZZZZZZZ$=,....,Z?IZZ?................
.........................:++???+??????????????I7$Z$7I....?ZO$7$.................
........................=+I??II777777I??++++==~:+ZZ$,....:$7ZIZ.................
........................=?7=:,,..,:~~~~~=?7$Z$7$ZZ:+$.....Z$+Z=.................
.........................=$$$$$7777777$$$ZZ$7~......+I.....$$$..................
.........................?...........................I~.........................
.........................I............................7.........................
........................=~............................?~........................
........................$..............................7........................
........................$..............................$........................
.................~===~,.Z..............................7,.......................
...............+$7II77$I++.............................I7??I$7I+~...............
..............77I?+?I+7$III...........................=++I7III7$$$,.............
.............II?++==I???I+:..........................,~I??I+=++?77$:............
............+I?+??++?I=,..............................,,~?+++?=++I7$............
............????II:.......................................,+++++=?+II...........
...............................................................,+I??7:..........


    */
  
    function div(uint256 a, uint256 b) public pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }




}