{
  "contractName": "Vote",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "mintingFinished",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_spender",
          "type": "address"
        },
        {
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "removeAdmin",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_from",
          "type": "address"
        },
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "isAdmin",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "m",
          "type": "address"
        }
      ],
      "name": "removeMinter",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "gran",
          "type": "uint256"
        }
      ],
      "name": "setGranularity",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "mint",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "burn",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "removeSelf",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "windows",
      "outputs": [
        {
          "name": "windowStart",
          "type": "uint256"
        },
        {
          "name": "utilization",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "spendVote",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_spender",
          "type": "address"
        },
        {
          "name": "_subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "decreaseApproval",
      "outputs": [
        {
          "name": "success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "addAdmin",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "name": "balance",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "finishMinting",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "horizon",
          "type": "uint256"
        }
      ],
      "name": "getWindowCountSince",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "m",
          "type": "address"
        }
      ],
      "name": "addMinter",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "horizon",
          "type": "uint256"
        }
      ],
      "name": "getUtilizationSince",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isLocked",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "unlock",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_spender",
          "type": "address"
        },
        {
          "name": "_addedValue",
          "type": "uint256"
        }
      ],
      "name": "increaseApproval",
      "outputs": [
        {
          "name": "success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_owner",
          "type": "address"
        },
        {
          "name": "_spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "name": "remaining",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "lock",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "burner",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Burn",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "Mint",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "MintFinished",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "Locked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "Unlocked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "spender",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    }
  ],
  "bytecode": "0x606060409081526005805461ffff19169055610e106007558051908101604052600481527f564f544500000000000000000000000000000000000000000000000000000000602082015260089080516200005e92916020019062000125565b5060408051908101604052600481527f564f54450000000000000000000000000000000000000000000000000000000060208201526009908051620000a892916020019062000125565b50600a805460ff1916601217905560038054600160a060020a033316600160a060020a03199091161790556006805460018101620000e78382620001aa565b916000526020600020906002020160006040805190810160405242815260006020820152919050815181556020820151816001015550505062000221565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016857805160ff191683800117855562000198565b8280016001018555821562000198579182015b82811115620001985782518255916020019190600101906200017b565b50620001a6929150620001de565b5090565b815481835581811511620001d957600202816002028360005260206000209182019101620001d99190620001fe565b505050565b620001fb91905b80821115620001a65760008155600101620001e5565b90565b620001fb91905b80821115620001a6576000808255600182015560020162000205565b61133880620002316000396000f30060606040526004361061018a5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b811461018f57806306fdde03146101b6578063095ea7b3146102405780631785f53c1461026257806318160ddd1461028357806323b872dd146102a857806324d7806c146102d05780633092afd5146102ef578063313ce5671461030e5780633b5fce921461033757806340c10f191461034d57806342966c681461036f5780635e898dac14610385578063637e70061461039857806365775d15146103c657806366188463146103d957806370480275146103fb57806370a082311461041a5780637d64bcb414610439578063801ae77b1461044c5780638da5cb5b1461046257806395d89b4114610491578063983b2d56146104a45780639b7de2a5146104c3578063a4e2d634146104d9578063a69df4b5146104ec578063a9059cbb146104ff578063d73dd62314610521578063dd62ed3e14610543578063f2fde38b14610568578063f83d08ba14610587575b600080fd5b341561019a57600080fd5b6101a261059a565b604051901515815260200160405180910390f35b34156101c157600080fd5b6101c96105a8565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102055780820151838201526020016101ed565b50505050905090810190601f1680156102325780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561024b57600080fd5b6101a2600160a060020a0360043516602435610646565b341561026d57600080fd5b610281600160a060020a03600435166106b2565b005b341561028e57600080fd5b6102966106ee565b60405190815260200160405180910390f35b34156102b357600080fd5b6101a2600160a060020a03600435811690602435166044356106f4565b34156102db57600080fd5b6101a2600160a060020a036004351661081e565b34156102fa57600080fd5b610281600160a060020a036004351661086d565b341561031957600080fd5b6103216108a2565b60405160ff909116815260200160405180910390f35b341561034257600080fd5b6102816004356108ab565b341561035857600080fd5b6101a2600160a060020a03600435166024356108c4565b341561037a57600080fd5b6102816004356109f1565b341561039057600080fd5b610281610a95565b34156103a357600080fd5b6103ae600435610acb565b60405191825260208201526040908101905180910390f35b34156103d157600080fd5b610281610af7565b34156103e457600080fd5b6101a2600160a060020a0360043516602435610b50565b341561040657600080fd5b610281600160a060020a0360043516610c4a565b341561042557600080fd5b610296600160a060020a0360043516610c89565b341561044457600080fd5b6101a2610ca4565b341561045757600080fd5b610296600435610d04565b341561046d57600080fd5b610475610d72565b604051600160a060020a03909116815260200160405180910390f35b341561049c57600080fd5b6101c9610d81565b34156104af57600080fd5b610281600160a060020a0360043516610dec565b34156104ce57600080fd5b610296600435610e24565b34156104e457600080fd5b6101a2610eab565b34156104f757600080fd5b610281610eb4565b341561050a57600080fd5b6101a2600160a060020a0360043516602435610f11565b341561052c57600080fd5b6101a2600160a060020a0360043516602435610fe7565b341561054e57600080fd5b610296600160a060020a036004358116906024351661108b565b341561057357600080fd5b610281600160a060020a03600435166110b6565b341561059257600080fd5b610281611151565b600554610100900460ff1681565b60088054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561063e5780601f106106135761010080835404028352916020019161063e565b820191906000526020600020905b81548152906001019060200180831161062157829003601f168201915b505050505081565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60035433600160a060020a039081169116146106cd57600080fd5b600160a060020a03166000908152600460205260409020805460ff19169055565b60005481565b600080600160a060020a038416151561070c57600080fd5b50600160a060020a03808516600081815260026020908152604080832033909516835293815283822054928252600190529190912054610752908463ffffffff6111b016565b600160a060020a038087166000908152600160205260408082209390935590861681522054610787908463ffffffff6111c216565b600160a060020a0385166000908152600160205260409020556107b0818463ffffffff6111b016565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3506001949350505050565b6000600160a060020a038216158015906108675750600354600160a060020a03838116911614806108675750600160a060020a03821660009081526004602052604090205460ff165b92915050565b6108763361081e565b151561088157600080fd5b600160a060020a03166000908152600b60205260409020805460ff19169055565b600a5460ff1681565b6108b43361081e565b15156108bf57600080fd5b600755565b600160a060020a0333166000908152600b602052604081205460ff16806108f9575060035433600160a060020a039081169116145b151561090457600080fd5b600554610100900460ff161561091957600080fd5b60005461092c908363ffffffff6111c216565b6000908155600160a060020a038416815260016020526040902054610957908363ffffffff6111c216565b600160a060020a0384166000818152600160205260409081902092909255907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859084905190815260200160405180910390a282600160a060020a031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600192915050565b60008082116109ff57600080fd5b5033600160a060020a038116600090815260016020526040902054610a2490836111b0565b600160a060020a03821660009081526001602052604081209190915554610a51908363ffffffff6111b016565b600055600160a060020a0381167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a25050565b610a9e3361081e565b1515610aa957600080fd5b600160a060020a0333166000908152600460205260409020805460ff19169055565b6006805482908110610ad957fe5b60009182526020909120600290910201805460019091015490915082565b60055460ff1615610b0757600080fd5b600160a060020a033316600090815260016020526040902054670de0b6b3a7640000901015610b3557600080fd5b610b3d6111d8565b610b4e670de0b6b3a76400006109f1565b565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205480831115610bad57600160a060020a033381166000908152600260209081526040808320938816835292905290812055610be4565b610bbd818463ffffffff6111b016565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b60035433600160a060020a03908116911614610c6557600080fd5b600160a060020a03166000908152600460205260409020805460ff19166001179055565b600160a060020a031660009081526001602052604090205490565b60035460009033600160a060020a03908116911614610cc257600080fd5b6005805461ff0019166101001790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a15060015b90565b6006546000908190815b6000821115610d695760018203905084600682815481101515610d2d57fe5b9060005260206000209060020201600001541015610d4a57610d69565b610d5b83600163ffffffff6111c216565b925060001990910190610d0e565b50909392505050565b600354600160a060020a031681565b60098054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561063e5780601f106106135761010080835404028352916020019161063e565b610df53361081e565b1515610e0057600080fd5b600160a060020a03166000908152600b60205260409020805460ff19166001179055565b6006546000908190815b6000821115610d695760018203905084600682815481101515610e4d57fe5b9060005260206000209060020201600001541015610e6a57610d69565b610e9d600682815481101515610e7c57fe5b906000526020600020906002020160010154846111c290919063ffffffff16565b925060001990910190610e2e565b60055460ff1690565b610ebd3361081e565b1515610ec857600080fd5b60055460ff161515610ed957600080fd5b6005805460ff191690557f19aad37188a1d3921e29eb3c66acf43d81975e107cb650d58cca878627955fd660405160405180910390a1565b6000600160a060020a0383161515610f2857600080fd5b600160a060020a033316600090815260016020526040902054610f51908363ffffffff6111b016565b600160a060020a033381166000908152600160205260408082209390935590851681522054610f86908363ffffffff6111c216565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205461101f908363ffffffff6111c216565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60035433600160a060020a039081169116146110d157600080fd5b600160a060020a03811615156110e657600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b61115a3361081e565b151561116557600080fd5b60055460ff161561117557600080fd5b6005805460ff191660011790557f0f2e5b6c72c6a4491efd919a9f9a409f324ef0708c11ee57d410c2cb06c0992b60405160405180910390a1565b6000828211156111bc57fe5b50900390565b6000828201838110156111d157fe5b9392505050565b60068054600754600019820192429190910391839081106111f557fe5b906000526020600020906002020160000154101561125c57600680546001810161121f83826112b7565b91600052602060002090600202016000604080519081016040524281526001602082015291905081518155602082015181600101555050506112b4565b611290600160068381548110151561127057fe5b9060005260206000209060020201600101546111c290919063ffffffff16565b600680548390811061129e57fe5b9060005260206000209060020201600101819055505b50565b8154818355818115116112e3576002028160020283600052602060002091820191016112e391906112e8565b505050565b610d0191905b8082111561130857600080825560018201556002016112ee565b50905600a165627a7a72305820a5e49e9d1e4bfc6a8bf6a3ba79f99cf8db7e26e89cc49da9474432b176d8cbbd0029",
  "deployedBytecode": "0x60606040526004361061018a5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b811461018f57806306fdde03146101b6578063095ea7b3146102405780631785f53c1461026257806318160ddd1461028357806323b872dd146102a857806324d7806c146102d05780633092afd5146102ef578063313ce5671461030e5780633b5fce921461033757806340c10f191461034d57806342966c681461036f5780635e898dac14610385578063637e70061461039857806365775d15146103c657806366188463146103d957806370480275146103fb57806370a082311461041a5780637d64bcb414610439578063801ae77b1461044c5780638da5cb5b1461046257806395d89b4114610491578063983b2d56146104a45780639b7de2a5146104c3578063a4e2d634146104d9578063a69df4b5146104ec578063a9059cbb146104ff578063d73dd62314610521578063dd62ed3e14610543578063f2fde38b14610568578063f83d08ba14610587575b600080fd5b341561019a57600080fd5b6101a261059a565b604051901515815260200160405180910390f35b34156101c157600080fd5b6101c96105a8565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102055780820151838201526020016101ed565b50505050905090810190601f1680156102325780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561024b57600080fd5b6101a2600160a060020a0360043516602435610646565b341561026d57600080fd5b610281600160a060020a03600435166106b2565b005b341561028e57600080fd5b6102966106ee565b60405190815260200160405180910390f35b34156102b357600080fd5b6101a2600160a060020a03600435811690602435166044356106f4565b34156102db57600080fd5b6101a2600160a060020a036004351661081e565b34156102fa57600080fd5b610281600160a060020a036004351661086d565b341561031957600080fd5b6103216108a2565b60405160ff909116815260200160405180910390f35b341561034257600080fd5b6102816004356108ab565b341561035857600080fd5b6101a2600160a060020a03600435166024356108c4565b341561037a57600080fd5b6102816004356109f1565b341561039057600080fd5b610281610a95565b34156103a357600080fd5b6103ae600435610acb565b60405191825260208201526040908101905180910390f35b34156103d157600080fd5b610281610af7565b34156103e457600080fd5b6101a2600160a060020a0360043516602435610b50565b341561040657600080fd5b610281600160a060020a0360043516610c4a565b341561042557600080fd5b610296600160a060020a0360043516610c89565b341561044457600080fd5b6101a2610ca4565b341561045757600080fd5b610296600435610d04565b341561046d57600080fd5b610475610d72565b604051600160a060020a03909116815260200160405180910390f35b341561049c57600080fd5b6101c9610d81565b34156104af57600080fd5b610281600160a060020a0360043516610dec565b34156104ce57600080fd5b610296600435610e24565b34156104e457600080fd5b6101a2610eab565b34156104f757600080fd5b610281610eb4565b341561050a57600080fd5b6101a2600160a060020a0360043516602435610f11565b341561052c57600080fd5b6101a2600160a060020a0360043516602435610fe7565b341561054e57600080fd5b610296600160a060020a036004358116906024351661108b565b341561057357600080fd5b610281600160a060020a03600435166110b6565b341561059257600080fd5b610281611151565b600554610100900460ff1681565b60088054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561063e5780601f106106135761010080835404028352916020019161063e565b820191906000526020600020905b81548152906001019060200180831161062157829003601f168201915b505050505081565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60035433600160a060020a039081169116146106cd57600080fd5b600160a060020a03166000908152600460205260409020805460ff19169055565b60005481565b600080600160a060020a038416151561070c57600080fd5b50600160a060020a03808516600081815260026020908152604080832033909516835293815283822054928252600190529190912054610752908463ffffffff6111b016565b600160a060020a038087166000908152600160205260408082209390935590861681522054610787908463ffffffff6111c216565b600160a060020a0385166000908152600160205260409020556107b0818463ffffffff6111b016565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3506001949350505050565b6000600160a060020a038216158015906108675750600354600160a060020a03838116911614806108675750600160a060020a03821660009081526004602052604090205460ff165b92915050565b6108763361081e565b151561088157600080fd5b600160a060020a03166000908152600b60205260409020805460ff19169055565b600a5460ff1681565b6108b43361081e565b15156108bf57600080fd5b600755565b600160a060020a0333166000908152600b602052604081205460ff16806108f9575060035433600160a060020a039081169116145b151561090457600080fd5b600554610100900460ff161561091957600080fd5b60005461092c908363ffffffff6111c216565b6000908155600160a060020a038416815260016020526040902054610957908363ffffffff6111c216565b600160a060020a0384166000818152600160205260409081902092909255907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859084905190815260200160405180910390a282600160a060020a031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600192915050565b60008082116109ff57600080fd5b5033600160a060020a038116600090815260016020526040902054610a2490836111b0565b600160a060020a03821660009081526001602052604081209190915554610a51908363ffffffff6111b016565b600055600160a060020a0381167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a25050565b610a9e3361081e565b1515610aa957600080fd5b600160a060020a0333166000908152600460205260409020805460ff19169055565b6006805482908110610ad957fe5b60009182526020909120600290910201805460019091015490915082565b60055460ff1615610b0757600080fd5b600160a060020a033316600090815260016020526040902054670de0b6b3a7640000901015610b3557600080fd5b610b3d6111d8565b610b4e670de0b6b3a76400006109f1565b565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205480831115610bad57600160a060020a033381166000908152600260209081526040808320938816835292905290812055610be4565b610bbd818463ffffffff6111b016565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b60035433600160a060020a03908116911614610c6557600080fd5b600160a060020a03166000908152600460205260409020805460ff19166001179055565b600160a060020a031660009081526001602052604090205490565b60035460009033600160a060020a03908116911614610cc257600080fd5b6005805461ff0019166101001790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a15060015b90565b6006546000908190815b6000821115610d695760018203905084600682815481101515610d2d57fe5b9060005260206000209060020201600001541015610d4a57610d69565b610d5b83600163ffffffff6111c216565b925060001990910190610d0e565b50909392505050565b600354600160a060020a031681565b60098054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561063e5780601f106106135761010080835404028352916020019161063e565b610df53361081e565b1515610e0057600080fd5b600160a060020a03166000908152600b60205260409020805460ff19166001179055565b6006546000908190815b6000821115610d695760018203905084600682815481101515610e4d57fe5b9060005260206000209060020201600001541015610e6a57610d69565b610e9d600682815481101515610e7c57fe5b906000526020600020906002020160010154846111c290919063ffffffff16565b925060001990910190610e2e565b60055460ff1690565b610ebd3361081e565b1515610ec857600080fd5b60055460ff161515610ed957600080fd5b6005805460ff191690557f19aad37188a1d3921e29eb3c66acf43d81975e107cb650d58cca878627955fd660405160405180910390a1565b6000600160a060020a0383161515610f2857600080fd5b600160a060020a033316600090815260016020526040902054610f51908363ffffffff6111b016565b600160a060020a033381166000908152600160205260408082209390935590851681522054610f86908363ffffffff6111c216565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205461101f908363ffffffff6111c216565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60035433600160a060020a039081169116146110d157600080fd5b600160a060020a03811615156110e657600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b61115a3361081e565b151561116557600080fd5b60055460ff161561117557600080fd5b6005805460ff191660011790557f0f2e5b6c72c6a4491efd919a9f9a409f324ef0708c11ee57d410c2cb06c0992b60405160405180910390a1565b6000828211156111bc57fe5b50900390565b6000828201838110156111d157fe5b9392505050565b60068054600754600019820192429190910391839081106111f557fe5b906000526020600020906002020160000154101561125c57600680546001810161121f83826112b7565b91600052602060002090600202016000604080519081016040524281526001602082015291905081518155602082015181600101555050506112b4565b611290600160068381548110151561127057fe5b9060005260206000209060020201600101546111c290919063ffffffff16565b600680548390811061129e57fe5b9060005260206000209060020201600101819055505b50565b8154818355818115116112e3576002028160020283600052602060002091820191016112e391906112e8565b505050565b610d0191905b8082111561130857600080825560018201556002016112ee565b50905600a165627a7a72305820a5e49e9d1e4bfc6a8bf6a3ba79f99cf8db7e26e89cc49da9474432b176d8cbbd0029",
  "sourceMap": "1142:934:18:-;;;;;1183:22:16;;;-1:-1:-1;;514:35:26;;;1117:7:17;1098:26;;1142:934:18;1224:27;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1257:29;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1292:26:18;;;-1:-1:-1;;1292:26:18;1316:2;1292:26;;;494:5:21;:18;;-1:-1:-1;;;;;502:10:21;494:18;-1:-1:-1;;;;;;494:18:21;;;;;;1265:7:17;:62;;1292:26:18;1265:62:17;;;:7;:62;;:::i;:::-;;;;;;;;;;;;1278:48;;;;;;;;1304:3;1278:48;;1322:1;1278:48;;;;;1265:62;-1:-1:-1;1278:48:17;1265:62;;;;;;;;;;;;;;1142:934:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1142:934:18;;;-1:-1:-1;1142:934:18;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "1142:934:18:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;514:35:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1224:27:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1884:183:27;;;;;;;;;;-1:-1:-1;;;;;1884:183:27;;;;;;;1460:95:0;;;;;;;;;;-1:-1:-1;;;;;1460:95:0;;;;;;;179:26:25;;;;;;;;;;;;;;;;;;;;;;;;;;;728:533:27;;;;;;;;;;-1:-1:-1;;;;;728:533:27;;;;;;;;;;;;1212:145:0;;;;;;;;;;-1:-1:-1;;;;;1212:145:0;;;;;1554:81:18;;;;;;;;;;-1:-1:-1;;;;;1554:81:18;;;;;1292:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1340:83:17;;;;;;;;;;;;;;1641:278:18;;;;;;;;;;-1:-1:-1;;;;;1641:278:18;;;;;;;370:245:23;;;;;;;;;;;;;;1561:84:0;;;;;;;;;;;;1064:28:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1925:149:18;;;;;;;;;;;;3033:404:27;;;;;;;;;;-1:-1:-1;;;;;3033:404:27;;;;;;;1363:91:0;;;;;;;;;;-1:-1:-1;;;;;1363:91:0;;;;;973:111:22;;;;;;;;;;-1:-1:-1;;;;;973:111:22;;;;;1222:127:26;;;;;;;;;;;;1429:351:17;;;;;;;;;;;;;;238:20:21;;;;;;;;;;;;;;;-1:-1:-1;;;;;238:20:21;;;;;;;;;;;;;;1257:29:18;;;;;;;;;;;;1471:77;;;;;;;;;;-1:-1:-1;;;;;1471:77:18;;;;;1786:370:17;;;;;;;;;;;;;;1355:84:16;;;;;;;;;;;;1540:92;;;;;;;;;;;;437:334:22;;;;;;;;;;-1:-1:-1;;;;;437:334:22;;;;;;;2766:263:27;;;;;;;;;;-1:-1:-1;;;;;2766:263:27;;;;;;;2386:140;;;;;;;;;;-1:-1:-1;;;;;2386:140:27;;;;;;;;;;827:169:21;;;;;;;;;;-1:-1:-1;;;;;827:169:21;;;;;1445:89:16;;;;;;;;;;;;514:35:26;;;;;;;;;:::o;1224:27:18:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1884:183:27:-;-1:-1:-1;;;;;1971:10:27;1963:19;;1951:4;1963:19;;;:7;:19;;;;;;;;:29;;;;;;;;;;;;;:38;;;1951:4;;1963:29;:19;2007:38;;1995:6;;2007:38;;;;;;;;;;;;;-1:-1:-1;2058:4:27;1884:183;;;;:::o;1460:95:0:-;647:5:21;;633:10;-1:-1:-1;;;;;633:19:21;;;647:5;;633:19;625:28;;;;;;-1:-1:-1;;;;;1522:18:0;1543:5;1522:18;;;:12;:18;;;;;:26;;-1:-1:-1;;1522:26:0;;;1460:95::o;179:26:25:-;;;;:::o;728:533:27:-;810:4;;-1:-1:-1;;;;;830:17:27;;;;822:26;;;;;;-1:-1:-1;;;;;;876:14:27;;;;;;;:7;:14;;;;;;;;891:10;876:26;;;;;;;;;;;;1074:15;;;:8;:15;;;;;;;:27;;1094:6;1074:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;1056:15:27;;;;;;;:8;:15;;;;;;:45;;;;1123:13;;;;;;;:25;;1141:6;1123:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;1107:13:27;;;;;;:8;:13;;;;;:41;1183:22;:10;1198:6;1183:22;:14;:22;:::i;:::-;-1:-1:-1;;;;;1154:14:27;;;;;;;:7;:14;;;;;;;;1169:10;1154:26;;;;;;;;;;;:51;;;;1211:28;;;;;;1232:6;;1211:28;;;;;;;;;;;;;-1:-1:-1;1252:4:27;;728:533;-1:-1:-1;;;;728:533:27:o;1212:145:0:-;1268:4;-1:-1:-1;;;;;1291:18:0;;;;;;:59;;-1:-1:-1;1322:5:0;;-1:-1:-1;;;;;1314:13:0;;;1322:5;;1314:13;;:35;;-1:-1:-1;;;;;;1331:18:0;;;;;;:12;:18;;;;;;;;1314:35;1284:66;1212:145;-1:-1:-1;;1212:145:0:o;1554:81:18:-;1168:19:0;1176:10;1168:7;:19::i;:::-;1160:28;;;;;;;;-1:-1:-1;;;;;1610:10:18;1623:5;1610:10;;;:7;:10;;;;;:18;;-1:-1:-1;;1610:18:18;;;1554:81::o;1292:26::-;;;;;;:::o;1340:83:17:-;1168:19:0;1176:10;1168:7;:19::i;:::-;1160:28;;;;;;;;1398:11:17;:18;1340:83::o;1641:278:18:-;-1:-1:-1;;;;;1412:10:18;1404:19;1720:4;1404:19;;;:7;:19;;;;;;;;;:42;;-1:-1:-1;1441:5:18;;1427:10;-1:-1:-1;;;;;1427:19:18;;;1441:5;;1427:19;1404:42;1396:51;;;;;;;;589:15:26;;;;;;;588:16;580:25;;;;;;1750:11:18;;:24;;1766:7;1750:24;:15;:24;:::i;:::-;1736:11;:38;;;-1:-1:-1;;;;;1800:13:18;;;;:8;:13;;;;;;:26;;1818:7;1800:26;:17;:26;:::i;:::-;-1:-1:-1;;;;;1784:13:18;;;;;;:8;:13;;;;;;;:42;;;;:13;1836:18;;1846:7;;1836:18;;;;;;;;;;;;;1878:3;-1:-1:-1;;;;;1864:27:18;1873:3;1864:27;1883:7;1864:27;;;;;;;;;;;;;;-1:-1:-1;1908:4:18;1641:278;;;;:::o;370:245:23:-;447:14;425:10;;;417:19;;;;;;-1:-1:-1;464:10:23;-1:-1:-1;;;;;503:16:23;;;;;;:8;:16;;;;;;:28;;524:6;503:20;:28::i;:::-;-1:-1:-1;;;;;484:16:23;;;;;;:8;:16;;;;;:47;;;;555:11;:23;;571:6;555:23;:15;:23;:::i;:::-;541:11;:37;-1:-1:-1;;;;;588:20:23;;;601:6;588:20;;;;;;;;;;;;;;370:245;;:::o;1561:84:0:-;1168:19;1176:10;1168:7;:19::i;:::-;1160:28;;;;;;;;-1:-1:-1;;;;;1619:10:0;1606:24;1633:5;1606:24;;;:12;:24;;;;;:32;;-1:-1:-1;;1606:32:0;;;1561:84::o;1064:28:17:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1064:28:17;:::o;1925:149:18:-;1321:9:16;;;;1320:10;1312:19;;;;;;-1:-1:-1;;;;;1989:10:18;1980:20;;;;;:8;:20;;;;;;2004:7;1980:31;;;1972:40;;;;;;2022:22;:20;:22::i;:::-;2054:13;2059:7;2054:4;:13::i;:::-;1925:149::o;3033:404:27:-;-1:-1:-1;;;;;3158:10:27;3150:19;;3114:12;3150:19;;;:7;:19;;;;;;;;:29;;;;;;;;;;;;3189:27;;;3185:164;;;-1:-1:-1;;;;;3234:10:27;3226:19;;3258:1;3226:19;;;:7;:19;;;;;;;;:29;;;;;;;;;;;:33;3185:164;;;3312:30;:8;3325:16;3312:30;:12;:30;:::i;:::-;-1:-1:-1;;;;;3288:10:27;3280:19;;;;;;:7;:19;;;;;;;;:29;;;;;;;;;:62;3185:164;-1:-1:-1;;;;;3363:10:27;3354:61;;3385:19;;;;:7;:19;;;;;;;;3354:61;;;3385:29;;;;;;;;;;;;3354:61;;;;;;;;;;;;;;;-1:-1:-1;3428:4:27;;3033:404;-1:-1:-1;;;3033:404:27:o;1363:91:0:-;647:5:21;;633:10;-1:-1:-1;;;;;633:19:21;;;647:5;;633:19;625:28;;;;;;-1:-1:-1;;;;;1422:18:0;;;;;:12;:18;;;;;:25;;-1:-1:-1;;1422:25:0;1443:4;1422:25;;;1363:91::o;973:111:22:-;-1:-1:-1;;;;;1063:16:22;1033:15;1063:16;;;:8;:16;;;;;;;973:111::o;1222:127:26:-;647:5:21;;1273:4:26;;633:10:21;-1:-1:-1;;;;;633:19:21;;;647:5;;633:19;625:28;;;;;;1285:15:26;:22;;-1:-1:-1;;1285:22:26;;;;;1313:14;;;;;;;;;;-1:-1:-1;1340:4:26;659:1:21;1222:127:26;:::o;1429:351:17:-;1560:7;:14;1500:7;;;;;1546:206;1580:1;1576;:5;1546:206;;;1615:1;1613;:3;1602:14;;1661:7;1634;1642:3;1634:12;;;;;;;;;;;;;;;;;;;;:24;;;:34;1630:78;;;1688:5;;1630:78;1729:12;:5;1739:1;1729:12;:9;:12;:::i;:::-;1721:20;-1:-1:-1;;;1583:3:17;;;;1546:206;;;-1:-1:-1;1768:5:17;;1429:351;-1:-1:-1;;;1429:351:17:o;238:20:21:-;;;-1:-1:-1;;;;;238:20:21;;:::o;1257:29:18:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1471:77;1168:19:0;1176:10;1168:7;:19::i;:::-;1160:28;;;;;;;;-1:-1:-1;;;;;1524:10:18;;;;;:7;:10;;;;;:17;;-1:-1:-1;;1524:17:18;1537:4;1524:17;;;1471:77::o;1786:370:17:-;1916:7;:14;1857:7;;;;;1902:227;1936:1;1932;:5;1902:227;;;1971:1;1969;:3;1958:14;;2017:7;1990;1998:3;1990:12;;;;;;;;;;;;;;;;;;;;:24;;;:34;1986:78;;;2044:5;;1986:78;2084:34;2093:7;2101:3;2093:12;;;;;;;;;;;;;;;;;;;;:24;;;2084:4;:8;;:34;;;;:::i;:::-;2077:41;-1:-1:-1;;;1939:3:17;;;;1902:227;;1355:84:16;1423:9;;;;1355:84;:::o;1540:92::-;1168:19:0;1176:10;1168:7;:19::i;:::-;1160:28;;;;;;;;1248:9:16;;;;1240:18;;;;;;;;1588:9;:17;;-1:-1:-1;;1588:17:16;;;1615:10;;;;;;;;;;1540:92::o;437:334:22:-;500:4;-1:-1:-1;;;;;520:17:22;;;;512:26;;;;;;-1:-1:-1;;;;;640:10:22;631:20;;;;;:8;:20;;;;;;:32;;656:6;631:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;617:10:22;608:20;;;;;;:8;:20;;;;;;:55;;;;685:13;;;;;;;:25;;703:6;685:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;669:13:22;;;;;;;:8;:13;;;;;;;:41;;;;:13;725:10;716:33;;;;;;742:6;;716:33;;;;;;;;;;;;;-1:-1:-1;762:4:22;437:334;;;;:::o;2766:263:27:-;-1:-1:-1;;;;;2902:10:27;2894:19;;2842:12;2894:19;;;:7;:19;;;;;;;;:29;;;;;;;;;;;;:46;;2928:11;2894:46;:33;:46;:::i;:::-;-1:-1:-1;;;;;2870:10:27;2862:19;;;;;;:7;:19;;;;;;;;:29;;;;;;;;;;;;;;:78;;;:29;;:19;;2946:61;;2862:78;2946:61;;;;;;;;;;;;;-1:-1:-1;3020:4:27;2766:263;;;;:::o;2386:140::-;-1:-1:-1;;;;;2496:15:27;;;2464:17;2496:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;2386:140::o;827:169:21:-;647:5;;633:10;-1:-1:-1;;;;;633:19:21;;;647:5;;633:19;625:28;;;;;;-1:-1:-1;;;;;903:22:21;;;;895:31;;;;;;953:5;;-1:-1:-1;;;;;932:37:21;;;;953:5;932:37;;;;;;;;;;975:5;:16;;-1:-1:-1;;975:16:21;-1:-1:-1;;;;;975:16:21;;;;;;;;;;827:169::o;1445:89:16:-;1168:19:0;1176:10;1168:7;:19::i;:::-;1160:28;;;;;;;;1321:9:16;;;;1320:10;1312:19;;;;;;1493:9;:16;;-1:-1:-1;;1493:16:16;1505:4;1493:16;;;1519:8;;;;;;;;;;1445:89::o;562:114:20:-;624:7;646:6;;;;639:14;;;;-1:-1:-1;666:5:20;;;562:114::o;680:133::-;742:7;769:5;;;787:6;;;;780:14;;;;807:1;680:133;-1:-1:-1;;;680:133:20:o;2162:323:17:-;2224:7;:14;;2289:11;;-1:-1:-1;;2224:16:17;;;2282:3;:19;;;;;2224:16;;2254:12;;;;;;;;;;;;;;;;:24;;;:48;2250:229;;;2318:7;:61;;;;;;:7;:61;;:::i;:::-;;;;;;;;;;;;2331:47;;;;;;;;2357:3;2331:47;;2375:1;2331:47;;;;;2318:61;-1:-1:-1;2331:47:17;2318:61;;;;;;;;;;;;;;2250:229;;;2437:31;2466:1;2437:7;2445:3;2437:12;;;;;;;;;;;;;;;;;;;;:24;;;:28;;:31;;;;:::i;:::-;2410:7;:12;;2418:3;;2410:12;;;;;;;;;;;;;;;;:24;;:58;;;;2250:229;2162:323;:::o;1142:934:18:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;",
  "source": "// ------------------------------------------------------------------------------\n// This file is part of netvote.\n//\n// netvote is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// netvote is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with solidity.  If not, see <http://www.gnu.org/licenses/>\n//\n// (c) 2017 netvote contributors.\n//------------------------------------------------------------------------------\n\npragma solidity ^0.4.18;\n\nimport \"../state/Lockable.sol\";\nimport \"../stats/UtilizationTracker.sol\";\nimport \"zeppelin-solidity/contracts/token/MintableToken.sol\";\nimport \"zeppelin-solidity/contracts/token/BurnableToken.sol\";\n\n\n/**\n * @title Vote\n * @dev Token for voting\n */\ncontract Vote is Lockable, MintableToken, BurnableToken, UtilizationTracker {\n    string public name = \"VOTE\";\n    string public symbol = \"VOTE\";\n    uint8 public decimals = 18;\n\n    mapping(address => bool) minters;\n\n    modifier onlyMinter() {\n        require(minters[msg.sender] || msg.sender == owner);\n        _;\n    }\n\n    function addMinter(address m) public admin {\n        minters[m] = true;\n    }\n\n    function removeMinter(address m) public admin {\n        minters[m] = false;\n    }\n\n    function mint(address _to, uint256 _amount) onlyMinter canMint public returns (bool) {\n        totalSupply = totalSupply.add(_amount);\n        balances[_to] = balances[_to].add(_amount);\n        Mint(_to, _amount);\n        Transfer(0x0, _to, _amount);\n        return true;\n    }\n\n    function spendVote() public unlocked {\n        require(balances[msg.sender] >= 1 ether);\n        incrementUtilization();\n        burn(1 ether);\n    }\n}",
  "sourcePath": "/Users/slanders/netvote/elections-solidity/contracts/token/Vote.sol",
  "ast": {
    "attributes": {
      "absolutePath": "/Users/slanders/netvote/elections-solidity/contracts/token/Vote.sol",
      "exportedSymbols": {
        "Vote": [
          2529
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".18"
          ]
        },
        "id": 2392,
        "name": "PragmaDirective",
        "src": "868:24:18"
      },
      {
        "attributes": {
          "SourceUnit": 2198,
          "absolutePath": "/Users/slanders/netvote/elections-solidity/contracts/state/Lockable.sol",
          "file": "../state/Lockable.sol",
          "scope": 2530,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 2393,
        "name": "ImportDirective",
        "src": "894:31:18"
      },
      {
        "attributes": {
          "SourceUnit": 2391,
          "absolutePath": "/Users/slanders/netvote/elections-solidity/contracts/stats/UtilizationTracker.sol",
          "file": "../stats/UtilizationTracker.sol",
          "scope": 2530,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 2394,
        "name": "ImportDirective",
        "src": "926:41:18"
      },
      {
        "attributes": {
          "SourceUnit": 2996,
          "absolutePath": "zeppelin-solidity/contracts/token/MintableToken.sol",
          "file": "zeppelin-solidity/contracts/token/MintableToken.sol",
          "scope": 2530,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 2395,
        "name": "ImportDirective",
        "src": "968:61:18"
      },
      {
        "attributes": {
          "SourceUnit": 2833,
          "absolutePath": "zeppelin-solidity/contracts/token/BurnableToken.sol",
          "file": "zeppelin-solidity/contracts/token/BurnableToken.sol",
          "scope": 2530,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 2396,
        "name": "ImportDirective",
        "src": "1030:61:18"
      },
      {
        "attributes": {
          "contractDependencies": [
            84,
            2197,
            2390,
            2703,
            2780,
            2832,
            2875,
            2904,
            2995,
            3226
          ],
          "contractKind": "contract",
          "documentation": "@title Vote\n@dev Token for voting",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            2529,
            2390,
            2832,
            2995,
            2197,
            84,
            2703,
            3226,
            2780,
            2875,
            2904
          ],
          "name": "Vote",
          "scope": 2530
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "Lockable",
                  "referencedDeclaration": 2197,
                  "type": "contract Lockable"
                },
                "id": 2397,
                "name": "UserDefinedTypeName",
                "src": "1159:8:18"
              }
            ],
            "id": 2398,
            "name": "InheritanceSpecifier",
            "src": "1159:8:18"
          },
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "MintableToken",
                  "referencedDeclaration": 2995,
                  "type": "contract MintableToken"
                },
                "id": 2399,
                "name": "UserDefinedTypeName",
                "src": "1169:13:18"
              }
            ],
            "id": 2400,
            "name": "InheritanceSpecifier",
            "src": "1169:13:18"
          },
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "BurnableToken",
                  "referencedDeclaration": 2832,
                  "type": "contract BurnableToken"
                },
                "id": 2401,
                "name": "UserDefinedTypeName",
                "src": "1184:13:18"
              }
            ],
            "id": 2402,
            "name": "InheritanceSpecifier",
            "src": "1184:13:18"
          },
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "UtilizationTracker",
                  "referencedDeclaration": 2390,
                  "type": "contract UtilizationTracker"
                },
                "id": 2403,
                "name": "UserDefinedTypeName",
                "src": "1199:18:18"
              }
            ],
            "id": 2404,
            "name": "InheritanceSpecifier",
            "src": "1199:18:18"
          },
          {
            "attributes": {
              "constant": false,
              "name": "name",
              "scope": 2529,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "string storage ref",
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "string",
                  "type": "string storage pointer"
                },
                "id": 2405,
                "name": "ElementaryTypeName",
                "src": "1224:6:18"
              },
              {
                "attributes": {
                  "argumentTypes": null,
                  "hexvalue": "564f5445",
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "subdenomination": null,
                  "token": "string",
                  "type": "literal_string \"VOTE\"",
                  "value": "VOTE"
                },
                "id": 2406,
                "name": "Literal",
                "src": "1245:6:18"
              }
            ],
            "id": 2407,
            "name": "VariableDeclaration",
            "src": "1224:27:18"
          },
          {
            "attributes": {
              "constant": false,
              "name": "symbol",
              "scope": 2529,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "string storage ref",
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "string",
                  "type": "string storage pointer"
                },
                "id": 2408,
                "name": "ElementaryTypeName",
                "src": "1257:6:18"
              },
              {
                "attributes": {
                  "argumentTypes": null,
                  "hexvalue": "564f5445",
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "subdenomination": null,
                  "token": "string",
                  "type": "literal_string \"VOTE\"",
                  "value": "VOTE"
                },
                "id": 2409,
                "name": "Literal",
                "src": "1280:6:18"
              }
            ],
            "id": 2410,
            "name": "VariableDeclaration",
            "src": "1257:29:18"
          },
          {
            "attributes": {
              "constant": false,
              "name": "decimals",
              "scope": 2529,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint8",
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint8",
                  "type": "uint8"
                },
                "id": 2411,
                "name": "ElementaryTypeName",
                "src": "1292:5:18"
              },
              {
                "attributes": {
                  "argumentTypes": null,
                  "hexvalue": "3138",
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "subdenomination": null,
                  "token": "number",
                  "type": "int_const 18",
                  "value": "18"
                },
                "id": 2412,
                "name": "Literal",
                "src": "1316:2:18"
              }
            ],
            "id": 2413,
            "name": "VariableDeclaration",
            "src": "1292:26:18"
          },
          {
            "attributes": {
              "constant": false,
              "name": "minters",
              "scope": 2529,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(address => bool)",
              "value": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(address => bool)"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 2414,
                    "name": "ElementaryTypeName",
                    "src": "1333:7:18"
                  },
                  {
                    "attributes": {
                      "name": "bool",
                      "type": "bool"
                    },
                    "id": 2415,
                    "name": "ElementaryTypeName",
                    "src": "1344:4:18"
                  }
                ],
                "id": 2416,
                "name": "Mapping",
                "src": "1325:24:18"
              }
            ],
            "id": 2417,
            "name": "VariableDeclaration",
            "src": "1325:32:18"
          },
          {
            "attributes": {
              "name": "onlyMinter",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2418,
                "name": "ParameterList",
                "src": "1383:2:18"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3241,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 2419,
                            "name": "Identifier",
                            "src": "1396:7:18"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "||",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 2417,
                                      "type": "mapping(address => bool)",
                                      "value": "minters"
                                    },
                                    "id": 2420,
                                    "name": "Identifier",
                                    "src": "1404:7:18"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "sender",
                                      "referencedDeclaration": null,
                                      "type": "address"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 3238,
                                          "type": "msg",
                                          "value": "msg"
                                        },
                                        "id": 2421,
                                        "name": "Identifier",
                                        "src": "1412:3:18"
                                      }
                                    ],
                                    "id": 2422,
                                    "name": "MemberAccess",
                                    "src": "1412:10:18"
                                  }
                                ],
                                "id": 2423,
                                "name": "IndexAccess",
                                "src": "1404:19:18"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "==",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "sender",
                                      "referencedDeclaration": null,
                                      "type": "address"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 3238,
                                          "type": "msg",
                                          "value": "msg"
                                        },
                                        "id": 2424,
                                        "name": "Identifier",
                                        "src": "1427:3:18"
                                      }
                                    ],
                                    "id": 2425,
                                    "name": "MemberAccess",
                                    "src": "1427:10:18"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 2651,
                                      "type": "address",
                                      "value": "owner"
                                    },
                                    "id": 2426,
                                    "name": "Identifier",
                                    "src": "1441:5:18"
                                  }
                                ],
                                "id": 2427,
                                "name": "BinaryOperation",
                                "src": "1427:19:18"
                              }
                            ],
                            "id": 2428,
                            "name": "BinaryOperation",
                            "src": "1404:42:18"
                          }
                        ],
                        "id": 2429,
                        "name": "FunctionCall",
                        "src": "1396:51:18"
                      }
                    ],
                    "id": 2430,
                    "name": "ExpressionStatement",
                    "src": "1396:51:18"
                  },
                  {
                    "id": 2431,
                    "name": "PlaceholderStatement",
                    "src": "1457:1:18"
                  }
                ],
                "id": 2432,
                "name": "Block",
                "src": "1386:79:18"
              }
            ],
            "id": 2433,
            "name": "ModifierDefinition",
            "src": "1364:101:18"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "addMinter",
              "payable": false,
              "scope": 2529,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "m",
                      "scope": 2447,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2434,
                        "name": "ElementaryTypeName",
                        "src": "1490:7:18"
                      }
                    ],
                    "id": 2435,
                    "name": "VariableDeclaration",
                    "src": "1490:9:18"
                  }
                ],
                "id": 2436,
                "name": "ParameterList",
                "src": "1489:11:18"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2439,
                "name": "ParameterList",
                "src": "1514:0:18"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 19,
                      "type": "modifier ()",
                      "value": "admin"
                    },
                    "id": 2437,
                    "name": "Identifier",
                    "src": "1508:5:18"
                  }
                ],
                "id": 2438,
                "name": "ModifierInvocation",
                "src": "1508:5:18"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2417,
                                  "type": "mapping(address => bool)",
                                  "value": "minters"
                                },
                                "id": 2440,
                                "name": "Identifier",
                                "src": "1524:7:18"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2435,
                                  "type": "address",
                                  "value": "m"
                                },
                                "id": 2441,
                                "name": "Identifier",
                                "src": "1532:1:18"
                              }
                            ],
                            "id": 2442,
                            "name": "IndexAccess",
                            "src": "1524:10:18"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "74727565",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "bool",
                              "type": "bool",
                              "value": "true"
                            },
                            "id": 2443,
                            "name": "Literal",
                            "src": "1537:4:18"
                          }
                        ],
                        "id": 2444,
                        "name": "Assignment",
                        "src": "1524:17:18"
                      }
                    ],
                    "id": 2445,
                    "name": "ExpressionStatement",
                    "src": "1524:17:18"
                  }
                ],
                "id": 2446,
                "name": "Block",
                "src": "1514:34:18"
              }
            ],
            "id": 2447,
            "name": "FunctionDefinition",
            "src": "1471:77:18"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "removeMinter",
              "payable": false,
              "scope": 2529,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "m",
                      "scope": 2461,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2448,
                        "name": "ElementaryTypeName",
                        "src": "1576:7:18"
                      }
                    ],
                    "id": 2449,
                    "name": "VariableDeclaration",
                    "src": "1576:9:18"
                  }
                ],
                "id": 2450,
                "name": "ParameterList",
                "src": "1575:11:18"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2453,
                "name": "ParameterList",
                "src": "1600:0:18"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 19,
                      "type": "modifier ()",
                      "value": "admin"
                    },
                    "id": 2451,
                    "name": "Identifier",
                    "src": "1594:5:18"
                  }
                ],
                "id": 2452,
                "name": "ModifierInvocation",
                "src": "1594:5:18"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2417,
                                  "type": "mapping(address => bool)",
                                  "value": "minters"
                                },
                                "id": 2454,
                                "name": "Identifier",
                                "src": "1610:7:18"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2449,
                                  "type": "address",
                                  "value": "m"
                                },
                                "id": 2455,
                                "name": "Identifier",
                                "src": "1618:1:18"
                              }
                            ],
                            "id": 2456,
                            "name": "IndexAccess",
                            "src": "1610:10:18"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "66616c7365",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "bool",
                              "type": "bool",
                              "value": "false"
                            },
                            "id": 2457,
                            "name": "Literal",
                            "src": "1623:5:18"
                          }
                        ],
                        "id": 2458,
                        "name": "Assignment",
                        "src": "1610:18:18"
                      }
                    ],
                    "id": 2459,
                    "name": "ExpressionStatement",
                    "src": "1610:18:18"
                  }
                ],
                "id": 2460,
                "name": "Block",
                "src": "1600:35:18"
              }
            ],
            "id": 2461,
            "name": "FunctionDefinition",
            "src": "1554:81:18"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "mint",
              "payable": false,
              "scope": 2529,
              "stateMutability": "nonpayable",
              "superFunction": 2977,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_to",
                      "scope": 2506,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2462,
                        "name": "ElementaryTypeName",
                        "src": "1655:7:18"
                      }
                    ],
                    "id": 2463,
                    "name": "VariableDeclaration",
                    "src": "1655:11:18"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_amount",
                      "scope": 2506,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 2464,
                        "name": "ElementaryTypeName",
                        "src": "1668:7:18"
                      }
                    ],
                    "id": 2465,
                    "name": "VariableDeclaration",
                    "src": "1668:15:18"
                  }
                ],
                "id": 2466,
                "name": "ParameterList",
                "src": "1654:30:18"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2506,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 2471,
                        "name": "ElementaryTypeName",
                        "src": "1720:4:18"
                      }
                    ],
                    "id": 2472,
                    "name": "VariableDeclaration",
                    "src": "1720:4:18"
                  }
                ],
                "id": 2473,
                "name": "ParameterList",
                "src": "1719:6:18"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 2433,
                      "type": "modifier ()",
                      "value": "onlyMinter"
                    },
                    "id": 2467,
                    "name": "Identifier",
                    "src": "1685:10:18"
                  }
                ],
                "id": 2468,
                "name": "ModifierInvocation",
                "src": "1685:10:18"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 2932,
                      "type": "modifier ()",
                      "value": "canMint"
                    },
                    "id": 2469,
                    "name": "Identifier",
                    "src": "1696:7:18"
                  }
                ],
                "id": 2470,
                "name": "ModifierInvocation",
                "src": "1696:7:18"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2879,
                              "type": "uint256",
                              "value": "totalSupply"
                            },
                            "id": 2474,
                            "name": "Identifier",
                            "src": "1736:11:18"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "uint256",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "add",
                                  "referencedDeclaration": 2646,
                                  "type": "function (uint256,uint256) view returns (uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 2879,
                                      "type": "uint256",
                                      "value": "totalSupply"
                                    },
                                    "id": 2475,
                                    "name": "Identifier",
                                    "src": "1750:11:18"
                                  }
                                ],
                                "id": 2476,
                                "name": "MemberAccess",
                                "src": "1750:15:18"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2465,
                                  "type": "uint256",
                                  "value": "_amount"
                                },
                                "id": 2477,
                                "name": "Identifier",
                                "src": "1766:7:18"
                              }
                            ],
                            "id": 2478,
                            "name": "FunctionCall",
                            "src": "1750:24:18"
                          }
                        ],
                        "id": 2479,
                        "name": "Assignment",
                        "src": "1736:38:18"
                      }
                    ],
                    "id": 2480,
                    "name": "ExpressionStatement",
                    "src": "1736:38:18"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2716,
                                  "type": "mapping(address => uint256)",
                                  "value": "balances"
                                },
                                "id": 2481,
                                "name": "Identifier",
                                "src": "1784:8:18"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2463,
                                  "type": "address",
                                  "value": "_to"
                                },
                                "id": 2482,
                                "name": "Identifier",
                                "src": "1793:3:18"
                              }
                            ],
                            "id": 2483,
                            "name": "IndexAccess",
                            "src": "1784:13:18"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "uint256",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "add",
                                  "referencedDeclaration": 2646,
                                  "type": "function (uint256,uint256) view returns (uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 2716,
                                          "type": "mapping(address => uint256)",
                                          "value": "balances"
                                        },
                                        "id": 2484,
                                        "name": "Identifier",
                                        "src": "1800:8:18"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 2463,
                                          "type": "address",
                                          "value": "_to"
                                        },
                                        "id": 2485,
                                        "name": "Identifier",
                                        "src": "1809:3:18"
                                      }
                                    ],
                                    "id": 2486,
                                    "name": "IndexAccess",
                                    "src": "1800:13:18"
                                  }
                                ],
                                "id": 2487,
                                "name": "MemberAccess",
                                "src": "1800:17:18"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2465,
                                  "type": "uint256",
                                  "value": "_amount"
                                },
                                "id": 2488,
                                "name": "Identifier",
                                "src": "1818:7:18"
                              }
                            ],
                            "id": 2489,
                            "name": "FunctionCall",
                            "src": "1800:26:18"
                          }
                        ],
                        "id": 2490,
                        "name": "Assignment",
                        "src": "1784:42:18"
                      }
                    ],
                    "id": 2491,
                    "name": "ExpressionStatement",
                    "src": "1784:42:18"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2918,
                              "type": "function (address,uint256)",
                              "value": "Mint"
                            },
                            "id": 2492,
                            "name": "Identifier",
                            "src": "1836:4:18"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2463,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 2493,
                            "name": "Identifier",
                            "src": "1841:3:18"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2465,
                              "type": "uint256",
                              "value": "_amount"
                            },
                            "id": 2494,
                            "name": "Identifier",
                            "src": "1846:7:18"
                          }
                        ],
                        "id": 2495,
                        "name": "FunctionCall",
                        "src": "1836:18:18"
                      }
                    ],
                    "id": 2496,
                    "name": "ExpressionStatement",
                    "src": "1836:18:18"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2903,
                              "type": "function (address,address,uint256)",
                              "value": "Transfer"
                            },
                            "id": 2497,
                            "name": "Identifier",
                            "src": "1864:8:18"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "307830",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0x0"
                            },
                            "id": 2498,
                            "name": "Literal",
                            "src": "1873:3:18"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2463,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 2499,
                            "name": "Identifier",
                            "src": "1878:3:18"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2465,
                              "type": "uint256",
                              "value": "_amount"
                            },
                            "id": 2500,
                            "name": "Identifier",
                            "src": "1883:7:18"
                          }
                        ],
                        "id": 2501,
                        "name": "FunctionCall",
                        "src": "1864:27:18"
                      }
                    ],
                    "id": 2502,
                    "name": "ExpressionStatement",
                    "src": "1864:27:18"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 2473
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 2503,
                        "name": "Literal",
                        "src": "1908:4:18"
                      }
                    ],
                    "id": 2504,
                    "name": "Return",
                    "src": "1901:11:18"
                  }
                ],
                "id": 2505,
                "name": "Block",
                "src": "1726:193:18"
              }
            ],
            "id": 2506,
            "name": "FunctionDefinition",
            "src": "1641:278:18"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "spendVote",
              "payable": false,
              "scope": 2529,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2507,
                "name": "ParameterList",
                "src": "1943:2:18"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2510,
                "name": "ParameterList",
                "src": "1962:0:18"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 2158,
                      "type": "modifier ()",
                      "value": "unlocked"
                    },
                    "id": 2508,
                    "name": "Identifier",
                    "src": "1953:8:18"
                  }
                ],
                "id": 2509,
                "name": "ModifierInvocation",
                "src": "1953:8:18"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3241,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 2511,
                            "name": "Identifier",
                            "src": "1972:7:18"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 2716,
                                      "type": "mapping(address => uint256)",
                                      "value": "balances"
                                    },
                                    "id": 2512,
                                    "name": "Identifier",
                                    "src": "1980:8:18"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "sender",
                                      "referencedDeclaration": null,
                                      "type": "address"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 3238,
                                          "type": "msg",
                                          "value": "msg"
                                        },
                                        "id": 2513,
                                        "name": "Identifier",
                                        "src": "1989:3:18"
                                      }
                                    ],
                                    "id": 2514,
                                    "name": "MemberAccess",
                                    "src": "1989:10:18"
                                  }
                                ],
                                "id": 2515,
                                "name": "IndexAccess",
                                "src": "1980:20:18"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "31",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": "ether",
                                  "token": "number",
                                  "type": "int_const 1000000000000000000",
                                  "value": "1"
                                },
                                "id": 2516,
                                "name": "Literal",
                                "src": "2004:7:18"
                              }
                            ],
                            "id": 2517,
                            "name": "BinaryOperation",
                            "src": "1980:31:18"
                          }
                        ],
                        "id": 2518,
                        "name": "FunctionCall",
                        "src": "1972:40:18"
                      }
                    ],
                    "id": 2519,
                    "name": "ExpressionStatement",
                    "src": "1972:40:18"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "arguments": [
                            null
                          ],
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                null
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2389,
                              "type": "function ()",
                              "value": "incrementUtilization"
                            },
                            "id": 2520,
                            "name": "Identifier",
                            "src": "2022:20:18"
                          }
                        ],
                        "id": 2521,
                        "name": "FunctionCall",
                        "src": "2022:22:18"
                      }
                    ],
                    "id": 2522,
                    "name": "ExpressionStatement",
                    "src": "2022:22:18"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_1000000000000000000_by_1",
                                  "typeString": "int_const 1000000000000000000"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2831,
                              "type": "function (uint256)",
                              "value": "burn"
                            },
                            "id": 2523,
                            "name": "Identifier",
                            "src": "2054:4:18"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "31",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": "ether",
                              "token": "number",
                              "type": "int_const 1000000000000000000",
                              "value": "1"
                            },
                            "id": 2524,
                            "name": "Literal",
                            "src": "2059:7:18"
                          }
                        ],
                        "id": 2525,
                        "name": "FunctionCall",
                        "src": "2054:13:18"
                      }
                    ],
                    "id": 2526,
                    "name": "ExpressionStatement",
                    "src": "2054:13:18"
                  }
                ],
                "id": 2527,
                "name": "Block",
                "src": "1962:112:18"
              }
            ],
            "id": 2528,
            "name": "FunctionDefinition",
            "src": "1925:149:18"
          }
        ],
        "id": 2529,
        "name": "ContractDefinition",
        "src": "1142:934:18"
      }
    ],
    "id": 2530,
    "name": "SourceUnit",
    "src": "868:1208:18"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-03-26T15:46:12.497Z"
}