{
  "contractName": "DummySTO",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "ADMIN",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "endTime",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "cap",
      "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": "paused",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "takeFee",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "name": "investors",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "polyToken",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "startTime",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "pause",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_tokenContract",
          "type": "address"
        }
      ],
      "name": "reclaimERC20",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "name": "_fundsAmount",
          "type": "uint256"
        }
      ],
      "name": "verifyInvestment",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "pausedTime",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "securityToken",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "factory",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "FEE_ADMIN",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "investorCount",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "someString",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "name": "fundRaiseType",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_securityToken",
          "type": "address"
        },
        {
          "name": "_polyAddress",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_investor",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "LogGenerateTokens",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_timestammp",
          "type": "uint256"
        }
      ],
      "name": "Pause",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_timestamp",
          "type": "uint256"
        }
      ],
      "name": "Unpause",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_startTime",
          "type": "uint256"
        },
        {
          "name": "_endTime",
          "type": "uint256"
        },
        {
          "name": "_cap",
          "type": "uint256"
        },
        {
          "name": "_someString",
          "type": "string"
        }
      ],
      "name": "configure",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getInitFunction",
      "outputs": [
        {
          "name": "",
          "type": "bytes4"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_investor",
          "type": "address"
        },
        {
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "generateTokens",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getRaisedEther",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getRaisedPOLY",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getNumberInvestors",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getTokensSold",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getPermissions",
      "outputs": [
        {
          "name": "",
          "type": "bytes32[]"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040526002805460a060020a60ff021916905534801561002057600080fd5b506040516040806115be83398101604052805160209091015160018054600160a060020a03938416600160a060020a031991821617909155600080548216331790556002805493909216921691909117905561153d806100816000396000f3006080604052600436106101455763ffffffff60e060020a6000350416631613ec9d811461014a5780632a0acc6a146101945780633197cbb6146101bb578063355274ea146101d057806335ff3a51146101e557806338c59de9146101fa5780633f4ba83a1461020f5780635c975abb146102265780635f7619a41461024f5780636f7bc9be146102675780636faa22a51461028857806378e97925146102b9578063827f32c0146102ce5780638456cb59146102f25780638905fd4f146103075780638b31007914610328578063a3fb8f15146101e5578063a412f87c1461038b578063b2cca39d146103af578063b84dfbd2146103c4578063c3a07df6146103d9578063c45a01551461043e578063d70afa9614610453578063d7e64c0014610468578063e7a96f6d1461047d578063eda524bc14610507578063ee7c0db0146101e5575b600080fd5b34801561015657600080fd5b5061015f610522565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b3480156101a057600080fd5b506101a961057e565b60408051918252519081900360200190f35b3480156101c757600080fd5b506101a96105a2565b3480156101dc57600080fd5b506101a96105a8565b3480156101f157600080fd5b506101a96105ae565b34801561020657600080fd5b506101a96105b3565b34801561021b57600080fd5b506102246105b9565b005b34801561023257600080fd5b5061023b6106a1565b604080519115158252519081900360200190f35b34801561025b57600080fd5b5061023b6004356106b1565b34801561027357600080fd5b506101a9600160a060020a03600435166109f0565b34801561029457600080fd5b5061029d610a02565b60408051600160a060020a039092168252519081900360200190f35b3480156102c557600080fd5b506101a9610a11565b3480156102da57600080fd5b50610224600160a060020a0360043516602435610a17565b3480156102fe57600080fd5b50610224610d69565b34801561031357600080fd5b50610224600160a060020a0360043516610e5d565b34801561033457600080fd5b50604080516020601f606435600481810135928301849004840285018401909552818452610224948035946024803595604435953695608494930191819084018382808284375094975061108b9650505050505050565b34801561039757600080fd5b5061023b600160a060020a0360043516602435611116565b3480156103bb57600080fd5b506101a96111ba565b3480156103d057600080fd5b5061029d6111c0565b3480156103e557600080fd5b506103ee6111cf565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561042a578181015183820152602001610412565b505050509050019250505060405180910390f35b34801561044a57600080fd5b5061029d611236565b34801561045f57600080fd5b506101a9611245565b34801561047457600080fd5b506101a9611269565b34801561048957600080fd5b5061049261126f565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104cc5781810151838201526020016104b4565b50505050905090810190601f1680156104f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561051357600080fd5b5061023b60ff600435166112fd565b604080517f636f6e6669677572652875696e743235362c75696e743235362c75696e74323581527f362c737472696e67290000000000000000000000000000000000000000000000602082015290519081900360290190205b90565b7f41444d494e00000000000000000000000000000000000000000000000000000081565b60055481565b60085481565b600090565b60075490565b600160009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561060c57600080fd5b505af1158015610620573d6000803e3d6000fd5b505050506040513d602081101561063657600080fd5b5051600160a060020a03163314610697576040805160e560020a62461bcd02815260206004820152601360248201527f53656e646572206973206e6f74206f776e657200000000000000000000000000604482015290519081900360640190fd5b61069f611312565b565b60025460a060020a900460ff1681565b60007f4645455f41444d494e0000000000000000000000000000000000000000000000600080600160009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561072a57600080fd5b505af115801561073e573d6000803e3d6000fd5b505050506040513d602081101561075457600080fd5b505160005433600160a060020a0392831681149450911614905081806107775750805b8061081d5750600154604080517f8658b8b9000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690529051600160a060020a0390921691638658b8b9916064808201926020929091908290030181600087803b1580156107f057600080fd5b505af1158015610804573d6000803e3d6000fd5b505050506040513d602081101561081a57600080fd5b50515b1515610873576040805160e560020a62461bcd02815260206004820152601760248201527f5065726d697373696f6e20636865636b206661696c6564000000000000000000604482015290519081900360640190fd5b60025460008054604080517f8da5cb5b0000000000000000000000000000000000000000000000000000000081529051600160a060020a03948516946323b872dd94309490911692638da5cb5b9260048083019360209383900390910190829087803b1580156108e257600080fd5b505af11580156108f6573d6000803e3d6000fd5b505050506040513d602081101561090c57600080fd5b50516040805160e060020a63ffffffff8616028152600160a060020a039384166004820152929091166024830152604482018990525160648083019260209291908290030181600087803b15801561096357600080fd5b505af1158015610977573d6000803e3d6000fd5b505050506040513d602081101561098d57600080fd5b505115156109e5576040805160e560020a62461bcd02815260206004820152601260248201527f556e61626c6520746f2074616b65206665650000000000000000000000000000604482015290519081900360640190fd5b506001949350505050565b600a6020526000908152604090205481565b600254600160a060020a031681565b60045481565b7f41444d494e000000000000000000000000000000000000000000000000000000600080600160009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a8e57600080fd5b505af1158015610aa2573d6000803e3d6000fd5b505050506040513d6020811015610ab857600080fd5b505160005433600160a060020a039283168114945091161490508180610adb5750805b80610b815750600154604080517f8658b8b9000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690529051600160a060020a0390921691638658b8b9916064808201926020929091908290030181600087803b158015610b5457600080fd5b505af1158015610b68573d6000803e3d6000fd5b505050506040513d6020811015610b7e57600080fd5b50515b1515610bd7576040805160e560020a62461bcd02815260206004820152601760248201527f5065726d697373696f6e20636865636b206661696c6564000000000000000000604482015290519081900360640190fd5b60025460a060020a900460ff1615610bee57600080fd5b60008411610c46576040805160e560020a62461bcd02815260206004820152601f60248201527f416d6f756e742073686f756c642062652067726561746572207468616e203000604482015290519081900360640190fd5b600154604080517f40c10f19000000000000000000000000000000000000000000000000000000008152600160a060020a03888116600483015260248201889052915191909216916340c10f199160448083019260209291908290030181600087803b158015610cb557600080fd5b505af1158015610cc9573d6000803e3d6000fd5b505050506040513d6020811015610cdf57600080fd5b5050600160a060020a0385166000908152600a60205260409020541515610d0a576007805460010190555b600160a060020a0385166000818152600a60209081526040918290208054880190558151928352820186905280517f1de621a3656e198085de9765650db7426a90c14ebced44f84f9a8c5d4660d6f49281900390910190a15050505050565b600160009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610dbc57600080fd5b505af1158015610dd0573d6000803e3d6000fd5b505050506040513d6020811015610de657600080fd5b5051600160a060020a03163314610e47576040805160e560020a62461bcd02815260206004820152601360248201527f53656e646572206973206e6f74206f776e657200000000000000000000000000604482015290519081900360640190fd5b6005544210610e5557600080fd5b61069f6113c8565b600080600160009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610eb357600080fd5b505af1158015610ec7573d6000803e3d6000fd5b505050506040513d6020811015610edd57600080fd5b5051600160a060020a03163314610f3e576040805160e560020a62461bcd02815260206004820152601360248201527f53656e646572206973206e6f74206f776e657200000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383161515610f5357600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051849350600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015610fb757600080fd5b505af1158015610fcb573d6000803e3d6000fd5b505050506040513d6020811015610fe157600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018390529051919250600160a060020a0384169163a9059cbb916044808201926020929091908290030181600087803b15801561104f57600080fd5b505af1158015611063573d6000803e3d6000fd5b505050506040513d602081101561107957600080fd5b5051151561108657600080fd5b505050565b600054600160a060020a031633146110ed576040805160e560020a62461bcd02815260206004820152601560248201527f53656e646572206973206e6f7420666163746f72790000000000000000000000604482015290519081900360640190fd5b600484905560058390556008829055805161110f906009906020840190611483565b5050505050565b600254604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a03858116600483015230602483015291516000938593169163dd62ed3e91604480830192602092919082900301818887803b15801561118557600080fd5b505af1158015611199573d6000803e3d6000fd5b505050506040513d60208110156111af57600080fd5b505110159392505050565b60065481565b600154600160a060020a031681565b604080516001808252818301909252606091829190602080830190803883390190505090507f41444d494e00000000000000000000000000000000000000000000000000000081600081518110151561122457fe5b602090810290910101529050805b5090565b600054600160a060020a031681565b7f4645455f41444d494e000000000000000000000000000000000000000000000081565b60075481565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156112f55780601f106112ca576101008083540402835291602001916112f5565b820191906000526020600020905b8154815290600101906020018083116112d857829003601f168201915b505050505081565b60036020526000908152604090205460ff1681565b60025460a060020a900460ff161515611375576040805160e560020a62461bcd02815260206004820152601660248201527f436f6e7472616374206973206e6f742070617573656400000000000000000000604482015290519081900360640190fd5b6002805474ff0000000000000000000000000000000000000000191690556040805142815290517faaa520fdd7d2c83061d632fa017b0432407e798818af63ea908589fceda39ab79181900360200190a1565b60025460a060020a900460ff161561142a576040805160e560020a62461bcd02815260206004820152601260248201527f436f6e7472616374206973207061757365640000000000000000000000000000604482015290519081900360640190fd5b6002805474ff0000000000000000000000000000000000000000191660a060020a1790556040805142815290517f68b095021b1f40fe513109f513c66692f0b3219aee674a69f4efc57badb8201d9181900360200190a1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106114c457805160ff19168380011785556114f1565b828001600101855582156114f1579182015b828111156114f15782518255916020019190600101906114d6565b506112329261057b9250905b8082111561123257600081556001016114fd5600a165627a7a72305820446977792f09b84a23c0c324373d218355e34a1fd38e5c1ca13d13c91b9265250029",
  "deployedBytecode": "0x6080604052600436106101455763ffffffff60e060020a6000350416631613ec9d811461014a5780632a0acc6a146101945780633197cbb6146101bb578063355274ea146101d057806335ff3a51146101e557806338c59de9146101fa5780633f4ba83a1461020f5780635c975abb146102265780635f7619a41461024f5780636f7bc9be146102675780636faa22a51461028857806378e97925146102b9578063827f32c0146102ce5780638456cb59146102f25780638905fd4f146103075780638b31007914610328578063a3fb8f15146101e5578063a412f87c1461038b578063b2cca39d146103af578063b84dfbd2146103c4578063c3a07df6146103d9578063c45a01551461043e578063d70afa9614610453578063d7e64c0014610468578063e7a96f6d1461047d578063eda524bc14610507578063ee7c0db0146101e5575b600080fd5b34801561015657600080fd5b5061015f610522565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b3480156101a057600080fd5b506101a961057e565b60408051918252519081900360200190f35b3480156101c757600080fd5b506101a96105a2565b3480156101dc57600080fd5b506101a96105a8565b3480156101f157600080fd5b506101a96105ae565b34801561020657600080fd5b506101a96105b3565b34801561021b57600080fd5b506102246105b9565b005b34801561023257600080fd5b5061023b6106a1565b604080519115158252519081900360200190f35b34801561025b57600080fd5b5061023b6004356106b1565b34801561027357600080fd5b506101a9600160a060020a03600435166109f0565b34801561029457600080fd5b5061029d610a02565b60408051600160a060020a039092168252519081900360200190f35b3480156102c557600080fd5b506101a9610a11565b3480156102da57600080fd5b50610224600160a060020a0360043516602435610a17565b3480156102fe57600080fd5b50610224610d69565b34801561031357600080fd5b50610224600160a060020a0360043516610e5d565b34801561033457600080fd5b50604080516020601f606435600481810135928301849004840285018401909552818452610224948035946024803595604435953695608494930191819084018382808284375094975061108b9650505050505050565b34801561039757600080fd5b5061023b600160a060020a0360043516602435611116565b3480156103bb57600080fd5b506101a96111ba565b3480156103d057600080fd5b5061029d6111c0565b3480156103e557600080fd5b506103ee6111cf565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561042a578181015183820152602001610412565b505050509050019250505060405180910390f35b34801561044a57600080fd5b5061029d611236565b34801561045f57600080fd5b506101a9611245565b34801561047457600080fd5b506101a9611269565b34801561048957600080fd5b5061049261126f565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104cc5781810151838201526020016104b4565b50505050905090810190601f1680156104f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561051357600080fd5b5061023b60ff600435166112fd565b604080517f636f6e6669677572652875696e743235362c75696e743235362c75696e74323581527f362c737472696e67290000000000000000000000000000000000000000000000602082015290519081900360290190205b90565b7f41444d494e00000000000000000000000000000000000000000000000000000081565b60055481565b60085481565b600090565b60075490565b600160009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561060c57600080fd5b505af1158015610620573d6000803e3d6000fd5b505050506040513d602081101561063657600080fd5b5051600160a060020a03163314610697576040805160e560020a62461bcd02815260206004820152601360248201527f53656e646572206973206e6f74206f776e657200000000000000000000000000604482015290519081900360640190fd5b61069f611312565b565b60025460a060020a900460ff1681565b60007f4645455f41444d494e0000000000000000000000000000000000000000000000600080600160009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561072a57600080fd5b505af115801561073e573d6000803e3d6000fd5b505050506040513d602081101561075457600080fd5b505160005433600160a060020a0392831681149450911614905081806107775750805b8061081d5750600154604080517f8658b8b9000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690529051600160a060020a0390921691638658b8b9916064808201926020929091908290030181600087803b1580156107f057600080fd5b505af1158015610804573d6000803e3d6000fd5b505050506040513d602081101561081a57600080fd5b50515b1515610873576040805160e560020a62461bcd02815260206004820152601760248201527f5065726d697373696f6e20636865636b206661696c6564000000000000000000604482015290519081900360640190fd5b60025460008054604080517f8da5cb5b0000000000000000000000000000000000000000000000000000000081529051600160a060020a03948516946323b872dd94309490911692638da5cb5b9260048083019360209383900390910190829087803b1580156108e257600080fd5b505af11580156108f6573d6000803e3d6000fd5b505050506040513d602081101561090c57600080fd5b50516040805160e060020a63ffffffff8616028152600160a060020a039384166004820152929091166024830152604482018990525160648083019260209291908290030181600087803b15801561096357600080fd5b505af1158015610977573d6000803e3d6000fd5b505050506040513d602081101561098d57600080fd5b505115156109e5576040805160e560020a62461bcd02815260206004820152601260248201527f556e61626c6520746f2074616b65206665650000000000000000000000000000604482015290519081900360640190fd5b506001949350505050565b600a6020526000908152604090205481565b600254600160a060020a031681565b60045481565b7f41444d494e000000000000000000000000000000000000000000000000000000600080600160009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a8e57600080fd5b505af1158015610aa2573d6000803e3d6000fd5b505050506040513d6020811015610ab857600080fd5b505160005433600160a060020a039283168114945091161490508180610adb5750805b80610b815750600154604080517f8658b8b9000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690529051600160a060020a0390921691638658b8b9916064808201926020929091908290030181600087803b158015610b5457600080fd5b505af1158015610b68573d6000803e3d6000fd5b505050506040513d6020811015610b7e57600080fd5b50515b1515610bd7576040805160e560020a62461bcd02815260206004820152601760248201527f5065726d697373696f6e20636865636b206661696c6564000000000000000000604482015290519081900360640190fd5b60025460a060020a900460ff1615610bee57600080fd5b60008411610c46576040805160e560020a62461bcd02815260206004820152601f60248201527f416d6f756e742073686f756c642062652067726561746572207468616e203000604482015290519081900360640190fd5b600154604080517f40c10f19000000000000000000000000000000000000000000000000000000008152600160a060020a03888116600483015260248201889052915191909216916340c10f199160448083019260209291908290030181600087803b158015610cb557600080fd5b505af1158015610cc9573d6000803e3d6000fd5b505050506040513d6020811015610cdf57600080fd5b5050600160a060020a0385166000908152600a60205260409020541515610d0a576007805460010190555b600160a060020a0385166000818152600a60209081526040918290208054880190558151928352820186905280517f1de621a3656e198085de9765650db7426a90c14ebced44f84f9a8c5d4660d6f49281900390910190a15050505050565b600160009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610dbc57600080fd5b505af1158015610dd0573d6000803e3d6000fd5b505050506040513d6020811015610de657600080fd5b5051600160a060020a03163314610e47576040805160e560020a62461bcd02815260206004820152601360248201527f53656e646572206973206e6f74206f776e657200000000000000000000000000604482015290519081900360640190fd5b6005544210610e5557600080fd5b61069f6113c8565b600080600160009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610eb357600080fd5b505af1158015610ec7573d6000803e3d6000fd5b505050506040513d6020811015610edd57600080fd5b5051600160a060020a03163314610f3e576040805160e560020a62461bcd02815260206004820152601360248201527f53656e646572206973206e6f74206f776e657200000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383161515610f5357600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051849350600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015610fb757600080fd5b505af1158015610fcb573d6000803e3d6000fd5b505050506040513d6020811015610fe157600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018390529051919250600160a060020a0384169163a9059cbb916044808201926020929091908290030181600087803b15801561104f57600080fd5b505af1158015611063573d6000803e3d6000fd5b505050506040513d602081101561107957600080fd5b5051151561108657600080fd5b505050565b600054600160a060020a031633146110ed576040805160e560020a62461bcd02815260206004820152601560248201527f53656e646572206973206e6f7420666163746f72790000000000000000000000604482015290519081900360640190fd5b600484905560058390556008829055805161110f906009906020840190611483565b5050505050565b600254604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a03858116600483015230602483015291516000938593169163dd62ed3e91604480830192602092919082900301818887803b15801561118557600080fd5b505af1158015611199573d6000803e3d6000fd5b505050506040513d60208110156111af57600080fd5b505110159392505050565b60065481565b600154600160a060020a031681565b604080516001808252818301909252606091829190602080830190803883390190505090507f41444d494e00000000000000000000000000000000000000000000000000000081600081518110151561122457fe5b602090810290910101529050805b5090565b600054600160a060020a031681565b7f4645455f41444d494e000000000000000000000000000000000000000000000081565b60075481565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156112f55780601f106112ca576101008083540402835291602001916112f5565b820191906000526020600020905b8154815290600101906020018083116112d857829003601f168201915b505050505081565b60036020526000908152604090205460ff1681565b60025460a060020a900460ff161515611375576040805160e560020a62461bcd02815260206004820152601660248201527f436f6e7472616374206973206e6f742070617573656400000000000000000000604482015290519081900360640190fd5b6002805474ff0000000000000000000000000000000000000000191690556040805142815290517faaa520fdd7d2c83061d632fa017b0432407e798818af63ea908589fceda39ab79181900360200190a1565b60025460a060020a900460ff161561142a576040805160e560020a62461bcd02815260206004820152601260248201527f436f6e7472616374206973207061757365640000000000000000000000000000604482015290519081900360640190fd5b6002805474ff0000000000000000000000000000000000000000191660a060020a1790556040805142815290517f68b095021b1f40fe513109f513c66692f0b3219aee674a69f4efc57badb8201d9181900360200190a1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106114c457805160ff19168380011785556114f1565b828001600101855582156114f1579182015b828111156114f15782518255916020019190600101906114d6565b506112329261057b9250905b8082111561123257600081556001016114fd5600a165627a7a72305820446977792f09b84a23c0c324373d218355e34a1fd38e5c1ca13d13c91b9265250029",
  "sourceMap": "172:2941:39:-;;;216:26:2;;;-1:-1:-1;;;;;;216:26:2;;;613:119:39;5:2:-1;;;;30:1;27;20:12;5:2;613:119:39;;;;;;;;;;;;;;;;;;;624:13:13;:30;;-1:-1:-1;;;;;624:30:13;;;-1:-1:-1;;;;;;624:30:13;;;;;;;:13;664:20;;;;674:10;664:20;;;694:9;:31;;;;;;;;;;;;;;172:2941:39;;;;;;",
  "deployedSourceMap": "172:2941:39:-;;;;;;;;-1:-1:-1;172:2941:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1395:142;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1395:142:39;;;;;;;;;;;;;;;;;;;;;;;205:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;205:39:39;;;;;;;;;;;;;;;;;;;;532:22:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;532:22:41;;;;286:18:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;286:18:39;;;;2279:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2279:81:39;;;;2578:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2578:97:39;;;;1811:69:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1811:69:41;;;;;;216:26:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;216:26:2;;;;;;;;;;;;;;;;;;;;;;1890:223:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1890:223:13;;;;;407:45:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;407:45:39;;;-1:-1:-1;;;;;407:45:39;;;365:22:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;365:22:13;;;;;;;;-1:-1:-1;;;;;365:22:13;;;;;;;;;;;;;;475:24:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;475:24:41;;;;1728:485:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1728:485:39;;;-1:-1:-1;;;;;1728:485:39;;;;;1647:97:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1647:97:41;;;;2014:286;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2014:286:41;;;-1:-1:-1;;;;;2014:286:41;;;1069:231:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1069:231:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1069:231:39;;-1:-1:-1;1069:231:39;;-1:-1:-1;;;;;;;1069:231:39;895:184:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;895:184:41;;;-1:-1:-1;;;;;895:184:41;;;;;587:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;587:25:41;;;;276:28:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;276:28:13;;;;2920:190:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2920:190:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2920:190:39;;;;;;;;;;;;;;;;;247:22:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;247:22:13;;;;311:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;311:47:13;;;;251:28:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;251:28:39;;;;310:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;310:24:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;310:24:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;395:44:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;395:44:41;;;;;;;1395:142:39;1475:54;;;;;;;;;;;;;;;;;;;;;1395:142;;:::o;205:39::-;;;:::o;532:22:41:-;;;;:::o;286:18:39:-;;;;:::o;2279:81::-;2326:7;2279:81;:::o;2578:97::-;2655:13;;2578:97;:::o;1811:69:41:-;1334:13:13;;1319:37;;;-1:-1:-1;;;;;1319:37:13;;;;-1:-1:-1;;;;;1334:13:13;;;;-1:-1:-1;;1319:37:13;;;;;;;;;;;;;;;1334:13;;1319:37;;;5:2:-1;;;;30:1;27;20:12;5:2;1319:37:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1319:37:13;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1319:37:13;-1:-1:-1;;;;;1305:51:13;:10;:51;1297:83;;;;;-1:-1:-1;;;;;1297:83:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;1857:16:41;:14;:16::i;:::-;1811:69::o;216:26:2:-;;;-1:-1:-1;216:26:2;;;;;:::o;1890:223:13:-;1029:13;;1014:37;;;-1:-1:-1;;;;;1014:37:13;;;;1959:4;;1940:9;;1959:4;;;;-1:-1:-1;;;;;1029:13:13;;-1:-1:-1;;1014:37:13;;;;;;;;;;;;;;1959:4;1029:13;1014:37;;;5:2:-1;;;;30:1;27;20:12;5:2;1014:37:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1014:37:13;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1014:37:13;1092:7;;1000:10;-1:-1:-1;;;;;1000:51:13;;;;;;-1:-1:-1;1092:7:13;;1078:21;;-1:-1:-1;1000:51:13;;1117:18;;;1126:9;1117:18;:99;;;-1:-1:-1;1152:13:13;;1137:79;;;;;;1183:10;1137:79;;;;1203:4;1137:79;;;;;;;;;;;;-1:-1:-1;;;;;1152:13:13;;;;1137:45;;:79;;;;;;;;;;;;;;;-1:-1:-1;1152:13:13;1137:79;;;5:2:-1;;;;30:1;27;20:12;5:2;1137:79:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1137:79:13;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1137:79:13;1117:99;1109:135;;;;;;;-1:-1:-1;;;;;1109:135:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;1983:9;;;2036:7;;2021:31;;;-1:-1:-1;;;;;2021:31:13;;;;-1:-1:-1;;;;;1983:9:13;;;;:22;;2014:4;;2036:7;;;;;-1:-1:-1;;2021:31:13;;;;;;;;;;;;;;;;2036:7;2021:31;;;5:2:-1;;;;30:1;27;20:12;5:2;2021:31:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2021:31:13;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2021:31:13;1983:79;;;;;;-1:-1:-1;1983:79:13;;;-1:-1:-1;;;;;1983:79:13;;;;;;;;;;;;;;;;;;;;;;;;;;;2021:31;;1983:79;;;;;;;-1:-1:-1;1983:79:13;;;;5:2:-1;;;;30:1;27;20:12;5:2;1983:79:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1983:79:13;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1983:79:13;1975:110;;;;;;;-1:-1:-1;;;;;1975:110:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2102:4:13;;1890:223;-1:-1:-1;;;;1890:223:13:o;407:45:39:-;;;;;;;;;;;;;:::o;365:22:13:-;;;-1:-1:-1;;;;;365:22:13;;:::o;475:24:41:-;;;;:::o;1728:485:39:-;1029:13:13;;1014:37;;;-1:-1:-1;;;;;1014:37:13;;;;1804:5:39;;985:12:13;;;;-1:-1:-1;;;;;1029:13:13;;;;-1:-1:-1;;1014:37:13;;;;;;;;;;;;;;;985:12;1029:13;1014:37;;;5:2:-1;;;;30:1;27;20:12;5:2;1014:37:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1014:37:13;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1014:37:13;1092:7;;1000:10;-1:-1:-1;;;;;1000:51:13;;;;;;-1:-1:-1;1092:7:13;;1078:21;;-1:-1:-1;1000:51:13;;1117:18;;;1126:9;1117:18;:99;;;-1:-1:-1;1152:13:13;;1137:79;;;;;;1183:10;1137:79;;;;1203:4;1137:79;;;;;;;;;;;;-1:-1:-1;;;;;1152:13:13;;;;1137:45;;:79;;;;;;;;;;;;;;;-1:-1:-1;1152:13:13;1137:79;;;5:2:-1;;;;30:1;27;20:12;5:2;1137:79:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1137:79:13;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1137:79:13;1117:99;1109:135;;;;;;;-1:-1:-1;;;;;1109:135:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;1830:6:39;;-1:-1:-1;1830:6:39;;;;1829:7;1821:16;;;;;;1865:1;1855:11;;1847:55;;;;;-1:-1:-1;;;;;1847:55:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;1918:13;;1912:45;;;;;;-1:-1:-1;;;;;1912:45:39;;;;;;;;;;;;;;;1918:13;;;;;1912:25;;:45;;;;;;;;;;;;;;-1:-1:-1;1918:13:39;1912:45;;;5:2:-1;;;;30:1;27;20:12;5:2;1912:45:39;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1912:45:39;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;;1971:20:39;;;;;;:9;1912:45;1971:20;;;;;:25;1967:89;;;2028:13;;;2044:1;2028:17;2012:33;;1967:89;-1:-1:-1;;;;;2123:20:39;;;;;;:9;:20;;;;;;;;;;;:30;;2100:53;;2168:38;;;;;;;;;;;;;;;;;;;;;;1728:485;;;;;:::o;1647:97:41:-;1334:13:13;;1319:37;;;-1:-1:-1;;;;;1319:37:13;;;;-1:-1:-1;;;;;1334:13:13;;;;-1:-1:-1;;1319:37:13;;;;;;;;;;;;;;;1334:13;;1319:37;;;5:2:-1;;;;30:1;27;20:12;5:2;1319:37:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1319:37:13;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1319:37:13;-1:-1:-1;;;;;1305:51:13;:10;:51;1297:83;;;;;-1:-1:-1;;;;;1297:83:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;1705:7:41;;1699:3;:13;1691:22;;;;;;1723:14;:12;:14::i;2014:286::-;1334:13:13;;1319:37;;;-1:-1:-1;;;;;1319:37:13;;;;2136:16:41;;;;-1:-1:-1;;;;;1334:13:13;;;;-1:-1:-1;;1319:37:13;;;;;;;;;;;;;;;2136:16:41;1334:13:13;1319:37;;;5:2:-1;;;;30:1;27;20:12;5:2;1319:37:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1319:37:13;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1319:37:13;-1:-1:-1;;;;;1305:51:13;:10;:51;1297:83;;;;;-1:-1:-1;;;;;1297:83:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2097:28:41;;;;2089:37;;;;;;2209:30;;;;;;2233:4;2209:30;;;;;;2166:14;;-1:-1:-1;;;;;;2209:15:41;;;;;:30;;;;;;;;;;;;;;-1:-1:-1;2209:15:41;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;2209:30:41;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2209:30:41;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2209:30:41;2257:35;;;;;;2272:10;2257:35;;;;;;;;;;;;2209:30;;-1:-1:-1;;;;;;2257:14:41;;;;;:35;;;;;2209:30;;2257:35;;;;;;;;-1:-1:-1;2257:14:41;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;2257:35:41;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2257:35:41;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2257:35:41;2249:44;;;;;;;;2014:286;;;:::o;1069:231:39:-;1457:7:13;;-1:-1:-1;;;;;1457:7:13;1443:10;:21;1435:55;;;;;-1:-1:-1;;;;;1435:55:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;1189:9:39;:22;;;1221:7;:18;;;1249:3;:10;;;1269:24;;;;:10;;:24;;;;;:::i;:::-;;1069:231;;;;:::o;895:184:41:-;1008:9;;:48;;;;;;-1:-1:-1;;;;;1008:48:41;;;;;;;1050:4;1008:48;;;;;;-1:-1:-1;;1060:12:41;;1008:9;;:19;;:48;;;;;;;;;;;;;;-1:-1:-1;1008:9:41;:48;;;5:2:-1;;;;30:1;27;20:12;5:2;1008:48:41;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1008:48:41;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1008:48:41;:64;;;895:184;-1:-1:-1;;;895:184:41:o;587:25::-;;;;:::o;276:28:13:-;;;-1:-1:-1;;;;;276:28:13;;:::o;2920:190:39:-;3021:16;;;3035:1;3021:16;;;;;;;;;2966:9;;;;3021:16;;;;;;;105:10:-1;3021:16:39;88:34:-1;136:17;;-1:-1;3021:16:39;2987:50;;3067:5;3047:14;3062:1;3047:17;;;;;;;;;;;;;;;;;;:25;3089:14;-1:-1:-1;3089:14:39;2920:190;;;:::o;247:22:13:-;;;-1:-1:-1;;;;;247:22:13;;:::o;311:47::-;;;:::o;251:28:39:-;;;;:::o;310:24::-;;;;;;;;;;;;;;;-1:-1:-1;;310:24:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;395:44:41:-;;;;;;;;;;;;;;;:::o;915:98:2:-;590:6;;-1:-1:-1;590:6:2;;;;582:41;;;;;;;-1:-1:-1;;;;;582:41:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;965:6;:14;;-1:-1:-1;;965:14:2;;;994:12;;;1002:3;994:12;;;;;;;;;;;;;915:98::o;728:96::-;397:6;;-1:-1:-1;397:6:2;;;;396:7;388:38;;;;;-1:-1:-1;;;;;388:38:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;779:6;:13;;-1:-1:-1;;779:13:2;-1:-1:-1;;;779:13:2;;;807:10;;;813:3;807:10;;;;;;;;;;;;;728:96::o;172:2941:39:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;172:2941:39;;;;-1:-1:-1;172:2941:39;;;;;;;;;;;;;;",
  "source": "pragma solidity ^0.4.24;\n\nimport \"./ISTO.sol\";\nimport \"../../interfaces/IST20.sol\";\n\n/**\n * @title STO module for sample implementation of a different crowdsale module\n */\ncontract DummySTO is ISTO {\n\n    bytes32 public constant ADMIN = \"ADMIN\";\n\n    uint256 public investorCount;\n\n    uint256 public cap;\n    string public someString;\n\n    event LogGenerateTokens(address _investor, uint256 _amount);\n\n    mapping (address => uint256) public investors;\n\n    /**\n     * @notice Constructor\n     * @param _securityToken Address of the security token\n     * @param _polyAddress Address of the polytoken\n     */\n    constructor (address _securityToken, address _polyAddress) public\n    IModule(_securityToken, _polyAddress)\n    {\n    }\n\n    /**\n     * @notice Function used to intialize the differnet variables\n     * @param _startTime Unix timestamp at which offering get started\n     * @param _endTime Unix timestamp at which offering get ended\n     * @param _cap Maximum No. of tokens for sale\n     * @param _someString Any string that contails the details\n     */\n    function configure(uint256 _startTime, uint256 _endTime, uint256 _cap, string _someString) public onlyFactory {\n        startTime = _startTime;\n        endTime = _endTime;\n        cap = _cap;\n        someString = _someString;\n    }\n\n    /**\n     * @notice This function returns the signature of configure function\n     */\n    function getInitFunction() public pure returns (bytes4) {\n        return bytes4(keccak256(\"configure(uint256,uint256,uint256,string)\"));\n    }\n\n    /**\n     * @notice Function used to generate the tokens\n     * @param _investor Address of the investor\n     * @param _amount Amount of ETH or Poly invested by the investor\n     */\n    function generateTokens(address _investor, uint256 _amount) public withPerm(ADMIN) {\n        require(!paused);\n        require(_amount > 0, \"Amount should be greater than 0\");\n        IST20(securityToken).mint(_investor, _amount);\n        if (investors[_investor] == 0) {\n            investorCount = investorCount + 1;\n        }\n        //TODO: Add SafeMath maybe\n        investors[_investor] = investors[_investor] + _amount;\n        emit LogGenerateTokens (_investor, _amount);\n    }\n\n    /**\n     * @notice Return ETH raised by the STO\n     */\n    function getRaisedEther() public view returns (uint256) {\n        return 0;\n    }\n\n    /**\n     * @notice Return POLY raised by the STO\n     */\n    function getRaisedPOLY() public view returns (uint256) {\n        return 0;\n    }\n\n    /**\n     * @notice Return the total no. of investors\n     */\n    function getNumberInvestors() public view returns (uint256) {\n        return investorCount;\n    }\n\n    /**\n     * @notice Return the total no. of investors\n     */\n    function getTokensSold() public view returns (uint256) {\n        return 0;\n    }\n\n    /**\n     * @notice Return the permissions flag that are associated with STO\n     */\n    function getPermissions() public view returns(bytes32[]) {\n        bytes32[] memory allPermissions = new bytes32[](1);\n        allPermissions[0] = ADMIN;\n        return allPermissions;\n    }\n\n}\n",
  "sourcePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/modules/STO/DummySTO.sol",
  "ast": {
    "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/modules/STO/DummySTO.sol",
    "exportedSymbols": {
      "DummySTO": [
        14312
      ]
    },
    "id": 14313,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 14118,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:39"
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/modules/STO/ISTO.sol",
        "file": "./ISTO.sol",
        "id": 14119,
        "nodeType": "ImportDirective",
        "scope": 14313,
        "sourceUnit": 14624,
        "src": "26:20:39",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/interfaces/IST20.sol",
        "file": "../../interfaces/IST20.sol",
        "id": 14120,
        "nodeType": "ImportDirective",
        "scope": 14313,
        "sourceUnit": 10049,
        "src": "47:36:39",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 14121,
              "name": "ISTO",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 14623,
              "src": "193:4:39",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ISTO_$14623",
                "typeString": "contract ISTO"
              }
            },
            "id": 14122,
            "nodeType": "InheritanceSpecifier",
            "src": "193:4:39"
          }
        ],
        "contractDependencies": [
          471,
          9717,
          14623
        ],
        "contractKind": "contract",
        "documentation": "@title STO module for sample implementation of a different crowdsale module",
        "fullyImplemented": true,
        "id": 14312,
        "linearizedBaseContracts": [
          14312,
          14623,
          471,
          9717
        ],
        "name": "DummySTO",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 14125,
            "name": "ADMIN",
            "nodeType": "VariableDeclaration",
            "scope": 14312,
            "src": "205:39:39",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 14123,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "205:7:39",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "41444d494e",
              "id": 14124,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "237:7:39",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_df8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42",
                "typeString": "literal_string \"ADMIN\""
              },
              "value": "ADMIN"
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 14127,
            "name": "investorCount",
            "nodeType": "VariableDeclaration",
            "scope": 14312,
            "src": "251:28:39",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 14126,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "251:7:39",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 14129,
            "name": "cap",
            "nodeType": "VariableDeclaration",
            "scope": 14312,
            "src": "286:18:39",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 14128,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "286:7:39",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 14131,
            "name": "someString",
            "nodeType": "VariableDeclaration",
            "scope": 14312,
            "src": "310:24:39",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 14130,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "310:6:39",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 14137,
            "name": "LogGenerateTokens",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 14136,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14133,
                  "indexed": false,
                  "name": "_investor",
                  "nodeType": "VariableDeclaration",
                  "scope": 14137,
                  "src": "365:17:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14132,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "365:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14135,
                  "indexed": false,
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 14137,
                  "src": "384:15:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14134,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "384:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "364:36:39"
            },
            "src": "341:60:39"
          },
          {
            "constant": false,
            "id": 14141,
            "name": "investors",
            "nodeType": "VariableDeclaration",
            "scope": 14312,
            "src": "407:45:39",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 14140,
              "keyType": {
                "id": 14138,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "416:7:39",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "407:28:39",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 14139,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "427:7:39",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14152,
              "nodeType": "Block",
              "src": "725:7:39",
              "statements": []
            },
            "documentation": "@notice Constructor\n@param _securityToken Address of the security token\n@param _polyAddress Address of the polytoken",
            "id": 14153,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 14148,
                    "name": "_securityToken",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 14143,
                    "src": "691:14:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 14149,
                    "name": "_polyAddress",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 14145,
                    "src": "707:12:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 14150,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 14147,
                  "name": "IModule",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 9717,
                  "src": "683:7:39",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_IModule_$9717_$",
                    "typeString": "type(contract IModule)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "683:37:39"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14146,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14143,
                  "name": "_securityToken",
                  "nodeType": "VariableDeclaration",
                  "scope": 14153,
                  "src": "626:22:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14142,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "626:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14145,
                  "name": "_polyAddress",
                  "nodeType": "VariableDeclaration",
                  "scope": 14153,
                  "src": "650:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14144,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "650:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "625:46:39"
            },
            "payable": false,
            "returnParameters": {
              "id": 14151,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "725:0:39"
            },
            "scope": 14312,
            "src": "613:119:39",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14182,
              "nodeType": "Block",
              "src": "1179:121:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14168,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14166,
                      "name": "startTime",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14510,
                      "src": "1189:9:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 14167,
                      "name": "_startTime",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14155,
                      "src": "1201:10:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1189:22:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14169,
                  "nodeType": "ExpressionStatement",
                  "src": "1189:22:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14172,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14170,
                      "name": "endTime",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14512,
                      "src": "1221:7:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 14171,
                      "name": "_endTime",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14157,
                      "src": "1231:8:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1221:18:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14173,
                  "nodeType": "ExpressionStatement",
                  "src": "1221:18:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14176,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14174,
                      "name": "cap",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14129,
                      "src": "1249:3:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 14175,
                      "name": "_cap",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14159,
                      "src": "1255:4:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1249:10:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14177,
                  "nodeType": "ExpressionStatement",
                  "src": "1249:10:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14180,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14178,
                      "name": "someString",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14131,
                      "src": "1269:10:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 14179,
                      "name": "_someString",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14161,
                      "src": "1282:11:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "1269:24:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 14181,
                  "nodeType": "ExpressionStatement",
                  "src": "1269:24:39"
                }
              ]
            },
            "documentation": "@notice Function used to intialize the differnet variables\n@param _startTime Unix timestamp at which offering get started\n@param _endTime Unix timestamp at which offering get ended\n@param _cap Maximum No. of tokens for sale\n@param _someString Any string that contails the details",
            "id": 14183,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 14164,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 14163,
                  "name": "onlyFactory",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 9665,
                  "src": "1167:11:39",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1167:11:39"
              }
            ],
            "name": "configure",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14162,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14155,
                  "name": "_startTime",
                  "nodeType": "VariableDeclaration",
                  "scope": 14183,
                  "src": "1088:18:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14154,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1088:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14157,
                  "name": "_endTime",
                  "nodeType": "VariableDeclaration",
                  "scope": 14183,
                  "src": "1108:16:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14156,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1108:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14159,
                  "name": "_cap",
                  "nodeType": "VariableDeclaration",
                  "scope": 14183,
                  "src": "1126:12:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14158,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1126:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14161,
                  "name": "_someString",
                  "nodeType": "VariableDeclaration",
                  "scope": 14183,
                  "src": "1140:18:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 14160,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1140:6:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1087:72:39"
            },
            "payable": false,
            "returnParameters": {
              "id": 14165,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1179:0:39"
            },
            "scope": 14312,
            "src": "1069:231:39",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14194,
              "nodeType": "Block",
              "src": "1451:86:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "636f6e6669677572652875696e743235362c75696e743235362c75696e743235362c737472696e6729",
                            "id": 14190,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1485:43:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_8b3100791029a7ac4d732213a03f2cad6385a5e1c4463648dc21625ae1919033",
                              "typeString": "literal_string \"configure(uint256,uint256,uint256,string)\""
                            },
                            "value": "configure(uint256,uint256,uint256,string)"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_8b3100791029a7ac4d732213a03f2cad6385a5e1c4463648dc21625ae1919033",
                              "typeString": "literal_string \"configure(uint256,uint256,uint256,string)\""
                            }
                          ],
                          "id": 14189,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23125,
                          "src": "1475:9:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                            "typeString": "function () pure returns (bytes32)"
                          }
                        },
                        "id": 14191,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1475:54:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 14188,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1468:6:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes4_$",
                        "typeString": "type(bytes4)"
                      },
                      "typeName": "bytes4"
                    },
                    "id": 14192,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1468:62:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "functionReturnParameters": 14187,
                  "id": 14193,
                  "nodeType": "Return",
                  "src": "1461:69:39"
                }
              ]
            },
            "documentation": "@notice This function returns the signature of configure function",
            "id": 14195,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getInitFunction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14184,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1419:2:39"
            },
            "payable": false,
            "returnParameters": {
              "id": 14187,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14186,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 14195,
                  "src": "1443:6:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 14185,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "1443:6:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1442:8:39"
            },
            "scope": 14312,
            "src": "1395:142:39",
            "stateMutability": "pure",
            "superFunction": 9594,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14253,
              "nodeType": "Block",
              "src": "1811:402:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 14207,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "1829:7:39",
                        "subExpression": {
                          "argumentTypes": null,
                          "id": 14206,
                          "name": "paused",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 423,
                          "src": "1830:6:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 14205,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23134,
                        23135
                      ],
                      "referencedDeclaration": 23134,
                      "src": "1821:7:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 14208,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1821:16:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 14209,
                  "nodeType": "ExpressionStatement",
                  "src": "1821:16:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 14213,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 14211,
                          "name": "_amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14199,
                          "src": "1855:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 14212,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1865:1:39",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1855:11:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "416d6f756e742073686f756c642062652067726561746572207468616e2030",
                        "id": 14214,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1868:33:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7f525d2a9200f69a45f8de883051eac35bddb35241cec9b8986fc11471c25580",
                          "typeString": "literal_string \"Amount should be greater than 0\""
                        },
                        "value": "Amount should be greater than 0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7f525d2a9200f69a45f8de883051eac35bddb35241cec9b8986fc11471c25580",
                          "typeString": "literal_string \"Amount should be greater than 0\""
                        }
                      ],
                      "id": 14210,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23134,
                        23135
                      ],
                      "referencedDeclaration": 23135,
                      "src": "1847:7:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 14215,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1847:55:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 14216,
                  "nodeType": "ExpressionStatement",
                  "src": "1847:55:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 14221,
                        "name": "_investor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14197,
                        "src": "1938:9:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 14222,
                        "name": "_amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14199,
                        "src": "1949:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 14218,
                            "name": "securityToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9561,
                            "src": "1918:13:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 14217,
                          "name": "IST20",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10048,
                          "src": "1912:5:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IST20_$10048_$",
                            "typeString": "type(contract IST20)"
                          }
                        },
                        "id": 14219,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1912:20:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IST20_$10048",
                          "typeString": "contract IST20"
                        }
                      },
                      "id": 14220,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "mint",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10030,
                      "src": "1912:25:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (address,uint256) external returns (bool)"
                      }
                    },
                    "id": 14223,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1912:45:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 14224,
                  "nodeType": "ExpressionStatement",
                  "src": "1912:45:39"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 14229,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 14225,
                        "name": "investors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14141,
                        "src": "1971:9:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14227,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14226,
                        "name": "_investor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14197,
                        "src": "1981:9:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "1971:20:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 14228,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1995:1:39",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "1971:25:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 14237,
                  "nodeType": "IfStatement",
                  "src": "1967:89:39",
                  "trueBody": {
                    "id": 14236,
                    "nodeType": "Block",
                    "src": "1998:58:39",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 14234,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 14230,
                            "name": "investorCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14127,
                            "src": "2012:13:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 14233,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 14231,
                              "name": "investorCount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 14127,
                              "src": "2028:13:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 14232,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2044:1:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "2028:17:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2012:33:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 14235,
                        "nodeType": "ExpressionStatement",
                        "src": "2012:33:39"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14246,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 14238,
                        "name": "investors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14141,
                        "src": "2100:9:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14240,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14239,
                        "name": "_investor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14197,
                        "src": "2110:9:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2100:20:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 14245,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 14241,
                          "name": "investors",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14141,
                          "src": "2123:9:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                            "typeString": "mapping(address => uint256)"
                          }
                        },
                        "id": 14243,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 14242,
                          "name": "_investor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14197,
                          "src": "2133:9:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2123:20:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 14244,
                        "name": "_amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14199,
                        "src": "2146:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2123:30:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2100:53:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14247,
                  "nodeType": "ExpressionStatement",
                  "src": "2100:53:39"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 14249,
                        "name": "_investor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14197,
                        "src": "2187:9:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 14250,
                        "name": "_amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14199,
                        "src": "2198:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 14248,
                      "name": "LogGenerateTokens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14137,
                      "src": "2168:17:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 14251,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2168:38:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 14252,
                  "nodeType": "EmitStatement",
                  "src": "2163:43:39"
                }
              ]
            },
            "documentation": "@notice Function used to generate the tokens\n@param _investor Address of the investor\n@param _amount Amount of ETH or Poly invested by the investor",
            "id": 14254,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 14202,
                    "name": "ADMIN",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 14125,
                    "src": "1804:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 14203,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 14201,
                  "name": "withPerm",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 9637,
                  "src": "1795:8:39",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1795:15:39"
              }
            ],
            "name": "generateTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14200,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14197,
                  "name": "_investor",
                  "nodeType": "VariableDeclaration",
                  "scope": 14254,
                  "src": "1752:17:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14196,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1752:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14199,
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 14254,
                  "src": "1771:15:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14198,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1771:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1751:36:39"
            },
            "payable": false,
            "returnParameters": {
              "id": 14204,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1811:0:39"
            },
            "scope": 14312,
            "src": "1728:485:39",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14261,
              "nodeType": "Block",
              "src": "2335:25:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 14259,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2352:1:39",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "functionReturnParameters": 14258,
                  "id": 14260,
                  "nodeType": "Return",
                  "src": "2345:8:39"
                }
              ]
            },
            "documentation": "@notice Return ETH raised by the STO",
            "id": 14262,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getRaisedEther",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14255,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2302:2:39"
            },
            "payable": false,
            "returnParameters": {
              "id": 14258,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14257,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 14262,
                  "src": "2326:7:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14256,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2326:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2325:9:39"
            },
            "scope": 14312,
            "src": "2279:81:39",
            "stateMutability": "view",
            "superFunction": 14539,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14269,
              "nodeType": "Block",
              "src": "2482:25:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 14267,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2499:1:39",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "functionReturnParameters": 14266,
                  "id": 14268,
                  "nodeType": "Return",
                  "src": "2492:8:39"
                }
              ]
            },
            "documentation": "@notice Return POLY raised by the STO",
            "id": 14270,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getRaisedPOLY",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14263,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2449:2:39"
            },
            "payable": false,
            "returnParameters": {
              "id": 14266,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14265,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 14270,
                  "src": "2473:7:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14264,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2473:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2472:9:39"
            },
            "scope": 14312,
            "src": "2427:80:39",
            "stateMutability": "view",
            "superFunction": 14544,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14277,
              "nodeType": "Block",
              "src": "2638:37:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14275,
                    "name": "investorCount",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 14127,
                    "src": "2655:13:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 14274,
                  "id": 14276,
                  "nodeType": "Return",
                  "src": "2648:20:39"
                }
              ]
            },
            "documentation": "@notice Return the total no. of investors",
            "id": 14278,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getNumberInvestors",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14271,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2605:2:39"
            },
            "payable": false,
            "returnParameters": {
              "id": 14274,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14273,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 14278,
                  "src": "2629:7:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14272,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2629:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2628:9:39"
            },
            "scope": 14312,
            "src": "2578:97:39",
            "stateMutability": "view",
            "superFunction": 14549,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14285,
              "nodeType": "Block",
              "src": "2801:25:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 14283,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2818:1:39",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "functionReturnParameters": 14282,
                  "id": 14284,
                  "nodeType": "Return",
                  "src": "2811:8:39"
                }
              ]
            },
            "documentation": "@notice Return the total no. of investors",
            "id": 14286,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getTokensSold",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14279,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2768:2:39"
            },
            "payable": false,
            "returnParameters": {
              "id": 14282,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14281,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 14286,
                  "src": "2792:7:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14280,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2792:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2791:9:39"
            },
            "scope": 14312,
            "src": "2746:80:39",
            "stateMutability": "view",
            "superFunction": 14554,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14310,
              "nodeType": "Block",
              "src": "2977:133:39",
              "statements": [
                {
                  "assignments": [
                    14295
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 14295,
                      "name": "allPermissions",
                      "nodeType": "VariableDeclaration",
                      "scope": 14311,
                      "src": "2987:31:39",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 14293,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "2987:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 14294,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "2987:9:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                          "typeString": "bytes32[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 14301,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 14299,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3035:1:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "id": 14298,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "3021:13:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
                        "typeString": "function (uint256) pure returns (bytes32[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 14296,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "3025:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 14297,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "3025:9:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                          "typeString": "bytes32[]"
                        }
                      }
                    },
                    "id": 14300,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3021:16:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2987:50:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14306,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 14302,
                        "name": "allPermissions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14295,
                        "src": "3047:14:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 14304,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 14303,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3062:1:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3047:17:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 14305,
                      "name": "ADMIN",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14125,
                      "src": "3067:5:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "3047:25:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 14307,
                  "nodeType": "ExpressionStatement",
                  "src": "3047:25:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14308,
                    "name": "allPermissions",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 14295,
                    "src": "3089:14:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "functionReturnParameters": 14291,
                  "id": 14309,
                  "nodeType": "Return",
                  "src": "3082:21:39"
                }
              ]
            },
            "documentation": "@notice Return the permissions flag that are associated with STO",
            "id": 14311,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPermissions",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14287,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2943:2:39"
            },
            "payable": false,
            "returnParameters": {
              "id": 14291,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14290,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 14311,
                  "src": "2966:9:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 14288,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "2966:7:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 14289,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2966:9:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2965:11:39"
            },
            "scope": 14312,
            "src": "2920:190:39",
            "stateMutability": "view",
            "superFunction": 9687,
            "visibility": "public"
          }
        ],
        "scope": 14313,
        "src": "172:2941:39"
      }
    ],
    "src": "0:3114:39"
  },
  "legacyAST": {
    "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/modules/STO/DummySTO.sol",
    "exportedSymbols": {
      "DummySTO": [
        14312
      ]
    },
    "id": 14313,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 14118,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:39"
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/modules/STO/ISTO.sol",
        "file": "./ISTO.sol",
        "id": 14119,
        "nodeType": "ImportDirective",
        "scope": 14313,
        "sourceUnit": 14624,
        "src": "26:20:39",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/interfaces/IST20.sol",
        "file": "../../interfaces/IST20.sol",
        "id": 14120,
        "nodeType": "ImportDirective",
        "scope": 14313,
        "sourceUnit": 10049,
        "src": "47:36:39",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 14121,
              "name": "ISTO",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 14623,
              "src": "193:4:39",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ISTO_$14623",
                "typeString": "contract ISTO"
              }
            },
            "id": 14122,
            "nodeType": "InheritanceSpecifier",
            "src": "193:4:39"
          }
        ],
        "contractDependencies": [
          471,
          9717,
          14623
        ],
        "contractKind": "contract",
        "documentation": "@title STO module for sample implementation of a different crowdsale module",
        "fullyImplemented": true,
        "id": 14312,
        "linearizedBaseContracts": [
          14312,
          14623,
          471,
          9717
        ],
        "name": "DummySTO",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 14125,
            "name": "ADMIN",
            "nodeType": "VariableDeclaration",
            "scope": 14312,
            "src": "205:39:39",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 14123,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "205:7:39",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "41444d494e",
              "id": 14124,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "237:7:39",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_df8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42",
                "typeString": "literal_string \"ADMIN\""
              },
              "value": "ADMIN"
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 14127,
            "name": "investorCount",
            "nodeType": "VariableDeclaration",
            "scope": 14312,
            "src": "251:28:39",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 14126,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "251:7:39",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 14129,
            "name": "cap",
            "nodeType": "VariableDeclaration",
            "scope": 14312,
            "src": "286:18:39",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 14128,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "286:7:39",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 14131,
            "name": "someString",
            "nodeType": "VariableDeclaration",
            "scope": 14312,
            "src": "310:24:39",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 14130,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "310:6:39",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 14137,
            "name": "LogGenerateTokens",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 14136,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14133,
                  "indexed": false,
                  "name": "_investor",
                  "nodeType": "VariableDeclaration",
                  "scope": 14137,
                  "src": "365:17:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14132,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "365:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14135,
                  "indexed": false,
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 14137,
                  "src": "384:15:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14134,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "384:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "364:36:39"
            },
            "src": "341:60:39"
          },
          {
            "constant": false,
            "id": 14141,
            "name": "investors",
            "nodeType": "VariableDeclaration",
            "scope": 14312,
            "src": "407:45:39",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 14140,
              "keyType": {
                "id": 14138,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "416:7:39",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "407:28:39",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 14139,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "427:7:39",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14152,
              "nodeType": "Block",
              "src": "725:7:39",
              "statements": []
            },
            "documentation": "@notice Constructor\n@param _securityToken Address of the security token\n@param _polyAddress Address of the polytoken",
            "id": 14153,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 14148,
                    "name": "_securityToken",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 14143,
                    "src": "691:14:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 14149,
                    "name": "_polyAddress",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 14145,
                    "src": "707:12:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 14150,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 14147,
                  "name": "IModule",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 9717,
                  "src": "683:7:39",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_IModule_$9717_$",
                    "typeString": "type(contract IModule)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "683:37:39"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14146,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14143,
                  "name": "_securityToken",
                  "nodeType": "VariableDeclaration",
                  "scope": 14153,
                  "src": "626:22:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14142,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "626:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14145,
                  "name": "_polyAddress",
                  "nodeType": "VariableDeclaration",
                  "scope": 14153,
                  "src": "650:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14144,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "650:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "625:46:39"
            },
            "payable": false,
            "returnParameters": {
              "id": 14151,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "725:0:39"
            },
            "scope": 14312,
            "src": "613:119:39",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14182,
              "nodeType": "Block",
              "src": "1179:121:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14168,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14166,
                      "name": "startTime",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14510,
                      "src": "1189:9:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 14167,
                      "name": "_startTime",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14155,
                      "src": "1201:10:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1189:22:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14169,
                  "nodeType": "ExpressionStatement",
                  "src": "1189:22:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14172,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14170,
                      "name": "endTime",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14512,
                      "src": "1221:7:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 14171,
                      "name": "_endTime",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14157,
                      "src": "1231:8:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1221:18:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14173,
                  "nodeType": "ExpressionStatement",
                  "src": "1221:18:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14176,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14174,
                      "name": "cap",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14129,
                      "src": "1249:3:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 14175,
                      "name": "_cap",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14159,
                      "src": "1255:4:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1249:10:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14177,
                  "nodeType": "ExpressionStatement",
                  "src": "1249:10:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14180,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14178,
                      "name": "someString",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14131,
                      "src": "1269:10:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 14179,
                      "name": "_someString",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14161,
                      "src": "1282:11:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "1269:24:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 14181,
                  "nodeType": "ExpressionStatement",
                  "src": "1269:24:39"
                }
              ]
            },
            "documentation": "@notice Function used to intialize the differnet variables\n@param _startTime Unix timestamp at which offering get started\n@param _endTime Unix timestamp at which offering get ended\n@param _cap Maximum No. of tokens for sale\n@param _someString Any string that contails the details",
            "id": 14183,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 14164,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 14163,
                  "name": "onlyFactory",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 9665,
                  "src": "1167:11:39",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1167:11:39"
              }
            ],
            "name": "configure",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14162,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14155,
                  "name": "_startTime",
                  "nodeType": "VariableDeclaration",
                  "scope": 14183,
                  "src": "1088:18:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14154,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1088:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14157,
                  "name": "_endTime",
                  "nodeType": "VariableDeclaration",
                  "scope": 14183,
                  "src": "1108:16:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14156,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1108:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14159,
                  "name": "_cap",
                  "nodeType": "VariableDeclaration",
                  "scope": 14183,
                  "src": "1126:12:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14158,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1126:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14161,
                  "name": "_someString",
                  "nodeType": "VariableDeclaration",
                  "scope": 14183,
                  "src": "1140:18:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 14160,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1140:6:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1087:72:39"
            },
            "payable": false,
            "returnParameters": {
              "id": 14165,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1179:0:39"
            },
            "scope": 14312,
            "src": "1069:231:39",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14194,
              "nodeType": "Block",
              "src": "1451:86:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "636f6e6669677572652875696e743235362c75696e743235362c75696e743235362c737472696e6729",
                            "id": 14190,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1485:43:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_8b3100791029a7ac4d732213a03f2cad6385a5e1c4463648dc21625ae1919033",
                              "typeString": "literal_string \"configure(uint256,uint256,uint256,string)\""
                            },
                            "value": "configure(uint256,uint256,uint256,string)"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_8b3100791029a7ac4d732213a03f2cad6385a5e1c4463648dc21625ae1919033",
                              "typeString": "literal_string \"configure(uint256,uint256,uint256,string)\""
                            }
                          ],
                          "id": 14189,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23125,
                          "src": "1475:9:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                            "typeString": "function () pure returns (bytes32)"
                          }
                        },
                        "id": 14191,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1475:54:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 14188,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1468:6:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes4_$",
                        "typeString": "type(bytes4)"
                      },
                      "typeName": "bytes4"
                    },
                    "id": 14192,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1468:62:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "functionReturnParameters": 14187,
                  "id": 14193,
                  "nodeType": "Return",
                  "src": "1461:69:39"
                }
              ]
            },
            "documentation": "@notice This function returns the signature of configure function",
            "id": 14195,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getInitFunction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14184,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1419:2:39"
            },
            "payable": false,
            "returnParameters": {
              "id": 14187,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14186,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 14195,
                  "src": "1443:6:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 14185,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "1443:6:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1442:8:39"
            },
            "scope": 14312,
            "src": "1395:142:39",
            "stateMutability": "pure",
            "superFunction": 9594,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14253,
              "nodeType": "Block",
              "src": "1811:402:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 14207,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "1829:7:39",
                        "subExpression": {
                          "argumentTypes": null,
                          "id": 14206,
                          "name": "paused",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 423,
                          "src": "1830:6:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 14205,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23134,
                        23135
                      ],
                      "referencedDeclaration": 23134,
                      "src": "1821:7:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 14208,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1821:16:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 14209,
                  "nodeType": "ExpressionStatement",
                  "src": "1821:16:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 14213,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 14211,
                          "name": "_amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14199,
                          "src": "1855:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 14212,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1865:1:39",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1855:11:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "416d6f756e742073686f756c642062652067726561746572207468616e2030",
                        "id": 14214,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1868:33:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7f525d2a9200f69a45f8de883051eac35bddb35241cec9b8986fc11471c25580",
                          "typeString": "literal_string \"Amount should be greater than 0\""
                        },
                        "value": "Amount should be greater than 0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7f525d2a9200f69a45f8de883051eac35bddb35241cec9b8986fc11471c25580",
                          "typeString": "literal_string \"Amount should be greater than 0\""
                        }
                      ],
                      "id": 14210,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23134,
                        23135
                      ],
                      "referencedDeclaration": 23135,
                      "src": "1847:7:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 14215,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1847:55:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 14216,
                  "nodeType": "ExpressionStatement",
                  "src": "1847:55:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 14221,
                        "name": "_investor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14197,
                        "src": "1938:9:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 14222,
                        "name": "_amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14199,
                        "src": "1949:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 14218,
                            "name": "securityToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9561,
                            "src": "1918:13:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 14217,
                          "name": "IST20",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10048,
                          "src": "1912:5:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IST20_$10048_$",
                            "typeString": "type(contract IST20)"
                          }
                        },
                        "id": 14219,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1912:20:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IST20_$10048",
                          "typeString": "contract IST20"
                        }
                      },
                      "id": 14220,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "mint",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10030,
                      "src": "1912:25:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (address,uint256) external returns (bool)"
                      }
                    },
                    "id": 14223,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1912:45:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 14224,
                  "nodeType": "ExpressionStatement",
                  "src": "1912:45:39"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 14229,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 14225,
                        "name": "investors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14141,
                        "src": "1971:9:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14227,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14226,
                        "name": "_investor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14197,
                        "src": "1981:9:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "1971:20:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 14228,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1995:1:39",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "1971:25:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 14237,
                  "nodeType": "IfStatement",
                  "src": "1967:89:39",
                  "trueBody": {
                    "id": 14236,
                    "nodeType": "Block",
                    "src": "1998:58:39",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 14234,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 14230,
                            "name": "investorCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14127,
                            "src": "2012:13:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 14233,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 14231,
                              "name": "investorCount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 14127,
                              "src": "2028:13:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 14232,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2044:1:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "2028:17:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2012:33:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 14235,
                        "nodeType": "ExpressionStatement",
                        "src": "2012:33:39"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14246,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 14238,
                        "name": "investors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14141,
                        "src": "2100:9:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14240,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14239,
                        "name": "_investor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14197,
                        "src": "2110:9:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2100:20:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 14245,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 14241,
                          "name": "investors",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14141,
                          "src": "2123:9:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                            "typeString": "mapping(address => uint256)"
                          }
                        },
                        "id": 14243,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 14242,
                          "name": "_investor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14197,
                          "src": "2133:9:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2123:20:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 14244,
                        "name": "_amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14199,
                        "src": "2146:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2123:30:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2100:53:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14247,
                  "nodeType": "ExpressionStatement",
                  "src": "2100:53:39"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 14249,
                        "name": "_investor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14197,
                        "src": "2187:9:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 14250,
                        "name": "_amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14199,
                        "src": "2198:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 14248,
                      "name": "LogGenerateTokens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14137,
                      "src": "2168:17:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 14251,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2168:38:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 14252,
                  "nodeType": "EmitStatement",
                  "src": "2163:43:39"
                }
              ]
            },
            "documentation": "@notice Function used to generate the tokens\n@param _investor Address of the investor\n@param _amount Amount of ETH or Poly invested by the investor",
            "id": 14254,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 14202,
                    "name": "ADMIN",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 14125,
                    "src": "1804:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 14203,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 14201,
                  "name": "withPerm",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 9637,
                  "src": "1795:8:39",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1795:15:39"
              }
            ],
            "name": "generateTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14200,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14197,
                  "name": "_investor",
                  "nodeType": "VariableDeclaration",
                  "scope": 14254,
                  "src": "1752:17:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14196,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1752:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14199,
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 14254,
                  "src": "1771:15:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14198,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1771:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1751:36:39"
            },
            "payable": false,
            "returnParameters": {
              "id": 14204,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1811:0:39"
            },
            "scope": 14312,
            "src": "1728:485:39",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14261,
              "nodeType": "Block",
              "src": "2335:25:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 14259,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2352:1:39",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "functionReturnParameters": 14258,
                  "id": 14260,
                  "nodeType": "Return",
                  "src": "2345:8:39"
                }
              ]
            },
            "documentation": "@notice Return ETH raised by the STO",
            "id": 14262,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getRaisedEther",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14255,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2302:2:39"
            },
            "payable": false,
            "returnParameters": {
              "id": 14258,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14257,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 14262,
                  "src": "2326:7:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14256,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2326:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2325:9:39"
            },
            "scope": 14312,
            "src": "2279:81:39",
            "stateMutability": "view",
            "superFunction": 14539,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14269,
              "nodeType": "Block",
              "src": "2482:25:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 14267,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2499:1:39",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "functionReturnParameters": 14266,
                  "id": 14268,
                  "nodeType": "Return",
                  "src": "2492:8:39"
                }
              ]
            },
            "documentation": "@notice Return POLY raised by the STO",
            "id": 14270,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getRaisedPOLY",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14263,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2449:2:39"
            },
            "payable": false,
            "returnParameters": {
              "id": 14266,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14265,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 14270,
                  "src": "2473:7:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14264,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2473:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2472:9:39"
            },
            "scope": 14312,
            "src": "2427:80:39",
            "stateMutability": "view",
            "superFunction": 14544,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14277,
              "nodeType": "Block",
              "src": "2638:37:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14275,
                    "name": "investorCount",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 14127,
                    "src": "2655:13:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 14274,
                  "id": 14276,
                  "nodeType": "Return",
                  "src": "2648:20:39"
                }
              ]
            },
            "documentation": "@notice Return the total no. of investors",
            "id": 14278,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getNumberInvestors",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14271,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2605:2:39"
            },
            "payable": false,
            "returnParameters": {
              "id": 14274,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14273,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 14278,
                  "src": "2629:7:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14272,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2629:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2628:9:39"
            },
            "scope": 14312,
            "src": "2578:97:39",
            "stateMutability": "view",
            "superFunction": 14549,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14285,
              "nodeType": "Block",
              "src": "2801:25:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 14283,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2818:1:39",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "functionReturnParameters": 14282,
                  "id": 14284,
                  "nodeType": "Return",
                  "src": "2811:8:39"
                }
              ]
            },
            "documentation": "@notice Return the total no. of investors",
            "id": 14286,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getTokensSold",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14279,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2768:2:39"
            },
            "payable": false,
            "returnParameters": {
              "id": 14282,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14281,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 14286,
                  "src": "2792:7:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14280,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2792:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2791:9:39"
            },
            "scope": 14312,
            "src": "2746:80:39",
            "stateMutability": "view",
            "superFunction": 14554,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14310,
              "nodeType": "Block",
              "src": "2977:133:39",
              "statements": [
                {
                  "assignments": [
                    14295
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 14295,
                      "name": "allPermissions",
                      "nodeType": "VariableDeclaration",
                      "scope": 14311,
                      "src": "2987:31:39",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 14293,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "2987:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 14294,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "2987:9:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                          "typeString": "bytes32[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 14301,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 14299,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3035:1:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "id": 14298,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "3021:13:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
                        "typeString": "function (uint256) pure returns (bytes32[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 14296,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "3025:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 14297,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "3025:9:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                          "typeString": "bytes32[]"
                        }
                      }
                    },
                    "id": 14300,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3021:16:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2987:50:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14306,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 14302,
                        "name": "allPermissions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14295,
                        "src": "3047:14:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 14304,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 14303,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3062:1:39",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3047:17:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 14305,
                      "name": "ADMIN",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14125,
                      "src": "3067:5:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "3047:25:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 14307,
                  "nodeType": "ExpressionStatement",
                  "src": "3047:25:39"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14308,
                    "name": "allPermissions",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 14295,
                    "src": "3089:14:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "functionReturnParameters": 14291,
                  "id": 14309,
                  "nodeType": "Return",
                  "src": "3082:21:39"
                }
              ]
            },
            "documentation": "@notice Return the permissions flag that are associated with STO",
            "id": 14311,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPermissions",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14287,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2943:2:39"
            },
            "payable": false,
            "returnParameters": {
              "id": 14291,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14290,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 14311,
                  "src": "2966:9:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 14288,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "2966:7:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 14289,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2966:9:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2965:11:39"
            },
            "scope": 14312,
            "src": "2920:190:39",
            "stateMutability": "view",
            "superFunction": 9687,
            "visibility": "public"
          }
        ],
        "scope": 14313,
        "src": "172:2941:39"
      }
    ],
    "src": "0:3114:39"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.1",
  "updatedAt": "2018-08-21T09:48:12.458Z"
}