{
  "contractName": "ERC20Token",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "name": "_interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "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": true,
      "inputs": [
        {
          "name": "_operator",
          "type": "address"
        },
        {
          "name": "_role",
          "type": "string"
        }
      ],
      "name": "checkRole",
      "outputs": [],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "InterfaceId_Token",
      "outputs": [
        {
          "name": "",
          "type": "bytes4"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "activated",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "InterfaceId_ERC165",
      "outputs": [
        {
          "name": "",
          "type": "bytes4"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "maxMintable",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_operator",
          "type": "address"
        },
        {
          "name": "_role",
          "type": "string"
        }
      ],
      "name": "hasRole",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_minter",
          "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": true,
      "inputs": [],
      "name": "pausable",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "initialSupply",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "unpause",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "mintable",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "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": true,
      "inputs": [],
      "name": "template",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "finishMinting",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "InterfaceId_ERC20Token",
      "outputs": [
        {
          "name": "",
          "type": "bytes4"
        }
      ],
      "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": "ROLE_MINTER",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "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": "_minter",
          "type": "address"
        }
      ],
      "name": "addMinter",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "burnable",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "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": "",
          "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": true,
      "inputs": [],
      "name": "InterfaceId_Contract",
      "outputs": [
        {
          "name": "",
          "type": "bytes4"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_owner",
          "type": "address"
        },
        {
          "name": "_name",
          "type": "string"
        },
        {
          "name": "_symbol",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "Pause",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "Unpause",
      "type": "event"
    },
    {
      "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": "operator",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "role",
          "type": "string"
        }
      ],
      "name": "RoleAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "role",
          "type": "string"
        }
      ],
      "name": "RoleRemoved",
      "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": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipRenounced",
      "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"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_name",
          "type": "string"
        },
        {
          "name": "_symbol",
          "type": "string"
        },
        {
          "name": "_decimals",
          "type": "uint8"
        },
        {
          "name": "_initialSupply",
          "type": "uint256"
        },
        {
          "name": "_mintable",
          "type": "bool"
        },
        {
          "name": "_burnable",
          "type": "bool"
        },
        {
          "name": "_pausable",
          "type": "bool"
        }
      ],
      "name": "update",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_maxMintable",
          "type": "uint256"
        }
      ],
      "name": "setMaxMintable",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "activate",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "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": "_from",
          "type": "address"
        },
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "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": "_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": "pause",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040526008805460ff19169055600a805461ffff19166112001790553480156200002a57600080fd5b5060405162001e2238038062001e22833981016040908152815160208301519183015160038054600160a060020a0319163317905590929182019101828282826200009e7f01ffc9a700000000000000000000000000000000000000000000000000000000640100000000620001b4810204565b600160a060020a0381161515620000b457600080fd5b6005805433600160a060020a03199182161790915560038054909116600160a060020a038316179055620001117f6125ede500000000000000000000000000000000000000000000000000000000640100000000620001b4810204565b5081516200012790600690602085019062000221565b5080516200013d90600790602084019062000221565b50620001727ffd155c6700000000000000000000000000000000000000000000000000000000640100000000620001b4810204565b50620001ab91507f98b0f321000000000000000000000000000000000000000000000000000000009050640100000000620001b4810204565b505050620002c6565b7fffffffff000000000000000000000000000000000000000000000000000000008082161415620001e457600080fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152600460205260409020805460ff19166001179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026457805160ff191683800117855562000294565b8280016001018555821562000294579182015b828111156200029457825182559160200191906001019062000277565b50620002a2929150620002a6565b5090565b620002c391905b80821115620002a25760008155600101620002ad565b90565b611b4c80620002d66000396000f3006080604052600436106101f85763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146101fd57806305d2035b1461024857806306fdde031461025d578063095ea7b3146102e75780630988ca8c1461030b5780630f15f4c014610374578063172d02bd1461038957806318160ddd146103d0578063186601ca146103f757806319fa8f501461040c5780632154dc3914610421578063217fe6c61461043657806323b872dd1461049d57806325d387b5146104c75780633092afd5146104df578063313ce56714610500578063367758471461052b578063378dc3dc146105405780633f4ba83a1461055557806340c10f191461056a57806342966c681461058e5780634bf365df146105a65780635c975abb146105bb57806366188463146105d05780636f2ddd93146105f457806370a0823114610625578063715018a6146106465780637d64bcb41461065b5780638456cb59146106705780638d4da468146106855780638da5cb5b1461069a57806392afc33a146106af57806395d89b41146106c4578063983b2d56146106d9578063a07c7ce4146106fa578063a9059cbb1461070f578063d73dd62314610733578063dd62ed3e14610757578063f2226de61461077e578063f2fde38b14610835578063fbf964eb14610856575b600080fd5b34801561020957600080fd5b506102347bffffffffffffffffffffffffffffffffffffffffffffffffffffffff196004351661086b565b604080519115158252519081900360200190f35b34801561025457600080fd5b5061023461089f565b34801561026957600080fd5b506102726108a8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102ac578181015183820152602001610294565b50505050905090810190601f1680156102d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102f357600080fd5b50610234600160a060020a0360043516602435610936565b34801561031757600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610372958335600160a060020a03169536956044949193909101919081908401838280828437509497506109629650505050505050565b005b34801561038057600080fd5b506102346109d0565b34801561039557600080fd5b5061039e610a1b565b604080517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199092168252519081900360200190f35b3480156103dc57600080fd5b506103e5610a3f565b60408051918252519081900360200190f35b34801561040357600080fd5b50610234610a45565b34801561041857600080fd5b5061039e610a55565b34801561042d57600080fd5b506103e5610a79565b34801561044257600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610234958335600160a060020a0316953695604494919390910191908190840183828082843750949750610a7f9650505050505050565b3480156104a957600080fd5b50610234600160a060020a0360043581169060243516604435610aeb565b3480156104d357600080fd5b50610372600435610b19565b3480156104eb57600080fd5b50610372600160a060020a0360043516610b4c565b34801561050c57600080fd5b50610515610b93565b6040805160ff9092168252519081900360200190f35b34801561053757600080fd5b50610234610ba1565b34801561054c57600080fd5b506103e5610baf565b34801561056157600080fd5b50610372610bb5565b34801561057657600080fd5b50610234600160a060020a0360043516602435610c12565b34801561059a57600080fd5b50610372600435610c63565b3480156105b257600080fd5b50610234610c84565b3480156105c757600080fd5b50610234610c8d565b3480156105dc57600080fd5b50610234600160a060020a0360043516602435610c96565b34801561060057600080fd5b50610609610cb3565b60408051600160a060020a039092168252519081900360200190f35b34801561063157600080fd5b506103e5600160a060020a0360043516610cc2565b34801561065257600080fd5b50610372610cdd565b34801561066757600080fd5b50610234610d4b565b34801561067c57600080fd5b50610372610db1565b34801561069157600080fd5b5061039e610dd1565b3480156106a657600080fd5b50610609610df5565b3480156106bb57600080fd5b50610272610e04565b3480156106d057600080fd5b50610272610e29565b3480156106e557600080fd5b50610372600160a060020a0360043516610e84565b34801561070657600080fd5b50610234610ec8565b34801561071b57600080fd5b50610234600160a060020a0360043516602435610ed1565b34801561073f57600080fd5b50610234600160a060020a0360043516602435610ef6565b34801561076357600080fd5b506103e5600160a060020a0360043581169060243516610f13565b34801561078a57600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261037294369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505060ff85351695505050602083013592604081013515159250606081013515159150608001351515610f3e565b34801561084157600080fd5b50610372600160a060020a0360043516610fe4565b34801561086257600080fd5b5061039e611004565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191660009081526004602052604090205460ff1690565b60085460ff1681565b6006805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561092e5780601f106109035761010080835404028352916020019161092e565b820191906000526020600020905b81548152906001019060200180831161091157829003601f168201915b505050505081565b60055460009060a060020a900460ff16151561095157600080fd5b61095b8383611028565b9392505050565b6109cc826009836040518082805190602001908083835b602083106109985780518252601f199092019160209182019101610979565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611045565b5050565b60055460009060a060020a900460ff16156109ea57600080fd5b600b546001819055600354600160a060020a0316600090815260208190526040902055610a1561105a565b90505b90565b7ffd155c670000000000000000000000000000000000000000000000000000000081565b60015490565b60055460a060020a900460ff1681565b7f01ffc9a70000000000000000000000000000000000000000000000000000000081565b600d5481565b600061095b836009846040518082805190602001908083835b60208310610ab75780518252601f199092019160209182019101610a98565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505061107c565b60055460009060a060020a900460ff161515610b0657600080fd5b610b1184848461109b565b949350505050565b600354600160a060020a03163314610b3057600080fd5b60055460a060020a900460ff1615610b4757600080fd5b600d55565b600354600160a060020a03163314610b6357600080fd5b610b9081604080519081016040528060068152602001600080516020611ae18339815191528152506110b9565b50565b600a54610100900460ff1681565b600e54610100900460ff1681565b600b5481565b600354600160a060020a03163314610bcc57600080fd5b600a5460ff161515610bdd57600080fd5b600a805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60055460009060a060020a900460ff161515610c2d57600080fd5b6000600d541115610c5957600d54600154610c4e908463ffffffff6111ca16565b1115610c5957600080fd5b61095b83836111dd565b60055460a060020a900460ff161515610c7b57600080fd5b610b90816112e3565b600c5460ff1681565b600a5460ff1681565b600a5460009060ff1615610ca957600080fd5b61095b83836112ed565b600554600160a060020a031681565b600160a060020a031660009081526020819052604090205490565b600354600160a060020a03163314610cf457600080fd5b600354604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26003805473ffffffffffffffffffffffffffffffffffffffff19169055565b600354600090600160a060020a03163314610d6557600080fd5b60085460ff1615610d7557600080fd5b6008805460ff191660011790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a150600190565b600e54610100900460ff161515610dc757600080fd5b610dcf6113dc565b565b7f98b0f3210000000000000000000000000000000000000000000000000000000081565b600354600160a060020a031681565b6040805180820190915260068152600080516020611ae1833981519152602082015281565b6007805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561092e5780601f106109035761010080835404028352916020019161092e565b600354600160a060020a03163314610e9b57600080fd5b610b9081604080519081016040528060068152602001600080516020611ae183398151915281525061143b565b600e5460ff1681565b60055460009060a060020a900460ff161515610eec57600080fd5b61095b838361150d565b600a5460009060ff1615610f0957600080fd5b61095b838361152a565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600354600160a060020a03163314610f5557600080fd5b60055460a060020a900460ff1615610f6c57600080fd5b8651610f7f9060069060208a0190611a48565b508551610f93906007906020890190611a48565b50600a805460ff90961661010090810261ff001997881617909155600b94909455600c805493151560ff19948516179055600e80549115159094029115159216919091179092169190911790555050565b600354600160a060020a03163314610ffb57600080fd5b610b90816115c3565b7f6125ede50000000000000000000000000000000000000000000000000000000081565b600a5460009060ff161561103b57600080fd5b61095b8383611641565b61104f828261107c565b15156109cc57600080fd5b600354600090600160a060020a0316331461107457600080fd5b610a156116a7565b600160a060020a03166000908152602091909152604090205460ff1690565b600a5460009060ff16156110ae57600080fd5b610b118484846116d0565b611123826009836040518082805190602001908083835b602083106110ef5780518252601f1990920191602091820191016110d0565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611833565b81600160a060020a03167fd211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803a826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561118c578181015183820152602001611174565b50505050905090810190601f1680156111b95780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b818101828110156111d757fe5b92915050565b600061120c33604080519081016040528060068152602001600080516020611ae1833981519152815250610962565b60085460ff161561121c57600080fd5b60015461122f908363ffffffff6111ca16565b600155600160a060020a03831660009081526020819052604090205461125b908363ffffffff6111ca16565b600160a060020a03841660008181526020818152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a03851691600091600080516020611b018339815191529181900360200190a350600192915050565b610b903382611855565b336000908152600260209081526040808320600160a060020a038616845290915281205480831061134157336000908152600260209081526040808320600160a060020a0388168452909152812055611376565b611351818463ffffffff61194416565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600354600160a060020a031633146113f357600080fd5b600a5460ff161561140357600080fd5b600a805460ff191660011790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b6114a5826009836040518082805190602001908083835b602083106114715780518252601f199092019160209182019101611452565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611956565b81600160a060020a03167fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489826040518080602001828103825283818151815260200191508051906020019080838360008381101561118c578181015183820152602001611174565b600a5460009060ff161561152057600080fd5b61095b838361197b565b336000908152600260209081526040808320600160a060020a038616845290915281205461155e908363ffffffff6111ca16565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a03811615156115d857600080fd5b600354604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b6005805474ff0000000000000000000000000000000000000000191660a060020a179055600190565b600160a060020a0383166000908152602081905260408120548211156116f557600080fd5b600160a060020a038416600090815260026020908152604080832033845290915290205482111561172557600080fd5b600160a060020a038316151561173a57600080fd5b600160a060020a038416600090815260208190526040902054611763908363ffffffff61194416565b600160a060020a038086166000908152602081905260408082209390935590851681522054611798908363ffffffff6111ca16565b600160a060020a038085166000908152602081815260408083209490945591871681526002825282812033825290915220546117da908363ffffffff61194416565b600160a060020a0380861660008181526002602090815260408083203384528252918290209490945580518681529051928716939192600080516020611b01833981519152929181900390910190a35060019392505050565b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a03821660009081526020819052604090205481111561187a57600080fd5b600160a060020a0382166000908152602081905260409020546118a3908263ffffffff61194416565b600160a060020a0383166000908152602081905260409020556001546118cf908263ffffffff61194416565b600155604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a03851691600080516020611b018339815191529181900360200190a35050565b60008282111561195057fe5b50900390565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b3360009081526020819052604081205482111561199757600080fd5b600160a060020a03831615156119ac57600080fd5b336000908152602081905260409020546119cc908363ffffffff61194416565b3360009081526020819052604080822092909255600160a060020a038516815220546119fe908363ffffffff6111ca16565b600160a060020a03841660008181526020818152604091829020939093558051858152905191923392600080516020611b018339815191529281900390910190a350600192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611a8957805160ff1916838001178555611ab6565b82800160010185558215611ab6579182015b82811115611ab6578251825591602001919060010190611a9b565b50611ac2929150611ac6565b5090565b610a1891905b80821115611ac25760008155600101611acc56006d696e7465720000000000000000000000000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820746ca15eb8375f84be54139dbbd0af9e557dd217c09be67d7a57e3d9daec7d810029",
  "deployedBytecode": "0x6080604052600436106101f85763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146101fd57806305d2035b1461024857806306fdde031461025d578063095ea7b3146102e75780630988ca8c1461030b5780630f15f4c014610374578063172d02bd1461038957806318160ddd146103d0578063186601ca146103f757806319fa8f501461040c5780632154dc3914610421578063217fe6c61461043657806323b872dd1461049d57806325d387b5146104c75780633092afd5146104df578063313ce56714610500578063367758471461052b578063378dc3dc146105405780633f4ba83a1461055557806340c10f191461056a57806342966c681461058e5780634bf365df146105a65780635c975abb146105bb57806366188463146105d05780636f2ddd93146105f457806370a0823114610625578063715018a6146106465780637d64bcb41461065b5780638456cb59146106705780638d4da468146106855780638da5cb5b1461069a57806392afc33a146106af57806395d89b41146106c4578063983b2d56146106d9578063a07c7ce4146106fa578063a9059cbb1461070f578063d73dd62314610733578063dd62ed3e14610757578063f2226de61461077e578063f2fde38b14610835578063fbf964eb14610856575b600080fd5b34801561020957600080fd5b506102347bffffffffffffffffffffffffffffffffffffffffffffffffffffffff196004351661086b565b604080519115158252519081900360200190f35b34801561025457600080fd5b5061023461089f565b34801561026957600080fd5b506102726108a8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102ac578181015183820152602001610294565b50505050905090810190601f1680156102d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102f357600080fd5b50610234600160a060020a0360043516602435610936565b34801561031757600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610372958335600160a060020a03169536956044949193909101919081908401838280828437509497506109629650505050505050565b005b34801561038057600080fd5b506102346109d0565b34801561039557600080fd5b5061039e610a1b565b604080517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199092168252519081900360200190f35b3480156103dc57600080fd5b506103e5610a3f565b60408051918252519081900360200190f35b34801561040357600080fd5b50610234610a45565b34801561041857600080fd5b5061039e610a55565b34801561042d57600080fd5b506103e5610a79565b34801561044257600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610234958335600160a060020a0316953695604494919390910191908190840183828082843750949750610a7f9650505050505050565b3480156104a957600080fd5b50610234600160a060020a0360043581169060243516604435610aeb565b3480156104d357600080fd5b50610372600435610b19565b3480156104eb57600080fd5b50610372600160a060020a0360043516610b4c565b34801561050c57600080fd5b50610515610b93565b6040805160ff9092168252519081900360200190f35b34801561053757600080fd5b50610234610ba1565b34801561054c57600080fd5b506103e5610baf565b34801561056157600080fd5b50610372610bb5565b34801561057657600080fd5b50610234600160a060020a0360043516602435610c12565b34801561059a57600080fd5b50610372600435610c63565b3480156105b257600080fd5b50610234610c84565b3480156105c757600080fd5b50610234610c8d565b3480156105dc57600080fd5b50610234600160a060020a0360043516602435610c96565b34801561060057600080fd5b50610609610cb3565b60408051600160a060020a039092168252519081900360200190f35b34801561063157600080fd5b506103e5600160a060020a0360043516610cc2565b34801561065257600080fd5b50610372610cdd565b34801561066757600080fd5b50610234610d4b565b34801561067c57600080fd5b50610372610db1565b34801561069157600080fd5b5061039e610dd1565b3480156106a657600080fd5b50610609610df5565b3480156106bb57600080fd5b50610272610e04565b3480156106d057600080fd5b50610272610e29565b3480156106e557600080fd5b50610372600160a060020a0360043516610e84565b34801561070657600080fd5b50610234610ec8565b34801561071b57600080fd5b50610234600160a060020a0360043516602435610ed1565b34801561073f57600080fd5b50610234600160a060020a0360043516602435610ef6565b34801561076357600080fd5b506103e5600160a060020a0360043581169060243516610f13565b34801561078a57600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261037294369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505060ff85351695505050602083013592604081013515159250606081013515159150608001351515610f3e565b34801561084157600080fd5b50610372600160a060020a0360043516610fe4565b34801561086257600080fd5b5061039e611004565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191660009081526004602052604090205460ff1690565b60085460ff1681565b6006805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561092e5780601f106109035761010080835404028352916020019161092e565b820191906000526020600020905b81548152906001019060200180831161091157829003601f168201915b505050505081565b60055460009060a060020a900460ff16151561095157600080fd5b61095b8383611028565b9392505050565b6109cc826009836040518082805190602001908083835b602083106109985780518252601f199092019160209182019101610979565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611045565b5050565b60055460009060a060020a900460ff16156109ea57600080fd5b600b546001819055600354600160a060020a0316600090815260208190526040902055610a1561105a565b90505b90565b7ffd155c670000000000000000000000000000000000000000000000000000000081565b60015490565b60055460a060020a900460ff1681565b7f01ffc9a70000000000000000000000000000000000000000000000000000000081565b600d5481565b600061095b836009846040518082805190602001908083835b60208310610ab75780518252601f199092019160209182019101610a98565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505061107c565b60055460009060a060020a900460ff161515610b0657600080fd5b610b1184848461109b565b949350505050565b600354600160a060020a03163314610b3057600080fd5b60055460a060020a900460ff1615610b4757600080fd5b600d55565b600354600160a060020a03163314610b6357600080fd5b610b9081604080519081016040528060068152602001600080516020611ae18339815191528152506110b9565b50565b600a54610100900460ff1681565b600e54610100900460ff1681565b600b5481565b600354600160a060020a03163314610bcc57600080fd5b600a5460ff161515610bdd57600080fd5b600a805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60055460009060a060020a900460ff161515610c2d57600080fd5b6000600d541115610c5957600d54600154610c4e908463ffffffff6111ca16565b1115610c5957600080fd5b61095b83836111dd565b60055460a060020a900460ff161515610c7b57600080fd5b610b90816112e3565b600c5460ff1681565b600a5460ff1681565b600a5460009060ff1615610ca957600080fd5b61095b83836112ed565b600554600160a060020a031681565b600160a060020a031660009081526020819052604090205490565b600354600160a060020a03163314610cf457600080fd5b600354604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26003805473ffffffffffffffffffffffffffffffffffffffff19169055565b600354600090600160a060020a03163314610d6557600080fd5b60085460ff1615610d7557600080fd5b6008805460ff191660011790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a150600190565b600e54610100900460ff161515610dc757600080fd5b610dcf6113dc565b565b7f98b0f3210000000000000000000000000000000000000000000000000000000081565b600354600160a060020a031681565b6040805180820190915260068152600080516020611ae1833981519152602082015281565b6007805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561092e5780601f106109035761010080835404028352916020019161092e565b600354600160a060020a03163314610e9b57600080fd5b610b9081604080519081016040528060068152602001600080516020611ae183398151915281525061143b565b600e5460ff1681565b60055460009060a060020a900460ff161515610eec57600080fd5b61095b838361150d565b600a5460009060ff1615610f0957600080fd5b61095b838361152a565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600354600160a060020a03163314610f5557600080fd5b60055460a060020a900460ff1615610f6c57600080fd5b8651610f7f9060069060208a0190611a48565b508551610f93906007906020890190611a48565b50600a805460ff90961661010090810261ff001997881617909155600b94909455600c805493151560ff19948516179055600e80549115159094029115159216919091179092169190911790555050565b600354600160a060020a03163314610ffb57600080fd5b610b90816115c3565b7f6125ede50000000000000000000000000000000000000000000000000000000081565b600a5460009060ff161561103b57600080fd5b61095b8383611641565b61104f828261107c565b15156109cc57600080fd5b600354600090600160a060020a0316331461107457600080fd5b610a156116a7565b600160a060020a03166000908152602091909152604090205460ff1690565b600a5460009060ff16156110ae57600080fd5b610b118484846116d0565b611123826009836040518082805190602001908083835b602083106110ef5780518252601f1990920191602091820191016110d0565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611833565b81600160a060020a03167fd211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803a826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561118c578181015183820152602001611174565b50505050905090810190601f1680156111b95780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b818101828110156111d757fe5b92915050565b600061120c33604080519081016040528060068152602001600080516020611ae1833981519152815250610962565b60085460ff161561121c57600080fd5b60015461122f908363ffffffff6111ca16565b600155600160a060020a03831660009081526020819052604090205461125b908363ffffffff6111ca16565b600160a060020a03841660008181526020818152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a03851691600091600080516020611b018339815191529181900360200190a350600192915050565b610b903382611855565b336000908152600260209081526040808320600160a060020a038616845290915281205480831061134157336000908152600260209081526040808320600160a060020a0388168452909152812055611376565b611351818463ffffffff61194416565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600354600160a060020a031633146113f357600080fd5b600a5460ff161561140357600080fd5b600a805460ff191660011790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b6114a5826009836040518082805190602001908083835b602083106114715780518252601f199092019160209182019101611452565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611956565b81600160a060020a03167fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489826040518080602001828103825283818151815260200191508051906020019080838360008381101561118c578181015183820152602001611174565b600a5460009060ff161561152057600080fd5b61095b838361197b565b336000908152600260209081526040808320600160a060020a038616845290915281205461155e908363ffffffff6111ca16565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a03811615156115d857600080fd5b600354604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b6005805474ff0000000000000000000000000000000000000000191660a060020a179055600190565b600160a060020a0383166000908152602081905260408120548211156116f557600080fd5b600160a060020a038416600090815260026020908152604080832033845290915290205482111561172557600080fd5b600160a060020a038316151561173a57600080fd5b600160a060020a038416600090815260208190526040902054611763908363ffffffff61194416565b600160a060020a038086166000908152602081905260408082209390935590851681522054611798908363ffffffff6111ca16565b600160a060020a038085166000908152602081815260408083209490945591871681526002825282812033825290915220546117da908363ffffffff61194416565b600160a060020a0380861660008181526002602090815260408083203384528252918290209490945580518681529051928716939192600080516020611b01833981519152929181900390910190a35060019392505050565b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a03821660009081526020819052604090205481111561187a57600080fd5b600160a060020a0382166000908152602081905260409020546118a3908263ffffffff61194416565b600160a060020a0383166000908152602081905260409020556001546118cf908263ffffffff61194416565b600155604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a03851691600080516020611b018339815191529181900360200190a35050565b60008282111561195057fe5b50900390565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b3360009081526020819052604081205482111561199757600080fd5b600160a060020a03831615156119ac57600080fd5b336000908152602081905260409020546119cc908363ffffffff61194416565b3360009081526020819052604080822092909255600160a060020a038516815220546119fe908363ffffffff6111ca16565b600160a060020a03841660008181526020818152604091829020939093558051858152905191923392600080516020611b018339815191529281900390910190a350600192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611a8957805160ff1916838001178555611ab6565b82800160010185558215611ab6579182015b82811115611ab6578251825591602001919060010190611a9b565b50611ac2929150611ac6565b5090565b610a1891905b80821115611ac25760008155600101611acc56006d696e7465720000000000000000000000000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820746ca15eb8375f84be54139dbbd0af9e557dd217c09be67d7a57e3d9daec7d810029",
  "sourceMap": "291:3416:0:-;;;436:35:27;;;-1:-1:-1;;436:35:27;;;247:26:19;;;-1:-1:-1;;1470:26:0;;;;;1872:185;5:2:-1;;;;30:1;27;20:12;5:2;1872:185:0;;;;;;;;;;;;;;;;;;;;;;;;;;567:5:21;:18;;-1:-1:-1;;;;;;567:18:21;575:10;567:18;;;1872:185:0;;;;;;;;;;;649:38:18;668:18;649;;;;:38;:::i;:::-;-1:-1:-1;;;;;568:20:4;;;;560:29;;;;;;600:8;:31;;620:10;-1:-1:-1;;;;;;600:31:4;;;;;;;641:5;:14;;;;;-1:-1:-1;;;;;641:14:4;;;;;666:40;685:20;666:18;;;;:40;:::i;:::-;-1:-1:-1;591:12:6;;;;:4;;:12;;;;;:::i;:::-;-1:-1:-1;613:16:6;;;;:6;;:16;;;;;:::i;:::-;-1:-1:-1;640:37:6;659:17;640:18;;;;:37;:::i;:::-;-1:-1:-1;2008:42:0;;-1:-1:-1;2027:22:0;;-1:-1:-1;2008:18:0;;;;:42;:::i;:::-;1872:185;;;291:3416;;987:156:18;1065:26;;;;;;1057:35;;;;;;1098:33;;;;;;:19;:33;;;;;:40;;-1:-1:-1;;1098:40:18;1134:4;1098:40;;;987:156::o;291:3416:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;291:3416:0;;;-1:-1:-1;291:3416:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;",
  "deployedSourceMap": "291:3416:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;775:142:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;775:142:18;-1:-1:-1;;775:142:18;;;;;;;;;;;;;;;;;;;;;;;436:35:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;436:35:27;;;;418:18:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;418:18:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;418:18:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3164:138:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3164:138:0;-1:-1:-1;;;;;3164:138:0;;;;;;;837:114:15;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;837:114:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;837:114:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;837:114:15;;-1:-1:-1;837:114:15;;-1:-1:-1;;;;;;;837:114:15;;;2641:177:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2641:177:0;;;;358:53:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;358:53:6;;;;;;;;-1:-1:-1;;358:53:6;;;;;;;;;;;;;;389:83:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;389:83:22;;;;;;;;;;;;;;;;;;;;53:21:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:21:3;;;;230:54:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;230:54:18;;;;1562:26:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1562:26:0;;;;1091:136:15;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1091:136:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1091:136:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1091:136:15;;-1:-1:-1;1091:136:15;;-1:-1:-1;;;;;;;1091:136:15;2964:194:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2964:194:0;-1:-1:-1;;;;;2964:194:0;;;;;;;;;;;;2515:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2515:120:0;;;;;830:99:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;830:99:29;-1:-1:-1;;;;;830:99:29;;;;;1470:26:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1470:26:0;;;;;;;;;;;;;;;;;;;;;;;1620:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1620:20:0;;;;1502:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1502:28:0;;;;838:92:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;838:92:19;;;;3308:232:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3308:232:0;-1:-1:-1;;;;;3308:232:0;;;;;;;3546:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3546:86:0;;;;;1536:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1536:20:0;;;;247:26:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;247:26:19;;;;957:205:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;957:205:28;-1:-1:-1;;;;;957:205:28;;;;;;;484:24:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;484:24:4;;;;;;;;-1:-1:-1;;;;;484:24:4;;;;;;;;;;;;;;1149:99:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1149:99:22;-1:-1:-1;;;;;1149:99:22;;;;;1001:111:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:21;;;;1280:140:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1280:140:27;;;;3638:67:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3638:67:0;;;;1405:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1405:58:0;;;;238:20:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:21;;;;346:45:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;346:45:29;;;;442:20:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;442:20:6;;;;646:93:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;646:93:29;-1:-1:-1;;;;;646:93:29;;;;;1594:20:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1594:20:0;;;;2824:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2824:134:0;-1:-1:-1;;;;;2824:134:0;;;;;;;758:195:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;758:195:28;-1:-1:-1;;;;;758:195:28;;;;;;;2321:153:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2321:153:30;-1:-1:-1;;;;;2321:153:30;;;;;;;;;;2063:446:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2063:446:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2063:446:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2063:446:0;;;;-1:-1:-1;2063:446:0;-1:-1:-1;2063:446:0;;-1:-1:-1;2063:446:0;;;;;;;;-1:-1:-1;2063:446:0;;-1:-1:-1;;2063:446:0;;;;;-1:-1:-1;;;2063:446:0;;;;;;;;;;;;-1:-1:-1;2063:446:0;;;;;;;-1:-1:-1;2063:446:0;;;;;;;1274:103:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:21;-1:-1:-1;;;;;1274:103:21;;;;;421:56:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;421:56:4;;;;775:142:18;-1:-1:-1;;879:33:18;858:4;879:33;;;:19;:33;;;;;;;;;775:142::o;436:35:27:-;;;;;;:::o;418:18:6:-;;;;;;;;;;;;;;;-1:-1:-1;;418:18:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3164:138:0:-;122:9:3;;3243:4:0;;-1:-1:-1;;;122:9:3;;;;114:18;;;;;;;;3266:29:0;3280:7;3289:5;3266:13;:29::i;:::-;3259:36;3164:138;-1:-1:-1;;;3164:138:0:o;837:114:15:-;917:29;936:9;917:5;923;917:12;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;917:12:15;;;;;-1:-1:-1;917:12:15;;;;;;;;;;;;-1:-1:-1;;917:18:15;:29::i;:::-;837:114;;:::o;2641:177:0:-;201:9:3;;2694:4:0;;-1:-1:-1;;;201:9:3;;;;200:10;192:19;;;;;;2725:13:0;;2710:12;:28;;;2757:5;;-1:-1:-1;;;;;2757:5:0;-1:-1:-1;2748:15:0;;;;;;;;;;:30;2795:16;:14;:16::i;:::-;2788:23;;221:1:3;2641:177:0;:::o;358:53:6:-;;;:::o;389:83:22:-;455:12;;389:83;:::o;53:21:3:-;;;-1:-1:-1;;;53:21:3;;;;;:::o;230:54:18:-;;;:::o;1562:26:0:-;;;;:::o;1091:136:15:-;1174:4;1195:27;1212:9;1195:5;1201;1195:12;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1195:12:15;;;;;-1:-1:-1;1195:12:15;;;;;;;;;;;;-1:-1:-1;;1195:16:15;:27::i;2964:194:0:-;122:9:3;;3090:4:0;;-1:-1:-1;;;122:9:3;;;;114:18;;;;;;;;3113:38:0;3132:5;3139:3;3144:6;3113:18;:38::i;:::-;3106:45;2964:194;-1:-1:-1;;;;2964:194:0:o;2515:120::-;719:5:21;;-1:-1:-1;;;;;719:5:21;705:10;:19;697:28;;;;;;201:9:3;;-1:-1:-1;;;201:9:3;;;;200:10;192:19;;;;;;2602:11:0;:26;2515:120::o;830:99:29:-;719:5:21;;-1:-1:-1;;;;;719:5:21;705:10;:19;697:28;;;;;;892:32:29;903:7;912:11;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;912:11:29;;;892:10;:32::i;:::-;830:99;:::o;1470:26:0:-;;;;;;;;;:::o;1620:20::-;;;;;;;;;:::o;1502:28::-;;;;:::o;838:92:19:-;719:5:21;;-1:-1:-1;;;;;719:5:21;705:10;:19;697:28;;;;;;568:6:19;;;;560:15;;;;;;;;891:6;:14;;-1:-1:-1;;891:14:19;;;916:9;;;;900:5;;916:9;838:92::o;3308:232:0:-;122:9:3;;3382:4:0;;-1:-1:-1;;;122:9:3;;;;114:18;;;;;;;;3416:1:0;3402:11;;:15;3398:95;;;3470:11;;3441:12;;:25;;3458:7;3441:25;:16;:25;:::i;:::-;:40;;3433:49;;;;;;3509:24;3520:3;3525:7;3509:10;:24::i;3546:86::-;122:9:3;;-1:-1:-1;;;122:9:3;;;;114:18;;;;;;;;3607::0;3618:6;3607:10;:18::i;1536:20::-;;;;;;:::o;247:26:19:-;;;;;;:::o;957:205:28:-;416:6:19;;1078:12:28;;416:6:19;;415:7;407:16;;;;;;1107:50:28;1130:8;1140:16;1107:22;:50::i;484:24:4:-;;;-1:-1:-1;;;;;484:24:4;;:::o;1149:99:22:-;-1:-1:-1;;;;;1227:16:22;1205:7;1227:16;;;;;;;;;;;;1149:99::o;1001:111:21:-;719:5;;-1:-1:-1;;;;;719:5:21;705:10;:19;697:28;;;;;;1077:5;;1058:25;;-1:-1:-1;;;;;1077:5:21;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:21;;;1001:111::o;1280:140:27:-;719:5:21;;1339:4:27;;-1:-1:-1;;;;;719:5:21;705:10;:19;697:28;;;;;;511:15:27;;;;510:16;502:25;;;;;;1351:15;:22;;-1:-1:-1;;1351:22:27;1369:4;1351:22;;;1384:14;;;;1351:15;;1384:14;-1:-1:-1;1411:4:27;1280:140;:::o;3638:67:0:-;1839:8;;;;;;;1831:17;;;;;;;;3685:13;:11;:13::i;:::-;3638:67::o;1405:58::-;;;:::o;238:20:21:-;;;-1:-1:-1;;;;;238:20:21;;:::o;346:45:29:-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;346:45:29;;;;;:::o;442:20:6:-;;;;;;;;;;;;;;;-1:-1:-1;;442:20:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;646:93:29;719:5:21;;-1:-1:-1;;;;;719:5:21;705:10;:19;697:28;;;;;;705:29:29;713:7;722:11;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;722:11:29;;;705:7;:29::i;1594:20:0:-;;;;;;:::o;2824:134::-;122:9:3;;2901:4:0;;-1:-1:-1;;;122:9:3;;;;114:18;;;;;;;;2924:27:0;2939:3;2944:6;2924:14;:27::i;758:195:28:-;416:6:19;;874:12:28;;416:6:19;;415:7;407:16;;;;;;903:45:28;926:8;936:11;903:22;:45::i;2321:153:30:-;-1:-1:-1;;;;;2444:15:30;;;2420:7;2444:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;2321:153::o;2063:446:0:-;719:5:21;;-1:-1:-1;;;;;719:5:21;705:10;:19;697:28;;;;;;201:9:3;;-1:-1:-1;;;201:9:3;;;;200:10;192:19;;;;;;2304:12:0;;;;:4;;:12;;;;;:::i;:::-;-1:-1:-1;2326:16:0;;;;:6;;:16;;;;;:::i;:::-;-1:-1:-1;2352:8:0;:20;;;;;;;;;;-1:-1:-1;;2352:20:0;;;;;;;2382:13;:30;;;;2422:8;:20;;;;;-1:-1:-1;;2422:20:0;;;;;;2452:8;:20;;2482;;;;;;2452;;;;;;;;;2482;;;;;;;;;-1:-1:-1;;2063:446:0:o;1274:103:21:-;719:5;;-1:-1:-1;;;;;719:5:21;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;421:56:4:-;;;:::o;592:162:28:-;416:6:19;;697:4:28;;416:6:19;;415:7;407:16;;;;;;718:31:28;732:8;742:6;718:13;:31::i;666:111:16:-;754:17;758:5;765;754:3;:17::i;:::-;746:26;;;;;;;690:92:6;719:5:21;;736:4:6;;-1:-1:-1;;;;;719:5:21;705:10;:19;697:28;;;;;;759:16:6;:14;:16::i;855:128:16:-;-1:-1:-1;;;;;959:19:16;938:4;959:19;;;;;;;;;;;;;;;855:128::o;400:188:28:-;416:6:19;;524:4:28;;416:6:19;;415:7;407:16;;;;;;545:38:28;564:5;571:3;576:6;545:18;:38::i;1613:149:15:-;1687:30;1707:9;1687:5;1693;1687:12;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1687:12:15;;;;;-1:-1:-1;1687:12:15;;;;;;;;;;;;-1:-1:-1;;1687:19:15;:30::i;:::-;1740:9;-1:-1:-1;;;;;1728:29:15;;1751:5;1728:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1728:29:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1613:149;;:::o;1238:128:20:-;1319:7;;;1339;;;;1332:15;;;;1238:128;;;;:::o;854:312:27:-;968:4;514:34:29;524:10;536:11;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;536:11:29;;;514:9;:34::i;:::-;511:15:27;;;;510:16;502:25;;;;;;997:12;;:25;;1014:7;997:25;:16;:25;:::i;:::-;982:12;:40;-1:-1:-1;;;;;1044:13:27;;:8;:13;;;;;;;;;;;:26;;1062:7;1044:26;:17;:26;:::i;:::-;-1:-1:-1;;;;;1028:13:27;;:8;:13;;;;;;;;;;;;:42;;;;1081:18;;;;;;;1028:13;;1081:18;;;;;;;;;1110:34;;;;;;;;-1:-1:-1;;;;;1110:34:27;;;1127:1;;-1:-1:-1;;;;;;;;;;;1110:34:27;;;;;;;;-1:-1:-1;1157:4:27;854:312;;;;:::o;353:73:23:-;396:25;402:10;414:6;396:5;:25::i;3679:432:30:-;3826:10;3785:4;3818:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3818:29:30;;;;;;;;;;3857:28;;;3853:165;;3903:10;3927:1;3895:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3895:29:30;;;;;;;;;:33;3853:165;;;3981:30;:8;3994:16;3981:30;:12;:30;:::i;:::-;3957:10;3949:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3949:29:30;;;;;;;;;:62;3853:165;4037:10;4059:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;4028:61:30;;4059:29;;;;;;;;;;;4028:61;;;;;;;;;4037:10;4028:61;;;;;;;;;;;-1:-1:-1;4102:4:30;;3679:432;-1:-1:-1;;;3679:432:30:o;666:90:19:-;719:5:21;;-1:-1:-1;;;;;719:5:21;705:10;:19;697:28;;;;;;416:6:19;;;;415:7;407:16;;;;;;720:6;:13;;-1:-1:-1;;720:13:19;729:4;720:13;;;744:7;;;;720:6;;744:7;666:90::o;1347:141:15:-;1418:27;1435:9;1418:5;1424;1418:12;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1418:12:15;;;;;-1:-1:-1;1418:12:15;;;;;;;;;;;;-1:-1:-1;;1418:16:15;:27::i;:::-;1466:9;-1:-1:-1;;;;;1456:27:15;;1477:5;1456:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;242:154:28;416:6:19;;343:4:28;;416:6:19;;415:7;407:16;;;;;;364:27:28;379:3;384:6;364:14;:27::i;2926:296:30:-;3089:10;3027:4;3081:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3081:29:30;;;;;;;;;;:46;;3115:11;3081:46;:33;:46;:::i;:::-;3049:10;3041:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3041:29:30;;;;;;;;;;;;:87;;;3139:61;;;;;;3041:29;;3139:61;;;;;;;;;;;-1:-1:-1;3213:4:30;2926:296;;;;:::o;1512:171:21:-;-1:-1:-1;;;;;1582:23:21;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:21;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:21;-1:-1:-1;;;;;1661:17:21;;;;;;;;;;1512:171::o;1814:188:30:-;1901:10;1881:4;1893:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;1893:29:30;;;;;;;;;;;:38;;;1942;;;;;;;1881:4;;1893:29;;1901:10;;1942:38;;;;;;;;-1:-1:-1;1993:4:30;1814:188;;;;:::o;235:96:3:-;287:9;:16;;-1:-1:-1;;287:16:3;-1:-1:-1;;;287:16:3;;;299:4;235:96;:::o;726:470:30:-;-1:-1:-1;;;;;864:15:30;;832:4;864:15;;;;;;;;;;;854:25;;;846:34;;;;;;-1:-1:-1;;;;;904:14:30;;;;;;:7;:14;;;;;;;;919:10;904:26;;;;;;;;894:36;;;886:45;;;;;;-1:-1:-1;;;;;945:17:30;;;;937:26;;;;;;-1:-1:-1;;;;;988:15:30;;:8;:15;;;;;;;;;;;:27;;1008:6;988:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;970:15:30;;;:8;:15;;;;;;;;;;;:45;;;;1037:13;;;;;;;:25;;1055:6;1037:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;1021:13:30;;;:8;:13;;;;;;;;;;;:41;;;;1097:14;;;;;:7;:14;;;;;1112:10;1097:26;;;;;;;:38;;1128:6;1097:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;1068:14:30;;;;;;;:7;:14;;;;;;;;1083:10;1068:26;;;;;;;;:67;;;;1146:28;;;;;;;;;;;1068:14;;-1:-1:-1;;;;;;;;;;;1146:28:30;;;;;;;;;;-1:-1:-1;1187:4:30;726:470;;;;;:::o;486:104:16:-;-1:-1:-1;;;;;558:19:16;580:5;558:19;;;;;;;;;;;:27;;-1:-1:-1;;558:27:16;;;486:104::o;430:438:23:-;-1:-1:-1;;;;;508:14:23;;:8;:14;;;;;;;;;;;498:24;;;490:33;;;;;;-1:-1:-1;;;;;718:14:23;;:8;:14;;;;;;;;;;;:26;;737:6;718:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;701:14:23;;:8;:14;;;;;;;;;;:43;765:12;;:24;;782:6;765:24;:16;:24;:::i;:::-;750:12;:39;800:18;;;;;;;;-1:-1:-1;;;;;800:18:23;;;;;;;;;;;;;829:34;;;;;;;;852:1;;-1:-1:-1;;;;;829:34:23;;;-1:-1:-1;;;;;;;;;;;829:34:23;;;;;;;;430:438;;:::o;1060:116:20:-;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:20;;;1060:116::o;321:100:16:-;-1:-1:-1;;;;;390:19:16;:12;:19;;;;;;;;;;;:26;;-1:-1:-1;;390:26:16;412:4;390:26;;;321:100::o;626:321:22:-;728:10;689:4;719:20;;;;;;;;;;;709:30;;;701:39;;;;;;-1:-1:-1;;;;;754:17:22;;;;746:26;;;;;;811:10;802:8;:20;;;;;;;;;;;:32;;827:6;802:32;:24;:32;:::i;:::-;788:10;779:8;:20;;;;;;;;;;;:55;;;;-1:-1:-1;;;;;856:13:22;;;;;;:25;;874:6;856:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;840:13:22;;:8;:13;;;;;;;;;;;;:41;;;;892:33;;;;;;;840:13;;901:10;;-1:-1:-1;;;;;;;;;;;892:33:22;;;;;;;;;-1:-1:-1;938:4:22;626:321;;;;:::o;291:3416:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;291:3416:0;;;-1:-1:-1;291:3416:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;",
  "source": "pragma solidity ^0.4.24;\n\nimport \"zeppelin-solidity/contracts/token/ERC20/RBACMintableToken.sol\";\nimport \"zeppelin-solidity/contracts/token/ERC20/BurnableToken.sol\";\nimport \"zeppelin-solidity/contracts/token/ERC20/PausableToken.sol\";\nimport \"tokenboost-solidity/contracts/token/Token.sol\";\n\ncontract ERC20Token is Token, RBACMintableToken, BurnableToken, PausableToken {\n    /**\n     * @notice this.owner.selector ^ this.renounceOwnership.selector ^ this.transferOwnership.selector\n        ^ this.template.selector ^ this.activate.selector ^ this.name.selector ^ this.symbol.selector\n        ^ this.totalSupply.selector ^ this.balanceOf.selector ^ bytes4(keccak256(\"transfer(address,uint256)\"))\n        ^ this.allowance.selector ^ this.transferFrom.selector ^ this.approve.selector\n        ^ this.increaseApproval.selector ^ this.decreaseApproval.selector\n        ^ this.mintingFinished.selector ^ this.finishMinting.selector ^ this.checkRole.selector ^ this.hasRole.selector\n        ^ this.ROLE_MINTER.selector ^ this.addMinter.selector ^ this.removeMinter.selector\n        ^ this.burn.selector ^ this.paused.selector ^ this.pause.selector ^ this.unpause.selector\n        ^ this.decimals.selector ^ this.initialSupply.selector ^ this.mintable.selector ^ this.maxMintable.selector\n        ^ this.burnable.selector ^ this.pausable.selector ^ this.update.selector ^ this.setMaxMintable.selector\n     */\n    bytes4 public constant InterfaceId_ERC20Token = 0x98b0f321;\n\n    uint8 public decimals = 18;\n    uint256 public initialSupply;\n    bool public mintable;\n    uint256 public maxMintable;\n    bool public burnable;\n    bool public pausable;\n\n    modifier whenBurnable() {\n        require(burnable);\n        _;\n    }\n\n    modifier whenMintable() {\n        require(mintable);\n        _;\n    }\n\n    modifier whenPausable() {\n        require(pausable);\n        _;\n    }\n\n    constructor(\n        address _owner,\n        string _name,\n        string _symbol\n    ) public Token(_owner, _name, _symbol) {\n\n        _registerInterface(InterfaceId_ERC20Token);\n    }\n\n    function update(\n        string _name,\n        string _symbol,\n        uint8 _decimals,\n        uint256 _initialSupply,\n        bool _mintable,\n        bool _burnable,\n        bool _pausable\n    ) public onlyOwner whenNotActivated {\n        name = _name;\n        symbol = _symbol;\n        decimals = _decimals;\n        initialSupply = _initialSupply;\n        mintable = _mintable;\n        burnable = _burnable;\n        pausable = _pausable;\n    }\n\n    function setMaxMintable(uint _maxMintable) onlyOwner whenNotActivated public {\n        maxMintable = _maxMintable;\n    }\n\n    function activate() whenNotActivated public returns (bool) {\n        totalSupply_ = initialSupply;\n        balances[owner] = totalSupply_;\n        return super.activate();\n    }\n\n    function transfer(address _to, uint256 _value) whenActivated public returns (bool) {\n        return super.transfer(_to, _value);\n    }\n\n    function transferFrom(\n        address _from,\n        address _to,\n        uint256 _value\n    ) whenActivated public returns (bool) {\n        return super.transferFrom(_from, _to, _value);\n    }\n\n    function approve(address spender, uint256 value) whenActivated public returns (bool) {\n        return super.approve(spender, value);\n    }\n\n    function mint(address _to, uint256 _amount) whenActivated public returns (bool) {\n        if (maxMintable > 0) {\n            require(totalSupply_.add(_amount) <= maxMintable);\n        }\n        return super.mint(_to, _amount);\n    }\n\n    function burn(uint256 _value) whenActivated public {\n        super.burn(_value);\n    }\n\n    function pause() whenPausable public {\n        super.pause();\n    }\n}",
  "sourcePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity-erc20token/contracts/token/erc20/ERC20Token.sol",
  "ast": {
    "absolutePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity-erc20token/contracts/token/erc20/ERC20Token.sol",
    "exportedSymbols": {
      "ERC20Token": [
        273
      ]
    },
    "id": 274,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:0"
      },
      {
        "absolutePath": "zeppelin-solidity/contracts/token/ERC20/RBACMintableToken.sol",
        "file": "zeppelin-solidity/contracts/token/ERC20/RBACMintableToken.sol",
        "id": 2,
        "nodeType": "ImportDirective",
        "scope": 274,
        "sourceUnit": 4655,
        "src": "26:71:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "zeppelin-solidity/contracts/token/ERC20/BurnableToken.sol",
        "file": "zeppelin-solidity/contracts/token/ERC20/BurnableToken.sol",
        "id": 3,
        "nodeType": "ImportDirective",
        "scope": 274,
        "sourceUnit": 4290,
        "src": "98:67:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "zeppelin-solidity/contracts/token/ERC20/PausableToken.sol",
        "file": "zeppelin-solidity/contracts/token/ERC20/PausableToken.sol",
        "id": 4,
        "nodeType": "ImportDirective",
        "scope": 274,
        "sourceUnit": 4607,
        "src": "166:67:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "tokenboost-solidity/contracts/token/Token.sol",
        "file": "tokenboost-solidity/contracts/token/Token.sol",
        "id": 5,
        "nodeType": "ImportDirective",
        "scope": 274,
        "sourceUnit": 814,
        "src": "234:55:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 6,
              "name": "Token",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 813,
              "src": "314:5:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Token_$813",
                "typeString": "contract Token"
              }
            },
            "id": 7,
            "nodeType": "InheritanceSpecifier",
            "src": "314:5:0"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 8,
              "name": "RBACMintableToken",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4654,
              "src": "321:17:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RBACMintableToken_$4654",
                "typeString": "contract RBACMintableToken"
              }
            },
            "id": 9,
            "nodeType": "InheritanceSpecifier",
            "src": "321:17:0"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 10,
              "name": "BurnableToken",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4289,
              "src": "340:13:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BurnableToken_$4289",
                "typeString": "contract BurnableToken"
              }
            },
            "id": 11,
            "nodeType": "InheritanceSpecifier",
            "src": "340:13:0"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 12,
              "name": "PausableToken",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4606,
              "src": "355:13:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_PausableToken_$4606",
                "typeString": "contract PausableToken"
              }
            },
            "id": 13,
            "nodeType": "InheritanceSpecifier",
            "src": "355:13:0"
          }
        ],
        "contractDependencies": [
          512,
          556,
          813,
          3751,
          3831,
          3882,
          3942,
          4122,
          4218,
          4289,
          4366,
          4398,
          4504,
          4606,
          4654,
          4901
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 273,
        "linearizedBaseContracts": [
          273,
          4606,
          3942,
          4289,
          4654,
          3751,
          4504,
          813,
          512,
          556,
          3882,
          3831,
          4122,
          4901,
          4218,
          4366,
          4398
        ],
        "name": "ERC20Token",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 16,
            "name": "InterfaceId_ERC20Token",
            "nodeType": "VariableDeclaration",
            "scope": 273,
            "src": "1405:58:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes4",
              "typeString": "bytes4"
            },
            "typeName": {
              "id": 14,
              "name": "bytes4",
              "nodeType": "ElementaryTypeName",
              "src": "1405:6:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes4",
                "typeString": "bytes4"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30783938623066333231",
              "id": 15,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1453:10:0",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2561733409_by_1",
                "typeString": "int_const 2561733409"
              },
              "value": "0x98b0f321"
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 19,
            "name": "decimals",
            "nodeType": "VariableDeclaration",
            "scope": 273,
            "src": "1470:26:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 17,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "1470:5:0",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "3138",
              "id": 18,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1494:2:0",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_18_by_1",
                "typeString": "int_const 18"
              },
              "value": "18"
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 21,
            "name": "initialSupply",
            "nodeType": "VariableDeclaration",
            "scope": 273,
            "src": "1502:28:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 20,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1502:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 23,
            "name": "mintable",
            "nodeType": "VariableDeclaration",
            "scope": 273,
            "src": "1536:20:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 22,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "1536:4:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 25,
            "name": "maxMintable",
            "nodeType": "VariableDeclaration",
            "scope": 273,
            "src": "1562:26:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 24,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1562:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 27,
            "name": "burnable",
            "nodeType": "VariableDeclaration",
            "scope": 273,
            "src": "1594:20:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 26,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "1594:4:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 29,
            "name": "pausable",
            "nodeType": "VariableDeclaration",
            "scope": 273,
            "src": "1620:20:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 28,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "1620:4:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 36,
              "nodeType": "Block",
              "src": "1671:45:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 32,
                        "name": "burnable",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27,
                        "src": "1689:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 31,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4919,
                        4920
                      ],
                      "referencedDeclaration": 4919,
                      "src": "1681:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 33,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1681:17:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 34,
                  "nodeType": "ExpressionStatement",
                  "src": "1681:17:0"
                },
                {
                  "id": 35,
                  "nodeType": "PlaceholderStatement",
                  "src": "1708:1:0"
                }
              ]
            },
            "documentation": null,
            "id": 37,
            "name": "whenBurnable",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 30,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1668:2:0"
            },
            "src": "1647:69:0",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 44,
              "nodeType": "Block",
              "src": "1746:45:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 40,
                        "name": "mintable",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23,
                        "src": "1764:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 39,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4919,
                        4920
                      ],
                      "referencedDeclaration": 4919,
                      "src": "1756:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 41,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1756:17:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 42,
                  "nodeType": "ExpressionStatement",
                  "src": "1756:17:0"
                },
                {
                  "id": 43,
                  "nodeType": "PlaceholderStatement",
                  "src": "1783:1:0"
                }
              ]
            },
            "documentation": null,
            "id": 45,
            "name": "whenMintable",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 38,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1743:2:0"
            },
            "src": "1722:69:0",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 52,
              "nodeType": "Block",
              "src": "1821:45:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 48,
                        "name": "pausable",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29,
                        "src": "1839:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 47,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4919,
                        4920
                      ],
                      "referencedDeclaration": 4919,
                      "src": "1831:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 49,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1831:17:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 50,
                  "nodeType": "ExpressionStatement",
                  "src": "1831:17:0"
                },
                {
                  "id": 51,
                  "nodeType": "PlaceholderStatement",
                  "src": "1858:1:0"
                }
              ]
            },
            "documentation": null,
            "id": 53,
            "name": "whenPausable",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 46,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1818:2:0"
            },
            "src": "1797:69:0",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 71,
              "nodeType": "Block",
              "src": "1997:60:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 68,
                        "name": "InterfaceId_ERC20Token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16,
                        "src": "2027:22:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      ],
                      "id": 67,
                      "name": "_registerInterface",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3881,
                      "src": "2008:18:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$",
                        "typeString": "function (bytes4)"
                      }
                    },
                    "id": 69,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2008:42:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 70,
                  "nodeType": "ExpressionStatement",
                  "src": "2008:42:0"
                }
              ]
            },
            "documentation": null,
            "id": 72,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 62,
                    "name": "_owner",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 55,
                    "src": "1973:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 63,
                    "name": "_name",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 57,
                    "src": "1981:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 64,
                    "name": "_symbol",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 59,
                    "src": "1988:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  }
                ],
                "id": 65,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 61,
                  "name": "Token",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 813,
                  "src": "1967:5:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_Token_$813_$",
                    "typeString": "type(contract Token)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1967:29:0"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 60,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 55,
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 72,
                  "src": "1893:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 54,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1893:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 57,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 72,
                  "src": "1917:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 56,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1917:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 59,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 72,
                  "src": "1939:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 58,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1939:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1883:76:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 66,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1997:0:0"
            },
            "scope": 273,
            "src": "1872:185:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 121,
              "nodeType": "Block",
              "src": "2294:215:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 95,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 93,
                      "name": "name",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 773,
                      "src": "2304:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 94,
                      "name": "_name",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 74,
                      "src": "2311:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "2304:12:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 96,
                  "nodeType": "ExpressionStatement",
                  "src": "2304:12:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 99,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 97,
                      "name": "symbol",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 775,
                      "src": "2326:6:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 98,
                      "name": "_symbol",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 76,
                      "src": "2335:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "2326:16:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 100,
                  "nodeType": "ExpressionStatement",
                  "src": "2326:16:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 103,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 101,
                      "name": "decimals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19,
                      "src": "2352:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 102,
                      "name": "_decimals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 78,
                      "src": "2363:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "2352:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "id": 104,
                  "nodeType": "ExpressionStatement",
                  "src": "2352:20:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 107,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 105,
                      "name": "initialSupply",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 21,
                      "src": "2382:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 106,
                      "name": "_initialSupply",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 80,
                      "src": "2398:14:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2382:30:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 108,
                  "nodeType": "ExpressionStatement",
                  "src": "2382:30:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 111,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 109,
                      "name": "mintable",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23,
                      "src": "2422:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 110,
                      "name": "_mintable",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 82,
                      "src": "2433:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "2422:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 112,
                  "nodeType": "ExpressionStatement",
                  "src": "2422:20:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 115,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 113,
                      "name": "burnable",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27,
                      "src": "2452:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 114,
                      "name": "_burnable",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 84,
                      "src": "2463:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "2452:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 116,
                  "nodeType": "ExpressionStatement",
                  "src": "2452:20:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 119,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 117,
                      "name": "pausable",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 29,
                      "src": "2482:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 118,
                      "name": "_pausable",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 86,
                      "src": "2493:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "2482:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 120,
                  "nodeType": "ExpressionStatement",
                  "src": "2482:20:0"
                }
              ]
            },
            "documentation": null,
            "id": 122,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 89,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 88,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4070,
                  "src": "2267:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2267:9:0"
              },
              {
                "arguments": null,
                "id": 91,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 90,
                  "name": "whenNotActivated",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 499,
                  "src": "2277:16:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2277:16:0"
              }
            ],
            "name": "update",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 87,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 74,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 122,
                  "src": "2088:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 73,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2088:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 76,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 122,
                  "src": "2110:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 75,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2110:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 78,
                  "name": "_decimals",
                  "nodeType": "VariableDeclaration",
                  "scope": 122,
                  "src": "2134:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 77,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "2134:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 80,
                  "name": "_initialSupply",
                  "nodeType": "VariableDeclaration",
                  "scope": 122,
                  "src": "2159:22:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 79,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2159:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 82,
                  "name": "_mintable",
                  "nodeType": "VariableDeclaration",
                  "scope": 122,
                  "src": "2191:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 81,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2191:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 84,
                  "name": "_burnable",
                  "nodeType": "VariableDeclaration",
                  "scope": 122,
                  "src": "2215:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 83,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2215:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 86,
                  "name": "_pausable",
                  "nodeType": "VariableDeclaration",
                  "scope": 122,
                  "src": "2239:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 85,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2239:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2078:181:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 92,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2294:0:0"
            },
            "scope": 273,
            "src": "2063:446:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 135,
              "nodeType": "Block",
              "src": "2592:43:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 133,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 131,
                      "name": "maxMintable",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25,
                      "src": "2602:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 132,
                      "name": "_maxMintable",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 124,
                      "src": "2616:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2602:26:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 134,
                  "nodeType": "ExpressionStatement",
                  "src": "2602:26:0"
                }
              ]
            },
            "documentation": null,
            "id": 136,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 127,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 126,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4070,
                  "src": "2558:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2558:9:0"
              },
              {
                "arguments": null,
                "id": 129,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 128,
                  "name": "whenNotActivated",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 499,
                  "src": "2568:16:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2568:16:0"
              }
            ],
            "name": "setMaxMintable",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 125,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 124,
                  "name": "_maxMintable",
                  "nodeType": "VariableDeclaration",
                  "scope": 136,
                  "src": "2539:17:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 123,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2539:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2538:19:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 130,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2592:0:0"
            },
            "scope": 273,
            "src": "2515:120:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 157,
              "nodeType": "Block",
              "src": "2700:118:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 145,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 143,
                      "name": "totalSupply_",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4137,
                      "src": "2710:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 144,
                      "name": "initialSupply",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 21,
                      "src": "2725:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2710:28:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 146,
                  "nodeType": "ExpressionStatement",
                  "src": "2710:28:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 151,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 147,
                        "name": "balances",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4135,
                        "src": "2748:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 149,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 148,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4040,
                        "src": "2757:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2748:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 150,
                      "name": "totalSupply_",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4137,
                      "src": "2766:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2748:30:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 152,
                  "nodeType": "ExpressionStatement",
                  "src": "2748:30:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 153,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4968,
                        "src": "2795:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_super$_ERC20Token_$273",
                          "typeString": "contract super ERC20Token"
                        }
                      },
                      "id": 154,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "activate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 812,
                      "src": "2795:14:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_bool_$",
                        "typeString": "function () returns (bool)"
                      }
                    },
                    "id": 155,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2795:16:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 142,
                  "id": 156,
                  "nodeType": "Return",
                  "src": "2788:23:0"
                }
              ]
            },
            "documentation": null,
            "id": 158,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 139,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 138,
                  "name": "whenNotActivated",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 499,
                  "src": "2661:16:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2661:16:0"
              }
            ],
            "name": "activate",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 137,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2658:2:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 142,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 141,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 158,
                  "src": "2694:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 140,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2694:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2693:6:0"
            },
            "scope": 273,
            "src": "2641:177:0",
            "stateMutability": "nonpayable",
            "superFunction": 812,
            "visibility": "public"
          },
          {
            "body": {
              "id": 175,
              "nodeType": "Block",
              "src": "2907:51:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 171,
                        "name": "_to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 160,
                        "src": "2939:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 172,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 162,
                        "src": "2944:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 169,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4968,
                        "src": "2924:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_super$_ERC20Token_$273",
                          "typeString": "contract super ERC20Token"
                        }
                      },
                      "id": 170,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4530,
                      "src": "2924:14:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (address,uint256) returns (bool)"
                      }
                    },
                    "id": 173,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2924:27:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 168,
                  "id": 174,
                  "nodeType": "Return",
                  "src": "2917:34:0"
                }
              ]
            },
            "documentation": null,
            "id": 176,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 165,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 164,
                  "name": "whenActivated",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 490,
                  "src": "2871:13:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2871:13:0"
              }
            ],
            "name": "transfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 163,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 160,
                  "name": "_to",
                  "nodeType": "VariableDeclaration",
                  "scope": 176,
                  "src": "2842:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 159,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2842:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 162,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 176,
                  "src": "2855:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 161,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2855:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2841:29:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 168,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 167,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 176,
                  "src": "2901:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 166,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2901:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2900:6:0"
            },
            "scope": 273,
            "src": "2824:134:0",
            "stateMutability": "nonpayable",
            "superFunction": 4530,
            "visibility": "public"
          },
          {
            "body": {
              "id": 196,
              "nodeType": "Block",
              "src": "3096:62:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 191,
                        "name": "_from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 178,
                        "src": "3132:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 192,
                        "name": "_to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 180,
                        "src": "3139:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 193,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 182,
                        "src": "3144:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 189,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4968,
                        "src": "3113:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_super$_ERC20Token_$273",
                          "typeString": "contract super ERC20Token"
                        }
                      },
                      "id": 190,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transferFrom",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4551,
                      "src": "3113:18:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (address,address,uint256) returns (bool)"
                      }
                    },
                    "id": 194,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3113:38:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 188,
                  "id": 195,
                  "nodeType": "Return",
                  "src": "3106:45:0"
                }
              ]
            },
            "documentation": null,
            "id": 197,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 185,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 184,
                  "name": "whenActivated",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 490,
                  "src": "3060:13:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3060:13:0"
              }
            ],
            "name": "transferFrom",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 183,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 178,
                  "name": "_from",
                  "nodeType": "VariableDeclaration",
                  "scope": 197,
                  "src": "2995:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 177,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2995:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 180,
                  "name": "_to",
                  "nodeType": "VariableDeclaration",
                  "scope": 197,
                  "src": "3018:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 179,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3018:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 182,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 197,
                  "src": "3039:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 181,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3039:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2985:74:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 188,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 187,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 197,
                  "src": "3090:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 186,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3090:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3089:6:0"
            },
            "scope": 273,
            "src": "2964:194:0",
            "stateMutability": "nonpayable",
            "superFunction": 4551,
            "visibility": "public"
          },
          {
            "body": {
              "id": 214,
              "nodeType": "Block",
              "src": "3249:53:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 210,
                        "name": "spender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 199,
                        "src": "3280:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 211,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 201,
                        "src": "3289:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 208,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4968,
                        "src": "3266:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_super$_ERC20Token_$273",
                          "typeString": "contract super ERC20Token"
                        }
                      },
                      "id": 209,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "approve",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4569,
                      "src": "3266:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (address,uint256) returns (bool)"
                      }
                    },
                    "id": 212,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3266:29:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 207,
                  "id": 213,
                  "nodeType": "Return",
                  "src": "3259:36:0"
                }
              ]
            },
            "documentation": null,
            "id": 215,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 204,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 203,
                  "name": "whenActivated",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 490,
                  "src": "3213:13:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3213:13:0"
              }
            ],
            "name": "approve",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 202,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 199,
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 215,
                  "src": "3181:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 198,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3181:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 201,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 215,
                  "src": "3198:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 200,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3198:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3180:32:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 207,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 206,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 215,
                  "src": "3243:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 205,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3243:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3242:6:0"
            },
            "scope": 273,
            "src": "3164:138:0",
            "stateMutability": "nonpayable",
            "superFunction": 4569,
            "visibility": "public"
          },
          {
            "body": {
              "id": 246,
              "nodeType": "Block",
              "src": "3388:152:0",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 228,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 226,
                      "name": "maxMintable",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25,
                      "src": "3402:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 227,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3416:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "3402:15:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 239,
                  "nodeType": "IfStatement",
                  "src": "3398:95:0",
                  "trueBody": {
                    "id": 238,
                    "nodeType": "Block",
                    "src": "3419:74:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 235,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 232,
                                    "name": "_amount",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 219,
                                    "src": "3458:7:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 230,
                                    "name": "totalSupply_",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4137,
                                    "src": "3441:12:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 231,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "add",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4035,
                                  "src": "3441:16:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 233,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3441:25:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 234,
                                "name": "maxMintable",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25,
                                "src": "3470:11:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "3441:40:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 229,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4919,
                              4920
                            ],
                            "referencedDeclaration": 4919,
                            "src": "3433:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                              "typeString": "function (bool) pure"
                            }
                          },
                          "id": 236,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3433:49:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 237,
                        "nodeType": "ExpressionStatement",
                        "src": "3433:49:0"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 242,
                        "name": "_to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 217,
                        "src": "3520:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 243,
                        "name": "_amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 219,
                        "src": "3525:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 240,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4968,
                        "src": "3509:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_super$_ERC20Token_$273",
                          "typeString": "contract super ERC20Token"
                        }
                      },
                      "id": 241,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "mint",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4484,
                      "src": "3509:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (address,uint256) returns (bool)"
                      }
                    },
                    "id": 244,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3509:24:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 225,
                  "id": 245,
                  "nodeType": "Return",
                  "src": "3502:31:0"
                }
              ]
            },
            "documentation": null,
            "id": 247,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 222,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 221,
                  "name": "whenActivated",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 490,
                  "src": "3352:13:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3352:13:0"
              }
            ],
            "name": "mint",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 220,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 217,
                  "name": "_to",
                  "nodeType": "VariableDeclaration",
                  "scope": 247,
                  "src": "3322:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 216,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3322:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 219,
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 247,
                  "src": "3335:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 218,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3335:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3321:30:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 225,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 224,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 247,
                  "src": "3382:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 223,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3382:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3381:6:0"
            },
            "scope": 273,
            "src": "3308:232:0",
            "stateMutability": "nonpayable",
            "superFunction": 4484,
            "visibility": "public"
          },
          {
            "body": {
              "id": 260,
              "nodeType": "Block",
              "src": "3597:35:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 257,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 249,
                        "src": "3618:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 254,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4968,
                        "src": "3607:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_super$_ERC20Token_$273",
                          "typeString": "contract super ERC20Token"
                        }
                      },
                      "id": 256,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "burn",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4241,
                      "src": "3607:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 258,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3607:18:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 259,
                  "nodeType": "ExpressionStatement",
                  "src": "3607:18:0"
                }
              ]
            },
            "documentation": null,
            "id": 261,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 252,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 251,
                  "name": "whenActivated",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 490,
                  "src": "3576:13:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3576:13:0"
              }
            ],
            "name": "burn",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 250,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 249,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 261,
                  "src": "3560:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 248,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3560:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3559:16:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 253,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3597:0:0"
            },
            "scope": 273,
            "src": "3546:86:0",
            "stateMutability": "nonpayable",
            "superFunction": 4241,
            "visibility": "public"
          },
          {
            "body": {
              "id": 271,
              "nodeType": "Block",
              "src": "3675:30:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 266,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4968,
                        "src": "3685:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_super$_ERC20Token_$273",
                          "typeString": "contract super ERC20Token"
                        }
                      },
                      "id": 268,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "pause",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3926,
                      "src": "3685:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 269,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3685:13:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 270,
                  "nodeType": "ExpressionStatement",
                  "src": "3685:13:0"
                }
              ]
            },
            "documentation": null,
            "id": 272,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 264,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 263,
                  "name": "whenPausable",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 53,
                  "src": "3655:12:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3655:12:0"
              }
            ],
            "name": "pause",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 262,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3652:2:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 265,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3675:0:0"
            },
            "scope": 273,
            "src": "3638:67:0",
            "stateMutability": "nonpayable",
            "superFunction": 3926,
            "visibility": "public"
          }
        ],
        "scope": 274,
        "src": "291:3416:0"
      }
    ],
    "src": "0:3707:0"
  },
  "legacyAST": {
    "absolutePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity-erc20token/contracts/token/erc20/ERC20Token.sol",
    "exportedSymbols": {
      "ERC20Token": [
        273
      ]
    },
    "id": 274,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:0"
      },
      {
        "absolutePath": "zeppelin-solidity/contracts/token/ERC20/RBACMintableToken.sol",
        "file": "zeppelin-solidity/contracts/token/ERC20/RBACMintableToken.sol",
        "id": 2,
        "nodeType": "ImportDirective",
        "scope": 274,
        "sourceUnit": 4655,
        "src": "26:71:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "zeppelin-solidity/contracts/token/ERC20/BurnableToken.sol",
        "file": "zeppelin-solidity/contracts/token/ERC20/BurnableToken.sol",
        "id": 3,
        "nodeType": "ImportDirective",
        "scope": 274,
        "sourceUnit": 4290,
        "src": "98:67:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "zeppelin-solidity/contracts/token/ERC20/PausableToken.sol",
        "file": "zeppelin-solidity/contracts/token/ERC20/PausableToken.sol",
        "id": 4,
        "nodeType": "ImportDirective",
        "scope": 274,
        "sourceUnit": 4607,
        "src": "166:67:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "tokenboost-solidity/contracts/token/Token.sol",
        "file": "tokenboost-solidity/contracts/token/Token.sol",
        "id": 5,
        "nodeType": "ImportDirective",
        "scope": 274,
        "sourceUnit": 814,
        "src": "234:55:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 6,
              "name": "Token",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 813,
              "src": "314:5:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Token_$813",
                "typeString": "contract Token"
              }
            },
            "id": 7,
            "nodeType": "InheritanceSpecifier",
            "src": "314:5:0"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 8,
              "name": "RBACMintableToken",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4654,
              "src": "321:17:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RBACMintableToken_$4654",
                "typeString": "contract RBACMintableToken"
              }
            },
            "id": 9,
            "nodeType": "InheritanceSpecifier",
            "src": "321:17:0"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 10,
              "name": "BurnableToken",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4289,
              "src": "340:13:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BurnableToken_$4289",
                "typeString": "contract BurnableToken"
              }
            },
            "id": 11,
            "nodeType": "InheritanceSpecifier",
            "src": "340:13:0"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 12,
              "name": "PausableToken",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4606,
              "src": "355:13:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_PausableToken_$4606",
                "typeString": "contract PausableToken"
              }
            },
            "id": 13,
            "nodeType": "InheritanceSpecifier",
            "src": "355:13:0"
          }
        ],
        "contractDependencies": [
          512,
          556,
          813,
          3751,
          3831,
          3882,
          3942,
          4122,
          4218,
          4289,
          4366,
          4398,
          4504,
          4606,
          4654,
          4901
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 273,
        "linearizedBaseContracts": [
          273,
          4606,
          3942,
          4289,
          4654,
          3751,
          4504,
          813,
          512,
          556,
          3882,
          3831,
          4122,
          4901,
          4218,
          4366,
          4398
        ],
        "name": "ERC20Token",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 16,
            "name": "InterfaceId_ERC20Token",
            "nodeType": "VariableDeclaration",
            "scope": 273,
            "src": "1405:58:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes4",
              "typeString": "bytes4"
            },
            "typeName": {
              "id": 14,
              "name": "bytes4",
              "nodeType": "ElementaryTypeName",
              "src": "1405:6:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes4",
                "typeString": "bytes4"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30783938623066333231",
              "id": 15,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1453:10:0",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2561733409_by_1",
                "typeString": "int_const 2561733409"
              },
              "value": "0x98b0f321"
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 19,
            "name": "decimals",
            "nodeType": "VariableDeclaration",
            "scope": 273,
            "src": "1470:26:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 17,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "1470:5:0",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "3138",
              "id": 18,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1494:2:0",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_18_by_1",
                "typeString": "int_const 18"
              },
              "value": "18"
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 21,
            "name": "initialSupply",
            "nodeType": "VariableDeclaration",
            "scope": 273,
            "src": "1502:28:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 20,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1502:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 23,
            "name": "mintable",
            "nodeType": "VariableDeclaration",
            "scope": 273,
            "src": "1536:20:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 22,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "1536:4:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 25,
            "name": "maxMintable",
            "nodeType": "VariableDeclaration",
            "scope": 273,
            "src": "1562:26:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 24,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1562:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 27,
            "name": "burnable",
            "nodeType": "VariableDeclaration",
            "scope": 273,
            "src": "1594:20:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 26,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "1594:4:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 29,
            "name": "pausable",
            "nodeType": "VariableDeclaration",
            "scope": 273,
            "src": "1620:20:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 28,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "1620:4:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 36,
              "nodeType": "Block",
              "src": "1671:45:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 32,
                        "name": "burnable",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27,
                        "src": "1689:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 31,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4919,
                        4920
                      ],
                      "referencedDeclaration": 4919,
                      "src": "1681:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 33,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1681:17:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 34,
                  "nodeType": "ExpressionStatement",
                  "src": "1681:17:0"
                },
                {
                  "id": 35,
                  "nodeType": "PlaceholderStatement",
                  "src": "1708:1:0"
                }
              ]
            },
            "documentation": null,
            "id": 37,
            "name": "whenBurnable",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 30,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1668:2:0"
            },
            "src": "1647:69:0",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 44,
              "nodeType": "Block",
              "src": "1746:45:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 40,
                        "name": "mintable",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23,
                        "src": "1764:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 39,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4919,
                        4920
                      ],
                      "referencedDeclaration": 4919,
                      "src": "1756:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 41,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1756:17:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 42,
                  "nodeType": "ExpressionStatement",
                  "src": "1756:17:0"
                },
                {
                  "id": 43,
                  "nodeType": "PlaceholderStatement",
                  "src": "1783:1:0"
                }
              ]
            },
            "documentation": null,
            "id": 45,
            "name": "whenMintable",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 38,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1743:2:0"
            },
            "src": "1722:69:0",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 52,
              "nodeType": "Block",
              "src": "1821:45:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 48,
                        "name": "pausable",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29,
                        "src": "1839:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 47,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4919,
                        4920
                      ],
                      "referencedDeclaration": 4919,
                      "src": "1831:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 49,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1831:17:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 50,
                  "nodeType": "ExpressionStatement",
                  "src": "1831:17:0"
                },
                {
                  "id": 51,
                  "nodeType": "PlaceholderStatement",
                  "src": "1858:1:0"
                }
              ]
            },
            "documentation": null,
            "id": 53,
            "name": "whenPausable",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 46,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1818:2:0"
            },
            "src": "1797:69:0",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 71,
              "nodeType": "Block",
              "src": "1997:60:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 68,
                        "name": "InterfaceId_ERC20Token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16,
                        "src": "2027:22:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      ],
                      "id": 67,
                      "name": "_registerInterface",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3881,
                      "src": "2008:18:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$",
                        "typeString": "function (bytes4)"
                      }
                    },
                    "id": 69,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2008:42:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 70,
                  "nodeType": "ExpressionStatement",
                  "src": "2008:42:0"
                }
              ]
            },
            "documentation": null,
            "id": 72,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 62,
                    "name": "_owner",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 55,
                    "src": "1973:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 63,
                    "name": "_name",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 57,
                    "src": "1981:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 64,
                    "name": "_symbol",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 59,
                    "src": "1988:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  }
                ],
                "id": 65,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 61,
                  "name": "Token",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 813,
                  "src": "1967:5:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_Token_$813_$",
                    "typeString": "type(contract Token)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1967:29:0"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 60,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 55,
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 72,
                  "src": "1893:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 54,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1893:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 57,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 72,
                  "src": "1917:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 56,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1917:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 59,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 72,
                  "src": "1939:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 58,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1939:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1883:76:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 66,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1997:0:0"
            },
            "scope": 273,
            "src": "1872:185:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 121,
              "nodeType": "Block",
              "src": "2294:215:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 95,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 93,
                      "name": "name",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 773,
                      "src": "2304:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 94,
                      "name": "_name",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 74,
                      "src": "2311:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "2304:12:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 96,
                  "nodeType": "ExpressionStatement",
                  "src": "2304:12:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 99,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 97,
                      "name": "symbol",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 775,
                      "src": "2326:6:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 98,
                      "name": "_symbol",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 76,
                      "src": "2335:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "2326:16:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 100,
                  "nodeType": "ExpressionStatement",
                  "src": "2326:16:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 103,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 101,
                      "name": "decimals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19,
                      "src": "2352:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 102,
                      "name": "_decimals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 78,
                      "src": "2363:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "2352:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "id": 104,
                  "nodeType": "ExpressionStatement",
                  "src": "2352:20:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 107,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 105,
                      "name": "initialSupply",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 21,
                      "src": "2382:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 106,
                      "name": "_initialSupply",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 80,
                      "src": "2398:14:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2382:30:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 108,
                  "nodeType": "ExpressionStatement",
                  "src": "2382:30:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 111,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 109,
                      "name": "mintable",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23,
                      "src": "2422:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 110,
                      "name": "_mintable",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 82,
                      "src": "2433:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "2422:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 112,
                  "nodeType": "ExpressionStatement",
                  "src": "2422:20:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 115,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 113,
                      "name": "burnable",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27,
                      "src": "2452:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 114,
                      "name": "_burnable",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 84,
                      "src": "2463:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "2452:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 116,
                  "nodeType": "ExpressionStatement",
                  "src": "2452:20:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 119,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 117,
                      "name": "pausable",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 29,
                      "src": "2482:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 118,
                      "name": "_pausable",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 86,
                      "src": "2493:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "2482:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 120,
                  "nodeType": "ExpressionStatement",
                  "src": "2482:20:0"
                }
              ]
            },
            "documentation": null,
            "id": 122,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 89,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 88,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4070,
                  "src": "2267:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2267:9:0"
              },
              {
                "arguments": null,
                "id": 91,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 90,
                  "name": "whenNotActivated",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 499,
                  "src": "2277:16:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2277:16:0"
              }
            ],
            "name": "update",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 87,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 74,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 122,
                  "src": "2088:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 73,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2088:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 76,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 122,
                  "src": "2110:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 75,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2110:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 78,
                  "name": "_decimals",
                  "nodeType": "VariableDeclaration",
                  "scope": 122,
                  "src": "2134:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 77,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "2134:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 80,
                  "name": "_initialSupply",
                  "nodeType": "VariableDeclaration",
                  "scope": 122,
                  "src": "2159:22:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 79,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2159:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 82,
                  "name": "_mintable",
                  "nodeType": "VariableDeclaration",
                  "scope": 122,
                  "src": "2191:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 81,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2191:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 84,
                  "name": "_burnable",
                  "nodeType": "VariableDeclaration",
                  "scope": 122,
                  "src": "2215:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 83,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2215:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 86,
                  "name": "_pausable",
                  "nodeType": "VariableDeclaration",
                  "scope": 122,
                  "src": "2239:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 85,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2239:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2078:181:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 92,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2294:0:0"
            },
            "scope": 273,
            "src": "2063:446:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 135,
              "nodeType": "Block",
              "src": "2592:43:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 133,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 131,
                      "name": "maxMintable",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25,
                      "src": "2602:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 132,
                      "name": "_maxMintable",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 124,
                      "src": "2616:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2602:26:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 134,
                  "nodeType": "ExpressionStatement",
                  "src": "2602:26:0"
                }
              ]
            },
            "documentation": null,
            "id": 136,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 127,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 126,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4070,
                  "src": "2558:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2558:9:0"
              },
              {
                "arguments": null,
                "id": 129,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 128,
                  "name": "whenNotActivated",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 499,
                  "src": "2568:16:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2568:16:0"
              }
            ],
            "name": "setMaxMintable",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 125,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 124,
                  "name": "_maxMintable",
                  "nodeType": "VariableDeclaration",
                  "scope": 136,
                  "src": "2539:17:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 123,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2539:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2538:19:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 130,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2592:0:0"
            },
            "scope": 273,
            "src": "2515:120:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 157,
              "nodeType": "Block",
              "src": "2700:118:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 145,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 143,
                      "name": "totalSupply_",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4137,
                      "src": "2710:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 144,
                      "name": "initialSupply",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 21,
                      "src": "2725:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2710:28:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 146,
                  "nodeType": "ExpressionStatement",
                  "src": "2710:28:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 151,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 147,
                        "name": "balances",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4135,
                        "src": "2748:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 149,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 148,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4040,
                        "src": "2757:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2748:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 150,
                      "name": "totalSupply_",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4137,
                      "src": "2766:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2748:30:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 152,
                  "nodeType": "ExpressionStatement",
                  "src": "2748:30:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 153,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4968,
                        "src": "2795:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_super$_ERC20Token_$273",
                          "typeString": "contract super ERC20Token"
                        }
                      },
                      "id": 154,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "activate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 812,
                      "src": "2795:14:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_bool_$",
                        "typeString": "function () returns (bool)"
                      }
                    },
                    "id": 155,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2795:16:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 142,
                  "id": 156,
                  "nodeType": "Return",
                  "src": "2788:23:0"
                }
              ]
            },
            "documentation": null,
            "id": 158,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 139,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 138,
                  "name": "whenNotActivated",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 499,
                  "src": "2661:16:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2661:16:0"
              }
            ],
            "name": "activate",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 137,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2658:2:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 142,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 141,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 158,
                  "src": "2694:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 140,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2694:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2693:6:0"
            },
            "scope": 273,
            "src": "2641:177:0",
            "stateMutability": "nonpayable",
            "superFunction": 812,
            "visibility": "public"
          },
          {
            "body": {
              "id": 175,
              "nodeType": "Block",
              "src": "2907:51:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 171,
                        "name": "_to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 160,
                        "src": "2939:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 172,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 162,
                        "src": "2944:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 169,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4968,
                        "src": "2924:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_super$_ERC20Token_$273",
                          "typeString": "contract super ERC20Token"
                        }
                      },
                      "id": 170,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4530,
                      "src": "2924:14:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (address,uint256) returns (bool)"
                      }
                    },
                    "id": 173,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2924:27:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 168,
                  "id": 174,
                  "nodeType": "Return",
                  "src": "2917:34:0"
                }
              ]
            },
            "documentation": null,
            "id": 176,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 165,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 164,
                  "name": "whenActivated",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 490,
                  "src": "2871:13:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2871:13:0"
              }
            ],
            "name": "transfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 163,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 160,
                  "name": "_to",
                  "nodeType": "VariableDeclaration",
                  "scope": 176,
                  "src": "2842:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 159,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2842:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 162,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 176,
                  "src": "2855:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 161,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2855:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2841:29:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 168,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 167,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 176,
                  "src": "2901:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 166,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2901:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2900:6:0"
            },
            "scope": 273,
            "src": "2824:134:0",
            "stateMutability": "nonpayable",
            "superFunction": 4530,
            "visibility": "public"
          },
          {
            "body": {
              "id": 196,
              "nodeType": "Block",
              "src": "3096:62:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 191,
                        "name": "_from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 178,
                        "src": "3132:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 192,
                        "name": "_to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 180,
                        "src": "3139:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 193,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 182,
                        "src": "3144:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 189,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4968,
                        "src": "3113:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_super$_ERC20Token_$273",
                          "typeString": "contract super ERC20Token"
                        }
                      },
                      "id": 190,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transferFrom",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4551,
                      "src": "3113:18:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (address,address,uint256) returns (bool)"
                      }
                    },
                    "id": 194,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3113:38:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 188,
                  "id": 195,
                  "nodeType": "Return",
                  "src": "3106:45:0"
                }
              ]
            },
            "documentation": null,
            "id": 197,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 185,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 184,
                  "name": "whenActivated",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 490,
                  "src": "3060:13:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3060:13:0"
              }
            ],
            "name": "transferFrom",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 183,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 178,
                  "name": "_from",
                  "nodeType": "VariableDeclaration",
                  "scope": 197,
                  "src": "2995:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 177,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2995:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 180,
                  "name": "_to",
                  "nodeType": "VariableDeclaration",
                  "scope": 197,
                  "src": "3018:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 179,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3018:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 182,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 197,
                  "src": "3039:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 181,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3039:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2985:74:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 188,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 187,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 197,
                  "src": "3090:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 186,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3090:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3089:6:0"
            },
            "scope": 273,
            "src": "2964:194:0",
            "stateMutability": "nonpayable",
            "superFunction": 4551,
            "visibility": "public"
          },
          {
            "body": {
              "id": 214,
              "nodeType": "Block",
              "src": "3249:53:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 210,
                        "name": "spender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 199,
                        "src": "3280:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 211,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 201,
                        "src": "3289:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 208,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4968,
                        "src": "3266:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_super$_ERC20Token_$273",
                          "typeString": "contract super ERC20Token"
                        }
                      },
                      "id": 209,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "approve",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4569,
                      "src": "3266:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (address,uint256) returns (bool)"
                      }
                    },
                    "id": 212,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3266:29:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 207,
                  "id": 213,
                  "nodeType": "Return",
                  "src": "3259:36:0"
                }
              ]
            },
            "documentation": null,
            "id": 215,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 204,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 203,
                  "name": "whenActivated",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 490,
                  "src": "3213:13:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3213:13:0"
              }
            ],
            "name": "approve",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 202,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 199,
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 215,
                  "src": "3181:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 198,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3181:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 201,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 215,
                  "src": "3198:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 200,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3198:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3180:32:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 207,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 206,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 215,
                  "src": "3243:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 205,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3243:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3242:6:0"
            },
            "scope": 273,
            "src": "3164:138:0",
            "stateMutability": "nonpayable",
            "superFunction": 4569,
            "visibility": "public"
          },
          {
            "body": {
              "id": 246,
              "nodeType": "Block",
              "src": "3388:152:0",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 228,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 226,
                      "name": "maxMintable",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25,
                      "src": "3402:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 227,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3416:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "3402:15:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 239,
                  "nodeType": "IfStatement",
                  "src": "3398:95:0",
                  "trueBody": {
                    "id": 238,
                    "nodeType": "Block",
                    "src": "3419:74:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 235,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 232,
                                    "name": "_amount",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 219,
                                    "src": "3458:7:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 230,
                                    "name": "totalSupply_",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4137,
                                    "src": "3441:12:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 231,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "add",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4035,
                                  "src": "3441:16:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 233,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3441:25:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 234,
                                "name": "maxMintable",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25,
                                "src": "3470:11:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "3441:40:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 229,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4919,
                              4920
                            ],
                            "referencedDeclaration": 4919,
                            "src": "3433:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                              "typeString": "function (bool) pure"
                            }
                          },
                          "id": 236,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3433:49:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 237,
                        "nodeType": "ExpressionStatement",
                        "src": "3433:49:0"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 242,
                        "name": "_to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 217,
                        "src": "3520:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 243,
                        "name": "_amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 219,
                        "src": "3525:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 240,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4968,
                        "src": "3509:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_super$_ERC20Token_$273",
                          "typeString": "contract super ERC20Token"
                        }
                      },
                      "id": 241,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "mint",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4484,
                      "src": "3509:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (address,uint256) returns (bool)"
                      }
                    },
                    "id": 244,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3509:24:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 225,
                  "id": 245,
                  "nodeType": "Return",
                  "src": "3502:31:0"
                }
              ]
            },
            "documentation": null,
            "id": 247,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 222,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 221,
                  "name": "whenActivated",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 490,
                  "src": "3352:13:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3352:13:0"
              }
            ],
            "name": "mint",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 220,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 217,
                  "name": "_to",
                  "nodeType": "VariableDeclaration",
                  "scope": 247,
                  "src": "3322:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 216,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3322:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 219,
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 247,
                  "src": "3335:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 218,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3335:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3321:30:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 225,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 224,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 247,
                  "src": "3382:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 223,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3382:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3381:6:0"
            },
            "scope": 273,
            "src": "3308:232:0",
            "stateMutability": "nonpayable",
            "superFunction": 4484,
            "visibility": "public"
          },
          {
            "body": {
              "id": 260,
              "nodeType": "Block",
              "src": "3597:35:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 257,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 249,
                        "src": "3618:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 254,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4968,
                        "src": "3607:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_super$_ERC20Token_$273",
                          "typeString": "contract super ERC20Token"
                        }
                      },
                      "id": 256,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "burn",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4241,
                      "src": "3607:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 258,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3607:18:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 259,
                  "nodeType": "ExpressionStatement",
                  "src": "3607:18:0"
                }
              ]
            },
            "documentation": null,
            "id": 261,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 252,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 251,
                  "name": "whenActivated",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 490,
                  "src": "3576:13:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3576:13:0"
              }
            ],
            "name": "burn",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 250,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 249,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 261,
                  "src": "3560:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 248,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3560:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3559:16:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 253,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3597:0:0"
            },
            "scope": 273,
            "src": "3546:86:0",
            "stateMutability": "nonpayable",
            "superFunction": 4241,
            "visibility": "public"
          },
          {
            "body": {
              "id": 271,
              "nodeType": "Block",
              "src": "3675:30:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 266,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4968,
                        "src": "3685:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_super$_ERC20Token_$273",
                          "typeString": "contract super ERC20Token"
                        }
                      },
                      "id": 268,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "pause",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3926,
                      "src": "3685:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 269,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3685:13:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 270,
                  "nodeType": "ExpressionStatement",
                  "src": "3685:13:0"
                }
              ]
            },
            "documentation": null,
            "id": 272,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 264,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 263,
                  "name": "whenPausable",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 53,
                  "src": "3655:12:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3655:12:0"
              }
            ],
            "name": "pause",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 262,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3652:2:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 265,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3675:0:0"
            },
            "scope": 273,
            "src": "3638:67:0",
            "stateMutability": "nonpayable",
            "superFunction": 3926,
            "visibility": "public"
          }
        ],
        "scope": 274,
        "src": "291:3416:0"
      }
    ],
    "src": "0:3707:0"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.1",
  "updatedAt": "2018-10-16T05:56:33.144Z"
}