UNPKG

@verified-network/verified-sdk

Version:

An SDK to develop applications on the Verified Network

474 lines 712 kB
{ "contractName": "Token", "abi": [ { "constant": true, "inputs": [], "name": "name", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "spender", "type": "address" }, { "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "totalSupply", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "decimals", "outputs": [ { "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "spender", "type": "address" }, { "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "symbol", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "spender", "type": "address" }, { "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "recipient", "type": "address" }, { "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "owner", "type": "address" }, { "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "from", "type": "address" }, { "indexed": true, "name": "to", "type": "address" }, { "indexed": false, "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "owner", "type": "address" }, { "indexed": true, "name": "spender", "type": "address" }, { "indexed": false, "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "constant": false, "inputs": [ { "name": "name", "type": "bytes32" }, { "name": "issuer", "type": "address" }, { "name": "owner", "type": "address" }, { "name": "symbol", "type": "bytes32" } ], "name": "initialize", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "getIssuer", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "amount", "type": "uint256" } ], "name": "addTotalSupply", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "amount", "type": "uint256" } ], "name": "reduceSupply", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "party", "type": "address" }, { "name": "amount", "type": "uint256" } ], "name": "addBalance", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "party", "type": "address" }, { "name": "amount", "type": "uint256" } ], "name": "reduceBalance", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "party", "type": "address" } ], "name": "getBalance", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "sender", "type": "address" }, { "name": "receiver", "type": "address" }, { "name": "tokens", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "sender", "type": "address" }, { "name": "receiver", "type": "address" }, { "name": "tokens", "type": "uint256" } ], "name": "transferToken", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "receiver", "type": "address" }, { "name": "tokens", "type": "uint256" } ], "name": "requestTransfer", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "amount", "type": "uint256" }, { "name": "payer", "type": "address" }, { "name": "currency", "type": "bytes32" }, { "name": "cashContract", "type": "address" } ], "name": "requestTransaction", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.5.7+commit.6da8b019\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"party\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"addBalance\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sender\",\"type\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\"},{\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getIssuer\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\"},{\"name\":\"payer\",\"type\":\"address\"},{\"name\":\"currency\",\"type\":\"bytes32\"},{\"name\":\"cashContract\",\"type\":\"address\"}],\"name\":\"requestTransaction\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"reduceSupply\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\"},{\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"requestTransfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"party\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"reduceBalance\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"addTotalSupply\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"name\",\"type\":\"bytes32\"},{\"name\":\"issuer\",\"type\":\"address\"},{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"symbol\",\"type\":\"bytes32\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sender\",\"type\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\"},{\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"transferToken\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"party\",\"type\":\"address\"}],\"name\":\"getBalance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\\r\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}.\\r * Requirements:\\r * - `spender` cannot be the zero address.\\r\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\\r\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation.\\r For example, if `decimals` equals `2`, a balance of `505` tokens should\\r be displayed to a user as `5.05` (`505 / 10 ** 2`).\\r * Tokens usually opt for a value of 18, imitating the relationship between\\r Ether and Wei. This is the default value returned by this function, unless\\r it's overridden.\\r * NOTE: This information is only used for _display_ purposes: it in\\r no way affects any of the arithmetic of the contract, including\\r {IERC20-balanceOf} and {IERC20-transfer}.\\r\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller.\\r * This is an alternative to {approve} that can be used as a mitigation for\\r problems described in {IERC20-approve}.\\r * Emits an {Approval} event indicating the updated allowance.\\r * Requirements:\\r * - `spender` cannot be the zero address.\\r - `spender` must have allowance for the caller of at least\\r `subtractedValue`.\\r\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller.\\r * This is an alternative to {approve} that can be used as a mitigation for\\r problems described in {IERC20-approve}.\\r * Emits an {Approval} event indicating the updated allowance.\\r * Requirements:\\r * - `spender` cannot be the zero address.\\r\"},\"name()\":{\"details\":\"Returns the name of the token.\\r\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the\\r name.\\r\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\\r\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}.\\r * Requirements:\\r * - `recipient` cannot be the zero address.\\r - the caller must have a balance of at least `amount`.\\r\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/Token.sol\":\"Token\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-ethereum-package/contracts/GSN/Context.sol\":{\"keccak256\":\"0x3491510fa4862af1a43f6c860d9cf7392240196540cd3c0eea79d374d419c5a1\",\"urls\":[\"bzzr://5cddbf3b74b775a8670757a6b8e108dac17dac20253f35f4c729e9cb6bea4ed3\"]},\"@openzeppelin/contracts-ethereum-package/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]},\"@openzeppelin/contracts-ethereum-package/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzzr://cf2d583b8dce38d0617fdcd65f2fd9f126fe17b7f683b5a515ea9d2762d8b062\"]},\"@openzeppelin/upgrades/contracts/Initializable.sol\":{\"keccak256\":\"0x9bfec92e36234ecc99b5d37230acb6cd1f99560233753162204104a4897e8721\",\"urls\":[\"bzzr://f75d88b16fe25a9e19b3512691c496e2bb6d8451bc9a636196c4e17ca9b40201\"]},\"project:/contracts/Token.sol\":{\"keccak256\":\"0xe0b1e6e785ae58d9cf517545b47681fbe373b4711383e1feddf14b3ed856784a\",\"urls\":[\"bzzr://a7105c2e5b03b28db67668f430c9da3d20fb23f0f7189b6cd89d13e6c611f797\"]},\"project:/contracts/interfaces/ViaBond.sol\":{\"keccak256\":\"0xfc471512526675edd84249f397bf94b1cef191bcbac1d3da1db24786867c4c62\",\"urls\":[\"bzzr://563d2507340846e5d3ac74b24d529a35e52241971e942784781cb4b48b36c2d6\"]},\"project:/contracts/interfaces/ViaFactory.sol\":{\"keccak256\":\"0xd71096d3b9b6e130416a346913097dd5a5f1ca16e242778c9e1005058b14b7f2\",\"urls\":[\"bzzr://b2eeb8b364fec878cee9035228fce18a58d7cec7a0be946df554de65dd51332b\"]},\"project:/contracts/interfaces/ViaToken.sol\":{\"keccak256\":\"0xfe45ec0f3e72d12ca2c0dd9ff16258eec9a30b736dddfc8f799b7f2601b1aae0\",\"urls\":[\"bzzr://3d36c5055be4b4f517ee1670643fa0a139811d45ed844195009b00a8fc666c87\"]},\"project:/contracts/utilities/ERC20.sol\":{\"keccak256\":\"0x410b1bfe4ae45185f9d971ef497cf28ea3f0efb18ced3760fa781aaa150835a8\",\"urls\":[\"bzzr://ce908881afa94cfdc13d8e9afd3aa1edb50cae8469eee123f1169ffbbb0f7f16\"]}},\"version\":1}", "bytecode": "0x6080604052611661806100136000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806380623444116100b8578063b47279061161007c578063b4727906146103f0578063dd62ed3e1461041c578063e468688e1461044a578063ef23972114610467578063f5537ede146104a3578063f8b2cb4f146104d957610137565b8063806234441461034757806395d89b4114610364578063a457c2d71461036c578063a9059cbb14610398578063aa5fc794146103c457610137565b8063313ce567116100ff578063313ce56714610277578063395093511461029557806352556421146102c15780635a341b90146102e557806370a082311461032157610137565b806306fdde031461013c578063095ea7b3146101b957806318160ddd146101f957806321e5383a1461021357806323b872dd14610241575b600080fd5b6101446104ff565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017e578181015183820152602001610166565b50505050905090810190601f1680156101ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101e5600480360360408110156101cf57600080fd5b506001600160a01b038135169060200135610596565b604080519115158252519081900360200190f35b6102016105b4565b60408051918252519081900360200190f35b61023f6004803603604081101561022957600080fd5b506001600160a01b0381351690602001356105ba565b005b6101e56004803603606081101561025757600080fd5b506001600160a01b03813581169160208101359091169060400135610618565b61027f6106da565b6040805160ff9092168252519081900360200190f35b6101e5600480360360408110156102ab57600080fd5b506001600160a01b0381351690602001356106df565b6102c9610738565b604080516001600160a01b039092168252519081900360200190f35b6101e5600480360360808110156102fb57600080fd5b508035906001600160a01b03602082013581169160408101359160609091013516610747565b6102016004803603602081101561033757600080fd5b50356001600160a01b03166109d3565b61023f6004803603602081101561035d57600080fd5b50356109ee565b610144610a4b565b6101e56004803603604081101561038257600080fd5b506001600160a01b038135169060200135610aac565b6101e5600480360360408110156103ae57600080fd5b506001600160a01b038135169060200135610b1a565b6101e5600480360360408110156103da57600080fd5b506001600160a01b038135169060200135610b2e565b61023f6004803603604081101561040657600080fd5b506001600160a01b038135169060200135610ba0565b6102016004803603604081101561043257600080fd5b506001600160a01b0381358116916020013516610bfa565b61023f6004803603602081101561046057600080fd5b5035610c25565b61023f6004803603608081101561047d57600080fd5b508035906001600160a01b03602082013581169160408101359091169060600135610c7f565b6101e5600480360360608110156104b957600080fd5b506001600160a01b03813581169160208101359091169060400135610daf565b610201600480360360208110156104ef57600080fd5b50356001600160a01b0316610e24565b60368054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561058b5780601f106105605761010080835404028352916020019161058b565b820191906000526020600020905b81548152906001019060200180831161056e57829003601f168201915b505050505090505b90565b60006105aa6105a3610e80565b8484610e84565b5060015b92915050565b60355490565b606b546001600160a01b0316331461060a5760408051600160e51b62461bcd02815260206004820152601160248201526000805160206115cd833981519152604482015290519081900360640190fd5b6106148282610f76565b5050565b600081610624856109d3565b101561062f57600080fd5b606b5460408051600160e11b6340e5437f0281526001600160a01b038781166004830152868116602483015260448201869052306064830152915191909216916381ca86fe9160848083019260209291908290030181600087803b15801561069657600080fd5b505af11580156106aa573d6000803e3d6000fd5b505050506040513d60208110156106c057600080fd5b5051156106cf575060016106d3565b5060005b9392505050565b601290565b60006105aa6106ec610e80565b8461073385603460006106fd610e80565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff61106b16565b610e84565b606a546001600160a01b031690565b606c5460408051600160e01b63f429f19b02815233600482015290516000926001600160a01b03169163f429f19b916024808301926020929190829003018186803b15801561079557600080fd5b505afa1580156107a9573d6000803e3d6000fd5b505050506040513d60208110156107bf57600080fd5b5051600160cb1b660acd2c286c2e6d0214806108525750606c5460408051600160e21b633444c8b50281526004810186905290516001600160a01b039092169163d11322d491602480820192602092909190829003018186803b15801561082557600080fd5b505afa158015610839573d6000803e3d6000fd5b505050506040513d602081101561084f57600080fd5b50515b6108a65760408051600160e51b62461bcd02815260206004820152601160248201527f556e737570706f7274656420746f6b656e000000000000000000000000000000604482015290519081900360640190fd5b606a546001600160a01b038581169116141561096357606b5460408051600160e01b6320f46de1028152600481018890526001600160a01b03878116602483015260448201879052306064830152915191909216916320f46de19160848083019260209291908290030181600087803b15801561092257600080fd5b505af1158015610936573d6000803e3d6000fd5b505050506040513d602081101561094c57600080fd5b50511561095b575060016109cb565b5060006109cb565b606b5460408051600160e11b630fb7dfd7028152600481018890526001600160a01b03878116602483015260448201879052858116606483015291519190921691631f6fbfae9160848083019260209291908290030181600087803b15801561092257600080fd5b949350505050565b6001600160a01b031660009081526033602052604090205490565b606b546001600160a01b03163314610a3e5760408051600160e51b62461bcd02815260206004820152601160248201526000805160206115cd833981519152604482015290519081900360640190fd5b610a4830826110c8565b50565b60378054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561058b5780601f106105605761010080835404028352916020019161058b565b60006105aa610ab9610e80565b84610733856040518060600160405280602581526020016116116025913960346000610ae3610e80565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff6111c716565b60006105aa610b27610e80565b8484611261565b606b546000906001600160a01b03163314610b815760408051600160e51b62461bcd02815260206004820152601160248201526000805160206115cd833981519152604482015290519081900360640190fd5b610b8b8383610b1a565b15610b98575060016105ae565b5060006105ae565b606b546001600160a01b03163314610bf05760408051600160e51b62461bcd02815260206004820152601160248201526000805160206115cd833981519152604482015290519081900360640190fd5b61061482826110c8565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b606b546001600160a01b03163314610c755760408051600160e51b62461bcd02815260206004820152601160248201526000805160206115cd833981519152604482015290519081900360640190fd5b610a483082610f76565b600054610100900460ff1680610c985750610c986113c5565b80610ca6575060005460ff16155b610ce457604051600160e51b62461bcd02815260040180806020018281038252602e815260200180611559602e913960400191505060405180910390fd5b600054610100900460ff16158015610d0f576000805460ff1961ff0019909116610100171660011790555b606c8054336001600160a01b031991821617909155606a805482166001600160a01b0387811691909117909155606b805490921690851617905560408051602080820188905282518083039091018152908201909152610d6e906113cb565b610d9682604051602001808281526020019150506040516020818303038152906040526113de565b8015610da8576000805461ff00191690555b5050505050565b606b546000906001600160a01b03163314610e025760408051600160e51b62461bcd02815260206004820152601160248201526000805160206115cd833981519152604482015290519081900360640190fd5b81610e0c856109d3565b106106cf57610e1c848484611261565b5060016106d3565b606b546000906001600160a01b03163314610e775760408051600160e51b62461bcd02815260206004820152601160248201526000805160206115cd833981519152604482015290519081900360640190fd5b6105ae826109d3565b3390565b6001600160a01b038316610ecc57604051600160e51b62461bcd0281526004018080602001828103825260248152602001806115ed6024913960400191505060405180910390fd5b6001600160a01b038216610f1457604051600160e51b62461bcd0281526004018080602001828103825260228152602001806115116022913960400191505060405180910390fd5b6001600160a01b03808416600081815260346020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038216610fd45760408051600160e51b62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b603554610fe7908263ffffffff61106b16565b6035556001600160a01b038216600090815260336020526040902054611013908263ffffffff61106b16565b6001600160a01b03831660008181526033602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000828201838110156106d35760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b03821661111057604051600160e51b62461bcd0281526004018080602001828103825260218152602001806115876021913960400191505060405180910390fd5b611153816040518060600160405280602281526020016114ef602291396001600160a01b038516600090815260336020526040902054919063ffffffff6111c716565b6001600160a01b03831660009081526033602052604090205560355461117f908263ffffffff6113f116565b6035556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000818484111561125957604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561121e578181015183820152602001611206565b50505050905090810190601f16801561124b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0383166112a957604051600160e51b62461bcd0281526004018080602001828103825260258152602001806115a86025913960400191505060405180910390fd5b6001600160a01b0382166112f157604051600160e51b62461bcd0281526004018080602001828103825260238152602001806114cc6023913960400191505060405180910390fd5b61133481604051806060016040528060268152602001611533602691396001600160a01b038616600090815260336020526040902054919063ffffffff6111c716565b6001600160a01b038085166000908152603360205260408082209390935590841681522054611369908263ffffffff61106b16565b6001600160a01b0380841660008181526033602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b303b1590565b8051610614906036906020840190611433565b8051610614906037906020840190611433565b60006106d383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111c7565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061147457805160ff19168380011785556114a1565b828001600101855582156114a1579182015b828111156114a1578251825591602001919060010190611486565b506114ad9291506114b1565b5090565b61059391905b808211156114ad57600081556001016114b756fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a656445524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373496e76616c696420726571756573746f7200000000000000000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa165627a7a72305820cfb5aa5f7087976d54d4bf0ef9729611cfb99b060372cd1109b4eae79ddf61a70029", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101375760003560e01c806380623444116100b8578063b47279061161007c578063b4727906146103f0578063dd62ed3e1461041c578063e468688e1461044a578063ef23972114610467578063f5537ede146104a3578063f8b2cb4f146104d957610137565b8063806234441461034757806395d89b4114610364578063a457c2d71461036c578063a9059cbb14610398578063aa5fc794146103c457610137565b8063313ce567116100ff578063313ce56714610277578063395093511461029557806352556421146102c15780635a341b90146102e557806370a082311461032157610137565b806306fdde031461013c578063095ea7b3146101b957806318160ddd146101f957806321e5383a1461021357806323b872dd14610241575b600080fd5b6101446104ff565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017e578181015183820152602001610166565b50505050905090810190601f1680156101ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101e5600480360360408110156101cf57600080fd5b506001600160a01b038135169060200135610596565b604080519115158252519081900360200190f35b6102016105b4565b60408051918252519081900360200190f35b61023f6004803603604081101561022957600080fd5b506001600160a01b0381351690602001356105ba565b005b6101e56004803603606081101561025757600080fd5b506001600160a01b03813581169160208101359091169060400135610618565b61027f6106da565b6040805160ff9092168252519081900360200190f35b6101e5600480360360408110156102ab57600080fd5b506001600160a01b0381351690602001356106df565b6102c9610738565b604080516001600160a01b039092168252519081900360200190f35b6101e5600480360360808110156102fb57600080fd5b508035906001600160a01b03602082013581169160408101359160609091013516610747565b6102016004803603602081101561033757600080fd5b50356001600160a01b03166109d3565b61023f6004803603602081101561035d57600080fd5b50356109ee565b610144610a4b565b6101e56004803603604081101561038257600080fd5b506001600160a01b038135169060200135610aac565b6101e5600480360360408110156103ae57600080fd5b506001600160a01b038135169060200135610b1a565b6101e5600480360360408110156103da57600080fd5b506001600160a01b038135169060200135610b2e565b61023f6004803603604081101561040657600080fd5b506001600160a01b038135169060200135610ba0565b6102016004803603604081101561043257600080fd5b506001600160a01b0381358116916020013516610bfa565b61023f6004803603602081101561046057600080fd5b5035610c25565b61023f6004803603608081101561047d57600080fd5b508035906001600160a01b03602082013581169160408101359091169060600135610c7f565b6101e5600480360360608110156104b957600080fd5b506001600160a01b03813581169160208101359091169060400135610daf565b610201600480360360208110156104ef57600080fd5b50356001600160a01b0316610e24565b60368054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561058b5780601f106105605761010080835404028352916020019161058b565b820191906000526020600020905b81548152906001019060200180831161056e57829003601f168201915b505050505090505b90565b60006105aa6105a3610e80565b8484610e84565b5060015b92915050565b60355490565b606b546001600160a01b0316331461060a5760408051600160e51b62461bcd02815260206004820152601160248201526000805160206115cd833981519152604482015290519081900360640190fd5b6106148282610f76565b5050565b600081610624856109d3565b101561062f57600080fd5b606b5460408051600160e11b6340e5437f0281526001600160a01b038781166004830152868116602483015260448201869052306064830152915191909216916381ca86fe9160848083019260209291908290030181600087803b15801561069657600080fd5b505af11580156106aa573d6000803e3d6000fd5b505050506040513d60208110156106c057600080fd5b5051156106cf575060016106d3565b5060005b9392505050565b601290565b60006105aa6106ec610e80565b8461073385603460006106fd610e80565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff61106b16565b610e84565b606a546001600160a01b031690565b606c5460408051600160e01b63f429f19b02815233600482015290516000926001600160a01b03169163f429f19b916024808301926020929190829003018186803b15801561079557600080fd5b505afa1580156107a9573d6000803e3d6000fd5b505050506040513d60208110156107bf57600080fd5b5051600160cb1b660acd2c286c2e6d0214806108525750606c5460408051600160e21b633444c8b50281526004810186905290516001600160a01b039092169163d11322d491602480820192602092909190829003018186803b15801561082557600080fd5b505afa158015610839573d6000803e3d6000fd5b505050506040513d602081101561084f57600080fd5b50515b6108a65760408051600160e51b62461bcd02815260206004820152601160248201527f556e737570706f7274656420746f6b656e000000000000000000000000000000604482015290519081900360640190fd5b606a546001600160a01b038581169116141561096357606b5460408051600160e01b6320f46de1028152600481018890526001600160a01b03878116602483015260448201879052306064830152915191909216916320f46de19160848083019260209291908290030181600087803b15801561092257600080fd5b505af1158015610936573d6000803e3d6000fd5b505050506040513d602081101561094c57600080fd5b50511561095b575060016109cb565b5060006109cb565b606b5460408051600160e11b630fb7dfd7028152600481018890526001600160a01b03878116602483015260448201879052858116606483015291519190921691631f6fbfae9160848083019260209291908290030181600087803b15801561092257600080fd5b949350505050565b6001600160a01b031660009081526033602052604090205490565b606b546001600160a01b03163314610a3e5760408051600160e51b62461bcd02815260206004820152601160248201526000805160206115cd833981519152604482015290519081900360640190fd5b610a4830826110c8565b50565b60378054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561058b5780601f106105605761010080835404028352916020019161058b565b60006105aa610ab9610e80565b84610733856040518060600160405280602581526020016116116025913960346000610ae3610e80565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff6111c716565b60006105aa610b27610e80565b8484611261565b606b546000906001600160a01b03163314610b815760408051600160e51b62461bcd02815260206004820152601160248201526000805160206115cd833981519152604482015290519081900360640190fd5b610b8b8383610b1a565b15610b98575060016105ae565b5060006105ae565b606b546001600160a01b03163314610bf05760408051600160e51b62461bcd02815260206004820152601160248201526000805160206115cd833981519152604482015290519081900360640190fd5b61061482826110c8565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b606b546001600160a01b03163314610c755760408051600160e51b62461bcd02815260206004820152601160248201526000805160206115cd833981519152604482015290519081900360640190fd5b610a483082610f76565b600054610100900460ff1680610c985750610c986113c5565b80610ca6575060005460ff16155b610ce457604051600160e51b62461bcd02815260040180806020018281038252602e815260200180611559602e913960400191505060405180910390fd5b600054610100900460ff16158015610d0f576000805460ff1961ff0019909116610100171660011790555b606c8054336001600160a01b031991821617909155606a805482166001600160a01b0387811691909117909155606b805490921690851617905560408051602080820188905282518083039091018152908201909152610d6e906113cb565b610d9682604051602001808281526020019150506040516020818303038152906040526113de565b8015610da8576000805461ff00191690555b5050505050565b606b546000906001600160a01b03163314610e025760408051600160e51b62461bcd02815260206004820152601160248201526000805160206115cd833981519152604482015290519081900360640190fd5b81610e0c856109d3565b106106cf57610e1c848484611261565b5060016106d3565b606b546000906001600160a01b03163314610e775760408051600160e51b62461bcd02815260206004820152601160248201526000805160206115cd833981519152604482015290519081900360640190fd5b6105ae826109d3565b3390565b6001600160a01b038316610ecc57604051600160e51b62461bcd0281526004018080602001828103825260248152602001806115ed6024913960400191505060405180910390fd5b6001600160a01b038216610f1457604051600160e51b62461bcd0281526004018080602001828103825260228152602001806115116022913960400191505060405180910390fd5b6001600160a01b03808416600081815260346020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038216610fd45760408051600160e51b62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b603554610fe7908263ffffffff61106b16565b6035556001600160a01b038216600090815260336020526040902054611013908263ffffffff61106b16565b6001600160a01b03831660008181526033602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000828201838110156106d35760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b03821661111057604051600160e51b62461bcd0281526004018080602001828103825260218152602001806115876021913960400191505060405180910390fd5b611153816040518060600160405280602281526020016114ef602291396001600160a01b038516600090815260336020526040902054919063ffffffff6111c716565b6001600160a01b03831660009081526033602052604090205560355461117f908263ffffffff6113f116565b6035556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000818484111561125957604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561121e578181015183820152602001611206565b50505050905090810190601f16801561124b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0383166112a957604051600160e51b62461bcd0281526004018080602001828103825260258152602001806115a86025913960400191505060405180910390fd5b6001600160a01b0382166112f157604051600160e51b62461bcd0281526004018080602001828103825260238152602001806114cc6023913960400191505060405180910390fd5b61133481604051806060016040528060268152602001611533602691396001600160a01b038616600090815260336020526040902054919063ffffffff6111c716565b6001600160a01b038085166000908152603360205260408082209390935590841681522054611369908263ffffffff61106b16565b6001600160a01b0380841660008181526033602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b303b1590565b8051610614906036906020840190611433565b8051610614906037906020840190611433565b60006106d383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111c7565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061147457805160ff19168380011785556114a1565b828001600101855582156114a1579182015b828111156114a1578251825591602001919060010190611486565b506114ad9291506114b1565b5090565b61059391905b808211156114ad57600081556001016114b756fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a656445524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373496e76616c696420726571756573746f7200000000000000000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa165627a7a72305820cfb5aa5f7087976d54d4bf0ef9729611cfb99b060372cd1109b4eae79ddf61a70029", "sourceMap": "289:3441:20:-;;;;;;;;;", "deployedSourceMap": "289:3441:20:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;289:3441:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1999:83:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1999:83:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4238:152;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4238:152:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;3259:91;;;:::i;:::-;;;;;;;;;;;;;;;;1328:167:20;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1328:167:20;;;;;;;;:::i;:::-;;1860:403;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1860:403:20;;;;;;;;;;;;;;;;;:::i;3118:76:32:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5575:210;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5575:210:32;;;;;;;;:::i;882:84:20:-;;;:::i;:::-;;;;-1:-1:-1;;;;;882:84:20;;;;;;;;;;;;;;3034:685;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;3034:685:20;;;-1:-1:-1;;;;;3034:685:20;;;;;;;;;;;;;;;;;;;:::i;3413:110:32:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3413:110:32;-1:-1:-1;;;;;3413:110:32;;:::i;1150:170:20:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1150:170:20;;:::i;2288:87:32:-;;;:::i;6288:261::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6288:261:32;;;;;;;;:::i;3736:158::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3736:158:32;;;;;;;;:::i;2758:266:20:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2758:266:20;;;;;;;;:::i;1503:170::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1503:170:20;;;;;;;;:::i;3957:134:32:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3957:134:32;;;;;;;;;;:::i;978:164:20:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;978:164:20;;:::i;557:317::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;557:317:20;;;-1:-1:-1;;;;;557:317:20;;;;;;;;;;;;;;;;;;;:::i;2271:476::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2271:476:20;;;;;;;;;;;;;;;;;:::i;1681:171::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1681:171:20;-1:-1:-1;;;;;1681:171:20;;:::i;1999:83:32:-;2069:5;2062:12;;;;;;;;-1:-1:-1;;2062:12:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2036:13;;2062:12;;2069:5;;2062:12;;2069:5;2062:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1999:83;;:::o;4238:152::-;4304:4;4321:39;4330:12;:10;:12::i;:::-;4344:7;4353:6;4321:8;:39::i;:::-;-1:-1:-1;4378:4:32;4238:152;;;;;:::o;3259:91::-;3330:12;;3259:91;:::o;1328:167:20:-;1406:16;;-1:-1:-1;;;;;1406:16:20;1424:10;1406:28;1398:58;;;;;-1:-1:-1;;;;;1398:58:20;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1398:58:20;;;;;;;;;;;;;;;1467:20;1473:5;1480:6;1467:5;:20::i;:::-;1328:167;;:::o;1860:403::-;1948:4;2085:6;2064:17;2074:6;2064:9;:17::i;:::-;:27;;2056:36;;;;;;2114:16;;2106:82;;;-1:-1:-1;;;;;2106:82:20;;-1:-1:-1;;;;;2106:82:20;;;;;;;;;;;;;;;;;;;;2182:4;2106:82;;;;;;2114:16;;;;;2106:41;;:82;;;;;;;;;;;;;;2114:16;;2106:82;;;5:2:-1;;;;30:1;27;20:12;5:2;2106:82:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2106:82:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2106:82:20;2103:152;;;-1:-1:-1;2210:4:20;2203:11;;2103:152;-1:-1:-1;2250:5:20;2103:152;1860:403;;;;;:::o;3118:76:32:-;3184:2;3118:76;:::o;5575:210::-;5655:4;5672:83;5681:12;:10;:12::i;:::-;5695:7;5704:50;5743:10;5704:11;:25;5716:12;:10;:12::i;:::-;-1:-1:-1;;;;;5704:25:32;;;;;;;;;;;;;;;;;-1:-1:-1;5704:25:32;;;:34;;;;;;;;;;;:50;:38;:50;:::i;:::-;5672:8;:83::i;882:84:20:-;951:7;;-1:-1:-1;;;;;951:7:20;882:84;:::o;3034:685::-;3174:8;;:28;;;-1:-1:-1;;;;;3174:28:20;;3191:10;3174:28;;;;;;3150:4;;-1:-1:-1;;;;;3174:8:20;;:16;;:28;;;;;;;;;;;;;;:8;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;3174:28:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3174:28:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3174:28:20;-1:-1:-1;;;;;3174:41:20;;:84;;-1:-1:-1;3219:8:20;;:39;;;-1:-1:-1;;;;;3219:39:20;;;;;;;;;;-1:-1:-1;;;;;3219:8:20;;;;:29;;:39;;;;;;;;;;;;;;;:8;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;3219:39:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3219:39:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3219:39:20;3174:84;3166:114;;;;;-1:-1:-1;;;;;3166:114:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;3301:7;;-1:-1:-1;;;;;3294:14:20;;;3301:7;;3294:14;3291:413;;